From 7c90cfba95f5aa3071c4b5836eabe50da436d42f Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 8 Sep 2023 00:02:49 +0300 Subject: [PATCH 01/66] refactoring --- gefest/core/__init__.py | 1 + gefest/core/algs/geom/validation.py | 125 +++++-- gefest/core/algs/postproc/resolve_errors.py | 175 +++++---- gefest/core/geometry/__init__.py | 4 + gefest/core/geometry/datastructs/__init__.py | 1 + gefest/core/geometry/datastructs/point.py | 12 + gefest/core/geometry/datastructs/polygon.py | 36 ++ gefest/core/geometry/datastructs/structure.py | 30 ++ gefest/core/geometry/domain.py | 89 +++++ gefest/core/geometry/geometry.py | 29 +- gefest/core/geometry/geometry_2d.py | 164 ++++++--- gefest/core/geometry/utils.py | 169 +++++++++ gefest/core/opt/adapters/factories.py | 46 +++ .../opt/{adapter.py => adapters/structure.py} | 36 +- gefest/core/opt/analytics.py | 89 +++-- gefest/core/opt/constraints.py | 33 -- gefest/core/opt/gen_design.py | 39 +- gefest/core/opt/individual.py | 20 +- gefest/core/opt/objectives.py | 13 +- gefest/core/opt/operators/crossover.py | 84 ----- gefest/core/opt/operators/crossovers.py | 43 +++ gefest/core/opt/operators/mutation.py | 230 ------------ gefest/core/opt/operators/mutations.py | 174 +++++++++ gefest/core/opt/operators/operators.py | 17 - gefest/core/opt/operators/selections.py | 66 ++++ .../core/opt/operators/sensitivity_methods.py | 177 --------- gefest/core/opt/result.py | 8 +- gefest/core/opt/setup.py | 21 -- gefest/core/opt/strategies/crossover.py | 75 ++++ gefest/core/opt/strategies/mutation.py | 77 ++++ gefest/core/opt/strategies/strategy.py | 24 ++ gefest/core/serialization/any.py | 23 +- gefest/core/serialization/serializer.py | 44 +-- gefest/core/structure/domain.py | 123 ------- gefest/core/structure/point.py | 83 ----- gefest/core/structure/polygon.py | 39 -- gefest/core/structure/prohibited.py | 25 +- gefest/core/structure/structure.py | 339 ------------------ gefest/core/utils.py | 6 - gefest/core/utils/__init__.py | 2 + gefest/core/utils/functions.py | 34 ++ gefest/core/utils/mp_manager.py | 108 ++++++ gefest/core/viz/struct_vizualizer.py | 25 +- gefest/tools/__init__.py | 2 + gefest/tools/estimators/estimator.py | 47 +-- .../simulators/comsol/comsol_interface.py | 105 +++--- .../simulators/sound_wave/sound_interface.py | 57 ++- .../simulators/swan/swan_interface.py | 73 ++-- gefest/tools/fitness.py | 29 ++ gefest/tools/optimizers/optimizer.py | 36 +- gefest/tools/samplers/sampler.py | 10 +- gefest/tools/samplers/standard/standard.py | 91 ++--- refactored.py | 286 +++++++++++++++ requirements.txt | 15 +- setup.cfg | 19 + 55 files changed, 2007 insertions(+), 1721 deletions(-) create mode 100644 gefest/core/geometry/datastructs/__init__.py create mode 100644 gefest/core/geometry/datastructs/point.py create mode 100644 gefest/core/geometry/datastructs/polygon.py create mode 100644 gefest/core/geometry/datastructs/structure.py create mode 100644 gefest/core/geometry/domain.py create mode 100644 gefest/core/geometry/utils.py create mode 100644 gefest/core/opt/adapters/factories.py rename gefest/core/opt/{adapter.py => adapters/structure.py} (59%) delete mode 100644 gefest/core/opt/constraints.py delete mode 100644 gefest/core/opt/operators/crossover.py create mode 100644 gefest/core/opt/operators/crossovers.py delete mode 100644 gefest/core/opt/operators/mutation.py create mode 100644 gefest/core/opt/operators/mutations.py delete mode 100644 gefest/core/opt/operators/operators.py create mode 100644 gefest/core/opt/operators/selections.py delete mode 100644 gefest/core/opt/operators/sensitivity_methods.py delete mode 100644 gefest/core/opt/setup.py create mode 100644 gefest/core/opt/strategies/crossover.py create mode 100644 gefest/core/opt/strategies/mutation.py create mode 100644 gefest/core/opt/strategies/strategy.py delete mode 100644 gefest/core/structure/domain.py delete mode 100644 gefest/core/structure/point.py delete mode 100644 gefest/core/structure/polygon.py delete mode 100644 gefest/core/structure/structure.py delete mode 100644 gefest/core/utils.py create mode 100644 gefest/core/utils/__init__.py create mode 100644 gefest/core/utils/functions.py create mode 100644 gefest/core/utils/mp_manager.py create mode 100644 gefest/tools/fitness.py create mode 100644 refactored.py create mode 100644 setup.cfg diff --git a/gefest/core/__init__.py b/gefest/core/__init__.py index e69de29bb..8b1378917 100755 --- a/gefest/core/__init__.py +++ b/gefest/core/__init__.py @@ -0,0 +1 @@ + diff --git a/gefest/core/algs/geom/validation.py b/gefest/core/algs/geom/validation.py index 8d4fe0fbe..92a06d70a 100644 --- a/gefest/core/algs/geom/validation.py +++ b/gefest/core/algs/geom/validation.py @@ -1,21 +1,18 @@ -""" -Here are defined general constraints on polygons by validation rules. -Validation is a checking on valid and invalid objects for further processing. -""" - -from shapely.geometry import Point as GeomPoint, Polygon as GeomPolygon -from shapely.validation import explain_validity from itertools import permutations -from gefest.core.structure.domain import Domain -from gefest.core.structure.polygon import Polygon +import numpy as np +from numpy.linalg import norm +from shapely.geometry import Point as GeomPoint +from shapely.geometry import Polygon as GeomPolygon +from shapely.validation import explain_validity -MIN_DIST = 15 +from gefest.core.geometry import Polygon, Structure +from gefest.core.geometry.domain import Domain min_dist_from_boundary = 1 -def intersection(structure: 'Structure', domain: 'Domain') -> bool: +def intersection(structure: Structure, domain: Domain) -> bool: """The method for checking intersection between Polygons in the Structure Args: structure: the :obj:`Structure` that explore @@ -36,31 +33,35 @@ def intersection(structure: 'Structure', domain: 'Domain') -> bool: return False -def out_of_bound(structure: 'Structure', domain=None) -> bool: +def out_of_bound(structure: Structure, domain=None) -> bool: """The method for checking every polygon in the given :obj:`Structure` - on crossing borders of :obj:`Domain` - - Args: - structure: the :obj:`Structure` that explore - domain: the :obj:`Domain` that determinates the main - parameters, this method requires ``allowed_area`` from :obj:`Domain` - Returns: - ``True`` if at least one of the polygons in given :obj:`structure` crossing borders - of allowed area, otherwise - ``False`` + on crossing borders of :obj:`Domain` + + Args: + structure: the :obj:`Structure` that explore + domain: the :obj:`Domain` that determinates the main + parameters, this method requires ``allowed_area`` from :obj:`Domain` + Returns: + ``True`` if at least one of the polygons in given :obj:`structure` crossing borders + of allowed area, otherwise - ``False`` """ - geom_poly_allowed = GeomPolygon([GeomPoint(pt[0], pt[1]) for pt in domain.allowed_area]) + geom_poly_allowed = GeomPolygon( + [GeomPoint(pt.x, pt.y) for pt in domain.allowed_area], + ) for poly in structure.polygons: for pt in poly.points: geom_pt = GeomPoint(pt.x, pt.y) - if not geom_poly_allowed.contains(geom_pt) and not \ - geom_poly_allowed.distance(geom_pt) < min_dist_from_boundary: + if ( + not geom_poly_allowed.contains(geom_pt) + and not geom_poly_allowed.distance(geom_pt) < min_dist_from_boundary + ): return True return False -def too_close(structure: 'Structure', domain: Domain) -> bool: +def too_close(structure: Structure, domain: Domain) -> bool: """Checking for too close location between every :obj:`Polygon` in the given :obj:`Structure` Args: @@ -72,9 +73,16 @@ def too_close(structure: 'Structure', domain: Domain) -> bool: distance set by :obj:`Domain`, otherwise - ``False`` """ is_too_close = any( - [any([_pairwise_dist(poly_1, poly_2, domain) < domain.min_dist for - poly_2 in structure.polygons]) for poly_1 - in structure.polygons]) + [ + any( + [ + _pairwise_dist(poly_1, poly_2, domain) < domain.min_dist + for poly_2 in structure.polygons + ], + ) + for poly_1 in structure.polygons + ], + ) return is_too_close @@ -89,7 +97,7 @@ def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain): return domain.geometry.min_distance(poly_1, poly_2) -def self_intersection(structure: 'Structure') -> bool: +def self_intersection(structure: Structure, *args) -> bool: """The method indicates that any :obj:`Polygon` in the :obj:`Structure` is self-intersected Args: @@ -98,12 +106,58 @@ def self_intersection(structure: 'Structure') -> bool: ``True`` if at least one of the polygons in the :obj:`Structure` is self-intersected, otherwise - ``False`` """ - return any([len(poly.points) > 2 and - _forbidden_validity(explain_validity(GeomPolygon([GeomPoint(pt.x, pt.y) for pt in poly.points]))) - for poly in structure.polygons]) + + return any( + [ + len(poly.points) > 2 + and _forbidden_validity( + explain_validity( + GeomPolygon([GeomPoint(pt.x, pt.y) for pt in poly.points]), + ), + ) + for poly in structure.polygons + ], + ) + + +def distance_between_points(structure: Structure, domain: Domain) -> bool: + """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` + is placed in correct distance by previous point + Args: + structure: the :obj:`Structure` that explore + Returns: + ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` + """ + lenght = domain.dist_between_points + p1 = structure + check = [] + for i in [[p.coords()[:2] for p in poly.points] for poly in p1.polygons]: + for ind, pnt in enumerate(i[1:]): + check.append(norm(np.array(pnt) - np.array(i[ind]), ord=1) < lenght) + if any(check): + print('Намутировал плохой полигон!, distance_between_points') + return any(check) + + +def distance_between_points_in_poly(poly: Polygon, domain: Domain) -> bool: + """The method indicates that any :obj:`Point` in the :obj:`Polygon` + is placed in norm distance + Args: + poly: the :obj:`Polygon` that explore + Returns: + ``True`` if side of poly have incorrect lenght, otherwise - ``False`` + """ + lenght = domain.dist_between_points + check = [] + for i in [p.coords()[:2] for p in poly.points]: + for ind, pnt in enumerate(i[1:]): + check.append(norm(np.array(pnt) - np.array(i[ind]), ord=1) < lenght) + if any(check): + print('Намутировал плохой полигон!, distance_between_points_in_poly') + return any(check) -def unclosed_poly(structure: 'Structure', domain: 'Domain') -> bool: +def unclosed_poly(structure: Structure, domain: Domain) -> bool: """Checking for equality of the first and the last points Args: structure: the :obj:`Structure` that explore @@ -115,14 +169,13 @@ def unclosed_poly(structure: 'Structure', domain: 'Domain') -> bool: otherwise - ``False`` """ - if domain.is_closed: + if domain.geometry.is_closed: return any([poly.points[0] != poly.points[-1] for poly in structure.polygons]) else: return False -def is_contain(structure: 'Structure', - domain: 'Domain') -> bool: +def is_contain(structure: Structure, domain: Domain) -> bool: is_contains = [] try: diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/algs/postproc/resolve_errors.py index 4a1759975..4979045a9 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/algs/postproc/resolve_errors.py @@ -1,93 +1,76 @@ -import numpy as np from copy import deepcopy +from itertools import combinations -from gefest.core.algs.geom.validation import out_of_bound, self_intersection, too_close, unclosed_poly -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import Polygon, Structure, Point +import numpy as np -""" -Defines methods to correct wrong structures (not satisfying the constraints) -Function postprocess makes structures that satisfy the constraints given in validation -""" +from gefest.core.geometry import Polygon, Structure +from gefest.core.geometry.domain import Domain -def postprocess(structure: Structure, domain: Domain) -> Structure: - """The method process given :obj:`Structure` step by step while - it is not correct. +def distance_between_points(structure: 'Structure', domain: 'Domain') -> bool: + """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` + is placed in correct distance by previous point Args: - structure: the :obj:`Structure` that need correcting - domain: the :obj:`Domain` that determinates the main - parameters, it needs there for checking equality between given - :obj:`Structure` and set parameters in the :obj:`Domain` - Stages of processing: - Methods: - fixed poly: If ``fixed_points`` in the :obj:`Domain` set, they will be added to the structure - too close: Fixing proximity between polygons, for polygons that are closer than the - specified threshold, one of them will be removed (exclude fixed polygons) - self-intersection: Change self-intersected poly to convex - out of allowed area: Cut :obj:`Polygon` that is out of borders by borders, than rescale it - down to 80% - unclosed polygon: Fix for open polygons by adding first :obj:`Point` to end + structure: the :obj:`Structure` that explore Returns: - checked by rules on stages before and corrected :obj:`Structure` + ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` """ - corrected_structure = deepcopy(structure) - - # Fixing each polygon in structure - try: - for i, poly in enumerate(corrected_structure.polygons): - local_structure = Structure([poly]) - if unclosed_poly(local_structure, domain) and domain.is_closed: - corrected_structure.polygons[i] = _correct_unclosed_poly(poly) - if self_intersection(local_structure): - corrected_structure.polygons[i] = _correct_self_intersection(poly, domain) - if out_of_bound(local_structure, domain): - corrected_structure.polygons[i] = _correct_wrong_point(poly, domain) - except AttributeError: - return structure - - # Fixing proximity between polygons - if too_close(structure, domain): - corrected_structure = _correct_closeness(corrected_structure, domain) - - # If you set fixed polygons in the domain, here they are added to the structure - if len(corrected_structure.polygons) > 0: - for fixed in domain.fixed_points: - if not (fixed.points == [p.points for p in corrected_structure.polygons]): - corrected_structure.polygons.append(deepcopy(fixed)) - - return corrected_structure - - -def _correct_low_points(poly: 'Polygon', - domain: 'Domain') -> Polygon: - new_point = Point(np.random.uniform(domain.min_x, domain.max_x), - np.random.uniform(domain.min_y, domain.max_y)) - poly.points.append(new_point) + lenght = domain.dist_between_points + p1 = structure + check = [] + for i in [[p.coords()[:2] for p in poly.points] for poly in p1.polygons]: + for ind, pnt in enumerate(i[1:]): + check.append(np.norm(np.array(pnt) - np.array(i[ind]), ord=1) < lenght) + if any(check): + print('Намутировал плохой полигон!, distance_between_points') + return any(check) + +def postprocess( + structure: Structure, + rule_fix_pairs: dict, + domain: Domain, +) -> Structure: + if structure is None: + return None + if any( + [(not poly or len(poly) == 0 or any([not pt for pt in poly])) for poly in structure], + ): + print('Wrong structure - problems with points') + return None + corrected_structure = deepcopy(structure) + for i, poly in enumerate(corrected_structure.polygons): + local_structure = Structure([poly]) + for rule, fix in rule_fix_pairs.values(): + if not rule(local_structure, domain): + corrected_structure.polygons[i] = fix(poly, domain) + + cts = [rule(structure, domain) for rule, _ in rule_fix_pairs.values()] + if not any(cts): + return corrected_structure + return None + + +def correct_unclosed_poly(poly: Polygon, domain: Domain) -> Polygon: + if domain.geometry.is_closed: + point_to_add = poly.points[0] + poly.points.append(point_to_add) + correct_poly = poly + return correct_poly return poly -def _correct_unclosed_poly(poly: Polygon) -> Polygon: - # Simple fix for open polygons by adding first point to end - point_to_add = poly.points[0] - poly.points.append(point_to_add) - correct_poly = poly - return correct_poly - - -def _correct_wrong_point(poly: Polygon, domain: Domain) -> Polygon: +def correct_wrong_point(poly: Polygon, domain: Domain) -> Polygon: point_moved = False for p_id, point in enumerate(poly.points): - # Correcting each point out of bounds - if point in domain.fixed_points: - continue + if domain.fixed_points: + if point in domain.fixed_points: + continue point.x = max(point.x, domain.min_x + domain.len_x * 0.05) point.y = max(point.y, domain.min_y + domain.len_y * 0.05) point.x = min(point.x, domain.max_x + domain.len_x * 0.05) point.y = min(point.y, domain.max_y + domain.len_y * 0.05) - if not domain.contains(point): - # if the point is not in the domain, we look for the nearest one inside + if point not in domain: new_point = domain.geometry.nearest_point(point, domain.bound_poly) poly.points[p_id] = new_point point_moved = True @@ -98,35 +81,43 @@ def _correct_wrong_point(poly: Polygon, domain: Domain) -> Polygon: return poly -def _correct_self_intersection(poly: Polygon, domain: Domain) -> Polygon: +def correct_self_intersection(poly: Polygon, domain: Domain) -> Polygon: # Change self-intersected poly to convex convex_poly = domain.geometry.get_convex(poly) return convex_poly -def _correct_closeness(structure: Structure, domain: Domain) -> Structure: - """ - For polygons that are closer than the specified threshold, - one of them will be removed +def too_close(structure: Structure, domain: Domain) -> bool: + """Checks for too close location between every :obj:`Polygon` in the + given :obj:`Structure` + Args: + structure: the :obj:`Structure` that explore + domain: the :obj:`Domain` that determinates the main + parameters, this method requires ``min_dist`` from :obj:`Domain` + Returns: + ``True`` if at least one distance between any polygons is less than value of minimal + distance set by :obj:`Domain`, otherwise - ``False`` """ - polygons = structure.polygons - num_poly = len(polygons) - to_delete = [] - for i in range(num_poly - 1): - for j in range(i + 1, num_poly): - distance = _pairwise_dist(polygons[i], polygons[j], domain) - if distance < domain.min_dist: - if polygons[i].id != 'fixed' or 'prohibited': - to_delete.append(i) # Collecting polygon indices for deletion + pairs = tuple(combinations(structure.polygons, 2)) + is_too_close = [False] * len(pairs) - to_delete_poly = [structure.polygons[i] for i in np.unique(to_delete)] - corrected_structure = Structure(polygons=[poly for poly in structure.polygons if poly not in to_delete_poly]) - return corrected_structure + for idx, poly_1, poly_2 in enumerate(pairs): + is_too_close[idx] = _pairwise_dist(poly_1, poly_2, domain) < domain.min_dist + return any(is_too_close) -def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain) -> float: - if poly_1 is poly_2 or len(poly_1.points) == 0 or len(poly_2.points) == 0: - return 9999 +def _pairwise_dist( + poly_1: Polygon, + poly_2: Polygon, + domain: Domain, +) -> float: + """ + ::TODO:: find the answer for the question: why return 0 gives infinite computation + """ + if poly_1 is poly_2 or len(poly_1) == 0 or len(poly_2) == 0: + return float('inf') + + # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point return domain.geometry.min_distance(poly_1, poly_2) diff --git a/gefest/core/geometry/__init__.py b/gefest/core/geometry/__init__.py index e69de29bb..1c8a93168 100755 --- a/gefest/core/geometry/__init__.py +++ b/gefest/core/geometry/__init__.py @@ -0,0 +1,4 @@ +from .datastructs.point import Point +from .datastructs.polygon import Polygon, PolyID +from .datastructs.structure import Structure +from .utils import get_random_point, get_random_poly, get_random_structure diff --git a/gefest/core/geometry/datastructs/__init__.py b/gefest/core/geometry/datastructs/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/gefest/core/geometry/datastructs/__init__.py @@ -0,0 +1 @@ + diff --git a/gefest/core/geometry/datastructs/point.py b/gefest/core/geometry/datastructs/point.py new file mode 100644 index 000000000..9c728e617 --- /dev/null +++ b/gefest/core/geometry/datastructs/point.py @@ -0,0 +1,12 @@ +from pydantic import computed_field +from pydantic.dataclasses import dataclass + + +@dataclass +class Point: + x: float + y: float + + @computed_field + def coords(self) -> list[float]: + return [self.x, self.y] diff --git a/gefest/core/geometry/datastructs/polygon.py b/gefest/core/geometry/datastructs/polygon.py new file mode 100644 index 000000000..52b368520 --- /dev/null +++ b/gefest/core/geometry/datastructs/polygon.py @@ -0,0 +1,36 @@ +from enum import Enum +from typing import Optional, Union +from uuid import UUID, uuid4 + +from pydantic import Field +from pydantic.dataclasses import dataclass + +from .point import Point + + +class PolyID(Enum): + TEMP = "tmp" + CONSTR = "constraint" + FIXED_AREA = "fixed_area" + FIXED_POLY = "fixed_poly" + PROH_AREA = "prohibited_area" + PROH_TARG = "prohibited_target" + PROH_POLY = "prohibited_poly" + + +@dataclass +class Polygon: + points: list[Point] = Field(default_factory=list) + id_: Optional[Union[UUID, PolyID]] = Field(default_factory=uuid4) + + def __len__(self) -> int: + return len(self.points) + + def __getitem__(self, key) -> Point: + return self.points[key] + + def __setitem__(self, key: int, value: Point): + self.points[key] = value + + def __contains__(self, item): + return item in self.points diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py new file mode 100644 index 000000000..3e9ec0ea9 --- /dev/null +++ b/gefest/core/geometry/datastructs/structure.py @@ -0,0 +1,30 @@ +from typing import Union +from uuid import UUID, uuid4 + +from pydantic import Field +from pydantic.dataclasses import dataclass + +from .point import Point +from .polygon import Polygon + + +@dataclass +class Structure: + polygons: list[Polygon] = Field(default_factory=list) + fitness: list[float] = Field(default_factory=list) + _id: UUID = Field(default_factory=uuid4) + + def __len__(self): + return len(self.polygons) + + def __getitem__(self, key): + return self.polygons[key] + + def __setitem__(self, key, value): + self.polygons[key] = value + + def __contains__(self, item: Union[Point, Polygon]): + if isinstance(item, Polygon): + return item in self.polygons + if isinstance(item, Point): + return any(item in poly for poly in self.polygons) diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py new file mode 100644 index 000000000..0c9494533 --- /dev/null +++ b/gefest/core/geometry/domain.py @@ -0,0 +1,89 @@ +from pathlib import Path +from typing import Optional, Union + +import yaml +from pydantic import Field, computed_field, field_validator, model_validator +from pydantic.dataclasses import dataclass +from pydantic_yaml import parse_yaml_raw_as + +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.geometry_2d import Geometry2D + + +@dataclass +class Domain: + allowed_area: Union[Polygon, list[list[float]]] + name: str = "main" + min_poly_num: int = 2 + max_poly_num: int = 4 + min_points_num: int = 20 + max_points_num: int = 50 + prohibited_area: Optional[Structure] = None + fixed_points: Optional[Union[Polygon, list[list[float]]]] = Field(default_factory=list) + geometry: Optional[Geometry2D] = Geometry2D() + + def parse_raw(self, cfg_file: Path): + + with open(cfg_file) as f: + cfg = yaml.safe_load(f) + + if "domain" not in cfg: + raise AttributeError("No 'domain' section {cfg_file} config file.") + + return parse_yaml_raw_as(Domain, yaml.dump(cfg['domain'])) + + def __contains__(self, point: Point): + """Checking :obj:`Domain` contains :obj:`point` + Args: + point: checked point + Returns: + ``True`` if given :obj:`Point` locates in the allowed area borders, + otherwise returns ``False`` + """ + return self.geometry.is_contain_point(self.allowed_area, point) + + def __post_init__(self): + if self.min_poly_num > self.max_poly_num: + raise ValueError("Invalid points number interval.") + if self.min_points_num > self.max_points_num: + raise ValueError("Invalid points number interval.") + + @field_validator("fixed_points") + def parse_allowed_area(cls, data: Union[Polygon, list[list[float]]]): + if isinstance(data, Polygon): + return data + return Polygon([Point(*coords) for coords in data]) + + @field_validator("allowed_area") + def parse_allowed_area(cls, data: Union[Polygon, list[list[float]]]): + if data is None or len(data) <= 2: + raise ValueError("Not enough points for allowed_area.") + return Polygon([Point(*coords) for coords in data]) + + @computed_field + def min_x(self) -> int: + return min(p.x for p in self.allowed_area) + + @computed_field + def max_x(self) -> int: + return max(p.x for p in self.allowed_area) + + @computed_field + def min_y(self) -> int: + return min(p.y for p in self.allowed_area) + + @computed_field + def max_y(self) -> int: + return max(p.y for p in self.allowed_area) + + @computed_field + def len_x(self) -> int: + return abs(self.max_x - self.min_x) + + @computed_field + def len_y(self) -> int: + return abs(self.max_y - self.min_y) + + @computed_field + def bound_poly(self) -> Polygon: + return self.allowed_area \ No newline at end of file diff --git a/gefest/core/geometry/geometry.py b/gefest/core/geometry/geometry.py index 37e8300d1..9b6f56909 100644 --- a/gefest/core/geometry/geometry.py +++ b/gefest/core/geometry/geometry.py @@ -1,23 +1,20 @@ -from abc import abstractmethod -from shapely.geometry import Point as GeomPoint, LineString - +from abc import ABC, abstractmethod from typing import List -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon +from pydantic import BaseModel +from shapely.geometry import LineString +from shapely.geometry import Point as GeomPoint + +from gefest.core.geometry import Point, Polygon -class Geometry: +class Geometry(BaseModel, ABC): """ Abstract geometry class. Сlass contains basic transformations of geometries, geometry properties. Each of the methods is overridden for a particular dimension of the geometry. """ - @abstractmethod - def __init__(self): - pass - @abstractmethod def resize_poly(self, poly: Polygon, x_scale: float, y_scale: float): pass @@ -26,20 +23,16 @@ def resize_poly(self, poly: Polygon, x_scale: float, y_scale: float): def rotate_poly(self, poly: Polygon, angle: float): pass + @abstractmethod def get_length(self, polygon: Polygon): - if len(polygon.points) < 1: - return 0 - - geom_polygon = LineString([GeomPoint(pt.x, pt.y) for pt in polygon.points]) - - return geom_polygon.length + pass @abstractmethod def get_square(self, polygon: Polygon): pass @abstractmethod - def is_contain_point(self, poly: Polygon, point: 'Point'): + def is_contain_point(self, poly: Polygon, point: "Point"): pass @abstractmethod @@ -51,7 +44,7 @@ def intersects(self, poly_1: Polygon, poly_2: Polygon) -> bool: pass @abstractmethod - def min_distance(self, pt_1: 'Point', pt_2: 'Point') -> float: + def min_distance(self, pt_1: Point, pt_2: Point) -> float: pass @abstractmethod diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index af8139dc8..a56609e35 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -2,13 +2,17 @@ from uuid import uuid4 import numpy as np +from pydantic import BaseModel +from pydantic.dataclasses import dataclass from shapely import affinity -from shapely.geometry import Point as GeomPoint, Polygon as GeomPolygon, LineString, MultiLineString +from shapely.geometry import LineString, MultiLineString +from shapely.geometry import Point as GeomPoint +from shapely.geometry import Polygon as GeomPolygon from shapely.ops import nearest_points -from gefest.core.geometry.geometry import Geometry -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon +from gefest.core.geometry import Point, Polygon, Structure + +from .geometry import Geometry class Geometry2D(Geometry): @@ -16,12 +20,18 @@ class Geometry2D(Geometry): The input receives information about the closeness of the polygon Args: is_closed: ``True`` if the :obj:`Polygon` must have close borders - (first Point is equal to the last one), otherwise ``False``. Default value is ``True`` + (first Point is equal to the last one), otherwise ``False``. + Default value is ``True`` """ + is_closed: bool = True + + def get_length(self, polygon: Polygon): + if len(polygon.points) < 1: + return 0 - def __init__(self, - is_closed=True): - self.is_closed = is_closed + geom_polygon = LineString([GeomPoint(pt.x, pt.y) for pt in polygon]) + + return geom_polygon.length def get_coords(self, poly) -> List[Point]: """The function for getting points @@ -31,23 +41,33 @@ def get_coords(self, poly) -> List[Point]: all :obj:`Point` that :obj:`poly`contains """ - # Transformation from shapely coords to GEFEST points for further analysis if isinstance(poly, GeomPolygon): - # Converting shapely.Polygon to shapely.LineString translation for correct conversion poly = LineString(poly.exterior.coords) if self.is_closed or len(poly.coords.xy[0]) < 3: - points = [Point(x, y) for x, y in - zip(list(poly.coords.xy[0]), - list(poly.coords.xy[1]))] + points = [ + Point(x, y) + for x, y in zip( + list(poly.coords.xy[0]), + list(poly.coords.xy[1]), + ) + ] else: - # For open polygons, the last point is ignored - points = [Point(x, y) for x, y in - zip(list(poly.coords.xy[0][:-1]), - list(poly.coords.xy[1][:-1]))] + points = [ + Point(x, y) + for x, y in zip( + list(poly.coords.xy[0][:-1]), + list(poly.coords.xy[1][:-1]), + ) + ] return points - def resize_poly(self, poly: Polygon, x_scale: float, y_scale: float) -> Polygon: + def resize_poly( + self, + poly: Polygon, + x_scale: float, + y_scale: float, + ) -> Polygon: """The function for rescaling polygons along each axis. Scaling occurs relative to the center of mass of the polygon Args: @@ -57,19 +77,28 @@ def resize_poly(self, poly: Polygon, x_scale: float, y_scale: float) -> Polygon: Returns: scaled :obj:`poly` by ``(x,y)`` axes """ - geom_polygon = self._poly_to_geom(poly) # Transformation to shapely structure + geom_polygon = self._poly_to_geom(poly) - rescaled_geom_polygon = affinity.scale(geom_polygon, - x_scale, y_scale) # Scaling along each axis + rescaled_geom_polygon = affinity.scale( + geom_polygon, + x_scale, + y_scale, + ) rescaled_points = self.get_coords(rescaled_geom_polygon) - rescaled_poly = Polygon(polygon_id=poly.id, - points=rescaled_points) # Back transformation to GEFEST polygon + rescaled_poly = Polygon( + polygon_id=poly.id_, + points=rescaled_points, + ) return rescaled_poly - def rotate_poly(self, poly: Polygon, angle: float) -> Polygon: + def rotate_poly( + self, + poly: Polygon, + angle: float, + ) -> Polygon: """Rotating polygon relative to the center of mass by a given angle Args: poly: :obj:`Polygon` for processing @@ -78,17 +107,23 @@ def rotate_poly(self, poly: Polygon, angle: float) -> Polygon: rotated :obj:`poly` """ - geom_polygon = self._poly_to_geom(poly) # Transformation to shapely structure + geom_polygon = self._poly_to_geom(poly) - rotated_geom_polygon = affinity.rotate(geom_polygon, angle, 'center') # Rotating the entire polygon + rotated_geom_polygon = affinity.rotate( + geom_polygon, + angle, + 'center', + ) rotated_points = self.get_coords(rotated_geom_polygon) - rotated_poly = Polygon(polygon_id=poly.id, - points=rotated_points) # Back transformation to GEFEST polygon + rotated_poly = Polygon( + polygon_i=poly.id_, + points=rotated_points, + ) return rotated_poly - def get_square(self, polygon: 'Polygon') -> float: + def get_square(self, polygon: Polygon) -> float: """Recieving value of the area Args: polygon: :obj:`Polygon` for processing @@ -99,12 +134,11 @@ def get_square(self, polygon: 'Polygon') -> float: if len(polygon.points) <= 1: return 0 - # Transformation to shapely.polygon, cause LineString does not have an area method - geom_polygon = GeomPolygon([self._pt_to_geom(pt) for pt in polygon.points]) + geom_polygon = GeomPolygon([self._pt_to_geom(pt) for pt in polygon]) return geom_polygon.area - def is_contain_point(self, poly: 'Polygon', point: Point) -> bool: + def is_contain_point(self, poly: Polygon, point: Point) -> bool: """Checking if a point is inside a polygon Args: poly: :obj:`Polygon` that explore @@ -112,7 +146,7 @@ def is_contain_point(self, poly: 'Polygon', point: Point) -> bool: Returns: ``True`` if :obj:`point` is into :obj:`poly`, otherwise ``False`` """ - geom_poly_allowed = GeomPolygon([self._pt_to_geom(pt) for pt in poly.points]) + geom_poly_allowed = GeomPolygon([self._pt_to_geom(pt) for pt in poly]) geom_pt = GeomPoint(point.x, point.y) return geom_poly_allowed.contains(geom_pt) @@ -123,11 +157,11 @@ def nearest_point(self, point: Point, poly: Polygon) -> Point: point: the :obj:`Point` that explore poly: the :obj:`Polygon` that explore Returns: - returns the nearest :obj:`Point` from ``point`` among all points in the ``poly`` + nearest_correct_position :obj:`Point` from ``point`` among all points in the ``poly`` """ geom_poly = self._poly_to_geom(poly) geom_point = GeomPoint(point.x, point.y) - _, nearest_correct_position = nearest_points(geom_point, geom_poly) # One point as output + _, nearest_correct_position = nearest_points(geom_point, geom_poly) return Point(nearest_correct_position.x, nearest_correct_position.y) def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: @@ -136,15 +170,19 @@ def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: poly_1: the first :obj:`Polygon` that explore poly_2: the second :obj:`Polygon` that explore Returns: - the couple of :obj:`Point` where the first one from :obj:`poly_1` and the second one from :obj:`poly_2` + the couple of :obj:`Point` where the first one from :obj:`poly_1` + and the second one from :obj:`poly_2` """ geom_poly_1 = self._poly_to_geom(poly_1) geom_poly_2 = self._poly_to_geom(poly_2) - _, nearest_correct_position = nearest_points(geom_poly_1, geom_poly_2) # Set of points as output + _, nearest_correct_position = nearest_points( + geom_poly_1, + geom_poly_2, + ) return nearest_correct_position - def get_convex(self, poly: 'Polygon') -> Polygon: + def get_convex(self, poly: Polygon) -> Polygon: """Obtaining a convex polygon to avoid intersections Args: poly: :obj:`Polygon` for processing @@ -155,11 +193,11 @@ def get_convex(self, poly: 'Polygon') -> Polygon: return poly geom_poly = self._poly_to_geom(poly).convex_hull points = self.get_coords(geom_poly) - polygon = Polygon(polygon_id=poly.id, points=points) + polygon = Polygon(polygon_id='tmp', points=points) return polygon - def get_centroid(self, poly: 'Polygon') -> Point: + def get_centroid(self, poly: Polygon) -> Point: """Getting a point that is the center of mass of the polygon Args: poly: the :obj:`Polygon` that explore @@ -174,44 +212,56 @@ def get_centroid(self, poly: 'Polygon') -> Point: point = Point(geom_point.x, geom_point.y) return point - def intersects(self, structure: 'Structure') -> bool: + def intersects(self, structure: Structure) -> bool: """Function to check for any intersection in structure of polygons - Whole structure appears like shapely MultiLineString for which uses method is simple + Whole structure appears like shapely MultiLineString for which uses method is simple. Args: structure: the :obj:`Structure` that explore Returns: ``True`` if any :obj:`Polygon` in :obj:`structure` intersects with another one, otherwise - ``False`` """ - polygons = structure.polygons - multi_geom = MultiLineString([self._poly_to_geom(poly) for poly in polygons]) + multi_geom = MultiLineString( + [self._poly_to_geom(poly) for poly in structure], + ) return multi_geom.is_simple - def contains(self, poly1: 'Polygon', poly2: 'Polygon') -> bool: + def contains(self, poly1: Polygon, poly2: Polygon) -> bool: geom_polygon1 = self._poly_to_geom(poly1) - geom_polygon2 = GeomPolygon([self._pt_to_geom(pt) for pt in poly2.points]) + geom_polygon2 = GeomPolygon([self._pt_to_geom(pt) for pt in poly2]) is_contain = geom_polygon2.contains(geom_polygon1) return is_contain - def intersects_poly(self, poly_1: 'Polygon', poly_2: 'Polygon') -> bool: + def intersects_poly(self, poly_1: Polygon, poly_2: Polygon) -> bool: """Intersection between two polygons Args: poly_1: the first :obj:`Polygon` that explore poly_2: the second :obj:`Polygon` that explore Returns: - ``True`` if the :obj:`poly_1` intersects with :obj:`poly_2`, otherwise - ``False`` + ``True`` if the :obj:`poly_1` intersects with :obj:`poly_2`, + otherwise - ``False`` """ geom_poly_1 = self._poly_to_geom(poly_1) geom_poly_2 = self._poly_to_geom(poly_2) return geom_poly_1.intersects(geom_poly_2) def _poly_to_geom(self, poly: Polygon) -> LineString: - # Transformation GEFEST polygon to shapely LineString + """Transform GEFEST Polygon to shapely Polygon. + Args: + poly: Polygon + Returns: + LineString + """ return LineString([self._pt_to_geom(pt) for pt in poly.points]) def _pt_to_geom(self, pt: Point) -> GeomPoint: - # Transformation GEFEST point to shapely Point + """Transform GEFEST Polygon to shapely Polygon. + Args: + poly: Point + Returns: + GeomPoint + """ return GeomPoint(pt.x, pt.y) def min_distance(self, obj_1, obj_2) -> float: @@ -235,17 +285,17 @@ def min_distance(self, obj_1, obj_2) -> float: return distance - def centroid_distance(self, point: 'Point', poly: 'Polygon') -> Point: + def centroid_distance(self, point: Point, poly: Polygon) -> Point: # Distance from point to polygon geom_point = self._pt_to_geom(point) geom_poly = self._poly_to_geom(poly) - d = geom_point.distance(geom_poly) + dist = geom_point.distance(geom_poly) - return d + return dist # Function to create a circle, needed for one of the synthetic examples -def create_circle(struct: 'Structure') -> 'Structure': +def create_circle(struct: Structure) -> Structure: geom = Geometry2D(is_closed=False) poly = struct.polygons[0] @@ -262,7 +312,9 @@ def create_circle(struct: 'Structure') -> 'Structure': a = radius * np.cos(theta) + center_x + 2.2 * radius b = radius * np.sin(theta) + center_y - struct = Polygon(polygon_id=str(uuid4()), - points=[(Point(x, y)) for x, y in zip(a, b)]) + struct = Polygon( + polygon_id=str(uuid4()), + points=[(Point(x, y)) for x, y in zip(a, b)], + ) return struct diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py new file mode 100644 index 000000000..3044c60b0 --- /dev/null +++ b/gefest/core/geometry/utils.py @@ -0,0 +1,169 @@ +import json +from dataclasses import dataclass +from random import randint +from typing import Optional + +import numpy as np + +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.geometry_2d import Geometry2D + +from .domain import Domain + + +def get_random_structure(domain: Domain) -> Structure: + # Creating structure with random number of polygons + + structure = Structure(polygons=[]) + + num_pols = randint(domain.min_poly_num, domain.max_poly_num) + + for _ in range(num_pols): + polygon = get_random_poly(parent_structure=structure, domain=domain) + if polygon is not None and len(polygon.points) > 1: + structure.polygons.append(polygon) + else: + continue + + for poly in structure: + print(poly[0], poly[-1]) + + return structure + + +def get_random_poly(parent_structure: Optional[Structure], domain: Domain) -> Optional[Polygon]: + geometry = domain.geometry + try: + """ + Function for creation random polygon. + The main idea is to create centroids along with a neighborhood to locate the polygon. + Neighborhood sizes range from small to large. + The main condition for creating a neighborhood is the absence of other polygons in it. + After setting the neighborhood, polygons are created around the centroid inside the given neighborhood. + This approach is less demanding on postprocessing than random creation + """ + + # Centroid with it neighborhood called occupied area + occupied_area = create_area(domain, parent_structure, geometry) + if occupied_area is None: + # If it was not possible to find the occupied area then returns None + return None + else: + centroid = occupied_area[0] + sigma = occupied_area[1] # Size of neighborhood + # The polygon is created relative to the centroid + # and the size of the neighborhood + polygon = create_poly(centroid, sigma, domain, geometry) + except Exception as ex: + print(ex) + import traceback + + print(traceback.format_exc()) + return None + + return polygon + + +def get_random_point(polygon: Polygon, structure: Structure, domain: Domain) -> Optional[Point]: + # Creating a point to fill the polygon + + centroid = domain.geometry.get_centroid(polygon) + sigma = distance(centroid, structure, domain.geometry) / 3 + point = create_polygon_point(centroid, sigma) + max_attempts = 20 # Number of attempts to create in bound point + while not in_bound(point, domain): + point = create_polygon_point(centroid, sigma) + max_attempts -= 1 + if max_attempts == 0: + return None + return point + + +def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: + # Creating polygon in the neighborhood of the centroid + # sigma defines neighborhood + + num_points = randint( + domain.min_points_num, domain.max_points_num, + ) # Number of points in a polygon + points = [] + for _ in range(num_points): + point = create_polygon_point(centroid, sigma) # point in polygon + while not in_bound(point, domain): # checking if a point is in domain + point = create_polygon_point(centroid, sigma) + points.append(point) + if domain.geometry.is_closed: + points.append(points[0]) + + poly = geometry.get_convex(Polygon(points=points)) # avoid self intersection in polygon + + return poly + + +def create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> (Point, float): + n_poly = len(structure.polygons) # Number of already existing polygons + area_size = np.random.randint(low=3, high=15) # Neighborhood compression ratio + sigma = ( + max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) / area_size + ) # Neighborhood size + if n_poly == 0: + # In the absence of polygons, the centroid can be located anywhere + centroid = create_random_point(domain) + else: + """ + This procedure allows to find a centroid in the neighborhood + of which there are no other polygons. + The minimum distance must be less than 2.5 * sigma. + """ + centroid = create_random_point(domain) + min_dist = distance( + centroid, structure, geometry, + ) # Distance to the nearest polygon in the structure + max_attempts = 20 + while min_dist < 2.5 * sigma: + area_size = np.random.randint(low=3, high=15) + sigma = max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) / area_size + centroid = create_random_point(domain) + min_dist = distance(centroid, structure, geometry) + if max_attempts == 0: + return None + max_attempts -= 1 + + return centroid, sigma + + +def create_random_point(domain: Domain) -> Point: + point = Point( + np.random.uniform(low=domain.min_x, high=domain.max_x), + np.random.uniform(low=domain.min_y, high=domain.max_y), + ) + while not in_bound(point, domain): + point = Point( + np.random.uniform(low=domain.min_x, high=domain.max_x), + np.random.uniform(low=domain.min_y, high=domain.max_y), + ) + + return point + + +def create_polygon_point(centroid: Point, sigma: int) -> Point: + # Creating polygon point inside the neighborhood defined by the centroid + point = Point( + np.random.normal(centroid.x, sigma, 1)[0], np.random.normal(centroid.y, sigma, 1)[0], + ) + + return point + + +def in_bound(point: Point, domain: Domain) -> bool: + return domain.geometry.is_contain_point(domain.allowed_area, point) + + +def distance(point: Point, structure: Structure, geometry: Geometry2D) -> float: + polygons = structure.polygons + distances = [] + for poly in polygons: + d = geometry.centroid_distance(point, poly) + distances.append(d) + + return min(distances) diff --git a/gefest/core/opt/adapters/factories.py b/gefest/core/opt/adapters/factories.py new file mode 100644 index 000000000..b0ed02398 --- /dev/null +++ b/gefest/core/opt/adapters/factories.py @@ -0,0 +1,46 @@ +import random +from math import cos, pi, sin + +from golem.core.optimisers.graph import OptNode +from golem.core.optimisers.opt_node_factory import OptNodeFactory + +from gefest.core.geometry.domain import Domain + + +class SimpleGefestOptNodeFactory(OptNodeFactory): + def __init__( + self, + domain: Domain, + ): + self.domain = Domain + + # self._generation_radius = 1 + # if domain_allowed_area is not None: + # dx = max(domain_allowed_area, key = lambda point: point[0])[0] \ + # - min(domain_allowed_area, key = lambda point: point[0])[0] + # dy = max(domain_allowed_area, key = lambda point: point[1])[1] \ + # - min(domain_allowed_area, key = lambda point: point[1])[1] + # self._generation_radius = min(dx, dy) * 0.05 + + def exchange_node(self, node: OptNode, **kwargs) -> OptNode: + return self.get_node(node) + + def get_parent_node(self, node: OptNode, **kwargs) -> OptNode: + return self.get_node(node=node) + + def get_node(self, **kwargs) -> OptNode: + if 'node' in kwargs.keys(): + theta = random() * 2 * pi + r = random() + px = (r * cos(theta) * self._generation_radius) + kwargs['node'].content['params']['x'] + py = (r * sin(theta) * self._generation_radius) + kwargs['node'].content['params']['y'] + else: + px = int(random()*self._generation_radius) + py = int(random()*self._generation_radius) + + return OptNode( + content={ + 'name': f'pt_{px}_{py}', + 'params': {'x': px, 'y': py}, + }, + ) \ No newline at end of file diff --git a/gefest/core/opt/adapter.py b/gefest/core/opt/adapters/structure.py similarity index 59% rename from gefest/core/opt/adapter.py rename to gefest/core/opt/adapters/structure.py index 625bf612f..3bd8d0b23 100644 --- a/gefest/core/opt/adapter.py +++ b/gefest/core/opt/adapters/structure.py @@ -3,9 +3,7 @@ from golem.core.adapter.adapter import BaseOptimizationAdapter from golem.core.optimisers.graph import OptGraph, OptNode -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.structure import Structure +from gefest.core.geometry import Point, Polygon, Structure class StructureAdapter(BaseOptimizationAdapter): @@ -17,22 +15,16 @@ def __init__(self): def _point_to_node(self, point): # Prepare content for nodes - if type(point) == OptNode: - self._log.warn('Unexpected: OptNode found in adapter instead' - 'Point.') + if isinstance(point, OptNode): + self._log.warn("Unexpected: OptNode found in adapter instead" "Point.") else: - content = {'name': f'pt_{point.x}_{point.y}', - 'params': {}} - + content = {"name": f"pt_{point.x}_{point.y}", "params": {}} node = OptNode(content=content) - node.content['params'] = { - 'x': point.x, - 'y': point.y - } + node.content["params"] = {"x": point.x, "y": point.y} return node - def adapt(self, adaptee: Structure): - """ Convert Structure class into OptGraph class """ + def _adapt(self, adaptee: Structure): + """Convert Structure class into OptGraph class""" nodes = [] for polygon in adaptee.polygons: prev_node = None @@ -46,8 +38,10 @@ def adapt(self, adaptee: Structure): graph = OptGraph(nodes) return graph - def restore(self, opt_graph: OptGraph, metadata: Optional[Dict[str, Any]] = None) -> 'Structure': - """ Convert OptGraph class into Structure class """ + def _restore( + self, opt_graph: OptGraph, metadata: Optional[Dict[str, Any]] = None, + ) -> Structure: + """Convert OptGraph class into Structure class""" structure = [] poly = Polygon() for node in opt_graph.nodes: @@ -55,8 +49,12 @@ def restore(self, opt_graph: OptGraph, metadata: Optional[Dict[str, Any]] = None # next polygon started structure.append(poly) poly = Polygon() - poly.points.append(Point(node.content['params']['x'], - node.content['params']['y'])) + poly.points.append( + Point( + node.content['params']['x'], + node.content['params']['y'], + ), + ) if poly not in structure: # add last poly structure.append(poly) diff --git a/gefest/core/opt/analytics.py b/gefest/core/opt/analytics.py index 720de74b7..9e804c06f 100644 --- a/gefest/core/opt/analytics.py +++ b/gefest/core/opt/analytics.py @@ -7,68 +7,103 @@ class EvoAnalytics: - run_id = 'def' + run_id = "def" @staticmethod - def save_cantidate(pop_num, objectives, anlytics_objectives, genotype, referenced_dataset, local_id, - subfolder_name=None): + def save_cantidate( + pop_num, + objectives, + anlytics_objectives, + genotype, + referenced_dataset, + local_id, + subfolder_name=None, + ): - if not os.path.isdir(f'HistoryFiles'): - os.mkdir(f'HistoryFiles') + if not os.path.isdir(f"HistoryFiles"): + os.mkdir(f"HistoryFiles") if subfolder_name: - if not os.path.isdir(f'HistoryFiles/{subfolder_name}'): - os.mkdir(f'HistoryFiles/{subfolder_name}') + if not os.path.isdir(f"HistoryFiles/{subfolder_name}"): + os.mkdir(f"HistoryFiles/{subfolder_name}") - hist_file_name = f'HistoryFiles/{subfolder_name}/history_{EvoAnalytics.run_id}.csv' + hist_file_name = f"HistoryFiles/{subfolder_name}/history_{EvoAnalytics.run_id}.csv" else: - hist_file_name = f'HistoryFiles/history_{EvoAnalytics.run_id}.csv' + hist_file_name = f"HistoryFiles/history_{EvoAnalytics.run_id}.csv" if not os.path.isfile(hist_file_name): - with open(hist_file_name, 'w', newline='') as f: + with open(hist_file_name, "w", newline="") as f: EvoAnalytics._write_header_to_csv(f, objectives, anlytics_objectives, genotype) - EvoAnalytics._write_candidate_to_csv(f, pop_num, objectives, anlytics_objectives, genotype, - referenced_dataset, local_id) + EvoAnalytics._write_candidate_to_csv( + f, + pop_num, + objectives, + anlytics_objectives, + genotype, + referenced_dataset, + local_id, + ) else: - with open(hist_file_name, 'a', newline='') as f: - EvoAnalytics._write_candidate_to_csv(f, pop_num, objectives, anlytics_objectives, genotype, - referenced_dataset, local_id) + with open(hist_file_name, "a", newline="") as f: + EvoAnalytics._write_candidate_to_csv( + f, + pop_num, + objectives, + anlytics_objectives, + genotype, + referenced_dataset, + local_id, + ) @staticmethod - def _write_candidate_to_csv(f, pop_num, objs, analytics_objectives, genotype, referenced_dataset, local_id): - writer = csv.writer(f, delimiter=',', quotechar=' ', quoting=csv.QUOTE_MINIMAL) + def _write_candidate_to_csv( + f, pop_num, objs, analytics_objectives, genotype, referenced_dataset, local_id, + ): + writer = csv.writer(f, delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL) writer.writerow( - [pop_num, referenced_dataset, ','.join([str(round(_, 6)) for _ in objs if _ is not None]), - analytics_objectives, local_id]) + [ + pop_num, + referenced_dataset, + ",".join([str(round(_, 6)) for _ in objs if _ is not None]), + analytics_objectives, + local_id, + ], + ) @staticmethod def _write_header_to_csv(f, objectives, analytics_objectives, genotype): if len(analytics_objectives) == 0: analytics_objectives = [] - writer = csv.writer(f, delimiter=',', quotechar=' ', quoting=csv.QUOTE_MINIMAL) + writer = csv.writer(f, delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL) writer.writerow( - ['pop_num', 'referenced_dataset', ','.join([f'obj{_}' for _ in range(0, len(objectives))]), - ','.join([f'ananlytics_ob{_}' for _ in range(len(analytics_objectives))]), 'local_id']) + [ + "pop_num", + "referenced_dataset", + ",".join([f"obj{_}" for _ in range(0, len(objectives))]), + ",".join([f"ananlytics_ob{_}" for _ in range(len(analytics_objectives))]), + "local_id", + ], + ) @staticmethod def clear(): - hist_file_name = f'HistoryFiles/history_{EvoAnalytics.run_id}.csv' + hist_file_name = f"HistoryFiles/history_{EvoAnalytics.run_id}.csv" if os.path.isfile(hist_file_name): os.remove(hist_file_name) @staticmethod def create_boxplot(): - f = f'HistoryFiles/history_{EvoAnalytics.run_id}.csv' + f = f"HistoryFiles/history_{EvoAnalytics.run_id}.csv" df = pd.read_csv(f, header=0, sep="\s*,\s*") plt.clf() plt.figure(figsize=(20, 10)) plt.xticks(rotation=45) - sns.boxplot(x=df['pop_num'], y=df['obj0'], palette="Blues") + sns.boxplot(x=df["pop_num"], y=df["obj0"], palette="Blues") plt.show() - if 'obj1' in df.columns: + if "obj1" in df.columns: plt.figure(figsize=(20, 10)) plt.xticks(rotation=45) - sns.boxplot(x=df['pop_num'], y=df['obj1'], palette="Blues") + sns.boxplot(x=df["pop_num"], y=df["obj1"], palette="Blues") plt.show() diff --git a/gefest/core/opt/constraints.py b/gefest/core/opt/constraints.py deleted file mode 100644 index 8fc3d7c4b..000000000 --- a/gefest/core/opt/constraints.py +++ /dev/null @@ -1,33 +0,0 @@ -import copy - -from gefest.core.algs.geom.validation import out_of_bound, self_intersection, too_close, intersection, unclosed_poly, \ - is_contain -from gefest.core.structure.structure import Structure - - -def check_constraints(structure: Structure, is_lightweight: bool = False, domain=None, model_func=None) -> bool: - try: - if any([(poly is None or - len(poly.points) == 0 or - any([pt is None for pt in poly.points])) - for poly in structure.polygons]): - print('Wrong structure - problems with points') - return False - - cts = [out_of_bound(structure, domain), - too_close(structure, domain), - is_contain(structure, domain), - self_intersection(structure), - intersection(structure, domain), - unclosed_poly(structure, domain)] - structurally_correct = not any(cts) - - if not structurally_correct: - return structure - except Exception as ex: - print(ex) - import traceback - print(traceback.format_exc()) - return False - - return structure diff --git a/gefest/core/opt/gen_design.py b/gefest/core/opt/gen_design.py index 5f80910bd..c2201b320 100644 --- a/gefest/core/opt/gen_design.py +++ b/gefest/core/opt/gen_design.py @@ -1,17 +1,12 @@ import os -import shutil import pickle -from tqdm import tqdm +import shutil from pathlib import Path -import time + +from tqdm import tqdm -def design(n_steps: int, - pop_size: int, - estimator, - sampler, - optimizer, - extra=False): +def design(n_steps: int, pop_size: int, estimator, sampler, optimizer, extra=False): """ Generative design procedure :param n_steps: (Int) number of generative design steps @@ -30,26 +25,14 @@ def _save_res(performance, samples): :param samples: (List), samples to save :return: None """ - with open(Path(path, f'performance_{i}.pickle'), 'wb') as handle: + with open(Path(path, f"performance_{i}.pickle"), "wb") as handle: pickle.dump(performance, handle, protocol=pickle.HIGHEST_PROTOCOL) - with open(Path(path, f'population_{i}.pickle'), 'wb') as handle: + with open(Path(path, f"population_{i}.pickle"), "wb") as handle: pickle.dump(samples, handle, protocol=pickle.HIGHEST_PROTOCOL) return - def _save_time(spent_time: list): - """ - Saving time history in pickle format - :param spent_time: (List), performance of samples - :return: None - """ - - with open(Path(path, 'time_history.pickle'), 'wb') as handle: - pickle.dump(spent_time, handle, protocol=pickle.HIGHEST_PROTOCOL) - - return - def _remain_best(performance, samples): """ From current population we remain best only @@ -68,25 +51,20 @@ def _remain_best(performance, samples): return performance, samples - path = 'HistoryFiles' + path = "HistoryFiles" if os.path.exists(path): shutil.rmtree(path) os.makedirs(path) samples = sampler.sample(n_samples=pop_size) - time_history = [] - start_time = time.time() for i in tqdm(range(n_steps)): performance = estimator.estimate(population=samples) - end_step_time = time.time() - spent_until_step = end_step_time - start_time - time_history.append(spent_until_step) # Choose best and save the results performance, samples = _remain_best(performance, samples) - print(f'\nBest performance is {performance[0]}') + print(f"\nBest performance is {performance[0]}") _save_res(performance, samples) @@ -101,6 +79,5 @@ def _remain_best(performance, samples): else: extra_samples = sampler.sample(n_samples=pop_size) samples = samples + extra_samples - _save_time(time_history) return samples diff --git a/gefest/core/opt/individual.py b/gefest/core/opt/individual.py index d693fa479..657e83e29 100644 --- a/gefest/core/opt/individual.py +++ b/gefest/core/opt/individual.py @@ -1,13 +1,13 @@ -from copy import deepcopy -from uuid import uuid4 +from uuid import UUID, uuid4 +from pydantic import Field +from pydantic.dataclasses import dataclass +from gefest.core.geometry import Structure + + +@dataclass class Individual: - def __init__(self, genotype): - self.objectives = () - self.analytics_objectives = [] - self.fitness = None - self.genotype = deepcopy(genotype) - self.graph = self.genotype - self.population_number = 0 - self.uid = str(uuid4()) + genotype: Structure + fitness: list[float] = Field(default_factory=list) + _id: UUID = Field(default_factory=uuid4) diff --git a/gefest/core/opt/objectives.py b/gefest/core/opt/objectives.py index bb024d650..06bc2712d 100644 --- a/gefest/core/opt/objectives.py +++ b/gefest/core/opt/objectives.py @@ -11,8 +11,11 @@ def calculate_objectives(population: List[Individual], model_func): ind.objectives = [objective] ind.analytics_objectives = [objective] idx = ind_id - EvoAnalytics.save_cantidate(ind.population_number, - ind.objectives, - ind.analytics_objectives, - ind.genotype, - 'common_dataset', idx) + EvoAnalytics.save_cantidate( + ind.population_number, + ind.objectives, + ind.analytics_objectives, + ind.genotype, + "common_dataset", + idx, + ) diff --git a/gefest/core/opt/operators/crossover.py b/gefest/core/opt/operators/crossover.py deleted file mode 100644 index fe1798f61..000000000 --- a/gefest/core/opt/operators/crossover.py +++ /dev/null @@ -1,84 +0,0 @@ -import copy -import random -from multiprocessing import Pool - -from gefest.core.algs.postproc.resolve_errors import postprocess -from gefest.core.opt.constraints import check_constraints -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import Structure - -MAX_ITER = 50000 -NUM_PROC = 1 - - -def crossover_worker(args): - """ - One point crossover between two selected structures - Polygons are exchanged between structures - """ - - s1, s2, domain = args[0], args[1], args[2] - - new_structure = copy.deepcopy(s1) - - crossover_point = random.randint(1, len(new_structure.polygons) + 1) # Choosing crossover point randomly - - # Crossover conversion - part_1 = s1.polygons[0:crossover_point] - if not isinstance(part_1, list): - part_1 = [part_1] - part_2 = s2.polygons[crossover_point:len(s1.polygons)] - if not isinstance(part_2, list): - part_2 = [part_2] - - result = copy.deepcopy(part_1) - result.extend(copy.deepcopy(part_2)) - - new_structure.polygons = result - - # Postprocessing for new structure - new_structure = postprocess(new_structure, domain) - constraints = check_constraints(structure=new_structure, domain=domain) - max_attempts = 3 # Number of postprocessing attempts - while not constraints: - new_structure = postprocess(new_structure, domain) - constraints = check_constraints(structure=new_structure, domain=domain) - max_attempts -= 1 - if max_attempts == 0: - # If the number of attempts is over, - # the transformation is considered unsuccessful - # and one of the structures is returned - return s1 - return new_structure - - -def crossover(s1: Structure, s2: Structure, domain: Domain, rate=0.4): - random_val = random.random() - if random_val >= rate or len(s1.polygons) == 1 or len(s2.polygons) == 1: - # In the case when the structures consist of only one polygon, - # the transformation is not performed - if random.random() > 0.5: - return s1 - else: - return s2 - elif len(s1.polygons) == 0: - return s2 - elif len(s2.polygons) == 0: - return s1 - - new_structure = s2 - - if NUM_PROC > 1: - # Calculations on different processor cores - with Pool(NUM_PROC) as p: - new_items = p.map(crossover_worker, - [[s1, s2, domain] for _ in range(NUM_PROC)]) - else: - new_items = [crossover_worker([s1, s2, domain]) for _ in range(NUM_PROC)] - - for structure in new_items: - if structure is not None: - new_structure = structure - break - - return new_structure diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py new file mode 100644 index 000000000..cd416a3cc --- /dev/null +++ b/gefest/core/opt/operators/crossovers.py @@ -0,0 +1,43 @@ +import copy +from multiprocessing import Pool + +import numpy as np + +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain + + +# pairs for crossover selection +def panmixis(pop: list[Structure]) -> list[tuple[Structure, Structure]]: + np.random.shuffle(list(pop)) + return [(pop[idx], pop[idx + 1]) for idx in range(len(pop) - 1)] + + +# best indivisual selection +def structure_level_crossover( + operands: tuple[Structure, Structure], + domain: Domain, + **kwargs, +): + s1, s2 = operands + new_structure = copy.deepcopy(s1) + + crossover_point = np.random.randint( + 1, + len(new_structure.polygons) + 1, + ) + + # Crossover conversion + part_1 = s1.polygons[0:crossover_point] + if not isinstance(part_1, list): + part_1 = [part_1] + part_2 = s2.polygons[crossover_point : len(s1.polygons)] + if not isinstance(part_2, list): + part_2 = [part_2] + + result = copy.deepcopy(part_1) + result.extend(copy.deepcopy(part_2)) + + new_structure.polygons = result + + return new_structure diff --git a/gefest/core/opt/operators/mutation.py b/gefest/core/opt/operators/mutation.py deleted file mode 100644 index 9dded8fd7..000000000 --- a/gefest/core/opt/operators/mutation.py +++ /dev/null @@ -1,230 +0,0 @@ -import copy -import random -from copy import deepcopy -from multiprocessing import Pool - -import numpy as np - -from gefest.core.algs.postproc.resolve_errors import postprocess -from gefest.core.opt.constraints import check_constraints -from gefest.tools.samplers.standard.standard import MAX_ITER, NUM_PROC, StandardSampler -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import Structure, get_random_poly, get_random_point -from gefest.core.structure.point import Point - - -def mutation(structure: Structure, domain: Domain, rate=0.6) -> Structure: - """We divide mutations into two types: points mutations and polygons mutations - Points mutation: add/delete points, change position - Polygon mutation: add/delete polygon, rotate, resize - Args: - structure: the given generative :obj:`Structure` - domain: the :obj:`Domain` that use for optimization process - rate: likelihood for success mutation. Defaults to 0.6. - Returns: - if mutation was finished succsess - new structure, born from :obj:`structure` - and with mutated individuals inside; otherwise will return the given :obj:`structure` - """ - - random_val = random.random() - - if random_val > rate: - return structure - - is_correct = False - - changes_num = len(structure.polygons) - - n_iter = 0 - - new_structure = structure - - while not is_correct and n_iter < MAX_ITER: - n_iter += 1 - - if NUM_PROC > 1: - with Pool(NUM_PROC) as p: - new_items = \ - p.map(mutate_worker, - [[new_structure, changes_num, domain] for _ in range(NUM_PROC)]) - else: - new_items = [mutate_worker([new_structure, changes_num, domain]) for _ in range(NUM_PROC)] - - for structure in new_items: - if structure is not None: - new_structure = structure - is_correct = True - break - elif structure is None: - # if the mutation did not return anything, - # then it is considered unsuccessful, - # in which case a random structure is generated - new_structure = StandardSampler().get_pop_worker(domain=domain) - is_correct = True - break - return new_structure - - -def polygons_mutation(new_structure: Structure, polygon_to_mutate_idx, domain: Domain) -> Structure: - mutation_way = [drop_poly, add_poly, rotate_poly, resize_poly] - choosen_way = random.choice(mutation_way) - new_structure = choosen_way(new_structure, polygon_to_mutate_idx, domain) - - return new_structure - - -def drop_poly(new_structure: Structure, polygon_to_mutate_idx, domain: Domain) -> Structure: - polygon_to_remove = new_structure.polygons[polygon_to_mutate_idx] - new_structure.polygons.remove(polygon_to_remove) - return new_structure - - -def add_poly(new_structure: Structure, polygon_to_mutate_idx, domain: Domain) -> Structure: - new_poly = get_random_poly(new_structure, domain) - if new_poly is not None: - new_structure.polygons.append(new_poly) - return new_structure - - -def rotate_poly(new_structure: Structure, polygon_to_mutate_idx, domain: Domain) -> Structure: - angle = float(random.randint(-120, 120)) - new_structure.polygons[polygon_to_mutate_idx] = domain.geometry.rotate_poly( - new_structure.polygons[polygon_to_mutate_idx], angle) - return new_structure - - -def resize_poly(new_structure: Structure, polygon_to_mutate_idx, domain: Domain) -> Structure: - new_structure.polygons[polygon_to_mutate_idx] = domain.geometry.resize_poly( - new_structure.polygons[polygon_to_mutate_idx], - x_scale=np.random.uniform(0.25, 3, 1)[0], - y_scale=np.random.uniform(0.25, 3, 1)[0]) - return new_structure - - -def add_delete_point_mutation(new_structure: Structure, polygon_to_mutate_idx, mutate_point_idx, domain) -> Structure: - # Weight for add and delete point - point_drop_mutation_prob = 0.5 - point_add_mutation_prob = 0.5 - - # Choosing polygon and point to mutate - polygon_to_mutate = new_structure.polygons[polygon_to_mutate_idx] - point_to_mutate = polygon_to_mutate.points[mutate_point_idx] - - if (random.random() < point_drop_mutation_prob and - len(polygon_to_mutate.points) > domain.min_points_num): - # if drop point from polygon - new_structure.polygons[polygon_to_mutate_idx].points.remove(point_to_mutate) - else: - # if add point to polygon - new_point = get_random_point(polygon_to_mutate, - new_structure, - domain) - - if new_point is None: - return None - - if random.random() < point_add_mutation_prob: - if mutate_point_idx + 1 < len(polygon_to_mutate.points): - new_structure.polygons[polygon_to_mutate_idx].points.insert(mutate_point_idx + 1, new_point) - else: - new_structure.polygons[polygon_to_mutate_idx].points.insert(mutate_point_idx - 1, new_point) - else: - new_structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx] = new_point - - return new_structure - - -def pos_change_point_mutation(new_structure: Structure, polygon_to_mutate_idx, mutate_point_idx, domain) -> Structure: - # Neighborhood to reposition - eps_x = round(domain.len_x / 10) - eps_y = round(domain.len_y / 10) - - structure = copy.deepcopy(new_structure) - - # Displacement in the neighborhood - displacement_x = random.randint(-eps_x, eps_x) - displacement_y = random.randint(-eps_y, eps_y) - - x_new = structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx].x + displacement_x - y_new = structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx].y + displacement_y - - i = 20 # Number of attempts to change the position of the point - while not domain.contains(Point(x_new, y_new)): - x_new = structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx].x + displacement_x - y_new = structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx].y + displacement_y - i -= 1 - if i == 0: - # If number of attempts is over, - # then transformation is unsuccessful - # and returns input stucture - return new_structure - - structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx].x = x_new - structure.polygons[polygon_to_mutate_idx].points[mutate_point_idx].y = y_new - - return structure - - -def points_mutation(new_structure: Structure, polygon_to_mutate_idx, domain: Domain) -> Structure: - # Choosing type of points mutation, polygon to mutate and point to mutate - - polygon_to_mutate = new_structure.polygons[polygon_to_mutate_idx] - - mutate_point_idx = random.randint(0, len(polygon_to_mutate.points) - 1) - point_to_mutate = polygon_to_mutate.points[mutate_point_idx] - if point_to_mutate in domain.fixed_points: - return None - - case = random.randint(0, 1) - if case == 0: - new_structure = add_delete_point_mutation(new_structure, polygon_to_mutate_idx, mutate_point_idx, domain) - else: - new_structure = pos_change_point_mutation(new_structure, polygon_to_mutate_idx, mutate_point_idx, domain) - - return new_structure - - -def mutate_worker(args): - structure, changes_num, domain = args[0], args[1], args[2] - polygon_mutation_probab = 0.5 - - try: - new_structure = copy.deepcopy(structure) - - for _ in range(changes_num): - polygon_to_mutate_idx = random.randint(0, len(new_structure.polygons) - 1) - case = random.random() - - if case < polygon_mutation_probab: - new_structure = polygons_mutation(new_structure, polygon_to_mutate_idx, domain) - else: - new_structure = points_mutation(new_structure, polygon_to_mutate_idx, domain) - - if new_structure is None: - continue - - for fixed in domain.fixed_points: - if fixed not in new_structure.polygons: - # If fixed points were removed from the structure after the mutation, - # they must be added back - if not (fixed.points == [p.points for p in new_structure.polygons]): - new_structure.polygons.append(deepcopy(fixed)) - - new_structure = postprocess(new_structure, domain) - constraints = check_constraints(structure=new_structure, domain=domain) - max_attempts = 3 # Number of attempts to postprocess mutated structures - while not constraints: - new_structure = postprocess(new_structure, domain) - constraints = check_constraints(structure=new_structure, domain=domain) - max_attempts -= 1 - if max_attempts == 0: - # If attempts is over, - # mutation is considered like unsuccessful - return None - - return new_structure - except Exception as ex: - print(f'Mutation error: {ex}') - import traceback - print(traceback.format_exc()) - return None diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py new file mode 100644 index 000000000..4371e4472 --- /dev/null +++ b/gefest/core/opt/operators/mutations.py @@ -0,0 +1,174 @@ +import copy +import random +from copy import deepcopy +from enum import Enum +from functools import partial +from typing import Callable + +import numpy as np + +from gefest.core.algs.postproc.resolve_errors import postprocess +from gefest.core.geometry import Point, Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.utils import get_random_point, get_random_poly + + +def mutate_structure( + structure: Structure, + domain: Domain, + mutations: list[Callable], + mutation_chance: float, + mutations_probs: list[int], +): + + new_structure = copy.deepcopy(structure) + + for _ in enumerate(range(len(new_structure))): + idx_ = np.random.randint(0, len(new_structure)) + if np.random.random() < mutation_chance: + chosen_mutation = np.random.choice( + a=mutations, + size=1, + p=mutations_probs, + ) + new_structure = chosen_mutation[0](new_structure, domain, idx_) + + +def rotate_poly(new_structure: Structure, domain: Domain, idx_: int = None) -> Structure: + angle = float(np.random.randint(-120, 120)) + new_structure.polygons[idx_] = domain.geometry.rotate_poly( + new_structure.polygons[idx_], + angle, + ) + return new_structure + + +def drop_poly( + new_structure: Structure, + domain: Domain, + idx_: int = None, +) -> Structure: + if len(new_structure.polygons) > (domain.min_poly_num + 1): + idx_ = idx_ if idx_ else int(np.random.randint(0, len(new_structure))) + polygon_to_remove = new_structure.polygons[idx_] + if any([p in polygon_to_remove for p in domain.fixed_points]): + new_structure.polygons.remove(polygon_to_remove) + return new_structure + + +def add_poly( + new_structure: Structure, + domain: Domain, + idx_: int = None, +) -> Structure: + if len(new_structure.polygons) < (domain.max_poly_num - 1): + new_poly = get_random_poly(new_structure, domain) + if new_poly is not None: + new_structure.polygons.append(new_poly) + return new_structure + + +def resize_poly( + new_structure: Structure, + domain: Domain, + idx_: int = None, +) -> Structure: + new_structure.polygons[idx_] = domain.geometry.resize_poly( + new_structure.polygons[idx_], + x_scale=np.random.uniform(0.25, 3, 1)[0], + y_scale=np.random.uniform(0.25, 3, 1)[0], + ) + return new_structure + + +def pos_change_point_mutation( + new_structure: Structure, + domain: Domain, + idx_: int = None, +) -> Structure: + + mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) + # Neighborhood to reposition + eps_x = round(domain.len_x / 10) + eps_y = round(domain.len_y / 10) + + structure = copy.deepcopy(new_structure) + + # Displacement in the neighborhood + displacement_x = random.randint(-eps_x, eps_x) + displacement_y = random.randint(-eps_y, eps_y) + + x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x + y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y + + i = 20 # Number of attempts to change the position of the point + while Point(x_new, y_new) not in domain: + x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x + y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y + i -= 1 + if i == 0: + return new_structure + + structure.polygons[idx_].points[mutate_point_idx].x = x_new + structure.polygons[idx_].points[mutate_point_idx].y = y_new + + # from gefest.core.viz.struct_vizualizer import StructVizualizer + # from matplotlib import pyplot as plt + + # plt.figure(figsize=(7, 7)) + # visualiser = StructVizualizer(domain) + + # info = { + # 'spend_time': 1, + # 'fitness': 0, + # 'type': 'prediction', + # } + # visualiser.plot_structure( + # [structure, new_structure], [info, info], ['-', '-.'], + # ) + + # plt.show(block=True) + + return structure + + +def add_point(new_structure: Structure, domain: Domain, idx_: int = None): + mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) + + polygon_to_mutate = new_structure[idx_] + + new_point = get_random_point( + polygon_to_mutate, + new_structure, + domain, + ) + + if new_point is not None: + if mutate_point_idx + 1 < len(polygon_to_mutate): + new_structure.polygons[idx_].points.insert( + mutate_point_idx + 1, + new_point, + ) + else: + new_structure.polygons[idx_].points.insert( + mutate_point_idx - 1, + new_point, + ) + return new_structure + + +def drop_point(new_structure: Structure, domain: Domain, idx_: int = None): + mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) + + polygon_to_mutate = new_structure[idx_] + point_to_mutate = polygon_to_mutate[mutate_point_idx] + + if len(polygon_to_mutate) > domain.min_points_num: + # if drop point from polygon + new_structure.polygons[idx_].points.remove(point_to_mutate) + + return new_structure + + +# class BaseMutations(Enum): +# mutation_name = mutation diff --git a/gefest/core/opt/operators/operators.py b/gefest/core/opt/operators/operators.py deleted file mode 100644 index 5792ab354..000000000 --- a/gefest/core/opt/operators/operators.py +++ /dev/null @@ -1,17 +0,0 @@ -from gefest.core.opt.operators.mutation import mutation -from gefest.core.opt.operators.crossover import crossover -from gefest.core.opt.operators.sensitivity_methods import sa_mutation - - -class EvoOperators: - def __init__(self, crossover, mutation): - self.crossover = crossover - self.mutation = mutation - - -def default_operators(): - return EvoOperators(crossover=crossover, mutation=mutation) - - -def sensitivity_operators(): - return EvoOperators(crossover=crossover, mutation=sa_mutation) diff --git a/gefest/core/opt/operators/selections.py b/gefest/core/opt/operators/selections.py new file mode 100644 index 000000000..b47219b3e --- /dev/null +++ b/gefest/core/opt/operators/selections.py @@ -0,0 +1,66 @@ +import math +from random import randint + +import numpy as np + +from gefest.core.geometry import Structure + + +def roulette_selection( + pop: list[Structure], + pop_size: int, +) -> list[Structure]: + """Selects the best ones from provided population. + + Args: + pop (list[Structure]): population + pop_size (int): population size limit + + Returns: + list[Structure]: best individuals from pop + """ + _fitness = [i.fitness for i in pop] + probability = [(i / (sum(_fitness))) for i in _fitness] + probability = [(max(probability) / i) for i in probability] + probability = [i / sum(probability) for i in probability] + + chosen = [] + + while len(chosen) < pop_size: + chosen.append(np.random.choice(a=pop, p=probability)) + return chosen + + +def tournament_selection( + pop: list[Structure], + pop_size: int, + fraction: float = 0.1, +) -> list[Structure]: + """ Selects the best ones from provided population. + + Args: + pop (list[Structure]): population + pop_size (int): population size limit + fraction (float, optional): best part size. Defaults to 0.1. + + Returns: + list[Structure]: The best individuals from given population. + Their number is equal to ``'initial_number' * fraction`` + """ + + group_size = math.ceil(len(pop) * fraction) + min_group_size = 2 if len(pop) > 1 else 1 + group_size = max(group_size, min_group_size) + chosen = [] + n_iter = 0 + while len(chosen) < pop_size: + n_iter += 1 + group = [pop[randint(0, len(pop) - 1)] for _ in range(group_size)] + best = min(group, key=lambda ind: ind.fitness) + if best not in chosen: + chosen.append(best) + elif n_iter > pop_size + 100: + n_iter = 0 + rnd = pop[randint(0, len(pop) - 1)] + chosen.append(rnd) + return chosen diff --git a/gefest/core/opt/operators/sensitivity_methods.py b/gefest/core/opt/operators/sensitivity_methods.py deleted file mode 100644 index ce4f5f138..000000000 --- a/gefest/core/opt/operators/sensitivity_methods.py +++ /dev/null @@ -1,177 +0,0 @@ -from copy import deepcopy -import random -from multiprocessing import Pool -import traceback - -from gefest.core.algs.postproc.resolve_errors import postprocess -from gefest.core.opt.constraints import check_constraints -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import Structure -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.point import Point -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.structure.structure import get_structure_from_path -from gefest.tools.samplers.sens_analysis.sens_sampler import SensitivitySampler -from cases.main_conf import opt_params - -MAX_ITER = 50000 -NUM_PROC = 1 - -geometry = Geometry2D() - - -def sa_mutation(structure: Structure, domain: Domain, rate=0.6) -> Structure: - random_val = random.random() - - if random_val > rate: - return structure - - is_correct = False - - changes_num = len(structure.polygons) - - n_iter = 0 - - new_structure = deepcopy(structure) - - while not is_correct and n_iter < MAX_ITER: - n_iter += 1 - - if NUM_PROC > 1: - with Pool(NUM_PROC) as p: - new_items = p.map( - mutate_worker, - [[new_structure, changes_num, domain] for _ in range(NUM_PROC)], - ) - else: - new_items = [ - mutate_worker([new_structure, changes_num, domain]) - for _ in range(NUM_PROC) - ] - - for structure in new_items: - if structure is not None: - new_structure = structure - is_correct = True - break - elif structure is None: - # if the mutation did not return anything, - # then it is considered unsuccessful, - # in which case a random structure is generated - - new_structure = SensitivitySampler( - path=opt_params.structure_path - ).get_pop_worker(domain=domain) - is_correct = True - break - return new_structure - - -def mutate_worker(args): - structure, changes_num, domain = args[0], args[1], args[2] - - try: - new_structure = deepcopy(structure) - - for _ in range(changes_num): - mutations = [change_position, removing_point, rotate_poly] - chosen_mutation = random.choice(mutations) - polygon_to_mutate_idx = random.randint(0, len(new_structure.polygons) - 1) - polygon_to_mutate = deepcopy(new_structure.polygons[polygon_to_mutate_idx]) - - mutated_polugon = chosen_mutation(polygon_to_mutate) - - new_structure.polygons[polygon_to_mutate_idx] = mutated_polugon - - if new_structure is None: - continue - - for fixed in domain.fixed_points: - if fixed not in new_structure.polygons: - # If fixed points were removed from the structure after the mutation, - # they must be added back - if not (fixed.points == [p.points for p in new_structure.polygons]): - new_structure.polygons.append(deepcopy(fixed)) - - new_structure = postprocess(new_structure, domain) - constraints = check_constraints(structure=new_structure, domain=domain) - max_attempts = 3 # Number of attempts to postprocess mutated structures - while not constraints: - new_structure = postprocess(new_structure, domain) - constraints = check_constraints(structure=new_structure, domain=domain) - max_attempts -= 1 - if max_attempts == 0: - # If attempts is over, - # mutation is considered like unsuccessful - return None - - return new_structure - except Exception as ex: - print(f"Mutation error: {ex}") - print(traceback.format_exc()) - return None - - -def change_position(polygon: Polygon): - moving_step = geometry.get_length(polygon=polygon) * 0.05 - directions = ["north", "south", "east", "west", "n-w", "s-w", "n-e", "s-e"] - - chosen_direct = random.choice(directions) - - moved_poly = deepcopy(polygon) - for idx, point in enumerate(moved_poly.points): - moved_poly.points[idx] = moving_point(chosen_direct, point, moving_step) - - return moved_poly - - -def moving_point(direction: str, point: Point, moving_step) -> Point: - directions = { - "north": Point(point.x + moving_step, point.y), - "south": Point(point.x - moving_step, point.y), - "east": Point(point.x, point.y + moving_step), - "west": Point(point.x, point.y - moving_step), - "n-w": Point(point.x + moving_step, point.y - moving_step), - "s-w": Point(point.x - moving_step, point.y + moving_step), - "n-e": Point(point.x + moving_step, point.y + moving_step), - "s-e": Point(point.x - moving_step, point.y - moving_step), - } - return directions[direction] - - -def removing_point(polygon: Polygon): - if len(polygon.points) > 2: - polygon = deepcopy(polygon) - points = polygon.points - rand_idx = random.randint(0, len(points) - 1) - points.pop(rand_idx) - polygon.points = points - - return polygon - else: - return polygon - - -def get_structure_for_analysis(path: str): - structure = get_structure_from_path(path=path) - if random.random() < 0.2 and len(structure.polygons) > 1: - polygons = structure.polygons - rand_idx = random.randint(0, len(polygons) - 1) - polygons.pop(rand_idx) - structure.polygons = polygons - - methods = [change_position, removing_point, rotate_poly] - for idx, polygon in enumerate(structure.polygons): - chosen_method = random.choice(methods) - new_poly = chosen_method(polygon) - structure.polygons[idx] = new_poly - - return structure - - -def rotate_poly(polygon: Polygon): - angle = random.randint(1, 360) - poly = deepcopy(polygon) - rotated_poly = geometry.rotate_poly(poly=poly, angle=angle) - - return rotated_poly diff --git a/gefest/core/opt/result.py b/gefest/core/opt/result.py index acae135bd..c7098b0b2 100644 --- a/gefest/core/opt/result.py +++ b/gefest/core/opt/result.py @@ -1,7 +1,7 @@ import json import os from dataclasses import dataclass -from typing import Union, List, Optional +from typing import List, Optional, Union from gefest.core.serialization.serializer import Serializer from gefest.core.structure.structure import Structure @@ -17,13 +17,13 @@ class Result: def save(self, json_file_path: os.PathLike = None) -> Optional[str]: if json_file_path is None: return json.dumps(self, indent=4, cls=Serializer) - with open(json_file_path, mode='w') as json_fp: + with open(json_file_path, mode="w") as json_fp: json.dump(self, json_fp, indent=4, cls=Serializer) @staticmethod - def load(json_str_or_file_path: Union[str, os.PathLike] = None) -> 'Result': + def load(json_str_or_file_path: Union[str, os.PathLike] = None) -> "Result": try: return json.loads(json_str_or_file_path, cls=Serializer) except json.JSONDecodeError as exc: - with open(json_str_or_file_path, mode='r') as json_fp: + with open(json_str_or_file_path, mode="r") as json_fp: return json.load(json_fp, cls=Serializer) diff --git a/gefest/core/opt/setup.py b/gefest/core/opt/setup.py deleted file mode 100644 index 4ab9f3cd2..000000000 --- a/gefest/core/opt/setup.py +++ /dev/null @@ -1,21 +0,0 @@ -from collections.abc import Callable -from dataclasses import dataclass -from typing import List, Union - -from gefest.core.structure.domain import Domain - - -@dataclass -class Setup: - """The wrapper object that union :obj:`Domain` and a simulator of physical process - - Args: - domain (Domain): the :obj:`Domain` that use for optimization process - simulator (Callable): the simulator of physical process - - Returns: - Setup: prepared settings for optimization - """ - - domain: Union[Domain, List[Domain]] - simulator: Callable = None diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py new file mode 100644 index 000000000..a9de594ef --- /dev/null +++ b/gefest/core/opt/strategies/crossover.py @@ -0,0 +1,75 @@ +import copy +from typing import Callable + +import numpy as np + +from gefest.core.geometry import Structure +from gefest.core.utils import WorkerData, where + +from .strategy import Strategy + + +class CrossoverStrategy(Strategy): + def __init__(self, opt_params): + super().__init__(opt_params.workers_manager) + + self.prob = opt_params.crossover_prob + self.crossovers = opt_params.crossovers + self.each_prob = opt_params.crossover_each_prob + self.postprocess: Callable = opt_params.postprocessor + self.parent_pairs_selector: Callable = opt_params.pair_selector + self.sampler: Callable = opt_params.sampler + self.attempts = 3 + + def __call__(self, pop: list[Structure]) -> list[Structure]: + return self.crossover(pop=pop) + + def crossover(self, pop: list[Structure]): + pairs_to_crossover = copy.deepcopy(self.parent_pairs_selector(pop)) + new_generation = np.full(len(pairs_to_crossover), None) + chosen_crossovers = np.random.choice( + a=self.crossovers, + size=len(pairs_to_crossover), + p=self.each_prob, + ) + + chosen_crossovers = [(cm, self.postprocess) for cm in chosen_crossovers] + children, _ = self._mp( + [ + WorkerData(funcs, idx, args) + for funcs, idx, args in zip( + chosen_crossovers, + range(len(pairs_to_crossover)), + pairs_to_crossover, + ) + ], + ) + + succes_crossover_ids = where(children, lambda ind: ind != None) + for idx in succes_crossover_ids: + new_generation[idx] = children[idx] + + for _ in range(self.attempts): + failed_idx = where(new_generation, lambda ind: ind == None) + if len(failed_idx) > 0: + children, _ = self._mp( + [ + WorkerData(funcs, idx, args) + for funcs, idx, args in zip( + [chosen_crossovers[idx] for idx in failed_idx], + failed_idx, + [pairs_to_crossover[idx] for idx in failed_idx], + ) + ], + ) + succes_crossover_ids = where(children, lambda ind: ind != None) + for idx in succes_crossover_ids: + new_generation[idx] = children[idx] + else: + break + failed_idx = where(new_generation, lambda ind: ind == None) + if len(failed_idx) > 0: + new_generation[failed_idx] = self.sampler(len(failed_idx)) + pop.extend(new_generation) + + return pop diff --git a/gefest/core/opt/strategies/mutation.py b/gefest/core/opt/strategies/mutation.py new file mode 100644 index 000000000..816265f1a --- /dev/null +++ b/gefest/core/opt/strategies/mutation.py @@ -0,0 +1,77 @@ +import copy +from functools import partial +from typing import Callable + +from gefest.core.geometry import Structure +from gefest.core.opt.operators.mutations import mutate_structure +from gefest.core.utils import WorkerData, where + +from .strategy import Strategy + + +class MutationStrategy(Strategy): + def __init__(self, opt_params): + super().__init__(opt_params.workers_manager) + self.domain = opt_params.domain + self.mutation_prob = opt_params.mutation_prob + self.mutations = opt_params.mutations + self.each_prob = opt_params.mutation_each_prob + self.postprocess: Callable = opt_params.postprocessor + self.sampler = opt_params.sampler + self.postprocess_attempts = 3 + + def __call__(self, pop: list[Structure]) -> list[Structure]: + return self.mutate(pop=pop) + + def mutate(self, pop: list[Structure]): + + mutated_pop = copy.deepcopy(pop) + mutator = partial( + mutate_structure, + domain=self.domain, + mutations=self.mutations, + mutation_chance=self.mutation_prob, + mutations_probs=self.each_prob, + ) + chosen_mutations = [(mutator, self.postprocess) for _ in range(len(pop))] + + mutated, _ = self._mp( + [ + WorkerData(funcs, idx, args) + for funcs, idx, args in zip( + chosen_mutations, + range(len(pop)), + pop, + ) + ], + ) + + succes_mutated_ids = where(mutated, lambda ind: ind != None) + for idx in succes_mutated_ids: + mutated_pop[idx] = mutated[idx] + + for _ in range(self.postprocess_attempts): + failed_idx = where(mutated, lambda ind: ind == None) + if len(failed_idx) > 0: + mutated, _ = self._mp( + [ + WorkerData(funcs, idx, args) + for funcs, idx, args in zip( + [(self.postprocess,) for idx in failed_idx], + failed_idx, + [mutated_pop[idx] for idx in failed_idx], + ) + ], + ) + + succes_mutated_ids = where(mutated, lambda ind: ind != None) + for idx in succes_mutated_ids: + mutated_pop[idx] = mutated[idx] + + failed_idx = where(mutated, lambda ind: ind == None) + if len(failed_idx) > 0: + generated = self.sampler(len(failed_idx)) + for enum_id, idx in enumerate(failed_idx): + mutated_pop[idx] = generated[enum_id] + + return mutated_pop diff --git a/gefest/core/opt/strategies/strategy.py b/gefest/core/opt/strategies/strategy.py new file mode 100644 index 000000000..5b9146723 --- /dev/null +++ b/gefest/core/opt/strategies/strategy.py @@ -0,0 +1,24 @@ +from abc import ABCMeta, abstractmethod +from typing import Any + +from gefest.core.geometry import Structure +from gefest.core.utils import WorkersManager + + +class Strategy(metaclass=ABCMeta): + """Abstract class for algorithm steps. + Provides shared multiprocessing pool. + """ + + def __init__(self, wm: WorkersManager): + self._mp: WorkersManager = wm + + @abstractmethod + def __call__( + self, + pop: list[Structure], + *args: Any, + **kwds: Any, + ) -> list[Structure]: + """Code""" + ... diff --git a/gefest/core/serialization/any.py b/gefest/core/serialization/any.py index 108dcbf2a..073fcd34c 100644 --- a/gefest/core/serialization/any.py +++ b/gefest/core/serialization/any.py @@ -2,29 +2,24 @@ from inspect import signature from typing import Any, Dict, Type -from gefest.core.serialization.serializer import Serializer, INSTANCE_OR_CALLABLE +from gefest.core.serialization.serializer import INSTANCE_OR_CALLABLE, Serializer def any_to_json(obj: INSTANCE_OR_CALLABLE) -> Dict[str, Any]: return { - **{k: v for k, v in vars(obj).items() if k != 'log'}, - **Serializer.dump_path_to_obj(obj) + **{k: v for k, v in vars(obj).items() if k != "log"}, + **Serializer.dump_path_to_obj(obj), } -def any_from_json(cls: Type[INSTANCE_OR_CALLABLE], json_obj: Dict[str, Any]) -> INSTANCE_OR_CALLABLE: +def any_from_json( + cls: Type[INSTANCE_OR_CALLABLE], json_obj: Dict[str, Any], +) -> INSTANCE_OR_CALLABLE: cls_parameters = signature(cls.__init__).parameters - if 'kwargs' not in cls_parameters: - init_data = { - k: v - for k, v in json_obj.items() - if k in cls_parameters - } + if "kwargs" not in cls_parameters: + init_data = {k: v for k, v in json_obj.items() if k in cls_parameters} obj = cls(**init_data) - vars(obj).update({ - k: json_obj[k] - for k in json_obj.keys() ^ init_data.keys() - }) + vars(obj).update({k: json_obj[k] for k in json_obj.keys() ^ init_data.keys()}) else: init_data = deepcopy(json_obj) obj = cls(**init_data) diff --git a/gefest/core/serialization/serializer.py b/gefest/core/serialization/serializer.py index b91445466..304805cc9 100644 --- a/gefest/core/serialization/serializer.py +++ b/gefest/core/serialization/serializer.py @@ -3,33 +3,32 @@ from json import JSONDecoder, JSONEncoder from typing import Any, Callable, Dict, Type, TypeVar, Union -MODULE_X_NAME_DELIMITER = '/' -INSTANCE_OR_CALLABLE = TypeVar('INSTANCE_OR_CALLABLE', object, Callable) -CLASS_PATH_KEY = '_class_path' +MODULE_X_NAME_DELIMITER = "/" +INSTANCE_OR_CALLABLE = TypeVar("INSTANCE_OR_CALLABLE", object, Callable) +CLASS_PATH_KEY = "_class_path" class Serializer(JSONEncoder, JSONDecoder): - _to_json = 'to_json' - _from_json = 'from_json' + _to_json = "to_json" + _from_json = "from_json" CODERS_BY_TYPE = {} def __init__(self, *args, **kwargs): - for base_class, coder_name in [(JSONEncoder, 'default'), (JSONDecoder, 'object_hook')]: - base_kwargs = {k: kwargs[k] for k in kwargs.keys() & signature(base_class.__init__).parameters} + for base_class, coder_name in [(JSONEncoder, "default"), (JSONDecoder, "object_hook")]: + base_kwargs = { + k: kwargs[k] for k in kwargs.keys() & signature(base_class.__init__).parameters + } base_kwargs[coder_name] = getattr(self, coder_name) base_class.__init__(self, **base_kwargs) if not Serializer.CODERS_BY_TYPE: from gefest.core.opt.result import Result - from gefest.core.structure.structure import Structure from gefest.core.structure.point import Point from gefest.core.structure.polygon import Polygon + from gefest.core.structure.structure import Structure - from .any import ( - any_from_json, - any_to_json, - ) + from .any import any_from_json, any_to_json _to_json = Serializer._to_json _from_json = Serializer._from_json @@ -38,12 +37,13 @@ def __init__(self, *args, **kwargs): Result: basic_serialization, Structure: basic_serialization, Polygon: basic_serialization, - Point: basic_serialization - + Point: basic_serialization, } @staticmethod - def _get_field_checker(obj: Union[INSTANCE_OR_CALLABLE, Type[INSTANCE_OR_CALLABLE]]) -> Callable[..., bool]: + def _get_field_checker( + obj: Union[INSTANCE_OR_CALLABLE, Type[INSTANCE_OR_CALLABLE]], + ) -> Callable[..., bool]: if isclass(obj): return issubclass return isinstance @@ -76,13 +76,11 @@ def dump_path_to_obj(obj: INSTANCE_OR_CALLABLE) -> Dict[str, str]: else: obj_name = obj.__class__.__qualname__ - if getattr(obj, '__module__', None) is not None: + if getattr(obj, "__module__", None) is not None: obj_module = obj.__module__ else: obj_module = obj.__class__.__module__ - return { - CLASS_PATH_KEY: f'{obj_module}{MODULE_X_NAME_DELIMITER}{obj_name}' - } + return {CLASS_PATH_KEY: f"{obj_module}{MODULE_X_NAME_DELIMITER}{obj_name}"} def default(self, obj: INSTANCE_OR_CALLABLE) -> Dict[str, Any]: """Tries to encode objects that are not simply json-encodable to JSON-object @@ -114,7 +112,7 @@ def _get_class(class_path: str) -> Type[INSTANCE_OR_CALLABLE]: module_name, class_name = class_path.split(MODULE_X_NAME_DELIMITER) obj_cls = import_module(module_name) - for sub in class_name.split('.'): + for sub in class_name.split("."): obj_cls = getattr(obj_cls, sub) return obj_cls @@ -134,8 +132,10 @@ def object_hook(self, json_obj: Dict[str, Any]) -> Union[INSTANCE_OR_CALLABLE, d del json_obj[CLASS_PATH_KEY] base_type = Serializer._get_base_type(obj_cls) if isclass(obj_cls) and base_type is not None: - return Serializer._get_coder_by_type(base_type, Serializer._from_json)(obj_cls, json_obj) + return Serializer._get_coder_by_type(base_type, Serializer._from_json)( + obj_cls, json_obj, + ) elif isfunction(obj_cls) or ismethod(obj_cls): return obj_cls - raise TypeError(f'Parsed obj_cls={obj_cls} is not serializable, but should be') + raise TypeError(f"Parsed obj_cls={obj_cls} is not serializable, but should be") return json_obj diff --git a/gefest/core/structure/domain.py b/gefest/core/structure/domain.py deleted file mode 100644 index a76b0ce8b..000000000 --- a/gefest/core/structure/domain.py +++ /dev/null @@ -1,123 +0,0 @@ -from typing import List, Optional, Tuple - -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon - - -class Domain: - """:obj:`Domain` is responsible for the whole information about geometry of the - problem - Args: - name: the name 'id' of the :obj:`Domain`, by deafult ``name='main'`` - allowed_area: determinate allowed area for exploring solution - into its frame; the :obj:`list` of :obj:`tuple` objects that - contain couples of border coordinates, by default is ``None`` - If ``allowed_area=None``, allowed area will be determinated by square - with the ``length of edge = 100`` and bottom left corner located in the origin. - max_poly_num: the maximum number of :obj:`Polygon` objects :obj:`Structure` - might contains, by default ``max_poly_num=4`` - min_poly_num: the minimum number of :obj:`Polygon` objects :obj:`Structure` - might contains, by default ``min_poly_num=2`` - max_points_num: the maximum number of :obj:`Point` objects :obj:`Polygon` - might contains, by default ``max_points_num=50`` - min_points_num: the minimum number of :obj:`Point` objects :obj:`Polygon` - might contains, by default ``min_points_num=20`` - fixed_points: determine the areas that must not be ignored during find solution; - the :obj:`list` of sets of border coordinates, every set has contain couples of coordinates - as set of :obj:`tuple`, by default is ``None`` - is_closed: will create geometrical objects with closed borders (when start point is same - with the last one) if ``True``, against if ``False``; by default is ``True`` - geometry: determinate a way for processing created objects, by default is ``None`` - If ``geometry=None``, created objects will process as 2D objects via :obj:`Geometry2D()` - Attributes: - min_x: the minimum value among **x** coordinates within **allowed_area** - max_x: the maximum value among **x** coordinates within **allowed_area** - min_y: the minimum value among **y** coordinates within **allowed_area** - max_y: the maximum value among **y** coordinates within **allowed_area** - len_x: the absolute difference betwen **max_x** and **min_x** - len_y: the absolute difference betwen **max_y** and **min_y** - bound_poly: creates the :obj:`Polygon` by :obj:`Domain`'s border coordinates - Returns: - Domain: ``obj Domain()`` - """ - - def __init__(self, name='main', allowed_area: Optional[List[Tuple]] = None, - max_poly_num=4, min_poly_num=2, - max_points_num=50, min_points_num=20, - prohibited_area: Optional = None, - fixed_points=None, - is_closed=True, - geometry=None): - self.name = name - self.is_closed = is_closed - if geometry is None: - self.geometry = Geometry2D() - else: - self.geometry = geometry - - if allowed_area is None: - allowed_area = [(0, 0), - (0, 100), - (100, 100), - (100, 0)] - else: - allowed_area = [(int(round(p[0], 0)), int(round(p[1], 0))) for p in allowed_area] - - self.allowed_area = allowed_area - self.prohibited_area = prohibited_area - - self.max_poly_num = max_poly_num - self.min_poly_num = min_poly_num - - self.max_points_num = max_points_num - self.min_points_num = min_points_num - - self.min_dist = max(self.max_x - self.min_x, self.max_y - self.min_y) / 35 - - self.fixed_points = [Polygon(polygon_id='fixed', points=[Point(p[0], p[1]) for p in poly]) for poly in - fixed_points] \ - if fixed_points is not None else [] - - @property - def min_x(self): - return min(p[0] for p in self.allowed_area) - - @property - def max_x(self): - return max(p[0] for p in self.allowed_area) - - @property - def min_y(self): - return min(p[1] for p in self.allowed_area) - - @property - def max_y(self): - return max(p[1] for p in self.allowed_area) - - @property - def len_x(self): - return abs(self.max_x - self.min_x) - - @property - def len_y(self): - return abs(self.max_y - self.min_y) - - def contains(self, point: Point): - """Checking :obj:`Domain` contains :obj:`point` - Args: - point: checked point - Returns: - ``True`` if given :obj:`Point` locates in the allowed area borders, - otherwise returns ``False`` - """ - geom_poly_allowed = Polygon(polygon_id=f'bnd_{self.name}', - points=[Point(pt[0], pt[1]) for pt in self.allowed_area]) - return self.geometry.is_contain_point(geom_poly_allowed, point) - - @property - def bound_poly(self): - if self.allowed_area is None or len(self.allowed_area) <= 2: - raise ValueError('Not enough points for domain') - bnd_points = [Point(*pt_coords) for pt_coords in self.allowed_area] - return Polygon(polygon_id=f'bnd_{self.name}', points=bnd_points) diff --git a/gefest/core/structure/point.py b/gefest/core/structure/point.py deleted file mode 100644 index 048e083e5..000000000 --- a/gefest/core/structure/point.py +++ /dev/null @@ -1,83 +0,0 @@ -from dataclasses import dataclass -from typing import List - - -@dataclass -class Point: - """ - The smallest geometrical object which consists the spatial information of the point - - Args: - _x: the **x** coordinate of :obj:`Point` - _y: the **y** coordinate of :obj:`Point` - _z: the **z** coordinate of :obj:`Point`, by default ``_z=0.0`` - - Attributes: - x: returns the rounded until integer **x** coordinate - y: returns the rounded until integer **y** coordinate - z: returns the rounded until integer **z** coordinate - - Examples: - >>> from gefest.core.structure.point import Point - >>> point = Point(1,2) - >>> point.coords() - [1, 2, 0] - - >>> print('x = {}, y = {}'.format(point.x, point.y)) - x = 1, y = 2 - - Returns: - Point: ``Point(x,y,z)`` - - """ - - _x: float - _y: float - _z: float = 0.0 - - @property - def x(self) -> int: - return round(self._x) - - @x.setter - def x(self, value): - self._x = value - - @property - def y(self) -> int: - return round(self._y) - - @y.setter - def y(self, value): - self._y = value - - @property - def z(self) -> int: - return round(self._z) - - @z.setter - def z(self, value): - self._z = value - - def coords(self): - '''Returns the :obj:`list` included spatial coordinates of the :obj:`Point` - - Returns: - :obj:`List`: ``[x,y,z]`` - - ''' - return [self.x, self.y, self.z] - - -@dataclass -class Point2D(Point): - @property - def z(self): - return 0 - - @z.setter - def z(self, value): - self._z = 0 - - def coords(self): - return [self.x, self.y] diff --git a/gefest/core/structure/polygon.py b/gefest/core/structure/polygon.py deleted file mode 100644 index f9415883d..000000000 --- a/gefest/core/structure/polygon.py +++ /dev/null @@ -1,39 +0,0 @@ -from typing import List, Optional -from uuid import uuid4 - -from gefest.core.structure.point import Point - - -class Polygon: - """The geometrical object made up of :obj:`Point` objects - - Args: - polygon_id: name of :obj:`Polygon`, used as separator between polygons - in the postprocessing layer; must be ``"fixed"`` where created a :obj:`Polygon` - that can not be deleted from working area due postprocessing - points: :obj:`list` of :obj:`Point` objects which form borders of :obj:`Polygon` - - Attributes: - polygon_id: returns the name of :obj:`Polygon` - that can not be deleted from working area due postprocessing - points: returns :obj:`list` of :obj:`Point` which form borders of :obj:`Polygon` - - Examples: - >>> from gefest.core.structure.point import Point - >>> from gefest.core.structure.polygon import Polygon - >>> points_triagle = [Point(0,0), Point(3,3), Point(3,0)] - >>> triangle = Polygon('triangle', points=points_triagle) - >>> triangle.points - [Point(_x=0, _y=0, _z=0.0), - Point(_x=3, _y=3, _z=0.0), - Point(_x=3, _y=0, _z=0.0)] - - Returns: - Polygon: ``Polygon(List[Point])`` - """ - - def __init__(self, polygon_id: str = str(uuid4()), points: Optional[List[Point]] = None): - if points is None: - points = [] - self.id = polygon_id - self.points = points diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py index abb50d76e..1d0908c2d 100644 --- a/gefest/core/structure/prohibited.py +++ b/gefest/core/structure/prohibited.py @@ -1,13 +1,16 @@ +from typing import Optional + from shapely.geometry.point import Point -from typing import Optional, List -from gefest.core.structure.structure import Structure -from gefest.core.structure.structure import Polygon -from gefest.core.structure.structure import Point as G_Point +from gefest.core.geometry import Point as G_Point +from gefest.core.geometry import Polygon, PolyID, Structure -def create_prohibited(targets: Optional[List[List]] = None, fixed_points: Optional[List[List]] = None, - fixed_area: Optional[List[List]] = None) -> Structure: +def create_prohibited( + targets: Optional[list[list]] = None, + fixed_points: Optional[list[list]] = None, + fixed_area: Optional[list[list]] = None, +) -> Structure: """ Creation of fixed, prohibited structures. Polygons cannot cross them @@ -19,19 +22,21 @@ def create_prohibited(targets: Optional[List[List]] = None, fixed_points: Option """ prohibited_area = [] if targets is not None: - target_polygons = [List(Point(target).buffer(20).exterior.coords) for target in targets] + target_polygons = [list(Point(target).buffer(20).exterior.coords) for target in targets] target_points = [[G_Point(p[0], p[1]) for p in target] for target in target_polygons] - poly_targets = [Polygon(polygon_id='prohibited_target', points=points) for points in target_points] + poly_targets = [ + Polygon(polygon_id=PolyID.PROH_TARG, points=points) for points in target_points + ] prohibited_area += poly_targets if fixed_points is not None: fix_points = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_points] - poly_fixed = [Polygon(polygon_id='prohibited_poly', points=points) for points in fix_points] + poly_fixed = [Polygon(polygon_id=PolyID.PROH_POLY, points=points) for points in fix_points] prohibited_area += poly_fixed if fixed_area is not None: fix_area = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_area] - poly_area = [Polygon(polygon_id='prohibited_area', points=points) for points in fix_area] + poly_area = [Polygon(polygon_id=PolyID.PROH_AREA, points=points) for points in fix_area] prohibited_area += poly_area struct = Structure(prohibited_area) diff --git a/gefest/core/structure/structure.py b/gefest/core/structure/structure.py deleted file mode 100644 index 38fe5a693..000000000 --- a/gefest/core/structure/structure.py +++ /dev/null @@ -1,339 +0,0 @@ -import json -import pickle -from uuid import uuid4 -from dataclasses import dataclass -from random import randint, choice, random -from typing import List, Optional - -import matplotlib.pyplot as plt -import numpy as np - -from gefest.core.structure.domain import Domain -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon - - -@dataclass -class Structure: - """The geometrical object made up of :obj:`Polygon` objects - Args: - polygons: list of :obj:`Polygon` objects which form a combined set of polygons, - needed for joint processing capability of polygons - Attributes: - text_id: returns information about :obj:`Polygons` and :obj:`Points` - included in :obj:`Structure` - polygons: returns the :obj:`list` of :obj:`Polygon` objects - total_points: returns the :obj:`list` with lengths (number of :obj:`Point`) - of every :obj:`Polygon` included - Examples: - >>> from gefest.core.structure.point import Point - >>> from gefest.core.structure.polygon import Polygon - >>> from gefest.core.structure.structure import Structure - >>> # creating the rectangle Polygon - >>> points_rect = [Point(4,0), Point(8,0), Point(8,4), Point(4,4), Point(4,0)] - >>> rectangle = Polygon('rectangle', points=points_rect) - >>> # creating the triangle Polygon - >>> points_triagle = [Point(0,0), Point(3,3), Point(3,0), Point(0,0)] - >>> triangle = Polygon('triangle', points=points_triagle) - >>> # creating the Structure and plot it - >>> struct = Structure([triangle, rectangle]) - >>> struct.text_id - 'P0=4:(x=0, y=0); (x=3, y=3); (x=3, y=0); (x=0, y=0); - P1=5:(x=4, y=0); (x=8, y=0); (x=8, y=4); (x=4, y=4); (x=4, y=0); ' - >>> struct.total_points - [4, 5] - Returns: - Structure: ``Structure(List[Polygon])`` - """ - - polygons: List[Polygon] - - def __str__(self): - out_str = "" - for i, pol in enumerate(self.polygons): - out_str += f"\r\n Polygon {i}, size {len(pol.points)}: \r\n" - for j, pt in enumerate(pol.points): - out_str += f"Point {j}: x={round(pt.x, 2)}, y={round(pt.y, 2)}; " - return out_str - - def __repr__(self): - return json.dumps(self, default=vars) - - @property - def text_id(self): - out_str = "" - for i, pol in enumerate(self.polygons): - out_str += f"P{i}={len(pol.points)}:" - for j, pt in enumerate(pol.points): - out_str += f"(x={round(pt.x, 2)}, y={round(pt.y, 2)}); " - return out_str - - @property - def length(self): - return sum([p.length for p in self.polygons]) - - def total_points(self) -> list: - return [len(p.points) for p in self.polygons] - - @property - def size(self): - return sum([len(p.points) for p in self.polygons]) - - def plot( - self, - title=None, - legend=False, - color=None, - grid=False, - ax=None, - show_coords=False, - ): - """Visualization with drawn :obj:`Strucrure` - - Args: - title: the name of drawing, by default ``None`` - legend: show legend (id of polygons), by default ``False`` - color: set special color for all polygons, see variants of colors in `matplotlib documentation`_ - ax: set name of axes where drown structure has to be part of complicated matplotlib figure, - by default `None` - show_coords: print coords for every apex of polygon(s) if `True`, by default `False` - - Examples: - >>> struct.plot(legend=True) - - Returns: - plot: |viz| - - .. |viz| image:: https://i.ibb.co/1q0CVNJ/structure-plot.png - .. _matplotlib documentation: - https://matplotlib.org/stable/gallery/color/named_colors.html#sphx-glr-gallery-color-named-colors-py - """ - - for poly in self.polygons: - try: - poly_id = poly.id - poly_id = poly_id.split("-")[-1] - except IndexError: - poly_id = poly.id - - if ax: - x = [point._x for point in poly.points] - y = [point._y for point in poly.points] - - ax.plot(x, y, label=poly.id, c=color, marker="o") - if show_coords: - ax.scatter(x, y, marker="o", c=color) - text_x = [str(round(x, 1)) for x in x] - text_y = [str(round(y, 1)) for y in y] - for idx, text in enumerate(zip(text_x, text_y)): - ax.annotate( - str(text), - (x[idx] + 0.01, y[idx] + 0.01), - rotation=45.0, - fontsize=8, - ) - else: - x = [point._x for point in poly.points] - y = [point._y for point in poly.points] - plt.plot(x, y, label=poly.id, c=color, marker="o") - if show_coords: - plt.scatter(x, y, marker="o", c=color) - text_x = [str(round(x, 1)) for x in x] - text_y = [str(round(y, 1)) for y in y] - for idx, text in enumerate(zip(text_x, text_y)): - plt.annotate( - str(text), - (x[idx] + 0.01, y[idx] + 0.01), - rotation=45.0, - fontsize=8, - ) - if legend: - plt.legend() - if grid: - plt.grid() - plt.title(title) - - -def get_random_structure(domain) -> Structure: - # Creating structure with random number of polygons - - structure = Structure(polygons=[]) - - num_pols = randint(domain.min_poly_num, domain.max_poly_num) - - for _ in range(num_pols): - polygon = get_random_poly(parent_structure=structure, domain=domain) - if polygon is not None and len(polygon.points) > 1: - structure.polygons.append(polygon) - else: - continue - - return structure - - -def get_random_poly( - parent_structure: Optional[Structure], domain: Domain -) -> Optional[Polygon]: - geometry = domain.geometry - try: - """ - Function for creation random polygon. - The main idea is to create centroids along with a neighborhood to locate the polygon. - Neighborhood sizes range from small to large. - The main condition for creating a neighborhood is the absence of other polygons in it. - After setting the neighborhood, polygons are created around the centroid inside the given neighborhood. - This approach is less demanding on postprocessing than random creation - """ - - # Centroid with it neighborhood called occupied area - occupied_area = create_area(domain, parent_structure, geometry) - if occupied_area is None: - # If it was not possible to find the occupied area then returns None - return None - else: - centroid = occupied_area[0] - sigma = occupied_area[1] # Size of neighborhood - # The polygon is created relative to the centroid - # and the size of the neighborhood - polygon = create_poly(centroid, sigma, domain, geometry) - except Exception as ex: - print(ex) - import traceback - - print(traceback.format_exc()) - return None - - return polygon - - -def get_random_point( - polygon: "Polygon", structure: "Structure", domain: "Domain" -) -> Optional[Point]: - # Creating a point to fill the polygon - - centroid = domain.geometry.get_centroid(polygon) - sigma = distance(centroid, structure, domain.geometry) / 3 - point = create_polygon_point(centroid, sigma) - max_attempts = 20 # Number of attempts to create in bound point - while not in_bound(point, domain): - point = create_polygon_point(centroid, sigma) - max_attempts -= 1 - if max_attempts == 0: - return None - return point - - -def create_poly( - centroid: "Point", sigma: int, domain: "Domain", geometry: "Geometry" -) -> Polygon: - # Creating polygon in the neighborhood of the centroid - # sigma defines neighborhood - - num_points = randint( - domain.min_points_num, domain.max_points_num - ) # Number of points in a polygon - points = [] - for _ in range(num_points): - point = create_polygon_point(centroid, sigma) # point in polygon - while not in_bound(point, domain): # checking if a point is in domain - point = create_polygon_point(centroid, sigma) - points.append(point) - if domain.is_closed: - points.append(points[0]) - - poly = geometry.get_convex( - Polygon(polygon_id=str(uuid4()), points=points) - ) # avoid self intersection in polygon - - return poly - - -def create_area(domain: "Domain", structure: "Structure", geometry: "Geometry"): - n_poly = len(structure.polygons) # Number of already existing polygons - area_size = np.random.randint(low=3, high=15) # Neighborhood compression ratio - sigma = ( - max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) / area_size - ) # Neighborhood size - if n_poly == 0: - # In the absence of polygons, the centroid can be located anywhere - centroid = create_random_point(domain) - else: - """ - This procedure allows to find a centroid in the neighborhood - of which there are no other polygons. - The minimum distance must be less than 2.5 * sigma. - """ - centroid = create_random_point(domain) - min_dist = distance( - centroid, structure, geometry - ) # Distance to the nearest polygon in the structure - max_attempts = 20 - while min_dist < 2.5 * sigma: - area_size = np.random.randint(low=3, high=15) - sigma = ( - max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) - / area_size - ) - centroid = create_random_point(domain) - min_dist = distance(centroid, structure, geometry) - if max_attempts == 0: - return None - max_attempts -= 1 - - return centroid, sigma - - -def create_random_point(domain: "Domain") -> Point: - point = Point( - np.random.uniform(low=domain.min_x, high=domain.max_x), - np.random.uniform(low=domain.min_y, high=domain.max_y), - ) - while not in_bound(point, domain): - point = Point( - np.random.uniform(low=domain.min_x, high=domain.max_x), - np.random.uniform(low=domain.min_y, high=domain.max_y), - ) - - return point - - -def create_polygon_point(centroid: "Point", sigma: int) -> Point: - # Creating polygon point inside the neighborhood defined by the centroid - point = Point( - np.random.normal(centroid.x, sigma, 1)[0], - np.random.normal(centroid.y, sigma, 1)[0], - ) - - return point - - -def in_bound(point: "Point", domain: "Domain") -> bool: - poly_domain = Polygon(points=[Point(c[0], c[1]) for c in domain.allowed_area]) - return domain.geometry.is_contain_point(poly_domain, point) - - -def distance(point: "Point", structure: "Structure", geometry: "Geometry") -> float: - polygons = structure.polygons - distances = [] - for poly in polygons: - d = geometry.centroid_distance(point, poly) - distances.append(d) - - return min(distances) - - -def get_structure_from_path(path: str): - """Allows to get structure from ``.pkl`` - - Args: - path (str): path to ``.pkl`` file contains ``Structure`` - - Returns: - Structure: structure from file - """ - - open_file = open(path, "rb") - structure = pickle.load(open_file) - open_file.close() - - return structure[0] diff --git a/gefest/core/utils.py b/gefest/core/utils.py deleted file mode 100644 index f62bb72ec..000000000 --- a/gefest/core/utils.py +++ /dev/null @@ -1,6 +0,0 @@ -from pathlib import Path - - -def project_root() -> Path: - """Returns project root folder.""" - return Path(__file__).parent.parent.parent diff --git a/gefest/core/utils/__init__.py b/gefest/core/utils/__init__.py new file mode 100644 index 000000000..e1faf2c27 --- /dev/null +++ b/gefest/core/utils/__init__.py @@ -0,0 +1,2 @@ +from .functions import chain, project_root, where +from .mp_manager import WorkerData, WorkersManager diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py new file mode 100644 index 000000000..adbe2de3a --- /dev/null +++ b/gefest/core/utils/functions.py @@ -0,0 +1,34 @@ +from functools import reduce +from pathlib import Path +from typing import Any, Callable + + +def project_root() -> Path: + """Returns project root folder.""" + return Path(__file__).parent.parent.parent + + +# def chain(*funcs): +# def chained_call(args): +# return reduce(lambda r, f: f(r), funcs, args) +# return chained_call + + +def where(array: list[Any], condition: Callable[[Callable], bool]) -> list[int]: + return [idx for idx, ind in enumerate(array) if condition(ind)] + + +def chain(*funcs): + _initial_missing = object() + + def chained_call(args=_initial_missing): + if args is _initial_missing: + return reduce(lambda r, f: f(r), funcs[1::], funcs[0]()) + return reduce(lambda r, f: f(r), funcs, args) + + def single_call(args=_initial_missing): + if args is _initial_missing: + return funcs[0]() + return funcs[0](args) + + return chained_call if len(funcs) > 1 else single_call diff --git a/gefest/core/utils/mp_manager.py b/gefest/core/utils/mp_manager.py new file mode 100644 index 000000000..20f87f0a1 --- /dev/null +++ b/gefest/core/utils/mp_manager.py @@ -0,0 +1,108 @@ +import multiprocessing +from typing import Any, Callable, Optional + +from loguru import logger +from pydantic.dataclasses import dataclass + +from gefest.core.utils import chain + + +@dataclass +class WorkerData: + funcs: list[Callable] + idx: int + initial_args: Optional[Any] = None + + +class WorkersManager: + def __init__( + self, + num_workers: Optional[int] = None, + worker_func: Optional[Callable] = None, + ) -> None: + self.worker_func = worker_func if worker_func else WorkersManager.worker + self.num_workers = num_workers if num_workers else multiprocessing.cpu_count() + self.buffer_size = self.num_workers + self.pool = multiprocessing.Pool(processes=self.num_workers) + self.mpm = multiprocessing.Manager() + self.processing_queue = self.mpm.Queue() + self.result_queue = self.mpm.Queue() + self.__out__queue_expected_size = 0 + self.workers = [ + self.pool.apply_async( + self.worker_func, + (self.processing_queue, self.result_queue), + ) + for _ in range(self.num_workers) + ] + + def __del__(self, *args): + self.pool.close() + self.pool.terminate() + + def get_queue_size(self) -> int: + return self.__out__queue_expected_size + + def _queue_pop(self, args) -> None: + self.__out__queue_expected_size += 1 + self.processing_queue.put(args) + + @logger.catch + def _queue_get(self): + self.__out__queue_expected_size -= 1 + return self.result_queue.get() + + @staticmethod + @logger.catch + def worker( + processing_queue: multiprocessing.Queue, + result_queue: multiprocessing.Queue, + ) -> None: + """Executes given func with it params. + Args: + processing_queue: multiprocessing.Queue - input queue + result_queue: multiprocessing.Queue - output queue + Processing_queue provides data of the form: + tuple(list[Callable], int, Optional[Any]) with + funcs, idx, funcs arguments + """ + while True: + data: WorkerData = processing_queue.get() + if data.initial_args is None: + output = chain(*data.funcs)() + else: + output = chain(*data.funcs)(data.initial_args) + + result_queue.put((output, data.idx)) + + def __call__(self, workers_data: list[WorkerData]): + return self.multiprocess(workers_data) + + def multiprocess(self, workers_data: list[WorkerData]): + """Executes provided functions with args in parallel. + Args: + args: tuple, contains some func, (e.g. mutation, crossover operators), + its arguments and index + Returns: + results: [list, list], contains provided functions outputs and indices they sorted by + """ + res_ids_pairs = [] + + for idx, operand in enumerate(workers_data): + + self._queue_pop(operand) + if idx < self.buffer_size: + continue + + else: + res_ids_pairs.append(self._queue_get()) + + for _ in range(self.get_queue_size()): + res_ids_pairs.append(self._queue_get()) + + if len(res_ids_pairs) == 0: + print('err') + res_ids_pairs = sorted(res_ids_pairs, key=lambda x: x[1]) + res, ids = list(zip(*res_ids_pairs)) + + return list(res), list(ids) diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index f0ec84bdb..985a6a861 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -1,11 +1,9 @@ -from typing import List - import matplotlib.pyplot as plt - -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import Structure from matplotlib.lines import Line2D +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain + class StructVizualizer: """The object for mapping a :obj:`Structure` or :obj:`Polygon` @@ -19,7 +17,7 @@ class StructVizualizer: def __init__(self, domain: Domain): self.domain = domain - def plot_structure(self, structs: List[Structure], infos, linestyles): + def plot_structure(self, structs: list[Structure], infos, linestyles="-"): """The method displays the given list[obj:`Structure`] Args: structs: the list[obj:`Structure`] for displaying @@ -48,8 +46,9 @@ def plot_structure(self, structs: List[Structure], infos, linestyles): plt.plot(x, y) - lines = [Line2D([0], [0], color='black', linewidth=3, linestyle=style) - for style in linestyles] + lines = [ + Line2D([0], [0], color="black", linewidth=3, linestyle=style) for style in linestyles + ] plt.legend(lines, infos, loc=2) def plot_poly(self, poly, linestyle): @@ -65,7 +64,9 @@ def plot_poly(self, poly, linestyle): Returns: .. |viz_poly| image:: https://ibb.co/s31cj3c """ - x = [pt.x for pt in poly.points] - y = [pt.y for pt in poly.points] - - plt.plot(x, y, linestyle=linestyle) + x_ = [pt.x for pt in poly.points] + y_ = [pt.y for pt in poly.points] + for i, p in enumerate(zip(x_, y_)): + plt.plot(p[0], p[1], marker='${}$'.format(i), color='black') + + plt.plot(x_, y_,linestyle=linestyle) diff --git a/gefest/tools/__init__.py b/gefest/tools/__init__.py index e69de29bb..4fcce3f52 100644 --- a/gefest/tools/__init__.py +++ b/gefest/tools/__init__.py @@ -0,0 +1,2 @@ +from gefest.tools.estimators.estimator import Estimator +from gefest.tools.fitness import Fitness diff --git a/gefest/tools/estimators/estimator.py b/gefest/tools/estimators/estimator.py index e5526a670..10712ace5 100644 --- a/gefest/tools/estimators/estimator.py +++ b/gefest/tools/estimators/estimator.py @@ -1,39 +1,16 @@ -from typing import Optional, Callable, List -from gefest.core.structure.structure import Structure +from abc import ABCMeta, abstractmethod +from typing import Any +from gefest.core.geometry import Structure -class Estimator: - """ - ::TODO:: make abstract class for further specific realizations in different problems - """ - def __init__(self, estimator, loss: Optional[Callable] = None): - """ - Base estimator class, Structure -> Performance - :param estimator: estimator with .estimate() method - :param loss: function for minimizing, it takes estimator as argument, - if None estimator using as cost function - """ - self.estimator = estimator - self.loss = loss +class Estimator(metaclass=ABCMeta): + def __call__( + self, + struct: Structure, + ) -> Any: + return self.estimate(struct) - def estimate(self, population: List[Structure]): - """ - Estimation of performance - :param population: List(Structure) population of structures for estimation - :return: List(Float) performance of population - """ - performance = [] - size = len(population) - - if self.loss: - for i in range(size): - one_perf = self.loss(population[i], self.estimator) - performance.append(one_perf) - - else: - for i in range(size): - one_perf = self.estimator.estimate(population[i]) - performance.append(one_perf) - - return performance + @abstractmethod + def estimate(self, struct: Structure) -> Any: + ... diff --git a/gefest/tools/estimators/simulators/comsol/comsol_interface.py b/gefest/tools/estimators/simulators/comsol/comsol_interface.py index 804db29f2..76bfc2ba7 100644 --- a/gefest/tools/estimators/simulators/comsol/comsol_interface.py +++ b/gefest/tools/estimators/simulators/comsol/comsol_interface.py @@ -1,21 +1,24 @@ import gc import os -import pickledb -import numpy as np -import mph import pickle - from uuid import uuid4 -from gefest.core.structure.structure import Structure + +import mph +import numpy as np +import pickledb + +from gefest.core.geometry import Structure +from gefest.tools import Estimator os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" USE_AVG_CONST = False -class Comsol: +class Comsol(Estimator): """ ::TODO:: make abstract class for further specific realizations """ + """ Comsol class for microfluidic problem """ @@ -41,18 +44,17 @@ def estimate(self, structure: Structure): model, idx = self._load_simulation_result(self.client, structure) if model is None: poly_box = [] - print('Start COMSOL') + print("Start COMSOL") for i, pol in enumerate(structure.polygons): poly_repr = [] - poly_repr.append(' '.join([str(pt.x) for pt in pol.points])) - poly_repr.append(' '.join([str(pt.y) for pt in pol.points])) + poly_repr.append(" ".join([str(pt.x) for pt in pol.points])) + poly_repr.append(" ".join([str(pt.y) for pt in pol.points])) poly_box.append(poly_repr) model = self.client.load(self.path_to_mph) try: model = self._poly_add(model, poly_box) - model.build() model.mesh() model.solve() @@ -64,21 +66,23 @@ def estimate(self, structure: Structure): idx = self._save_simulation_result(structure, model) try: - outs = [model.evaluate('vlct_1'), - model.evaluate('vlct_2'), - model.evaluate('vlct_3'), - model.evaluate('vlct_4'), - model.evaluate('vlct_5'), - model.evaluate('vlct_side'), - model.evaluate('vlct_main')] + outs = [ + model.evaluate("vlct_1"), + model.evaluate("vlct_2"), + model.evaluate("vlct_3"), + model.evaluate("vlct_4"), + model.evaluate("vlct_5"), + model.evaluate("vlct_side"), + model.evaluate("vlct_main"), + ] except Exception as ex: print(ex) self.client.clear() return 0.0 - u = model.evaluate('spf.U') - curl = model.evaluate('curl') - curv = model.evaluate('curv') / 10 ** 7 + u = model.evaluate("spf.U") + curl = model.evaluate("curl") + curv = model.evaluate("curv") / 10 ** 7 fast_u_tresh = 0 fast_u = np.mean(u[u > 0]) + (np.max(u) - np.mean(u[u > 0])) * fast_u_tresh @@ -88,75 +92,92 @@ def estimate(self, structure: Structure): target = float(sum(outs[0:4])) / float(sum(outs[4:7])) if (curl > 30000) or ((width_ratio < 0.25) or (width_ratio > 0.43)): - print('Speed common condition violated') + print("Speed common condition violated") target = 0 - mean_diff = float(np.mean([abs(float(o) / np.mean(outs[0:4]) - 1) * 100 for o in outs[0:4]])) - if USE_AVG_CONST and any([abs(float(o) / np.mean(outs[0:4]) - 1) * 100 > 5.0 for o in outs[0:4]]): - print('Speed equality violated', [abs(float(o) / np.mean(outs[0:4]) - 1) * 100 for o in outs[0:4]]) + mean_diff = float( + np.mean([abs(float(o) / np.mean(outs[0:4]) - 1) * 100 for o in outs[0:4]]), + ) + if USE_AVG_CONST and any( + [abs(float(o) / np.mean(outs[0:4]) - 1) * 100 > 5.0 for o in outs[0:4]], + ): + print( + "Speed equality violated", + [abs(float(o) / np.mean(outs[0:4]) - 1) * 100 for o in outs[0:4]], + ) target = 0 if target > 0: - print(round(target, 4), round(mean_diff, 2), [round(_, 4) for _ in outs], round(float(curl)), - round(curv, 4), round(width_ratio, 4)) + print( + round(target, 4), + round(mean_diff, 2), + [round(_, 4) for _ in outs], + round(float(curl)), + round(curv, 4), + round(width_ratio, 4), + ) self.client.clear() else: - print(f'Cached: {target}') + print(f"Cached: {target}") return -target def _poly_add(self, model, polygons): for n, poly in enumerate(polygons): try: - model.java.component('comp1').geom('geom1').create('pol' + str(n + 1), 'Polygon') + model.java.component("comp1").geom("geom1").create("pol" + str(n + 1), "Polygon") except Exception: pass - model.java.component('comp1').geom('geom1').feature('pol' + str(n + 1)).set('x', poly[0]) - model.java.component('comp1').geom('geom1').feature('pol' + str(n + 1)).set('y', poly[1]) + model.java.component("comp1").geom("geom1").feature("pol" + str(n + 1)).set( + "x", poly[0], + ) + model.java.component("comp1").geom("geom1").feature("pol" + str(n + 1)).set( + "y", poly[1], + ) return model def _save_simulation_result(self, configuration, model): - if not os.path.exists('./models'): - os.mkdir('./models') + if not os.path.exists("./models"): + os.mkdir("./models") model_uid = str(uuid4()) - model.save(f'./models/{model_uid}.mph') - db = pickledb.load('comsol_db.saved', False) + model.save(f"./models/{model_uid}.mph") + db = pickledb.load("comsol_db.saved", False) db.set(str(configuration), model_uid) db.dump() - if not os.path.exists('./structures'): - os.mkdir('./structures') + if not os.path.exists("./structures"): + os.mkdir("./structures") - with open(f'./structures/{model_uid}.str', 'wb') as f: + with open(f"./structures/{model_uid}.str", "wb") as f: pickle.dump(configuration, f) return model_uid def _load_simulation_result(self, client, configuration): - db = pickledb.load('comsol_db.saved', False) + db = pickledb.load("comsol_db.saved", False) model_uid = db.get(str(configuration)) if model_uid is False: return None, None - model = client.load(f'./models/{model_uid}.mph') + model = client.load(f"./models/{model_uid}.mph") return model, model_uid def _save_fitness(self, configuration, fitness): array_structure = [[[p.x, p.y] for p in poly.points] for poly in configuration.polygons] - db = pickledb.load('fitness_db.saved', False) + db = pickledb.load("fitness_db.saved", False) db.set(str(array_structure), str(round(fitness, 4))) db.dump() def _load_fitness(self, configuration): array_structure = [[[p.x, p.y] for p in poly.points] for poly in configuration.polygons] - db = pickledb.load('fitness_db.saved', False) + db = pickledb.load("fitness_db.saved", False) - db_models = pickledb.load('comsol_db.saved', False) + db_models = pickledb.load("comsol_db.saved", False) model_uid = db_models.get(str(configuration)) diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index cfe314f4f..3e4b3a186 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -1,9 +1,15 @@ import itertools +from copy import deepcopy + import numpy as np +from numpy import ndarray from numpy.core.umath import pi +from skimage.draw import polygon as skipolygon +from skimage.draw import random_shapes from tqdm import tqdm -from copy import deepcopy -from skimage.draw import random_shapes, polygon as skipolygon + +from gefest.core.geometry import Structure +from gefest.tools import Estimator # initial values damping = 1 - 0.001 @@ -66,7 +72,9 @@ def generate_random_map(map_size, random_seed): # Force free media in a square of 20x20 at the center of the map width_center = map_size[0] // 2 length_center = map_size[1] // 2 - obstacle_map[width_center - 20:width_center + 21, length_center - 20:length_center + 21] = 255 + obstacle_map[ + width_center - 20 : width_center + 21, length_center - 20 : length_center + 21, + ] = 255 free_media = obstacle_map == 255 # Obstacles = 1, free media = 0 obstacles = obstacle_map == 0 @@ -75,7 +83,7 @@ def generate_random_map(map_size, random_seed): return obstacle_map -class SoundSimulator: +class SoundSimulator(Estimator): """Class for the configuration and simulation of sound propagation in a map with obstacles. Adapted from https://github.com/Alexander3/wave-propagation @@ -127,25 +135,12 @@ def updateV(self): P = self.pressure for i, j in itertools.product(range(self.size_y), range(self.size_x)): if self.obstacle_map[i, j] == 1: - V[i, j, 0] = V[i, j, 1] = V[i, j, 2] = V[i, j, 3] = 0.0 + V[i, j, 0:4] = 0.0 continue - cell_pressure = P[i, j] - V[i, j, 0] = ( - V[i, j, 0] + cell_pressure - P[i - 1, j] if i > 0 else cell_pressure - ) - V[i, j, 1] = ( - V[i, j, 1] + cell_pressure - P[i, j + 1] - if j < self.size_x - 1 - else cell_pressure - ) - V[i, j, 2] = ( - V[i, j, 2] + cell_pressure - P[i + 1, j] - if i < self.size_y - 1 - else cell_pressure - ) - V[i, j, 3] = ( - V[i, j, 3] + cell_pressure - P[i, j - 1] if j > 0 else cell_pressure - ) + V[i, j, 0] = V[i, j, 0] + P[i, j] - P[i - 1, j] if i > 0 else P[i, j] + V[i, j, 1] = V[i, j, 1] + P[i, j] - P[i, j + 1] if j < self.size_x - 1 else P[i, j] + V[i, j, 2] = V[i, j, 2] + P[i, j] - P[i + 1, j] if i < self.size_y - 1 else P[i, j] + V[i, j, 3] = V[i, j, 3] + P[i, j] - P[i, j - 1] if j > 0 else P[i, j] def updateP(self): """Update the pressure field based on Komatsuzaki's transition rules.""" @@ -153,9 +148,7 @@ def updateP(self): def step(self): """Perform a simulation step, upadting the wind an pressure fields.""" - self.pressure[self.s_y, self.s_x] = initial_P * np.sin( - self.omega * self.iteration - ) + self.pressure[self.s_y, self.s_x] = initial_P * np.sin(self.omega * self.iteration) self.updateV() self.updateP() self.iteration += 1 @@ -173,9 +166,7 @@ def spl(self, integration_interval=60): p0 = 20 * 10e-6 # Pa if integration_interval > self.pressure_hist.shape[0]: integration_interval = self.pressure_hist.shape[0] - rms_p = np.sqrt( - np.mean(np.square(self.pressure_hist[-integration_interval:-1]), axis=0) - ) + rms_p = np.sqrt(np.mean(np.square(self.pressure_hist[-integration_interval:-1]), axis=0)) matrix_db = 20 * np.log10(rms_p / p0) return matrix_db @@ -185,7 +176,15 @@ def run(self): self.pressure_hist[iteration] = deepcopy(self.pressure) self.step() - def estimate(self, structure): + def estimate(self, structure: Structure) -> ndarray: + """Estimates sound pressule level for provided structure. + + Args: + structure (Structure): optimized structure + + Returns: + ndarray: map of sound pressure level (dB) + """ self.obstacle_map = generate_map(self.domain, structure) self.run() spl = self.spl() diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 2252eac66..120410f7a 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -1,15 +1,22 @@ import copy -import numpy as np import subprocess -from gefest.core.structure.structure import Structure +import numpy as np +from gefest.core.geometry import Structure +from gefest.tools import Estimator -class Swan: - def __init__(self, path, targets, grid, domain, - input_file_path="bw_example_cfg", - hs_file_path="r/hs47dd8b1c0d4447478fec6f956c7e32d9.d"): +class Swan(Estimator): + def __init__( + self, + path, + targets, + grid, + domain, + input_file_path="bw_example_cfg", + hs_file_path="r/hs47dd8b1c0d4447478fec6f956c7e32d9.d", + ): self.path_to_model = path self.path_to_input = path + input_file_path self.path_to_hs = path + hs_file_path @@ -20,68 +27,74 @@ def __init__(self, path, targets, grid, domain, def _grid_configuration(self): - file_to_read = open(self.path_to_input, 'r') + file_to_read = open(self.path_to_input, "r") content_read = file_to_read.read() - for_replace = ['xpc', 'xlenc', 'ypc', 'ylenc', 'mxc', 'myc'] - content_for_add = [self.domain.min_x, - self.domain.max_x, - self.domain.min_y, - self.domain.max_y, - self.grid[0], - self.grid[1]] + for_replace = ["xpc", "xlenc", "ypc", "ylenc", "mxc", "myc"] + content_for_add = [ + self.domain.min_x, + self.domain.max_x, + self.domain.min_y, + self.domain.max_y, + self.grid[0], + self.grid[1], + ] new_content = copy.deepcopy(content_read) for replace, content in zip(for_replace, content_for_add): - content_to_replace = replace + '=' + str(content) + content_to_replace = replace + "=" + str(content) start = new_content.find(replace) - end = new_content[start:].find(' ') + end = new_content[start:].find(" ") content_write = new_content.replace( - new_content[start:start + end], content_to_replace) + new_content[start : start + end], + content_to_replace, + ) new_content = content_write file_to_read.close() - file_to_write = open(self.path_to_input, 'w') + file_to_write = open(self.path_to_input, "w") file_to_write.writelines(new_content) file_to_write.close() - def estimate(self, struct: 'Structure'): + def estimate(self, struct: Structure): polygons = struct.polygons - file_to_read = open(self.path_to_input, 'r') + file_to_read = open(self.path_to_input, "r") content_read = file_to_read.read() - for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + for_input = "\nOBSTACLE TRANSM 0. REFL 0. LINE " num_of_polygons = len(polygons) for j, poly in enumerate(polygons): num_of_points = len(2 * poly.points) - points = np.array([p.coords()[:2] for p in poly.points]) + points = np.array([p.coords for p in poly.points]) individ = points.reshape(-1) for i, gen in enumerate(individ): if (i + 1) % 2 == 0: if (i + 1) == num_of_points: for_input += str(self.domain.max_y - gen) else: - for_input += str(self.domain.max_y - gen) + ', ' + for_input += str(self.domain.max_y - gen) + ", " else: - for_input += str(gen) + ', ' + for_input += str(gen) + ", " if j == (num_of_polygons - 1): - for_input += '\n$optline' + for_input += "\n$optline" else: - for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + for_input += "\nOBSTACLE TRANSM 0. REFL 0. LINE " content_to_replace = for_input content_write = content_read.replace( - content_read[content_read.find('\n\n\n') + 3:content_read.rfind('\n$optline') + 9], content_to_replace) + content_read[content_read.find("\n\n\n") + 3 : content_read.rfind("\n$optline") + 9], + content_to_replace, + ) file_to_read.close() - file_to_write = open(self.path_to_input, 'w') + file_to_write = open(self.path_to_input, "w") file_to_write.writelines(content_write) file_to_write.close() - subprocess.run('swan.exe', shell=True, cwd=self.path_to_model) + subprocess.run("swan.exe", shell=True, cwd=self.path_to_model) z = np.loadtxt(self.path_to_hs) hs_target = np.sum([z[target[0], target[1]] for target in self.targets]) - return z, hs_target + return [z, hs_target] diff --git a/gefest/tools/fitness.py b/gefest/tools/fitness.py new file mode 100644 index 000000000..8773ce621 --- /dev/null +++ b/gefest/tools/fitness.py @@ -0,0 +1,29 @@ +from abc import ABCMeta, abstractmethod +from typing import Any, Optional + +from gefest.core.geometry import Structure +from gefest.tools import Estimator + + +class Fitness(metaclass=ABCMeta): + def __init__( + self, + estimator: Optional[Estimator] = None, + ) -> None: + self.estimator = estimator + + def __call__( + self, + pop: list[Structure], + **kwargs, + ) -> list[Structure]: + return self.set_pop_fitness(pop=pop) + + def set_pop_fitness(self, pop: list[Structure]): + for idx, ind in enumerate(pop): + pop[idx].fitness = self.fitness(ind) + return pop + + @abstractmethod + def fitness(self, ind: Structure) -> Any: + ... diff --git a/gefest/tools/optimizers/optimizer.py b/gefest/tools/optimizers/optimizer.py index f90e099b5..d56245432 100644 --- a/gefest/tools/optimizers/optimizer.py +++ b/gefest/tools/optimizers/optimizer.py @@ -1,23 +1,21 @@ -from typing import List, Optional -from gefest.core.structure.structure import Structure +from abc import ABCMeta, abstractmethod +from gefest.core.geometry import Structure -class Optimizer: - def __init__(self, optimizer): - """ - Base optimizer class - :param optimizer: (Object) object with method step - """ - self.optimizer = optimizer - def step(self, population: List[Structure], performance: List[float], n_step: Optional[int] = None): - """ - Making one optimizing step - :param population: (List[Structure]), input population - :param performance: (List(float)), performance of input population obtained by estimator - :param n_step: (Optional(int)), number of generative design step - :return: (List[Structure]), optimized population - """ - population = self.optimizer.step(population, performance, n_step) +class Optimizer(metaclass=ABCMeta): - return population + def __init__( + self, + logger=None, + **kwargs, + ) -> None: + self.logger = logger + + @abstractmethod + def optimize( + self, + n_steps: int, + **kwargs, + ) -> list[Structure]: + ... diff --git a/gefest/tools/samplers/sampler.py b/gefest/tools/samplers/sampler.py index 6cf24993c..b9af9da92 100644 --- a/gefest/tools/samplers/sampler.py +++ b/gefest/tools/samplers/sampler.py @@ -1,4 +1,6 @@ -from gefest.core.structure.domain import Domain +from typing import Any + +from gefest.core.geometry.domain import Domain class Sampler: @@ -6,7 +8,8 @@ class Sampler: ::TODO:: make abstract class for all samplers """ - def __init__(self, sampler, domain: 'Domain'): + + def __init__(self, sampler, domain: "Domain"): """ Base sampler class :param sampler: (Object) object with method sample @@ -24,3 +27,6 @@ def sample(self, n_samples: int): samples = self.sampler.sample(n_samples=n_samples, domain=self.domain) return samples + + def __call__(self, *args: Any, **kwds: Any) -> Any: + return self.sample(args) diff --git a/gefest/tools/samplers/standard/standard.py b/gefest/tools/samplers/standard/standard.py index 969428da2..b94d68732 100644 --- a/gefest/tools/samplers/standard/standard.py +++ b/gefest/tools/samplers/standard/standard.py @@ -1,56 +1,37 @@ -from copy import deepcopy -from multiprocessing import Pool - -from gefest.core.algs.postproc.resolve_errors import postprocess -from gefest.core.opt.constraints import check_constraints -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import get_random_structure - -MAX_ITER = 50000 -NUM_PROC = 1 - - -class StandardSampler: - - def sample(self, n_samples: int, domain: Domain, initial_state=None): - # Method for initialization of population - - population_new = [] - - if initial_state is None: - while len(population_new) < n_samples: - if NUM_PROC > 1: - with Pool(NUM_PROC) as p: - new_items = p.map(self.get_pop_worker, [domain] * n_samples) - else: - new_items = [] - for i in range(n_samples): - new_items.append(self.get_pop_worker(domain)) - - for structure in new_items: - population_new.append(structure) - if len(population_new) == n_samples: - return population_new +from functools import partial +from typing import Callable + +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.utils import get_random_structure +from gefest.core.opt.strategies.strategy import Strategy +from gefest.core.utils.mp_manager import WorkerData + + +class StandardSampler(Strategy): + def __init__(self, opt_params) -> None: + super().__init__(opt_params.workers_manager) + self.postprocessor: Callable = opt_params.postprocessor + self.domain: Domain = opt_params.domain + + def __call__(self, n_samples: int) -> list[Structure]: + return self.sample(n_samples=n_samples) + + def sample(self, n_samples: int) -> list[Structure]: + + parallel_funcs = [ + ( + ( + partial(get_random_structure, domain=self.domain), + self.postprocessor, + ), + idx, + ) + for _, idx in enumerate(range(n_samples)) + ] + if self._mp: + workers_data = [WorkerData(funcs, idx) for funcs, idx in parallel_funcs] + random_pop, _ = self._mp.multiprocess(workers_data) else: - for _ in range(n_samples): - population_new.append(deepcopy(initial_state)) - return population_new - - def get_pop_worker(self, domain): - # Create a random structure and postprocess it - structure = get_random_structure(domain=domain) - structure = postprocess(structure, domain) - constraints = check_constraints(structure=structure, domain=domain) - max_attempts = 3 # Number of postprocessing attempts - while not constraints: - structure = postprocess(structure, domain) - constraints = check_constraints(structure=structure, domain=domain) - max_attempts -= 1 - if max_attempts < 0: - # If the number of attempts is over, - # a new structure is created on which postprocessing is performed - structure = get_random_structure(domain=domain) - structure = postprocess(structure, domain) - constraints = check_constraints(structure=structure, domain=domain) - - return structure + random_pop = [func() for func in parallel_funcs] + return random_pop diff --git a/refactored.py b/refactored.py new file mode 100644 index 000000000..5bfd56d33 --- /dev/null +++ b/refactored.py @@ -0,0 +1,286 @@ +from functools import partial +from typing import Callable, Optional + +import numpy as np +from loguru import logger +from matplotlib import pyplot as plt +from pydantic.dataclasses import dataclass +from tqdm import tqdm + +from gefest.core.algs.geom.validation import * +from gefest.core.algs.postproc.resolve_errors import * +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.utils import * +from gefest.core.opt.operators.crossovers import panmixis, structure_level_crossover +from gefest.core.opt.operators.mutations import * +from gefest.core.opt.operators.selections import tournament_selection +from gefest.core.opt.strategies.crossover import CrossoverStrategy +from gefest.core.opt.strategies.mutation import MutationStrategy +from gefest.core.opt.strategies.strategy import Strategy +from gefest.core.structure.prohibited import create_prohibited +from gefest.core.utils.mp_manager import WorkersManager +from gefest.core.viz.struct_vizualizer import StructVizualizer +from gefest.tools.optimizers.optimizer import Optimizer +from gefest.tools.samplers.standard.standard import StandardSampler + + +@dataclass +class OptimizationParams: + mutations: list[Callable] + crossovers: list[Callable] + mutation_strategy: Callable + crossover_strategy: Callable + n_steps: int + pop_size: int + postprocess_attempts: int + domain: Domain + selector: Callable + pair_selector: Callable + sampler: Callable + estimator: Callable + postprocessor: Callable + postprocess_rules: dict[str, list[Callable, Callable]] + mutation_prob: float = 0.6 + crossover_prob: float = 0.6 + mutation_each_prob: Optional[list[float]] = None + crossover_each_prob: Optional[list[float]] = None + workers_manager: Optional[object] = None + + def __post_init__(self): + self.crossovers = [ + partial(fun, domain=self.domain) + for fun in self.crossovers + ] + self.postprocessor = partial( + self.postprocessor, + domain=self.domain, + rule_fix_pairs=self.postprocess_rules, + ) + self.sampler = self.sampler(opt_params=self) + + +@logger.catch +def main(opt_params): + + optimizer = BaseGA(opt_params) + + optimizer.optimize(1) + + from gefest.core.viz.struct_vizualizer import StructVizualizer + + plt.figure(figsize=(7, 7)) + visualiser = StructVizualizer(domain) + + info = { + 'spend_time': 1, + 'fitness': optimizer._pop[0].fitness, + 'type': 'prediction', + } + visualiser.plot_structure( + [optimizer._pop[0]], [info], ['-'], + ) + + plt.show(block=True) + +from contextlib import contextmanager + + +@contextmanager +def configuration(subprocess_holder): + try: + # load config from yaml + yield subprocess_holder + except Exception: + raise + finally: + # add simulators safe exit + subprocess_holder.workers_manager.pool.close() + subprocess_holder.workers_manager.pool.terminate() + + +if __name__ == '__main__': + logger.add('somefile.log', enqueue=True) + class BaseGA(Optimizer): + def __init__( + self, + opt_params: OptimizationParams, + **kwargs, + ): + self.opt_params: OptimizationParams = opt_params + self.crossover: Strategy = opt_params.crossover_strategy(opt_params) + self.mutation: Strategy = opt_params.mutation_strategy(opt_params) + self.sampler: Callable = opt_params.sampler + self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator + self.selector: Callable = opt_params.selector + self.pop_size = opt_params.pop_size + self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) + self.domain = self.opt_params.domain + + def optimize(self, n_steps: int) -> list[Structure]: + for _ in tqdm(range(n_steps)): + self._pop = self.estimator(pop=self._pop) + self._pop = self.selector(self._pop, self.opt_params.pop_size) + self._pop = self.crossover(self._pop) + self._pop = self.mutation(self._pop) + + self._pop = sorted(self._pop, key=lambda x: x.fitness) + return self._pop + + + def area_length_ratio(pop: list[Structure], domain: Domain): + for ind in pop: + ind.fitness = domain.max_x * domain.max_y + losses = [] + for idx, poly in enumerate(ind): + area = domain.geometry.get_square(poly) + length = domain.geometry.get_length(poly) + + if area == 0: + losses.append(sum(losses[::idx]) / idx) + else: + losses.append(1 - 4 * np.pi * area / length ** 2) + if len(losses) > 0: + ind.fitness = sum(losses) + return pop + + # domain = Domain( + # allowed_area=[ + # (-125, 100), + # (-75, 170), + # (15, 170), + # (30, 90), + # (-20, -130), + # (-20, -170), + # (-125, -170), + # (-125, 100), + # ], + # geometry=Geometry2D(is_closed=True), + # max_poly_num=6, + # min_poly_num=1, + # max_points_num=16, + # min_points_num=5, + # is_closed=True, + # ) + + domain = Domain( + allowed_area=[ + (0, 0), + (0, 100), + (100, 100), + (100, 0), + (0, 0), + ], + geometry=Geometry2D(is_closed=True), + max_poly_num=5, + min_poly_num=1, + max_points_num=20, + min_points_num=6, + is_closed=True, + ) + from pathlib import Path + + from gefest.core.geometry import PolyID + from gefest.tools import Estimator + from gefest.tools.estimators.simulators.swan.swan_interface import Swan + + # root_path = Path(__file__).parent.parent.parent.parent + # path_sim = ( + # 'F:/Git_Repositories/gefest_fork/GEFEST/gefest/tools/estimators/simulators/swan/swan_model/' + # ) + # from gefest.tools import Fitness + # from gefest.tools.estimators.simulators.swan.swan_interface import Swan + # class SwanFitness(Fitness): + # def __init__(self, estimator, domain, max_length): + # super().__init__(estimator) + # self.domain = domain + # self.max_length = max_length + # def fitness(self, ind: Structure): + # lengths = 0 + # for poly in ind: + # if poly.id_ != PolyID.FIXED_POLY: + # length = self.domain.geometry.get_length(poly) + # lengths += length + # _, hs = self.estimator(struct=ind) + # l_f = lengths / (2 * self.max_length) + hs + # return l_f + # class ComsolFitness(Fitness): + # def __init__(self, simulator, domain): + # super().__init__(simulator) + # self.domain = domain + # def fitness(self, ind: Structure): + # ind = self.estimator(ind) + # if ind is None: + # print("None") + # return ind + # estimator = SwanFitness( + # swan, + # domain, + # np.linalg.norm(np.array([max(coord_X) - min(coord_X), max(coord_Y) - min(coord_Y)])), + # ) + # from gefest.tools.estimators.simulators.comsol.comsol_interface import Comsol + # comsol = Comsol('C:\\Users\\mangaboba\\Downloads\\rbc-trap-setup.mph') + # estimator = ComsolFitness(simulator=comsol, domain=domain) + + opt_params = OptimizationParams( + crossovers=[partial(structure_level_crossover, domain=domain)], + mutations=[ + rotate_poly, + resize_poly, + add_point, + drop_point, + add_poly, + drop_poly, + pos_change_point_mutation, + ], + mutation_strategy=MutationStrategy, + crossover_strategy=CrossoverStrategy, + mutation_prob=0.6, + crossover_prob=0.6, + crossover_each_prob=[1], + mutation_each_prob=[0.125, 0.125, 0.35, 0.05, 0.1, 0.05, 0.2], + n_steps=5, + pop_size=50, + selector=tournament_selection, + pair_selector=panmixis, + postprocess_attempts=3, + domain=domain, + postprocessor=postprocess, + postprocess_rules={ + 'unclosed': [ + unclosed_poly, + correct_unclosed_poly, + ], + 'self_intersect': [ + self_intersection, + correct_self_intersection, + ], + 'wrong_points': [ + out_of_bound, + correct_wrong_point, + ], + }, + sampler=StandardSampler, + estimator=partial(area_length_ratio, domain=domain), + workers_manager=WorkersManager(), + ) + + with configuration(opt_params): + optimizer = BaseGA(opt_params) + + optimizer.optimize(100) + + from gefest.core.viz.struct_vizualizer import StructVizualizer + plt.figure(figsize=(7, 7)) + visualiser = StructVizualizer(domain) + + info = { + 'spend_time': 1, + 'fitness': optimizer._pop[0].fitness, + 'type': 'prediction', + } + visualiser.plot_structure( + [optimizer._pop[0]], [info], ['-'], + ) + + plt.show(block=True) diff --git a/requirements.txt b/requirements.txt index 1f3dc8073..0583294e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,4 +14,17 @@ pytest>=6.2.* autodocsumm==0.2.11 tqdm==4.64.1 thegolem -scikit-image \ No newline at end of file +scikit-image +pydantic + +flake8==6.0.0 +brunette==0.2.8 +isort==5.12.0 +add-trailing-comma==3.0.1 + +pep8-naming==0.13.3 +flake8-isort==6.0.0 +flake8-bugbear==23.3.23 +flake8-builtins==2.1.0 +flake8-commas==2.1.0 +flake8-variables-names==0.0.5 diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..a9033441a --- /dev/null +++ b/setup.cfg @@ -0,0 +1,19 @@ +[flake8] +exclude = .git,.github,docs,__pycache__,env,venv,.venv,.ipynb_checkpoints +max-line-length = 100 +max-complexity = 10 +docstring-convention = google +ignore = D100,D400,C812 +per-file-ignores = + gefest/core/geometry/datastructs/point.py:VNE001 + +[tool:brunette] +exclude = .git,.github,docs,__pycache__,env,venv,.venv +line-length = 100 +verbose = true +single-quotes = true + + +[isort] +include_trailing_comma = true +profile=black From dc4542817f1f679adfbfffd4fe0169e566ade157 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 15 Sep 2023 21:41:58 +0300 Subject: [PATCH 02/66] refactored postprocessing --- gefest/core/algs/postproc/resolve_errors.py | 466 ++++++++++++++++---- 1 file changed, 377 insertions(+), 89 deletions(-) diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/algs/postproc/resolve_errors.py index 4979045a9..e75178f86 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/algs/postproc/resolve_errors.py @@ -1,123 +1,411 @@ +import copy +from abc import ABCMeta, abstractmethod from copy import deepcopy +from enum import Enum from itertools import combinations +from typing import Union import numpy as np +from loguru import logger +from shapely.geometry import Point as ShapelyPoint +from shapely.geometry import Polygon as ShapelyPolygon +from shapely.validation import explain_validity -from gefest.core.geometry import Polygon, Structure +from gefest.core.geometry import Polygon, Structure, get_random_poly from gefest.core.geometry.domain import Domain +from gefest.core.viz.struct_vizualizer import GIFMaker -def distance_between_points(structure: 'Structure', domain: 'Domain') -> bool: - """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` - is placed in correct distance by previous point - Args: - structure: the :obj:`Structure` that explore - Returns: - ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` +class PolygonRule(metaclass=ABCMeta): + """Interface of postprocessing rule for polygon. + Provides validation and correct functions for spicific error, + e.g. 'out of bounds', 'self intersection', 'unclosed polygon'. """ - lenght = domain.dist_between_points - p1 = structure - check = [] - for i in [[p.coords()[:2] for p in poly.points] for poly in p1.polygons]: - for ind, pnt in enumerate(i[1:]): - check.append(np.norm(np.array(pnt) - np.array(i[ind]), ord=1) < lenght) - if any(check): - print('Намутировал плохой полигон!, distance_between_points') - return any(check) -def postprocess( + @staticmethod + @abstractmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + """Check if there is no error in the spicific polygon in structure. + + Args: + structure (Structure): Structure with error. + idx_ (int): Index of polygon with error in structure. + + Returns: + bool: True if polygon has no spicific problem, + otherwise False. + """ + ... + + @staticmethod + @abstractmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + """Try to resolve spicific problem. + The method does not guarantee error correction. + + Args: + structure (Structure): Structure with error. + idx_poly_with_error (int): Index of polygon with error in structure. + + Returns: + Polygon + """ + ... + + +class StructureRule(metaclass=ABCMeta): + """Interface of postprocessing rule for whloe structure. + Provides validation and correct functions for spicific error, + e.g. 'polygons in structure too close'. + """ + + @staticmethod + @abstractmethod + def validate( + structure: Structure, + domain: Domain, + ) -> bool: + """Check if there is no error in the structure. + + Args: + structure (Structure): Structure for validation. + + Returns: + bool: True if structure has no spicific problem, + otherwise False. + """ + ... + + @staticmethod + @abstractmethod + def correct( + structure: Structure, + domain: Domain, + ) -> Structure: + """Try to resolve spicific problem. + The method does not guarantee error correction. + + Args: + structure (Structure): Structure with error. + + Returns: + Structure + """ + ... + + +class PolygonsNotTooClose(StructureRule): + @staticmethod + def validate(struct: Structure, domain: Domain) -> bool: + pairs = tuple(combinations(struct.polygons, 2)) + is_too_close = [False] * len(pairs) + + for idx, pair in enumerate(pairs): + is_too_close[idx] = ( + _pairwise_dist(pair[0], pair[1], domain) < domain.dist_between_polygons + ) + + return not any(is_too_close) + + @staticmethod + @logger.catch + def correct(struct: Structure, domain: Domain) -> Structure: + """ + For polygons that are closer than the specified threshold, + one of them will be removed + """ + polygons = struct.polygons + num_poly = len(polygons) + to_delete = [] + + for i in range(num_poly - 1): + for j in range(i + 1, num_poly): + distance = _pairwise_dist(polygons[i], polygons[j], domain) + if distance < domain.dist_between_polygons: + if ( + polygons[i] not in domain.fixed_points + or polygons[i] not in domain.prohibited_area + ): + to_delete.append(i) # Collecting polygon indices for deletion + + to_delete_poly = [struct.polygons[i] for i in np.unique(to_delete)] + corrected_structure = Structure( + polygons=[poly for poly in struct.polygons if poly not in to_delete_poly], + ) + + return corrected_structure + + +def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain): + """ + ::TODO:: find the answer for the question: why return 0 gives infinite computation + """ + if poly_1 is poly_2 or len(poly_1.points) == 0 or len(poly_2.points) == 0: + return 9999 + + # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point + return domain.geometry.min_distance(poly_1, poly_2) + + +class PointsNotTooClose(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` + is placed in correct distance by previous point + Args: + structure: the :obj:`Structure` that explore + Returns: + ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` + """ + lenght = domain.dist_between_points + check = [] + norms = [] + for pair in zip(structure[idx_poly_with_error][:-1], structure[idx_poly_with_error][1:]): + norm = np.linalg.norm(np.array(pair[1].coords) - np.array(pair[0].coords), ord=1) + norms.append(norm) + check.append(norm > lenght) + + # logger.info(f'{norms}, {lenght}, {all(check)}') + return all(check) + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + parent_structure = copy.deepcopy(structure) + del parent_structure.polygons[idx_poly_with_error] + poly = get_random_poly(parent_structure, domain) + if poly is None: + poly = structure[idx_poly_with_error] + return poly + + +class PolygonNotClosed(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + poly = structure[idx_poly_with_error] + return domain.geometry.is_closed and (poly[0] == poly[-1]) + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + poly = structure[idx_poly_with_error] + if domain.geometry.is_closed and (poly[0] != poly[-1]): + poly.points.append(poly.points[0]) + return poly + + +class PolygonNotOutOfBounds(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + geom_poly_allowed = ShapelyPolygon( + [ShapelyPoint(pt.x, pt.y) for pt in domain.allowed_area], + ) + + for pt in structure[idx_poly_with_error]: + geom_pt = ShapelyPoint(pt.x, pt.y) + if ( + not geom_poly_allowed.contains(geom_pt) + and not geom_poly_allowed.distance(geom_pt) < domain.min_dist_from_boundary + ): + return False + + return True + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + point_moved = False + poly = structure[idx_poly_with_error] + for p_id, point in enumerate(poly): + if point in domain.fixed_points: + continue + point.x = max(point.x, domain.min_x + domain.len_x * 0.05) + point.y = max(point.y, domain.min_y + domain.len_y * 0.05) + point.x = min(point.x, domain.max_x + domain.len_x * 0.05) + point.y = min(point.y, domain.max_y + domain.len_y * 0.05) + if point not in domain: + new_point = domain.geometry.nearest_point(point, domain.bound_poly) + poly.points[p_id] = new_point + point_moved = True + + if point_moved: + poly = domain.geometry.resize_poly(poly=poly, x_scale=0.8, y_scale=0.8) + return poly + + +class PolygonNotSelfIntersects(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + poly = structure[idx_poly_with_error] + return not ( + len(poly) > 2 + and _forbidden_validity( + explain_validity( + ShapelyPolygon([ShapelyPoint(pt.x, pt.y) for pt in poly]), + ), + ) + ) + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + return domain.geometry.get_convex(structure[idx_poly_with_error]) + + +def _forbidden_validity(validity): + return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity + + +def validate( structure: Structure, - rule_fix_pairs: dict, + rules: list[Union[StructureRule, PolygonRule]], domain: Domain, -) -> Structure: +) -> bool: if structure is None: - return None + return False if any( - [(not poly or len(poly) == 0 or any([not pt for pt in poly])) for poly in structure], + [(not poly or len(poly) == 0 or any([not p for p in poly])) for poly in structure], ): print('Wrong structure - problems with points') - return None + return False - corrected_structure = deepcopy(structure) - for i, poly in enumerate(corrected_structure.polygons): - local_structure = Structure([poly]) - for rule, fix in rule_fix_pairs.values(): - if not rule(local_structure, domain): - corrected_structure.polygons[i] = fix(poly, domain) - - cts = [rule(structure, domain) for rule, _ in rule_fix_pairs.values()] - if not any(cts): - return corrected_structure - return None - - -def correct_unclosed_poly(poly: Polygon, domain: Domain) -> Polygon: - if domain.geometry.is_closed: - point_to_add = poly.points[0] - poly.points.append(point_to_add) - correct_poly = poly - return correct_poly - return poly + # for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): + # if not all([rule.validate(structure, idx_, domain) for idx_, _ in enumerate(structure)]): + # return False + # for rule in (rule for rule in rules if isinstance(rule, StructureRule)): + # if not rule.validate(structure, domain): + # return False + for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): + for idx_, _ in enumerate(structure): + if not rule.validate(structure, idx_, domain): + return False -def correct_wrong_point(poly: Polygon, domain: Domain) -> Polygon: - point_moved = False - for p_id, point in enumerate(poly.points): - if domain.fixed_points: - if point in domain.fixed_points: - continue - point.x = max(point.x, domain.min_x + domain.len_x * 0.05) - point.y = max(point.y, domain.min_y + domain.len_y * 0.05) - point.x = min(point.x, domain.max_x + domain.len_x * 0.05) - point.y = min(point.y, domain.max_y + domain.len_y * 0.05) - if point not in domain: - new_point = domain.geometry.nearest_point(point, domain.bound_poly) - poly.points[p_id] = new_point - point_moved = True + for rule in (rule for rule in rules if isinstance(rule, StructureRule)): + if not rule.validate(structure, domain): + return False - if point_moved: - poly = domain.geometry.resize_poly(poly=poly, x_scale=0.8, y_scale=0.8) + return True - return poly +from uuid import uuid4 -def correct_self_intersection(poly: Polygon, domain: Domain) -> Polygon: - # Change self-intersected poly to convex - convex_poly = domain.geometry.get_convex(poly) - return convex_poly +def postprocess( + structure: Structure, + rules: list[Union[StructureRule, PolygonRule]], + domain: Domain, + attempts: int = 3, +) -> Union[Structure, None]: + """Apply postprocessing rules to structure. -def too_close(structure: Structure, domain: Domain) -> bool: - """Checks for too close location between every :obj:`Polygon` in the - given :obj:`Structure` Args: - structure: the :obj:`Structure` that explore - domain: the :obj:`Domain` that determinates the main - parameters, this method requires ``min_dist`` from :obj:`Domain` + structure (Structure): Structure for postprocessing. + rules (list[Union[StructureRule, PolygonRule]]): Postprocessing rules, + which expect whole structure or particular polygon for check. + This interfaces have check() and corerect() methods. + domain (Domain): domain + attempts (int, optional): Number of attempths to fix errors. Defaults to 3. + Returns: - ``True`` if at least one distance between any polygons is less than value of minimal - distance set by :obj:`Domain`, otherwise - ``False`` + Union[Structure, None]: If structure valid according to the rules, + correct stucture will be returned, else None. + """ + if structure is None: + return None + if any( + [(not poly or len(poly) == 0 or any([not pt for pt in poly])) for poly in structure], + ): + print('Wrong structure - problems with points') + return None - pairs = tuple(combinations(structure.polygons, 2)) - is_too_close = [False] * len(pairs) + corrected_structure = deepcopy(structure) + gm = GIFMaker(domain=domain) + colors = { + 0: 'blue', + 1: 'orange', + 2: 'green', + 3: 'red', + 4: 'purple', + } - for idx, poly_1, poly_2 in enumerate(pairs): - is_too_close[idx] = _pairwise_dist(poly_1, poly_2, domain) < domain.min_dist + gm.create_frame(corrected_structure, {'test': 'start'}) + for idx_, _ in enumerate(structure.polygons): + for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): + for at in range(attempts): + if not rule.validate(corrected_structure, idx_, domain): + corrected_structure[idx_] = rule.correct(corrected_structure, idx_, domain) + # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': f'attempt {at}'}) + else: + # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'OK'}) + break + else: + if not rule.validate(corrected_structure, idx_, domain): + # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'Failed'}) + # gm.make_gif(str(uuid4())) + return None - return any(is_too_close) + for rule in (rule for rule in rules if isinstance(rule, StructureRule)): + for at in range(attempts): + if not rule.validate(corrected_structure, domain): + corrected_structure = rule.correct(corrected_structure, domain) + # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': f'attempt {at}'}) + else: + # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'OK'}) + break + else: + if not rule.validate(corrected_structure, domain): + # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'Failed'}) + # gm.make_gif(str(uuid4())) + return None + if validate(corrected_structure, rules, domain): + return corrected_structure + # gm.create_frame(corrected_structure, {f'Final validation : {rulename}': 'Failed'}) + # gm.make_gif(str(uuid4())) + return None -def _pairwise_dist( - poly_1: Polygon, - poly_2: Polygon, - domain: Domain, -) -> float: - """ - ::TODO:: find the answer for the question: why return 0 gives infinite computation - """ - if poly_1 is poly_2 or len(poly_1) == 0 or len(poly_2) == 0: - return float('inf') - # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point - return domain.geometry.min_distance(poly_1, poly_2) +class Rules(Enum): + not_too_close_polygons = PolygonsNotTooClose() + not_closed_polygon = PolygonNotClosed() + not_out_of_bounds = PolygonNotOutOfBounds() + not_self_intersects = PolygonNotSelfIntersects() + not_too_close_points = PointsNotTooClose() From 60322369bd9301473c1aa55926e24d70c21ad21b Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 15 Sep 2023 21:44:58 +0300 Subject: [PATCH 03/66] add polygon level crossover --- gefest/core/opt/operators/crossovers.py | 59 ++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index cd416a3cc..1c2f51a16 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -1,10 +1,14 @@ import copy +import random +from itertools import product from multiprocessing import Pool import numpy as np +from loguru import logger -from gefest.core.geometry import Structure +from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.domain import Domain +from gefest.core.utils import where # pairs for crossover selection @@ -41,3 +45,56 @@ def structure_level_crossover( new_structure.polygons = result return new_structure + + +def polygon_level_crossover( + operands: tuple[Structure, Structure], + domain: Domain, + **kwargs, +): + geom = domain.geometry + s1, s2 = copy.deepcopy(operands) + intersected = False + split_angle = 0 + pairs_dists = [ + (p, geom.min_distance(p[0], p[1])) + for p in list(product(s1, s2)) + if (p[0] is not p[1] and len(p[0]) != 0 and len(p[1]) != 0) + ] + intersects_ids = where(pairs_dists, lambda p_d: p_d[1] == 0) + if len(intersects_ids) > 0: + intersected = True + pairs_dists = [p_d for idx_, p_d in enumerate(pairs_dists) if idx_ in intersects_ids] + pairs_dists = [ + (p[0], geom.min_distance(geom.get_centroid(p[0][0]), geom.get_centroid(p[0][1]))) + for p in pairs_dists + ] + pairs_dists = sorted(pairs_dists, key=lambda p_d: p_d[1]) + if len(pairs_dists) == 0: + return s1 + poly_1 = pairs_dists[0][0][0] + poly_2 = pairs_dists[0][0][1] + if intersected: + # adaptive angle # + split_angle = (np.random.rand() * 2 - 1) * (70) + elif pairs_dists[0][1] > domain.dist_between_polygons: + return s1 + + c1, c2 = geom.get_centroid(poly_1), geom.get_centroid(poly_2) + vector1 = geom.rotate_point(point=c2, origin=c1, angle=split_angle) + vector2 = geom.rotate_point(point=c1, origin=c2, angle=split_angle) + scale_factor = max(domain.max_x, domain.max_y) + parts_1 = geom.split_polygon(poly_1, [c1, vector1], scale_factor) + parts_2 = geom.split_polygon(poly_2, [c2, vector2], scale_factor) + if len(parts_1) < 2 or len(parts_2) < 2: + return s1 + + new_parts = (*parts_1[0], *parts_2[1]) if c1.y > c2.y else (*parts_1[1], *parts_2[0]) + new_poly = geom.get_convex(Polygon(points=[Point(*p) for p in list(set(new_parts))])) + if len(new_poly) > domain.max_points_num: + random_elements = random.choice(new_poly.points) + new_poly.points = list(filter(lambda x: x != random_elements, new_poly.points)) + + idx_ = where(s1.polygons, lambda p: p == poly_1)[0] + s1[idx_] = new_poly + return s1 From c2f9cb02a4e6705d381579ad1cd572e283e5068b Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 15 Sep 2023 22:03:11 +0300 Subject: [PATCH 04/66] fix parallel execution, fix modules compatibility --- gefest/core/geometry/datastructs/polygon.py | 14 +- gefest/core/geometry/domain.py | 30 ++-- gefest/core/geometry/geometry.py | 2 +- gefest/core/geometry/geometry_2d.py | 37 ++++- gefest/core/geometry/utils.py | 58 +++++-- gefest/core/opt/adapters/structure.py | 10 +- gefest/core/opt/gen_design.py | 83 ---------- gefest/core/opt/operators/mutations.py | 108 ++++++++++--- gefest/core/opt/operators/selections.py | 2 +- gefest/core/opt/strategies/crossover.py | 62 +++----- gefest/core/opt/strategies/mutation.py | 54 ++----- gefest/core/opt/strategies/strategy.py | 8 +- gefest/core/utils/__init__.py | 2 +- gefest/core/utils/functions.py | 21 ++- gefest/core/utils/mp_manager.py | 108 ------------- gefest/core/utils/parallel_manager.py | 45 ++++++ gefest/core/viz/struct_vizualizer.py | 47 ++++-- refactored.py | 167 ++++++++++---------- 18 files changed, 414 insertions(+), 444 deletions(-) delete mode 100644 gefest/core/opt/gen_design.py delete mode 100644 gefest/core/utils/mp_manager.py create mode 100644 gefest/core/utils/parallel_manager.py diff --git a/gefest/core/geometry/datastructs/polygon.py b/gefest/core/geometry/datastructs/polygon.py index 52b368520..11af66a8b 100644 --- a/gefest/core/geometry/datastructs/polygon.py +++ b/gefest/core/geometry/datastructs/polygon.py @@ -9,13 +9,13 @@ class PolyID(Enum): - TEMP = "tmp" - CONSTR = "constraint" - FIXED_AREA = "fixed_area" - FIXED_POLY = "fixed_poly" - PROH_AREA = "prohibited_area" - PROH_TARG = "prohibited_target" - PROH_POLY = "prohibited_poly" + TEMP = 'tmp' + CONSTR = 'constraint' + FIXED_AREA = 'fixed_area' + FIXED_POLY = 'fixed_poly' + PROH_AREA = 'prohibited_area' + PROH_TARG = 'prohibited_target' + PROH_POLY = 'prohibited_poly' @dataclass diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py index 0c9494533..777d19977 100644 --- a/gefest/core/geometry/domain.py +++ b/gefest/core/geometry/domain.py @@ -2,7 +2,7 @@ from typing import Optional, Union import yaml -from pydantic import Field, computed_field, field_validator, model_validator +from pydantic import Field, computed_field, field_validator from pydantic.dataclasses import dataclass from pydantic_yaml import parse_yaml_raw_as @@ -13,12 +13,14 @@ @dataclass class Domain: allowed_area: Union[Polygon, list[list[float]]] - name: str = "main" + name: str = 'main' min_poly_num: int = 2 max_poly_num: int = 4 min_points_num: int = 20 max_points_num: int = 50 - prohibited_area: Optional[Structure] = None + polygon_side: int = 0.05 + min_dist_from_boundary: float = 1.0 + prohibited_area: Optional[Structure] = Field(default=Structure([])) fixed_points: Optional[Union[Polygon, list[list[float]]]] = Field(default_factory=list) geometry: Optional[Geometry2D] = Geometry2D() @@ -27,7 +29,7 @@ def parse_raw(self, cfg_file: Path): with open(cfg_file) as f: cfg = yaml.safe_load(f) - if "domain" not in cfg: + if 'domain' not in cfg: raise AttributeError("No 'domain' section {cfg_file} config file.") return parse_yaml_raw_as(Domain, yaml.dump(cfg['domain'])) @@ -44,22 +46,30 @@ def __contains__(self, point: Point): def __post_init__(self): if self.min_poly_num > self.max_poly_num: - raise ValueError("Invalid points number interval.") + raise ValueError('Invalid points number interval.') if self.min_points_num > self.max_points_num: - raise ValueError("Invalid points number interval.") + raise ValueError('Invalid points number interval.') - @field_validator("fixed_points") + @field_validator('fixed_points') def parse_allowed_area(cls, data: Union[Polygon, list[list[float]]]): if isinstance(data, Polygon): return data return Polygon([Point(*coords) for coords in data]) - @field_validator("allowed_area") + @field_validator('allowed_area') def parse_allowed_area(cls, data: Union[Polygon, list[list[float]]]): if data is None or len(data) <= 2: - raise ValueError("Not enough points for allowed_area.") + raise ValueError('Not enough points for allowed_area.') return Polygon([Point(*coords) for coords in data]) + @computed_field + def dist_between_polygons(self) -> float: + return max(self.max_x - self.min_x, self.max_y - self.min_y) / 35 + + @computed_field + def dist_between_points(self) -> float: + return self.dist_between_polygons * 15 * self.polygon_side + @computed_field def min_x(self) -> int: return min(p.x for p in self.allowed_area) @@ -86,4 +96,4 @@ def len_y(self) -> int: @computed_field def bound_poly(self) -> Polygon: - return self.allowed_area \ No newline at end of file + return self.allowed_area diff --git a/gefest/core/geometry/geometry.py b/gefest/core/geometry/geometry.py index 9b6f56909..837dbdb61 100644 --- a/gefest/core/geometry/geometry.py +++ b/gefest/core/geometry/geometry.py @@ -32,7 +32,7 @@ def get_square(self, polygon: Polygon): pass @abstractmethod - def is_contain_point(self, poly: Polygon, point: "Point"): + def is_contain_point(self, poly: Polygon, point: Point): pass @abstractmethod diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index a56609e35..d7c560fb8 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -4,11 +4,13 @@ import numpy as np from pydantic import BaseModel from pydantic.dataclasses import dataclass -from shapely import affinity +from shapely import affinity, get_parts +from shapely.affinity import scale from shapely.geometry import LineString, MultiLineString from shapely.geometry import Point as GeomPoint from shapely.geometry import Polygon as GeomPolygon -from shapely.ops import nearest_points +from shapely.geometry import mapping +from shapely.ops import nearest_points, split from gefest.core.geometry import Point, Polygon, Structure @@ -23,6 +25,7 @@ class Geometry2D(Geometry): (first Point is equal to the last one), otherwise ``False``. Default value is ``True`` """ + is_closed: bool = True def get_length(self, polygon: Polygon): @@ -94,6 +97,19 @@ def resize_poly( return rescaled_poly + def rotate_point( + self, + point: Point, + origin: Point, + angle: float, + ) -> Polygon: + rotated = affinity.rotate( + GeomPoint(point.x, point.y), + angle, + GeomPoint(origin.x, origin.y), + ) + return Point(rotated.x, rotated.y) + def rotate_poly( self, poly: Polygon, @@ -264,6 +280,23 @@ def _pt_to_geom(self, pt: Point) -> GeomPoint: """ return GeomPoint(pt.x, pt.y) + def split_polygon(self, poly, line: tuple[Point, Point], scale_factor=1000): + poly = GeomPolygon([(p.x, p.y) for p in poly]) + line = LineString( + [ + (line[0].x, line[0].y), + (line[1].x, line[1].y), + ], + ) + line = scale( + line, + scale_factor, + scale_factor, + ) + parts = get_parts(split(poly, line)).tolist() + parts = list(map(lambda p: list(mapping(p)['coordinates'][0][:-1]), parts)) + return parts + def min_distance(self, obj_1, obj_2) -> float: """Smallest distance between two objects Args: diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 3044c60b0..7e6457439 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -4,6 +4,7 @@ from typing import Optional import numpy as np +from loguru import logger from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.geometry_2d import Geometry2D @@ -11,7 +12,7 @@ from .domain import Domain -def get_random_structure(domain: Domain) -> Structure: +def get_random_structure(domain: Domain, **kwargs) -> Structure: # Creating structure with random number of polygons structure = Structure(polygons=[]) @@ -24,10 +25,6 @@ def get_random_structure(domain: Domain) -> Structure: structure.polygons.append(polygon) else: continue - - for poly in structure: - print(poly[0], poly[-1]) - return structure @@ -82,21 +79,45 @@ def get_random_point(polygon: Polygon, structure: Structure, domain: Domain) -> def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: # Creating polygon in the neighborhood of the centroid # sigma defines neighborhood - num_points = randint( - domain.min_points_num, domain.max_points_num, + domain.min_points_num, + domain.max_points_num, ) # Number of points in a polygon points = [] - for _ in range(num_points): - point = create_polygon_point(centroid, sigma) # point in polygon - while not in_bound(point, domain): # checking if a point is in domain + cntr = 0 + while len(points) < num_points: + cntr += 1 + + point = create_polygon_point(centroid, sigma) + while not in_bound(point, domain): point = create_polygon_point(centroid, sigma) points.append(point) - if domain.geometry.is_closed: - points.append(points[0]) - - poly = geometry.get_convex(Polygon(points=points)) # avoid self intersection in polygon - + ind = len(points) - 1 + if ind > 0: + if ( + np.linalg.norm( + np.array(points[ind].coords[:2]) - np.array(points[ind - 1].coords[:2]), ord=1 + ) + < domain.dist_between_points + ): + del points[ind] + if len(points) == num_points: + if ( + np.linalg.norm( + np.array(points[-1].coords[:2]) - np.array(points[0].coords[:2]), ord=1 + ) + < domain.dist_between_points + ): + del points[-1] + if len(points) == num_points: + if domain.geometry.is_closed: + points.append(points[0]) + poly = geometry.get_convex(Polygon(points=points)) + points = poly.points + if cntr > 100 and len(points) > 4: + break + + # logger.info(f'Create poly finish, {cntr} iterations.') return poly @@ -117,7 +138,9 @@ def create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> ( """ centroid = create_random_point(domain) min_dist = distance( - centroid, structure, geometry, + centroid, + structure, + geometry, ) # Distance to the nearest polygon in the structure max_attempts = 20 while min_dist < 2.5 * sigma: @@ -149,7 +172,8 @@ def create_random_point(domain: Domain) -> Point: def create_polygon_point(centroid: Point, sigma: int) -> Point: # Creating polygon point inside the neighborhood defined by the centroid point = Point( - np.random.normal(centroid.x, sigma, 1)[0], np.random.normal(centroid.y, sigma, 1)[0], + np.random.normal(centroid.x, sigma, 1)[0], + np.random.normal(centroid.y, sigma, 1)[0], ) return point diff --git a/gefest/core/opt/adapters/structure.py b/gefest/core/opt/adapters/structure.py index 3bd8d0b23..e96bc9200 100644 --- a/gefest/core/opt/adapters/structure.py +++ b/gefest/core/opt/adapters/structure.py @@ -16,11 +16,11 @@ def __init__(self): def _point_to_node(self, point): # Prepare content for nodes if isinstance(point, OptNode): - self._log.warn("Unexpected: OptNode found in adapter instead" "Point.") + self._log.warn('Unexpected: OptNode found in adapter instead' 'Point.') else: - content = {"name": f"pt_{point.x}_{point.y}", "params": {}} + content = {'name': f'pt_{point.x}_{point.y}', 'params': {}} node = OptNode(content=content) - node.content["params"] = {"x": point.x, "y": point.y} + node.content['params'] = {'x': point.x, 'y': point.y} return node def _adapt(self, adaptee: Structure): @@ -39,7 +39,9 @@ def _adapt(self, adaptee: Structure): return graph def _restore( - self, opt_graph: OptGraph, metadata: Optional[Dict[str, Any]] = None, + self, + opt_graph: OptGraph, + metadata: Optional[Dict[str, Any]] = None, ) -> Structure: """Convert OptGraph class into Structure class""" structure = [] diff --git a/gefest/core/opt/gen_design.py b/gefest/core/opt/gen_design.py deleted file mode 100644 index c2201b320..000000000 --- a/gefest/core/opt/gen_design.py +++ /dev/null @@ -1,83 +0,0 @@ -import os -import pickle -import shutil -from pathlib import Path - -from tqdm import tqdm - - -def design(n_steps: int, pop_size: int, estimator, sampler, optimizer, extra=False): - """ - Generative design procedure - :param n_steps: (Int) number of generative design steps - :param pop_size: (Int) number of samples in population - :param estimator: (Object) estimator with .estimate() method - :param sampler: (Object) sampler with .sample() method - :param optimizer: (Object) optimizer with .optimize() method - :param extra: (Bool) flag for extra sampling - :return: (List[Structure]) designed samples - """ - - def _save_res(performance, samples): - """ - Saving results in pickle format - :param performance: (List), performance of samples - :param samples: (List), samples to save - :return: None - """ - with open(Path(path, f"performance_{i}.pickle"), "wb") as handle: - pickle.dump(performance, handle, protocol=pickle.HIGHEST_PROTOCOL) - - with open(Path(path, f"population_{i}.pickle"), "wb") as handle: - pickle.dump(samples, handle, protocol=pickle.HIGHEST_PROTOCOL) - - return - - def _remain_best(performance, samples): - """ - From current population we remain best only - :param performance: (List), performance of samples - :param samples: (List), samples to save - :return: (Tuple), performance and samples - """ - # Combination of performance and samples - perf_samples = list(zip(performance, samples)) - - # Sorting with respect to performance - sorted_pop = sorted(perf_samples, key=lambda x: x[0])[:pop_size] - - performance = [x[0] for x in sorted_pop] - samples = [x[1] for x in sorted_pop] - - return performance, samples - - path = "HistoryFiles" - - if os.path.exists(path): - shutil.rmtree(path) - os.makedirs(path) - - samples = sampler.sample(n_samples=pop_size) - - for i in tqdm(range(n_steps)): - performance = estimator.estimate(population=samples) - - # Choose best and save the results - performance, samples = _remain_best(performance, samples) - print(f"\nBest performance is {performance[0]}") - - _save_res(performance, samples) - - if optimizer: - samples = optimizer.step(population=samples, performance=performance, n_step=i) - - # Extra sampling if necessary - # or if optimizer is missing - if not optimizer or extra: - if not optimizer: - samples = sampler.sample(n_samples=pop_size) - else: - extra_samples = sampler.sample(n_samples=pop_size) - samples = samples + extra_samples - - return samples diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 4371e4472..acb90d6da 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -1,8 +1,5 @@ import copy import random -from copy import deepcopy -from enum import Enum -from functools import partial from typing import Callable import numpy as np @@ -19,8 +16,20 @@ def mutate_structure( mutations: list[Callable], mutation_chance: float, mutations_probs: list[int], -): - +) -> Structure: + """Apply mutation for polygons in structure. + + Args: + structure (Structure): _description_ + domain (Domain): _description_ + mutations (list[Callable]): _description_ + mutation_chance (float): _description_ + mutations_probs (list[int]): _description_ + + Returns: + Structure: Mutated structure. It is not guaranteed + that the resulting structure will be valid, dont + """ new_structure = copy.deepcopy(structure) for _ in enumerate(range(len(new_structure))): @@ -33,6 +42,8 @@ def mutate_structure( ) new_structure = chosen_mutation[0](new_structure, domain, idx_) + return new_structure + def rotate_poly(new_structure: Structure, domain: Domain, idx_: int = None) -> Structure: angle = float(np.random.randint(-120, 120)) @@ -81,37 +92,88 @@ def resize_poly( return new_structure +from math import cos, pi, sin, sqrt + + +def random_polar(rscale, dx, dy): + theta = random.random() * 2 * pi + r = random.random() * rscale + return (r * cos(theta)) + dx, (r * sin(theta)) + dy + + def pos_change_point_mutation( new_structure: Structure, domain: Domain, idx_: int = None, ) -> Structure: - mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) - # Neighborhood to reposition - eps_x = round(domain.len_x / 10) - eps_y = round(domain.len_y / 10) - structure = copy.deepcopy(new_structure) - # Displacement in the neighborhood - displacement_x = random.randint(-eps_x, eps_x) - displacement_y = random.randint(-eps_y, eps_y) - - x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x - y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y - - i = 20 # Number of attempts to change the position of the point + mutate_point_idx = int(np.random.randint(0, len(structure[idx_]))) + if mutate_point_idx == len(structure[idx_]) - 1: + neighbour_left = mutate_point_idx - 1 + neighbour_right = 0 + elif mutate_point_idx == 0: + neighbour_left = len(new_structure[idx_]) - 1 + neighbour_right = 1 + else: + neighbour_left = mutate_point_idx - 1 + neighbour_right = mutate_point_idx + 1 + + x1 = structure[idx_][neighbour_left].x + y1 = structure[idx_][neighbour_left].y + x2 = structure[idx_][neighbour_right].x + y2 = structure[idx_][neighbour_right].y + base_x = structure[idx_][mutate_point_idx].x + base_y = structure[idx_][mutate_point_idx].y + + dx, dy = (x1 - x2) / 2, (y1 - y2) / 2 + d = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) + + delta_point = random_polar((d / 2), dx, dy) + x_new, y_new = base_x + delta_point[0], base_y + delta_point[1] + + i = 20 while Point(x_new, y_new) not in domain: - x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x - y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y + delta_point = random_polar((d / 2), dx, dy) + x_new, y_new = base_x + delta_point[0], base_y + delta_point[1] i -= 1 if i == 0: - return new_structure + structure[idx_][mutate_point_idx].x += delta_point[0] + structure[idx_][mutate_point_idx].y += delta_point[1] + return structure + + structure[idx_][mutate_point_idx].x += delta_point[0] + structure[idx_][mutate_point_idx].y += delta_point[1] + + # return structure + + # ''' + # mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) + # # Neighborhood to reposition + # eps_x = round(domain.len_x / 10) + # eps_y = round(domain.len_y / 10) + + # structure = copy.deepcopy(new_structure) + + # # Displacement in the neighborhood + # displacement_x = random.randint(-eps_x, eps_x) + # displacement_y = random.randint(-eps_y, eps_y) + + # x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x + # y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y - structure.polygons[idx_].points[mutate_point_idx].x = x_new - structure.polygons[idx_].points[mutate_point_idx].y = y_new + # i = 20 # Number of attempts to change the position of the point + # while Point(x_new, y_new) not in domain: + # x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x + # y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y + # i -= 1 + # if i == 0: + # return new_structure + # structure.polygons[idx_].points[mutate_point_idx].x = x_new + # structure.polygons[idx_].points[mutate_point_idx].y = y_new + # ''' # from gefest.core.viz.struct_vizualizer import StructVizualizer # from matplotlib import pyplot as plt diff --git a/gefest/core/opt/operators/selections.py b/gefest/core/opt/operators/selections.py index b47219b3e..2e20a779c 100644 --- a/gefest/core/opt/operators/selections.py +++ b/gefest/core/opt/operators/selections.py @@ -36,7 +36,7 @@ def tournament_selection( pop_size: int, fraction: float = 0.1, ) -> list[Structure]: - """ Selects the best ones from provided population. + """Selects the best ones from provided population. Args: pop (list[Structure]): population diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index a9de594ef..ad28e2a36 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -1,17 +1,18 @@ import copy +from functools import partial from typing import Callable import numpy as np from gefest.core.geometry import Structure -from gefest.core.utils import WorkerData, where +from gefest.core.utils import chain, where +from gefest.core.utils.parallel_manager import BaseParallelDispatcher from .strategy import Strategy class CrossoverStrategy(Strategy): def __init__(self, opt_params): - super().__init__(opt_params.workers_manager) self.prob = opt_params.crossover_prob self.crossovers = opt_params.crossovers @@ -19,57 +20,32 @@ def __init__(self, opt_params): self.postprocess: Callable = opt_params.postprocessor self.parent_pairs_selector: Callable = opt_params.pair_selector self.sampler: Callable = opt_params.sampler - self.attempts = 3 + self.postprocess_attempts = opt_params.postprocess_attempts + self._pm = BaseParallelDispatcher(opt_params.n_jobs) def __call__(self, pop: list[Structure]) -> list[Structure]: return self.crossover(pop=pop) def crossover(self, pop: list[Structure]): - pairs_to_crossover = copy.deepcopy(self.parent_pairs_selector(pop)) - new_generation = np.full(len(pairs_to_crossover), None) - chosen_crossovers = np.random.choice( + + chosen_crossover = np.random.choice( a=self.crossovers, - size=len(pairs_to_crossover), + size=1, p=self.each_prob, - ) + )[0] + pairs = copy.deepcopy(self.parent_pairs_selector(pop)) - chosen_crossovers = [(cm, self.postprocess) for cm in chosen_crossovers] - children, _ = self._mp( - [ - WorkerData(funcs, idx, args) - for funcs, idx, args in zip( - chosen_crossovers, - range(len(pairs_to_crossover)), - pairs_to_crossover, - ) - ], + new_generation = self._pm.exec_parallel( + func=chain(chosen_crossover, partial(self.postprocess, attempts=3)), + arguments=pairs, + use=True, ) - succes_crossover_ids = where(children, lambda ind: ind != None) - for idx in succes_crossover_ids: - new_generation[idx] = children[idx] + idx_failed = where(new_generation, lambda ind: ind is None) + if len(idx_failed) > 0: + generated = self.sampler(len(idx_failed)) + for enum_id, idx in enumerate(idx_failed): + new_generation[idx] = generated[enum_id] - for _ in range(self.attempts): - failed_idx = where(new_generation, lambda ind: ind == None) - if len(failed_idx) > 0: - children, _ = self._mp( - [ - WorkerData(funcs, idx, args) - for funcs, idx, args in zip( - [chosen_crossovers[idx] for idx in failed_idx], - failed_idx, - [pairs_to_crossover[idx] for idx in failed_idx], - ) - ], - ) - succes_crossover_ids = where(children, lambda ind: ind != None) - for idx in succes_crossover_ids: - new_generation[idx] = children[idx] - else: - break - failed_idx = where(new_generation, lambda ind: ind == None) - if len(failed_idx) > 0: - new_generation[failed_idx] = self.sampler(len(failed_idx)) pop.extend(new_generation) - return pop diff --git a/gefest/core/opt/strategies/mutation.py b/gefest/core/opt/strategies/mutation.py index 816265f1a..ba6fdff98 100644 --- a/gefest/core/opt/strategies/mutation.py +++ b/gefest/core/opt/strategies/mutation.py @@ -4,28 +4,29 @@ from gefest.core.geometry import Structure from gefest.core.opt.operators.mutations import mutate_structure -from gefest.core.utils import WorkerData, where +from gefest.core.utils import chain, where +from gefest.core.utils.parallel_manager import BaseParallelDispatcher from .strategy import Strategy class MutationStrategy(Strategy): def __init__(self, opt_params): - super().__init__(opt_params.workers_manager) + self.domain = opt_params.domain self.mutation_prob = opt_params.mutation_prob self.mutations = opt_params.mutations self.each_prob = opt_params.mutation_each_prob self.postprocess: Callable = opt_params.postprocessor self.sampler = opt_params.sampler - self.postprocess_attempts = 3 + self.postprocess_attempts = opt_params.postprocess_attempts + self._pm = BaseParallelDispatcher(opt_params.n_jobs) def __call__(self, pop: list[Structure]) -> list[Structure]: return self.mutate(pop=pop) def mutate(self, pop: list[Structure]): - mutated_pop = copy.deepcopy(pop) mutator = partial( mutate_structure, domain=self.domain, @@ -33,45 +34,18 @@ def mutate(self, pop: list[Structure]): mutation_chance=self.mutation_prob, mutations_probs=self.each_prob, ) - chosen_mutations = [(mutator, self.postprocess) for _ in range(len(pop))] + pop_ = copy.deepcopy(pop) - mutated, _ = self._mp( - [ - WorkerData(funcs, idx, args) - for funcs, idx, args in zip( - chosen_mutations, - range(len(pop)), - pop, - ) - ], + mutated_pop = self._pm.exec_parallel( + func=chain(mutator, partial(self.postprocess, attempts=3)), + arguments=pop_, + use=True, ) - succes_mutated_ids = where(mutated, lambda ind: ind != None) - for idx in succes_mutated_ids: - mutated_pop[idx] = mutated[idx] - - for _ in range(self.postprocess_attempts): - failed_idx = where(mutated, lambda ind: ind == None) - if len(failed_idx) > 0: - mutated, _ = self._mp( - [ - WorkerData(funcs, idx, args) - for funcs, idx, args in zip( - [(self.postprocess,) for idx in failed_idx], - failed_idx, - [mutated_pop[idx] for idx in failed_idx], - ) - ], - ) - - succes_mutated_ids = where(mutated, lambda ind: ind != None) - for idx in succes_mutated_ids: - mutated_pop[idx] = mutated[idx] - - failed_idx = where(mutated, lambda ind: ind == None) - if len(failed_idx) > 0: - generated = self.sampler(len(failed_idx)) - for enum_id, idx in enumerate(failed_idx): + idx_failed = where(mutated_pop, lambda ind: ind is None) + if len(idx_failed) > 0: + generated = self.sampler(len(idx_failed)) + for enum_id, idx in enumerate(idx_failed): mutated_pop[idx] = generated[enum_id] return mutated_pop diff --git a/gefest/core/opt/strategies/strategy.py b/gefest/core/opt/strategies/strategy.py index 5b9146723..9d4227809 100644 --- a/gefest/core/opt/strategies/strategy.py +++ b/gefest/core/opt/strategies/strategy.py @@ -2,16 +2,10 @@ from typing import Any from gefest.core.geometry import Structure -from gefest.core.utils import WorkersManager class Strategy(metaclass=ABCMeta): - """Abstract class for algorithm steps. - Provides shared multiprocessing pool. - """ - - def __init__(self, wm: WorkersManager): - self._mp: WorkersManager = wm + """Abstract class for algorithm steps.""" @abstractmethod def __call__( diff --git a/gefest/core/utils/__init__.py b/gefest/core/utils/__init__.py index e1faf2c27..d9e3867e1 100644 --- a/gefest/core/utils/__init__.py +++ b/gefest/core/utils/__init__.py @@ -1,2 +1,2 @@ from .functions import chain, project_root, where -from .mp_manager import WorkerData, WorkersManager +from .parallel_manager import BaseParallelDispatcher diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index adbe2de3a..6538fd1f4 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -8,14 +8,19 @@ def project_root() -> Path: return Path(__file__).parent.parent.parent -# def chain(*funcs): -# def chained_call(args): -# return reduce(lambda r, f: f(r), funcs, args) -# return chained_call - - -def where(array: list[Any], condition: Callable[[Callable], bool]) -> list[int]: - return [idx for idx, ind in enumerate(array) if condition(ind)] +def where( + sequence: list[Any], + mask_rule: Callable[[Callable], bool], +) -> list[int]: + """Finds indexes of values in a sequence satisfying the mask_rule. + Args: + sequence (list[Any]): list of values + mask_rule (Callable[[Callable], bool]): rule for selecting values + (e.g. lambda val: val is not None) + Returns: + list[int]: _description_ + """ + return [idx for idx, ind in enumerate(sequence) if mask_rule(ind)] def chain(*funcs): diff --git a/gefest/core/utils/mp_manager.py b/gefest/core/utils/mp_manager.py deleted file mode 100644 index 20f87f0a1..000000000 --- a/gefest/core/utils/mp_manager.py +++ /dev/null @@ -1,108 +0,0 @@ -import multiprocessing -from typing import Any, Callable, Optional - -from loguru import logger -from pydantic.dataclasses import dataclass - -from gefest.core.utils import chain - - -@dataclass -class WorkerData: - funcs: list[Callable] - idx: int - initial_args: Optional[Any] = None - - -class WorkersManager: - def __init__( - self, - num_workers: Optional[int] = None, - worker_func: Optional[Callable] = None, - ) -> None: - self.worker_func = worker_func if worker_func else WorkersManager.worker - self.num_workers = num_workers if num_workers else multiprocessing.cpu_count() - self.buffer_size = self.num_workers - self.pool = multiprocessing.Pool(processes=self.num_workers) - self.mpm = multiprocessing.Manager() - self.processing_queue = self.mpm.Queue() - self.result_queue = self.mpm.Queue() - self.__out__queue_expected_size = 0 - self.workers = [ - self.pool.apply_async( - self.worker_func, - (self.processing_queue, self.result_queue), - ) - for _ in range(self.num_workers) - ] - - def __del__(self, *args): - self.pool.close() - self.pool.terminate() - - def get_queue_size(self) -> int: - return self.__out__queue_expected_size - - def _queue_pop(self, args) -> None: - self.__out__queue_expected_size += 1 - self.processing_queue.put(args) - - @logger.catch - def _queue_get(self): - self.__out__queue_expected_size -= 1 - return self.result_queue.get() - - @staticmethod - @logger.catch - def worker( - processing_queue: multiprocessing.Queue, - result_queue: multiprocessing.Queue, - ) -> None: - """Executes given func with it params. - Args: - processing_queue: multiprocessing.Queue - input queue - result_queue: multiprocessing.Queue - output queue - Processing_queue provides data of the form: - tuple(list[Callable], int, Optional[Any]) with - funcs, idx, funcs arguments - """ - while True: - data: WorkerData = processing_queue.get() - if data.initial_args is None: - output = chain(*data.funcs)() - else: - output = chain(*data.funcs)(data.initial_args) - - result_queue.put((output, data.idx)) - - def __call__(self, workers_data: list[WorkerData]): - return self.multiprocess(workers_data) - - def multiprocess(self, workers_data: list[WorkerData]): - """Executes provided functions with args in parallel. - Args: - args: tuple, contains some func, (e.g. mutation, crossover operators), - its arguments and index - Returns: - results: [list, list], contains provided functions outputs and indices they sorted by - """ - res_ids_pairs = [] - - for idx, operand in enumerate(workers_data): - - self._queue_pop(operand) - if idx < self.buffer_size: - continue - - else: - res_ids_pairs.append(self._queue_get()) - - for _ in range(self.get_queue_size()): - res_ids_pairs.append(self._queue_get()) - - if len(res_ids_pairs) == 0: - print('err') - res_ids_pairs = sorted(res_ids_pairs, key=lambda x: x[1]) - res, ids = list(zip(*res_ids_pairs)) - - return list(res), list(ids) diff --git a/gefest/core/utils/parallel_manager.py b/gefest/core/utils/parallel_manager.py new file mode 100644 index 000000000..d02b581a8 --- /dev/null +++ b/gefest/core/utils/parallel_manager.py @@ -0,0 +1,45 @@ +from typing import Any, Callable + +from joblib import Parallel, cpu_count, delayed +from loguru import logger + + +class BaseParallelDispatcher: + """Provides interface for parallel execution.""" + + def __init__(self, n_jobs: int = -1): + self.n_jobs = self._determine_n_jobs(n_jobs) + + # def __call__(self, *args, **kwargs) -> list[Any]: + # return self.exec_parallel(*args, **kwargs) + + def _determine_n_jobs(self, n_jobs: int = -1): + if n_jobs > cpu_count() or n_jobs == -1: + n_jobs = cpu_count() + return n_jobs + + @logger.catch + def exec_parallel( + self, + func: Callable, + arguments: list[Any], + use: bool = True, + ) -> list[Any]: + """Executes provided function in parallel. + + Args: + func (Callable): Function to execute. + arguments (list[Any]): Each element in list is arguments for separate func call. + use (bool, optional): If True, each arg in args will be used as func argument, + otherwise func will be called without arguments len(args) times. Defaults to True. + + Returns: + list[Any] + """ + + parallel = Parallel(n_jobs=self.n_jobs, verbose=0, pre_dispatch='2*n_jobs') + if use: + result = parallel(delayed(func)(arg) for arg in arguments) + else: + result = parallel(delayed(func)() for _ in arguments) + return result diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index 985a6a861..f9c912fee 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -1,5 +1,7 @@ import matplotlib.pyplot as plt +import moviepy.editor as mp from matplotlib.lines import Line2D +from moviepy.video.io.bindings import mplfig_to_npimage from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain @@ -17,7 +19,7 @@ class StructVizualizer: def __init__(self, domain: Domain): self.domain = domain - def plot_structure(self, structs: list[Structure], infos, linestyles="-"): + def plot_structure(self, structs: list[Structure], infos=None, linestyles='-'): """The method displays the given list[obj:`Structure`] Args: structs: the list[obj:`Structure`] for displaying @@ -35,21 +37,25 @@ def plot_structure(self, structs: list[Structure], infos, linestyles="-"): |viz_struct| .. |viz_struct| image::https://ibb.co/fN7XCXh """ - + if not isinstance(structs, list): + structs = [structs] + if not isinstance(infos, list): + infos = [infos] + fig = plt.figure() for struct, linestyle in zip(structs, linestyles): - for poly in struct.polygons: - self.plot_poly(poly, linestyle) - boundary = self.domain.bound_poly x = [pt.x for pt in boundary.points] y = [pt.y for pt in boundary.points] + plt.plot(x, y, 'k') - plt.plot(x, y) + for poly in struct.polygons: + self.plot_poly(poly, linestyle) lines = [ - Line2D([0], [0], color="black", linewidth=3, linestyle=style) for style in linestyles + Line2D([0], [0], color='black', linewidth=3, linestyle=style) for style in linestyles ] plt.legend(lines, infos, loc=2) + return fig def plot_poly(self, poly, linestyle): """The method displays the given :obj:`Polygon` @@ -66,7 +72,30 @@ def plot_poly(self, poly, linestyle): """ x_ = [pt.x for pt in poly.points] y_ = [pt.y for pt in poly.points] + + plt.plot(x_, y_, linestyle=linestyle) for i, p in enumerate(zip(x_, y_)): plt.plot(p[0], p[1], marker='${}$'.format(i), color='black') - - plt.plot(x_, y_,linestyle=linestyle) + + +class GIFMaker(StructVizualizer): + def __init__(self, domain) -> None: + super().__init__(domain=domain) + self.frames = [] + self.counter = 0 + + def create_frame(self, structure, infos): + fig = self.plot_structure(structure, infos) + numpy_fig = mplfig_to_npimage(fig) + self.frames.append(numpy_fig) + plt.close() + + def make_gif(self, gifname, duration=1500, loop=-1): + + # imgs = [Image.fromarray(img) for img in self.frames] + # imgs[0].save(f"./{gifname}.fig", save_all=True, append_images=imgs[1:], duration=duration, loop=0) + # clip = mp.VideoFileClip("mygif.gif") + clip = mp.ImageSequenceClip(self.frames, durations=[1500] * len(self.frames), fps=0.66) + clip.write_videofile(f'./{gifname}.mp4') + self.frames = [] + self.counter = 0 diff --git a/refactored.py b/refactored.py index 5bfd56d33..0703336ab 100644 --- a/refactored.py +++ b/refactored.py @@ -1,5 +1,5 @@ from functools import partial -from typing import Callable, Optional +from typing import Callable, Optional, Union import numpy as np from loguru import logger @@ -7,20 +7,17 @@ from pydantic.dataclasses import dataclass from tqdm import tqdm -from gefest.core.algs.geom.validation import * -from gefest.core.algs.postproc.resolve_errors import * +from gefest.core.algs.postproc.resolve_errors import Rules, PolygonRule, StructureRule from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.core.geometry.utils import * -from gefest.core.opt.operators.crossovers import panmixis, structure_level_crossover +from gefest.core.opt.operators.crossovers import panmixis, structure_level_crossover, polygon_level_crossover from gefest.core.opt.operators.mutations import * -from gefest.core.opt.operators.selections import tournament_selection +from gefest.core.opt.operators.selections import tournament_selection, roulette_selection from gefest.core.opt.strategies.crossover import CrossoverStrategy from gefest.core.opt.strategies.mutation import MutationStrategy from gefest.core.opt.strategies.strategy import Strategy from gefest.core.structure.prohibited import create_prohibited -from gefest.core.utils.mp_manager import WorkersManager -from gefest.core.viz.struct_vizualizer import StructVizualizer from gefest.tools.optimizers.optimizer import Optimizer from gefest.tools.samplers.standard.standard import StandardSampler @@ -40,12 +37,12 @@ class OptimizationParams: sampler: Callable estimator: Callable postprocessor: Callable - postprocess_rules: dict[str, list[Callable, Callable]] + postprocess_rules: list[Union[PolygonRule, StructureRule]] mutation_prob: float = 0.6 crossover_prob: float = 0.6 mutation_each_prob: Optional[list[float]] = None crossover_each_prob: Optional[list[float]] = None - workers_manager: Optional[object] = None + n_jobs: Optional[int] = -1 def __post_init__(self): self.crossovers = [ @@ -55,52 +52,53 @@ def __post_init__(self): self.postprocessor = partial( self.postprocessor, domain=self.domain, - rule_fix_pairs=self.postprocess_rules, + rules=self.postprocess_rules, ) self.sampler = self.sampler(opt_params=self) -@logger.catch -def main(opt_params): +# def main(opt_params): - optimizer = BaseGA(opt_params) +# optimizer = BaseGA(opt_params) - optimizer.optimize(1) +# optimizer.optimize(15) - from gefest.core.viz.struct_vizualizer import StructVizualizer +# from gefest.core.viz.struct_vizualizer import StructVizualizer - plt.figure(figsize=(7, 7)) - visualiser = StructVizualizer(domain) +# plt.figure(figsize=(7, 7)) +# visualiser = StructVizualizer(domain) - info = { - 'spend_time': 1, - 'fitness': optimizer._pop[0].fitness, - 'type': 'prediction', - } - visualiser.plot_structure( - [optimizer._pop[0]], [info], ['-'], - ) +# info = { +# 'spend_time': 1, +# 'fitness': optimizer._pop[0].fitness, +# 'type': 'prediction', +# } +# visualiser.plot_structure( +# [optimizer._pop[0]], [info], ['-'], +# ) - plt.show(block=True) +# plt.show(block=True) -from contextlib import contextmanager +# from contextlib import contextmanager -@contextmanager -def configuration(subprocess_holder): - try: - # load config from yaml - yield subprocess_holder - except Exception: - raise - finally: - # add simulators safe exit - subprocess_holder.workers_manager.pool.close() - subprocess_holder.workers_manager.pool.terminate() +# @contextmanager +# def configuration(subprocess_holder): +# try: +# # load config from yaml +# yield subprocess_holder +# except Exception: +# raise +# finally: +# # add simulators safe exit +# subprocess_holder.parallel_manager.pool.close() +# subprocess_holder.parallel_manager.pool.terminate() if __name__ == '__main__': - logger.add('somefile.log', enqueue=True) + # logger.add('somefile.log', enqueue=True) + + logger.disable('__main__') class BaseGA(Optimizer): def __init__( self, @@ -114,16 +112,18 @@ def __init__( self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator self.selector: Callable = opt_params.selector self.pop_size = opt_params.pop_size - self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) self.domain = self.opt_params.domain + self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) + self._pop = self.estimator(self._pop) def optimize(self, n_steps: int) -> list[Structure]: for _ in tqdm(range(n_steps)): - self._pop = self.estimator(pop=self._pop) self._pop = self.selector(self._pop, self.opt_params.pop_size) self._pop = self.crossover(self._pop) self._pop = self.mutation(self._pop) + self._pop = self.estimator(self._pop) + [print(x.fitness) for x in self._pop] self._pop = sorted(self._pop, key=lambda x: x.fitness) return self._pop @@ -178,12 +178,17 @@ def area_length_ratio(pop: list[Structure], domain: Domain): min_points_num=6, is_closed=True, ) + print(domain.dist_between_points) + print(domain.dist_between_polygons) + print(domain.min_dist_from_boundary) from pathlib import Path from gefest.core.geometry import PolyID from gefest.tools import Estimator from gefest.tools.estimators.simulators.swan.swan_interface import Swan + + # root_path = Path(__file__).parent.parent.parent.parent # path_sim = ( # 'F:/Git_Repositories/gefest_fork/GEFEST/gefest/tools/estimators/simulators/swan/swan_model/' @@ -223,7 +228,9 @@ def area_length_ratio(pop: list[Structure], domain: Domain): # estimator = ComsolFitness(simulator=comsol, domain=domain) opt_params = OptimizationParams( - crossovers=[partial(structure_level_crossover, domain=domain)], + crossovers=[ + partial(polygon_level_crossover, domain=domain), + partial(structure_level_crossover, domain=domain)], mutations=[ rotate_poly, resize_poly, @@ -237,50 +244,50 @@ def area_length_ratio(pop: list[Structure], domain: Domain): crossover_strategy=CrossoverStrategy, mutation_prob=0.6, crossover_prob=0.6, - crossover_each_prob=[1], - mutation_each_prob=[0.125, 0.125, 0.35, 0.05, 0.1, 0.05, 0.2], + crossover_each_prob=[0.0, 1.0], + mutation_each_prob=[0.125, 0.125, 0.35, 0.05, 0.01, 0.01, 0.33], n_steps=5, - pop_size=50, + pop_size=25, selector=tournament_selection, pair_selector=panmixis, - postprocess_attempts=3, + postprocess_attempts=5, domain=domain, postprocessor=postprocess, - postprocess_rules={ - 'unclosed': [ - unclosed_poly, - correct_unclosed_poly, - ], - 'self_intersect': [ - self_intersection, - correct_self_intersection, - ], - 'wrong_points': [ - out_of_bound, - correct_wrong_point, - ], - }, + postprocess_rules=[ + + Rules.not_closed_polygon.value, + Rules.not_self_intersects.value, + Rules.not_out_of_bounds.value, + Rules.not_too_close_points.value, + Rules.not_too_close_polygons.value, + ], sampler=StandardSampler, estimator=partial(area_length_ratio, domain=domain), - workers_manager=WorkersManager(), + n_jobs=-1, ) - with configuration(opt_params): - optimizer = BaseGA(opt_params) - - optimizer.optimize(100) - - from gefest.core.viz.struct_vizualizer import StructVizualizer - plt.figure(figsize=(7, 7)) - visualiser = StructVizualizer(domain) - - info = { - 'spend_time': 1, - 'fitness': optimizer._pop[0].fitness, - 'type': 'prediction', - } - visualiser.plot_structure( - [optimizer._pop[0]], [info], ['-'], - ) - - plt.show(block=True) + # with configuration(opt_params): + optimizer = BaseGA(opt_params) + logger.disable('Standard') + import cProfile + optimizer.optimize(25) + + from gefest.core.viz.struct_vizualizer import GIFMaker + gm = GIFMaker(domain=domain) + for s in optimizer._pop: + gm.create_frame(s, {'Fitness': s.fitness}) + gm.make_gif('test', 500, ) + # from gefest.core.viz.struct_vizualizer import StructVizualizer + # plt.figure(figsize=(7, 7)) + # visualiser = StructVizualizer(domain) + + # info = { + # 'spend_time': 1, + # 'fitness': optimizer._pop[0].fitness, + # 'type': 'prediction', + # } + # visualiser.plot_structure( + # [optimizer._pop[0]], [info], ['-'], + # ) + + # plt.show(block=True) From ef74200d8c1c3dd78ce4b5410c72bb7b7be23068 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 2 Oct 2023 16:52:27 +0300 Subject: [PATCH 05/66] add: joblib backend, postprocessing-safe mutations, basic logger, serialization, mp4 visualization, GA & SEPA2 on new core. Now fitness evaluates only for changed structures. --- gefest/core/algs/postproc/resolve_errors.py | 153 +++--- gefest/core/geometry/datastructs/polygon.py | 3 + gefest/core/geometry/datastructs/structure.py | 27 +- gefest/core/geometry/domain.py | 2 +- gefest/core/geometry/geometry_2d.py | 304 ++++++++++-- gefest/core/geometry/utils.py | 275 ++++++++--- gefest/core/opt/adapters/factories.py | 6 +- gefest/core/opt/adapters/structure.py | 3 + gefest/core/opt/operators/crossovers.py | 27 +- gefest/core/opt/operators/mutations.py | 435 ++++++++++++------ gefest/core/opt/strategies/crossover.py | 4 +- gefest/core/opt/strategies/mutation.py | 4 +- gefest/core/structure/prohibited.py | 8 +- gefest/core/utils/__init__.py | 2 +- gefest/core/utils/functions.py | 12 +- gefest/core/utils/parallel_manager.py | 15 +- gefest/core/viz/struct_vizualizer.py | 30 +- gefest/tools/fitness.py | 8 +- gefest/tools/optimizers/GA/base_GA.py | 160 ++----- gefest/tools/optimizers/SPEA2/SPEA2.py | 117 ++--- gefest/tools/optimizers/optimizer.py | 1 - gefest/tools/samplers/sampler.py | 44 +- gefest/tools/samplers/standard/standard.py | 49 +- refactored.py | 330 ++++++++----- 24 files changed, 1320 insertions(+), 699 deletions(-) diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/algs/postproc/resolve_errors.py index e75178f86..fcb95d9b9 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/algs/postproc/resolve_errors.py @@ -9,11 +9,11 @@ from loguru import logger from shapely.geometry import Point as ShapelyPoint from shapely.geometry import Polygon as ShapelyPolygon +from shapely.ops import cascaded_union from shapely.validation import explain_validity -from gefest.core.geometry import Polygon, Structure, get_random_poly +from gefest.core.geometry import Point, Polygon, Structure, get_random_poly from gefest.core.geometry.domain import Domain -from gefest.core.viz.struct_vizualizer import GIFMaker class PolygonRule(metaclass=ABCMeta): @@ -169,15 +169,20 @@ def validate( Returns: ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` """ + poly = structure[idx_poly_with_error] + if poly[0] != poly[-1] and domain.geometry.is_closed: + poly[:-1] = poly[0] lenght = domain.dist_between_points - check = [] - norms = [] - for pair in zip(structure[idx_poly_with_error][:-1], structure[idx_poly_with_error][1:]): - norm = np.linalg.norm(np.array(pair[1].coords) - np.array(pair[0].coords), ord=1) - norms.append(norm) - check.append(norm > lenght) - - # logger.info(f'{norms}, {lenght}, {all(check)}') + check, norms = [[None] * (len(poly) - 1)] * 2 + for idx, pair in enumerate( + zip( + poly[:-1], + poly[1:], + ), + ): + norm = np.linalg.norm(np.array(pair[1].coords) - np.array(pair[0].coords)) + norms[idx] = norm + check[idx] = norm > lenght return all(check) @staticmethod @@ -186,14 +191,58 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: - parent_structure = copy.deepcopy(structure) - del parent_structure.polygons[idx_poly_with_error] - poly = get_random_poly(parent_structure, domain) - if poly is None: - poly = structure[idx_poly_with_error] + poly = copy.deepcopy(structure[idx_poly_with_error]) + poly = domain.geometry.simplify(poly, domain.dist_between_points * 1.05) + + if poly[0] != poly[-1] and domain.geometry.is_closed: + poly.points.append(poly[0]) + elif poly[0] == poly[-1] and not domain.geometry.is_closed: + poly.points = poly.points[:-1] return poly +class PolygonNotOverlapsProhibited(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + + geom = domain.geometry + if domain.geometry.is_closed: + raise NotImplementedError() + else: + prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) + prohib = cascaded_union(prohib) + poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) + if poly.intersects(prohib): + return True + + return False + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + geom = domain.geometry + if domain.geometry.is_closed: + raise NotImplementedError() + else: + prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) + prohib = cascaded_union(prohib) + poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) + if poly.intersects(prohib): + parts = [geom for geom in poly.difference(prohib.buffer(0.001)).geoms] + parts = [geom for geom in parts if not geom.intersects(prohib)] + poly = np.random.choice(parts)[0] + poly = [Point(p[0], p[1]) for p in poly.coords] + else: + return poly + + class PolygonNotClosed(PolygonRule): @staticmethod def validate( @@ -202,7 +251,11 @@ def validate( domain: Domain, ) -> bool: poly = structure[idx_poly_with_error] - return domain.geometry.is_closed and (poly[0] == poly[-1]) + if (domain.geometry.is_closed and (poly[0] == poly[-1])) or ( + not domain.geometry.is_closed and (poly[0] != poly[-1]) + ): + return True + return False @staticmethod def correct( @@ -211,8 +264,10 @@ def correct( domain: Domain, ) -> Polygon: poly = structure[idx_poly_with_error] - if domain.geometry.is_closed and (poly[0] != poly[-1]): + if domain.geometry.is_closed and domain.geometry.is_convex and (poly[0] != poly[-1]): poly.points.append(poly.points[0]) + elif not domain.geometry.is_closed and (poly[0] == poly[-1]): + poly.points = poly.points[:-1] return poly @@ -226,7 +281,6 @@ def validate( geom_poly_allowed = ShapelyPolygon( [ShapelyPoint(pt.x, pt.y) for pt in domain.allowed_area], ) - for pt in structure[idx_poly_with_error]: geom_pt = ShapelyPoint(pt.x, pt.y) if ( @@ -259,6 +313,12 @@ def correct( if point_moved: poly = domain.geometry.resize_poly(poly=poly, x_scale=0.8, y_scale=0.8) + + if poly[0] != poly[-1] and domain.geometry.is_closed: + poly.points.append(poly[0]) + elif poly[0] == poly[-1] and not domain.geometry.is_closed: + poly.points = poly.points[:-1] + return poly @@ -274,7 +334,7 @@ def validate( len(poly) > 2 and _forbidden_validity( explain_validity( - ShapelyPolygon([ShapelyPoint(pt.x, pt.y) for pt in poly]), + ShapelyPolygon([ShapelyPoint(pt.x, pt.y) for pt in poly]).boundary, ), ) ) @@ -285,13 +345,16 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: - return domain.geometry.get_convex(structure[idx_poly_with_error]) + poly = structure[idx_poly_with_error] + poly = domain.geometry.get_convex(poly) + return poly def _forbidden_validity(validity): return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity +@logger.catch def validate( structure: Structure, rules: list[Union[StructureRule, PolygonRule]], @@ -302,31 +365,24 @@ def validate( if any( [(not poly or len(poly) == 0 or any([not p for p in poly])) for poly in structure], ): - print('Wrong structure - problems with points') + logger.error('Wrong structure - problems with points') return False - # for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): - # if not all([rule.validate(structure, idx_, domain) for idx_, _ in enumerate(structure)]): - # return False - # for rule in (rule for rule in rules if isinstance(rule, StructureRule)): - # if not rule.validate(structure, domain): - # return False - for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): for idx_, _ in enumerate(structure): if not rule.validate(structure, idx_, domain): + logger.info(f'{rule.__class__.__name__} final fail') return False for rule in (rule for rule in rules if isinstance(rule, StructureRule)): if not rule.validate(structure, domain): + logger.info(f'{rule.__class__.__name__} final fail') return False return True -from uuid import uuid4 - - +@logger.catch def postprocess( structure: Structure, rules: list[Union[StructureRule, PolygonRule]], @@ -349,57 +405,46 @@ def postprocess( """ if structure is None: + logger.error('None struct postproc input') return None if any( - [(not poly or len(poly) == 0 or any([not pt for pt in poly])) for poly in structure], + [ + (not poly or len(poly) == 0 or any([not pt for pt in poly])) + for poly in structure.polygons + ], ): - print('Wrong structure - problems with points') + logger.error('Wrong structure - problems with points') return None corrected_structure = deepcopy(structure) - gm = GIFMaker(domain=domain) - colors = { - 0: 'blue', - 1: 'orange', - 2: 'green', - 3: 'red', - 4: 'purple', - } - - gm.create_frame(corrected_structure, {'test': 'start'}) + for idx_, _ in enumerate(structure.polygons): for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): for at in range(attempts): if not rule.validate(corrected_structure, idx_, domain): corrected_structure[idx_] = rule.correct(corrected_structure, idx_, domain) - # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': f'attempt {at}'}) else: - # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'OK'}) break else: if not rule.validate(corrected_structure, idx_, domain): - # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'Failed'}) - # gm.make_gif(str(uuid4())) + logger.info(f'{rule.__class__.__name__} fail') return None - for rule in (rule for rule in rules if isinstance(rule, StructureRule)): + for idx_, rule in enumerate(rule for rule in rules if isinstance(rule, StructureRule)): for at in range(attempts): if not rule.validate(corrected_structure, domain): corrected_structure = rule.correct(corrected_structure, domain) - # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': f'attempt {at}'}) else: - # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'OK'}) + if any([len(poly) == 1 for poly in corrected_structure]): + logger.error(rule.__class__.__name__) break else: if not rule.validate(corrected_structure, domain): - # gm.create_frame(corrected_structure, {f'{rule.__class__.__name__}, poly_id: {colors[idx_]}': 'Failed'}) - # gm.make_gif(str(uuid4())) return None if validate(corrected_structure, rules, domain): return corrected_structure - # gm.create_frame(corrected_structure, {f'Final validation : {rulename}': 'Failed'}) - # gm.make_gif(str(uuid4())) + logger.error('None struct postproc out') return None diff --git a/gefest/core/geometry/datastructs/polygon.py b/gefest/core/geometry/datastructs/polygon.py index 11af66a8b..2b5b09ae2 100644 --- a/gefest/core/geometry/datastructs/polygon.py +++ b/gefest/core/geometry/datastructs/polygon.py @@ -27,6 +27,9 @@ def __len__(self) -> int: return len(self.points) def __getitem__(self, key) -> Point: + if isinstance(key, slice): + indices = range(*key.indices(len(self.points))) + return Polygon([self.points[i] for i in indices]) return self.points[key] def __setitem__(self, key: int, value: Point): diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index 3e9ec0ea9..a362d3fec 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -10,21 +10,40 @@ @dataclass class Structure: - polygons: list[Polygon] = Field(default_factory=list) + polygons: tuple[Polygon, ...] = Field(default_factory=tuple) fitness: list[float] = Field(default_factory=list) + extra_characteristics: dict = Field(default_factory=dict) _id: UUID = Field(default_factory=uuid4) def __len__(self): return len(self.polygons) - def __getitem__(self, key): - return self.polygons[key] + def __setattr__(self, name, value): + if name in ['polygons']: + self.fitness = [] + super().__setattr__(name, value) def __setitem__(self, key, value): - self.polygons[key] = value + if not isinstance(value, Polygon): + raise ValueError() + polygons = list(self.polygons) + if polygons[key] != value: + polygons[key] = value + self.polygons = tuple(polygons) + + def __getitem__(self, key): + return self.polygons[key] + # if isinstance(key, slice): + # indices = range(*key.indices(len(self.points))) + # return Polygon([self.points[i] for i in indices]) def __contains__(self, item: Union[Point, Polygon]): if isinstance(item, Polygon): return item in self.polygons if isinstance(item, Point): return any(item in poly for poly in self.polygons) + + def append(self, value): + polygons = list(self.polygons) + polygons.append(value) + self.polygons = tuple(polygons) diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py index 777d19977..cb011fb20 100644 --- a/gefest/core/geometry/domain.py +++ b/gefest/core/geometry/domain.py @@ -18,7 +18,7 @@ class Domain: max_poly_num: int = 4 min_points_num: int = 20 max_points_num: int = 50 - polygon_side: int = 0.05 + polygon_side: float = 0.05 min_dist_from_boundary: float = 1.0 prohibited_area: Optional[Structure] = Field(default=Structure([])) fixed_points: Optional[Union[Polygon, list[list[float]]]] = Field(default_factory=list) diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index d7c560fb8..e6c6c949b 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -2,14 +2,21 @@ from uuid import uuid4 import numpy as np -from pydantic import BaseModel +from loguru import logger +from numpy import arccos, array, clip, dot +from numpy.linalg import norm from pydantic.dataclasses import dataclass from shapely import affinity, get_parts -from shapely.affinity import scale -from shapely.geometry import LineString, MultiLineString +from shapely.affinity import rotate, scale +from shapely.geometry import ( + GeometryCollection, + LineString, + MultiLineString, + MultiPolygon, +) from shapely.geometry import Point as GeomPoint from shapely.geometry import Polygon as GeomPolygon -from shapely.geometry import mapping +from shapely.geometry import box, mapping from shapely.ops import nearest_points, split from gefest.core.geometry import Point, Polygon, Structure @@ -27,6 +34,7 @@ class Geometry2D(Geometry): """ is_closed: bool = True + is_convex: bool = True def get_length(self, polygon: Polygon): if len(polygon.points) < 1: @@ -46,25 +54,30 @@ def get_coords(self, poly) -> List[Point]: if isinstance(poly, GeomPolygon): poly = LineString(poly.exterior.coords) - if self.is_closed or len(poly.coords.xy[0]) < 3: - points = [ - Point(x, y) - for x, y in zip( - list(poly.coords.xy[0]), - list(poly.coords.xy[1]), - ) - ] - else: - points = [ - Point(x, y) - for x, y in zip( - list(poly.coords.xy[0][:-1]), - list(poly.coords.xy[1][:-1]), - ) - ] + points = [ + Point(x, y) + for x, y in zip( + list(poly.coords.xy[0]), + list(poly.coords.xy[1]), + ) + ] return points + def get_prohibited_geom( + self, + prohibited_area: Structure, + buffer_size: float = 0.001, + ) -> GeometryCollection: + geom_collection = [] + for poly in prohibited_area.polygons: + if poly[0] == poly[-1]: + geom_collection.append(self._poly_to_shapely_poly(poly).buffer(buffer_size)) + else: + geom_collection.append(self._poly_to_shapely_line(poly).buffer(buffer_size)) + return GeometryCollection(geom_collection) + + ## def resize_poly( self, poly: Polygon, @@ -80,7 +93,7 @@ def resize_poly( Returns: scaled :obj:`poly` by ``(x,y)`` axes """ - geom_polygon = self._poly_to_geom(poly) + geom_polygon = self._poly_to_shapely_line(poly) rescaled_geom_polygon = affinity.scale( geom_polygon, @@ -97,6 +110,22 @@ def resize_poly( return rescaled_poly + @logger.catch + def get_angle( + self, + vector1: tuple[Point, Point], + vector2: tuple[Point, Point], + ) -> float: + np.seterr('raise') + u = array([vector1[1].x - vector1[0].x, vector1[1].y - vector1[0].y]) + v = array([vector2[1].x - vector2[0].x, vector2[1].y - vector2[0].y]) + if norm(v) == 0 or norm(u) == 0: + logger.critical(f"invalid vectors: {vector1}, {vector2}") + c = dot(u, v) / norm(u) / norm(v) + angle = arccos(clip(c, -1, 1)) + return np.rad2deg(angle) + + ## hold def rotate_point( self, point: Point, @@ -123,7 +152,7 @@ def rotate_poly( rotated :obj:`poly` """ - geom_polygon = self._poly_to_geom(poly) + geom_polygon = self._poly_to_shapely_line(poly) rotated_geom_polygon = affinity.rotate( geom_polygon, @@ -139,6 +168,7 @@ def rotate_poly( return rotated_poly + ### property def get_square(self, polygon: Polygon) -> float: """Recieving value of the area Args: @@ -150,10 +180,11 @@ def get_square(self, polygon: Polygon) -> float: if len(polygon.points) <= 1: return 0 - geom_polygon = GeomPolygon([self._pt_to_geom(pt) for pt in polygon]) + geom_polygon = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in polygon]) return geom_polygon.area + ### property def is_contain_point(self, poly: Polygon, point: Point) -> bool: """Checking if a point is inside a polygon Args: @@ -162,11 +193,12 @@ def is_contain_point(self, poly: Polygon, point: Point) -> bool: Returns: ``True`` if :obj:`point` is into :obj:`poly`, otherwise ``False`` """ - geom_poly_allowed = GeomPolygon([self._pt_to_geom(pt) for pt in poly]) + geom_poly_allowed = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in poly]) geom_pt = GeomPoint(point.x, point.y) return geom_poly_allowed.contains(geom_pt) + ## hold def nearest_point(self, point: Point, poly: Polygon) -> Point: """Calculating closest point between input point and polygon. Args: @@ -175,7 +207,7 @@ def nearest_point(self, point: Point, poly: Polygon) -> Point: Returns: nearest_correct_position :obj:`Point` from ``point`` among all points in the ``poly`` """ - geom_poly = self._poly_to_geom(poly) + geom_poly = self._poly_to_shapely_line(poly) geom_point = GeomPoint(point.x, point.y) _, nearest_correct_position = nearest_points(geom_point, geom_poly) return Point(nearest_correct_position.x, nearest_correct_position.y) @@ -189,8 +221,8 @@ def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: the couple of :obj:`Point` where the first one from :obj:`poly_1` and the second one from :obj:`poly_2` """ - geom_poly_1 = self._poly_to_geom(poly_1) - geom_poly_2 = self._poly_to_geom(poly_2) + geom_poly_1 = self._poly_to_shapely_line(poly_1) + geom_poly_2 = self._poly_to_shapely_line(poly_2) _, nearest_correct_position = nearest_points( geom_poly_1, @@ -198,6 +230,7 @@ def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: ) return nearest_correct_position + ### property def get_convex(self, poly: Polygon) -> Polygon: """Obtaining a convex polygon to avoid intersections Args: @@ -207,12 +240,158 @@ def get_convex(self, poly: Polygon) -> Polygon: """ if len(poly.points) < 3: return poly - geom_poly = self._poly_to_geom(poly).convex_hull + geom_poly = self._poly_to_shapely_line(poly).convex_hull points = self.get_coords(geom_poly) polygon = Polygon(polygon_id='tmp', points=points) return polygon + ## hold + def intersection_line_line(self, points1, points2, scale1, scale2): + a = scale(LineString([(p.x, p.y) for p in points1]), scale1, scale1) + b = scale(LineString([(p.x, p.y) for p in points2]), scale2, scale2) + intersection_point = a.intersection(b) + if not intersection_point.is_empty: + if isinstance(intersection_point, LineString): + intersection_point = intersection_point.coords[0] + intersection_point = Point(intersection_point[0], intersection_point[1]) + else: + intersection_point = Point(intersection_point.x, intersection_point.y) + else: + intersection_point = None + return intersection_point + + def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_factor): + + if self.is_closed: + figure = self._poly_to_shapely_poly(figure) + else: + figure = self._poly_to_shapely_line(figure) + minx, miny, maxx, maxy = figure.bounds + line = LineString([(p.x, p.y) for p in points]) + line = scale(line, scale_factor) + bounding_box = box(minx * 2, miny * 2, maxx * 2, maxy * 2) + a = GeomPoint(line.boundary.bounds[:2]) + b = GeomPoint(line.boundary.bounds[2:]) + if a.x == b.x: # vertical line + extended_line = LineString([(a.x, miny), (a.x, maxy)]) + elif a.y == b.y: # horizonthal line + extended_line = LineString([(minx, a.y), (maxx, a.y)]) + else: + # linear equation: y = k*x + m + k = (b.y - a.y) / (b.x - a.x) + m = a.y - k * a.x + y0 = k * minx + m + y1 = k * maxx + m + x0 = (miny - m) / k + x1 = (maxy - m) / k + points_on_boundary_lines = [ + GeomPoint(minx, y0), + GeomPoint(maxx, y1), + GeomPoint(x0, miny), + GeomPoint(x1, maxy), + ] + points_sorted_by_distance = sorted(points_on_boundary_lines, key=bounding_box.distance) + extended_line = LineString(points_sorted_by_distance[:2]) + + if extended_line.intersects(figure): + extended_line.intersection(figure) + else: + return None + + ### property + def simplify(self, poly: Polygon, tolerance: float) -> Polygon: + from matplotlib import pyplot as plt + from shapely.plotting import plot_polygon + + inp = poly + if len(poly) < 3: + return poly + if self._poly_to_shapely_line(poly).is_simple: + + poly = self._poly_to_shapely_poly(inp) + compressed = poly.buffer(-tolerance, join_style='mitre') + if not compressed.is_empty: + poly = compressed.buffer(tolerance * 1.05, join_style='mitre') + simplified = poly.simplify(tolerance) + + + if isinstance(simplified, MultiPolygon): + simplified = max(simplified.geoms, key=lambda p: p.area) + if simplified.is_empty: + poly = self._poly_to_shapely_poly(inp) + plot_polygon(poly, color='r') + plt.show() + compressed = poly.buffer(-tolerance, join_style='mitre') + plot_polygon(compressed, color='r') + plt.show() + decompressed = compressed.buffer(tolerance * 1.1, join_style='mitre') + plot_polygon(decompressed, color='g') + plt.show() + intersected = decompressed.intersection(poly) + plot_polygon(intersected, color='b') + plt.show() + simplified = intersected.simplify(tolerance) + if isinstance(simplified, MultiPolygon): + simplified = max(simplified.geoms, lambda p: p.area) + raise ValueError('Empty polygon produced 1') + out = Polygon([Point(p[0], p[1]) for p in simplified.exterior.coords]) + else: + simplified = self._poly_to_shapely_line(poly).convex_hull.simplify(tolerance) + if simplified.is_empty: + raise ValueError('Empty polygon produced 2') + out = Polygon([Point(p[0], p[1]) for p in simplified.exterior.coords]) + # plot_polygon(simplified, color='b') + # plt.show() + + return out + + ## hold + def remove_spikes(self, poly: Polygon, eps: float): + poly = self._poly_to_shapely_poly(poly) + no_ = poly.buffer(-eps, 1, join_style='mitre').buffer(eps * 1.05, 1, join_style='mitre') + + return Polygon([Point(p[0], p[1]) for p in poly.exterior.coords]) + + def get_random_point_in_shapey_geom(self, fig): + if fig.is_empty: + raise ValueError('Unable to pick a point from an empty polygon.') + if isinstance(fig, MultiPolygon): + bds = [] + for bound in list(fig.geoms): + bds.extend(list(bound.exterior.coords)) + minx, miny, maxx, maxy = LineString(bds).bounds + else: + minx, miny, maxx, maxy = fig.bounds + + x = np.random.uniform(minx, maxx, 1) + y = np.random.uniform(miny, maxy, 1) + while not fig.contains(GeomPoint(x, y)): + x = np.random.uniform(minx, maxx, 1) + y = np.random.uniform(miny, maxy, 1) + + return Point(x, y) + + # utils + def get_random_point_in_poly(self, poly) -> Point: + minx, miny, maxx, maxy = poly.bounds + if any([b != b for b in poly.bounds]): + raise ValueError('Unable to pick a point from empty an polygon.') + + # also can be used polar cords generator within circumscribed circle + x = np.random.uniform(minx, maxx, 1) + y = np.random.uniform(miny, maxy, 1) + point = None + for _ in range(100): + x = np.random.uniform(minx, maxx, 1) + y = np.random.uniform(miny, maxy, 1) + if poly.contains(GeomPoint(x, y)): + point = Point(x, y) + break + + return point + + ### propetry def get_centroid(self, poly: Polygon) -> Point: """Getting a point that is the center of mass of the polygon Args: @@ -223,7 +402,7 @@ def get_centroid(self, poly: Polygon) -> Point: points = [pt for pt in poly.points] if len(points) < 3: points.append(points[0]) - geom_poly = GeomPolygon([self._pt_to_geom(pt) for pt in points]) + geom_poly = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in points]) geom_point = geom_poly.centroid point = Point(geom_point.x, geom_point.y) return point @@ -238,17 +417,45 @@ def intersects(self, structure: Structure) -> bool: otherwise - ``False`` """ multi_geom = MultiLineString( - [self._poly_to_geom(poly) for poly in structure], + [self._poly_to_shapely_line(poly) for poly in structure.polygons], ) return multi_geom.is_simple def contains(self, poly1: Polygon, poly2: Polygon) -> bool: - geom_polygon1 = self._poly_to_geom(poly1) - geom_polygon2 = GeomPolygon([self._pt_to_geom(pt) for pt in poly2]) + geom_polygon1 = self._poly_to_shapely_line(poly1) + geom_polygon2 = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in poly2]) is_contain = geom_polygon2.contains(geom_polygon1) return is_contain + def difference_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): + base_poly = self._poly_to_shapely_poly(base_poly) + if isinstance(diff_polys, Polygon): + diff_polys = [diff_polys] + diff_polys = [self._poly_to_shapely_poly for poly in diff_polys] + + for poly in diff_polys: + base_poly = base_poly.difference(poly) + + if base_poly.is_empty: + assert 'Empty difference' + + return Polygon([Point(p[0], p[1]) for p in base_poly.exterior.coords]) + + def intersection_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): + base_poly = self._poly_to_shapely_poly(base_poly).convex_hull + if isinstance(diff_polys, Polygon): + diff_polys = [diff_polys] + diff_polys = [self._poly_to_shapely_poly(poly).convex_hull for poly in diff_polys] + + for poly in diff_polys: + base_poly = base_poly.intersection(poly) + + if base_poly.is_empty: + assert 'Empty intersection' + + return Polygon([Point(p[0], p[1]) for p in base_poly.exterior.coords]) + def intersects_poly(self, poly_1: Polygon, poly_2: Polygon) -> bool: """Intersection between two polygons Args: @@ -258,20 +465,29 @@ def intersects_poly(self, poly_1: Polygon, poly_2: Polygon) -> bool: ``True`` if the :obj:`poly_1` intersects with :obj:`poly_2`, otherwise - ``False`` """ - geom_poly_1 = self._poly_to_geom(poly_1) - geom_poly_2 = self._poly_to_geom(poly_2) + geom_poly_1 = self._poly_to_shapely_line(poly_1) + geom_poly_2 = self._poly_to_shapely_line(poly_2) return geom_poly_1.intersects(geom_poly_2) - def _poly_to_geom(self, poly: Polygon) -> LineString: - """Transform GEFEST Polygon to shapely Polygon. + def _poly_to_shapely_line(self, poly: Polygon) -> LineString: + """Transform GEFEST Polygon to shapely non cycled LineString. Args: poly: Polygon Returns: LineString """ - return LineString([self._pt_to_geom(pt) for pt in poly.points]) + return LineString([self._pt_to_shapely_pt(pt) for pt in poly.points]) + + def _poly_to_shapely_poly(self, poly: Polygon) -> GeomPolygon: + """Transform GEFEST Polygon to shapely Polygon. + Args: + poly: Polygon + Returns: + GeomPolygon + """ + return GeomPolygon([(pt.x, pt.y) for pt in poly.points]) - def _pt_to_geom(self, pt: Point) -> GeomPoint: + def _pt_to_shapely_pt(self, pt: Point) -> GeomPoint: """Transform GEFEST Polygon to shapely Polygon. Args: poly: Point @@ -307,21 +523,21 @@ def min_distance(self, obj_1, obj_2) -> float: """ if isinstance(obj_1, Polygon): - obj_1 = self._poly_to_geom(obj_1) + obj_1 = self._poly_to_shapely_line(obj_1) elif isinstance(obj_1, Point): - obj_1 = self._pt_to_geom(obj_1) + obj_1 = self._pt_to_shapely_pt(obj_1) if isinstance(obj_2, Polygon): - obj_2 = self._poly_to_geom(obj_2) + obj_2 = self._poly_to_shapely_line(obj_2) elif isinstance(obj_2, Point): - obj_2 = self._pt_to_geom(obj_2) + obj_2 = self._pt_to_shapely_pt(obj_2) distance = obj_1.distance(obj_2) return distance def centroid_distance(self, point: Point, poly: Polygon) -> Point: # Distance from point to polygon - geom_point = self._pt_to_geom(point) - geom_poly = self._poly_to_geom(poly) + geom_point = self._pt_to_shapely_pt(point) + geom_poly = self._poly_to_shapely_line(poly) dist = geom_point.distance(geom_poly) return dist diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 7e6457439..2b97cedee 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -1,10 +1,12 @@ import json from dataclasses import dataclass +from functools import partial from random import randint from typing import Optional import numpy as np from loguru import logger +from shapely.affinity import scale from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.geometry_2d import Geometry2D @@ -12,17 +14,22 @@ from .domain import Domain +def random_polar(origin: Point, radius_scale: float) -> Point: + theta = np.random.random() * 2 * np.pi + r = np.random.random() * radius_scale + return Point((r * np.cos(theta)) + origin.x, (r * np.sin(theta)) + origin.y) + + def get_random_structure(domain: Domain, **kwargs) -> Structure: # Creating structure with random number of polygons - structure = Structure(polygons=[]) - + structure = Structure(polygons=()) num_pols = randint(domain.min_poly_num, domain.max_poly_num) for _ in range(num_pols): polygon = get_random_poly(parent_structure=structure, domain=domain) if polygon is not None and len(polygon.points) > 1: - structure.polygons.append(polygon) + structure.append(polygon) else: continue return structure @@ -76,83 +83,139 @@ def get_random_point(polygon: Polygon, structure: Structure, domain: Domain) -> return point +from polygenerator import ( + random_convex_polygon, + random_polygon, + random_star_shaped_polygon, +) + + def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: - # Creating polygon in the neighborhood of the centroid - # sigma defines neighborhood + num_points = randint( domain.min_points_num, domain.max_points_num, - ) # Number of points in a polygon - points = [] - cntr = 0 - while len(points) < num_points: - cntr += 1 - - point = create_polygon_point(centroid, sigma) - while not in_bound(point, domain): - point = create_polygon_point(centroid, sigma) - points.append(point) - ind = len(points) - 1 - if ind > 0: - if ( - np.linalg.norm( - np.array(points[ind].coords[:2]) - np.array(points[ind - 1].coords[:2]), ord=1 - ) - < domain.dist_between_points - ): - del points[ind] - if len(points) == num_points: - if ( - np.linalg.norm( - np.array(points[-1].coords[:2]) - np.array(points[0].coords[:2]), ord=1 - ) - < domain.dist_between_points - ): - del points[-1] - if len(points) == num_points: - if domain.geometry.is_closed: - points.append(points[0]) - poly = geometry.get_convex(Polygon(points=points)) - points = poly.points - if cntr > 100 and len(points) > 4: - break - - # logger.info(f'Create poly finish, {cntr} iterations.') - return poly + ) + if domain.geometry.is_convex: # convex closed/unclosed + generator = random_convex_polygon + + else: # non_convex, unclosed + generator = np.random.choice( + [ + random_convex_polygon, + random_star_shaped_polygon, + random_polygon, + ], + ) + new_poly = generator(num_points) + if not geometry.is_closed: + start = np.random.choice(range(num_points), 1)[0] + # slice_length = np.random.choice(range(3, len(poly_points)), 1)[0] + # logger.info(slice_length) + new_poly = [new_poly[((start + i) % len(new_poly))] for i in range(num_points)] + + scale_factor = 2 * (sigma / (1 ** 0.5)) + c, s = centroid, scale_factor + new_poly = Polygon( + [ + Point( + ((p[0] - 0.5) * s) + c.x, + ((p[1] - 0.5) * s) + c.y, + ) + for p in new_poly + ], + ) + if domain.geometry.is_closed: + new_poly.points.append(new_poly[0]) + return new_poly + + +# def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: +# # Creating polygon in the neighborhood of the centroid +# # sigma defines neighborhood +# num_points = randint( +# domain.min_points_num, +# domain.max_points_num, +# ) # Number of points in a polygon +# points = [] +# cntr = 0 +# while len(points) < num_points: +# cntr += 1 + +# point = create_polygon_point(centroid, sigma) +# while not in_bound(point, domain): +# point = create_polygon_point(centroid, sigma) +# points.append(point) +# ind = len(points) - 1 +# if ind > 0: +# if ( +# np.linalg.norm( +# np.array(points[ind].coords[:2]) - np.array(points[ind - 1].coords[:2]), ord=1 +# ) +# < domain.dist_between_points +# ): +# del points[ind] +# if len(points) == num_points: +# if ( +# np.linalg.norm( +# np.array(points[-1].coords[:2]) - np.array(points[0].coords[:2]), ord=1 +# ) +# < domain.dist_between_points +# ): +# del points[-1] +# if len(points) == num_points: +# if domain.geometry.is_closed: +# points.append(points[0]) +# poly = geometry.get_convex(Polygon(points=points)) +# points = poly.points +# if cntr > 5000 and len(points) > 4: +# break + +# # logger.info(f'Create poly finish, {cntr} iterations.') +# return poly + + +def get_sigma_max(poly, init_max): + sigma_max = init_max + left_bound = 0 + right_bound = init_max + for _ in range(100): + if poly.buffer(-sigma_max, 1).is_empty: + right_bound = sigma_max + sigma_max -= (right_bound - left_bound) / 2 + else: + left_bound = sigma_max + sigma_max += (right_bound - left_bound) / 2 + if sigma_max < 0.02: + break + return sigma_max def create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> (Point, float): - n_poly = len(structure.polygons) # Number of already existing polygons - area_size = np.random.randint(low=3, high=15) # Neighborhood compression ratio - sigma = ( - max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) / area_size - ) # Neighborhood size - if n_poly == 0: - # In the absence of polygons, the centroid can be located anywhere - centroid = create_random_point(domain) - else: - """ - This procedure allows to find a centroid in the neighborhood - of which there are no other polygons. - The minimum distance must be less than 2.5 * sigma. - """ - centroid = create_random_point(domain) - min_dist = distance( - centroid, - structure, - geometry, - ) # Distance to the nearest polygon in the structure - max_attempts = 20 - while min_dist < 2.5 * sigma: - area_size = np.random.randint(low=3, high=15) - sigma = max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) / area_size - centroid = create_random_point(domain) - min_dist = distance(centroid, structure, geometry) - if max_attempts == 0: - return None - max_attempts -= 1 - - return centroid, sigma + geom = domain.geometry + area = geom._poly_to_shapely_poly(domain.bound_poly).buffer(-(domain.min_dist_from_boundary), 1) + prohibs = geom.get_prohibited_geom( + domain.prohibited_area, + buffer_size=domain.dist_between_polygons, + ) + for g in prohibs.geoms: + area = area.difference( + g.buffer( + domain.min_dist_from_boundary, + ), + ) + for poly in structure.polygons: + area = area.difference( + geom._poly_to_shapely_poly(poly).convex_hull.buffer(domain.dist_between_polygons, 1), + ).intersection(area) + + sigma_max = 0.95 * get_sigma_max(area, (min(domain.max_x, domain.max_y) / 2) * 1.01) + sigma_min = max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) * 0.05 + + sigma = np.random.uniform(sigma_min, sigma_max) + centroid = geom.get_random_point_in_shapey_geom(area.buffer(-sigma, 1)) + + return centroid, sigma * 0.99 def create_random_point(domain: Domain) -> Point: @@ -191,3 +254,69 @@ def distance(point: Point, structure: Structure, geometry: Geometry2D) -> float: distances.append(d) return min(distances) + + +from shapely.affinity import scale +from shapely.geometry import LineString, MultiLineString +from shapely.geometry import Point as GeomPoint + + +def get_selfintersection_safe_point( + poly: Polygon, + domain: Domain, + point_left_idx: int, + point_right_idx: int, +) -> Polygon: + 'for non convex geometry' + geom = domain.geometry + if len(poly) <= 5: + logger.info('special_case') + if geom.is_closed: + parts = [ + *poly.points[(point_right_idx) % len(poly) : :], + *poly.points[0 : (point_left_idx + 1) % len(poly)], + ] + border = [geom._poly_to_shapely_line(Polygon(parts))] + else: + border = [ + geom._poly_to_shapely_line(Polygon(part)) + for part in [ + poly.points[(point_right_idx) % len(poly) :], + poly.points[0 : (point_left_idx + 1) % len(poly)], + ] + if len(part) != 1 + ] + # return border + border = MultiLineString( + [scale(line, xfact=0.99, yfact=0.99) for line in border if not line.is_empty], + ) + l = poly[point_left_idx % len(poly)] + r = poly[point_right_idx % len(poly)] + + origin = Point((l.x + r.x) / 2, (l.y + l.y) / 2) + scalefactor = ( + (LineString(((l.x, l.y), (r.x, r.y))).length / 2) + if len(poly) > 2 + else geom.get_length(poly) * 1.5 + ) # 1.5 ?? + points = [] + p_area = geom.get_prohibited_geom( + domain.prohibited_area, buffer_size=domain.dist_between_polygons, + ) + for _ in range(200): + point = random_polar(origin, scalefactor) + points.append(point) + new_segment = scale(LineString(((l.x, l.y), (point.x, point.y), (r.x, r.y))), 0.99, 0.99) + + if all( + ( + not new_segment.intersects(border), + not new_segment.intersects(geom._poly_to_shapely_line(domain.allowed_area)), + not any([g.intersects(new_segment) for g in p_area.geoms]), + ), + ): + break + else: + point = None + + return point, border diff --git a/gefest/core/opt/adapters/factories.py b/gefest/core/opt/adapters/factories.py index b0ed02398..faa28d3a8 100644 --- a/gefest/core/opt/adapters/factories.py +++ b/gefest/core/opt/adapters/factories.py @@ -35,12 +35,12 @@ def get_node(self, **kwargs) -> OptNode: px = (r * cos(theta) * self._generation_radius) + kwargs['node'].content['params']['x'] py = (r * sin(theta) * self._generation_radius) + kwargs['node'].content['params']['y'] else: - px = int(random()*self._generation_radius) - py = int(random()*self._generation_radius) + px = int(random() * self._generation_radius) + py = int(random() * self._generation_radius) return OptNode( content={ 'name': f'pt_{px}_{py}', 'params': {'x': px, 'y': py}, }, - ) \ No newline at end of file + ) diff --git a/gefest/core/opt/adapters/structure.py b/gefest/core/opt/adapters/structure.py index e96bc9200..9dc2b7a79 100644 --- a/gefest/core/opt/adapters/structure.py +++ b/gefest/core/opt/adapters/structure.py @@ -28,6 +28,8 @@ def _adapt(self, adaptee: Structure): nodes = [] for polygon in adaptee.polygons: prev_node = None + if polygon.points[0] == polygon.points[-1]: + polygon.points = polygon.points[:-1] for point_id in range(len(polygon.points)): node = self._point_to_node(polygon.points[point_id]) if prev_node: @@ -57,6 +59,7 @@ def _restore( node.content['params']['y'], ), ) + poly.points.append(poly[0]) if poly not in structure: # add last poly structure.append(poly) diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 1c2f51a16..e5461e0c2 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -24,29 +24,30 @@ def structure_level_crossover( **kwargs, ): s1, s2 = operands - new_structure = copy.deepcopy(s1) - + polygons1 = s1.polygons + polygons2 = s2.polygons crossover_point = np.random.randint( - 1, - len(new_structure.polygons) + 1, + 0, + len(polygons1) + 1, ) # Crossover conversion - part_1 = s1.polygons[0:crossover_point] - if not isinstance(part_1, list): - part_1 = [part_1] - part_2 = s2.polygons[crossover_point : len(s1.polygons)] - if not isinstance(part_2, list): - part_2 = [part_2] - - result = copy.deepcopy(part_1) + part_1 = polygons1[0:crossover_point] + if not isinstance(part_1, tuple): + part_1 = part_1 + part_2 = polygons2[crossover_point : len(s1.polygons)] + if not isinstance(part_2, tuple): + part_2 = part_2 + + result = list(copy.deepcopy(part_1)) result.extend(copy.deepcopy(part_2)) - new_structure.polygons = result + new_structure = Structure(polygons=result) return new_structure +@logger.catch def polygon_level_crossover( operands: tuple[Structure, Structure], domain: Domain, diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index acb90d6da..6d3544154 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -1,13 +1,15 @@ import copy -import random from typing import Callable import numpy as np +from loguru import logger +from shapely.geometry import LineString, MultiPoint +from shapely.geometry import Point as SPoint from gefest.core.algs.postproc.resolve_errors import postprocess -from gefest.core.geometry import Point, Structure +from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.domain import Domain -from gefest.core.geometry.utils import get_random_point, get_random_poly +from gefest.core.geometry.utils import get_random_poly, get_selfintersection_safe_point def mutate_structure( @@ -17,18 +19,19 @@ def mutate_structure( mutation_chance: float, mutations_probs: list[int], ) -> Structure: - """Apply mutation for polygons in structure. + """Apply mutation random mutation from list + for each polygons in structure. Args: - structure (Structure): _description_ - domain (Domain): _description_ - mutations (list[Callable]): _description_ - mutation_chance (float): _description_ - mutations_probs (list[int]): _description_ + structure (Structure): Structure to mutate. + domain (Domain): Task domain. + mutations (list[Callable]): List of mutation operations to choose. + mutation_chance (float): Chance to mutate polygon. + mutations_probs (list[int]): Probablilites of each mutation operation. Returns: Structure: Mutated structure. It is not guaranteed - that the resulting structure will be valid, dont + that the resulting structure will be valid or changed. """ new_structure = copy.deepcopy(structure) @@ -41,19 +44,27 @@ def mutate_structure( p=mutations_probs, ) new_structure = chosen_mutation[0](new_structure, domain, idx_) + if not new_structure: + logger.warning(f'None out: {chosen_mutation[0].__name__}') return new_structure -def rotate_poly(new_structure: Structure, domain: Domain, idx_: int = None) -> Structure: +@logger.catch +def rotate_poly( + new_structure: Structure, + domain: Domain, + idx_: int = None, +) -> Structure: angle = float(np.random.randint(-120, 120)) - new_structure.polygons[idx_] = domain.geometry.rotate_poly( - new_structure.polygons[idx_], + new_structure[idx_] = domain.geometry.rotate_poly( + new_structure[idx_], angle, ) return new_structure +@logger.catch def drop_poly( new_structure: Structure, domain: Domain, @@ -67,170 +78,328 @@ def drop_poly( return new_structure +@logger.catch def add_poly( new_structure: Structure, domain: Domain, idx_: int = None, ) -> Structure: - if len(new_structure.polygons) < (domain.max_poly_num - 1): + if len(new_structure) < (domain.max_poly_num - 1): new_poly = get_random_poly(new_structure, domain) if new_poly is not None: - new_structure.polygons.append(new_poly) + new_structure.append(new_poly) return new_structure +@logger.catch def resize_poly( new_structure: Structure, domain: Domain, idx_: int = None, ) -> Structure: - new_structure.polygons[idx_] = domain.geometry.resize_poly( - new_structure.polygons[idx_], + new_structure[idx_] = domain.geometry.resize_poly( + new_structure[idx_], x_scale=np.random.uniform(0.25, 3, 1)[0], y_scale=np.random.uniform(0.25, 3, 1)[0], ) return new_structure -from math import cos, pi, sin, sqrt +@logger.catch +def _get_convex_safe_area( + poly: Polygon, + domain: Domain, + point_left_idx: int, + point_right_idx: int, +) -> Polygon: + geom = domain.geometry + if poly[0] == poly[-1]: + poly = poly[:-1] + l = len(poly) + if l == 2: + p = poly[(point_left_idx + 1) % l] + circle = SPoint(p.x, p.y).buffer(geom.get_length(poly)) + base_area = [Point(p[0], p[1]) for p in list(circle.exterior.coords)] + return base_area + + left_cut = [ + poly[(point_left_idx - 1) % l], + poly[(point_left_idx) % l], + ] + right_cut = [ + poly[(point_right_idx + 1) % l], + poly[(point_right_idx) % l], + ] + cut_angles = ( + geom.get_angle( + left_cut, + [ + left_cut[0], + right_cut[0], + ], + ), + geom.get_angle( + right_cut, + [ + right_cut[0], + left_cut[0], + ], + ), + ) + p1, p2 = left_cut[1], right_cut[1] + pad_vector_points = [p1, geom.rotate_point(p2, p1, 90)] + pad_vector = ( + pad_vector_points[1].x - pad_vector_points[0].x, + pad_vector_points[1].y - pad_vector_points[0].y, + ) + # pad_vector == len(vector[left_point, right_point]) + slice_line = ( + Point(left_cut[1].x + pad_vector[0], left_cut[1].y + pad_vector[1]), + Point(right_cut[1].x + pad_vector[0], right_cut[1].y + pad_vector[1]), + ) + scale_factor = max(domain.max_x, domain.max_y) * 100 + + if sum(cut_angles) < 180: + + intersection_point = geom.intersection_line_line( + left_cut, + right_cut, + scale_factor, + scale_factor, + ) + if intersection_point is not None: + mid_points = [intersection_point] + else: + mid_points = [ + geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), + geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), + ] + slice_points = geom.intersection_poly_line( + Polygon( + [ + left_cut[1], + *mid_points, + right_cut[1], + ], + ), + slice_line, + scale_factor, + ) + + if not slice_points.is_empty: + if isinstance(slice_points, SPoint): + mid_points = [Point(slice_points.x, slice_points.y)] + elif isinstance(slice_points, MultiPoint): + mid_points = [Point(p.x, p.y) for p in slice_points.geoms] + else: + mid_points = [Point(p.x, p.y) for p in slice_points.coords] + + base_area = [ + left_cut[1], + *mid_points, + right_cut[1], + ] + + base_area = [ + Point(p[0], p[1]) + for p in geom._poly_to_shapely_poly(Polygon(base_area)).convex_hull.exterior.coords + ] + + else: + + base_area = [ + left_cut[1], + geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), + geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), + right_cut[1], + ] -def random_polar(rscale, dx, dy): - theta = random.random() * 2 * pi - r = random.random() * rscale - return (r * cos(theta)) + dx, (r * sin(theta)) + dy + return Polygon(base_area) if base_area else base_area +@logger.catch def pos_change_point_mutation( new_structure: Structure, domain: Domain, idx_: int = None, ) -> Structure: + geom = domain.geometry + poly = copy.deepcopy(new_structure[idx_]) + + if poly[0] == poly[-1]: + poly = poly[:-1] + mutate_point_idx = int(np.random.randint(1, len(poly))) # fix 1 to 0 + + if geom.is_convex: + poly = geom.get_convex(poly=poly) + + if not geom.is_convex or (len(poly) in (2, 3)): + point, _ = get_selfintersection_safe_point( + poly, + domain, + mutate_point_idx - 1, + mutate_point_idx + 1, + ) + if point: + poly[mutate_point_idx] = point + + elif geom.is_convex: + + base_area = _get_convex_safe_area( + poly, + domain, + mutate_point_idx - 1, + mutate_point_idx + 1, + ) + + if base_area: + movment_area = geom._poly_to_shapely_poly(base_area).intersection( + geom._poly_to_shapely_poly(domain.allowed_area), + ) + prohibs = geom.get_prohibited_geom( + domain.prohibited_area, + buffer_size=domain.dist_between_polygons, + ) + for fig in prohibs.geoms: + movment_area = movment_area.difference( + fig.buffer( + domain.min_dist_from_boundary, + ), + ) + + for idx in [idx for idx in range(len(new_structure)) if idx != idx_]: + movment_area = movment_area.difference( + geom._poly_to_shapely_poly(new_structure[idx]).buffer( + domain.dist_between_polygons, + ), + ) + if movment_area.is_empty: + logger.warning('Empty movment area.') + return new_structure + + point = geom.get_random_point_in_poly(movment_area) # pick in geom collection : todo + if point: + poly[mutate_point_idx % len(poly)] = point + + if geom.is_closed: + poly.points.append(poly[0]) + new_structure[idx_] = poly + if new_structure is None: + logger.error('None structure.') - structure = copy.deepcopy(new_structure) - - mutate_point_idx = int(np.random.randint(0, len(structure[idx_]))) - if mutate_point_idx == len(structure[idx_]) - 1: - neighbour_left = mutate_point_idx - 1 - neighbour_right = 0 - elif mutate_point_idx == 0: - neighbour_left = len(new_structure[idx_]) - 1 - neighbour_right = 1 - else: - neighbour_left = mutate_point_idx - 1 - neighbour_right = mutate_point_idx + 1 - - x1 = structure[idx_][neighbour_left].x - y1 = structure[idx_][neighbour_left].y - x2 = structure[idx_][neighbour_right].x - y2 = structure[idx_][neighbour_right].y - base_x = structure[idx_][mutate_point_idx].x - base_y = structure[idx_][mutate_point_idx].y - - dx, dy = (x1 - x2) / 2, (y1 - y2) / 2 - d = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) - - delta_point = random_polar((d / 2), dx, dy) - x_new, y_new = base_x + delta_point[0], base_y + delta_point[1] - - i = 20 - while Point(x_new, y_new) not in domain: - delta_point = random_polar((d / 2), dx, dy) - x_new, y_new = base_x + delta_point[0], base_y + delta_point[1] - i -= 1 - if i == 0: - structure[idx_][mutate_point_idx].x += delta_point[0] - structure[idx_][mutate_point_idx].y += delta_point[1] - return structure - - structure[idx_][mutate_point_idx].x += delta_point[0] - structure[idx_][mutate_point_idx].y += delta_point[1] - - # return structure - - # ''' - # mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) - # # Neighborhood to reposition - # eps_x = round(domain.len_x / 10) - # eps_y = round(domain.len_y / 10) - - # structure = copy.deepcopy(new_structure) - - # # Displacement in the neighborhood - # displacement_x = random.randint(-eps_x, eps_x) - # displacement_y = random.randint(-eps_y, eps_y) - - # x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x - # y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y - - # i = 20 # Number of attempts to change the position of the point - # while Point(x_new, y_new) not in domain: - # x_new = structure.polygons[idx_].points[mutate_point_idx].x + displacement_x - # y_new = structure.polygons[idx_].points[mutate_point_idx].y + displacement_y - # i -= 1 - # if i == 0: - # return new_structure - - # structure.polygons[idx_].points[mutate_point_idx].x = x_new - # structure.polygons[idx_].points[mutate_point_idx].y = y_new - # ''' - # from gefest.core.viz.struct_vizualizer import StructVizualizer - # from matplotlib import pyplot as plt - - # plt.figure(figsize=(7, 7)) - # visualiser = StructVizualizer(domain) - - # info = { - # 'spend_time': 1, - # 'fitness': 0, - # 'type': 'prediction', - # } - # visualiser.plot_structure( - # [structure, new_structure], [info, info], ['-', '-.'], - # ) - - # plt.show(block=True) - - return structure + return new_structure +@logger.catch def add_point(new_structure: Structure, domain: Domain, idx_: int = None): - mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) - - polygon_to_mutate = new_structure[idx_] - new_point = get_random_point( - polygon_to_mutate, - new_structure, - domain, - ) - - if new_point is not None: - if mutate_point_idx + 1 < len(polygon_to_mutate): - new_structure.polygons[idx_].points.insert( - mutate_point_idx + 1, - new_point, - ) + if new_structure is None: + logger.error('None struct') + + geom = domain.geometry + poly = copy.deepcopy(new_structure[idx_]) + if geom.is_closed: + if poly[0] == poly[-1]: + poly = poly[:-1] + mutate_point_idx = int(np.random.randint(0, len(poly))) + + if not geom.is_convex or len(poly) == 3: + point, _ = get_selfintersection_safe_point( + poly, + domain, + mutate_point_idx, + mutate_point_idx + 1, + ) + if point: + poly.points.insert(mutate_point_idx, point) else: - new_structure.polygons[idx_].points.insert( - mutate_point_idx - 1, - new_point, + logger.warning('Failed to add point without self intersection.') + + elif geom.is_convex: + poly = geom.get_convex(poly=poly) + base_area = _get_convex_safe_area( + poly, + domain, + mutate_point_idx, + mutate_point_idx + 1, + ) + + if base_area: + base_area = geom._poly_to_shapely_poly(base_area) + if not base_area.is_simple: + logger.error('Base area not simple.') + + movment_area = base_area.intersection( + geom._poly_to_shapely_poly(domain.allowed_area), ) + + prohibs = geom.get_prohibited_geom( + domain.prohibited_area, + buffer_size=domain.dist_between_polygons, + ) + for fig in prohibs.geoms: + movment_area = movment_area.difference( + fig.buffer( + domain.min_dist_from_boundary, + ), + ) + + for idx in [idx for idx in range(len(new_structure)) if idx != idx_]: + movment_area = movment_area.difference( + geom._poly_to_shapely_poly(new_structure[idx]).buffer( + domain.dist_between_polygons, + ), + ) + if movment_area.is_empty: + logger.warning('Empty movment area') + return new_structure + else: + logger.warning('Not implemented select adjacent to poly movment_area part.') + logger.warning('Not implemented number of parts check. If there is 1 part - ok.') + point = geom.get_random_point_in_poly(movment_area) + if point: + if mutate_point_idx + 1 < len(poly): + poly.points.insert( + mutate_point_idx + 1, + point, + ) + else: + poly.points.insert( + mutate_point_idx - 1, + point, + ) + + if geom.is_closed: + poly.points.append(poly[0]) + new_structure[idx_] = poly + if new_structure is None: + logger.error('None struct') return new_structure +@logger.catch def drop_point(new_structure: Structure, domain: Domain, idx_: int = None): - mutate_point_idx = int(np.random.randint(0, len(new_structure[idx_]))) polygon_to_mutate = new_structure[idx_] + if domain.geometry.is_closed: + if polygon_to_mutate[0] == polygon_to_mutate[-1]: + polygon_to_mutate = polygon_to_mutate[:-1] + + mutate_point_idx = int(np.random.randint(0, len(polygon_to_mutate))) point_to_mutate = polygon_to_mutate[mutate_point_idx] if len(polygon_to_mutate) > domain.min_points_num: - # if drop point from polygon - new_structure.polygons[idx_].points.remove(point_to_mutate) - + if domain.geometry.is_closed or idx_ == 0 or idx_ == (len(polygon_to_mutate) - 1): + polygon_to_mutate.points.remove(point_to_mutate) + else: + new_poly = [ + polygon_to_mutate[idx] + for idx in range(len(polygon_to_mutate)) + if idx != mutate_point_idx + ] + if LineString([(p.x, p.y) for p in new_poly]).is_simple: + polygon_to_mutate.points.remove(point_to_mutate) + + new_structure[idx_] = polygon_to_mutate return new_structure - - -# class BaseMutations(Enum): -# mutation_name = mutation diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index ad28e2a36..54271f976 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -5,7 +5,7 @@ import numpy as np from gefest.core.geometry import Structure -from gefest.core.utils import chain, where +from gefest.core.utils import chained_call, where from gefest.core.utils.parallel_manager import BaseParallelDispatcher from .strategy import Strategy @@ -36,7 +36,7 @@ def crossover(self, pop: list[Structure]): pairs = copy.deepcopy(self.parent_pairs_selector(pop)) new_generation = self._pm.exec_parallel( - func=chain(chosen_crossover, partial(self.postprocess, attempts=3)), + func=chained_call(chosen_crossover, partial(self.postprocess, attempts=3)), arguments=pairs, use=True, ) diff --git a/gefest/core/opt/strategies/mutation.py b/gefest/core/opt/strategies/mutation.py index ba6fdff98..64e934a28 100644 --- a/gefest/core/opt/strategies/mutation.py +++ b/gefest/core/opt/strategies/mutation.py @@ -4,7 +4,7 @@ from gefest.core.geometry import Structure from gefest.core.opt.operators.mutations import mutate_structure -from gefest.core.utils import chain, where +from gefest.core.utils import chained_call, where from gefest.core.utils.parallel_manager import BaseParallelDispatcher from .strategy import Strategy @@ -37,7 +37,7 @@ def mutate(self, pop: list[Structure]): pop_ = copy.deepcopy(pop) mutated_pop = self._pm.exec_parallel( - func=chain(mutator, partial(self.postprocess, attempts=3)), + func=chained_call(mutator, partial(self.postprocess, attempts=3)), arguments=pop_, use=True, ) diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py index 1d0908c2d..55a97915a 100644 --- a/gefest/core/structure/prohibited.py +++ b/gefest/core/structure/prohibited.py @@ -24,19 +24,17 @@ def create_prohibited( if targets is not None: target_polygons = [list(Point(target).buffer(20).exterior.coords) for target in targets] target_points = [[G_Point(p[0], p[1]) for p in target] for target in target_polygons] - poly_targets = [ - Polygon(polygon_id=PolyID.PROH_TARG, points=points) for points in target_points - ] + poly_targets = [Polygon(id_=PolyID.PROH_TARG, points=points) for points in target_points] prohibited_area += poly_targets if fixed_points is not None: fix_points = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_points] - poly_fixed = [Polygon(polygon_id=PolyID.PROH_POLY, points=points) for points in fix_points] + poly_fixed = [Polygon(id_=PolyID.PROH_POLY, points=points) for points in fix_points] prohibited_area += poly_fixed if fixed_area is not None: fix_area = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_area] - poly_area = [Polygon(polygon_id=PolyID.PROH_AREA, points=points) for points in fix_area] + poly_area = [Polygon(id_=PolyID.PROH_AREA, points=points) for points in fix_area] prohibited_area += poly_area struct = Structure(prohibited_area) diff --git a/gefest/core/utils/__init__.py b/gefest/core/utils/__init__.py index d9e3867e1..6281c79a2 100644 --- a/gefest/core/utils/__init__.py +++ b/gefest/core/utils/__init__.py @@ -1,2 +1,2 @@ -from .functions import chain, project_root, where +from .functions import chained_call, project_root, where from .parallel_manager import BaseParallelDispatcher diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index 6538fd1f4..824a88a2d 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -2,12 +2,15 @@ from pathlib import Path from typing import Any, Callable +from loguru import logger + def project_root() -> Path: """Returns project root folder.""" return Path(__file__).parent.parent.parent +@logger.catch def where( sequence: list[Any], mask_rule: Callable[[Callable], bool], @@ -23,17 +26,18 @@ def where( return [idx for idx, ind in enumerate(sequence) if mask_rule(ind)] -def chain(*funcs): +def chained_call(*funcs): _initial_missing = object() - def chained_call(args=_initial_missing): + def several_functions_chained_call(args=_initial_missing): if args is _initial_missing: return reduce(lambda r, f: f(r), funcs[1::], funcs[0]()) return reduce(lambda r, f: f(r), funcs, args) - def single_call(args=_initial_missing): + def single_function_call(args=_initial_missing): if args is _initial_missing: return funcs[0]() return funcs[0](args) - return chained_call if len(funcs) > 1 else single_call + call = several_functions_chained_call if len(funcs) > 1 else single_function_call + return call diff --git a/gefest/core/utils/parallel_manager.py b/gefest/core/utils/parallel_manager.py index d02b581a8..7b4ab8ea8 100644 --- a/gefest/core/utils/parallel_manager.py +++ b/gefest/core/utils/parallel_manager.py @@ -36,10 +36,15 @@ def exec_parallel( Returns: list[Any] """ - - parallel = Parallel(n_jobs=self.n_jobs, verbose=0, pre_dispatch='2*n_jobs') - if use: - result = parallel(delayed(func)(arg) for arg in arguments) + if self.n_jobs == 0: + if use: + result = [func(arg) for arg in arguments] + else: + result = [func() for _ in arguments] else: - result = parallel(delayed(func)() for _ in arguments) + parallel = Parallel(n_jobs=self.n_jobs, verbose=0, pre_dispatch='2*n_jobs') + if use: + result = parallel(delayed(func)(arg) for arg in arguments) + else: + result = parallel(delayed(func)() for _ in arguments) return result diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index f9c912fee..5b8b559ec 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -19,7 +19,7 @@ class StructVizualizer: def __init__(self, domain: Domain): self.domain = domain - def plot_structure(self, structs: list[Structure], infos=None, linestyles='-'): + def plot_structure(self, structs: list[Structure], domain=None, infos=None, linestyles='-'): """The method displays the given list[obj:`Structure`] Args: structs: the list[obj:`Structure`] for displaying @@ -43,10 +43,14 @@ def plot_structure(self, structs: list[Structure], infos=None, linestyles='-'): infos = [infos] fig = plt.figure() for struct, linestyle in zip(structs, linestyles): - boundary = self.domain.bound_poly - x = [pt.x for pt in boundary.points] - y = [pt.y for pt in boundary.points] - plt.plot(x, y, 'k') + if self.domain: + boundary = self.domain.bound_poly + x = [pt.x for pt in boundary.points] + y = [pt.y for pt in boundary.points] + plt.plot(x, y, 'k') + if domain.prohibited_area: + for poly in domain.prohibited_area: + self.plot_poly(poly, '-', color='m') for poly in struct.polygons: self.plot_poly(poly, linestyle) @@ -57,7 +61,7 @@ def plot_structure(self, structs: list[Structure], infos=None, linestyles='-'): plt.legend(lines, infos, loc=2) return fig - def plot_poly(self, poly, linestyle): + def plot_poly(self, poly, linestyle, **kwargs): """The method displays the given :obj:`Polygon` Args: poly: the :obj:`Polygon` for displaying @@ -70,12 +74,12 @@ def plot_poly(self, poly, linestyle): Returns: .. |viz_poly| image:: https://ibb.co/s31cj3c """ - x_ = [pt.x for pt in poly.points] - y_ = [pt.y for pt in poly.points] + x_ = [pt.x for pt in poly] + y_ = [pt.y for pt in poly] - plt.plot(x_, y_, linestyle=linestyle) - for i, p in enumerate(zip(x_, y_)): - plt.plot(p[0], p[1], marker='${}$'.format(i), color='black') + plt.plot(x_, y_, linestyle=linestyle, **kwargs) + # for i, p in enumerate(zip(x_, y_)): + # plt.plot(p[0], p[1], marker='${}$'.format(i), color='black') class GIFMaker(StructVizualizer): @@ -84,8 +88,8 @@ def __init__(self, domain) -> None: self.frames = [] self.counter = 0 - def create_frame(self, structure, infos): - fig = self.plot_structure(structure, infos) + def create_frame(self, structure, infos, domain=None): + fig = self.plot_structure(structure, domain, infos) numpy_fig = mplfig_to_npimage(fig) self.frames.append(numpy_fig) plt.close() diff --git a/gefest/tools/fitness.py b/gefest/tools/fitness.py index 8773ce621..4883d3fa1 100644 --- a/gefest/tools/fitness.py +++ b/gefest/tools/fitness.py @@ -1,7 +1,10 @@ from abc import ABCMeta, abstractmethod from typing import Any, Optional +from loguru import logger + from gefest.core.geometry import Structure +from gefest.core.utils import where from gefest.tools import Estimator @@ -19,9 +22,10 @@ def __call__( ) -> list[Structure]: return self.set_pop_fitness(pop=pop) + @logger.catch def set_pop_fitness(self, pop: list[Structure]): - for idx, ind in enumerate(pop): - pop[idx].fitness = self.fitness(ind) + for idx in where(pop, lambda ind: len(ind.fitness) == 0): + pop[idx].fitness = self.fitness(pop[idx]) return pop @abstractmethod diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index 1983cfcaf..f81bb1acf 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -1,121 +1,41 @@ -import copy -import math from random import randint - -import numpy as np - -from gefest.core.opt.individual import Individual -from gefest.core.opt.setup import Setup -from gefest.core.viz.struct_vizualizer import StructVizualizer - - -class BaseGA: - """The base optimization class. - The class contains basic optimization functions which allow to use different - way of optimization algorithm via legacy from the :obj:`class BaseGA`. - """ - - def __init__(self, params, - evolutionary_operators, - task_setup: Setup): - """ - Genetic algorithm (GA) - """ - - self.params = params - - self.operators = evolutionary_operators - - self.task_setup = task_setup - - self.__init_operators() - self._pop = [] - - self.visualiser = StructVizualizer(self.task_setup.domain) - - def __init_operators(self): - self.crossover = self.operators.crossover - self.mutation = self.operators.mutation - - def init_populations(self, population): - self._pop = [Individual(genotype=gen) for gen in population] - - def init_fitness(self, performance): - for i, ind in enumerate(self._pop): - ind.fitness = performance[i] - self._pop = [ind for ind in self._pop if ind.fitness is not None] - - def init_performance(self, performance): - for i, ind in enumerate(self._pop): - ind.objectives = performance[i] - self._pop = [ind for ind in self._pop if ind is not None] - self.initial_graphs = self._pop - - class Params: - def __init__(self, pop_size, crossover_rate, mutation_rate, mutation_value_rate): - self.pop_size = pop_size - self.crossover_rate = crossover_rate - self.mutation_rate = mutation_rate - self.mutation_value_rate = mutation_value_rate - - def solution(self, verbose=True, **kwargs): - """Method for finding a solution via choosen algorithm - Args: - verbose: Full description of finding the best solution if ``True``, otherwise - ``False``. Defaults to True. - """ - pass - - def random_selection(self, group_size): - return [self._pop[randint(0, len(self._pop) - 1)] for _ in range(group_size)] - - def tournament_selection(self, fraction=0.25): - """The method allows to select the best ones from whole population - Args: - fraction: value for separating the best part of population from another. Defaults to 0.1. - Returns: - The best individuals from given population. Their number is equal to ``'initial_number' * fraction`` - """ - group_size = math.ceil(len(self._pop) * fraction) - min_group_size = 2 if len(self._pop) > 1 else 1 - group_size = max(group_size, min_group_size) - chosen = [] - n_iter = 0 - while len(chosen) < self.params.pop_size: - n_iter += 1 - group = self.random_selection(group_size) - best = min(group, key=lambda ind: ind.fitness) - if best not in chosen: - chosen.append(best) - elif n_iter > self.params.pop_size + 100: - n_iter = 0 - rnd = self._pop[randint(0, len(self._pop) - 1)] - chosen.append(rnd) - return chosen - - def reproduce(self, selected): - """The method imitatess evolutionory reproduce process via apply - `crossover` and `mutation` to given undividuals from population. - Args: - selected : the set of inviduals for reproducing - Returns: - reprodused individuals - """ - children = [] - np.random.shuffle(selected) - for pair_index in range(0, len(selected) - 1): - p1 = selected[pair_index] - p2 = selected[pair_index + 1] - - child_gen = self.crossover(s1=p1.genotype, s2=p2.genotype, - domain=self.task_setup.domain, - rate=self.params.crossover_rate) - - child_gen = self.mutation(structure=child_gen, - domain=self.task_setup.domain, - rate=self.params.mutation_rate) - - if str(child_gen) != str(p1.genotype) and str(child_gen) != str(p2.genotype): - child = Individual(genotype=copy.deepcopy(child_gen)) - children.append(child) - - return children +from typing import Callable + +from tqdm import tqdm + +from gefest.core.geometry import Structure +from gefest.core.opt.strategies.strategy import Strategy +from gefest.tools.optimizers.optimizer import Optimizer +from refactored import LogDispatcher + + +class BaseGA(Optimizer): + def __init__( + self, + opt_params, + **kwargs, + ): + super().__init__(LogDispatcher()) + self.opt_params = opt_params + self.crossover: Strategy = opt_params.crossover_strategy + self.mutation: Strategy = opt_params.mutation_strategy + self.sampler: Callable = opt_params.sampler + self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator + self.selector: Callable = opt_params.selector + self.pop_size = opt_params.pop_size + self.n_steps = opt_params.n_steps + self.domain = self.opt_params.domain + self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) + self._pop = self.estimator(self._pop) + self.logger.log_pop(self._pop, 'init') + + def optimize(self) -> list[Structure]: + for step in tqdm(range(self.n_steps)): + self._pop = self.selector(self._pop, self.opt_params.pop_size) + self._pop = self.crossover(self._pop) + self._pop = self.mutation(self._pop) + self._pop.extend(self.sampler(5)) + self._pop = self.estimator(self._pop) + self.logger.log_pop(self._pop, step) + self._pop = sorted(self._pop, key=lambda x: x.fitness) + return self._pop diff --git a/gefest/tools/optimizers/SPEA2/SPEA2.py b/gefest/tools/optimizers/SPEA2/SPEA2.py index a7262d63c..75bc03cfb 100644 --- a/gefest/tools/optimizers/SPEA2/SPEA2.py +++ b/gefest/tools/optimizers/SPEA2/SPEA2.py @@ -1,6 +1,8 @@ -import numpy as np import pickle +import numpy as np +from tqdm import tqdm + from gefest.tools.optimizers.GA.base_GA import BaseGA @@ -10,40 +12,34 @@ class SPEA2(BaseGA): In this algorithm performance is multi-dimension """ - def __init__(self, **kwargs): - super().__init__(**kwargs) - self.arch_size = int(self.params.pop_size / 2) # Archive size + def __init__(self, opt_params): + super().__init__(opt_params) + self.arch_size = int(self.pop_size / 2) # Archive size self.archive = [] # Archive population + self.n_criteria = 2 # Number of criteria + self.calculate_sepa2_fitness() - self.n_criteria = 0 # Number of criteria + def dominate(self, idx_1: int, idx_2: int) -> bool: + """Check if one indivdial not worse than other + by all fitness components. - def init_performance(self, performance): - """ - Assign each objects its performance - :param performance: (List[List]) multi dimension performance - :return: None - """ - for i, ind in enumerate(self._pop): - ind.objectives = performance[i] - self._pop = [ind for ind in self._pop if ind.objectives is not None] + Args: + idx_1 (int): Index of first individual. + idx_2 (int): Index of second individual. - def dominate(self, i, j): + Returns: + bool: True if self._pop[idx_1] dominate self._pop[idx_2] else False """ - Checking if i dominates j - :param i: Int, index of first individ in pop + arch - :param j: Int, index of second individ in pop + arch - :return: (Bool) True if i dominate j else False - """ - ind1 = self._pop[i] - ind2 = self._pop[j] - - for i in range(self.n_criteria): - if ind1.objectives[i] <= ind2.objectives[i]: - continue - else: - return False - return True + return all( + [ + ind1 <= ind2 + for ind1, ind2 in zip( + self._pop[idx_1].fitness, + self._pop[idx_2].fitness, + ) + ], + ) def strength(self): """ @@ -92,18 +88,18 @@ def density(self): for i in range(len(self._pop)): distance = [] - first_point = np.array(self._pop[i].objectives) + first_point = np.array(self._pop[i].fitness) for j in range(len(self._pop)): if j == i: continue - second_point = np.array(self._pop[j].objectives) + second_point = np.array(self._pop[j].fitness) distance.append(np.linalg.norm(first_point - second_point)) sorted_dist = np.sort(distance) density.append(1 / (sorted_dist[k] + 2)) return density - def calculate_fitness(self): + def calculate_sepa2_fitness(self): """ Calculating SPEA2 fitness function fitness = raw + density @@ -113,35 +109,53 @@ def calculate_fitness(self): raw = self.raw() density = self.density() - fitness = [raw[i] + density[i] for i in range(len(self._pop))] - - self.init_fitness(fitness) + for idx, _ in enumerate(self._pop): + self._pop[idx].extra_characteristics['SEPA2_fitness'] = raw[idx] + density[idx] def environmental_selection(self): """ Updating archive population via environmental selection procedure :return: (None) """ - self.archive = [ind for ind in self._pop if ind.fitness < 1] + self.archive = [ind for ind in self._pop if ind.extra_characteristics['SEPA2_fitness'] < 1] # First case, adding remaining best individs if len(self.archive) < self.arch_size: - sorted_pop = sorted(self._pop, key=lambda x: x.fitness) + sorted_pop = sorted(self._pop, key=lambda x: x.extra_characteristics['SEPA2_fitness']) idx = 0 while len(self.archive) != self.arch_size: - if sorted_pop[idx].fitness >= 1: + if sorted_pop[idx].extra_characteristics['SEPA2_fitness'] >= 1: self.archive.append(sorted_pop[idx]) idx += 1 # Second case, deleting using truncation procedure elif len(self.archive) > self.arch_size: - arch_obj = sorted([(ind.objectives[0], ind) for ind in self._pop], key=lambda x: x[0])[:self.arch_size] - self.archive = [ind[1] for ind in arch_obj] + self.archive = sorted( + self._pop, + key=lambda x: x.extra_characteristics['SEPA2_fitness'], + )[: self.arch_size] def _save_archive(self, n): with open(f'HistoryFiles/archive_{n}.pickle', 'wb') as handle: pickle.dump(self.archive, handle, protocol=pickle.HIGHEST_PROTOCOL) + def optimize(self): + for step in tqdm(range(self.n_steps)): + # self._pop = self.selector(self._pop, self.opt_params.pop_size) + self.environmental_selection() + if step == self.n_steps: + return self.archive + self._pop = self.selector(self._pop, self.opt_params.pop_size) + self._pop = self.crossover(self._pop) + self._pop = self.mutation(self._pop) + self._pop.extend(self.sampler(5)) + self._pop = self.estimator(self._pop) + self.calculate_sepa2_fitness() + self.logger.log_pop(self._pop, step) + + self._pop = sorted(self._pop, key=lambda x: x.fitness) + return self._pop + def step(self, population, performance, n_step, is_last=False): """ One step of optimization procedure @@ -151,15 +165,10 @@ def step(self, population, performance, n_step, is_last=False): :param is_last: (Optional(Bool)) check for last step in generative design procedure :return: (List[Structure]) optimized population """ - assert len(performance[0]) > 1, 'Performance must be multi-dimension in SPEA2!' - - self.n_criteria = len(performance[0]) - - self.init_populations(population) - self.init_performance(performance) + self.n_criteria = 2 # Step 1, fitness assignment - self.calculate_fitness() + self.calculate_sepa2_fitness() # Step 2, environmental selection self.environmental_selection() @@ -171,16 +180,12 @@ def step(self, population, performance, n_step, is_last=False): return self.archive # Step 4, mating selection - selected = self.tournament_selection() - self._pop = sorted(selected, key=lambda x: x.fitness) + self._pop = self.selector() # Step 5, variation (genetic operators step) - un_pop = set() - self._pop = \ - [un_pop.add(str(ind.genotype)) or ind for ind in self._pop - if str(ind.genotype) not in un_pop] - self._pop = self.reproduce(self._pop) - - population = [ind.genotype for ind in self._pop] + self._pop = self.crossover(self._pop) + self._pop = self.mutation(self._pop) + self._pop.extend(self.sampler(1)) + self._pop = self.estimator(self._pop) return population diff --git a/gefest/tools/optimizers/optimizer.py b/gefest/tools/optimizers/optimizer.py index d56245432..fa26ac5e3 100644 --- a/gefest/tools/optimizers/optimizer.py +++ b/gefest/tools/optimizers/optimizer.py @@ -4,7 +4,6 @@ class Optimizer(metaclass=ABCMeta): - def __init__( self, logger=None, diff --git a/gefest/tools/samplers/sampler.py b/gefest/tools/samplers/sampler.py index b9af9da92..e69085620 100644 --- a/gefest/tools/samplers/sampler.py +++ b/gefest/tools/samplers/sampler.py @@ -1,32 +1,26 @@ -from typing import Any +from abc import ABCMeta, abstractmethod +from typing import Any, Callable +from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -class Sampler: - """ - ::TODO:: - make abstract class for all samplers - """ - - def __init__(self, sampler, domain: "Domain"): - """ - Base sampler class - :param sampler: (Object) object with method sample - :param domain: (Domain) design domain - """ - self.sampler = sampler +class Sampler(metaclass=ABCMeta): + def __init__( + self, + samples_generator: Callable[[Any], Structure], + domain: Domain, + ) -> None: + self.samples_generator = samples_generator self.domain = domain - def sample(self, n_samples: int): - """ - Sampling from certain sampler - :param n_samples: (Int) number of samples - :return: (List(Structure)) sample n_samples structures - """ - samples = self.sampler.sample(n_samples=n_samples, domain=self.domain) - - return samples + def __call__( + self, + n_samples: int, + **kwargs, + ) -> list[Structure]: + return self.sample(n_samples) - def __call__(self, *args: Any, **kwds: Any) -> Any: - return self.sample(args) + @abstractmethod + def sample(self, n_samples: int) -> list[Structure]: + ... diff --git a/gefest/tools/samplers/standard/standard.py b/gefest/tools/samplers/standard/standard.py index b94d68732..fa28b0210 100644 --- a/gefest/tools/samplers/standard/standard.py +++ b/gefest/tools/samplers/standard/standard.py @@ -1,37 +1,42 @@ from functools import partial from typing import Callable +from loguru import logger + from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.core.geometry.utils import get_random_structure -from gefest.core.opt.strategies.strategy import Strategy -from gefest.core.utils.mp_manager import WorkerData +from gefest.core.utils import chained_call +from gefest.core.utils.parallel_manager import BaseParallelDispatcher +from gefest.tools.samplers.sampler import Sampler -class StandardSampler(Strategy): +class StandardSampler(Sampler): def __init__(self, opt_params) -> None: - super().__init__(opt_params.workers_manager) - self.postprocessor: Callable = opt_params.postprocessor + super().__init__( + samples_generator=get_random_structure, + domain=opt_params.domain, + ) self.domain: Domain = opt_params.domain + self.postprocessor: Callable = opt_params.postprocessor + self.postprocess_attempts: int = opt_params.postprocess_attempts + self._pm = BaseParallelDispatcher(opt_params.n_jobs) def __call__(self, n_samples: int) -> list[Structure]: return self.sample(n_samples=n_samples) def sample(self, n_samples: int) -> list[Structure]: - - parallel_funcs = [ - ( - ( - partial(get_random_structure, domain=self.domain), - self.postprocessor, - ), - idx, - ) - for _, idx in enumerate(range(n_samples)) - ] - if self._mp: - workers_data = [WorkerData(funcs, idx) for funcs, idx in parallel_funcs] - random_pop, _ = self._mp.multiprocess(workers_data) - else: - random_pop = [func() for func in parallel_funcs] - return random_pop + generator = chained_call( + partial(get_random_structure, domain=self.domain), self.postprocessor, + ) + + random_pop = self._pm.exec_parallel( + generator, + tuple(range(n_samples + 1)), + False, + ) + random_pop = [ind for ind in random_pop if ind is not None] + + logger.info(f'{n_samples}, {len(random_pop)}') + pop = random_pop[:n_samples] + return pop diff --git a/refactored.py b/refactored.py index 0703336ab..04764b37d 100644 --- a/refactored.py +++ b/refactored.py @@ -20,7 +20,23 @@ from gefest.core.structure.prohibited import create_prohibited from gefest.tools.optimizers.optimizer import Optimizer from gefest.tools.samplers.standard.standard import StandardSampler - +from golem.core.optimisers.objective import ObjectiveEvaluate +from gefest.core.opt.adapters.structure import StructureAdapter +from golem.core.tuning.iopt_tuner import IOptTuner +from golem.core.tuning.search_space import SearchSpace +from golem.core.optimisers.objective import Objective +from hyperopt import hp +from pydantic import RootModel + +class LogDispatcher: + def __init__(self) -> None: + logger.warning("Logger configured outside.") + + def log_pop(self, pop: list[Structure], step: int): + logger.log(3, f'Step {step}') + for ind in pop: + logger.log(4, RootModel[Structure](ind).model_dump()) + logger.info("Population logged. May be not sorted by fitness.") @dataclass class OptimizationParams: @@ -39,7 +55,7 @@ class OptimizationParams: postprocessor: Callable postprocess_rules: list[Union[PolygonRule, StructureRule]] mutation_prob: float = 0.6 - crossover_prob: float = 0.6 + crossover_prob: float = 0.8 mutation_each_prob: Optional[list[float]] = None crossover_each_prob: Optional[list[float]] = None n_jobs: Optional[int] = -1 @@ -55,80 +71,62 @@ def __post_init__(self): rules=self.postprocess_rules, ) self.sampler = self.sampler(opt_params=self) - - -# def main(opt_params): - -# optimizer = BaseGA(opt_params) - -# optimizer.optimize(15) - -# from gefest.core.viz.struct_vizualizer import StructVizualizer - -# plt.figure(figsize=(7, 7)) -# visualiser = StructVizualizer(domain) - -# info = { -# 'spend_time': 1, -# 'fitness': optimizer._pop[0].fitness, -# 'type': 'prediction', -# } -# visualiser.plot_structure( -# [optimizer._pop[0]], [info], ['-'], -# ) - -# plt.show(block=True) - -# from contextlib import contextmanager - - -# @contextmanager -# def configuration(subprocess_holder): -# try: -# # load config from yaml -# yield subprocess_holder -# except Exception: -# raise -# finally: -# # add simulators safe exit -# subprocess_holder.parallel_manager.pool.close() -# subprocess_holder.parallel_manager.pool.terminate() - + self.crossover_strategy = self.crossover_strategy(opt_params=self) + self.mutation_strategy = self.mutation_strategy(opt_params=self) + + +def search_space_generator(graph, pad): + return {node.name : { + param : { + 'hyperopt-dist': hp.loguniform, + 'sampling-scope': [val - pad*3, val + pad*3], + 'type': 'continuous', + } for param, val in zip( + list(graph.nodes[idx_].content['params'].keys()), + list(graph.nodes[idx_].content['params'].values()), + ) + } for idx_, node in enumerate(graph.nodes)} if __name__ == '__main__': # logger.add('somefile.log', enqueue=True) - - logger.disable('__main__') + class BaseGA(Optimizer): def __init__( self, opt_params: OptimizationParams, **kwargs, ): + super().__init__(LogDispatcher()) self.opt_params: OptimizationParams = opt_params - self.crossover: Strategy = opt_params.crossover_strategy(opt_params) - self.mutation: Strategy = opt_params.mutation_strategy(opt_params) + self.crossover: Strategy = opt_params.crossover_strategy + self.mutation: Strategy = opt_params.mutation_strategy self.sampler: Callable = opt_params.sampler self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator self.selector: Callable = opt_params.selector self.pop_size = opt_params.pop_size + self.n_steps = opt_params.n_steps self.domain = self.opt_params.domain self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) self._pop = self.estimator(self._pop) + self.logger.log_pop(self._pop, 'init') - def optimize(self, n_steps: int) -> list[Structure]: - for _ in tqdm(range(n_steps)): + def optimize(self) -> list[Structure]: + for step in tqdm(range(self.n_steps)): self._pop = self.selector(self._pop, self.opt_params.pop_size) self._pop = self.crossover(self._pop) self._pop = self.mutation(self._pop) + self._pop.extend(self.sampler(5)) self._pop = self.estimator(self._pop) + self.logger.log_pop(self._pop, step) - [print(x.fitness) for x in self._pop] self._pop = sorted(self._pop, key=lambda x: x.fitness) + [print(x.fitness) for x in self._pop] return self._pop def area_length_ratio(pop: list[Structure], domain: Domain): + if isinstance(pop, Structure): + pop = [pop] for ind in pop: ind.fitness = domain.max_x * domain.max_y losses = [] @@ -144,7 +142,7 @@ def area_length_ratio(pop: list[Structure], domain: Domain): ind.fitness = sum(losses) return pop - # domain = Domain( + # domain = Domain( colsol # allowed_area=[ # (-125, 100), # (-75, 170), @@ -163,24 +161,26 @@ def area_length_ratio(pop: list[Structure], domain: Domain): # is_closed=True, # ) - domain = Domain( - allowed_area=[ - (0, 0), - (0, 100), - (100, 100), - (100, 0), - (0, 0), - ], - geometry=Geometry2D(is_closed=True), - max_poly_num=5, - min_poly_num=1, - max_points_num=20, - min_points_num=6, - is_closed=True, - ) - print(domain.dist_between_points) - print(domain.dist_between_polygons) - print(domain.min_dist_from_boundary) + + + # domain = Domain( + # allowed_area=[ + # (0, 0), + # (0, 100), + # (100, 100), + # (100, 0), + # (0, 0), + # ], + # geometry=Geometry2D(is_closed=True, is_convex=True), + # max_poly_num=4, + # min_poly_num=2, + # max_points_num=8, + # min_points_num=4, + # polygon_side=0.01, + # ) + # print(domain.dist_between_points) + # print(domain.dist_between_polygons) + # print(domain.min_dist_from_boundary) from pathlib import Path from gefest.core.geometry import PolyID @@ -188,27 +188,80 @@ def area_length_ratio(pop: list[Structure], domain: Domain): from gefest.tools.estimators.simulators.swan.swan_interface import Swan + grid_resolution_x = 83 # Number of points on x-axis + grid_resolution_y = 58 # Number of points on y-axis + coord_X = np.linspace(0, 2075, grid_resolution_x + 1) # X coordinate for spatial grid + coord_Y = np.linspace(0, 1450, grid_resolution_y + 1) # Y coordinate for spatial grid + + grid = [grid_resolution_x, grid_resolution_y] # points grid + targets = [[49, 26], [11, 37], [5, 60]] # grid coordinates of considered targets + + """ + Prohibited objects + """ + fixed_area = [ + [[471, 5], [1335, 2], [1323, 214], [1361, 277], [1395, 327], [1459, 405], [1485, 490], [1449, 521], [1419, 558], + [1375, 564], [1321, 469], [1248, 318], [1068, 272], [921, 225], [804, 231], [732, 266], [634, 331], [548, 405], + [485, 482], [424, 569], [381, 625], [310, 662], [271, 684], [244, 706], [203, 708], [182, 647], [214, 638], + [234, 632], [275, 588], [346, 475], [427, 366], [504, 240], [574, 166], [471, 5]], + [[652, 1451], [580, 1335], [544, 1253], [468, 1190], [439, 1170], [395, 1150], [378, 1115], [438, 1070], + [481, 1059], [508, 1076], [539, 1133], [554, 1183], [571, 1244], [594, 1305], [631, 1366], [657, 1414], + [671, 1449], [652, 1451]] + ] + fixed_targets = [[coord_X[26], coord_Y[49]], [coord_X[37], coord_Y[11]], [coord_X[60], coord_Y[5]]] + fixed_poly = [ + [[878, 1433], [829, 1303], [739, 1116], [619, 995], [447, 962], [306, 1004], [254, 1092], [241, 1184], + [269, 1244], + [291, 1338], [370, 1450]], + [[878, 1433], [829, 1303], [739, 1116], [619, 995], [447, 962], [274, 868], [180, 813], [126, 717], [146, 580], + [203, 480], [249, 469], [347, 471]] + ] + + # Creation of prohibited structure consist of targets, lines, areas + prohibited_structure = create_prohibited( + targets=fixed_targets, + fixed_area=fixed_area, + fixed_points=fixed_poly, + ) + + domain = Domain(allowed_area=[(min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y))], + prohibited_area=prohibited_structure, + geometry=Geometry2D(is_closed=False, is_convex=True), + max_poly_num=4, + min_poly_num=2, + max_points_num=16, + min_points_num=4, + polygon_side=0.01, + ) # root_path = Path(__file__).parent.parent.parent.parent - # path_sim = ( - # 'F:/Git_Repositories/gefest_fork/GEFEST/gefest/tools/estimators/simulators/swan/swan_model/' - # ) - # from gefest.tools import Fitness - # from gefest.tools.estimators.simulators.swan.swan_interface import Swan - # class SwanFitness(Fitness): - # def __init__(self, estimator, domain, max_length): - # super().__init__(estimator) - # self.domain = domain - # self.max_length = max_length - # def fitness(self, ind: Structure): - # lengths = 0 - # for poly in ind: - # if poly.id_ != PolyID.FIXED_POLY: - # length = self.domain.geometry.get_length(poly) - # lengths += length - # _, hs = self.estimator(struct=ind) - # l_f = lengths / (2 * self.max_length) + hs - # return l_f + path_sim = ( + 'F:/Git_Repositories/gef_ref/GEFEST/gefest/tools/estimators/simulators/swan/swan_model/' + ) + from gefest.tools import Fitness + from gefest.tools.estimators.simulators.swan.swan_interface import Swan + class SwanFitness(Fitness): + def __init__(self, estimator, domain, max_length): + super().__init__(estimator) + self.domain = domain + self.max_length = max_length + def fitness(self, ind: Structure): + lengths = 0 + for poly in ind: + length = self.domain.geometry.get_length(poly) + lengths += length + # c.polygons.extend([ + # p for p in domain.prohibited_area.polygons + # if p.id_ not in [PolyID.PROH_TARG]]) + idk, hs = self.estimator(struct=ind) + l_f = [hs, 2 * lengths / self.max_length] # lengths / (2 * self.max_length) + hs + + return l_f + # class ComsolFitness(Fitness): # def __init__(self, simulator, domain): # super().__init__(simulator) @@ -218,15 +271,20 @@ def area_length_ratio(pop: list[Structure], domain: Domain): # if ind is None: # print("None") # return ind - # estimator = SwanFitness( - # swan, - # domain, - # np.linalg.norm(np.array([max(coord_X) - min(coord_X), max(coord_Y) - min(coord_Y)])), - # ) + estimator = SwanFitness( + Swan(path=path_sim, + targets=targets, + grid=grid, + domain=domain), + domain, + np.linalg.norm(np.array([max(coord_X) - min(coord_X), max(coord_Y) - min(coord_Y)])), + ) + # from gefest.tools.estimators.simulators.comsol.comsol_interface import Comsol # comsol = Comsol('C:\\Users\\mangaboba\\Downloads\\rbc-trap-setup.mph') # estimator = ComsolFitness(simulator=comsol, domain=domain) + opt_params = OptimizationParams( crossovers=[ partial(polygon_level_crossover, domain=domain), @@ -245,49 +303,89 @@ def area_length_ratio(pop: list[Structure], domain: Domain): mutation_prob=0.6, crossover_prob=0.6, crossover_each_prob=[0.0, 1.0], - mutation_each_prob=[0.125, 0.125, 0.35, 0.05, 0.01, 0.01, 0.33], - n_steps=5, - pop_size=25, + mutation_each_prob=[0.125, 0.125, 0.25, 0.11, 0.07, 0.07, 0.25], + n_steps=8, + pop_size=5, selector=tournament_selection, pair_selector=panmixis, - postprocess_attempts=5, + postprocess_attempts=3, domain=domain, postprocessor=postprocess, postprocess_rules=[ + Rules.not_out_of_bounds.value, Rules.not_closed_polygon.value, Rules.not_self_intersects.value, - Rules.not_out_of_bounds.value, - Rules.not_too_close_points.value, Rules.not_too_close_polygons.value, + Rules.not_overlaps_prohibited.value, + Rules.not_too_close_points.value, ], sampler=StandardSampler, - estimator=partial(area_length_ratio, domain=domain), + estimator=estimator, n_jobs=-1, ) # with configuration(opt_params): - optimizer = BaseGA(opt_params) - logger.disable('Standard') + # optimizer = BaseGA(opt_params) + from gefest.tools.optimizers.SPEA2.SPEA2 import SPEA2 + optimizer = SPEA2(opt_params) import cProfile - optimizer.optimize(25) + logger.add( + "individuals.log", + level=3, + format="{message}", + filter=lambda record: record["level"].name in ['Level 3', 'Level 4'], + ) + + optimizer.optimize() + + + + # def tune_fintess(pop: Structure, domain: Domain): + + + + # fitness = domain.max_x * domain.max_y + # losses = [] + # for idx, poly in enumerate(pop): + # area = domain.geometry.get_square(poly) + # length = domain.geometry.get_length(poly) + + # if area == 0: + # losses.append(sum(losses[::idx]) / idx) + # else: + # losses.append(1 - 4 * np.pi * area / length ** 2) + # if len(losses) > 0: + # fitness = sum(losses) + # return fitness + + # struct = copy.deepcopy(optimizer._pop[0]) + # objective = Objective( + # quality_metrics={ + # 'som_metric': partial(tune_fintess, domain=domain), + # }, + # ) + # adapted = StructureAdapter().adapt(struct) + # objective_evaluator = ObjectiveEvaluate(objective=objective, eval_n_jobs=6) + # tuner = IOptTuner( + # objective_evaluate=objective_evaluator, + # search_space=SearchSpace(search_space_generator(adapted, 1)), + # adapter=StructureAdapter(), + # iterations=500, + # ) + # # print(search_space_generator(struct, 0.05)) + # print(struct) + + # tuned = tuner.tune(adapted) + # tuned = optimizer.estimator(tuned)[0] from gefest.core.viz.struct_vizualizer import GIFMaker + # gm = GIFMaker(domain=domain) + # gm.create_frame(optimizer._pop[0], {'Optimized': optimizer._pop[0].fitness}) + # gm.create_frame(tuned, {'Tuned': tuned.fitness}) + # gm.make_gif('tuning', 500, ) + gm = GIFMaker(domain=domain) for s in optimizer._pop: - gm.create_frame(s, {'Fitness': s.fitness}) + gm.create_frame(s, {'Fitness': s.fitness}, domain, ) gm.make_gif('test', 500, ) - # from gefest.core.viz.struct_vizualizer import StructVizualizer - # plt.figure(figsize=(7, 7)) - # visualiser = StructVizualizer(domain) - - # info = { - # 'spend_time': 1, - # 'fitness': optimizer._pop[0].fitness, - # 'type': 'prediction', - # } - # visualiser.plot_structure( - # [optimizer._pop[0]], [info], ['-'], - # ) - - # plt.show(block=True) From eb85f98a53fa18eefff4534305833a2ada2da4ba Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 4 Oct 2023 23:43:25 +0300 Subject: [PATCH 06/66] add config models, golem tuners interface --- gefest/core/configs/optimization_params.py | 51 ++++++++++ gefest/core/configs/tuner_params.py | 29 ++++++ gefest/core/opt/adapters/structure.py | 55 ++++++---- gefest/core/opt/tuning/tuner.py | 112 +++++++++++++++++++++ 4 files changed, 228 insertions(+), 19 deletions(-) create mode 100644 gefest/core/configs/optimization_params.py create mode 100644 gefest/core/configs/tuner_params.py create mode 100644 gefest/core/opt/tuning/tuner.py diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py new file mode 100644 index 000000000..85b51005c --- /dev/null +++ b/gefest/core/configs/optimization_params.py @@ -0,0 +1,51 @@ +from functools import partial +from typing import Callable, Optional, Union + +from pydantic import BaseModel, ConfigDict, model_validator + +from gefest.core.algs.postproc.resolve_errors import PolygonRule, StructureRule +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.domain import Domain +from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.tools.fitness import Fitness + + +class OptimizationParams(BaseModel): + mutations: list[Callable] + crossovers: list[Callable] + mutation_strategy: Callable + crossover_strategy: Callable + n_steps: int + pop_size: int + postprocess_attempts: int + domain: Domain + selector: Callable + pair_selector: Callable + sampler: Callable + estimator: Fitness + postprocessor: Callable + postprocess_rules: list[Union[PolygonRule, StructureRule]] + mutation_prob: float = 0.6 + crossover_prob: float = 0.8 + mutation_each_prob: Optional[list[float]] = None + crossover_each_prob: Optional[list[float]] = None + n_jobs: Optional[int] = -1 + golem_adapter: Callable = StructureAdapter + tuner_cfg: Optional[TunerParams] = None + + @model_validator(mode='after') + def create_classes_instances(self): + self.crossovers = [ + partial(fun, domain=self.domain) for fun in self.crossovers + ] + self.postprocessor = partial( + self.postprocessor, + domain=self.domain, + rules=self.postprocess_rules, + ) + self.sampler = self.sampler(opt_params=self) + self.crossover_strategy = self.crossover_strategy(opt_params=self) + self.mutation_strategy = self.mutation_strategy(opt_params=self) + self.golem_adapter = self.golem_adapter(self.domain) + + model_config = ConfigDict({'arbitrary_types_allowed': True}) diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py new file mode 100644 index 000000000..f5d17f663 --- /dev/null +++ b/gefest/core/configs/tuner_params.py @@ -0,0 +1,29 @@ +from typing import Callable, Union + +from hyperopt import hp +from pydantic import BaseModel, ConfigDict, field_validator + + +class TunerParams(BaseModel): + """Dataclass for 'GolemTuner' parameters aggreagtion. + Provides easy configuration for tuner + with built-in validation and serialization. + """ + + tuner_type: str + n_steps_tune: int + sampling_variance: float + hyperopt_dist: Union[Callable, str] = hp.uniform + verbose: bool = True + + @field_validator('hyperopt_dist') + def hyperopt_fun_validate(cls, value): + if isinstance(value, str): + return getattr(hp, value) + elif isinstance(value, Callable): + if value.__module__.split('.')[0] == hp.__name__.split('.')[0]: + return value + else: + raise ValueError('Invalid argument') + + model_config = ConfigDict({'arbitrary_types_allowed': True}) diff --git a/gefest/core/opt/adapters/structure.py b/gefest/core/opt/adapters/structure.py index 9dc2b7a79..66d4f5c94 100644 --- a/gefest/core/opt/adapters/structure.py +++ b/gefest/core/opt/adapters/structure.py @@ -1,35 +1,41 @@ -from typing import Any, Dict, Optional +from typing import Any, Dict from golem.core.adapter.adapter import BaseOptimizationAdapter from golem.core.optimisers.graph import OptGraph, OptNode +from loguru import logger from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.domain import Domain class StructureAdapter(BaseOptimizationAdapter): - def __init__(self): + def __init__(self, domain: Domain) -> None: """ Optimization adapter for Pipeline class """ super().__init__(base_graph_class=Structure) + self.domain = domain - def _point_to_node(self, point): - # Prepare content for nodes - if isinstance(point, OptNode): + def _point_to_node(self, point) -> OptNode: + if type(point) == OptNode: self._log.warn('Unexpected: OptNode found in adapter instead' 'Point.') else: content = {'name': f'pt_{point.x}_{point.y}', 'params': {}} + node = OptNode(content=content) - node.content['params'] = {'x': point.x, 'y': point.y} + node.content['params'] = { + 'x': point.x, + 'y': point.y, + } return node - def _adapt(self, adaptee: Structure): - """Convert Structure class into OptGraph class""" + def _adapt(self, adaptee: Structure) -> OptGraph: + """Convert Structure into OptGraph.""" nodes = [] for polygon in adaptee.polygons: + if polygon[-1] == polygon[0]: + polygon = polygon[:-1] prev_node = None - if polygon.points[0] == polygon.points[-1]: - polygon.points = polygon.points[:-1] for point_id in range(len(polygon.points)): node = self._point_to_node(polygon.points[point_id]) if prev_node: @@ -40,17 +46,26 @@ def _adapt(self, adaptee: Structure): graph = OptGraph(nodes) return graph - def _restore( - self, - opt_graph: OptGraph, - metadata: Optional[Dict[str, Any]] = None, - ) -> Structure: - """Convert OptGraph class into Structure class""" + def _restore(self, opt_graph: OptGraph) -> Structure: + """Convert OptGraph into Structure.""" structure = [] poly = Polygon() - for node in opt_graph.nodes: - if node.nodes_from is None: + first_node = opt_graph.nodes[0] + if not len(first_node.nodes_from): + poly.points.append( + Point( + first_node.content['params']['x'], + first_node.content['params']['y'], + ), + ) + else: + logger.critical('Unexpected nodes order. First node is not root.') + + for node in opt_graph.nodes[1:]: + if not len(node.nodes_from): # next polygon started + if self.domain.geometry.is_closed: + poly.points.append(poly[0]) structure.append(poly) poly = Polygon() poly.points.append( @@ -59,8 +74,10 @@ def _restore( node.content['params']['y'], ), ) - poly.points.append(poly[0]) + if poly not in structure: + if self.domain.geometry.is_closed: + poly.points.append(poly[0]) # add last poly structure.append(poly) diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py new file mode 100644 index 000000000..e9082894c --- /dev/null +++ b/gefest/core/opt/tuning/tuner.py @@ -0,0 +1,112 @@ +from enum import Enum +from typing import Any, Callable, Union + +from golem.core.adapter import BaseOptimizationAdapter +from golem.core.optimisers.graph import OptGraph +from golem.core.optimisers.objective import Objective, ObjectiveEvaluate +from golem.core.tuning.iopt_tuner import IOptTuner +from golem.core.tuning.optuna_tuner import OptunaTuner +from golem.core.tuning.search_space import OperationParametersMapping, SearchSpace +from golem.core.tuning.sequential import SequentialTuner +from golem.core.tuning.simultaneous import SimultaneousTuner +from hyperopt import hp + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.tools.fitness import Fitness + +GolemTunerType = Union[IOptTuner, OptunaTuner, SequentialTuner, SimultaneousTuner] + + +class TunerType(Enum): + iopt = IOptTuner + optuna = OptunaTuner + sequential = SequentialTuner + simulataneous = SimultaneousTuner + + +class GolemTuner: + """Wrap for GOLEM tuners. + Provides interface for tuning stucture points coordinates. + """ + + def __init__( + self, + opt_params: OptimizationParams, + **kwargs, + ) -> None: + + fitness_function = opt_params.estimator + objective = Objective( + quality_metrics={ + type(fitness_function).__name__: fitness_function.fitness, + }, + ) + self.tuner_type = opt_params.tuner_cfg.tuner_type + self.eval_n_jobs = 1 if fitness_function.estimator else -1 + self.objective_evaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) + self.adapter = opt_params.golem_adapter + self.sampling_variance = opt_params.tuner_cfg.sampling_variance + self.hyperopt_dist = opt_params.tuner_cfg.hyperopt_dist + self.n_steps_tune = opt_params.tuner_cfg.n_steps_tune + self.verbose = opt_params.tuner_cfg.verbose + + def _get_tuner( + self, + graph: OptGraph, + ) -> GolemTunerType: + return getattr(TunerType, self.tuner_type).value( + objective_evaluate=self.objective_evaluate, + search_space=SearchSpace(self._generate_search_space(graph)), + adapter=self.adapter, + iterations=self.n_steps_tune, + n_jobs=self.eval_n_jobs, + ) + + def _generate_search_space( + self, + graph: OptGraph, + ) -> OperationParametersMapping: + return { + node.name: { + param: { + 'hyperopt-dist': self.hyperopt_dist, + 'sampling-scope': [ + val - self.sampling_variance, + val + self.sampling_variance, + ], + 'type': 'continuous', + } + for param, val in zip( + list(graph.nodes[idx_].content['params'].keys()), + list(graph.nodes[idx_].content['params'].values()), + ) + } + for idx_, node in enumerate(graph.nodes) + } + + def tune( + self, + objects_for_tune: Union[Structure, list[Structure]], + ) -> list[Structure]: + """Tunes coordinstes for all points in each provided structure. + + Args: + objects_for_tune (Union[Structure, list[Structure]]): Structures for tune. + + Returns: + list[Structure]: Tuned structures. + """ + if isinstance(objects_for_tune, Structure): + objects_for_tune = [objects_for_tune] + tuned_objects = [] + for struct in objects_for_tune: + graph = self.adapter.adapt(struct) + tuner = self._get_tuner(graph) + tuned_structure = tuner.tune(graph=graph, show_progress=self.verbose) + tuned_structure.fitness = tuner.obtained_metric + tuned_objects.append(tuned_structure) + return tuned_objects From 31f50a5ac1999438cfec89f772a9e41a15ead805 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 5 Oct 2023 13:02:54 +0300 Subject: [PATCH 07/66] add sound_wave + tuner case, minor fixes, requirements fix new core --- cases/sound_waves/main.py | 214 +++++++++++++----- gefest/core/algs/postproc/resolve_errors.py | 47 +++- gefest/core/configs/optimization_params.py | 22 +- gefest/core/opt/operators/mutations.py | 44 ++-- gefest/core/structure/prohibited.py | 4 +- gefest/core/utils/logger.py | 14 ++ gefest/core/viz/struct_vizualizer.py | 4 +- .../simulators/comsol/comsol_interface.py | 70 +++--- .../simulators/sound_wave/sound_interface.py | 9 +- .../simulators/swan/swan_interface.py | 92 ++++---- gefest/tools/fitness.py | 10 +- gefest/tools/optimizers/GA/base_GA.py | 2 +- requirements.txt | 25 +- 13 files changed, 374 insertions(+), 183 deletions(-) create mode 100644 gefest/core/utils/logger.py diff --git a/cases/sound_waves/main.py b/cases/sound_waves/main.py index 057d4c909..21ee394e6 100644 --- a/cases/sound_waves/main.py +++ b/cases/sound_waves/main.py @@ -1,66 +1,170 @@ -import timeit import pickle +from functools import partial -from gefest.core.opt.gen_design import design -from gefest.core.structure.structure import get_random_structure -from cases.main_conf import opt_params -from cases.sound_waves.configuration import ( - sound_domain, - sound_estimator, - sound_optimizer, - sound_sampler, -) +import numpy as np +from hyperopt import hp -# If the value is False, pretrained models will be selected -# otherwise put path to your model -opt_params.is_closed = True -opt_params.pop_size = 15 -opt_params.n_steps = 20 -opt_params.n_polys = 1 -opt_params.n_points = 30 - -# ------------ -# GEFEST tools configuration -# ------------ -domain, task_setup = sound_domain.configurate_domain( - poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed, +from gefest.core.algs.postproc.resolve_errors import Rules, postprocess +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.geometry.utils import get_random_structure +from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.core.opt.operators.crossovers import ( + panmixis, + polygon_level_crossover, + structure_level_crossover, +) +from gefest.core.opt.operators.mutations import ( + add_point, + add_poly, + drop_point, + drop_poly, + pos_change_point_mutation, + resize_poly, + rotate_poly, +) +from gefest.core.opt.tuning.tuner import GolemTuner +from gefest.core.structure.prohibited import create_prohibited +from gefest.core.viz.struct_vizualizer import GIFMaker +from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( + SoundSimulator, + generate_map, ) +from gefest.tools.fitness import Fitness +from gefest.tools.optimizers.GA.base_GA import BaseGA -best_structure = get_random_structure(domain) +# pre domain params +grid_resolution_x = 300 # Number of points on x-axis +grid_resolution_y = 300 # Number of points on y-axis +coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid +coord_Y = np.linspace(20, 100, grid_resolution_y + 1) # Y coordinate for spatial grid +grid = [grid_resolution_x, grid_resolution_y] # points grid +fixed_area = [[[45, 55], [55, 55], [55, 45], [45, 45], [45, 55]]] -with open("best_structure.pickle", "wb") as handle: - pickle.dump(best_structure, handle, protocol=pickle.HIGHEST_PROTOCOL) -estimator = sound_estimator.configurate_estimator( - domain=domain, path_best_struct="best_structure.pickle" -) +def load_file_from_path(path: str): + with open(path, 'rb') as f: + file = pickle.load(f) + f.close() + return file -sampler = sound_sampler.configurate_sampler(domain=domain) -optimizer = sound_optimizer.configurate_optimizer( - pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup, -) +if __name__ == '__main__': -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design( - n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer, - extra=True, -) -spend_time = timeit.default_timer() - start -print(f"spent time {spend_time} sec") + # in the future all model can be loaded from configs + + # domain configuration + geometry = Geometry2D(is_closed=True, is_convex=True) + prohibited = create_prohibited(1, [], [], fixed_area=fixed_area) + domain = Domain( + allowed_area=[ + (min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y)), + ], + geometry=geometry, + max_poly_num=1, + min_poly_num=1, + max_points_num=30, + min_points_num=20, + prohibited_area=prohibited, + ) + + # tuner config + tp = TunerParams( + tuner_type='iopt', + n_steps_tune=10, + sampling_variance=0.1, + hyperopt_dist=hp.uniform, + ) + + # fitness function + class SoundFieldFitness(Fitness): + def __init__(self, domain, estimator, path_best_struct=None): + super().__init__(domain, SoundSimulator(domain=domain)) + self.path_best_struct = path_best_struct + + if self.path_best_struct is None: + print('please, set up the best spl matrix into configuration') + print('the best structure will be generated randomly') + rnd_structure = get_random_structure(domain) + best_spl = generate_map(domain, rnd_structure) + else: + best_structure = load_file_from_path(path_best_struct) + best_spl = self.estimator(best_structure) + best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) + + self.best_spl = best_spl + + def fitness(self, ind: Structure): + spl = self.estimator(ind) + current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) + + l_f = np.sum(np.abs(self.best_spl - current_spl)) + return [l_f] + + # fitness estimator + estimator = SoundFieldFitness( + domain, + SoundSimulator(domain, None), + None, + ) + + # optimization params config + opt_params = OptimizationParams( + crossovers=[ + partial(polygon_level_crossover, domain=domain), + partial(structure_level_crossover, domain=domain), + ], + crossover_each_prob=[0.0, 1.0], + mutations=[ + rotate_poly, + resize_poly, + add_point, + drop_point, + add_poly, + drop_poly, + pos_change_point_mutation, + ], + mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.00, 0.00, 0.25], + pair_selector=panmixis, + postprocess_attempts=3, + domain=domain, + postprocessor=postprocess, + estimator=estimator, + postprocess_rules=[ + Rules.not_out_of_bounds.value, + Rules.not_closed_polygon.value, + Rules.not_self_intersects.value, + Rules.not_too_close_polygons.value, + Rules.not_overlaps_prohibited.value, + Rules.not_too_close_points.value, + ], + n_jobs=-1, + golem_adapter=StructureAdapter, + tuner_cfg=tp, + n_steps=8, + pop_size=5, + ) + + optimizer = BaseGA(opt_params) + optimized_pop = optimizer.optimize() + + # make mp4 of optimized pop here if need + + tuner = GolemTuner(opt_params) + n_best_for_tune = 1 + tuned_individuals = tuner.tune(optimized_pop[0:n_best_for_tune]) + + # make mp4 of tuned pop here if need -with open("optimized_structure.pickle", "wb") as handle: - pickle.dump(optimized_pop, handle, protocol=pickle.HIGHEST_PROTOCOL) + # code to create mp4 + ### + # gm = GIFMaker(domain=domain) # mp4 maker actually + # gm.create_frame(_structure_, {'Optimized': _structure_.fitness}) # make frames for each stucture you want + # gm.make_gif('tuning', 500, ) # save file diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/algs/postproc/resolve_errors.py index fcb95d9b9..fa90fa0db 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/algs/postproc/resolve_errors.py @@ -9,7 +9,7 @@ from loguru import logger from shapely.geometry import Point as ShapelyPoint from shapely.geometry import Polygon as ShapelyPolygon -from shapely.ops import cascaded_union +from shapely.ops import unary_union from shapely.validation import explain_validity from gefest.core.geometry import Point, Polygon, Structure, get_random_poly @@ -211,15 +211,21 @@ def validate( geom = domain.geometry if domain.geometry.is_closed: - raise NotImplementedError() + logger.warning("There is no errors if no construction. NotImplemented validation and fix.") else: + from shapely.plotting import plot_polygon, plot_line + from matplotlib import pyplot as plt prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) - prohib = cascaded_union(prohib) + prohib = unary_union(prohib) poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) + # for g in prohib.geoms: + # plot_polygon(g) + # plot_line(poly, color='r') + # plt.show(block=True) if poly.intersects(prohib): - return True + return False - return False + return True @staticmethod def correct( @@ -231,16 +237,34 @@ def correct( if domain.geometry.is_closed: raise NotImplementedError() else: + from shapely.plotting import plot_polygon, plot_line + from matplotlib import pyplot as plt prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) - prohib = cascaded_union(prohib) + # for g in prohib.geoms: + # plot_polygon(g) + # plt.show(block=True) + prohib = unary_union(prohib) + # for g in prohib.geoms: + # plot_polygon(g) + poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) + + # plot_line(poly) + # plt.show(block=True) if poly.intersects(prohib): - parts = [geom for geom in poly.difference(prohib.buffer(0.001)).geoms] - parts = [geom for geom in parts if not geom.intersects(prohib)] - poly = np.random.choice(parts)[0] - poly = [Point(p[0], p[1]) for p in poly.coords] + res = poly.difference(prohib.buffer(0.001)) + from shapely.geometry import MultiPoint, LineString, GeometryCollection + if isinstance(res, (MultiPoint, LineString)): + res = GeometryCollection(res) + parts = [g for g in res.geoms] + parts = [g for g in parts if not g.intersects(prohib)] + poly = np.random.choice(parts) + # plot_line(poly) + # poly = [Point(p[0], p[1]) for p in poly.coords] + # plt.show(block=True) + return Polygon([Point(p[0], p[1]) for p in poly.coords]) else: - return poly + return Polygon([Point(p[0], p[1]) for p in poly.coords]) class PolygonNotClosed(PolygonRule): @@ -453,4 +477,5 @@ class Rules(Enum): not_closed_polygon = PolygonNotClosed() not_out_of_bounds = PolygonNotOutOfBounds() not_self_intersects = PolygonNotSelfIntersects() + not_overlaps_prohibited = PolygonNotOverlapsProhibited() not_too_close_points = PointsNotTooClose() diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 85b51005c..33aa7daed 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -4,29 +4,35 @@ from pydantic import BaseModel, ConfigDict, model_validator from gefest.core.algs.postproc.resolve_errors import PolygonRule, StructureRule +from gefest.core.opt.strategies.crossover import CrossoverStrategy +from gefest.core.opt.strategies.mutation import MutationStrategy from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry.domain import Domain from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.core.algs.postproc.resolve_errors import postprocess +from gefest.core.opt.operators.selections import tournament_selection +from gefest.core.opt.operators.crossovers import panmixis +from gefest.tools.samplers.standard.standard import StandardSampler from gefest.tools.fitness import Fitness class OptimizationParams(BaseModel): mutations: list[Callable] crossovers: list[Callable] - mutation_strategy: Callable - crossover_strategy: Callable n_steps: int pop_size: int - postprocess_attempts: int domain: Domain - selector: Callable - pair_selector: Callable - sampler: Callable estimator: Fitness - postprocessor: Callable + selector: Callable = tournament_selection + pair_selector: Callable = panmixis + sampler: Callable = StandardSampler + postprocessor: Callable = postprocess postprocess_rules: list[Union[PolygonRule, StructureRule]] + mutation_strategy: Callable = MutationStrategy + crossover_strategy: Callable = CrossoverStrategy + postprocess_attempts: int = 3 mutation_prob: float = 0.6 - crossover_prob: float = 0.8 + crossover_prob: float = 0.6 mutation_each_prob: Optional[list[float]] = None crossover_each_prob: Optional[list[float]] = None n_jobs: Optional[int] = -1 diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 6d3544154..42aa06d06 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -160,7 +160,7 @@ def _get_convex_safe_area( ) scale_factor = max(domain.max_x, domain.max_y) * 100 - if sum(cut_angles) < 180: + if sum(cut_angles) < 170: intersection_point = geom.intersection_line_line( left_cut, @@ -175,19 +175,33 @@ def _get_convex_safe_area( geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), ] - slice_points = geom.intersection_poly_line( - Polygon( - [ - left_cut[1], - *mid_points, - right_cut[1], - ], - ), - slice_line, - scale_factor, - ) - - if not slice_points.is_empty: + try: + slice_points = geom.intersection_poly_line( + Polygon( + [ + left_cut[1], + *mid_points, + right_cut[1], + ], + ), + slice_line, + scale_factor, + ) + except Exception as e: + from shapely.plotting import plot_line + from matplotlib import pyplot as plt + plot_line(geom._poly_to_shapely_line(poly)) + plot_line(LineString( + [(p.x,p.y) for p in + [ + left_cut[1], + *mid_points, + right_cut[1], + ]]), color='r') + plot_line(LineString([(p.x,p.y) for p in slice_line]), color='g') + plt.show() + + if slice_points: if isinstance(slice_points, SPoint): mid_points = [Point(slice_points.x, slice_points.y)] elif isinstance(slice_points, MultiPoint): @@ -326,7 +340,7 @@ def add_point(new_structure: Structure, domain: Domain, idx_: int = None): ) if base_area: - base_area = geom._poly_to_shapely_poly(base_area) + base_area = geom._poly_to_shapely_poly(Polygon(base_area)) if not base_area.is_simple: logger.error('Base area not simple.') diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py index 55a97915a..3fb99883d 100644 --- a/gefest/core/structure/prohibited.py +++ b/gefest/core/structure/prohibited.py @@ -4,9 +4,11 @@ from gefest.core.geometry import Point as G_Point from gefest.core.geometry import Polygon, PolyID, Structure +from gefest.core.geometry.domain import Domain def create_prohibited( + points_radius, targets: Optional[list[list]] = None, fixed_points: Optional[list[list]] = None, fixed_area: Optional[list[list]] = None, @@ -22,7 +24,7 @@ def create_prohibited( """ prohibited_area = [] if targets is not None: - target_polygons = [list(Point(target).buffer(20).exterior.coords) for target in targets] + target_polygons = [list(Point(target).buffer(points_radius).exterior.coords) for target in targets] target_points = [[G_Point(p[0], p[1]) for p in target] for target in target_polygons] poly_targets = [Polygon(id_=PolyID.PROH_TARG, points=points) for points in target_points] prohibited_area += poly_targets diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py new file mode 100644 index 000000000..15b27e4e6 --- /dev/null +++ b/gefest/core/utils/logger.py @@ -0,0 +1,14 @@ +import datetime + +from loguru import logger + + +class LogDispatcher: + def __init__(self) -> None: + timenow = '{date:%Y-%m-%d_%H_%M_%S}'.format(date=datetime.datetime.now()) + logger.add( + f'saved_pops/individuals_{timenow}.log', + level=3, + format='{message}', + filter=lambda record: record['level'].name in ['Level 3', 'Level 4'], + ) diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index 5b8b559ec..bc3708c96 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -88,8 +88,8 @@ def __init__(self, domain) -> None: self.frames = [] self.counter = 0 - def create_frame(self, structure, infos, domain=None): - fig = self.plot_structure(structure, domain, infos) + def create_frame(self, structure, infos): + fig = self.plot_structure(structure, self.domain, infos) numpy_fig = mplfig_to_npimage(fig) self.frames.append(numpy_fig) plt.close() diff --git a/gefest/tools/estimators/simulators/comsol/comsol_interface.py b/gefest/tools/estimators/simulators/comsol/comsol_interface.py index 76bfc2ba7..ef6cb3dec 100644 --- a/gefest/tools/estimators/simulators/comsol/comsol_interface.py +++ b/gefest/tools/estimators/simulators/comsol/comsol_interface.py @@ -10,7 +10,7 @@ from gefest.core.geometry import Structure from gefest.tools import Estimator -os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" +os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' USE_AVG_CONST = False @@ -44,11 +44,11 @@ def estimate(self, structure: Structure): model, idx = self._load_simulation_result(self.client, structure) if model is None: poly_box = [] - print("Start COMSOL") + print('Start COMSOL') for i, pol in enumerate(structure.polygons): poly_repr = [] - poly_repr.append(" ".join([str(pt.x) for pt in pol.points])) - poly_repr.append(" ".join([str(pt.y) for pt in pol.points])) + poly_repr.append(' '.join([str(pt.x) for pt in pol.points])) + poly_repr.append(' '.join([str(pt.y) for pt in pol.points])) poly_box.append(poly_repr) model = self.client.load(self.path_to_mph) @@ -67,22 +67,22 @@ def estimate(self, structure: Structure): try: outs = [ - model.evaluate("vlct_1"), - model.evaluate("vlct_2"), - model.evaluate("vlct_3"), - model.evaluate("vlct_4"), - model.evaluate("vlct_5"), - model.evaluate("vlct_side"), - model.evaluate("vlct_main"), + model.evaluate('vlct_1'), + model.evaluate('vlct_2'), + model.evaluate('vlct_3'), + model.evaluate('vlct_4'), + model.evaluate('vlct_5'), + model.evaluate('vlct_side'), + model.evaluate('vlct_main'), ] except Exception as ex: print(ex) self.client.clear() return 0.0 - u = model.evaluate("spf.U") - curl = model.evaluate("curl") - curv = model.evaluate("curv") / 10 ** 7 + u = model.evaluate('spf.U') + curl = model.evaluate('curl') + curv = model.evaluate('curv') / 10 ** 7 fast_u_tresh = 0 fast_u = np.mean(u[u > 0]) + (np.max(u) - np.mean(u[u > 0])) * fast_u_tresh @@ -92,7 +92,7 @@ def estimate(self, structure: Structure): target = float(sum(outs[0:4])) / float(sum(outs[4:7])) if (curl > 30000) or ((width_ratio < 0.25) or (width_ratio > 0.43)): - print("Speed common condition violated") + print('Speed common condition violated') target = 0 mean_diff = float( @@ -102,7 +102,7 @@ def estimate(self, structure: Structure): [abs(float(o) / np.mean(outs[0:4]) - 1) * 100 > 5.0 for o in outs[0:4]], ): print( - "Speed equality violated", + 'Speed equality violated', [abs(float(o) / np.mean(outs[0:4]) - 1) * 100 for o in outs[0:4]], ) target = 0 @@ -120,64 +120,66 @@ def estimate(self, structure: Structure): self.client.clear() else: - print(f"Cached: {target}") + print(f'Cached: {target}') return -target def _poly_add(self, model, polygons): for n, poly in enumerate(polygons): try: - model.java.component("comp1").geom("geom1").create("pol" + str(n + 1), "Polygon") + model.java.component('comp1').geom('geom1').create('pol' + str(n + 1), 'Polygon') except Exception: pass - model.java.component("comp1").geom("geom1").feature("pol" + str(n + 1)).set( - "x", poly[0], + model.java.component('comp1').geom('geom1').feature('pol' + str(n + 1)).set( + 'x', + poly[0], ) - model.java.component("comp1").geom("geom1").feature("pol" + str(n + 1)).set( - "y", poly[1], + model.java.component('comp1').geom('geom1').feature('pol' + str(n + 1)).set( + 'y', + poly[1], ) return model def _save_simulation_result(self, configuration, model): - if not os.path.exists("./models"): - os.mkdir("./models") + if not os.path.exists('./models'): + os.mkdir('./models') model_uid = str(uuid4()) - model.save(f"./models/{model_uid}.mph") - db = pickledb.load("comsol_db.saved", False) + model.save(f'./models/{model_uid}.mph') + db = pickledb.load('comsol_db.saved', False) db.set(str(configuration), model_uid) db.dump() - if not os.path.exists("./structures"): - os.mkdir("./structures") + if not os.path.exists('./structures'): + os.mkdir('./structures') - with open(f"./structures/{model_uid}.str", "wb") as f: + with open(f'./structures/{model_uid}.str', 'wb') as f: pickle.dump(configuration, f) return model_uid def _load_simulation_result(self, client, configuration): - db = pickledb.load("comsol_db.saved", False) + db = pickledb.load('comsol_db.saved', False) model_uid = db.get(str(configuration)) if model_uid is False: return None, None - model = client.load(f"./models/{model_uid}.mph") + model = client.load(f'./models/{model_uid}.mph') return model, model_uid def _save_fitness(self, configuration, fitness): array_structure = [[[p.x, p.y] for p in poly.points] for poly in configuration.polygons] - db = pickledb.load("fitness_db.saved", False) + db = pickledb.load('fitness_db.saved', False) db.set(str(array_structure), str(round(fitness, 4))) db.dump() def _load_fitness(self, configuration): array_structure = [[[p.x, p.y] for p in poly.points] for poly in configuration.polygons] - db = pickledb.load("fitness_db.saved", False) + db = pickledb.load('fitness_db.saved', False) - db_models = pickledb.load("comsol_db.saved", False) + db_models = pickledb.load('comsol_db.saved', False) model_uid = db_models.get(str(configuration)) diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index 3e4b3a186..b460faece 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -1,5 +1,6 @@ import itertools from copy import deepcopy +from typing import Any import numpy as np from numpy import ndarray @@ -7,6 +8,7 @@ from skimage.draw import polygon as skipolygon from skimage.draw import random_shapes from tqdm import tqdm +from gefest.core.geometry import Structure from gefest.core.geometry import Structure from gefest.tools import Estimator @@ -73,7 +75,8 @@ def generate_random_map(map_size, random_seed): width_center = map_size[0] // 2 length_center = map_size[1] // 2 obstacle_map[ - width_center - 20 : width_center + 21, length_center - 20 : length_center + 21, + width_center - 20 : width_center + 21, + length_center - 20 : length_center + 21, ] = 255 free_media = obstacle_map == 255 # Obstacles = 1, free media = 0 @@ -114,10 +117,10 @@ def __init__(self, domain, obstacle_map=None): obstacle_map is not None and (obstacle_map.shape[0], obstacle_map.shape[1]) == self.map_size ): - print("** Map Accepted **") + print('** Map Accepted **') self.obstacle_map = obstacle_map elif obstacle_map is not None and obstacle_map.shape != self.map_size: - print("** Map size denied **") + print('** Map size denied **') self.obstacle_map = np.zeros((self.size_y, self.size_x)) else: self.obstacle_map = np.zeros((self.size_y, self.size_x)) diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 120410f7a..4a5519780 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -2,6 +2,7 @@ import subprocess import numpy as np +from loguru import logger from gefest.core.geometry import Structure from gefest.tools import Estimator @@ -14,8 +15,8 @@ def __init__( targets, grid, domain, - input_file_path="bw_example_cfg", - hs_file_path="r/hs47dd8b1c0d4447478fec6f956c7e32d9.d", + input_file_path='bw_example_cfg', + hs_file_path='r/hs47dd8b1c0d4447478fec6f956c7e32d9.d', ): self.path_to_model = path self.path_to_input = path + input_file_path @@ -23,14 +24,14 @@ def __init__( self.targets = targets self.grid = grid self.domain = domain - self._grid_configuration() + # self._grid_configuration() def _grid_configuration(self): - file_to_read = open(self.path_to_input, "r") + file_to_read = open(self.path_to_input, 'r') content_read = file_to_read.read() - for_replace = ["xpc", "xlenc", "ypc", "ylenc", "mxc", "myc"] + for_replace = ['xpc', 'xlenc', 'ypc', 'ylenc', 'mxc', 'myc'] content_for_add = [ self.domain.min_x, self.domain.max_x, @@ -42,9 +43,9 @@ def _grid_configuration(self): new_content = copy.deepcopy(content_read) for replace, content in zip(for_replace, content_for_add): - content_to_replace = replace + "=" + str(content) + content_to_replace = replace + '=' + str(content) start = new_content.find(replace) - end = new_content[start:].find(" ") + end = new_content[start:].find(' ') content_write = new_content.replace( new_content[start : start + end], content_to_replace, @@ -52,49 +53,60 @@ def _grid_configuration(self): new_content = content_write file_to_read.close() - file_to_write = open(self.path_to_input, "w") + file_to_write = open(self.path_to_input, 'w') file_to_write.writelines(new_content) file_to_write.close() def estimate(self, struct: Structure): polygons = struct.polygons - file_to_read = open(self.path_to_input, "r") - content_read = file_to_read.read() - for_input = "\nOBSTACLE TRANSM 0. REFL 0. LINE " - num_of_polygons = len(polygons) - for j, poly in enumerate(polygons): - num_of_points = len(2 * poly.points) - points = np.array([p.coords for p in poly.points]) - individ = points.reshape(-1) - for i, gen in enumerate(individ): - if (i + 1) % 2 == 0: - if (i + 1) == num_of_points: - for_input += str(self.domain.max_y - gen) + with open(self.path_to_input, 'r') as file_to_read: + content_read = file_to_read.read() + + for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + num_of_polygons = len(polygons) + for j, poly in enumerate(polygons): + num_of_points = len(2 * poly.points) + points = np.array([p.coords[:2] for p in poly.points]) + individ = points.reshape(-1) + for i, gen in enumerate(individ): + if (i + 1) % 2 == 0: + if (i + 1) == num_of_points: + for_input += '{:.6f}'.format((self.domain.max_y - gen)) + else: + for_input += '{:.6f}'.format((self.domain.max_y - gen)) + ', ' else: - for_input += str(self.domain.max_y - gen) + ", " - else: - for_input += str(gen) + ", " + for_input += '{:.6f}'.format(gen) + ', ' - if j == (num_of_polygons - 1): - for_input += "\n$optline" - else: - for_input += "\nOBSTACLE TRANSM 0. REFL 0. LINE " + if j == (num_of_polygons - 1): + for_input += '\n$optline' + else: + for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' - content_to_replace = for_input - content_write = content_read.replace( - content_read[content_read.find("\n\n\n") + 3 : content_read.rfind("\n$optline") + 9], - content_to_replace, - ) - file_to_read.close() + content_to_replace = for_input + content_write = content_read.replace( + content_read[ + content_read.find('\n\n\n') + 3 : content_read.rfind('\n$optline') + 9 + ], + content_to_replace, + ) - file_to_write = open(self.path_to_input, "w") - file_to_write.writelines(content_write) - file_to_write.close() + with open(self.path_to_input, 'w') as file_to_write: + file_to_write.writelines(content_write) - subprocess.run("swan.exe", shell=True, cwd=self.path_to_model) + logger.info('Swan estimation started...') + subprocess.run( + 'swan.exe', + shell=True, + cwd=self.path_to_model, + stdout=subprocess.DEVNULL, + ) + logger.info('Swan estimation finished.') z = np.loadtxt(self.path_to_hs) - hs_target = np.sum([z[target[0], target[1]] for target in self.targets]) - - return [z, hs_target] + res = [] + for i in range(1538//32): + hs_target = np.sum([z[i*32:(i+1)*32][target[0], target[1]] for target in self.targets]) + res.append(hs_target) + hs_target = sum(res)/len(res) + return z, hs_target diff --git a/gefest/tools/fitness.py b/gefest/tools/fitness.py index 4883d3fa1..4cccc8a30 100644 --- a/gefest/tools/fitness.py +++ b/gefest/tools/fitness.py @@ -4,6 +4,7 @@ from loguru import logger from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain from gefest.core.utils import where from gefest.tools import Estimator @@ -11,8 +12,10 @@ class Fitness(metaclass=ABCMeta): def __init__( self, + domain: Domain, estimator: Optional[Estimator] = None, ) -> None: + self.domain = domain self.estimator = estimator def __call__( @@ -23,11 +26,14 @@ def __call__( return self.set_pop_fitness(pop=pop) @logger.catch - def set_pop_fitness(self, pop: list[Structure]): + def set_pop_fitness( + self, + pop: list[Structure], + ) -> list[Structure]: for idx in where(pop, lambda ind: len(ind.fitness) == 0): pop[idx].fitness = self.fitness(pop[idx]) return pop @abstractmethod - def fitness(self, ind: Structure) -> Any: + def fitness(self, ind: Structure) -> list[float]: ... diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index f81bb1acf..586d2d5f8 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -5,8 +5,8 @@ from gefest.core.geometry import Structure from gefest.core.opt.strategies.strategy import Strategy +from gefest.core.utils.logger import LogDispatcher from gefest.tools.optimizers.optimizer import Optimizer -from refactored import LogDispatcher class BaseGA(Optimizer): diff --git a/requirements.txt b/requirements.txt index 0583294e7..dd8a6e6b5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,21 +1,24 @@ cython==0.29.36 -pandas>=1.1.0, <1.3.0; python_version == '3.7' -pandas>=1.3.0; python_version >='3.8' -dataclasses==0.7; python_version < '3.7' +pandas==1.4.4 numpy==1.19.4 typing==3.7.4.1 -matplotlib==3.0.2; python_version < '3.8' -matplotlib==3.3.1; python_version == '3.8' +matplotlib==3.6.3 seaborn==0.9.0 MPh==0.7.6 pickledb==0.9.2 -shapely==1.7.1 -pytest>=6.2.* +shapely==2.0.1 +pytest==7.4.2 autodocsumm==0.2.11 -tqdm==4.64.1 -thegolem -scikit-image -pydantic +tqdm==4.65.2 +thegolem==0.3.3 +scipy==1.9.3 +scikit-image==0.19.3 +scikit-learn==1.3.0 +pydantic==2.4.2 +pydantic-yaml==1.1.1 +PyYAML==6.0.1 +moviepy==1.0.3 +joblib==1.3.2 flake8==6.0.0 brunette==0.2.8 From df48091ba34fd579e04d1e37051040fa372f8067 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 5 Oct 2023 13:49:51 +0300 Subject: [PATCH 08/66] fix compatibility, add extra in config --- cases/sound_waves/main.py | 9 +++++---- gefest/core/configs/optimization_params.py | 1 + gefest/core/utils/logger.py | 9 +++++++++ gefest/tools/fitness.py | 9 ++++++--- gefest/tools/optimizers/GA/base_GA.py | 2 +- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/cases/sound_waves/main.py b/cases/sound_waves/main.py index 21ee394e6..9bcc560fa 100644 --- a/cases/sound_waves/main.py +++ b/cases/sound_waves/main.py @@ -78,7 +78,7 @@ def load_file_from_path(path: str): # tuner config tp = TunerParams( tuner_type='iopt', - n_steps_tune=10, + n_steps_tune=2, sampling_variance=0.1, hyperopt_dist=hp.uniform, ) @@ -106,7 +106,7 @@ def fitness(self, ind: Structure): current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) l_f = np.sum(np.abs(self.best_spl - current_spl)) - return [l_f] + return l_f # fitness estimator estimator = SoundFieldFitness( @@ -145,11 +145,12 @@ def fitness(self, ind: Structure): Rules.not_overlaps_prohibited.value, Rules.not_too_close_points.value, ], + extra=3, n_jobs=-1, golem_adapter=StructureAdapter, tuner_cfg=tp, - n_steps=8, - pop_size=5, + n_steps=1, + pop_size=3, ) optimizer = BaseGA(opt_params) diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 33aa7daed..ec000dd51 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -35,6 +35,7 @@ class OptimizationParams(BaseModel): crossover_prob: float = 0.6 mutation_each_prob: Optional[list[float]] = None crossover_each_prob: Optional[list[float]] = None + extra: int = 5 n_jobs: Optional[int] = -1 golem_adapter: Callable = StructureAdapter tuner_cfg: Optional[TunerParams] = None diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index 15b27e4e6..fe105c312 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -1,6 +1,9 @@ import datetime from loguru import logger +from pydantic import RootModel + +from gefest.core.geometry import Structure class LogDispatcher: @@ -12,3 +15,9 @@ def __init__(self) -> None: format='{message}', filter=lambda record: record['level'].name in ['Level 3', 'Level 4'], ) + + def log_pop(self, pop: list[Structure], step: int): + logger.log(3, f'Step {step}') + for ind in pop: + logger.log(4, RootModel[Structure](ind).model_dump()) + logger.info('Population logged. May be not sorted by fitness.') diff --git a/gefest/tools/fitness.py b/gefest/tools/fitness.py index 4cccc8a30..c19b19f5d 100644 --- a/gefest/tools/fitness.py +++ b/gefest/tools/fitness.py @@ -1,5 +1,5 @@ from abc import ABCMeta, abstractmethod -from typing import Any, Optional +from typing import Optional from loguru import logger @@ -31,9 +31,12 @@ def set_pop_fitness( pop: list[Structure], ) -> list[Structure]: for idx in where(pop, lambda ind: len(ind.fitness) == 0): - pop[idx].fitness = self.fitness(pop[idx]) + fit = self.fitness(pop[idx]) + if not isinstance(fit, list): + fit = [fit] + pop[idx].fitness = fit return pop @abstractmethod - def fitness(self, ind: Structure) -> list[float]: + def fitness(self, ind: Structure) -> float: ... diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index 586d2d5f8..d315abafd 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -34,7 +34,7 @@ def optimize(self) -> list[Structure]: self._pop = self.selector(self._pop, self.opt_params.pop_size) self._pop = self.crossover(self._pop) self._pop = self.mutation(self._pop) - self._pop.extend(self.sampler(5)) + self._pop.extend(self.sampler(self.opt_params.extra)) self._pop = self.estimator(self._pop) self.logger.log_pop(self._pop, step) self._pop = sorted(self._pop, key=lambda x: x.fitness) From 6e739e2f3c3895742f18708ba3b30a9cb4f11430 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 5 Oct 2023 21:49:29 +0300 Subject: [PATCH 09/66] fix np.log10 zero division warning --- gefest/tools/estimators/simulators/sound_wave/sound_interface.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index b460faece..5e4ce6bb0 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -171,6 +171,7 @@ def spl(self, integration_interval=60): integration_interval = self.pressure_hist.shape[0] rms_p = np.sqrt(np.mean(np.square(self.pressure_hist[-integration_interval:-1]), axis=0)) + rms_p[rms_p == 0.0] = 0.000000001 matrix_db = 20 * np.log10(rms_p / p0) return matrix_db From 2ff48acf95a9eef1d30d267b5fad562fbd3e59e1 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 6 Oct 2023 15:09:13 +0300 Subject: [PATCH 10/66] fix docstring --- gefest/core/opt/tuning/tuner.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index e9082894c..81a4c9a28 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -1,7 +1,6 @@ from enum import Enum -from typing import Any, Callable, Union +from typing import Union -from golem.core.adapter import BaseOptimizationAdapter from golem.core.optimisers.graph import OptGraph from golem.core.optimisers.objective import Objective, ObjectiveEvaluate from golem.core.tuning.iopt_tuner import IOptTuner @@ -9,14 +8,9 @@ from golem.core.tuning.search_space import OperationParametersMapping, SearchSpace from golem.core.tuning.sequential import SequentialTuner from golem.core.tuning.simultaneous import SimultaneousTuner -from hyperopt import hp from gefest.core.configs.optimization_params import OptimizationParams -from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.opt.adapters.structure import StructureAdapter -from gefest.tools.fitness import Fitness GolemTunerType = Union[IOptTuner, OptunaTuner, SequentialTuner, SimultaneousTuner] @@ -31,6 +25,9 @@ class TunerType(Enum): class GolemTuner: """Wrap for GOLEM tuners. Provides interface for tuning stucture points coordinates. + For more details about tuners see: + https://thegolem.readthedocs.io/en/latest/api/tuning.html + https://fedot.readthedocs.io/en/latest/advanced/hyperparameters_tuning.html """ def __init__( From 1957f36e28221ae80e60019903e1a92e714e8947 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Sat, 7 Oct 2023 00:03:24 +0300 Subject: [PATCH 11/66] fix tuning: search variance, invalid sturcts after tuning --- gefest/core/configs/tuner_params.py | 4 ++ gefest/core/opt/adapters/structure.py | 12 +++--- gefest/core/opt/operators/mutations.py | 28 ++++++++------ gefest/core/opt/tuning/tuner.py | 51 ++++++++++++++++--------- gefest/core/opt/tuning/uitls.py | 52 ++++++++++++++++++++++++++ 5 files changed, 110 insertions(+), 37 deletions(-) create mode 100644 gefest/core/opt/tuning/uitls.py diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index f5d17f663..119131241 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -1,8 +1,11 @@ +from ctypes import Structure from typing import Callable, Union from hyperopt import hp from pydantic import BaseModel, ConfigDict, field_validator +from gefest.core.opt.tuning.uitls import average_edge_variance + class TunerParams(BaseModel): """Dataclass for 'GolemTuner' parameters aggreagtion. @@ -15,6 +18,7 @@ class TunerParams(BaseModel): sampling_variance: float hyperopt_dist: Union[Callable, str] = hp.uniform verbose: bool = True + variacne_generator: Callable[[Structure], list[float]] = average_edge_variance @field_validator('hyperopt_dist') def hyperopt_fun_validate(cls, value): diff --git a/gefest/core/opt/adapters/structure.py b/gefest/core/opt/adapters/structure.py index 66d4f5c94..b8402c3df 100644 --- a/gefest/core/opt/adapters/structure.py +++ b/gefest/core/opt/adapters/structure.py @@ -1,5 +1,3 @@ -from typing import Any, Dict - from golem.core.adapter.adapter import BaseOptimizationAdapter from golem.core.optimisers.graph import OptGraph, OptNode from loguru import logger @@ -17,11 +15,13 @@ def __init__(self, domain: Domain) -> None: self.domain = domain def _point_to_node(self, point) -> OptNode: - if type(point) == OptNode: + if type(point) is OptNode: self._log.warn('Unexpected: OptNode found in adapter instead' 'Point.') else: - content = {'name': f'pt_{point.x}_{point.y}', 'params': {}} - + content = { + 'name': f'pt_{point.x}_{point.y}', + 'params': {}, + } node = OptNode(content=content) node.content['params'] = { 'x': point.x, @@ -63,7 +63,6 @@ def _restore(self, opt_graph: OptGraph) -> Structure: for node in opt_graph.nodes[1:]: if not len(node.nodes_from): - # next polygon started if self.domain.geometry.is_closed: poly.points.append(poly[0]) structure.append(poly) @@ -78,7 +77,6 @@ def _restore(self, opt_graph: OptGraph) -> Structure: if poly not in structure: if self.domain.geometry.is_closed: poly.points.append(poly[0]) - # add last poly structure.append(poly) return Structure(structure) diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 42aa06d06..850449791 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -188,18 +188,22 @@ def _get_convex_safe_area( scale_factor, ) except Exception as e: - from shapely.plotting import plot_line - from matplotlib import pyplot as plt - plot_line(geom._poly_to_shapely_line(poly)) - plot_line(LineString( - [(p.x,p.y) for p in - [ - left_cut[1], - *mid_points, - right_cut[1], - ]]), color='r') - plot_line(LineString([(p.x,p.y) for p in slice_line]), color='g') - plt.show() + raise Exception(e) + # from shapely.plotting import plot_line + # from matplotlib import pyplot as plt + # plot_line(geom._poly_to_shapely_line(poly)) + # plot_line( + # LineString( + # [(p.x,p.y) for p in + # [ + # left_cut[1], + # *mid_points, + # right_cut[1], + # ]], + # ), color='r', + # ) + # plot_line(LineString([(p.x,p.y) for p in slice_line]), color='g') + # plt.show() if slice_points: if isinstance(slice_points, SPoint): diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index 81a4c9a28..91a906957 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -1,5 +1,6 @@ from enum import Enum -from typing import Union +from functools import partial +from typing import Callable, Union from golem.core.optimisers.graph import OptGraph from golem.core.optimisers.objective import Objective, ObjectiveEvaluate @@ -9,8 +10,11 @@ from golem.core.tuning.sequential import SequentialTuner from golem.core.tuning.simultaneous import SimultaneousTuner +from gefest.core.algs.postproc.resolve_errors import validate from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.tuning.uitls import VarianceGeneratorType, fitness_validation_wrap GolemTunerType = Union[IOptTuner, OptunaTuner, SequentialTuner, SimultaneousTuner] @@ -26,8 +30,8 @@ class GolemTuner: """Wrap for GOLEM tuners. Provides interface for tuning stucture points coordinates. For more details about tuners see: - https://thegolem.readthedocs.io/en/latest/api/tuning.html - https://fedot.readthedocs.io/en/latest/advanced/hyperparameters_tuning.html + https://thegolem.readthedocs.io/en/latest/api/tuning.html + https://fedot.readthedocs.io/en/latest/advanced/hyperparameters_tuning.html """ def __init__( @@ -35,29 +39,35 @@ def __init__( opt_params: OptimizationParams, **kwargs, ) -> None: - - fitness_function = opt_params.estimator + self.domain: Domain = opt_params.domain + validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) + estimator_with_validaion = partial( + fitness_validation_wrap, + fitness_fun=opt_params.estimator, + validator=validator, + ) objective = Objective( quality_metrics={ - type(fitness_function).__name__: fitness_function.fitness, + type(opt_params.estimator).__name__: estimator_with_validaion, }, ) - self.tuner_type = opt_params.tuner_cfg.tuner_type - self.eval_n_jobs = 1 if fitness_function.estimator else -1 - self.objective_evaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) - self.adapter = opt_params.golem_adapter - self.sampling_variance = opt_params.tuner_cfg.sampling_variance - self.hyperopt_dist = opt_params.tuner_cfg.hyperopt_dist - self.n_steps_tune = opt_params.tuner_cfg.n_steps_tune - self.verbose = opt_params.tuner_cfg.verbose + self.tuner_type: str = opt_params.tuner_cfg.tuner_type + self.eval_n_jobs: int = 1 if opt_params.estimator.estimator else -1 + self.objective_evaluate: ObjectiveEvaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) + self.adapter: Callable = opt_params.golem_adapter + self.hyperopt_dist: Union[Callable, str] = opt_params.tuner_cfg.hyperopt_dist + self.n_steps_tune: int = opt_params.tuner_cfg.n_steps_tune + self.verbose: bool = opt_params.tuner_cfg.verbose + self.generate_variances: VarianceGeneratorType = opt_params.tuner_cfg.variacne_generator def _get_tuner( self, graph: OptGraph, + search_space: SearchSpace, ) -> GolemTunerType: return getattr(TunerType, self.tuner_type).value( objective_evaluate=self.objective_evaluate, - search_space=SearchSpace(self._generate_search_space(graph)), + search_space=search_space, adapter=self.adapter, iterations=self.n_steps_tune, n_jobs=self.eval_n_jobs, @@ -66,14 +76,15 @@ def _get_tuner( def _generate_search_space( self, graph: OptGraph, + sampling_variances: list[float], ) -> OperationParametersMapping: return { node.name: { param: { 'hyperopt-dist': self.hyperopt_dist, 'sampling-scope': [ - val - self.sampling_variance, - val + self.sampling_variance, + val - sampling_variances[idx_], + val + sampling_variances[idx_], ], 'type': 'continuous', } @@ -102,7 +113,11 @@ def tune( tuned_objects = [] for struct in objects_for_tune: graph = self.adapter.adapt(struct) - tuner = self._get_tuner(graph) + search_space = self._generate_search_space( + graph, + self.generate_variances(struct, self.domain), + ) + tuner = self._get_tuner(graph, SearchSpace(search_space)) tuned_structure = tuner.tune(graph=graph, show_progress=self.verbose) tuned_structure.fitness = tuner.obtained_metric tuned_objects.append(tuned_structure) diff --git a/gefest/core/opt/tuning/uitls.py b/gefest/core/opt/tuning/uitls.py new file mode 100644 index 000000000..41284e2e7 --- /dev/null +++ b/gefest/core/opt/tuning/uitls.py @@ -0,0 +1,52 @@ +from typing import Callable + +import numpy as np + +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.tools.fitness import Fitness + +VarianceGeneratorType = Callable[[Structure], list[float]] + + +def fitness_validation_wrap( + struct: Structure, + fitness_fun: Fitness, + validator: Callable, +) -> float: + """Applys validation rules to structure. + Used for GOLEM tuner as objective to filter out + invalid cases in tuning process. + + Args: + struct (Structure): Changed stucture. + fitness_fun (Fitness): Fitness instance for current task. + validator (Callable): Util for structure validation. + + Returns: + float: None if structure invalid else fintess function output + """ + if validator(struct): + fitness = fitness_fun.fitness(struct) + else: + fitness = np.inf + return fitness + + +def average_edge_variance( + structure: Structure, + domain: Domain, +) -> list[float]: + """Generates tuning variance for each point. + Variance is equal to half the average edge length of the polygon. + + Returns: + list[float]: list of variances for each point in structure + """ + geom = domain.geometry + variances = [] + for poly in structure: + variances.extend( + [0.5 * geom.get_length(poly) / (len(poly) - int(geom.is_closed))] * len(poly), + ) + return variances From 8f15b58ec950cec9424505fff63cfc469a488e88 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Sat, 7 Oct 2023 16:01:45 +0300 Subject: [PATCH 12/66] add better pop logging --- gefest/core/utils/logger.py | 20 ++++++++++---------- gefest/tools/optimizers/GA/base_GA.py | 6 +++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index fe105c312..702d0caff 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -8,16 +8,16 @@ class LogDispatcher: def __init__(self) -> None: - timenow = '{date:%Y-%m-%d_%H_%M_%S}'.format(date=datetime.datetime.now()) - logger.add( - f'saved_pops/individuals_{timenow}.log', - level=3, - format='{message}', - filter=lambda record: record['level'].name in ['Level 3', 'Level 4'], - ) + self.timenow = '{date:%Y-%m-%d_%H_%M_%S}'.format(date=datetime.datetime.now()) - def log_pop(self, pop: list[Structure], step: int): - logger.log(3, f'Step {step}') - for ind in pop: + def log_pop(self, pop: list[Structure], step: str): + for ind_idx, ind in enumerate(pop): + inividual_log_handler = logger.add( + f'saved_pops/run_{self.timenow}/{step.zfill(5)}/{str((ind_idx+1)).zfill(5)}.log', + level=4, + format='{message}', + filter=lambda record: record['level'].name in ['Level 4'], + ) logger.log(4, RootModel[Structure](ind).model_dump()) + logger.remove(inividual_log_handler) logger.info('Population logged. May be not sorted by fitness.') diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index d315abafd..3aadd3081 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -27,15 +27,15 @@ def __init__( self.domain = self.opt_params.domain self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) self._pop = self.estimator(self._pop) - self.logger.log_pop(self._pop, 'init') + self.logger.log_pop(self._pop, '00000_init') def optimize(self) -> list[Structure]: for step in tqdm(range(self.n_steps)): - self._pop = self.selector(self._pop, self.opt_params.pop_size) self._pop = self.crossover(self._pop) self._pop = self.mutation(self._pop) self._pop.extend(self.sampler(self.opt_params.extra)) self._pop = self.estimator(self._pop) - self.logger.log_pop(self._pop, step) + self._pop = self.selector(self._pop, self.opt_params.pop_size) + self.logger.log_pop(self._pop, str(step + 1)) self._pop = sorted(self._pop, key=lambda x: x.fitness) return self._pop From 29d6c1fd766cedbdb33efb8cd1cdb2cf8fe08d31 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Sat, 7 Oct 2023 16:16:09 +0300 Subject: [PATCH 13/66] add configurable logs paths --- gefest/core/configs/optimization_params.py | 2 ++ gefest/core/utils/logger.py | 6 ++++-- gefest/tools/optimizers/GA/base_GA.py | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index ec000dd51..32292a5b0 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -39,6 +39,8 @@ class OptimizationParams(BaseModel): n_jobs: Optional[int] = -1 golem_adapter: Callable = StructureAdapter tuner_cfg: Optional[TunerParams] = None + log_dir: str = 'logs' + run_name: str = 'run_name' @model_validator(mode='after') def create_classes_instances(self): diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index 702d0caff..6d7f07702 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -7,13 +7,15 @@ class LogDispatcher: - def __init__(self) -> None: + def __init__(self, log_dir: str = 'logs', run_name='new_run') -> None: self.timenow = '{date:%Y-%m-%d_%H_%M_%S}'.format(date=datetime.datetime.now()) + self.log_dir = log_dir + self.run_name = run_name def log_pop(self, pop: list[Structure], step: str): for ind_idx, ind in enumerate(pop): inividual_log_handler = logger.add( - f'saved_pops/run_{self.timenow}/{step.zfill(5)}/{str((ind_idx+1)).zfill(5)}.log', + f'{self.log_dir}/{self.run_name}_{self.timenow}/{step.zfill(5)}/{str((ind_idx+1)).zfill(5)}.log', level=4, format='{message}', filter=lambda record: record['level'].name in ['Level 4'], diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index 3aadd3081..0f695404e 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -15,7 +15,7 @@ def __init__( opt_params, **kwargs, ): - super().__init__(LogDispatcher()) + super().__init__(LogDispatcher(opt_params.log_dir, opt_params.run_name)) self.opt_params = opt_params self.crossover: Strategy = opt_params.crossover_strategy self.mutation: Strategy = opt_params.mutation_strategy From 091c12d61dde6f672c89261968ff32a6011176d0 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 9 Oct 2023 18:16:05 +0300 Subject: [PATCH 14/66] patch iOpt infinite loop with np.inf fitness --- gefest/core/opt/tuning/uitls.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gefest/core/opt/tuning/uitls.py b/gefest/core/opt/tuning/uitls.py index 41284e2e7..f1b5e9404 100644 --- a/gefest/core/opt/tuning/uitls.py +++ b/gefest/core/opt/tuning/uitls.py @@ -1,7 +1,5 @@ from typing import Callable -import numpy as np - from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.tools.fitness import Fitness @@ -29,7 +27,7 @@ def fitness_validation_wrap( if validator(struct): fitness = fitness_fun.fitness(struct) else: - fitness = np.inf + fitness = 1.e42 return fitness From 72eb9498347be3f217d769075cfe922cb20deeb5 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Tue, 10 Oct 2023 12:07:17 +0300 Subject: [PATCH 15/66] fix serialization, add parser --- gefest/core/configs/optimization_params.py | 3 +++ gefest/core/opt/tuning/tuner.py | 6 +++++- gefest/core/utils/functions.py | 22 ++++++++++++++++++++++ gefest/core/utils/logger.py | 16 ++++++++-------- gefest/tools/fitness.py | 2 +- gefest/tools/optimizers/GA/base_GA.py | 7 +++---- gefest/tools/optimizers/optimizer.py | 4 ++-- 7 files changed, 44 insertions(+), 16 deletions(-) diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 32292a5b0..f4872bdf4 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -14,6 +14,7 @@ from gefest.core.opt.operators.crossovers import panmixis from gefest.tools.samplers.standard.standard import StandardSampler from gefest.tools.fitness import Fitness +from gefest.core.utils.logger import LogDispatcher class OptimizationParams(BaseModel): @@ -41,6 +42,7 @@ class OptimizationParams(BaseModel): tuner_cfg: Optional[TunerParams] = None log_dir: str = 'logs' run_name: str = 'run_name' + log_dispatcher: Callable = LogDispatcher @model_validator(mode='after') def create_classes_instances(self): @@ -56,5 +58,6 @@ def create_classes_instances(self): self.crossover_strategy = self.crossover_strategy(opt_params=self) self.mutation_strategy = self.mutation_strategy(opt_params=self) self.golem_adapter = self.golem_adapter(self.domain) + self.log_dispatcher = self.log_dispatcher(self.log_dir, self.run_name) model_config = ConfigDict({'arbitrary_types_allowed': True}) diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index 91a906957..7d3b72e8f 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -39,6 +39,7 @@ def __init__( opt_params: OptimizationParams, **kwargs, ) -> None: + self.log_dispatcher = opt_params.log_dispatcher self.domain: Domain = opt_params.domain validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) estimator_with_validaion = partial( @@ -119,6 +120,9 @@ def tune( ) tuner = self._get_tuner(graph, SearchSpace(search_space)) tuned_structure = tuner.tune(graph=graph, show_progress=self.verbose) - tuned_structure.fitness = tuner.obtained_metric + metric = tuner.obtained_metric + tuned_structure.fitness = [metric] if not isinstance(metric, list) else metric tuned_objects.append(tuned_structure) + tuned_objects = sorted(tuned_objects, key=lambda x: x.fitness) + self.log_dispatcher.log_pop(tuned_objects, 'tuned') return tuned_objects diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index 824a88a2d..261a529c6 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -3,6 +3,9 @@ from typing import Any, Callable from loguru import logger +from pydantic import RootModel + +from gefest.core.geometry import Structure def project_root() -> Path: @@ -10,6 +13,25 @@ def project_root() -> Path: return Path(__file__).parent.parent.parent +def parse_structs(path: str) -> list[Structure]: + """Generates list of structures from file with dicts. + + Args: + path (str): Path to file contains Structure object dumps, + splitted with new line. + + Returns: + list[Structure]: Serialized population. + """ + with open(path, 'r') as file: + dict_strings = file.readlines() + pop = [] + for dict_string in dict_strings: + ind = RootModel(Structure).model_construct(dict_string) + pop.append(ind) + return pop + + @logger.catch def where( sequence: list[Any], diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index 6d7f07702..f03c128cc 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -13,13 +13,13 @@ def __init__(self, log_dir: str = 'logs', run_name='new_run') -> None: self.run_name = run_name def log_pop(self, pop: list[Structure], step: str): - for ind_idx, ind in enumerate(pop): - inividual_log_handler = logger.add( - f'{self.log_dir}/{self.run_name}_{self.timenow}/{step.zfill(5)}/{str((ind_idx+1)).zfill(5)}.log', - level=4, - format='{message}', - filter=lambda record: record['level'].name in ['Level 4'], - ) + inividual_log_handler = logger.add( + f'{self.log_dir}/{self.run_name}_{self.timenow}/{step.zfill(5)}.log', + level=4, + format='{message}', + filter=lambda record: record['level'].name in ['Level 4'], + ) + for ind in pop: logger.log(4, RootModel[Structure](ind).model_dump()) - logger.remove(inividual_log_handler) + logger.remove(inividual_log_handler) logger.info('Population logged. May be not sorted by fitness.') diff --git a/gefest/tools/fitness.py b/gefest/tools/fitness.py index c19b19f5d..1ded43574 100644 --- a/gefest/tools/fitness.py +++ b/gefest/tools/fitness.py @@ -35,7 +35,7 @@ def set_pop_fitness( if not isinstance(fit, list): fit = [fit] pop[idx].fitness = fit - return pop + return sorted(pop, key=lambda x: x.fitness) @abstractmethod def fitness(self, ind: Structure) -> float: diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index 0f695404e..46ca0b443 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -15,7 +15,7 @@ def __init__( opt_params, **kwargs, ): - super().__init__(LogDispatcher(opt_params.log_dir, opt_params.run_name)) + super().__init__(opt_params.log_dispatcher) self.opt_params = opt_params self.crossover: Strategy = opt_params.crossover_strategy self.mutation: Strategy = opt_params.mutation_strategy @@ -27,7 +27,7 @@ def __init__( self.domain = self.opt_params.domain self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) self._pop = self.estimator(self._pop) - self.logger.log_pop(self._pop, '00000_init') + self.log_dispatcher.log_pop(self._pop, '00000_init') def optimize(self) -> list[Structure]: for step in tqdm(range(self.n_steps)): @@ -36,6 +36,5 @@ def optimize(self) -> list[Structure]: self._pop.extend(self.sampler(self.opt_params.extra)) self._pop = self.estimator(self._pop) self._pop = self.selector(self._pop, self.opt_params.pop_size) - self.logger.log_pop(self._pop, str(step + 1)) - self._pop = sorted(self._pop, key=lambda x: x.fitness) + self.log_dispatcher.log_pop(self._pop, str(step + 1)) return self._pop diff --git a/gefest/tools/optimizers/optimizer.py b/gefest/tools/optimizers/optimizer.py index fa26ac5e3..18eb727d4 100644 --- a/gefest/tools/optimizers/optimizer.py +++ b/gefest/tools/optimizers/optimizer.py @@ -6,10 +6,10 @@ class Optimizer(metaclass=ABCMeta): def __init__( self, - logger=None, + log_dispatcher=None, **kwargs, ) -> None: - self.logger = logger + self.log_dispatcher = log_dispatcher @abstractmethod def optimize( From 86ac5f6993bb78c14c26c17941bc82baf50d61a1 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Tue, 10 Oct 2023 14:03:12 +0300 Subject: [PATCH 16/66] patch golem verbose arg --- gefest/core/opt/tuning/tuner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index 7d3b72e8f..508b96163 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -119,7 +119,7 @@ def tune( self.generate_variances(struct, self.domain), ) tuner = self._get_tuner(graph, SearchSpace(search_space)) - tuned_structure = tuner.tune(graph=graph, show_progress=self.verbose) + tuned_structure = tuner.tune(graph) metric = tuner.obtained_metric tuned_structure.fitness = [metric] if not isinstance(metric, list) else metric tuned_objects.append(tuned_structure) From 3c735d65015b10afcf02151b4cf149f1a06786ce Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Tue, 10 Oct 2023 15:43:54 +0300 Subject: [PATCH 17/66] fix parsing --- gefest/core/geometry/datastructs/point.py | 2 +- gefest/core/geometry/datastructs/structure.py | 2 +- gefest/core/utils/functions.py | 4 ++-- gefest/core/utils/logger.py | 5 ++++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gefest/core/geometry/datastructs/point.py b/gefest/core/geometry/datastructs/point.py index 9c728e617..58afc4b4f 100644 --- a/gefest/core/geometry/datastructs/point.py +++ b/gefest/core/geometry/datastructs/point.py @@ -7,6 +7,6 @@ class Point: x: float y: float - @computed_field + @computed_field(repr=False) def coords(self) -> list[float]: return [self.x, self.y] diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index a362d3fec..f46f5f380 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -13,7 +13,7 @@ class Structure: polygons: tuple[Polygon, ...] = Field(default_factory=tuple) fitness: list[float] = Field(default_factory=list) extra_characteristics: dict = Field(default_factory=dict) - _id: UUID = Field(default_factory=uuid4) + id_: UUID = Field(default_factory=uuid4) def __len__(self): return len(self.polygons) diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index 261a529c6..91b43e364 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -3,7 +3,7 @@ from typing import Any, Callable from loguru import logger -from pydantic import RootModel +import json from gefest.core.geometry import Structure @@ -27,7 +27,7 @@ def parse_structs(path: str) -> list[Structure]: dict_strings = file.readlines() pop = [] for dict_string in dict_strings: - ind = RootModel(Structure).model_construct(dict_string) + ind = Structure(**json.loads(dict_string)) pop.append(ind) return pop diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index f03c128cc..72d188b28 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -20,6 +20,9 @@ def log_pop(self, pop: list[Structure], step: str): filter=lambda record: record['level'].name in ['Level 4'], ) for ind in pop: - logger.log(4, RootModel[Structure](ind).model_dump()) + dump = RootModel[Structure](ind).model_dump_json( + exclude={'polygons': {'__all__': {'points': {'__all__': {'coords'}}}}}, + ) + logger.log(4, dump) logger.remove(inividual_log_handler) logger.info('Population logged. May be not sorted by fitness.') From da4d7bc72b756b90b37ea505f14288a9a39941ff Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 11 Oct 2023 14:14:04 +0300 Subject: [PATCH 18/66] add normal distrib search space --- gefest/core/configs/optimization_params.py | 21 ++++++++--------- gefest/core/configs/tuner_params.py | 1 - gefest/core/opt/tuning/tuner.py | 17 +++++++------- gefest/core/opt/tuning/uitls.py | 26 ++++++++++++++++++---- 4 files changed, 41 insertions(+), 24 deletions(-) diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index f4872bdf4..055d0d470 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -3,18 +3,21 @@ from pydantic import BaseModel, ConfigDict, model_validator -from gefest.core.algs.postproc.resolve_errors import PolygonRule, StructureRule -from gefest.core.opt.strategies.crossover import CrossoverStrategy -from gefest.core.opt.strategies.mutation import MutationStrategy +from gefest.core.algs.postproc.resolve_errors import ( + PolygonRule, + StructureRule, + postprocess, +) from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry.domain import Domain from gefest.core.opt.adapters.structure import StructureAdapter -from gefest.core.algs.postproc.resolve_errors import postprocess -from gefest.core.opt.operators.selections import tournament_selection from gefest.core.opt.operators.crossovers import panmixis -from gefest.tools.samplers.standard.standard import StandardSampler -from gefest.tools.fitness import Fitness +from gefest.core.opt.operators.selections import tournament_selection +from gefest.core.opt.strategies.crossover import CrossoverStrategy +from gefest.core.opt.strategies.mutation import MutationStrategy from gefest.core.utils.logger import LogDispatcher +from gefest.tools.fitness import Fitness +from gefest.tools.samplers.standard.standard import StandardSampler class OptimizationParams(BaseModel): @@ -46,9 +49,7 @@ class OptimizationParams(BaseModel): @model_validator(mode='after') def create_classes_instances(self): - self.crossovers = [ - partial(fun, domain=self.domain) for fun in self.crossovers - ] + self.crossovers = [partial(fun, domain=self.domain) for fun in self.crossovers] self.postprocessor = partial( self.postprocessor, domain=self.domain, diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index 119131241..5346de1f5 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -15,7 +15,6 @@ class TunerParams(BaseModel): tuner_type: str n_steps_tune: int - sampling_variance: float hyperopt_dist: Union[Callable, str] = hp.uniform verbose: bool = True variacne_generator: Callable[[Structure], list[float]] = average_edge_variance diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index 508b96163..ff9b49f5a 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -56,7 +56,7 @@ def __init__( self.eval_n_jobs: int = 1 if opt_params.estimator.estimator else -1 self.objective_evaluate: ObjectiveEvaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) self.adapter: Callable = opt_params.golem_adapter - self.hyperopt_dist: Union[Callable, str] = opt_params.tuner_cfg.hyperopt_dist + self.hyperopt_distrib: Union[Callable, str] = opt_params.tuner_cfg.hyperopt_dist self.n_steps_tune: int = opt_params.tuner_cfg.n_steps_tune self.verbose: bool = opt_params.tuner_cfg.verbose self.generate_variances: VarianceGeneratorType = opt_params.tuner_cfg.variacne_generator @@ -82,19 +82,18 @@ def _generate_search_space( return { node.name: { param: { - 'hyperopt-dist': self.hyperopt_dist, + 'hyperopt-dist': self.hyperopt_distrib, 'sampling-scope': [ - val - sampling_variances[idx_], - val + sampling_variances[idx_], + sampling_variances[(idx_node * 2) + idx_coord][0], + sampling_variances[(idx_node * 2) + idx_coord][1], ], 'type': 'continuous', } - for param, val in zip( - list(graph.nodes[idx_].content['params'].keys()), - list(graph.nodes[idx_].content['params'].values()), + for idx_coord, param in enumerate( + list(graph.nodes[idx_node].content['params'].keys()), ) } - for idx_, node in enumerate(graph.nodes) + for idx_node, node in enumerate(graph.nodes) } def tune( @@ -116,7 +115,7 @@ def tune( graph = self.adapter.adapt(struct) search_space = self._generate_search_space( graph, - self.generate_variances(struct, self.domain), + self.generate_variances(struct, self.domain, self.hyperopt_distrib), ) tuner = self._get_tuner(graph, SearchSpace(search_space)) tuned_structure = tuner.tune(graph) diff --git a/gefest/core/opt/tuning/uitls.py b/gefest/core/opt/tuning/uitls.py index f1b5e9404..139578c77 100644 --- a/gefest/core/opt/tuning/uitls.py +++ b/gefest/core/opt/tuning/uitls.py @@ -1,5 +1,7 @@ from typing import Callable +from hyperopt import hp + from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.tools.fitness import Fitness @@ -27,13 +29,22 @@ def fitness_validation_wrap( if validator(struct): fitness = fitness_fun.fitness(struct) else: - fitness = 1.e42 + fitness = 1.0e42 return fitness +def _get_uniform_args(mode: float, variance: float) -> tuple[float, float]: + return (mode - variance, mode + variance) + + +def _get_norm_args(mode: float, variance: float) -> tuple[float, float]: + return (mode, variance) + + def average_edge_variance( structure: Structure, domain: Domain, + distrib: Callable, ) -> list[float]: """Generates tuning variance for each point. Variance is equal to half the average edge length of the polygon. @@ -41,10 +52,17 @@ def average_edge_variance( Returns: list[float]: list of variances for each point in structure """ + if distrib is hp.uniform: + get_args = _get_uniform_args + elif distrib is hp.normal: + get_args = _get_norm_args + else: + raise ValueError('Invalin distribution function, only hp.uniform and hp.normal allowed.') geom = domain.geometry variances = [] for poly in structure: - variances.extend( - [0.5 * geom.get_length(poly) / (len(poly) - int(geom.is_closed))] * len(poly), - ) + avg = 0.5 * geom.get_length(poly) / (len(poly) - int(geom.is_closed)) + for point in poly: + for coord in point.coords: + variances.append(get_args(coord, avg)) return variances From b70f785fcfa09c01e4b43ff1b19a5b0036cb1866 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 11 Oct 2023 14:20:58 +0300 Subject: [PATCH 19/66] minor fix sound simulator --- .../simulators/sound_wave/sound_interface.py | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index 5e4ce6bb0..782ed5d63 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -1,24 +1,21 @@ import itertools from copy import deepcopy -from typing import Any import numpy as np from numpy import ndarray from numpy.core.umath import pi from skimage.draw import polygon as skipolygon from skimage.draw import random_shapes -from tqdm import tqdm -from gefest.core.geometry import Structure from gefest.core.geometry import Structure from gefest.tools import Estimator # initial values -damping = 1 - 0.001 -ca2 = 0.5 -initial_P = 200 -max_pressure = initial_P / 2 -min_presure = -initial_P / 2 +DAMPING = 1 - 0.001 +CA2 = 0.5 +INITIAL_P = 200 +MAX_PRESSURE = INITIAL_P / 2 +MIN_PRESSURE = -INITIAL_P / 2 def generate_map(domain, structure): @@ -105,13 +102,13 @@ class SoundSimulator(Estimator): _velocities (np.array): velocity field at current iteration. """ - def __init__(self, domain, obstacle_map=None): + def __init__(self, domain, duration=200, obstacle_map=None): self.omega = 3 / (2 * pi) self.iteration = 0 self.domain = domain self.map_size = (round(1.2 * domain.max_y), round(1.2 * domain.max_x)) self.size_y, self.size_x = self.map_size - self.duration = 150 + self.duration = duration # obstacle_map handling if ( obstacle_map is not None @@ -147,11 +144,11 @@ def updateV(self): def updateP(self): """Update the pressure field based on Komatsuzaki's transition rules.""" - self.pressure -= ca2 * damping * np.sum(self._velocities, axis=2) + self.pressure -= CA2 * DAMPING * np.sum(self._velocities, axis=2) def step(self): """Perform a simulation step, upadting the wind an pressure fields.""" - self.pressure[self.s_y, self.s_x] = initial_P * np.sin(self.omega * self.iteration) + self.pressure[self.s_y, self.s_x] = INITIAL_P * np.sin(self.omega * self.iteration) self.updateV() self.updateP() self.iteration += 1 @@ -176,7 +173,7 @@ def spl(self, integration_interval=60): return matrix_db def run(self): - for iteration in tqdm(range(self.duration)): + for iteration in range(self.duration): self.pressure_hist[iteration] = deepcopy(self.pressure) self.step() From 34c60e7a2e35466e1fd4d012757a291a55d0641b Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 12 Oct 2023 13:02:00 +0300 Subject: [PATCH 20/66] fix tuner timeout --- gefest/core/configs/tuner_params.py | 1 + gefest/core/opt/tuning/tuner.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index 5346de1f5..3761cffb8 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -18,6 +18,7 @@ class TunerParams(BaseModel): hyperopt_dist: Union[Callable, str] = hp.uniform verbose: bool = True variacne_generator: Callable[[Structure], list[float]] = average_edge_variance + timeout_minutes: int = 60 @field_validator('hyperopt_dist') def hyperopt_fun_validate(cls, value): diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index ff9b49f5a..7d357ba7b 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -1,3 +1,4 @@ +from datetime import timedelta from enum import Enum from functools import partial from typing import Callable, Union @@ -59,6 +60,7 @@ def __init__( self.hyperopt_distrib: Union[Callable, str] = opt_params.tuner_cfg.hyperopt_dist self.n_steps_tune: int = opt_params.tuner_cfg.n_steps_tune self.verbose: bool = opt_params.tuner_cfg.verbose + self.timeout = timedelta(minutes=opt_params.tuner_cfg.timeout_minutes) self.generate_variances: VarianceGeneratorType = opt_params.tuner_cfg.variacne_generator def _get_tuner( @@ -72,6 +74,7 @@ def _get_tuner( adapter=self.adapter, iterations=self.n_steps_tune, n_jobs=self.eval_n_jobs, + timeout=self.timeout, ) def _generate_search_space( From cd749d3097d3a205a20bdb2c06d80606fd4d16f8 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 13 Oct 2023 16:03:08 +0300 Subject: [PATCH 21/66] simple surrogate case --- zsurrogate.py | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 zsurrogate.py diff --git a/zsurrogate.py b/zsurrogate.py new file mode 100644 index 000000000..7f0c91ae6 --- /dev/null +++ b/zsurrogate.py @@ -0,0 +1,265 @@ +from functools import partial + +import pandas as pd +from examples.synthetic_graph_evolution.experiment_setup import run_experiments +from examples.synthetic_graph_evolution.generators import generate_labeled_graph +from golem.core.adapter.adapter import BaseOptimizationAdapter +from golem.core.optimisers.genetic.gp_params import GPAlgorithmParameters +from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum +from golem.core.optimisers.graph import OptGraph, OptNode + +from golem.core.optimisers.meta.surrogate_optimizer import SurrogateEachNgenOptimizer +from golem.core.optimisers.objective import Objective +from golem.core.optimisers.optimization_parameters import GraphRequirements +from golem.core.optimisers.optimizer import GraphGenerationParams +from golem.core.optimisers.random_graph_factory import RandomGraphFactory + +from gefest.core.algs.geom.validation import * +from gefest.core.algs.postproc.resolve_errors import Rules, postprocess, validate +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.geometry import Structure +from gefest.core.geometry.datastructs.point import Point +from gefest.core.geometry.datastructs.polygon import Polygon +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.geometry.utils import get_random_structure +from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.core.opt.operators.crossovers import ( + panmixis, + polygon_level_crossover, + structure_level_crossover, +) +from gefest.core.opt.operators.mutations import ( + add_point, + add_poly, + drop_point, + drop_poly, + mutate_structure, + pos_change_point_mutation, + resize_poly, + rotate_poly, +) +from gefest.core.structure.prohibited import create_prohibited +from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( + SoundSimulator, + generate_map, +) +from gefest.tools.fitness import Fitness +from gefest.tools.samplers.sampler import Sampler + +# pre domain params +grid_resolution_x = 300 # Number of points on x-axis +grid_resolution_y = 300 # Number of points on y-axis +coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid +coord_Y = np.linspace(20, 100, grid_resolution_y + 1) # Y coordinate for spatial grid +grid = [grid_resolution_x, grid_resolution_y] # points grid +fixed_area = [[[45, 55], [55, 55], [55, 45], [45, 45], [45, 55]]] + +# domain configuration +geometry = Geometry2D(is_closed=True, is_convex=True) +prohibited = create_prohibited(1, [], [], fixed_area=fixed_area) +domain = Domain( + allowed_area=[ + (min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y)), + ], + geometry=geometry, + max_poly_num=5, + min_poly_num=1, + max_points_num=30, + min_points_num=20, + prohibited_area=prohibited, + polygon_side=0.0001, +) + + +def poly_from_comsol_txt(path='figures/bottom_square.txt'): + """ + + Args: + path: path to txt file with comsol points + + Returns: + + """ + res = pd.read_csv(path, sep=' ', header=None) + points = [[int(round(res.iloc[i, 0], 2)), int(round(res.iloc[i, 1], 2))] for i in res.index] + points = [Point(i[0], i[1]) for i in np.array(points)] + poly = Polygon(points=points) + struct = Structure(polygons=[poly]) + return struct + + +class SoundFieldFitness(Fitness): + def __init__(self, domain, estimator, n_jobs, path_best_struct=None): + super().__init__(domain, estimator) + self.path_best_struct = path_best_struct + self.n_jobs = n_jobs + if self.path_best_struct is None: + print('please, set up the best spl matrix into configuration') + print('the best structure will be generated randomly') + rnd_structure = get_random_structure(domain) + best_spl = generate_map(domain, rnd_structure) + else: + best_structure = poly_from_comsol_txt(path_best_struct) + best_spl = self.estimator(best_structure) + best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) + + self.best_spl = best_spl + + def fitness(self, ind: Structure): + spl = self.estimator(ind) + current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) + l_f = np.sum(np.abs(self.best_spl - current_spl)) / (120 * 120) + return l_f + + +path_to_init_figure = f'figures/bottom_square.txt' +estimator = SoundFieldFitness( + domain, + SoundSimulator(domain, 10), + -1, + 'F:\\Git_Repositories\\gef_ref\\GEFEST\\cases\\sound_waves\\figures\\bottom_square.txt', +) + + +# RandomGraphFactory sampler wrap +class StructFactory(RandomGraphFactory): + """Simple GEFEST sampler wrap for GOLEM RandomGraphFactory compatibility.""" + + def __init__( + self, + sampler: Sampler, + adapter: BaseOptimizationAdapter, + ): + self.sampler = sampler + self.adapter = adapter + + def __call__(self, *args, **kwargs) -> OptGraph: + samples = self.sampler(1) + return self.adapter(samples[0]) + + +if __name__ == '__main__': + + opt_params = OptimizationParams( + crossovers=[ + partial(polygon_level_crossover, domain=domain), + partial(structure_level_crossover, domain=domain), + ], + crossover_each_prob=[0.0, 1.0], + mutations=[ + rotate_poly, + resize_poly, + add_point, + drop_point, + add_poly, + drop_poly, + pos_change_point_mutation, + ], + mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.00, 0.00, 0.25], + pair_selector=panmixis, + postprocess_attempts=3, + domain=domain, + postprocessor=postprocess, + estimator=estimator, + postprocess_rules=[ + Rules.not_out_of_bounds.value, + Rules.not_closed_polygon.value, + Rules.not_self_intersects.value, + Rules.not_too_close_polygons.value, + Rules.not_overlaps_prohibited.value, + Rules.not_too_close_points.value, + ], + extra=3, + n_jobs=1, + golem_adapter=StructureAdapter, + tuner_cfg=None, + n_steps=30, + pop_size=10, + log_dir='saved_pop', + run_name='test', + ) + + objective = Objective( + quality_metrics={ + type(opt_params.estimator).__name__: opt_params.estimator.fitness, + }, + ) + + requirements = GraphRequirements( + early_stopping_timeout=5, + early_stopping_iterations=1000, + keep_n_best=4, + # timeout=timeout, + keep_history=True, + num_of_generations=opt_params.n_steps, + n_jobs=opt_params.n_jobs, + history_dir='surrogate_logs', + ) + + ggp = GraphGenerationParams( + adapter=opt_params.golem_adapter, + rules_for_constraint=[ + partial(validate, rules=opt_params.postprocess_rules, domain=opt_params.domain), + ], + random_graph_factory=StructFactory(opt_params.sampler, opt_params.golem_adapter), + ) + + pop = list(map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size))) + + def fake_crossover(struct1, struct2, *args, **kwargs): + return struct1, struct2 + + ######################################## + class MutationWrap: + def __init__(self, mutations, mutation_chance, mutations_probs, domain): + self.mutations = mutations + self.mutation_chance = mutation_chance + self.mutations_probs = mutations_probs + self.domain = domain + + def __call__(self, struct, **kwargs): + return mutate_structure( + structure=struct, + mutations=self.mutations, + mutation_chance=self.mutation_chance, + mutations_probs=self.mutations_probs, + domain=self.domain, + ) + + gpparams = GPAlgorithmParameters( + multi_objective=False, + genetic_scheme_type=GeneticSchemeTypesEnum.generational, + ######################################## + mutation_types=[ + MutationWrap( + mutations=[mut], + mutation_chance=opt_params.mutation_prob, + mutations_probs=[1], + domain=domain, + ) + for mut in opt_params.mutations + ], + ######################################## + crossover_types=[fake_crossover], + pop_size=opt_params.pop_size, + max_pop_size=int(opt_params.pop_size * 1.5), + crossover_prob=opt_params.crossover_prob, + mutation_prob=1, + ) + + surrogate = SurrogateEachNgenOptimizer( + objective=objective, + initial_graphs=pop, + requirements=requirements, + graph_generation_params=ggp, + graph_optimizer_params=gpparams, + # surrogate_model=, # random + surrogate_each_n_gen=8, + ) + + surrogate.optimise(objective=objective) From 9d5868a57418bbeda42df31e68e605a1fd24f29d Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 18 Oct 2023 13:06:24 +0300 Subject: [PATCH 22/66] add surrogate optimizer, fix operations for GOLEM compatibility --- gefest/core/algs/postproc/resolve_errors.py | 34 +++++--- gefest/core/configs/optimization_params.py | 12 ++- gefest/core/geometry/geometry_2d.py | 3 +- gefest/core/geometry/utils.py | 3 +- .../opt/adapters/configuration_mapping.py | 79 +++++++++++++++++++ gefest/core/opt/adapters/factories.py | 55 ++++--------- gefest/core/opt/adapters/operator.py | 43 ++++++++++ gefest/core/opt/operators/crossovers.py | 51 ++++++++++-- gefest/core/opt/operators/mutations.py | 42 ++++++---- gefest/core/opt/strategies/__init__.py | 2 + gefest/core/opt/strategies/crossover.py | 33 +++++--- gefest/core/opt/strategies/mutation.py | 27 ++++--- gefest/core/structure/prohibited.py | 6 +- gefest/core/utils/functions.py | 19 +---- gefest/core/utils/parallel_manager.py | 23 ++++-- gefest/tools/optimizers/GA/base_GA.py | 6 +- .../optimizers/golem_optimizer/surrogate.py | 35 ++++++++ 17 files changed, 343 insertions(+), 130 deletions(-) create mode 100644 gefest/core/opt/adapters/configuration_mapping.py create mode 100644 gefest/core/opt/adapters/operator.py create mode 100644 gefest/core/opt/strategies/__init__.py create mode 100644 gefest/tools/optimizers/golem_optimizer/surrogate.py diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/algs/postproc/resolve_errors.py index fa90fa0db..ae52472c4 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/algs/postproc/resolve_errors.py @@ -211,10 +211,12 @@ def validate( geom = domain.geometry if domain.geometry.is_closed: - logger.warning("There is no errors if no construction. NotImplemented validation and fix.") + # logger.warning("There is no errors if no construction. NotImplemented validation and fix.") + pass else: - from shapely.plotting import plot_polygon, plot_line from matplotlib import pyplot as plt + from shapely.plotting import plot_line, plot_polygon + prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) prohib = unary_union(prohib) poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) @@ -237,23 +239,25 @@ def correct( if domain.geometry.is_closed: raise NotImplementedError() else: - from shapely.plotting import plot_polygon, plot_line from matplotlib import pyplot as plt + from shapely.plotting import plot_line, plot_polygon + prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) # for g in prohib.geoms: - # plot_polygon(g) + # plot_polygon(g) # plt.show(block=True) prohib = unary_union(prohib) # for g in prohib.geoms: # plot_polygon(g) - + poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) - + # plot_line(poly) # plt.show(block=True) if poly.intersects(prohib): res = poly.difference(prohib.buffer(0.001)) - from shapely.geometry import MultiPoint, LineString, GeometryCollection + from shapely.geometry import GeometryCollection, LineString, MultiPoint + if isinstance(res, (MultiPoint, LineString)): res = GeometryCollection(res) parts = [g for g in res.geoms] @@ -395,17 +399,29 @@ def validate( for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): for idx_, _ in enumerate(structure): if not rule.validate(structure, idx_, domain): - logger.info(f'{rule.__class__.__name__} final fail') + # logger.info(f'{rule.__class__.__name__} final fail') return False for rule in (rule for rule in rules if isinstance(rule, StructureRule)): if not rule.validate(structure, domain): - logger.info(f'{rule.__class__.__name__} final fail') + # logger.info(f'{rule.__class__.__name__} final fail') return False return True +def apply_postprocess( + structures: Union[Structure, list[Structure]], + rules: list[Union[StructureRule, PolygonRule]], + domain: Domain, + attempts: int = 3, +) -> list[Union[Structure, None]]: + if not isinstance(structures, (list, tuple)): + structures = [structures] + post_processed = [postprocess(struct, rules, domain, attempts) for struct in structures] + return post_processed + + @logger.catch def postprocess( structure: Structure, diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 055d0d470..2b2d8ad9b 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -13,8 +13,6 @@ from gefest.core.opt.adapters.structure import StructureAdapter from gefest.core.opt.operators.crossovers import panmixis from gefest.core.opt.operators.selections import tournament_selection -from gefest.core.opt.strategies.crossover import CrossoverStrategy -from gefest.core.opt.strategies.mutation import MutationStrategy from gefest.core.utils.logger import LogDispatcher from gefest.tools.fitness import Fitness from gefest.tools.samplers.standard.standard import StandardSampler @@ -32,8 +30,8 @@ class OptimizationParams(BaseModel): sampler: Callable = StandardSampler postprocessor: Callable = postprocess postprocess_rules: list[Union[PolygonRule, StructureRule]] - mutation_strategy: Callable = MutationStrategy - crossover_strategy: Callable = CrossoverStrategy + mutation_strategy: str = 'MutationStrategy' + crossover_strategy: str = 'CrossoverStrategy' postprocess_attempts: int = 3 mutation_prob: float = 0.6 crossover_prob: float = 0.6 @@ -41,6 +39,8 @@ class OptimizationParams(BaseModel): crossover_each_prob: Optional[list[float]] = None extra: int = 5 n_jobs: Optional[int] = -1 + early_stopping_timeout: int = 60 + early_stopping_iterations: int = 1000 golem_adapter: Callable = StructureAdapter tuner_cfg: Optional[TunerParams] = None log_dir: str = 'logs' @@ -49,15 +49,13 @@ class OptimizationParams(BaseModel): @model_validator(mode='after') def create_classes_instances(self): - self.crossovers = [partial(fun, domain=self.domain) for fun in self.crossovers] self.postprocessor = partial( self.postprocessor, domain=self.domain, rules=self.postprocess_rules, + attempts=self.postprocess_attempts, ) self.sampler = self.sampler(opt_params=self) - self.crossover_strategy = self.crossover_strategy(opt_params=self) - self.mutation_strategy = self.mutation_strategy(opt_params=self) self.golem_adapter = self.golem_adapter(self.domain) self.log_dispatcher = self.log_dispatcher(self.log_dir, self.run_name) diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index e6c6c949b..d2039fca6 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -120,7 +120,7 @@ def get_angle( u = array([vector1[1].x - vector1[0].x, vector1[1].y - vector1[0].y]) v = array([vector2[1].x - vector2[0].x, vector2[1].y - vector2[0].y]) if norm(v) == 0 or norm(u) == 0: - logger.critical(f"invalid vectors: {vector1}, {vector2}") + logger.critical(f'invalid vectors: {vector1}, {vector2}') c = dot(u, v) / norm(u) / norm(v) angle = arccos(clip(c, -1, 1)) return np.rad2deg(angle) @@ -315,7 +315,6 @@ def simplify(self, poly: Polygon, tolerance: float) -> Polygon: poly = compressed.buffer(tolerance * 1.05, join_style='mitre') simplified = poly.simplify(tolerance) - if isinstance(simplified, MultiPolygon): simplified = max(simplified.geoms, key=lambda p: p.area) if simplified.is_empty: diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 2b97cedee..5b71d0e6d 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -301,7 +301,8 @@ def get_selfintersection_safe_point( ) # 1.5 ?? points = [] p_area = geom.get_prohibited_geom( - domain.prohibited_area, buffer_size=domain.dist_between_polygons, + domain.prohibited_area, + buffer_size=domain.dist_between_polygons, ) for _ in range(200): point = random_polar(origin, scalefactor) diff --git a/gefest/core/opt/adapters/configuration_mapping.py b/gefest/core/opt/adapters/configuration_mapping.py new file mode 100644 index 000000000..6497c61e2 --- /dev/null +++ b/gefest/core/opt/adapters/configuration_mapping.py @@ -0,0 +1,79 @@ +from functools import partial + +from golem.core.optimisers.adaptive.operator_agent import MutationAgentTypeEnum +from golem.core.optimisers.genetic.gp_params import GPAlgorithmParameters +from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum +from golem.core.optimisers.optimization_parameters import GraphRequirements +from golem.core.optimisers.optimizer import GraphGenerationParams + +from gefest.core.algs.postproc.resolve_errors import validate +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.opt.adapters.factories import StructureFactory +from gefest.core.opt.adapters.operator import OperationWrap +from gefest.core.opt.operators.crossovers import crossover_structures +from gefest.core.opt.operators.mutations import mutate_structure + + +def map_into_graph_requirements( + opt_params: OptimizationParams, +) -> GraphRequirements: + return GraphRequirements( + early_stopping_timeout=opt_params.early_stopping_timeout, + early_stopping_iterations=opt_params.early_stopping_iterations, + keep_n_best=opt_params.pop_size, + keep_history=False, + num_of_generations=opt_params.n_steps, + n_jobs=opt_params.n_jobs, + history_dir=opt_params.log_dir, + ) + + +def map_into_graph_generation_params( + opt_params: OptimizationParams, +) -> GraphGenerationParams: + return GraphGenerationParams( + adapter=opt_params.golem_adapter, + rules_for_constraint=[ + partial(validate, rules=opt_params.postprocess_rules, domain=opt_params.domain), + ], + random_graph_factory=StructureFactory(opt_params.sampler, opt_params.golem_adapter), + ) + + +def map_into_gpa( + opt_params: OptimizationParams, +) -> GPAlgorithmParameters: + return GPAlgorithmParameters( + multi_objective=False, + genetic_scheme_type=GeneticSchemeTypesEnum.steady_state, + mutation_types=[ + OperationWrap( + executor=mutate_structure, + operations=[mut], + operation_chance=opt_params.mutation_prob, + operations_probs=[1], + domain=opt_params.domain, + postproc_func=opt_params.postprocessor, + postprocess_rules=opt_params.postprocess_rules, + attempts=opt_params.postprocess_attempts, + ) + for mut in opt_params.mutations + ], + crossover_types=[ + OperationWrap( + executor=crossover_structures, + operations=[opt_params.crossovers[1]], + operation_chance=opt_params.crossover_prob, + operations_probs=[1], + domain=opt_params.domain, + postproc_func=opt_params.postprocessor, + postprocess_rules=opt_params.postprocess_rules, + attempts=opt_params.postprocess_attempts, + ), + ], + pop_size=opt_params.pop_size, + max_pop_size=int(opt_params.pop_size * 1.5), + crossover_prob=opt_params.crossover_prob, + mutation_prob=1, + adaptive_mutation_type=MutationAgentTypeEnum.default, + ) diff --git a/gefest/core/opt/adapters/factories.py b/gefest/core/opt/adapters/factories.py index faa28d3a8..84789dc3a 100644 --- a/gefest/core/opt/adapters/factories.py +++ b/gefest/core/opt/adapters/factories.py @@ -1,46 +1,21 @@ -import random -from math import cos, pi, sin +from golem.core.adapter.adapter import BaseOptimizationAdapter +from golem.core.optimisers.graph import OptGraph +from golem.core.optimisers.random_graph_factory import RandomGraphFactory -from golem.core.optimisers.graph import OptNode -from golem.core.optimisers.opt_node_factory import OptNodeFactory +from gefest.tools.samplers.sampler import Sampler -from gefest.core.geometry.domain import Domain +class StructureFactory(RandomGraphFactory): + """Simple GEFEST sampler wrap for GOLEM RandomGraphFactory compatibility.""" -class SimpleGefestOptNodeFactory(OptNodeFactory): def __init__( self, - domain: Domain, - ): - self.domain = Domain - - # self._generation_radius = 1 - # if domain_allowed_area is not None: - # dx = max(domain_allowed_area, key = lambda point: point[0])[0] \ - # - min(domain_allowed_area, key = lambda point: point[0])[0] - # dy = max(domain_allowed_area, key = lambda point: point[1])[1] \ - # - min(domain_allowed_area, key = lambda point: point[1])[1] - # self._generation_radius = min(dx, dy) * 0.05 - - def exchange_node(self, node: OptNode, **kwargs) -> OptNode: - return self.get_node(node) - - def get_parent_node(self, node: OptNode, **kwargs) -> OptNode: - return self.get_node(node=node) - - def get_node(self, **kwargs) -> OptNode: - if 'node' in kwargs.keys(): - theta = random() * 2 * pi - r = random() - px = (r * cos(theta) * self._generation_radius) + kwargs['node'].content['params']['x'] - py = (r * sin(theta) * self._generation_radius) + kwargs['node'].content['params']['y'] - else: - px = int(random() * self._generation_radius) - py = int(random() * self._generation_radius) - - return OptNode( - content={ - 'name': f'pt_{px}_{py}', - 'params': {'x': px, 'y': py}, - }, - ) + sampler: Sampler, + adapter: BaseOptimizationAdapter, + ) -> None: + self.sampler = sampler + self.adapter = adapter + + def __call__(self, *args, **kwargs) -> OptGraph: + samples = self.sampler(1) + return self.adapter(samples[0]) diff --git a/gefest/core/opt/adapters/operator.py b/gefest/core/opt/adapters/operator.py new file mode 100644 index 000000000..3e75201f5 --- /dev/null +++ b/gefest/core/opt/adapters/operator.py @@ -0,0 +1,43 @@ +from functools import partial + + +class OperationWrap: + def __init__( + self, + executor, + operations, + operation_chance, + operations_probs, + domain, + postproc_func, + postprocess_rules, + attempts, + ): + self.executor = executor + self.operations = operations + self.operation_chance = operation_chance + self.operations_probs = operations_probs + self.domain = domain + self.postproc_func = postproc_func + self.postprocess_rules = postprocess_rules + self.attempts = attempts + + def __repr__(self): + return f'{self.operations[0].__name__}' + + def __call__(self, *args, **kwargs): + executor = partial( + self.executor, + operations=self.operations, + operation_chance=self.operation_chance, + operations_probs=self.operations_probs, + domain=self.domain, + **kwargs, + ) + operation_result = executor(*args) + corrected = self.postproc_func( + operation_result, + ) + if executor.func.__name__ == 'mutate_structure': + corrected = corrected[0] + return corrected diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index e5461e0c2..1f8159969 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -1,7 +1,7 @@ import copy import random from itertools import product -from multiprocessing import Pool +from typing import Callable import numpy as np from loguru import logger @@ -11,6 +11,43 @@ from gefest.core.utils import where +def crossover_structures( + structure1: Structure, + structure2: Structure, + domain: Domain, + operations: list[Callable], + operation_chance: float, + operations_probs: list[int], + **kwargs, +) -> Structure: + """Apply mutation random mutation from list + for each polygons in structure. + + Args: + structure (Structure): Structure to mutate. + domain (Domain): Task domain. + mutations (list[Callable]): List of mutation operations to choose. + mutation_chance (float): Chance to mutate polygon. + mutations_probs (list[int]): Probablilites of each mutation operation. + + Returns: + Structure: Mutated structure. It is not guaranteed + that the resulting structure will be valid or changed. + """ + s1, s2 = copy.deepcopy(structure1), copy.deepcopy(structure2) + + chosen_crossover = np.random.choice( + a=operations, + size=1, + p=operations_probs, + ) + new_structure = chosen_crossover[0](s1, s2, domain) + if not new_structure: + logger.warning(f'None out: {chosen_crossover[0].__name__}') + + return new_structure + + # pairs for crossover selection def panmixis(pop: list[Structure]) -> list[tuple[Structure, Structure]]: np.random.shuffle(list(pop)) @@ -19,11 +56,12 @@ def panmixis(pop: list[Structure]) -> list[tuple[Structure, Structure]]: # best indivisual selection def structure_level_crossover( - operands: tuple[Structure, Structure], + s1: Structure, + s2: Structure, domain: Domain, **kwargs, ): - s1, s2 = operands + s1, s2 = copy.deepcopy(s1), copy.deepcopy(s2) polygons1 = s1.polygons polygons2 = s2.polygons crossover_point = np.random.randint( @@ -44,17 +82,18 @@ def structure_level_crossover( new_structure = Structure(polygons=result) - return new_structure + return (new_structure,) @logger.catch def polygon_level_crossover( - operands: tuple[Structure, Structure], + s1: Structure, + s2: Structure, domain: Domain, **kwargs, ): geom = domain.geometry - s1, s2 = copy.deepcopy(operands) + s1, s2 = copy.deepcopy(s1), copy.deepcopy(s2) intersected = False split_angle = 0 pairs_dists = [ diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 850449791..a481731fa 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -6,7 +6,6 @@ from shapely.geometry import LineString, MultiPoint from shapely.geometry import Point as SPoint -from gefest.core.algs.postproc.resolve_errors import postprocess from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.domain import Domain from gefest.core.geometry.utils import get_random_poly, get_selfintersection_safe_point @@ -15,9 +14,10 @@ def mutate_structure( structure: Structure, domain: Domain, - mutations: list[Callable], - mutation_chance: float, - mutations_probs: list[int], + operations: list[Callable], + operation_chance: float, + operations_probs: list[int], + **kwargs, ) -> Structure: """Apply mutation random mutation from list for each polygons in structure. @@ -37,11 +37,11 @@ def mutate_structure( for _ in enumerate(range(len(new_structure))): idx_ = np.random.randint(0, len(new_structure)) - if np.random.random() < mutation_chance: + if np.random.random() < operation_chance: chosen_mutation = np.random.choice( - a=mutations, + a=operations, size=1, - p=mutations_probs, + p=operations_probs, ) new_structure = chosen_mutation[0](new_structure, domain, idx_) if not new_structure: @@ -55,6 +55,7 @@ def rotate_poly( new_structure: Structure, domain: Domain, idx_: int = None, + **kwargs, ) -> Structure: angle = float(np.random.randint(-120, 120)) new_structure[idx_] = domain.geometry.rotate_poly( @@ -69,6 +70,7 @@ def drop_poly( new_structure: Structure, domain: Domain, idx_: int = None, + **kwargs, ) -> Structure: if len(new_structure.polygons) > (domain.min_poly_num + 1): idx_ = idx_ if idx_ else int(np.random.randint(0, len(new_structure))) @@ -83,6 +85,7 @@ def add_poly( new_structure: Structure, domain: Domain, idx_: int = None, + **kwargs, ) -> Structure: if len(new_structure) < (domain.max_poly_num - 1): new_poly = get_random_poly(new_structure, domain) @@ -96,6 +99,7 @@ def resize_poly( new_structure: Structure, domain: Domain, idx_: int = None, + **kwargs, ) -> Structure: new_structure[idx_] = domain.geometry.resize_poly( new_structure[idx_], @@ -111,6 +115,7 @@ def _get_convex_safe_area( domain: Domain, point_left_idx: int, point_right_idx: int, + **kwargs, ) -> Polygon: geom = domain.geometry if poly[0] == poly[-1]: @@ -212,20 +217,17 @@ def _get_convex_safe_area( mid_points = [Point(p.x, p.y) for p in slice_points.geoms] else: mid_points = [Point(p.x, p.y) for p in slice_points.coords] - base_area = [ left_cut[1], *mid_points, right_cut[1], ] - base_area = [ Point(p[0], p[1]) for p in geom._poly_to_shapely_poly(Polygon(base_area)).convex_hull.exterior.coords ] else: - base_area = [ left_cut[1], geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), @@ -241,6 +243,7 @@ def pos_change_point_mutation( new_structure: Structure, domain: Domain, idx_: int = None, + **kwargs, ) -> Structure: geom = domain.geometry poly = copy.deepcopy(new_structure[idx_]) @@ -310,7 +313,12 @@ def pos_change_point_mutation( @logger.catch -def add_point(new_structure: Structure, domain: Domain, idx_: int = None): +def add_point( + new_structure: Structure, + domain: Domain, + idx_: int = None, + **kwargs, +): if new_structure is None: logger.error('None struct') @@ -373,8 +381,9 @@ def add_point(new_structure: Structure, domain: Domain, idx_: int = None): logger.warning('Empty movment area') return new_structure else: - logger.warning('Not implemented select adjacent to poly movment_area part.') - logger.warning('Not implemented number of parts check. If there is 1 part - ok.') + pass + # logger.warning('Not implemented select adjacent to poly movment_area part.') + # logger.warning('Not implemented number of parts check. If there is 1 part - ok.') point = geom.get_random_point_in_poly(movment_area) if point: if mutate_point_idx + 1 < len(poly): @@ -397,7 +406,12 @@ def add_point(new_structure: Structure, domain: Domain, idx_: int = None): @logger.catch -def drop_point(new_structure: Structure, domain: Domain, idx_: int = None): +def drop_point( + new_structure: Structure, + domain: Domain, + idx_: int = None, + **kwargs, +): polygon_to_mutate = new_structure[idx_] if domain.geometry.is_closed: diff --git a/gefest/core/opt/strategies/__init__.py b/gefest/core/opt/strategies/__init__.py new file mode 100644 index 000000000..550c2ffcf --- /dev/null +++ b/gefest/core/opt/strategies/__init__.py @@ -0,0 +1,2 @@ +from .crossover import CrossoverStrategy +from .mutation import MutationStrategy diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index 54271f976..3e91a6142 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -2,24 +2,26 @@ from functools import partial from typing import Callable -import numpy as np - +from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure -from gefest.core.utils import chained_call, where +from gefest.core.opt.operators.crossovers import crossover_structures +from gefest.core.utils import where from gefest.core.utils.parallel_manager import BaseParallelDispatcher from .strategy import Strategy class CrossoverStrategy(Strategy): - def __init__(self, opt_params): + def __init__(self, opt_params: OptimizationParams): self.prob = opt_params.crossover_prob self.crossovers = opt_params.crossovers - self.each_prob = opt_params.crossover_each_prob + self.crossovers_probs = opt_params.crossover_each_prob + self.crossover_chacne = opt_params.crossover_prob self.postprocess: Callable = opt_params.postprocessor self.parent_pairs_selector: Callable = opt_params.pair_selector self.sampler: Callable = opt_params.sampler + self.domain = opt_params.domain self.postprocess_attempts = opt_params.postprocess_attempts self._pm = BaseParallelDispatcher(opt_params.n_jobs) @@ -28,18 +30,27 @@ def __call__(self, pop: list[Structure]) -> list[Structure]: def crossover(self, pop: list[Structure]): - chosen_crossover = np.random.choice( - a=self.crossovers, - size=1, - p=self.each_prob, - )[0] + crossover = partial( + crossover_structures, + domain=self.domain, + operations=self.crossovers, + operation_chance=self.crossover_chacne, + operations_probs=self.crossovers_probs, + ) + pairs = copy.deepcopy(self.parent_pairs_selector(pop)) new_generation = self._pm.exec_parallel( - func=chained_call(chosen_crossover, partial(self.postprocess, attempts=3)), + func=crossover, arguments=pairs, use=True, ) + new_generation = self._pm.exec_parallel( + func=self.postprocess, + arguments=[(ind,) for ind in new_generation], + use=True, + flatten=True, + ) idx_failed = where(new_generation, lambda ind: ind is None) if len(idx_failed) > 0: diff --git a/gefest/core/opt/strategies/mutation.py b/gefest/core/opt/strategies/mutation.py index 64e934a28..259556d7f 100644 --- a/gefest/core/opt/strategies/mutation.py +++ b/gefest/core/opt/strategies/mutation.py @@ -2,21 +2,22 @@ from functools import partial from typing import Callable +from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure from gefest.core.opt.operators.mutations import mutate_structure -from gefest.core.utils import chained_call, where +from gefest.core.utils import where from gefest.core.utils.parallel_manager import BaseParallelDispatcher from .strategy import Strategy class MutationStrategy(Strategy): - def __init__(self, opt_params): + def __init__(self, opt_params: OptimizationParams): self.domain = opt_params.domain - self.mutation_prob = opt_params.mutation_prob + self.mutation_chance = opt_params.mutation_prob self.mutations = opt_params.mutations - self.each_prob = opt_params.mutation_each_prob + self.mutations_probs = opt_params.mutation_each_prob self.postprocess: Callable = opt_params.postprocessor self.sampler = opt_params.sampler self.postprocess_attempts = opt_params.postprocess_attempts @@ -30,16 +31,24 @@ def mutate(self, pop: list[Structure]): mutator = partial( mutate_structure, domain=self.domain, - mutations=self.mutations, - mutation_chance=self.mutation_prob, - mutations_probs=self.each_prob, + operations=self.mutations, + operation_chance=self.mutation_chance, + operations_probs=self.mutations_probs, ) pop_ = copy.deepcopy(pop) mutated_pop = self._pm.exec_parallel( - func=chained_call(mutator, partial(self.postprocess, attempts=3)), - arguments=pop_, + func=mutator, + arguments=[(ind,) for ind in pop_], use=True, + flatten=False, + ) + + mutated_pop = self._pm.exec_parallel( + func=partial(self.postprocess, attempts=3), + arguments=[(ind,) for ind in mutated_pop], + use=True, + flatten=True, ) idx_failed = where(mutated_pop, lambda ind: ind is None) diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py index 3fb99883d..0f835b863 100644 --- a/gefest/core/structure/prohibited.py +++ b/gefest/core/structure/prohibited.py @@ -24,7 +24,9 @@ def create_prohibited( """ prohibited_area = [] if targets is not None: - target_polygons = [list(Point(target).buffer(points_radius).exterior.coords) for target in targets] + target_polygons = [ + list(Point(target).buffer(points_radius).exterior.coords) for target in targets + ] target_points = [[G_Point(p[0], p[1]) for p in target] for target in target_polygons] poly_targets = [Polygon(id_=PolyID.PROH_TARG, points=points) for points in target_points] prohibited_area += poly_targets @@ -39,6 +41,6 @@ def create_prohibited( poly_area = [Polygon(id_=PolyID.PROH_AREA, points=points) for points in fix_area] prohibited_area += poly_area - struct = Structure(prohibited_area) + struct = Structure(polygons=prohibited_area) return struct diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index 91b43e364..82bccc306 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -1,9 +1,9 @@ +import json from functools import reduce from pathlib import Path from typing import Any, Callable from loguru import logger -import json from gefest.core.geometry import Structure @@ -46,20 +46,3 @@ def where( list[int]: _description_ """ return [idx for idx, ind in enumerate(sequence) if mask_rule(ind)] - - -def chained_call(*funcs): - _initial_missing = object() - - def several_functions_chained_call(args=_initial_missing): - if args is _initial_missing: - return reduce(lambda r, f: f(r), funcs[1::], funcs[0]()) - return reduce(lambda r, f: f(r), funcs, args) - - def single_function_call(args=_initial_missing): - if args is _initial_missing: - return funcs[0]() - return funcs[0](args) - - call = several_functions_chained_call if len(funcs) > 1 else single_function_call - return call diff --git a/gefest/core/utils/parallel_manager.py b/gefest/core/utils/parallel_manager.py index 7b4ab8ea8..daa5a2320 100644 --- a/gefest/core/utils/parallel_manager.py +++ b/gefest/core/utils/parallel_manager.py @@ -1,3 +1,4 @@ +from ctypes import Union from typing import Any, Callable from joblib import Parallel, cpu_count, delayed @@ -8,10 +9,13 @@ class BaseParallelDispatcher: """Provides interface for parallel execution.""" def __init__(self, n_jobs: int = -1): - self.n_jobs = self._determine_n_jobs(n_jobs) + """Inits parallel dispatcher. - # def __call__(self, *args, **kwargs) -> list[Any]: - # return self.exec_parallel(*args, **kwargs) + Args: + n_jobs (int, optional): Set 0 to debug withou joblib. + For other values see joblib docs. Defaults to -1. + """ + self.n_jobs = self._determine_n_jobs(n_jobs) def _determine_n_jobs(self, n_jobs: int = -1): if n_jobs > cpu_count() or n_jobs == -1: @@ -22,29 +26,32 @@ def _determine_n_jobs(self, n_jobs: int = -1): def exec_parallel( self, func: Callable, - arguments: list[Any], + arguments: list[tuple[Any]], use: bool = True, + flatten: bool = True, ) -> list[Any]: """Executes provided function in parallel. Args: func (Callable): Function to execute. - arguments (list[Any]): Each element in list is arguments for separate func call. + arguments (list[tuple[Any]]): Each tuple in list is *args for separate func call. use (bool, optional): If True, each arg in args will be used as func argument, otherwise func will be called without arguments len(args) times. Defaults to True. - + flatten (bool): If true, makes flatten list from function ouput lists. Returns: list[Any] """ if self.n_jobs == 0: if use: - result = [func(arg) for arg in arguments] + result = [func(*args) for args in arguments] else: result = [func() for _ in arguments] else: parallel = Parallel(n_jobs=self.n_jobs, verbose=0, pre_dispatch='2*n_jobs') if use: - result = parallel(delayed(func)(arg) for arg in arguments) + result = parallel(delayed(func)(*args) for args in arguments) else: result = parallel(delayed(func)() for _ in arguments) + if flatten: + result = [item for separate_output in result for item in separate_output] return result diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index 46ca0b443..c120874a2 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -4,7 +4,7 @@ from tqdm import tqdm from gefest.core.geometry import Structure -from gefest.core.opt.strategies.strategy import Strategy +from gefest.core.opt import strategies from gefest.core.utils.logger import LogDispatcher from gefest.tools.optimizers.optimizer import Optimizer @@ -17,8 +17,8 @@ def __init__( ): super().__init__(opt_params.log_dispatcher) self.opt_params = opt_params - self.crossover: Strategy = opt_params.crossover_strategy - self.mutation: Strategy = opt_params.mutation_strategy + self.crossover = getattr(strategies, opt_params.crossover_strategy)(opt_params=opt_params) + self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) self.sampler: Callable = opt_params.sampler self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator self.selector: Callable = opt_params.selector diff --git a/gefest/tools/optimizers/golem_optimizer/surrogate.py b/gefest/tools/optimizers/golem_optimizer/surrogate.py new file mode 100644 index 000000000..e2111fd18 --- /dev/null +++ b/gefest/tools/optimizers/golem_optimizer/surrogate.py @@ -0,0 +1,35 @@ +from golem.core.optimisers.meta.surrogate_optimizer import SurrogateEachNgenOptimizer +from golem.core.optimisers.objective import Objective + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.opt.adapters.configuration_mapping import ( + map_into_gpa, + map_into_graph_generation_params, + map_into_graph_requirements, +) +from gefest.tools.optimizers.optimizer import Optimizer + + +class SurrogateOptimizer(Optimizer): + def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: + super().__init__(opt_params.log_dispatcher, **kwargs) + self.objective = Objective( + quality_metrics={ + type(opt_params.estimator).__name__: opt_params.estimator.fitness, + }, + ) + self.requirements = map_into_graph_requirements(opt_params) + self.ggp = map_into_graph_generation_params(opt_params) + self.gpa = map_into_gpa(opt_params) + pop = list(map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size))) + self.__surrogate_opt = SurrogateEachNgenOptimizer( + objective=self.objective, + initial_graphs=pop, + requirements=self.requirements, + graph_generation_params=self.ggp, + graph_optimizer_params=self.gpa, + surrogate_each_n_gen=5, # make surrogate config + ) + + def optimize(self): + return self.__surrogate_opt.optimise(self.objective) From 348aa589b9341af3b70997acb24aaff30f512670 Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Thu, 5 Oct 2023 20:15:12 +0300 Subject: [PATCH 23/66] Changed SoundFieldFitness in main. Shafle options in optimizer in BaseGA. Update requirements (polygenerator) --- cases/sound_waves/main.py | 29 +++++++++++++++++++++++------ requirements.txt | 4 +++- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/cases/sound_waves/main.py b/cases/sound_waves/main.py index 9bcc560fa..383af85d4 100644 --- a/cases/sound_waves/main.py +++ b/cases/sound_waves/main.py @@ -53,6 +53,22 @@ def load_file_from_path(path: str): if __name__ == '__main__': + class SoundSimulator_(SoundSimulator): + def __init__(self, domain, obstacle_map=None): + super().__init__(domain, obstacle_map=None) + self.duration = 150 + self.pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) + if ( + obstacle_map is not None + and (obstacle_map.shape[0], obstacle_map.shape[1]) == self.map_size + ): + print("** Map Accepted **") + self.obstacle_map = obstacle_map + elif obstacle_map is not None and obstacle_map.shape != self.map_size: + print("** Map size denied **") + self.obstacle_map = np.zeros((self.size_y, self.size_x)) + else: + self.obstacle_map = np.zeros((self.size_y, self.size_x)) # in the future all model can be loaded from configs @@ -86,9 +102,9 @@ def load_file_from_path(path: str): # fitness function class SoundFieldFitness(Fitness): def __init__(self, domain, estimator, path_best_struct=None): - super().__init__(domain, SoundSimulator(domain=domain)) + super().__init__(domain) self.path_best_struct = path_best_struct - + self.estimator=estimator if self.path_best_struct is None: print('please, set up the best spl matrix into configuration') print('the best structure will be generated randomly') @@ -111,7 +127,7 @@ def fitness(self, ind: Structure): # fitness estimator estimator = SoundFieldFitness( domain, - SoundSimulator(domain, None), + SoundSimulator_(domain, None), None, ) @@ -121,6 +137,7 @@ def fitness(self, ind: Structure): partial(polygon_level_crossover, domain=domain), partial(structure_level_crossover, domain=domain), ], + crossover_prob=0.3, crossover_each_prob=[0.0, 1.0], mutations=[ rotate_poly, @@ -145,12 +162,12 @@ def fitness(self, ind: Structure): Rules.not_overlaps_prohibited.value, Rules.not_too_close_points.value, ], - extra=3, + extra=25, n_jobs=-1, golem_adapter=StructureAdapter, tuner_cfg=tp, - n_steps=1, - pop_size=3, + n_steps=10, + pop_size=25, ) optimizer = BaseGA(opt_params) diff --git a/requirements.txt b/requirements.txt index dd8a6e6b5..d80fc292a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ cython==0.29.36 pandas==1.4.4 -numpy==1.19.4 +numpy typing==3.7.4.1 matplotlib==3.6.3 seaborn==0.9.0 @@ -20,6 +20,8 @@ PyYAML==6.0.1 moviepy==1.0.3 joblib==1.3.2 +polygenerator + flake8==6.0.0 brunette==0.2.8 isort==5.12.0 From 64e08b23e032888bd7c5e6ff113458b4d84731f3 Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Mon, 9 Oct 2023 13:47:45 +0300 Subject: [PATCH 24/66] add poly_from_point.py and bottom_square.txt --- cases/sound_waves/figures/bottom_square.txt | 5 +++++ cases/sound_waves/poly_from_point.py | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 cases/sound_waves/figures/bottom_square.txt create mode 100644 cases/sound_waves/poly_from_point.py diff --git a/cases/sound_waves/figures/bottom_square.txt b/cases/sound_waves/figures/bottom_square.txt new file mode 100644 index 000000000..68ce751e6 --- /dev/null +++ b/cases/sound_waves/figures/bottom_square.txt @@ -0,0 +1,5 @@ +95 20 off +75 20 off +75 40 off +95 40 off +95 20 off diff --git a/cases/sound_waves/poly_from_point.py b/cases/sound_waves/poly_from_point.py new file mode 100644 index 000000000..89c5f145d --- /dev/null +++ b/cases/sound_waves/poly_from_point.py @@ -0,0 +1,18 @@ +import numpy as np +from gefest.core.geometry import Point, Polygon, Structure +import pandas as pd +def poly_from_comsol_txt(path='figures/bottom_square.txt'): + """ + + Args: + path: path to txt file with comsol points + + Returns: + + """ + res = pd.read_csv(path, sep=' ', header=None) + points = [[int(round(res.iloc[i, 0], 2)), int(round(res.iloc[i, 1], 2))] for i in res.index] + points = [Point(i[0], i[1]) for i in np.array(points)] + poly = Polygon( points=points) + struct = Structure(polygons=[poly]) + return struct From 56e5c97ecd65634580371ba788cb2aee14326cab Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Wed, 18 Oct 2023 15:03:03 +0300 Subject: [PATCH 25/66] add swan_interface.py and microphone_points.py --- cases/sound_waves/main.py | 35 +++++++---- cases/sound_waves/microphone_points.py | 49 +++++++++++++++ cases/sound_waves/vizualization.py | 37 ++++++++++++ gefest/core/opt/operators/selections.py | 4 +- .../simulators/swan/swan_interface.py | 60 +++++++++++-------- .../simulators/swan/swan_model/swaninit | 2 +- 6 files changed, 147 insertions(+), 40 deletions(-) create mode 100644 cases/sound_waves/microphone_points.py create mode 100644 cases/sound_waves/vizualization.py diff --git a/cases/sound_waves/main.py b/cases/sound_waves/main.py index 383af85d4..f694cb91a 100644 --- a/cases/sound_waves/main.py +++ b/cases/sound_waves/main.py @@ -3,7 +3,7 @@ import numpy as np from hyperopt import hp - +from gefest.core.opt.operators.selections import tournament_selection,roulette_selection from gefest.core.algs.postproc.resolve_errors import Rules, postprocess from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams @@ -17,6 +17,7 @@ polygon_level_crossover, structure_level_crossover, ) +from cases.sound_waves.microphone_points import Microphone from gefest.core.opt.operators.mutations import ( add_point, add_poly, @@ -35,7 +36,8 @@ ) from gefest.tools.fitness import Fitness from gefest.tools.optimizers.GA.base_GA import BaseGA - +from pathlib import Path +from poly_from_point import poly_from_comsol_txt # pre domain params grid_resolution_x = 300 # Number of points on x-axis grid_resolution_y = 300 # Number of points on y-axis @@ -56,7 +58,7 @@ def load_file_from_path(path: str): class SoundSimulator_(SoundSimulator): def __init__(self, domain, obstacle_map=None): super().__init__(domain, obstacle_map=None) - self.duration = 150 + self.duration = 200 self.pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) if ( obstacle_map is not None @@ -86,16 +88,16 @@ def __init__(self, domain, obstacle_map=None): geometry=geometry, max_poly_num=1, min_poly_num=1, - max_points_num=30, - min_points_num=20, + max_points_num=10, + min_points_num=6, prohibited_area=prohibited, ) # tuner config tp = TunerParams( - tuner_type='iopt', - n_steps_tune=2, - sampling_variance=0.1, + tuner_type='sequential', + n_steps_tune=25, + sampling_variance=1, hyperopt_dist=hp.uniform, ) @@ -111,24 +113,30 @@ def __init__(self, domain, estimator, path_best_struct=None): rnd_structure = get_random_structure(domain) best_spl = generate_map(domain, rnd_structure) else: - best_structure = load_file_from_path(path_best_struct) + best_structure = poly_from_comsol_txt(path_best_struct) best_spl = self.estimator(best_structure) best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) - + micro = Microphone(matrix=best_spl).array() + best_spl = np.concatenate(micro[1]) self.best_spl = best_spl def fitness(self, ind: Structure): spl = self.estimator(ind) current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) + micro_spl = Microphone(matrix=current_spl).array() - l_f = np.sum(np.abs(self.best_spl - current_spl)) + spl = np.concatenate(micro_spl[1]) + lenght = len(spl) + l_f = np.sum(np.abs(self.best_spl - spl))/lenght return l_f # fitness estimator + #root_path = Path(__file__).parent.parent.parent + path_to_init_figure = f'figures/bottom_square.txt' estimator = SoundFieldFitness( domain, SoundSimulator_(domain, None), - None, + path_to_init_figure, ) # optimization params config @@ -166,8 +174,9 @@ def fitness(self, ind: Structure): n_jobs=-1, golem_adapter=StructureAdapter, tuner_cfg=tp, - n_steps=10, + n_steps=100, pop_size=25, + selector=roulette_selection ) optimizer = BaseGA(opt_params) diff --git a/cases/sound_waves/microphone_points.py b/cases/sound_waves/microphone_points.py new file mode 100644 index 000000000..116de4ded --- /dev/null +++ b/cases/sound_waves/microphone_points.py @@ -0,0 +1,49 @@ +import numpy as np + +class Microphone: + ''' + Class that contain a slice of microphone points where makes a sound measurements + ''' + def __init__(self,matrix = np.random.rand(120,120)): + self.matrix = matrix + def array(self): + + arrs =[ + # [[self.matrix[0, -1], self.matrix[120 // 2, -1], self.matrix[-1, -1]]], + [[self.matrix[0, 120 // 2], self.matrix[0, 3 * 120 // 4], self.matrix[0, -1], self.matrix[3 * 120 // 4, -1], + self.matrix[120 // 2, -1], self.matrix[120 // 4, -1], self.matrix[-1, -1], + self.matrix[-1, 3 * 120 // 4], self.matrix[-1, 120 // 2]]], + + [self.matrix[0, 64:-1][::4], self.matrix[7:-7, -1][::3], self.matrix[-1, 64:-1][::4]], + [self.matrix[0, 59:-1], self.matrix[:, -1], self.matrix[-1, 59:-1]], + self.matrix, + ] + return arrs + # def reflect_array(self): + # arrs =[ + # [[self.matrix[0, 0], self.matrix[120 // 2, 0], self.matrix[-1, 0]]], + # [[self.matrix[0, 120 // 2], self.matrix[0, 120 // 4], self.matrix[0, 0], self.matrix[3 * 120 // 4, 0], self.matrix[120 // 2, 0], self.matrix[120 // 4, 0], self.matrix[-1, 0], + # self.matrix[-1, 120 // 4], self.matrix[-1, 120 // 2]]], + # [self.matrix[0, :60],self.matrix[:,0],self.matrix[-1,:60]], + # [self.matrix[0, :60],self.matrix[:,0],self.matrix[-1,:60],self.matrix[11:109,55],self.matrix[109,55:109],self.matrix[11:109,109],self.matrix[10,55:109]] + # ] + # return arrs + # coords = {'points': [ + # #[[120, 120], [120, 120 // 2], [120, 0]], + # [[120 // 2, 120], [3 * 120 // 4, 120], [120, 120], [120, 3 * 120 // 4], [120, 120 // 2], [120, 120 // 4], + # [120, 0], [3 * 120 // 4, 0], [120 // 2, 0]], + # [[56,119],[58,119]]+[[60+top,119] for top in range (0,60,4)]+[[119,119-middle] for middle in range (0,119,4)]+[[119-bot,1] for bot in range (0,60,4)]+[[58,1],[56,1]], + # [[[110, 110],[110 ,10],[55,10],[55, 110],[110, 110]], [[60, 119], [119, 119],[119,1],[60,1]]], + # [[1,1],[1,119],[119,119],[119,1],[1,1]] + # ] + # } + +# m = Microphone(matrix = np.random.rand(120,120)) +# a =m.coords +# print(a) +# lenght = sum([len(i) for i in a[1]]) +#cnte = np.concatenate(a[-1]) +#cnte = np.concatenate(a[-1]) +# #ss = [np.concatenate(a[3]) for i in a[3]] +# print(sum([sum(i) for i in a[3]])) +# # print() \ No newline at end of file diff --git a/cases/sound_waves/vizualization.py b/cases/sound_waves/vizualization.py new file mode 100644 index 000000000..c3abfbaf3 --- /dev/null +++ b/cases/sound_waves/vizualization.py @@ -0,0 +1,37 @@ +import matplotlib.pyplot as plt +import numpy as np + +from cases.sound_waves.poly_from_point import poly_from_comsol_txt +from gefest.core.utils.functions import parse_structs,project_root + +pr_root=project_root() +#p_s = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-10_16_25_55/tuned.log')[0] +tuned = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-12_12_27_12/tuned.log')[0] +tuned_2 = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-11_12_58_51/00100.log')[-1] +tuned_1 = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-11_15_25_40/00100.log')[-1] + +grid_resolution_x = 300 # Number of points on x-axis +grid_resolution_y = 300 +coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid +coord_Y = np.linspace(20, 100, grid_resolution_y + 1) +allowed_area=[ + (min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y)), + ] +path_to_init_figure = f'figures/bottom_square.txt' +best_structure = poly_from_comsol_txt(path_to_init_figure) +d_p=tuned[0].points +tuned_p = tuned_1[0].points +tuned_2_p = tuned_2[0].points +print([i[0] for i in allowed_area]) +plt.plot([i[0] for i in allowed_area],[i[1] for i in allowed_area]) +plt.plot([p.coords[0] for p in d_p],[p.coords[1] for p in d_p],label='tuned') +plt.plot([p.coords[0] for p in tuned_p],[p.coords[1] for p in tuned_p],label=f'notTuned_1,fitness :{tuned_1.fitness[0]}') +plt.plot([p.coords[0] for p in tuned_2_p],[p.coords[1] for p in tuned_2_p],label=f'notTuned_2,fitness :{tuned_2.fitness[0]}') +plt.plot([x[0] for x in [i.coords for i in best_structure.polygons[0].points]],[x[1] for x in [i.coords for i in best_structure.polygons[0].points]],label='Init fig') +plt.legend() +plt.show() +print() \ No newline at end of file diff --git a/gefest/core/opt/operators/selections.py b/gefest/core/opt/operators/selections.py index 2e20a779c..e6cc04e29 100644 --- a/gefest/core/opt/operators/selections.py +++ b/gefest/core/opt/operators/selections.py @@ -19,7 +19,7 @@ def roulette_selection( Returns: list[Structure]: best individuals from pop """ - _fitness = [i.fitness for i in pop] + _fitness = [i.fitness[0] for i in pop] probability = [(i / (sum(_fitness))) for i in _fitness] probability = [(max(probability) / i) for i in probability] probability = [i / sum(probability) for i in probability] @@ -27,7 +27,7 @@ def roulette_selection( chosen = [] while len(chosen) < pop_size: - chosen.append(np.random.choice(a=pop, p=probability)) + chosen.append(pop[np.random.choice(a=range(len(pop)), p=probability)]) return chosen diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 4a5519780..496e29273 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -1,12 +1,12 @@ import copy import subprocess - +import matplotlib.pyplot as plt import numpy as np from loguru import logger - +from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry import Structure from gefest.tools import Estimator - +from pathlib import Path class Swan(Estimator): def __init__( @@ -15,7 +15,7 @@ def __init__( targets, grid, domain, - input_file_path='bw_example_cfg', + input_file_path='INPUT', hs_file_path='r/hs47dd8b1c0d4447478fec6f956c7e32d9.d', ): self.path_to_model = path @@ -59,40 +59,51 @@ def _grid_configuration(self): def estimate(self, struct: Structure): polygons = struct.polygons - - with open(self.path_to_input, 'r') as file_to_read: + # + file_toread = self.path_to_input+'_2' + with open(file_toread, 'r') as file_to_read: content_read = file_to_read.read() + file_to_read.close() + + + # all_ = [Point(x=74.8, y=67.9174616), Point(x=74.8, y=67.9410473), Point(x=74.8192817, y=67.9410473), + # Point(x=74.8192817, y=67.9174616), Point(x=74.8, y=67.9174616)] + # border = [[74.7, 74.84, 74.84, 74.7], [67.88, 67.88, 67.96, 67.96]] + # plt.plot(border[0], border[1]) + # all_cd = [i.coords for i in all_] + # for poly in polygons: + # poly_cd = [i.coords for i in poly] + # + # plt.plot([x[0]/500 for x in poly_cd], [y[1]/500 for y in poly_cd]) + # plt.plot([x[0] for x in all_cd], [y[1] for y in all_cd]) + # + # plt.show() - for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' num_of_polygons = len(polygons) for j, poly in enumerate(polygons): + for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' num_of_points = len(2 * poly.points) points = np.array([p.coords[:2] for p in poly.points]) individ = points.reshape(-1) for i, gen in enumerate(individ): - if (i + 1) % 2 == 0: - if (i + 1) == num_of_points: - for_input += '{:.6f}'.format((self.domain.max_y - gen)) - else: - for_input += '{:.6f}'.format((self.domain.max_y - gen)) + ', ' - else: - for_input += '{:.6f}'.format(gen) + ', ' - - if j == (num_of_polygons - 1): - for_input += '\n$optline' - else: - for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + for_input += '{:.6f}'.format(gen) + ', ' + #for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + #if j == (num_of_polygons - 1): + for_input += '\n$optline' + # else: + # for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' content_to_replace = for_input content_write = content_read.replace( - content_read[ - content_read.find('\n\n\n') + 3 : content_read.rfind('\n$optline') + 9 - ], + content_read[content_read.find('OBSTACLE') -1: content_read.rfind('$optline') + 10], content_to_replace, ) + #print(content_write) + input_created = Path(self.path_to_input) + input_created.touch(exist_ok=True) with open(self.path_to_input, 'w') as file_to_write: - file_to_write.writelines(content_write) + file_to_write.write(content_write) logger.info('Swan estimation started...') subprocess.run( @@ -109,4 +120,5 @@ def estimate(self, struct: Structure): hs_target = np.sum([z[i*32:(i+1)*32][target[0], target[1]] for target in self.targets]) res.append(hs_target) hs_target = sum(res)/len(res) - return z, hs_target + print('hs_target',hs_target) + return hs_target diff --git a/gefest/tools/estimators/simulators/swan/swan_model/swaninit b/gefest/tools/estimators/simulators/swan/swan_model/swaninit index f3c1ad578..4bd7abf14 100644 --- a/gefest/tools/estimators/simulators/swan/swan_model/swaninit +++ b/gefest/tools/estimators/simulators/swan/swan_model/swaninit @@ -1,7 +1,7 @@ 4 version of initialisation file Delft University of Technology name of institute 3 command file ref. number -bw_example_cfg command file name +INPUT command file name 4 print file ref. number PRINT print file name 4 test file ref. number From 6e384f0cfa34b8e08f454187482654a12e73c736 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 18 Oct 2023 15:40:06 +0300 Subject: [PATCH 26/66] fix standard sampler --- gefest/tools/samplers/standard/standard.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gefest/tools/samplers/standard/standard.py b/gefest/tools/samplers/standard/standard.py index fa28b0210..eff5d48d6 100644 --- a/gefest/tools/samplers/standard/standard.py +++ b/gefest/tools/samplers/standard/standard.py @@ -6,7 +6,6 @@ from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.core.geometry.utils import get_random_structure -from gefest.core.utils import chained_call from gefest.core.utils.parallel_manager import BaseParallelDispatcher from gefest.tools.samplers.sampler import Sampler @@ -26,16 +25,18 @@ def __call__(self, n_samples: int) -> list[Structure]: return self.sample(n_samples=n_samples) def sample(self, n_samples: int) -> list[Structure]: - generator = chained_call( - partial(get_random_structure, domain=self.domain), self.postprocessor, - ) - random_pop = self._pm.exec_parallel( - generator, + partial(get_random_structure, domain=self.domain), tuple(range(n_samples + 1)), False, + False, ) - random_pop = [ind for ind in random_pop if ind is not None] + corrected = self._pm.exec_parallel( + self.postprocessor, + [(ind,) for ind in random_pop], + ) + + random_pop = [ind for ind in corrected if ind is not None] logger.info(f'{n_samples}, {len(random_pop)}') pop = random_pop[:n_samples] From fc38f662e8c46c271b8c8d835a553ee4ea9b1b1a Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 18 Oct 2023 15:42:10 +0300 Subject: [PATCH 27/66] fix standard sampler --- cases/sound_waves/figures/bottom_square.txt | 5 +++++ gefest/tools/estimators/simulators/swan/swan_interface.py | 8 +++++--- .../tools/estimators/simulators/swan/swan_model/swaninit | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 cases/sound_waves/figures/bottom_square.txt diff --git a/cases/sound_waves/figures/bottom_square.txt b/cases/sound_waves/figures/bottom_square.txt new file mode 100644 index 000000000..68ce751e6 --- /dev/null +++ b/cases/sound_waves/figures/bottom_square.txt @@ -0,0 +1,5 @@ +95 20 off +75 20 off +75 40 off +95 40 off +95 20 off diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 4a5519780..1ce16de55 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -105,8 +105,10 @@ def estimate(self, struct: Structure): z = np.loadtxt(self.path_to_hs) res = [] - for i in range(1538//32): - hs_target = np.sum([z[i*32:(i+1)*32][target[0], target[1]] for target in self.targets]) + for i in range(1538 // 32): + hs_target = np.sum( + [z[i * 32 : (i + 1) * 32][target[0], target[1]] for target in self.targets], + ) res.append(hs_target) - hs_target = sum(res)/len(res) + hs_target = sum(res) / len(res) return z, hs_target diff --git a/gefest/tools/estimators/simulators/swan/swan_model/swaninit b/gefest/tools/estimators/simulators/swan/swan_model/swaninit index f3c1ad578..4bd7abf14 100644 --- a/gefest/tools/estimators/simulators/swan/swan_model/swaninit +++ b/gefest/tools/estimators/simulators/swan/swan_model/swaninit @@ -1,7 +1,7 @@ 4 version of initialisation file Delft University of Technology name of institute 3 command file ref. number -bw_example_cfg command file name +INPUT command file name 4 print file ref. number PRINT print file name 4 test file ref. number From b63a8701f30c17de789512b8653475e181d76bf2 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 18 Oct 2023 15:45:28 +0300 Subject: [PATCH 28/66] sync --- cases/sound_waves/main.py | 119 +++++++++++++++++++++++++++++++------- 1 file changed, 98 insertions(+), 21 deletions(-) diff --git a/cases/sound_waves/main.py b/cases/sound_waves/main.py index 9bcc560fa..7653af68e 100644 --- a/cases/sound_waves/main.py +++ b/cases/sound_waves/main.py @@ -3,11 +3,14 @@ import numpy as np from hyperopt import hp +from sqlalchemy import lambda_stmt -from gefest.core.algs.postproc.resolve_errors import Rules, postprocess +from gefest.core.algs.postproc.resolve_errors import Rules, apply_postprocess from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry import Structure +from gefest.core.geometry.datastructs.point import Point +from gefest.core.geometry.datastructs.polygon import Polygon from gefest.core.geometry.domain import Domain from gefest.core.geometry.geometry_2d import Geometry2D from gefest.core.geometry.utils import get_random_structure @@ -68,7 +71,7 @@ def load_file_from_path(path: str): (min(coord_X), min(coord_Y)), ], geometry=geometry, - max_poly_num=1, + max_poly_num=5, min_poly_num=1, max_points_num=30, min_points_num=20, @@ -77,25 +80,71 @@ def load_file_from_path(path: str): # tuner config tp = TunerParams( - tuner_type='iopt', - n_steps_tune=2, - sampling_variance=0.1, - hyperopt_dist=hp.uniform, + tuner_type='sequential', + n_steps_tune=50, + hyperopt_dist=hp.normal, ) - # fitness function + + # # fitness function + # class SoundFieldFitness(Fitness): + # def __init__(self, domain, estimator, path_best_struct=None): + # super().__init__(domain, estimator) + # self.path_best_struct = path_best_struct + + # if self.path_best_struct is None: + # print('please, set up the best spl matrix into configuration') + # print('the best structure will be generated randomly') + # rnd_structure = get_random_structure(domain) + # best_spl = generate_map(domain, rnd_structure) + # else: + # best_structure = load_file_from_path(path_best_struct) + # best_spl = self.estimator(best_structure) + # best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) + + # self.best_spl = best_spl + + # def fitness(self, ind: Structure): + # spl = self.estimator(ind) + # current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) + # l_f = np.sum(np.abs(self.best_spl - current_spl)) + # return l_f + # # fitness function + + + from joblib import Parallel, cpu_count, delayed + from copy import deepcopy + + import pandas as pd + def poly_from_comsol_txt(path='figures/bottom_square.txt'): + """ + + Args: + path: path to txt file with comsol points + + Returns: + + """ + res = pd.read_csv(path, sep=' ', header=None) + points = [[int(round(res.iloc[i, 0], 2)), int(round(res.iloc[i, 1], 2))] for i in res.index] + points = [Point(i[0], i[1]) for i in np.array(points)] + poly = Polygon( points=points) + struct = Structure(polygons=[poly]) + return struct + + class SoundFieldFitness(Fitness): - def __init__(self, domain, estimator, path_best_struct=None): - super().__init__(domain, SoundSimulator(domain=domain)) + def __init__(self, domain, estimator, n_jobs, path_best_struct=None): + super().__init__(domain, estimator) self.path_best_struct = path_best_struct - + self.n_jobs = n_jobs if self.path_best_struct is None: print('please, set up the best spl matrix into configuration') print('the best structure will be generated randomly') rnd_structure = get_random_structure(domain) best_spl = generate_map(domain, rnd_structure) else: - best_structure = load_file_from_path(path_best_struct) + best_structure = poly_from_comsol_txt(path_best_struct) best_spl = self.estimator(best_structure) best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) @@ -104,22 +153,24 @@ def __init__(self, domain, estimator, path_best_struct=None): def fitness(self, ind: Structure): spl = self.estimator(ind) current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) - - l_f = np.sum(np.abs(self.best_spl - current_spl)) + l_f = np.sum(np.abs(self.best_spl - current_spl)) / (120 * 120) return l_f + + path_to_init_figure = f'figures/bottom_square.txt' # fitness estimator estimator = SoundFieldFitness( domain, - SoundSimulator(domain, None), - None, + SoundSimulator(domain, 10), + -1, + "F:\\Git_Repositories\\gef_ref\\GEFEST\\cases\\sound_waves\\figures\\bottom_square.txt", ) # optimization params config opt_params = OptimizationParams( crossovers=[ - partial(polygon_level_crossover, domain=domain), - partial(structure_level_crossover, domain=domain), + polygon_level_crossover, + structure_level_crossover, ], crossover_each_prob=[0.0, 1.0], mutations=[ @@ -135,7 +186,7 @@ def fitness(self, ind: Structure): pair_selector=panmixis, postprocess_attempts=3, domain=domain, - postprocessor=postprocess, + postprocessor=apply_postprocess, estimator=estimator, postprocess_rules=[ Rules.not_out_of_bounds.value, @@ -146,11 +197,13 @@ def fitness(self, ind: Structure): Rules.not_too_close_points.value, ], extra=3, - n_jobs=-1, + n_jobs=1, golem_adapter=StructureAdapter, tuner_cfg=tp, - n_steps=1, + n_steps=3, pop_size=3, + log_dir="zsaved_pop", + run_name="pes_barbos", ) optimizer = BaseGA(opt_params) @@ -158,9 +211,33 @@ def fitness(self, ind: Structure): # make mp4 of optimized pop here if need + + + # pts = [[87.8183662653238, 23.51407028817777], + # [69.58377821212272, 34.2536199692584], + # [43.580509484692485, 92.58122224308758], + # [68.48530826424907, 94.10533753906533], + # [87.8183662653238, 23.51407028817777]] #899529.0143030069 + # s = Structure(polygons=[Polygon([Point(p[0], p[1]) for p in pts])], fitness=[899529.999]) + + # opt_params.estimator.estimator.estimate(s) + + + # gm = GIFMaker(domain=domain) # mp4 maker actually + # gm.create_frame(_structure_, {'Optimized': _structure_.fitness}) # make frames for each stucture you want + # gm.make_gif('tuning', 500, ) # save file + + from gefest.core.utils.functions import parse_structs + + pop = parse_structs("C:\\Users\\mangaboba\\Downloads\\Telegram Desktop\\00075.log") + pop = sorted(pop, key=lambda x: x.fitness) + print(pop[0].fitness) tuner = GolemTuner(opt_params) n_best_for_tune = 1 - tuned_individuals = tuner.tune(optimized_pop[0:n_best_for_tune]) + tuned_individuals = tuner.tune(pop[0]) + + + # tuned_individuals = tuner.tune(optimized_pop[0:n_best_for_tune]) # make mp4 of tuned pop here if need From 3eae7c92aa1bd5f492a39f6408d4db57e680f2dd Mon Sep 17 00:00:00 2001 From: Oleg Pterov <30435967+MangaBoba@users.noreply.github.com> Date: Tue, 31 Oct 2023 18:51:39 +0300 Subject: [PATCH 29/66] Refactoring ci (#67) * add ci flake config --- .github/workflows/unit-build.yml | 7 +++++-- requirements.txt | 5 +++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/unit-build.yml b/.github/workflows/unit-build.yml index 303d65d90..37f700ef4 100644 --- a/.github/workflows/unit-build.yml +++ b/.github/workflows/unit-build.yml @@ -2,9 +2,9 @@ name: unit tests on: push: - branches: [ main ] + branches: [ main, refactoring ] pull_request: - branches: [ main ] + branches: [ main, refactoring ] jobs: build: @@ -27,6 +27,9 @@ jobs: pip install pytest pip install -r requirements.txt pip install pytest-cov + - name: Run flake8 checks + run: | + flake8 . --count --statistics - name: Test with pytest run: | pytest --cov=GEFEST -s test/ diff --git a/requirements.txt b/requirements.txt index d80fc292a..87648464d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -33,3 +33,8 @@ flake8-bugbear==23.3.23 flake8-builtins==2.1.0 flake8-commas==2.1.0 flake8-variables-names==0.0.5 +flake8-docstrings==1.7.0 +flake8-fixme==1.1.1 +flake8-comments==0.1.2 +flake8-comprehensions==3.14.0 +flake8-clean-block==0.1.2 From fedfded06975ef78eb8db22528f79defb2495a22 Mon Sep 17 00:00:00 2001 From: Oleg Pterov <30435967+MangaBoba@users.noreply.github.com> Date: Tue, 31 Oct 2023 19:53:46 +0300 Subject: [PATCH 30/66] Refactoring postroc (#68) * decomposed postprocess, objectives evaluation, golem optimization support * fix selfintersection rule, visuzlisation args, requirements * add from files configuration * merge_ local * fix codestyle, domain unit tests, upd golem version * minor style fix --- cases/breakwaters/main_arctic.py | 201 +++++++ cases/breakwaters/ob2/INPUT | 54 ++ gefest/core/algs/postproc/resolve_errors.py | 552 +++--------------- gefest/core/algs/postproc/rules.py | 303 ++++++++++ gefest/core/algs/postproc/rules_base.py | 93 +++ gefest/core/algs/postproc/validation.py | 32 + gefest/core/configs/optimization_params.py | 84 ++- gefest/core/configs/tuner_params.py | 39 +- gefest/core/configs/utils.py | 69 +++ gefest/core/geometry/domain.py | 83 ++- .../opt/adapters/configuration_mapping.py | 22 +- gefest/core/opt/adapters/operator.py | 11 + gefest/core/opt/objective/__init__.py | 0 gefest/core/opt/objective/objective.py | 30 + gefest/core/opt/objective/objective_eval.py | 30 + gefest/core/opt/objectives.py | 21 - gefest/core/opt/operators/crossovers.py | 8 +- gefest/core/opt/operators/mutations.py | 24 +- gefest/core/opt/operators/selections.py | 7 + gefest/core/opt/strategies/crossover.py | 3 +- gefest/core/opt/tuning/__init__.py | 0 gefest/core/opt/tuning/tuner.py | 58 +- gefest/core/opt/tuning/{uitls.py => utils.py} | 41 +- gefest/core/utils/__init__.py | 2 +- gefest/core/viz/struct_vizualizer.py | 2 +- gefest/tools/__init__.py | 1 - gefest/tools/fitness.py | 42 -- gefest/tools/optimizers/GA/GA.py | 8 +- gefest/tools/optimizers/GA/base_GA.py | 8 +- gefest/tools/optimizers/SPEA2/SPEA2.py | 43 +- .../optimizers/golem_optimizer/standard.py | 38 ++ .../optimizers/golem_optimizer/surrogate.py | 18 +- refactored.py | 399 +------------ requirements.txt | 3 +- zcfg.yaml | 64 ++ zmetrics.py | 51 ++ 36 files changed, 1382 insertions(+), 1062 deletions(-) create mode 100644 cases/breakwaters/main_arctic.py create mode 100644 cases/breakwaters/ob2/INPUT create mode 100644 gefest/core/algs/postproc/rules.py create mode 100644 gefest/core/algs/postproc/rules_base.py create mode 100644 gefest/core/algs/postproc/validation.py create mode 100644 gefest/core/configs/utils.py create mode 100644 gefest/core/opt/objective/__init__.py create mode 100644 gefest/core/opt/objective/objective.py create mode 100644 gefest/core/opt/objective/objective_eval.py delete mode 100644 gefest/core/opt/objectives.py create mode 100644 gefest/core/opt/tuning/__init__.py rename gefest/core/opt/tuning/{uitls.py => utils.py} (56%) delete mode 100644 gefest/tools/fitness.py create mode 100644 gefest/tools/optimizers/golem_optimizer/standard.py create mode 100644 zcfg.yaml create mode 100644 zmetrics.py diff --git a/cases/breakwaters/main_arctic.py b/cases/breakwaters/main_arctic.py new file mode 100644 index 000000000..84135c1ef --- /dev/null +++ b/cases/breakwaters/main_arctic.py @@ -0,0 +1,201 @@ +import pickle +from functools import partial +from gefest.core.algs.postproc.resolve_errors import Rules, apply_postprocess +import numpy as np +from hyperopt import hp +from gefest.core.opt.operators.selections import tournament_selection,roulette_selection +from gefest.core.algs.postproc.resolve_errors import Rules, postprocess +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.geometry.utils import get_random_structure +from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.core.opt.operators.crossovers import ( + panmixis, + polygon_level_crossover, + structure_level_crossover, +) +from gefest.core.opt.operators.mutations import ( + add_point, + add_poly, + drop_point, + drop_poly, + pos_change_point_mutation, + resize_poly, + rotate_poly, +) +import json +from gefest.core.opt.tuning.tuner import GolemTuner +from gefest.core.structure.prohibited import create_prohibited +from gefest.core.viz.struct_vizualizer import GIFMaker +from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( + SoundSimulator, + generate_map, +) +from gefest.tools.fitness import Fitness +from gefest.tools.optimizers.GA.base_GA import BaseGA +from pathlib import Path +from gefest.tools.estimators.simulators.swan.swan_interface import Swan +from shapely.geometry import shape +# pre domain params +root_path = Path(__file__).parent.parent.parent +with open(f'{root_path}/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson', 'r') as file: + res_list = json.load(file) +with open(f'{root_path}/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson', 'r') as file: + border_dict = json.load(file) +border = shape(border_dict['features'][0]['geometry']) +water = [i for i in res_list['features'] if i['properties']['type'] =='water'] +water_coord =[p['geometry']['coordinates'] for p in water] +cargo_piers = [i for i in res_list['features'] if i['properties']['type'] =='cargo_pier'] +passenger_pier = [i for i in res_list['features'] if i['properties']['type'] =='passenger_pier'] +piers = [i for i in res_list['features'] if (i['properties']['type']=='passenger_pier') or (i['properties']['type'] =='cargo_pier')] +piers_coords = [x[0] for x in [i['geometry']['coordinates'] for i in piers]] +piers_line = [max(p,key=lambda i: i[1]) for p in piers_coords] +unique_types = np.unique([i['properties']['type'] for i in res_list['features']]) +allow_water = [i for i in water_coord[0][0] if (i[0]>74.8) and (i[1]<67.942) and (i[1]>67.915)] +########### +allow_area = [[74.80,67.92],[74.80,67.94]]+allow_water +[[74.80,67.92]] +grid_resolution_x = 17 # Number of points on x-axis +grid_resolution_y = 31 # Number of points on y-axis +coord_Y = np.linspace(min([p[1] for p in allow_area])*500, max([p[1] for p in allow_area])*500, grid_resolution_y + 1) # X coordinate for spatial grid +coord_X = np.linspace(min([p[0] for p in allow_area])*500, max([p[0] for p in allow_area])*500, grid_resolution_x + 1) +grid = [grid_resolution_x, grid_resolution_y] # points grid +fixed_area = None +targets = [[14,10],[16,10],[18,10]] + + +def load_file_from_path(path: str): + with open(path, 'rb') as f: + file = pickle.load(f) + f.close() + return file + + +if __name__ == '__main__': + # class SoundSimulator_(SoundSimulator): + # def __init__(self, domain, obstacle_map=None): + # super().__init__(domain, obstacle_map=None) + # self.duration = 200 + # self.pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) + # if ( + # obstacle_map is not None + # and (obstacle_map.shape[0], obstacle_map.shape[1]) == self.map_size + # ): + # print("** Map Accepted **") + # self.obstacle_map = obstacle_map + # elif obstacle_map is not None and obstacle_map.shape != self.map_size: + # print("** Map size denied **") + # self.obstacle_map = np.zeros((self.size_y, self.size_x)) + # else: + # self.obstacle_map = np.zeros((self.size_y, self.size_x)) + + # in the future all model can be loaded from configs + + # domain configuration + geometry = Geometry2D(is_closed=False, is_convex=True) + prohibited = create_prohibited(1, [], [], fixed_area=fixed_area) + domain = Domain( + allowed_area=[ + (min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y)), + ], + geometry=geometry, + max_poly_num=1, + min_poly_num=1, + max_points_num=10, + min_points_num=4, + prohibited_area=prohibited, + ) + + # tuner config + tp = TunerParams( + tuner_type='sequential', + n_steps_tune=25, + sampling_variance=1, + hyperopt_dist=hp.uniform, + ) + path_=f"{root_path}/cases/breakwaters/ob2/" + #Estimator + swan_estimator = Swan( + targets=targets, + domain=domain, + grid=grid, + path=path_, + hs_file_path='results/HSig_ob_example.dat' + ) + # fitness function + class SoundFieldFitness(Fitness): + def __init__(self, domain, estimator): + super().__init__(domain) + self.estimator=estimator + def fitness(self, ind: Structure): + fitness = self.estimator(ind) + return fitness + + # fitness estimator + estimator = SoundFieldFitness( + domain, + swan_estimator + ) + + # optimization params config + opt_params = OptimizationParams( + crossovers=[ + polygon_level_crossover, + structure_level_crossover, + ], + crossover_prob=0.3, + crossover_each_prob=[0.0, 1.0], + mutations=[ + rotate_poly, + resize_poly, + add_point, + drop_point, + add_poly, + drop_poly, + pos_change_point_mutation, + ], + mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.00, 0.00, 0.25], + pair_selector=panmixis, + postprocess_attempts=10, + domain=domain, + postprocessor=apply_postprocess, + estimator=estimator, + postprocess_rules=[ + Rules.not_out_of_bounds.value, + Rules.not_closed_polygon.value, + Rules.not_self_intersects.value, + Rules.not_too_close_polygons.value, + # Rules.not_overlaps_prohibited.value, + Rules.not_too_close_points.value, + ], + extra=2, + n_jobs=0, + golem_adapter=StructureAdapter, + tuner_cfg=tp, + n_steps=5, + pop_size=6, + selector=roulette_selection + ) + + optimizer = BaseGA(opt_params) + optimized_pop = optimizer.optimize() + + # make mp4 of optimized pop here if need + + # tuner = GolemTuner(opt_params) + # n_best_for_tune = 1 + # tuned_individuals = tuner.tune(optimized_pop[0:n_best_for_tune]) + + # make mp4 of tuned pop here if need + + # code to create mp4 + ### + # gm = GIFMaker(domain=domain) # mp4 maker actually + # gm.create_frame(_structure_, {'Optimized': _structure_.fitness}) # make frames for each stucture you want + # gm.make_gif('tuning', 500, ) # save file diff --git a/cases/breakwaters/ob2/INPUT b/cases/breakwaters/ob2/INPUT new file mode 100644 index 000000000..919f04d9e --- /dev/null +++ b/cases/breakwaters/ob2/INPUT @@ -0,0 +1,54 @@ +$***********MODEL INPUT********************************* +SET NAUTical +MODE NONSTationary TWODimensional +COORDinates spherical + +CGRID REGular xpc=74.70350703505787 ypc=67.88206697110601 alpc=0. & + xlenc=0.128969 ylenc=0.086128 mxc=17 myc=31 & + CIRCLE mdc=36 flow=0.05 fhigh=1. msc=25 + +INPgrid BOTtom REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071370458 dyinp=0.0026897599 EXCeption -9 +READinp BOTtom fac=1 'data\bathy.bot' idla=1 0 FREE + +INPgrid WIND REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071370458 dyinp=0.0026897599 & +NONSTATIONARY 20180101.000000 6 HR 20180103.230000 +READinp WIND fac=1.21 SERIES 'data\wind_inventory.txt' 1 0 1 0 FREE + +BOUnd SHAPespec JONswap 3.3 PEAK DSPR DEGRees + + + +OBSTACLE TRANSM 0. REFL 0. LINE 74.810470, 67.930902, 74.806538, 67.930025, 74.803719, 67.928509, 74.809836, 67.923163, 74.810798, 67.922973, 74.811649, 67.926213, 74.811374, 67.929569 +$optline + + +GEN3 ST6 6.5E-6 8.5E-5 4.0 4.0 UP HWANG VECTAU U10PROXY 35.0 AGROW +BREAKING +FRiction JONswap CONstant 0.067 +TRIAD +DIFFRACtion + PROP BSBT +QUANTity Per short='Tm-1,0' power=0. + + + +OUTPUT OPTIONS '%' TABLE 16 BLOCK 6 18 + +BLOCK 'COMPGRID' NOHEAD 'results\HSig_ob_example.dat' LAYOUT 1 HSig OUT 20180102.000000 1. HR +BLOCK 'COMPGRID' NOHEAD 'results\PDIR_ob_example.dat' LAYOUT 1 PDIR OUT 20180102.000000 1. HR +BLOCK 'COMPGRID' NOHEAD 'results\RTP_ob_example.dat' LAYOUT 1 RTP OUT 20180102.000000 1. HR + + + + + + + + +COMPUTE NONSTat 20180101.000000 10 MIN 20180103.230000 + +STOP diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/algs/postproc/resolve_errors.py index ae52472c4..61ccbd699 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/algs/postproc/resolve_errors.py @@ -1,497 +1,115 @@ -import copy -from abc import ABCMeta, abstractmethod from copy import deepcopy -from enum import Enum -from itertools import combinations from typing import Union -import numpy as np from loguru import logger -from shapely.geometry import Point as ShapelyPoint -from shapely.geometry import Polygon as ShapelyPolygon -from shapely.ops import unary_union -from shapely.validation import explain_validity -from gefest.core.geometry import Point, Polygon, Structure, get_random_poly +from gefest.core.algs.postproc.rules_base import PolygonRule, StructureRule +from gefest.core.algs.postproc.validation import validate +from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -class PolygonRule(metaclass=ABCMeta): - """Interface of postprocessing rule for polygon. - Provides validation and correct functions for spicific error, - e.g. 'out of bounds', 'self intersection', 'unclosed polygon'. - """ - - @staticmethod - @abstractmethod - def validate( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> bool: - """Check if there is no error in the spicific polygon in structure. - - Args: - structure (Structure): Structure with error. - idx_ (int): Index of polygon with error in structure. - - Returns: - bool: True if polygon has no spicific problem, - otherwise False. - """ - ... - +class Postrocessor: @staticmethod - @abstractmethod - def correct( - structure: Structure, - idx_poly_with_error: int, + def apply_postprocess( + structures: Union[Structure, list[Structure]], + rules: list[Union[StructureRule, PolygonRule]], domain: Domain, - ) -> Polygon: - """Try to resolve spicific problem. - The method does not guarantee error correction. - - Args: - structure (Structure): Structure with error. - idx_poly_with_error (int): Index of polygon with error in structure. - - Returns: - Polygon - """ - ... - - -class StructureRule(metaclass=ABCMeta): - """Interface of postprocessing rule for whloe structure. - Provides validation and correct functions for spicific error, - e.g. 'polygons in structure too close'. - """ + attempts: int = 3, + ) -> list[Union[Structure, None]]: + if not isinstance(structures, (list, tuple)): + structures = [structures] + post_processed = [ + Postrocessor.postprocess_structure(struct, rules, domain, attempts) + for struct in structures + ] + return post_processed + + @staticmethod + def _apply_polygon_rule(structure, rule, attempts, domain) -> Union[Structure, None]: + for idx_, _ in enumerate(structure.polygons): + for _ in range(attempts): + if not rule.validate(structure, idx_, domain): + structure[idx_] = rule.correct(structure, idx_, domain) + else: + break + else: + if not rule.validate(structure, idx_, domain): + logger.info(f'{rule.__class__.__name__} fail') + return None + return structure @staticmethod - @abstractmethod - def validate( - structure: Structure, - domain: Domain, - ) -> bool: - """Check if there is no error in the structure. - - Args: - structure (Structure): Structure for validation. - - Returns: - bool: True if structure has no spicific problem, - otherwise False. - """ - ... + def _apply_structure_rule(structure, rule, attempts, domain) -> Union[Structure, None]: + for _ in range(attempts): + if not rule.validate(structure, domain): + structure = rule.correct(structure, domain) + else: + break + else: + if not rule.validate(structure, domain): + return None + return structure @staticmethod - @abstractmethod - def correct( + def postprocess_structure( structure: Structure, + rules: list[Union[StructureRule, PolygonRule]], domain: Domain, - ) -> Structure: - """Try to resolve spicific problem. - The method does not guarantee error correction. + attempts: int = 3, + ) -> Union[Structure, None]: + """Apply postprocessing rules to structure. Args: - structure (Structure): Structure with error. + structure (Structure): Structure for postprocessing. + rules (list[Union[StructureRule, PolygonRule]]): Postprocessing rules, + which expect whole structure or particular polygon for check. + This interfaces have check() and corerect() methods. + domain (Domain): domain + attempts (int, optional): Number of attempths to fix errors. Defaults to 3. Returns: - Structure - """ - ... - + Union[Structure, None]: If structure valid according to the rules, + correct stucture will be returned, else None. -class PolygonsNotTooClose(StructureRule): - @staticmethod - def validate(struct: Structure, domain: Domain) -> bool: - pairs = tuple(combinations(struct.polygons, 2)) - is_too_close = [False] * len(pairs) - - for idx, pair in enumerate(pairs): - is_too_close[idx] = ( - _pairwise_dist(pair[0], pair[1], domain) < domain.dist_between_polygons - ) - - return not any(is_too_close) - - @staticmethod - @logger.catch - def correct(struct: Structure, domain: Domain) -> Structure: - """ - For polygons that are closer than the specified threshold, - one of them will be removed - """ - polygons = struct.polygons - num_poly = len(polygons) - to_delete = [] - - for i in range(num_poly - 1): - for j in range(i + 1, num_poly): - distance = _pairwise_dist(polygons[i], polygons[j], domain) - if distance < domain.dist_between_polygons: - if ( - polygons[i] not in domain.fixed_points - or polygons[i] not in domain.prohibited_area - ): - to_delete.append(i) # Collecting polygon indices for deletion - - to_delete_poly = [struct.polygons[i] for i in np.unique(to_delete)] - corrected_structure = Structure( - polygons=[poly for poly in struct.polygons if poly not in to_delete_poly], - ) - - return corrected_structure - - -def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain): - """ - ::TODO:: find the answer for the question: why return 0 gives infinite computation - """ - if poly_1 is poly_2 or len(poly_1.points) == 0 or len(poly_2.points) == 0: - return 9999 - - # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point - return domain.geometry.min_distance(poly_1, poly_2) - - -class PointsNotTooClose(PolygonRule): - @staticmethod - def validate( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> bool: - """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` - is placed in correct distance by previous point - Args: - structure: the :obj:`Structure` that explore - Returns: - ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` """ - poly = structure[idx_poly_with_error] - if poly[0] != poly[-1] and domain.geometry.is_closed: - poly[:-1] = poly[0] - lenght = domain.dist_between_points - check, norms = [[None] * (len(poly) - 1)] * 2 - for idx, pair in enumerate( - zip( - poly[:-1], - poly[1:], - ), + if structure is None: + logger.error('None struct postproc input') + return None + + if any( + [ + (not poly or len(poly) == 0 or any([not pt for pt in poly])) + for poly in structure.polygons + ], ): - norm = np.linalg.norm(np.array(pair[1].coords) - np.array(pair[0].coords)) - norms[idx] = norm - check[idx] = norm > lenght - return all(check) - - @staticmethod - def correct( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> Polygon: - poly = copy.deepcopy(structure[idx_poly_with_error]) - poly = domain.geometry.simplify(poly, domain.dist_between_points * 1.05) - - if poly[0] != poly[-1] and domain.geometry.is_closed: - poly.points.append(poly[0]) - elif poly[0] == poly[-1] and not domain.geometry.is_closed: - poly.points = poly.points[:-1] - return poly - + logger.error('Wrong structure - problems with points') + return None -class PolygonNotOverlapsProhibited(PolygonRule): - @staticmethod - def validate( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> bool: - - geom = domain.geometry - if domain.geometry.is_closed: - # logger.warning("There is no errors if no construction. NotImplemented validation and fix.") - pass - else: - from matplotlib import pyplot as plt - from shapely.plotting import plot_line, plot_polygon + corrected_structure = deepcopy(structure) - prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) - prohib = unary_union(prohib) - poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) - # for g in prohib.geoms: - # plot_polygon(g) - # plot_line(poly, color='r') - # plt.show(block=True) - if poly.intersects(prohib): - return False - - return True - - @staticmethod - def correct( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> Polygon: - geom = domain.geometry - if domain.geometry.is_closed: - raise NotImplementedError() - else: - from matplotlib import pyplot as plt - from shapely.plotting import plot_line, plot_polygon - - prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) - # for g in prohib.geoms: - # plot_polygon(g) - # plt.show(block=True) - prohib = unary_union(prohib) - # for g in prohib.geoms: - # plot_polygon(g) - - poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) - - # plot_line(poly) - # plt.show(block=True) - if poly.intersects(prohib): - res = poly.difference(prohib.buffer(0.001)) - from shapely.geometry import GeometryCollection, LineString, MultiPoint - - if isinstance(res, (MultiPoint, LineString)): - res = GeometryCollection(res) - parts = [g for g in res.geoms] - parts = [g for g in parts if not g.intersects(prohib)] - poly = np.random.choice(parts) - # plot_line(poly) - # poly = [Point(p[0], p[1]) for p in poly.coords] - # plt.show(block=True) - return Polygon([Point(p[0], p[1]) for p in poly.coords]) - else: - return Polygon([Point(p[0], p[1]) for p in poly.coords]) - - -class PolygonNotClosed(PolygonRule): - @staticmethod - def validate( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> bool: - poly = structure[idx_poly_with_error] - if (domain.geometry.is_closed and (poly[0] == poly[-1])) or ( - not domain.geometry.is_closed and (poly[0] != poly[-1]) - ): - return True - return False - - @staticmethod - def correct( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> Polygon: - poly = structure[idx_poly_with_error] - if domain.geometry.is_closed and domain.geometry.is_convex and (poly[0] != poly[-1]): - poly.points.append(poly.points[0]) - elif not domain.geometry.is_closed and (poly[0] == poly[-1]): - poly.points = poly.points[:-1] - return poly - - -class PolygonNotOutOfBounds(PolygonRule): - @staticmethod - def validate( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> bool: - geom_poly_allowed = ShapelyPolygon( - [ShapelyPoint(pt.x, pt.y) for pt in domain.allowed_area], - ) - for pt in structure[idx_poly_with_error]: - geom_pt = ShapelyPoint(pt.x, pt.y) - if ( - not geom_poly_allowed.contains(geom_pt) - and not geom_poly_allowed.distance(geom_pt) < domain.min_dist_from_boundary - ): - return False - - return True - - @staticmethod - def correct( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> Polygon: - point_moved = False - poly = structure[idx_poly_with_error] - for p_id, point in enumerate(poly): - if point in domain.fixed_points: - continue - point.x = max(point.x, domain.min_x + domain.len_x * 0.05) - point.y = max(point.y, domain.min_y + domain.len_y * 0.05) - point.x = min(point.x, domain.max_x + domain.len_x * 0.05) - point.y = min(point.y, domain.max_y + domain.len_y * 0.05) - if point not in domain: - new_point = domain.geometry.nearest_point(point, domain.bound_poly) - poly.points[p_id] = new_point - point_moved = True - - if point_moved: - poly = domain.geometry.resize_poly(poly=poly, x_scale=0.8, y_scale=0.8) - - if poly[0] != poly[-1] and domain.geometry.is_closed: - poly.points.append(poly[0]) - elif poly[0] == poly[-1] and not domain.geometry.is_closed: - poly.points = poly.points[:-1] - - return poly - - -class PolygonNotSelfIntersects(PolygonRule): - @staticmethod - def validate( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> bool: - poly = structure[idx_poly_with_error] - return not ( - len(poly) > 2 - and _forbidden_validity( - explain_validity( - ShapelyPolygon([ShapelyPoint(pt.x, pt.y) for pt in poly]).boundary, - ), - ) - ) - - @staticmethod - def correct( - structure: Structure, - idx_poly_with_error: int, - domain: Domain, - ) -> Polygon: - poly = structure[idx_poly_with_error] - poly = domain.geometry.get_convex(poly) - return poly - - -def _forbidden_validity(validity): - return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity - - -@logger.catch -def validate( - structure: Structure, - rules: list[Union[StructureRule, PolygonRule]], - domain: Domain, -) -> bool: - if structure is None: - return False - if any( - [(not poly or len(poly) == 0 or any([not p for p in poly])) for poly in structure], - ): - logger.error('Wrong structure - problems with points') - return False - - for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): - for idx_, _ in enumerate(structure): - if not rule.validate(structure, idx_, domain): - # logger.info(f'{rule.__class__.__name__} final fail') - return False - - for rule in (rule for rule in rules if isinstance(rule, StructureRule)): - if not rule.validate(structure, domain): - # logger.info(f'{rule.__class__.__name__} final fail') - return False - - return True - - -def apply_postprocess( - structures: Union[Structure, list[Structure]], - rules: list[Union[StructureRule, PolygonRule]], - domain: Domain, - attempts: int = 3, -) -> list[Union[Structure, None]]: - if not isinstance(structures, (list, tuple)): - structures = [structures] - post_processed = [postprocess(struct, rules, domain, attempts) for struct in structures] - return post_processed - - -@logger.catch -def postprocess( - structure: Structure, - rules: list[Union[StructureRule, PolygonRule]], - domain: Domain, - attempts: int = 3, -) -> Union[Structure, None]: - """Apply postprocessing rules to structure. - - Args: - structure (Structure): Structure for postprocessing. - rules (list[Union[StructureRule, PolygonRule]]): Postprocessing rules, - which expect whole structure or particular polygon for check. - This interfaces have check() and corerect() methods. - domain (Domain): domain - attempts (int, optional): Number of attempths to fix errors. Defaults to 3. - - Returns: - Union[Structure, None]: If structure valid according to the rules, - correct stucture will be returned, else None. - - """ - if structure is None: - logger.error('None struct postproc input') - return None - if any( - [ - (not poly or len(poly) == 0 or any([not pt for pt in poly])) - for poly in structure.polygons - ], - ): - logger.error('Wrong structure - problems with points') - return None - - corrected_structure = deepcopy(structure) - - for idx_, _ in enumerate(structure.polygons): for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): - for at in range(attempts): - if not rule.validate(corrected_structure, idx_, domain): - corrected_structure[idx_] = rule.correct(corrected_structure, idx_, domain) - else: - break - else: - if not rule.validate(corrected_structure, idx_, domain): - logger.info(f'{rule.__class__.__name__} fail') - return None - - for idx_, rule in enumerate(rule for rule in rules if isinstance(rule, StructureRule)): - for at in range(attempts): - if not rule.validate(corrected_structure, domain): - corrected_structure = rule.correct(corrected_structure, domain) - else: - if any([len(poly) == 1 for poly in corrected_structure]): - logger.error(rule.__class__.__name__) - break - else: - if not rule.validate(corrected_structure, domain): + corrected_structure = Postrocessor._apply_polygon_rule( + corrected_structure, + rule, + attempts, + domain, + ) + if not corrected_structure: return None - if validate(corrected_structure, rules, domain): - return corrected_structure - logger.error('None struct postproc out') - return None + for rule in (rule for rule in rules if isinstance(rule, StructureRule)): + corrected_structure = Postrocessor._apply_structure_rule( + corrected_structure, + rule, + attempts, + domain, + ) + if not corrected_structure: + return None + if validate(corrected_structure, rules, domain): + return corrected_structure -class Rules(Enum): - not_too_close_polygons = PolygonsNotTooClose() - not_closed_polygon = PolygonNotClosed() - not_out_of_bounds = PolygonNotOutOfBounds() - not_self_intersects = PolygonNotSelfIntersects() - not_overlaps_prohibited = PolygonNotOverlapsProhibited() - not_too_close_points = PointsNotTooClose() + logger.error('None struct postproc out') + return None diff --git a/gefest/core/algs/postproc/rules.py b/gefest/core/algs/postproc/rules.py new file mode 100644 index 000000000..d4d7830bc --- /dev/null +++ b/gefest/core/algs/postproc/rules.py @@ -0,0 +1,303 @@ +import copy +from enum import Enum +from itertools import combinations + +import numpy as np +from loguru import logger +from shapely.geometry import Point as ShapelyPoint +from shapely.geometry import Polygon as ShapelyPolygon +from shapely.ops import unary_union +from shapely.validation import explain_validity + +from gefest.core.algs.postproc.rules_base import PolygonRule, StructureRule +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.domain import Domain + + +class PolygonsNotTooClose(StructureRule): + @staticmethod + def validate(struct: Structure, domain: Domain) -> bool: + pairs = tuple(combinations(struct.polygons, 2)) + is_too_close = [False] * len(pairs) + + for idx, pair in enumerate(pairs): + is_too_close[idx] = ( + _pairwise_dist(pair[0], pair[1], domain) < domain.dist_between_polygons + ) + + return not any(is_too_close) + + @staticmethod + @logger.catch + def correct(struct: Structure, domain: Domain) -> Structure: + """ + For polygons that are closer than the specified threshold, + one of them will be removed + """ + polygons = struct.polygons + num_poly = len(polygons) + to_delete = [] + + for i in range(num_poly - 1): + for j in range(i + 1, num_poly): + distance = _pairwise_dist(polygons[i], polygons[j], domain) + if distance < domain.dist_between_polygons: + if ( + polygons[i] not in domain.fixed_points + or polygons[i] not in domain.prohibited_area + ): + to_delete.append(i) # Collecting polygon indices for deletion + + to_delete_poly = [struct.polygons[i] for i in np.unique(to_delete)] + corrected_structure = Structure( + polygons=[poly for poly in struct.polygons if poly not in to_delete_poly], + ) + + return corrected_structure + + +def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain): + """ + ::TODO:: find the answer for the question: why return 0 gives infinite computation + """ + if poly_1 is poly_2 or len(poly_1.points) == 0 or len(poly_2.points) == 0: + return 9999 + + # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point + return domain.geometry.min_distance(poly_1, poly_2) + + +class PointsNotTooClose(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` + is placed in correct distance by previous point + Args: + structure: the :obj:`Structure` that explore + Returns: + ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` + """ + poly = structure[idx_poly_with_error] + if poly[0] != poly[-1] and domain.geometry.is_closed: + poly[:-1] = poly[0] + lenght = domain.dist_between_points + check, norms = [[None] * (len(poly) - 1)] * 2 + for idx, pair in enumerate( + zip( + poly[:-1], + poly[1:], + ), + ): + norm = np.linalg.norm(np.array(pair[1].coords) - np.array(pair[0].coords)) + norms[idx] = norm + check[idx] = norm > lenght + return all(check) + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + poly = copy.deepcopy(structure[idx_poly_with_error]) + poly = domain.geometry.simplify(poly, domain.dist_between_points * 1.05) + + if poly[0] != poly[-1] and domain.geometry.is_closed: + poly.points.append(poly[0]) + elif poly[0] == poly[-1] and not domain.geometry.is_closed: + poly.points = poly.points[:-1] + return poly + + +class PolygonNotOverlapsProhibited(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + + geom = domain.geometry + if domain.geometry.is_closed: + # logger.warning("There is no errors if no construction. NotImplemented validation and fix.") + pass + else: + from matplotlib import pyplot as plt + from shapely.plotting import plot_line, plot_polygon + + prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) + prohib = unary_union(prohib) + poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) + # for g in prohib.geoms: + # plot_polygon(g) + # plot_line(poly, color='r') + # plt.show(block=True) + if poly.intersects(prohib): + return False + + return True + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + geom = domain.geometry + if domain.geometry.is_closed: + raise NotImplementedError() + else: + from matplotlib import pyplot as plt + from shapely.plotting import plot_line, plot_polygon + + prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) + # for g in prohib.geoms: + # plot_polygon(g) + # plt.show(block=True) + prohib = unary_union(prohib) + # for g in prohib.geoms: + # plot_polygon(g) + + poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) + + # plot_line(poly) + # plt.show(block=True) + if poly.intersects(prohib): + res = poly.difference(prohib.buffer(0.001)) + from shapely.geometry import GeometryCollection, LineString, MultiPoint + + if isinstance(res, (MultiPoint, LineString)): + res = GeometryCollection(res) + parts = [g for g in res.geoms] + parts = [g for g in parts if not g.intersects(prohib)] + poly = np.random.choice(parts) + # plot_line(poly) + # poly = [Point(p[0], p[1]) for p in poly.coords] + # plt.show(block=True) + return Polygon([Point(p[0], p[1]) for p in poly.coords]) + else: + return Polygon([Point(p[0], p[1]) for p in poly.coords]) + + +class PolygonGeometryIsValid(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + poly = structure[idx_poly_with_error] + if (domain.geometry.is_closed and (poly[0] == poly[-1])) or ( + not domain.geometry.is_closed and (poly[0] != poly[-1]) + ): + return True + return False + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + poly = structure[idx_poly_with_error] + if domain.geometry.is_closed and domain.geometry.is_convex and (poly[0] != poly[-1]): + poly.points.append(poly.points[0]) + elif not domain.geometry.is_closed and (poly[0] == poly[-1]): + poly.points = poly.points[:-1] + return poly + + +class PolygonNotOutOfBounds(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + geom_poly_allowed = ShapelyPolygon( + [ShapelyPoint(pt.x, pt.y) for pt in domain.allowed_area], + ) + for pt in structure[idx_poly_with_error]: + geom_pt = ShapelyPoint(pt.x, pt.y) + if ( + not geom_poly_allowed.contains(geom_pt) + and not geom_poly_allowed.distance(geom_pt) < domain.min_dist_from_boundary + ): + return False + + return True + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + point_moved = False + poly = structure[idx_poly_with_error] + for p_id, point in enumerate(poly): + if point in domain.fixed_points: + continue + point.x = max(point.x, domain.min_x + domain.len_x * 0.05) + point.y = max(point.y, domain.min_y + domain.len_y * 0.05) + point.x = min(point.x, domain.max_x + domain.len_x * 0.05) + point.y = min(point.y, domain.max_y + domain.len_y * 0.05) + if point not in domain: + new_point = domain.geometry.nearest_point(point, domain.bound_poly) + poly.points[p_id] = new_point + point_moved = True + + if point_moved: + poly = domain.geometry.resize_poly(poly=poly, x_scale=0.8, y_scale=0.8) + + if poly[0] != poly[-1] and domain.geometry.is_closed: + poly.points.append(poly[0]) + elif poly[0] == poly[-1] and not domain.geometry.is_closed: + poly.points = poly.points[:-1] + + return poly + + +class PolygonNotSelfIntersects(PolygonRule): + @staticmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + poly = structure[idx_poly_with_error] + return not ( + len(poly) > 2 + and _forbidden_validity( + explain_validity( + ShapelyPolygon([ShapelyPoint(pt.x, pt.y) for pt in poly]), + ), + ) + ) + + @staticmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + poly = structure[idx_poly_with_error] + poly = domain.geometry.get_convex(poly) + return poly + + +def _forbidden_validity(validity): + return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity + + +class Rules(Enum): + not_too_close_polygons = PolygonsNotTooClose() + valid_polygon_geom = PolygonGeometryIsValid() + not_out_of_bounds = PolygonNotOutOfBounds() + not_self_intersects = PolygonNotSelfIntersects() + not_overlaps_prohibited = PolygonNotOverlapsProhibited() + not_too_close_points = PointsNotTooClose() diff --git a/gefest/core/algs/postproc/rules_base.py b/gefest/core/algs/postproc/rules_base.py new file mode 100644 index 000000000..a8e1e78f3 --- /dev/null +++ b/gefest/core/algs/postproc/rules_base.py @@ -0,0 +1,93 @@ +from abc import ABCMeta, abstractmethod + +from gefest.core.geometry import Polygon, Structure +from gefest.core.geometry.domain import Domain + + +class PolygonRule(metaclass=ABCMeta): + """Interface of postprocessing rule for polygon. + + Provides validation and correction functions for spicific error, + e.g. 'out of bounds', 'self intersection', 'unclosed polygon'. + """ + + @staticmethod + @abstractmethod + def validate( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> bool: + """Check if there is no error in the spicific polygon in structure. + + Args: + structure (Structure): Structure with error. + idx_ (int): Index of polygon with error in structure. + + Returns: + bool: True if polygon has no spicific problem, + otherwise False. + """ + ... + + @staticmethod + @abstractmethod + def correct( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + ) -> Polygon: + """Try to fix spicific error. + + The method does not guarantee error correction. + + Args: + structure (Structure): Structure with error. + idx_poly_with_error (int): Index of polygon with error in structure. + + Returns: + Polygon + """ + ... + + +class StructureRule(metaclass=ABCMeta): + """Interface of postprocessing rule for whloe structure. + + Provides validation and correction functions for spicific error, + e.g. 'polygons in structure too close'. + """ + + @staticmethod + @abstractmethod + def validate( + structure: Structure, + domain: Domain, + ) -> bool: + """Check if there is no error in the structure. + + Args: + structure (Structure): Structure for validation. + + Returns: + bool: True if structure has no spicific problem, + otherwise False. + """ + ... + + @staticmethod + @abstractmethod + def correct( + structure: Structure, + domain: Domain, + ) -> Structure: + """Try to fix spicific error. + The method does not guarantee error correction. + + Args: + structure (Structure): Structure with error. + + Returns: + Structure + """ + ... diff --git a/gefest/core/algs/postproc/validation.py b/gefest/core/algs/postproc/validation.py new file mode 100644 index 000000000..e534ddd95 --- /dev/null +++ b/gefest/core/algs/postproc/validation.py @@ -0,0 +1,32 @@ +from typing import Union + +from loguru import logger + +from gefest.core.algs.postproc.rules_base import PolygonRule, StructureRule +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.domain import Domain + + +def validate( + structure: Structure, + rules: list[Union[StructureRule, PolygonRule]], + domain: Domain, +) -> bool: + if structure is None: + return False + if any((not poly or len(poly) == 0 or any([not p for p in poly])) for poly in structure): + logger.error('Wrong structure - problems with points') + return False + + for rule in (rule for rule in rules if isinstance(rule, PolygonRule)): + for idx_, _ in enumerate(structure): + if not rule.validate(structure, idx_, domain): + logger.info(f'{rule.__class__.__name__} final fail') + return False + + for rule in (rule for rule in rules if isinstance(rule, StructureRule)): + if not rule.validate(structure, domain): + logger.info(f'{rule.__class__.__name__} final fail') + return False + + return True diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 2b2d8ad9b..1452cacd1 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -1,35 +1,61 @@ +from enum import Enum from functools import partial from typing import Callable, Optional, Union +from golem.core.optimisers.adaptive.operator_agent import MutationAgentTypeEnum +from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum +from golem.core.optimisers.genetic.operators.selection import SelectionTypesEnum from pydantic import BaseModel, ConfigDict, model_validator -from gefest.core.algs.postproc.resolve_errors import ( - PolygonRule, - StructureRule, - postprocess, -) +from gefest.core.algs.postproc.resolve_errors import Postrocessor +from gefest.core.algs.postproc.rules import PolygonRule, Rules, StructureRule from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry.domain import Domain from gefest.core.opt.adapters.structure import StructureAdapter -from gefest.core.opt.operators.crossovers import panmixis -from gefest.core.opt.operators.selections import tournament_selection +from gefest.core.opt.objective.objective import Objective +from gefest.core.opt.operators.crossovers import CrossoverTypes, panmixis +from gefest.core.opt.operators.mutations import MutationTypes +from gefest.core.opt.operators.selections import SelectionTypes from gefest.core.utils.logger import LogDispatcher -from gefest.tools.fitness import Fitness from gefest.tools.samplers.standard.standard import StandardSampler +ValidRules = Enum( + 'ValidRules', + ((value, value) for value in [r.name for r in Rules]), + type=str, +) + +ValidMutations = Enum( + 'ValidMutations', + ((value, value) for value in [r.name for r in MutationTypes]), + type=str, +) + +ValidCrossovers = Enum( + 'ValidCrossovers', + ((value, value) for value in [r.name for r in CrossoverTypes]), + type=str, +) + +ValidSelection = Enum( + 'ValidSelection', + ((value, value) for value in [r.name for r in SelectionTypes]), + type=str, +) + class OptimizationParams(BaseModel): - mutations: list[Callable] - crossovers: list[Callable] n_steps: int pop_size: int domain: Domain - estimator: Fitness - selector: Callable = tournament_selection + objectives: list[Objective] + mutations: Union[list[Callable], list[ValidMutations]] + crossovers: Union[list[Callable], list[ValidCrossovers]] + selector: Union[Callable, ValidSelection] pair_selector: Callable = panmixis sampler: Callable = StandardSampler - postprocessor: Callable = postprocess - postprocess_rules: list[Union[PolygonRule, StructureRule]] + postprocessor: Callable = Postrocessor.apply_postprocess + postprocess_rules: Union[list[Union[PolygonRule, StructureRule]], list[ValidRules]] mutation_strategy: str = 'MutationStrategy' crossover_strategy: str = 'CrossoverStrategy' postprocess_attempts: int = 3 @@ -46,9 +72,37 @@ class OptimizationParams(BaseModel): log_dir: str = 'logs' run_name: str = 'run_name' log_dispatcher: Callable = LogDispatcher + golem_keep_histoy: bool = False + golem_genetic_scheme_type: GeneticSchemeTypesEnum = 'steady_state' + golem_adaptive_mutation_type: MutationAgentTypeEnum = 'default' + golem_selection_type: SelectionTypesEnum = 'spea2' + golem_surrogate_each_n_gen: int = 5 @model_validator(mode='after') def create_classes_instances(self): + if isinstance(self.postprocess_rules[0], str): + self.postprocess_rules = [getattr(Rules, name).value for name in self.postprocess_rules] + + if isinstance(self.mutations[0], str): + self.mutations = [getattr(MutationTypes, name).value.func for name in self.mutations] + + if isinstance(self.crossovers[0], str): + self.crossovers = [getattr(CrossoverTypes, name).value.func for name in self.crossovers] + + if isinstance(self.golem_genetic_scheme_type, str): + self.selector = getattr(GeneticSchemeTypesEnum, self.golem_genetic_scheme_type.value) + + if isinstance(self.selector, str): + self.selector = getattr(SelectionTypes, self.selector) + + if self.mutation_each_prob is None: + self.mutation_each_prob = [1 / len(self.mutations) for _ in range(len(self.mutations))] + + if self.crossover_each_prob is None: + self.crossover_each_prob = [ + 1 / len(self.crossovers) for _ in range(len(self.crossovers)) + ] + self.postprocessor = partial( self.postprocessor, domain=self.domain, @@ -59,4 +113,6 @@ def create_classes_instances(self): self.golem_adapter = self.golem_adapter(self.domain) self.log_dispatcher = self.log_dispatcher(self.log_dir, self.run_name) + return self + model_config = ConfigDict({'arbitrary_types_allowed': True}) diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index 3761cffb8..cd32df4b4 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -1,10 +1,11 @@ +import inspect from ctypes import Structure from typing import Callable, Union from hyperopt import hp from pydantic import BaseModel, ConfigDict, field_validator -from gefest.core.opt.tuning.uitls import average_edge_variance +from gefest.core.opt.tuning import utils class TunerParams(BaseModel): @@ -17,17 +18,47 @@ class TunerParams(BaseModel): n_steps_tune: int hyperopt_dist: Union[Callable, str] = hp.uniform verbose: bool = True - variacne_generator: Callable[[Structure], list[float]] = average_edge_variance + variacne_generator: Union[Callable[[Structure], list[float]], str] = utils.average_edge_variance timeout_minutes: int = 60 + @field_validator('tuner_type') + def tuner_type_validate(cls, value): + if isinstance(value, str): + opt_names = ['iopt', 'optuna', 'sequential', 'simulataneous'] + if value in opt_names: + return value + else: + raise ValueError(f'Invalid distribution name: {value}. Allowed names: {opt_names}') + else: + raise ValueError(f'Invalid argument: {value} of type {type(value)}.') + @field_validator('hyperopt_dist') def hyperopt_fun_validate(cls, value): if isinstance(value, str): - return getattr(hp, value) + r_ = inspect.getmembers(hp, inspect.isfunction) + fun_names = [i[0] for i in r_] + if value in fun_names: + return getattr(hp, value) + else: + raise ValueError(f'Invalid distribution name: {value}. Allowed names: {fun_names}') + elif isinstance(value, Callable): + if value.__module__.split('.')[0] == hp.__name__.split('.')[0]: + return value + else: + raise ValueError(f'Invalid argument: {value} of type {type(value)}.') + + @field_validator('variacne_generator') + def variacne_generator_fun_validate(cls, value): + fun_names = ['average_edge_variance'] + if isinstance(value, str): + if value in fun_names: + return getattr(utils, value) + else: + raise ValueError(f'Invalid distribution name: {value}. Allowed names: {fun_names}') elif isinstance(value, Callable): if value.__module__.split('.')[0] == hp.__name__.split('.')[0]: return value else: - raise ValueError('Invalid argument') + raise ValueError(f'Invalid argument: {value} of type {type(value)}.') model_config = ConfigDict({'arbitrary_types_allowed': True}) diff --git a/gefest/core/configs/utils.py b/gefest/core/configs/utils.py new file mode 100644 index 000000000..34f1cc54f --- /dev/null +++ b/gefest/core/configs/utils.py @@ -0,0 +1,69 @@ +import importlib.util +import inspect +import sys +from pathlib import Path + +import yaml + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective + + +class ParseMetricsError(Exception): + def __init__(self, message=None, *args): + if args: + self.message = message + + def __str__(self): + if self.message: + return f'ParseMetricsError. {self.message}' + + +def dynamic_import(name): + import __main__ + + path = inspect.getfile(__main__) + components = name.split('.') + module = __import__('.'.join(components[:-1]), fromlist=[components[-1]]) + import_item = getattr(module, components[-1]) + return import_item + + +def load_config( + cfg_file_path: str, + metrics_file_path: str, + *args, + **kwargs, +) -> OptimizationParams: + """Generates configuretion files from yaml files. + + Args: + cfg_file_path (str): Path to config.yaml. + metrics_file_path (str): Path to metrics.py. + + Returns: + OptimizationParams: GEFEST unified configuretion file. + """ + config_dict = yaml.safe_load(Path(cfg_file_path).read_text()) + domain_cfg = Domain.model_validate(config_dict['domain']) + tuner_cfg = TunerParams.model_validate(config_dict['tuner_params']) + + module_ = __import__(Path(metrics_file_path).stem) + user_metrics = [] + for name, obj in inspect.getmembers(module_): + if inspect.isclass(obj): + if issubclass(obj, Objective) and obj is not Objective: + user_metrics.append(name) + + if not user_metrics: + raise ParseMetricsError('No Objective class has been loaded.') + + config_dict['opt_params']['domain'] = domain_cfg + config_dict['opt_params']['tuner_cfg'] = tuner_cfg + config_dict['opt_params']['objectives'] = [ + getattr(module_, metric)(domain_cfg) for metric in user_metrics + ] + opt_params = OptimizationParams.model_validate(config_dict['opt_params']) + return opt_params diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py index cb011fb20..5f831c342 100644 --- a/gefest/core/geometry/domain.py +++ b/gefest/core/geometry/domain.py @@ -1,38 +1,26 @@ -from pathlib import Path from typing import Optional, Union -import yaml -from pydantic import Field, computed_field, field_validator -from pydantic.dataclasses import dataclass -from pydantic_yaml import parse_yaml_raw_as +from pydantic import BaseModel, Field, computed_field, field_validator, model_validator from gefest.core.geometry import Point, Polygon, Structure -from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.geometry.geometry_2d import Geometry, Geometry2D +from gefest.core.utils.functions import parse_structs -@dataclass -class Domain: +class Domain(BaseModel): allowed_area: Union[Polygon, list[list[float]]] name: str = 'main' min_poly_num: int = 2 max_poly_num: int = 4 min_points_num: int = 20 max_points_num: int = 50 - polygon_side: float = 0.05 - min_dist_from_boundary: float = 1.0 - prohibited_area: Optional[Structure] = Field(default=Structure([])) + polygon_side: float = 0.0001 + min_dist_from_boundary: float = 0.0001 + prohibited_area: Optional[Union[Structure, str]] = Field(default=Structure([])) fixed_points: Optional[Union[Polygon, list[list[float]]]] = Field(default_factory=list) - geometry: Optional[Geometry2D] = Geometry2D() - - def parse_raw(self, cfg_file: Path): - - with open(cfg_file) as f: - cfg = yaml.safe_load(f) - - if 'domain' not in cfg: - raise AttributeError("No 'domain' section {cfg_file} config file.") - - return parse_yaml_raw_as(Domain, yaml.dump(cfg['domain'])) + geometry_is_convex: bool = True + geometry_is_closed: bool = True + geometry: Optional[Union[Geometry, str]] = '2D' def __contains__(self, point: Point): """Checking :obj:`Domain` contains :obj:`point` @@ -44,20 +32,63 @@ def __contains__(self, point: Point): """ return self.geometry.is_contain_point(self.allowed_area, point) - def __post_init__(self): + @model_validator(mode='after') + def create_classes_instances(self): if self.min_poly_num > self.max_poly_num: - raise ValueError('Invalid points number interval.') + raise ValueError('Invalid polygons number interval.') if self.min_points_num > self.max_points_num: raise ValueError('Invalid points number interval.') + if self.min_poly_num < 1 or self.max_poly_num < 1: + raise ValueError('Number of polygons must be positive value.') + min_points_in_poly = 1 + int(self.geometry_is_closed) + if self.min_points_num <= min_points_in_poly or self.max_points_num <= min_points_in_poly: + raise ValueError('Number of points must be >2/>1 for closed/non closed geometies.') + if self.geometry == '2D': + self.geometry = Geometry2D( + is_closed=self.geometry_is_closed, + is_convex=self.geometry_is_convex, + ) + return self + + @field_validator('min_poly_num') + def validate_min_poly_num(cls, data: int): + if data < 1: + raise ValueError('Min number of polygons must be positive value.') + return data + + @field_validator('max_poly_num') + def validate_max_poly_num(cls, data: int): + if data < 1: + raise ValueError('Max number of polygons must be positive value.') + return data + + @field_validator('min_points_num') + def validate_min_points_num(cls, data: int): + if data < 1: + raise ValueError('Max number of polygons must be positive value.') + return data @field_validator('fixed_points') - def parse_allowed_area(cls, data: Union[Polygon, list[list[float]]]): + def validate_fixed_points(cls, data: Union[Polygon, list[tuple[float, float]]]): if isinstance(data, Polygon): return data return Polygon([Point(*coords) for coords in data]) + @field_validator('prohibited_area') + def validate_prohibited_area(cls, data: Optional[Union[Structure, str]]): + if isinstance(data, Structure): + return data + if isinstance(data, str): + structs_from_file = parse_structs(data) + num_records = len(structs_from_file) + if num_records != 1: + raise ValueError(f'{num_records} structures found in {data} file, expected 1.') + else: + return structs_from_file[0] + raise TypeError(f'Invalid argument {data}.') + @field_validator('allowed_area') - def parse_allowed_area(cls, data: Union[Polygon, list[list[float]]]): + def validate_allowed_area(cls, data: Union[Polygon, list[list[float]]]): if data is None or len(data) <= 2: raise ValueError('Not enough points for allowed_area.') return Polygon([Point(*coords) for coords in data]) diff --git a/gefest/core/opt/adapters/configuration_mapping.py b/gefest/core/opt/adapters/configuration_mapping.py index 6497c61e2..2d449929c 100644 --- a/gefest/core/opt/adapters/configuration_mapping.py +++ b/gefest/core/opt/adapters/configuration_mapping.py @@ -3,6 +3,7 @@ from golem.core.optimisers.adaptive.operator_agent import MutationAgentTypeEnum from golem.core.optimisers.genetic.gp_params import GPAlgorithmParameters from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum +from golem.core.optimisers.genetic.operators.selection import SelectionTypesEnum from golem.core.optimisers.optimization_parameters import GraphRequirements from golem.core.optimisers.optimizer import GraphGenerationParams @@ -21,7 +22,7 @@ def map_into_graph_requirements( early_stopping_timeout=opt_params.early_stopping_timeout, early_stopping_iterations=opt_params.early_stopping_iterations, keep_n_best=opt_params.pop_size, - keep_history=False, + keep_history=opt_params.golem_keep_histoy, num_of_generations=opt_params.n_steps, n_jobs=opt_params.n_jobs, history_dir=opt_params.log_dir, @@ -34,7 +35,11 @@ def map_into_graph_generation_params( return GraphGenerationParams( adapter=opt_params.golem_adapter, rules_for_constraint=[ - partial(validate, rules=opt_params.postprocess_rules, domain=opt_params.domain), + partial( + validate, + rules=opt_params.postprocess_rules, + domain=opt_params.domain, + ), ], random_graph_factory=StructureFactory(opt_params.sampler, opt_params.golem_adapter), ) @@ -45,7 +50,10 @@ def map_into_gpa( ) -> GPAlgorithmParameters: return GPAlgorithmParameters( multi_objective=False, - genetic_scheme_type=GeneticSchemeTypesEnum.steady_state, + genetic_scheme_type=getattr( + GeneticSchemeTypesEnum, + opt_params.golem_genetic_scheme_type.name, + ), mutation_types=[ OperationWrap( executor=mutate_structure, @@ -71,9 +79,13 @@ def map_into_gpa( attempts=opt_params.postprocess_attempts, ), ], + selection_types=[getattr(SelectionTypesEnum, opt_params.golem_selection_type)], pop_size=opt_params.pop_size, - max_pop_size=int(opt_params.pop_size * 1.5), + max_pop_size=opt_params.pop_size, crossover_prob=opt_params.crossover_prob, mutation_prob=1, - adaptive_mutation_type=MutationAgentTypeEnum.default, + adaptive_mutation_type=getattr( + MutationAgentTypeEnum, + opt_params.golem_adaptive_mutation_type, + ), ) diff --git a/gefest/core/opt/adapters/operator.py b/gefest/core/opt/adapters/operator.py index 3e75201f5..373a08241 100644 --- a/gefest/core/opt/adapters/operator.py +++ b/gefest/core/opt/adapters/operator.py @@ -1,6 +1,10 @@ from functools import partial +from typing import Any +from golem.serializers.serializer import register_serializable + +@register_serializable class OperationWrap: def __init__( self, @@ -41,3 +45,10 @@ def __call__(self, *args, **kwargs): if executor.func.__name__ == 'mutate_structure': corrected = corrected[0] return corrected + + def __str__(self): + return f'{self.operations[0].__name__}' + + def to_json(self) -> dict[str, Any]: + """Serializes object and ignores unrelevant fields.""" + return {'Name': f'{self.operations[0].__name__}'} diff --git a/gefest/core/opt/objective/__init__.py b/gefest/core/opt/objective/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/gefest/core/opt/objective/objective.py b/gefest/core/opt/objective/objective.py new file mode 100644 index 000000000..65f1a3df8 --- /dev/null +++ b/gefest/core/opt/objective/objective.py @@ -0,0 +1,30 @@ +from abc import ABCMeta, abstractmethod +from typing import Optional + +from gefest.core.geometry import Structure +from gefest.core.geometry.domain import Domain +from gefest.tools import Estimator + + +class Objective(metaclass=ABCMeta): + def __init__( + self, + domain: Domain, + estimator: Optional[Estimator] = None, + ) -> None: + self.domain = domain + self.estimator = estimator + + def __call__( + self, + ind: Structure, + **kwargs, + ) -> list[Structure]: + return self.evaluate(ind) + + @abstractmethod + def evaluate( + self, + ind: Structure, + ) -> float: + ... diff --git a/gefest/core/opt/objective/objective_eval.py b/gefest/core/opt/objective/objective_eval.py new file mode 100644 index 000000000..87ea8dd0e --- /dev/null +++ b/gefest/core/opt/objective/objective_eval.py @@ -0,0 +1,30 @@ +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.opt.objective.objective import Objective +from gefest.core.utils import where + + +class ObjectivesEvaluator: + def __init__( + self, + objectives: list[Objective], + ) -> None: + self.objectives = objectives + + def __call__( + self, + pop: list[Structure], + **kwargs, + ) -> list[Structure]: + return self.set_pop_objectives(pop=pop) + + def set_pop_objectives( + self, + pop: list[Structure], + ) -> list[Structure]: + for idx in where(pop, lambda ind: len(ind.fitness) == 0): + pop[idx] = self.eval_objectives(pop[idx]) + return sorted(pop, key=lambda x: x.fitness) + + def eval_objectives(self, ind: Structure) -> Structure: + ind.fitness = [obj(ind) for obj in self.objectives] + return ind diff --git a/gefest/core/opt/objectives.py b/gefest/core/opt/objectives.py deleted file mode 100644 index 06bc2712d..000000000 --- a/gefest/core/opt/objectives.py +++ /dev/null @@ -1,21 +0,0 @@ -from typing import List - -from gefest.core.opt.analytics import EvoAnalytics -from gefest.core.opt.individual import Individual - - -def calculate_objectives(population: List[Individual], model_func): - for ind_id, ind in enumerate(population): - structure = ind.genotype - objective = model_func(structure) - ind.objectives = [objective] - ind.analytics_objectives = [objective] - idx = ind_id - EvoAnalytics.save_cantidate( - ind.population_number, - ind.objectives, - ind.analytics_objectives, - ind.genotype, - "common_dataset", - idx, - ) diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 1f8159969..942c9f4c0 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -1,5 +1,7 @@ import copy import random +from enum import Enum +from functools import partial from itertools import product from typing import Callable @@ -85,7 +87,6 @@ def structure_level_crossover( return (new_structure,) -@logger.catch def polygon_level_crossover( s1: Structure, s2: Structure, @@ -138,3 +139,8 @@ def polygon_level_crossover( idx_ = where(s1.polygons, lambda p: p == poly_1)[0] s1[idx_] = new_poly return s1 + + +class CrossoverTypes(Enum): + structure_level = partial(structure_level_crossover) + polygon_level = partial(polygon_level_crossover) diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index a481731fa..95da2029c 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -1,4 +1,6 @@ import copy +from enum import Enum +from functools import partial from typing import Callable import numpy as np @@ -51,7 +53,7 @@ def mutate_structure( @logger.catch -def rotate_poly( +def rotate_poly_mutation( new_structure: Structure, domain: Domain, idx_: int = None, @@ -66,7 +68,7 @@ def rotate_poly( @logger.catch -def drop_poly( +def drop_poly_mutation( new_structure: Structure, domain: Domain, idx_: int = None, @@ -81,7 +83,7 @@ def drop_poly( @logger.catch -def add_poly( +def add_poly_mutation( new_structure: Structure, domain: Domain, idx_: int = None, @@ -95,7 +97,7 @@ def add_poly( @logger.catch -def resize_poly( +def resize_poly_mutation( new_structure: Structure, domain: Domain, idx_: int = None, @@ -313,7 +315,7 @@ def pos_change_point_mutation( @logger.catch -def add_point( +def add_point_mutation( new_structure: Structure, domain: Domain, idx_: int = None, @@ -406,7 +408,7 @@ def add_point( @logger.catch -def drop_point( +def drop_point_mutation( new_structure: Structure, domain: Domain, idx_: int = None, @@ -435,3 +437,13 @@ def drop_point( new_structure[idx_] = polygon_to_mutate return new_structure + + +class MutationTypes(Enum): + rotate_poly = partial(rotate_poly_mutation) + resize_poly = partial(resize_poly_mutation) + add_point = partial(add_point_mutation) + drop_point = partial(drop_point_mutation) + add_poly = partial(add_poly_mutation) + drop_poly = partial(drop_poly_mutation) + pos_change_point = partial(pos_change_point_mutation) diff --git a/gefest/core/opt/operators/selections.py b/gefest/core/opt/operators/selections.py index e6cc04e29..14cf9012d 100644 --- a/gefest/core/opt/operators/selections.py +++ b/gefest/core/opt/operators/selections.py @@ -1,4 +1,6 @@ import math +from enum import Enum +from functools import partial from random import randint import numpy as np @@ -64,3 +66,8 @@ def tournament_selection( rnd = pop[randint(0, len(pop) - 1)] chosen.append(rnd) return chosen + + +class SelectionTypes(Enum): + roulette_selection = partial(roulette_selection) + tournament_selection = partial(tournament_selection) diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index 3e91a6142..2248ad372 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -58,5 +58,4 @@ def crossover(self, pop: list[Structure]): for enum_id, idx in enumerate(idx_failed): new_generation[idx] = generated[enum_id] - pop.extend(new_generation) - return pop + return new_generation diff --git a/gefest/core/opt/tuning/__init__.py b/gefest/core/opt/tuning/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/core/opt/tuning/tuner.py index 7d357ba7b..315965cc4 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/core/opt/tuning/tuner.py @@ -15,7 +15,10 @@ from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -from gefest.core.opt.tuning.uitls import VarianceGeneratorType, fitness_validation_wrap +from gefest.core.opt.tuning.utils import ( + GolemObjectiveWithPreValidation, + VarianceGeneratorType, +) GolemTunerType = Union[IOptTuner, OptunaTuner, SequentialTuner, SimultaneousTuner] @@ -42,21 +45,17 @@ def __init__( ) -> None: self.log_dispatcher = opt_params.log_dispatcher self.domain: Domain = opt_params.domain - validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) - estimator_with_validaion = partial( - fitness_validation_wrap, - fitness_fun=opt_params.estimator, - validator=validator, - ) - objective = Objective( - quality_metrics={ - type(opt_params.estimator).__name__: estimator_with_validaion, - }, - ) + self.validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) self.tuner_type: str = opt_params.tuner_cfg.tuner_type - self.eval_n_jobs: int = 1 if opt_params.estimator.estimator else -1 - self.objective_evaluate: ObjectiveEvaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) + self.eval_n_jobs: int = 1 + # self.objective_evaluate: ObjectiveEvaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) self.adapter: Callable = opt_params.golem_adapter + self.objective = GolemObjectiveWithPreValidation( + quality_metrics={obj.__class__.__name__: obj for obj in opt_params.objectives}, + validator=self.validator, + adapter=self.adapter, + is_multi_objective=len(opt_params.objectives) > 1, + ) self.hyperopt_distrib: Union[Callable, str] = opt_params.tuner_cfg.hyperopt_dist self.n_steps_tune: int = opt_params.tuner_cfg.n_steps_tune self.verbose: bool = opt_params.tuner_cfg.verbose @@ -68,14 +67,17 @@ def _get_tuner( graph: OptGraph, search_space: SearchSpace, ) -> GolemTunerType: - return getattr(TunerType, self.tuner_type).value( - objective_evaluate=self.objective_evaluate, - search_space=search_space, - adapter=self.adapter, - iterations=self.n_steps_tune, - n_jobs=self.eval_n_jobs, - timeout=self.timeout, - ) + kwargs = { + 'objective_evaluate': self.objective, + 'search_space': search_space, + 'adapter': self.adapter, + 'iterations': self.n_steps_tune, + 'n_jobs': self.eval_n_jobs, + 'timeout': self.timeout, + } + if self.tuner_type == 'optuna': + kwargs['objectives_number'] = len(self.objective.metrics) + return getattr(TunerType, self.tuner_type).value(**kwargs) def _generate_search_space( self, @@ -121,10 +123,14 @@ def tune( self.generate_variances(struct, self.domain, self.hyperopt_distrib), ) tuner = self._get_tuner(graph, SearchSpace(search_space)) - tuned_structure = tuner.tune(graph) - metric = tuner.obtained_metric - tuned_structure.fitness = [metric] if not isinstance(metric, list) else metric - tuned_objects.append(tuned_structure) + tuned_structures = tuner.tune(graph) + metrics = tuner.obtained_metric + if isinstance(tuned_structures, Structure): + tuned_structures = [tuned_structures] + metrics = [tuner.obtained_metric] + for idx_, _ in enumerate(tuned_structures): + tuned_structures[idx_].fitness = metrics[idx_] + tuned_objects.extend(tuned_structures) tuned_objects = sorted(tuned_objects, key=lambda x: x.fitness) self.log_dispatcher.log_pop(tuned_objects, 'tuned') return tuned_objects diff --git a/gefest/core/opt/tuning/uitls.py b/gefest/core/opt/tuning/utils.py similarity index 56% rename from gefest/core/opt/tuning/uitls.py rename to gefest/core/opt/tuning/utils.py index 139578c77..27e57d779 100644 --- a/gefest/core/opt/tuning/uitls.py +++ b/gefest/core/opt/tuning/utils.py @@ -1,17 +1,45 @@ -from typing import Callable +from typing import Any, Callable, Dict, Optional, Union +from golem.core.dag.graph import Graph +from golem.core.optimisers.fitness import Fitness, MultiObjFitness, SingleObjFitness +from golem.core.optimisers.objective.objective import Objective as GolemObjective from hyperopt import hp from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -from gefest.tools.fitness import Fitness +from gefest.core.opt.adapters.structure import StructureAdapter +from gefest.core.opt.objective.objective import Objective VarianceGeneratorType = Callable[[Structure], list[float]] -def fitness_validation_wrap( +class GolemObjectiveWithPreValidation(GolemObjective): + def __init__( + self, + quality_metrics: Union[Callable, Dict[Any, Callable]], + validator: Callable, + adapter: StructureAdapter, + complexity_metrics: Optional[Dict[Any, Callable]] = None, + is_multi_objective: bool = False, + ) -> None: + super().__init__(quality_metrics, complexity_metrics, is_multi_objective) + self.validator = validator + self.adapter = adapter + + def __call__(self, graph: Graph, **metrics_kwargs: Any) -> Fitness: + if self.validator(self.adapter.restore(graph)): + res = super().__call__(graph, **metrics_kwargs) + return res + else: + if self.is_multi_objective: + return MultiObjFitness(values=[1.0e42] * len(self.quality_metrics), weights=1.0) + else: + return SingleObjFitness(1.0e42) + + +def objective_validation_wrap( struct: Structure, - fitness_fun: Fitness, + objectives: Objective, validator: Callable, ) -> float: """Applys validation rules to structure. @@ -26,11 +54,6 @@ def fitness_validation_wrap( Returns: float: None if structure invalid else fintess function output """ - if validator(struct): - fitness = fitness_fun.fitness(struct) - else: - fitness = 1.0e42 - return fitness def _get_uniform_args(mode: float, variance: float) -> tuple[float, float]: diff --git a/gefest/core/utils/__init__.py b/gefest/core/utils/__init__.py index 6281c79a2..a1b6ad073 100644 --- a/gefest/core/utils/__init__.py +++ b/gefest/core/utils/__init__.py @@ -1,2 +1,2 @@ -from .functions import chained_call, project_root, where +from .functions import project_root, where from .parallel_manager import BaseParallelDispatcher diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index bc3708c96..6ca0fa397 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -99,7 +99,7 @@ def make_gif(self, gifname, duration=1500, loop=-1): # imgs = [Image.fromarray(img) for img in self.frames] # imgs[0].save(f"./{gifname}.fig", save_all=True, append_images=imgs[1:], duration=duration, loop=0) # clip = mp.VideoFileClip("mygif.gif") - clip = mp.ImageSequenceClip(self.frames, durations=[1500] * len(self.frames), fps=0.66) + clip = mp.ImageSequenceClip(self.frames, durations=[duration] * len(self.frames), fps=1000/duration) clip.write_videofile(f'./{gifname}.mp4') self.frames = [] self.counter = 0 diff --git a/gefest/tools/__init__.py b/gefest/tools/__init__.py index 4fcce3f52..a91ecd46e 100644 --- a/gefest/tools/__init__.py +++ b/gefest/tools/__init__.py @@ -1,2 +1 @@ from gefest.tools.estimators.estimator import Estimator -from gefest.tools.fitness import Fitness diff --git a/gefest/tools/fitness.py b/gefest/tools/fitness.py deleted file mode 100644 index 1ded43574..000000000 --- a/gefest/tools/fitness.py +++ /dev/null @@ -1,42 +0,0 @@ -from abc import ABCMeta, abstractmethod -from typing import Optional - -from loguru import logger - -from gefest.core.geometry import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.utils import where -from gefest.tools import Estimator - - -class Fitness(metaclass=ABCMeta): - def __init__( - self, - domain: Domain, - estimator: Optional[Estimator] = None, - ) -> None: - self.domain = domain - self.estimator = estimator - - def __call__( - self, - pop: list[Structure], - **kwargs, - ) -> list[Structure]: - return self.set_pop_fitness(pop=pop) - - @logger.catch - def set_pop_fitness( - self, - pop: list[Structure], - ) -> list[Structure]: - for idx in where(pop, lambda ind: len(ind.fitness) == 0): - fit = self.fitness(pop[idx]) - if not isinstance(fit, list): - fit = [fit] - pop[idx].fitness = fit - return sorted(pop, key=lambda x: x.fitness) - - @abstractmethod - def fitness(self, ind: Structure) -> float: - ... diff --git a/gefest/tools/optimizers/GA/GA.py b/gefest/tools/optimizers/GA/GA.py index 7c2fe4131..e5279aea2 100644 --- a/gefest/tools/optimizers/GA/GA.py +++ b/gefest/tools/optimizers/GA/GA.py @@ -15,9 +15,11 @@ def step(self, population, performance, verbose=True, **kwargs): self._pop = sorted(selected, key=lambda x: x.fitness) un_pop = set() - self._pop = \ - [un_pop.add(str(ind.genotype)) or ind for ind in self._pop - if str(ind.genotype) not in un_pop] + self._pop = [ + un_pop.add(str(ind.genotype)) or ind + for ind in self._pop + if str(ind.genotype) not in un_pop + ] self._pop.extend(self.reproduce(self._pop)) diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index c120874a2..0c7d07b11 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -5,7 +5,7 @@ from gefest.core.geometry import Structure from gefest.core.opt import strategies -from gefest.core.utils.logger import LogDispatcher +from gefest.core.opt.objective.objective_eval import ObjectivesEvaluator from gefest.tools.optimizers.optimizer import Optimizer @@ -20,13 +20,13 @@ def __init__( self.crossover = getattr(strategies, opt_params.crossover_strategy)(opt_params=opt_params) self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) self.sampler: Callable = opt_params.sampler - self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator + self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator(opt_params.objectives) self.selector: Callable = opt_params.selector self.pop_size = opt_params.pop_size self.n_steps = opt_params.n_steps self.domain = self.opt_params.domain self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) - self._pop = self.estimator(self._pop) + self._pop = self.objectives_evaluator(self._pop) self.log_dispatcher.log_pop(self._pop, '00000_init') def optimize(self) -> list[Structure]: @@ -34,7 +34,7 @@ def optimize(self) -> list[Structure]: self._pop = self.crossover(self._pop) self._pop = self.mutation(self._pop) self._pop.extend(self.sampler(self.opt_params.extra)) - self._pop = self.estimator(self._pop) + self._pop = self.objectives_evaluator(self._pop) self._pop = self.selector(self._pop, self.opt_params.pop_size) self.log_dispatcher.log_pop(self._pop, str(step + 1)) return self._pop diff --git a/gefest/tools/optimizers/SPEA2/SPEA2.py b/gefest/tools/optimizers/SPEA2/SPEA2.py index 75bc03cfb..e9f0dcbea 100644 --- a/gefest/tools/optimizers/SPEA2/SPEA2.py +++ b/gefest/tools/optimizers/SPEA2/SPEA2.py @@ -146,46 +146,13 @@ def optimize(self): if step == self.n_steps: return self.archive self._pop = self.selector(self._pop, self.opt_params.pop_size) - self._pop = self.crossover(self._pop) - self._pop = self.mutation(self._pop) - self._pop.extend(self.sampler(5)) + children = self.crossover(self._pop) + mutated_children = self.mutation(children) + extras = self.sampler(self.opt_params.extra) + self._pop.extend(mutated_children + extras) self._pop = self.estimator(self._pop) self.calculate_sepa2_fitness() - self.logger.log_pop(self._pop, step) + self.log_dispatcher.log_pop(self._pop, str(step + 1)) self._pop = sorted(self._pop, key=lambda x: x.fitness) return self._pop - - def step(self, population, performance, n_step, is_last=False): - """ - One step of optimization procedure - :param population: (List[Structure]) population of structures - :param performance: (List[List]) multi dimension performance - :param n_step: (Int) number of step - :param is_last: (Optional(Bool)) check for last step in generative design procedure - :return: (List[Structure]) optimized population - """ - self.n_criteria = 2 - - # Step 1, fitness assignment - self.calculate_sepa2_fitness() - - # Step 2, environmental selection - self.environmental_selection() - - self._save_archive(n_step) - - # Step 3, check for last step (termination) - if is_last: - return self.archive - - # Step 4, mating selection - self._pop = self.selector() - - # Step 5, variation (genetic operators step) - self._pop = self.crossover(self._pop) - self._pop = self.mutation(self._pop) - self._pop.extend(self.sampler(1)) - self._pop = self.estimator(self._pop) - - return population diff --git a/gefest/tools/optimizers/golem_optimizer/standard.py b/gefest/tools/optimizers/golem_optimizer/standard.py new file mode 100644 index 000000000..89ca846d2 --- /dev/null +++ b/gefest/tools/optimizers/golem_optimizer/standard.py @@ -0,0 +1,38 @@ +from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer +from golem.core.optimisers.objective import Objective + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.opt.adapters.configuration_mapping import ( + map_into_gpa, + map_into_graph_generation_params, + map_into_graph_requirements, +) +from gefest.tools.optimizers.optimizer import Optimizer + + +class StandardOptimizer(Optimizer): + def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: + super().__init__(opt_params.log_dispatcher, **kwargs) + self.opt_params = opt_params + self.objective = Objective( + quality_metrics={obj.__class__.__name__: obj for obj in opt_params.objectives}, + is_multi_objective=len(opt_params.objectives) > 1, + ) + self.requirements = map_into_graph_requirements(opt_params) + self.ggp = map_into_graph_generation_params(opt_params) + self.gpa = map_into_gpa(opt_params) + self.initial_pop = list( + map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size)), + ) + self.__standard_opt = EvoGraphOptimizer( + objective=self.objective, + initial_graphs=self.initial_pop, + requirements=self.requirements, + graph_generation_params=self.ggp, + graph_optimizer_params=self.gpa, + ) + + def optimize(self): + optimized_graphs = self.__standard_opt.optimise(self.objective) + optimized_pop = list(map(self.opt_params.golem_adapter.restore, optimized_graphs)) + return optimized_pop diff --git a/gefest/tools/optimizers/golem_optimizer/surrogate.py b/gefest/tools/optimizers/golem_optimizer/surrogate.py index e2111fd18..25e60e1c5 100644 --- a/gefest/tools/optimizers/golem_optimizer/surrogate.py +++ b/gefest/tools/optimizers/golem_optimizer/surrogate.py @@ -13,23 +13,27 @@ class SurrogateOptimizer(Optimizer): def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: super().__init__(opt_params.log_dispatcher, **kwargs) + self.opt_params = opt_params self.objective = Objective( - quality_metrics={ - type(opt_params.estimator).__name__: opt_params.estimator.fitness, - }, + quality_metrics={obj.__class__.__name__: obj for obj in opt_params.objectives}, + is_multi_objective=len(opt_params.objectives) > 1, ) self.requirements = map_into_graph_requirements(opt_params) self.ggp = map_into_graph_generation_params(opt_params) self.gpa = map_into_gpa(opt_params) - pop = list(map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size))) + self.initial_pop = list( + map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size)), + ) self.__surrogate_opt = SurrogateEachNgenOptimizer( objective=self.objective, - initial_graphs=pop, + initial_graphs=self.initial_pop, requirements=self.requirements, graph_generation_params=self.ggp, graph_optimizer_params=self.gpa, - surrogate_each_n_gen=5, # make surrogate config + surrogate_each_n_gen=self.opt_params.golem_surrogate_each_n_gen, ) def optimize(self): - return self.__surrogate_opt.optimise(self.objective) + optimized_graphs = self.__surrogate_opt.optimise(self.objective) + optimized_pop = list(map(self.opt_params.golem_adapter.restore, optimized_graphs)) + return optimized_pop diff --git a/refactored.py b/refactored.py index 04764b37d..e94fc5e31 100644 --- a/refactored.py +++ b/refactored.py @@ -1,391 +1,24 @@ -from functools import partial -from typing import Callable, Optional, Union - -import numpy as np -from loguru import logger -from matplotlib import pyplot as plt -from pydantic.dataclasses import dataclass -from tqdm import tqdm - -from gefest.core.algs.postproc.resolve_errors import Rules, PolygonRule, StructureRule -from gefest.core.geometry import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.geometry.utils import * -from gefest.core.opt.operators.crossovers import panmixis, structure_level_crossover, polygon_level_crossover -from gefest.core.opt.operators.mutations import * -from gefest.core.opt.operators.selections import tournament_selection, roulette_selection -from gefest.core.opt.strategies.crossover import CrossoverStrategy -from gefest.core.opt.strategies.mutation import MutationStrategy -from gefest.core.opt.strategies.strategy import Strategy -from gefest.core.structure.prohibited import create_prohibited -from gefest.tools.optimizers.optimizer import Optimizer -from gefest.tools.samplers.standard.standard import StandardSampler -from golem.core.optimisers.objective import ObjectiveEvaluate -from gefest.core.opt.adapters.structure import StructureAdapter -from golem.core.tuning.iopt_tuner import IOptTuner -from golem.core.tuning.search_space import SearchSpace -from golem.core.optimisers.objective import Objective -from hyperopt import hp -from pydantic import RootModel - -class LogDispatcher: - def __init__(self) -> None: - logger.warning("Logger configured outside.") - - def log_pop(self, pop: list[Structure], step: int): - logger.log(3, f'Step {step}') - for ind in pop: - logger.log(4, RootModel[Structure](ind).model_dump()) - logger.info("Population logged. May be not sorted by fitness.") - -@dataclass -class OptimizationParams: - mutations: list[Callable] - crossovers: list[Callable] - mutation_strategy: Callable - crossover_strategy: Callable - n_steps: int - pop_size: int - postprocess_attempts: int - domain: Domain - selector: Callable - pair_selector: Callable - sampler: Callable - estimator: Callable - postprocessor: Callable - postprocess_rules: list[Union[PolygonRule, StructureRule]] - mutation_prob: float = 0.6 - crossover_prob: float = 0.8 - mutation_each_prob: Optional[list[float]] = None - crossover_each_prob: Optional[list[float]] = None - n_jobs: Optional[int] = -1 - - def __post_init__(self): - self.crossovers = [ - partial(fun, domain=self.domain) - for fun in self.crossovers - ] - self.postprocessor = partial( - self.postprocessor, - domain=self.domain, - rules=self.postprocess_rules, - ) - self.sampler = self.sampler(opt_params=self) - self.crossover_strategy = self.crossover_strategy(opt_params=self) - self.mutation_strategy = self.mutation_strategy(opt_params=self) - - -def search_space_generator(graph, pad): - return {node.name : { - param : { - 'hyperopt-dist': hp.loguniform, - 'sampling-scope': [val - pad*3, val + pad*3], - 'type': 'continuous', - } for param, val in zip( - list(graph.nodes[idx_].content['params'].keys()), - list(graph.nodes[idx_].content['params'].values()), - ) - } for idx_, node in enumerate(graph.nodes)} +from gefest.core.configs.utils import load_config +from gefest.core.opt.tuning.tuner import GolemTuner +from gefest.core.viz.struct_vizualizer import GIFMaker +from gefest.tools.optimizers.golem_optimizer.standard import StandardOptimizer if __name__ == '__main__': - # logger.add('somefile.log', enqueue=True) - - class BaseGA(Optimizer): - def __init__( - self, - opt_params: OptimizationParams, - **kwargs, - ): - super().__init__(LogDispatcher()) - self.opt_params: OptimizationParams = opt_params - self.crossover: Strategy = opt_params.crossover_strategy - self.mutation: Strategy = opt_params.mutation_strategy - self.sampler: Callable = opt_params.sampler - self.estimator: Callable[[list[Structure]], list[Structure]] = opt_params.estimator - self.selector: Callable = opt_params.selector - self.pop_size = opt_params.pop_size - self.n_steps = opt_params.n_steps - self.domain = self.opt_params.domain - self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) - self._pop = self.estimator(self._pop) - self.logger.log_pop(self._pop, 'init') - - def optimize(self) -> list[Structure]: - for step in tqdm(range(self.n_steps)): - self._pop = self.selector(self._pop, self.opt_params.pop_size) - self._pop = self.crossover(self._pop) - self._pop = self.mutation(self._pop) - self._pop.extend(self.sampler(5)) - self._pop = self.estimator(self._pop) - self.logger.log_pop(self._pop, step) - - self._pop = sorted(self._pop, key=lambda x: x.fitness) - [print(x.fitness) for x in self._pop] - return self._pop - - - def area_length_ratio(pop: list[Structure], domain: Domain): - if isinstance(pop, Structure): - pop = [pop] - for ind in pop: - ind.fitness = domain.max_x * domain.max_y - losses = [] - for idx, poly in enumerate(ind): - area = domain.geometry.get_square(poly) - length = domain.geometry.get_length(poly) - - if area == 0: - losses.append(sum(losses[::idx]) / idx) - else: - losses.append(1 - 4 * np.pi * area / length ** 2) - if len(losses) > 0: - ind.fitness = sum(losses) - return pop - - # domain = Domain( colsol - # allowed_area=[ - # (-125, 100), - # (-75, 170), - # (15, 170), - # (30, 90), - # (-20, -130), - # (-20, -170), - # (-125, -170), - # (-125, 100), - # ], - # geometry=Geometry2D(is_closed=True), - # max_poly_num=6, - # min_poly_num=1, - # max_points_num=16, - # min_points_num=5, - # is_closed=True, - # ) - - - - # domain = Domain( - # allowed_area=[ - # (0, 0), - # (0, 100), - # (100, 100), - # (100, 0), - # (0, 0), - # ], - # geometry=Geometry2D(is_closed=True, is_convex=True), - # max_poly_num=4, - # min_poly_num=2, - # max_points_num=8, - # min_points_num=4, - # polygon_side=0.01, - # ) - # print(domain.dist_between_points) - # print(domain.dist_between_polygons) - # print(domain.min_dist_from_boundary) - from pathlib import Path - - from gefest.core.geometry import PolyID - from gefest.tools import Estimator - from gefest.tools.estimators.simulators.swan.swan_interface import Swan - - - grid_resolution_x = 83 # Number of points on x-axis - grid_resolution_y = 58 # Number of points on y-axis - coord_X = np.linspace(0, 2075, grid_resolution_x + 1) # X coordinate for spatial grid - coord_Y = np.linspace(0, 1450, grid_resolution_y + 1) # Y coordinate for spatial grid - - grid = [grid_resolution_x, grid_resolution_y] # points grid - targets = [[49, 26], [11, 37], [5, 60]] # grid coordinates of considered targets - """ - Prohibited objects - """ - fixed_area = [ - [[471, 5], [1335, 2], [1323, 214], [1361, 277], [1395, 327], [1459, 405], [1485, 490], [1449, 521], [1419, 558], - [1375, 564], [1321, 469], [1248, 318], [1068, 272], [921, 225], [804, 231], [732, 266], [634, 331], [548, 405], - [485, 482], [424, 569], [381, 625], [310, 662], [271, 684], [244, 706], [203, 708], [182, 647], [214, 638], - [234, 632], [275, 588], [346, 475], [427, 366], [504, 240], [574, 166], [471, 5]], - [[652, 1451], [580, 1335], [544, 1253], [468, 1190], [439, 1170], [395, 1150], [378, 1115], [438, 1070], - [481, 1059], [508, 1076], [539, 1133], [554, 1183], [571, 1244], [594, 1305], [631, 1366], [657, 1414], - [671, 1449], [652, 1451]] - ] - fixed_targets = [[coord_X[26], coord_Y[49]], [coord_X[37], coord_Y[11]], [coord_X[60], coord_Y[5]]] - fixed_poly = [ - [[878, 1433], [829, 1303], [739, 1116], [619, 995], [447, 962], [306, 1004], [254, 1092], [241, 1184], - [269, 1244], - [291, 1338], [370, 1450]], - [[878, 1433], [829, 1303], [739, 1116], [619, 995], [447, 962], [274, 868], [180, 813], [126, 717], [146, 580], - [203, 480], [249, 469], [347, 471]] - ] - - # Creation of prohibited structure consist of targets, lines, areas - prohibited_structure = create_prohibited( - targets=fixed_targets, - fixed_area=fixed_area, - fixed_points=fixed_poly, - ) - - domain = Domain(allowed_area=[(min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y))], - prohibited_area=prohibited_structure, - geometry=Geometry2D(is_closed=False, is_convex=True), - max_poly_num=4, - min_poly_num=2, - max_points_num=16, - min_points_num=4, - polygon_side=0.01, - ) - - # root_path = Path(__file__).parent.parent.parent.parent - path_sim = ( - 'F:/Git_Repositories/gef_ref/GEFEST/gefest/tools/estimators/simulators/swan/swan_model/' + opt_params = load_config( + 'F:\\Git_Repositories\\gef_ref\\GEFEST\\zcfg.yaml', + 'F:\\Git_Repositories\\gef_ref\\GEFEST\\zmetrics.py', ) - from gefest.tools import Fitness - from gefest.tools.estimators.simulators.swan.swan_interface import Swan - class SwanFitness(Fitness): - def __init__(self, estimator, domain, max_length): - super().__init__(estimator) - self.domain = domain - self.max_length = max_length - def fitness(self, ind: Structure): - lengths = 0 - for poly in ind: - length = self.domain.geometry.get_length(poly) - lengths += length - # c.polygons.extend([ - # p for p in domain.prohibited_area.polygons - # if p.id_ not in [PolyID.PROH_TARG]]) - idk, hs = self.estimator(struct=ind) - l_f = [hs, 2 * lengths / self.max_length] # lengths / (2 * self.max_length) + hs - - return l_f - - # class ComsolFitness(Fitness): - # def __init__(self, simulator, domain): - # super().__init__(simulator) - # self.domain = domain - # def fitness(self, ind: Structure): - # ind = self.estimator(ind) - # if ind is None: - # print("None") - # return ind - estimator = SwanFitness( - Swan(path=path_sim, - targets=targets, - grid=grid, - domain=domain), - domain, - np.linalg.norm(np.array([max(coord_X) - min(coord_X), max(coord_Y) - min(coord_Y)])), - ) - - # from gefest.tools.estimators.simulators.comsol.comsol_interface import Comsol - # comsol = Comsol('C:\\Users\\mangaboba\\Downloads\\rbc-trap-setup.mph') - # estimator = ComsolFitness(simulator=comsol, domain=domain) - - - opt_params = OptimizationParams( - crossovers=[ - partial(polygon_level_crossover, domain=domain), - partial(structure_level_crossover, domain=domain)], - mutations=[ - rotate_poly, - resize_poly, - add_point, - drop_point, - add_poly, - drop_poly, - pos_change_point_mutation, - ], - mutation_strategy=MutationStrategy, - crossover_strategy=CrossoverStrategy, - mutation_prob=0.6, - crossover_prob=0.6, - crossover_each_prob=[0.0, 1.0], - mutation_each_prob=[0.125, 0.125, 0.25, 0.11, 0.07, 0.07, 0.25], - n_steps=8, - pop_size=5, - selector=tournament_selection, - pair_selector=panmixis, - postprocess_attempts=3, - domain=domain, - postprocessor=postprocess, - postprocess_rules=[ - - Rules.not_out_of_bounds.value, - Rules.not_closed_polygon.value, - Rules.not_self_intersects.value, - Rules.not_too_close_polygons.value, - Rules.not_overlaps_prohibited.value, - Rules.not_too_close_points.value, - ], - sampler=StandardSampler, - estimator=estimator, - n_jobs=-1, - ) - - # with configuration(opt_params): - # optimizer = BaseGA(opt_params) - from gefest.tools.optimizers.SPEA2.SPEA2 import SPEA2 - optimizer = SPEA2(opt_params) - import cProfile - logger.add( - "individuals.log", - level=3, - format="{message}", - filter=lambda record: record["level"].name in ['Level 3', 'Level 4'], - ) - - optimizer.optimize() - - - - # def tune_fintess(pop: Structure, domain: Domain): - - - - # fitness = domain.max_x * domain.max_y - # losses = [] - # for idx, poly in enumerate(pop): - # area = domain.geometry.get_square(poly) - # length = domain.geometry.get_length(poly) - - # if area == 0: - # losses.append(sum(losses[::idx]) / idx) - # else: - # losses.append(1 - 4 * np.pi * area / length ** 2) - # if len(losses) > 0: - # fitness = sum(losses) - # return fitness - # struct = copy.deepcopy(optimizer._pop[0]) - # objective = Objective( - # quality_metrics={ - # 'som_metric': partial(tune_fintess, domain=domain), - # }, - # ) - # adapted = StructureAdapter().adapt(struct) - # objective_evaluator = ObjectiveEvaluate(objective=objective, eval_n_jobs=6) - # tuner = IOptTuner( - # objective_evaluate=objective_evaluator, - # search_space=SearchSpace(search_space_generator(adapted, 1)), - # adapter=StructureAdapter(), - # iterations=500, - # ) - # # print(search_space_generator(struct, 0.05)) - # print(struct) + optimizer = StandardOptimizer(opt_params) + optimized_pop = optimizer.optimize() - # tuned = tuner.tune(adapted) - # tuned = optimizer.estimator(tuned)[0] + tuner = GolemTuner(opt_params) + tuned_individuals = tuner.tune(optimized_pop[0]) - from gefest.core.viz.struct_vizualizer import GIFMaker - # gm = GIFMaker(domain=domain) - # gm.create_frame(optimizer._pop[0], {'Optimized': optimizer._pop[0].fitness}) - # gm.create_frame(tuned, {'Tuned': tuned.fitness}) - # gm.make_gif('tuning', 500, ) + # visualization + gm = GIFMaker(domain=opt_params.domain) + for st in optimized_pop: + gm.create_frame(st, {'Optimized': st.fitness}) - gm = GIFMaker(domain=domain) - for s in optimizer._pop: - gm.create_frame(s, {'Fitness': s.fitness}, domain, ) - gm.make_gif('test', 500, ) + gm.make_gif('diag_test', 500) diff --git a/requirements.txt b/requirements.txt index 87648464d..3d6310a6c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ shapely==2.0.1 pytest==7.4.2 autodocsumm==0.2.11 tqdm==4.65.2 -thegolem==0.3.3 +thegolem==0.4.0 scipy==1.9.3 scikit-image==0.19.3 scikit-learn==1.3.0 @@ -19,6 +19,7 @@ pydantic-yaml==1.1.1 PyYAML==6.0.1 moviepy==1.0.3 joblib==1.3.2 +loguru==0.7.2 polygenerator diff --git a/zcfg.yaml b/zcfg.yaml new file mode 100644 index 000000000..9e77ee190 --- /dev/null +++ b/zcfg.yaml @@ -0,0 +1,64 @@ +domain: + allowed_area: [ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ] + name: main + min_poly_num: 2 + max_poly_num: 4 + min_points_num: 20 + max_points_num: 50 + polygon_side: 0.0001 + min_dist_from_boundary: 0.0001 + geometry_is_convex: True + geometry_is_closed: True + geometry: '2D' + +opt_params: + n_steps: 10 + pop_size: 15 + postprocess_attempts: 3 + mutation_prob: 0.6 + crossover_prob: 0.6 + mutations: [ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ] + selector: 'tournament_selection' + mutation_each_prob: [0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25] + crossovers: [ + 'polygon_level', + 'structure_level', + ] + crossover_each_prob: [0.0, 1.0] + postprocess_rules: [ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ] + crossover_each_prob: + extra: 5 + n_jobs: -1 + log_dir: logs + run_name: run_name + golem_keep_histoy: False + golem_genetic_scheme_type: steady_state + golem_surrogate_each_n_gen: 5 + +tuner_params: + tuner_type: optuna + n_steps_tune: 5 + hyperopt_dist: uniform + verbose: True + timeout_minutes: 60 diff --git a/zmetrics.py b/zmetrics.py new file mode 100644 index 000000000..080863420 --- /dev/null +++ b/zmetrics.py @@ -0,0 +1,51 @@ +import __main__ +import numpy as np + +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.estimator import Estimator + + +class Area(Objective): + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def evaluate(self, ind: Structure) -> float: + area = 0 + for poly in ind: + area += self.domain.geometry.get_square(poly) + area = abs(area - (50 * 50)) + norms = [] + if len(ind) == 1: + for p1, p2 in zip(ind[0][:-1], ind[0][1:]): + norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) + norms.append(norm) + else: + norms.append(1) + return area + + +class SideCoef(Objective): + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def evaluate(self, ind: Structure) -> float: + area = 0 + for poly in ind: + area += self.domain.geometry.get_square(poly) + area = abs(area - (50 * 50)) + norms = [] + points_num = 0 + if len(ind) == 1: + for p1, p2 in zip(ind[0][:-1], ind[0][1:]): + norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) + norms.append(norm) + points_num = len(ind[0]) + else: + norms.append(1) + points_num = sum(len(p) for p in ind) + + sides_coef = points_num + min(norms) / max(norms) + + return sides_coef From 3d2bbe8986c267918ac4e6aae6badfda1dcf59ad Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 3 Nov 2023 13:34:11 +0300 Subject: [PATCH 31/66] domain tests --- test/files/standart_spl.pickle | Bin 115337 -> 0 bytes test/files/standart_structure.pickle | Bin 548 -> 0 bytes test/old_test.zip | Bin 0 -> 105862 bytes test/test_circle.py | 16 --- test/test_crossover.py | 59 ----------- test/test_domain.py | 59 +++++++++++ test/test_geometry2D.py | 147 --------------------------- test/test_mutation.py | 62 ----------- test/test_optimization_case.py | 59 ----------- test/test_resolve_errors.py | 98 ------------------ test/test_sound_simulator.py | 33 ------ test/test_validation.py | 116 --------------------- 12 files changed, 59 insertions(+), 590 deletions(-) delete mode 100644 test/files/standart_spl.pickle delete mode 100644 test/files/standart_structure.pickle create mode 100644 test/old_test.zip delete mode 100644 test/test_circle.py delete mode 100644 test/test_crossover.py create mode 100644 test/test_domain.py delete mode 100755 test/test_geometry2D.py delete mode 100644 test/test_mutation.py delete mode 100644 test/test_optimization_case.py delete mode 100644 test/test_resolve_errors.py delete mode 100644 test/test_sound_simulator.py delete mode 100644 test/test_validation.py diff --git a/test/files/standart_spl.pickle b/test/files/standart_spl.pickle deleted file mode 100644 index b47325e2c209b3fd1546ac27a3848541d4ba7dea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115337 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 KoYXobmiz%&M3JZf diff --git a/test/old_test.zip b/test/old_test.zip new file mode 100644 index 0000000000000000000000000000000000000000..d64ae7b3062585850026960a874a32fbf675e2ee GIT binary patch literal 105862 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 z zt*MLs52?UcUBSBRrtCrUL0gT-mIm)|L}}!BXU=6yY9<5-V>kH9v~|;gEr8?0&Aj%) zPBpzKW^WOFw%zubw;rO@wSa7D>`D{h)gXl}y1XI~x(Q?Rcy3sC30$JPhjt#T@CGQ7NtCrQ={q$4ix z?qS2-qWgB%jmCS>MAhLOy{Z_7^2U&GXVFR|Z&wnd;6Zeh1Q=PV8A{4)C&0R9TEK`# zC-6p0N)i7teh{U8VTxHsa*()bc;h46lU1-as%_F}-uaAmY}!Wi&}x^I=vq>YDcDgO zF$%Lc%$IyqL4D2GXT@ukqg2(CYsLNbI!j*Z$Eldl5;Q_#T6^tQ0TF{MRTT5o) zp>O8Z3t8L;z+R_Yw$U^4uYW7=+LNUvDH)JND#m1}@#wyaNg+GmH5#8o-QL%Ht^Wk_ zLImr+DM-snYve3hn_dOQaloiKysl!Azm^3{+&*@~S>77hRustnr8Qlf*td^go=jOy z4E8MqT_)dzB-4=8lY;yB0o8evMcLOyy)8ph*2+p@_{#d5^$)lLfDlg2dXD%FgoKAo zP;2Bug}8gFv3jr$2Nwori1u_69gqG2nDm{bULvt_HHw3Bati3>e08O6RW|pvp?}X} z95L2jW}Il>#aR;#S#n>jy76I*+MpA45om`8(r{+;k}~sSqDhW%GP5=0B4hF?q7r`4 zXz>NhHJ#xcdfz1N!kA7HE3k1dFbKoW1YJf!2k4vDS{+_JWub|@lCdIQ$cRW`NqG-F z;FX9==Jf012)$G@u?5q~$6-Zg!A_ULIDFJGFty3HLhGlc1C+ad2L}R;HmrQE4U&XH z=16f)5vv$`)e8_AS!1J>CYDn2eW08Y34=AW7~p-D?9y|MEp}#yn6=Riz`$BIGHu1o zaO>zM99dIENns|^%cVM0RNtI9j!{>NKPbA4Afc%_h=^_bGD~}V#uD~6X06D>EwMv_ zDHez4<5Fv_DNK0FcZ~O>Wg{P3;cx|U7MD*~Vu97>1Feg1LOLp8&4K7_#wy#Zt_mh? zcC0p@oXV-{7n33M*{8(I5W5JFF!@1nA2&Axy> zQlz4ORj^h6s%6(`y5ji!^A*!~fT{u_Km_53295BS2L0FI=Lr>o{^#gNqxIwXTam^< zp#AF=A_6Hw5{o)~colvVpngC8W%qAw`$HEU#$yN~LU1SIO%?phF73^mevJQAx*cqP zYTW+>^}CFI8x?)?0sch&A*%lq;O~<4ZD0Zv@ecv}wtXM9|LnW_T_?V6-#_4&{adQ> zKSBJi;N3>Zzxs*zP0#!PGXA}Dzs;x({mHo1$KNId3Mf7!KmFgG><8iZR_ivwD&i;M ze`>sLqwdk#|DUKI|JD3n8sA3Ui~foFw?g?g=cDa^_S^rS{%>>g;(l`ey%_i>px-mu gZIEQbPtb39?LT9np#BI8m^TkYWCR34*pE2zU+16KkN^Mx literal 0 HcmV?d00001 diff --git a/test/test_circle.py b/test/test_circle.py deleted file mode 100644 index a25a377d2..000000000 --- a/test/test_circle.py +++ /dev/null @@ -1,16 +0,0 @@ -import numpy as np - -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain -from gefest.core.structure.structure import Structure - - -""" -::TODO:: -Rewrite corresponding to new GEFEST logic -like a synthetic examples -""" - -def test_fast(): - pass \ No newline at end of file diff --git a/test/test_crossover.py b/test/test_crossover.py deleted file mode 100644 index 70f769826..000000000 --- a/test/test_crossover.py +++ /dev/null @@ -1,59 +0,0 @@ -from gefest.core.opt.operators.crossover import crossover -from gefest.core.structure.domain import Domain -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.structure import Structure - -domain = Domain() -geometry = domain.geometry - - -def create_rectangle(x, y, dim=5): - rectangle_points = [(x, y), (x, y+dim), (x+dim, y+dim), (x+dim, y), (x, y)] - rectangle_poly = Polygon(f'rectangle_from_{x,y}', points=[Point(*coords) for coords in rectangle_points]) - return rectangle_poly - - -structure_large = Structure([create_rectangle(5, 5), create_rectangle(5, 15)]) -structure_small = Structure([create_rectangle(15, 5, 3), create_rectangle(15, 15, 3)]) - - -def test_crossover_passed(): - - expected_poly_positions = [structure_large.polygons[0].points, structure_small.polygons[1].points] - expected_square = geometry.get_square(structure_large.polygons[0])\ - + geometry.get_square(structure_small.polygons[0]) - - condition = False - for i in range(100): - new_structure = crossover(structure_large, structure_small, domain) - if len(new_structure.polygons) == 2: - observed_square = geometry.get_square(new_structure.polygons[0]) + \ - geometry.get_square(new_structure.polygons[1]) - condition = all([new_structure.polygons[0].points == expected_poly_positions[0], - new_structure.polygons[1].points == expected_poly_positions[1], - observed_square == expected_square]) - if condition: - break - assert condition - - -def test_crossover_fail(): - - new_structure = crossover(structure_large, structure_small, domain, rate=0.001) - assert any([new_structure == structure_large, new_structure == structure_small]) - - empty_structure = Structure(polygons=[]) - structure_with_one_poly = Structure(polygons=[create_rectangle(5, 5)]) - new_structure = crossover(empty_structure, structure_with_one_poly, domain, rate=0.999) - assert any([new_structure == empty_structure, new_structure == structure_with_one_poly]) - - -def test_crossover_empty_structure(): - empty_structure = Structure(polygons=[]) - structure_with_polygons = Structure(polygons=[create_rectangle(5, 5), create_rectangle(5, 15), - create_rectangle(15, 5, 3), create_rectangle(15, 15, 3)]) - observed_structure = crossover(empty_structure, structure_with_polygons, domain, rate=0.999) - - assert all([len(observed_structure.polygons) > 0, - len(observed_structure.polygons) <= len(structure_with_polygons.polygons)]) diff --git a/test/test_domain.py b/test/test_domain.py new file mode 100644 index 000000000..28ce70f13 --- /dev/null +++ b/test/test_domain.py @@ -0,0 +1,59 @@ +from contextlib import nullcontext as no_exception + +import pytest + +from gefest.core.geometry.domain import Domain + + +class TestDomain: + @pytest.mark.parametrize( + ', '.join( + [ + 'allowed_area', + 'min_poly_num', + 'max_poly_num', + 'min_points_num', + 'max_points_num', + 'geometry_is_closed', + 'expectation', + ] + ), + [ + ([(1, 2), (3, 4), (4, 0)], 1, 2, 3, 6, True, no_exception()), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 3, 3, True, no_exception()), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 2, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 2, 2, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 2, 6, False, no_exception()), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 2, 2, False, no_exception()), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 1, 2, False, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 1, 1, False, pytest.raises(ValueError)), + ([(1, 2), (3, 4)], 1, 2, 3, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4)], 1, 2, 3, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 2, 1, 3, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 1, 2, 6, 3, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], -1, 2, 3, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], -2, -1, 3, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 1, 2, -3, 6, True, pytest.raises(ValueError)), + ([(1, 2), (3, 4), (4, 0)], 1, 2, -6, -3, True, pytest.raises(ValueError)), + ], + ) + def test_domain_init_validity( + self, + allowed_area, + min_poly_num, + max_poly_num, + min_points_num, + max_points_num, + geometry_is_closed, + expectation, + ): + with expectation: + domain = Domain( + allowed_area=allowed_area, + min_poly_num=min_poly_num, + max_poly_num=max_poly_num, + min_points_num=min_points_num, + max_points_num=max_points_num, + geometry_is_closed=geometry_is_closed, + ) + assert isinstance(domain, Domain) is True diff --git a/test/test_geometry2D.py b/test/test_geometry2D.py deleted file mode 100755 index b0f2586b8..000000000 --- a/test/test_geometry2D.py +++ /dev/null @@ -1,147 +0,0 @@ -import pytest -import numpy as np - -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.structure import Structure -from gefest.core.algs.geom.validation import self_intersection - -geometry = Geometry2D(is_closed=True) -# marking length and width for testing polygon -poly_width = 10 -poly_length = 20 - -# creating a testing polygons via corner points -rectangle_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width, 0), -] -rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in rectangle_points] -) - -triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] -triangle_poly = Polygon( - "triangle", points=[Point(*coords) for coords in triangle_points] -) - -incorrect_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width - 5, poly_length - 5), - (-poly_width, -poly_length), - (0, 0), -] -incorrect_poly = Polygon( - "incorrect_poly", points=[Point(*coords) for coords in incorrect_points] -) - -# creating an expected rotated polygon for testing rotate_poly() function -exp_coords = [ - (-poly_width / 2, poly_width / 2), - (-poly_width / 2, poly_length - poly_width / 2), - (poly_length - poly_width / 2, poly_length - poly_width / 2), - (poly_length - poly_width / 2, poly_width / 2), -] -exp_rectangle_poly = Polygon( - polygon_id="expected", points=[Point(*coords) for coords in exp_coords] -) - - -def test_resize_poly(): - """Test for resize_poly function from Geometry2D class""" - - x_scale = 2 - y_scale = 3 - - original_poly = rectangle_poly - resized_poly = geometry.resize_poly(original_poly, x_scale=x_scale, y_scale=y_scale) - - resized_square = geometry.get_square(resized_poly) - original_square = geometry.get_square(original_poly) - - observed_difference = resized_square - original_square - expected_difference = ( - (poly_width * x_scale) * (poly_length * y_scale) - ) - poly_width * poly_length - - assert isinstance(resized_poly, Polygon) - assert np.isclose(observed_difference, expected_difference) - - -@pytest.mark.parametrize( - "angle, expected_poly", [(90, exp_rectangle_poly), (180, rectangle_poly)] -) -def test_rotate_poly(angle, expected_poly): - """Test for rotate_poly function from Geometry2D class""" - - rotate_poly = geometry.rotate_poly(rectangle_poly, angle=angle) - - rotated_coords = [tuple(coords.coords()) for coords in rotate_poly.points] - expected_coords = [tuple(coords.coords()) for coords in expected_poly.points] - - assert set(rotated_coords).issubset(expected_coords) and len(rotated_coords) == len( - expected_coords - ) - - -@pytest.mark.parametrize( - "figure, expected_poly", - [ - (rectangle_poly, poly_width * poly_length), - (triangle_poly, poly_width * poly_length / 2), - ], -) -def test_get_square(figure, expected_poly): - """Test for get_square function from Geometry2D class""" - - observed_square = geometry.get_square(figure) - - assert observed_square == expected_poly - - -@pytest.mark.parametrize("figure", [rectangle_poly, triangle_poly]) -def test_contains_point(figure): - """Test for get_square function from Geometry2D class""" - - expected_point = Point(1, 3) - assert geometry.is_contain_point(figure, expected_point) - - expected_point = Point(-1, -1) - assert not geometry.is_contain_point(figure, expected_point) - - -@pytest.mark.parametrize( - "figure_1, figure_2, expected_point", - [(Point(*rectangle_points[3]), rectangle_poly, Point(*rectangle_points[3]))], -) -def test_nearest_point(figure_1, figure_2, expected_point): - """Test for nearest_point function from Geometry2D class""" - observed_point = geometry.nearest_point(figure_1, figure_2) - - assert observed_point.coords() == expected_point.coords() - - -def test_get_convex(): - """Test for get_convex function from Geometry2D class""" - poly_to_structure = Structure([incorrect_poly]) - assert self_intersection(poly_to_structure) - - transformed_poly = geometry.get_convex(*poly_to_structure.polygons) - poly_to_structure = Structure([transformed_poly]) - assert not self_intersection(poly_to_structure) - - -def test_intersects(): - """Test for intersects function from Geometry2D class""" - assert geometry.intersects(Structure([rectangle_poly])) - - -def test_distance(): - """Test for distance function from Geometry2D class""" - dist_1 = geometry.min_distance(rectangle_poly, triangle_poly) - assert np.isclose(dist_1, 0) diff --git a/test/test_mutation.py b/test/test_mutation.py deleted file mode 100644 index 42299dd44..000000000 --- a/test/test_mutation.py +++ /dev/null @@ -1,62 +0,0 @@ -import pytest -from gefest.core.opt.operators.mutation import mutation -from gefest.core.structure.structure import Structure -from gefest.core.structure.domain import Domain -from test.test_crossover import create_rectangle - - -domain = Domain(min_poly_num=1, max_poly_num=3) -geometry = domain.geometry -structure = Structure([create_rectangle(5, 5), create_rectangle(5, 15)]) - - -def test_mutation_poly(): - count_del_poly = 0 - count_add_poly = 0 - count_rotated_poly = 0 - count_resize_poly = 0 - - for i in range(1000): - mutated_structure = mutation(structure, domain, rate=0.999) - mutated_ids = [poly.id for poly in mutated_structure.polygons] - count_mutated_points = [len(p.points) for p in mutated_structure.polygons] - mutated_square = [geometry.get_square(poly) for poly in mutated_structure.polygons] - - if len(mutated_structure.polygons) < 2: - count_del_poly += 1 - elif len(mutated_structure.polygons) > 2: - count_add_poly += 1 - - count_initial_points = [len(p.points) for p in structure.polygons] - initial_square = [geometry.get_square(poly) for poly in structure.polygons] - compared_point_counts = [] - compared_squares = [] - min_numb_polys = min(len(mutated_structure.polygons), - len(structure.polygons)) - for idx in range(min_numb_polys): - compared_point_counts.append(count_initial_points[idx] == count_mutated_points[idx]) - compared_squares.append(initial_square[idx] == mutated_square[idx]) - - if any(compared_point_counts) and any(compared_squares): - count_rotated_poly += 1 - elif not any(compared_point_counts) and not any(compared_squares): - count_resize_poly += 1 - - condition = all([count_del_poly > 0, count_add_poly > 0, - count_rotated_poly > 0, count_resize_poly > 0]) - if condition: - break - assert condition - - -def test_mutation_not_passed(): - - mutated_structure = mutation(structure, domain, rate=0.001) - - mutated_points = mutated_structure.polygons[0].points - initial_points = structure.polygons[0].points - mutated_square = domain.geometry.get_square(mutated_structure.polygons[0]) - initial_square = domain.geometry.get_square(structure.polygons[0]) - - assert all([mutated_points == initial_points, - mutated_square == initial_square]) diff --git a/test/test_optimization_case.py b/test/test_optimization_case.py deleted file mode 100644 index 25269bc2d..000000000 --- a/test/test_optimization_case.py +++ /dev/null @@ -1,59 +0,0 @@ -import numpy as np - -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain -from gefest.core.opt.gen_design import design -from gefest.core.structure.structure import Structure - - -# Area to length ratio, circle have maximum among all figures (that`s why it`s our optima) -def area_length_ratio(poly): - area = geometry.get_square(poly) - length = geometry.get_length(poly) - - if area == 0: - return None - - ratio = 1 - 4 * np.pi * area / length ** 2 - - return ratio - - -# Adding fine for structures containing more (less) than three polygons -def multi_loss(struct: Structure): - num = 3 - num_polys = len(struct.polygons) - loss = 0 - for poly in struct.polygons: - length = area_length_ratio(poly) - if length: - loss += length - L = loss + 20 * abs(num_polys - num) - - return L - - -# Usual GEFEST procedure for initialization domain, geometry (with closed or unclosed polygons) and task_setup -is_closed = True -geometry = Geometry2D(is_closed=is_closed) -domain = Domain(allowed_area=[(0, 0), - (0, 300), - (300, 300), - (300, 0), - (0, 0)], - geometry=geometry, - max_poly_num=20, - min_poly_num=1, - max_points_num=20, - min_points_num=4, - is_closed=is_closed) - -task_setup = Setup(domain=domain) - - -def test_optimization(): - """ - ::TODO:: - Change optimization to design like in synthetic examples - """ diff --git a/test/test_resolve_errors.py b/test/test_resolve_errors.py deleted file mode 100644 index f31b3366e..000000000 --- a/test/test_resolve_errors.py +++ /dev/null @@ -1,98 +0,0 @@ -import pytest -from copy import deepcopy -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.structure import Structure -from gefest.core.algs.postproc.resolve_errors import * -from gefest.core.algs.geom.validation import * - -# marking length and width for testing polygon -poly_width = 10 -poly_length = 20 - -# creating a testing polygons via corner points -rectangle_points = [ - (-1, 40), - (-1, poly_length + 40), - (-poly_width - 10, poly_length + 40), - (-poly_width - 10, 40), -] -out_bounds_rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in rectangle_points] -) - -triangle_points = [(1, 1), (poly_width, poly_length), (1, poly_length)] -unclosed_triangle_poly = Polygon( - "triangle", points=[Point(*coords) for coords in triangle_points] -) - -incorrect_points = [(5, 5), (5, poly_length), (8, poly_length), (5, 5), (5, 30)] -incorrect_poly = Polygon( - "incorrect_poly", points=[Point(*coords) for coords in incorrect_points] -) - -intersected_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width - 5, poly_length - 5), - (poly_width, poly_length + 10), - (0, 0), -] -intersected_poly = Polygon( - "incorrect_poly", points=[Point(*coords) for coords in intersected_points] -) - -domain = Domain() - - -def test_unclosed_poly(): - input_structure = Structure([unclosed_triangle_poly]) - observed_structure = postprocess(input_structure, domain) - - assert unclosed_poly(input_structure, domain) - assert not unclosed_poly(observed_structure, domain) - - -def test_self_intersection(): - input_structure = Structure([intersected_poly]) - observed_structure = postprocess(input_structure, domain) - - assert self_intersection(input_structure) - assert not self_intersection(observed_structure) - - -def test_out_of_bound(): - input_structure = Structure([out_bounds_rectangle_poly]) - observed_structure = postprocess(input_structure, domain) - - assert out_of_bound(input_structure, domain) - assert not out_of_bound(observed_structure, domain) - - -def test_fixed_polys(): - """ - Не понял суть теста, почему like_fixed должен уйти? А fixed появиться в poly? - - domain = Domain(fixed_points=[[[15, 30], - [40, 30], - [15, 40]]]) - poly_like_fixed = Polygon('like_fixed', points=[Point(15, 30), Point(40, 30), Point(15, 40)]) - input_structure = Structure([poly_like_fixed, unclosed_triangle_poly]) - observed_structure = postprocess(input_structure, domain) - - assert all([np.isclose(len(observed_structure.polygons), 2), - 'like_fixed' not in [poly.id for poly in observed_structure.polygons], - 'fixed' in [poly.id for poly in observed_structure.polygons]]) - """ - - -def test_too_close(): - same_poly = deepcopy(unclosed_triangle_poly) - same_poly.id = "same_triangle" - input_structure = Structure([unclosed_triangle_poly, same_poly]) - observed_structure = postprocess(input_structure, domain) - - print(observed_structure.polygons) - - assert np.isclose(len(observed_structure.polygons), 1) diff --git a/test/test_sound_simulator.py b/test/test_sound_simulator.py deleted file mode 100644 index c3375d929..000000000 --- a/test/test_sound_simulator.py +++ /dev/null @@ -1,33 +0,0 @@ -import pytest -import pickle -import numpy as np -from gefest.tools.estimators.simulators.sound_wave.sound_interface import SoundSimulator -from cases.sound_waves.configuration import sound_domain - - -def load_file_from_path(path: str): - with open(path, "rb") as f: - file = pickle.load(f) - f.close() - return file - - -domain, _ = sound_domain.configurate_domain( - poly_num=1, - points_num=30, - is_closed=True, -) - -structure_path = "test/files/standart_structure.pickle" -spl_path = "test/files/standart_spl.pickle" - -standart_spl = load_file_from_path(spl_path) -standart_structure = load_file_from_path(structure_path) - -sound = SoundSimulator(domain) - - -def test_sumulator(): - current_spl = sound.estimate(standart_structure) - - assert (np.isclose(current_spl, standart_spl)).all() diff --git a/test/test_validation.py b/test/test_validation.py deleted file mode 100644 index 6895fdd20..000000000 --- a/test/test_validation.py +++ /dev/null @@ -1,116 +0,0 @@ -import pytest -from gefest.core.geometry.geometry import Geometry -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.structure import Structure -from gefest.core.algs.geom.validation import * - -geometry = Geometry2D() -domain = Domain() -"""allowed area for Domain() is [(0, 0), - (0, 100), - (100, 100), - (100, 0)] -""" - -poly_width = 10 -poly_length = 20 -# creating a testing polygons via corner points -rectangle_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width, 0), -] -rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in rectangle_points] -) - -triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] -triangle_poly = Polygon( - "triangle", points=[Point(*coords) for coords in triangle_points] -) - -out_points = [Point(x + 200, y + 200) for (x, y) in rectangle_points] -out_poly = Polygon("out_rectangle", points=out_points) - - -def test_intersection(): - intersected_points = [ - (1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1), - ] - intersected_rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in intersected_points] - ) - structure = Structure([rectangle_poly, intersected_rectangle_poly]) - assert intersection(structure, domain) - - structure = Structure([rectangle_poly, out_poly]) - assert not intersection(structure, domain) - - -def test_out_off_bound(): - inside_points = [ - (1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1), - ] - inside_rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in inside_points] - ) - structure = Structure([inside_rectangle_poly]) - assert not out_of_bound(structure, domain) - - structure = Structure([out_poly]) - assert out_of_bound(structure, domain) - - -def test_too_close(): - structure = Structure([rectangle_poly, triangle_poly]) - assert too_close(structure, domain) - - structure = Structure([rectangle_poly, out_poly]) - assert not too_close(structure, domain) - - -def test_self_intersection(): - incorrect_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width - 5, poly_length - 5), - (poly_width, poly_length + 10), - (0, 0), - ] - incorrect_poly = Polygon( - "incorrect_poly", points=[Point(*coords) for coords in incorrect_points] - ) - structure = Structure([incorrect_poly]) - assert self_intersection(structure) - - rebuilt_poly = geometry.get_convex(incorrect_poly) - structure = Structure([rebuilt_poly]) - assert not self_intersection(structure) - - -def test_unclosed_poly(): - structure = Structure([rectangle_poly]) - assert unclosed_poly(structure, domain) - - closed_rectangle_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width, 0), - (0, 0), - ] - closed_rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in closed_rectangle_points] - ) - structure = Structure([closed_rectangle_poly]) - assert not unclosed_poly(structure, domain) From 4c64b570938728dac2f431b137a3b81cf2c6a70d Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Fri, 3 Nov 2023 13:53:10 +0300 Subject: [PATCH 32/66] add updated test_geometry2D.py --- test/test_geometry2D.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/test/test_geometry2D.py b/test/test_geometry2D.py index b0f2586b8..ed748910d 100755 --- a/test/test_geometry2D.py +++ b/test/test_geometry2D.py @@ -2,9 +2,7 @@ import numpy as np from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.structure.point import Point -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.structure import Structure +from gefest.core.geometry import Point, Polygon, Structure from gefest.core.algs.geom.validation import self_intersection geometry = Geometry2D(is_closed=True) @@ -19,13 +17,11 @@ (poly_width, poly_length), (poly_width, 0), ] -rectangle_poly = Polygon( - "rectangle", points=[Point(*coords) for coords in rectangle_points] +rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points] ) triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] -triangle_poly = Polygon( - "triangle", points=[Point(*coords) for coords in triangle_points] +triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points] ) incorrect_points = [ @@ -36,8 +32,7 @@ (-poly_width, -poly_length), (0, 0), ] -incorrect_poly = Polygon( - "incorrect_poly", points=[Point(*coords) for coords in incorrect_points] +incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points] ) # creating an expected rotated polygon for testing rotate_poly() function @@ -47,8 +42,7 @@ (poly_length - poly_width / 2, poly_length - poly_width / 2), (poly_length - poly_width / 2, poly_width / 2), ] -exp_rectangle_poly = Polygon( - polygon_id="expected", points=[Point(*coords) for coords in exp_coords] +exp_rectangle_poly = Polygon(points=[Point(*coords) for coords in exp_coords] ) @@ -81,8 +75,8 @@ def test_rotate_poly(angle, expected_poly): rotate_poly = geometry.rotate_poly(rectangle_poly, angle=angle) - rotated_coords = [tuple(coords.coords()) for coords in rotate_poly.points] - expected_coords = [tuple(coords.coords()) for coords in expected_poly.points] + rotated_coords = [tuple(coords.coords) for coords in rotate_poly.points] + expected_coords = [tuple(coords.coords) for coords in expected_poly.points] assert set(rotated_coords).issubset(expected_coords) and len(rotated_coords) == len( expected_coords @@ -123,7 +117,7 @@ def test_nearest_point(figure_1, figure_2, expected_point): """Test for nearest_point function from Geometry2D class""" observed_point = geometry.nearest_point(figure_1, figure_2) - assert observed_point.coords() == expected_point.coords() + assert observed_point.coords == expected_point.coords def test_get_convex(): From af939bd23c4cd35dd7bec0df2ca872ba96601c0b Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Tue, 7 Nov 2023 17:38:50 +0300 Subject: [PATCH 33/66] add mutation and structure crossover tests --- gefest/core/geometry/datastructs/structure.py | 8 ++ gefest/core/opt/operators/mutations.py | 6 +- test/test_crossover.py | 68 +++++++++++ test/test_mutation.py | 111 ++++++++++++++++++ 4 files changed, 190 insertions(+), 3 deletions(-) create mode 100644 test/test_crossover.py create mode 100644 test/test_mutation.py diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index f46f5f380..9b562a802 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -47,3 +47,11 @@ def append(self, value): polygons = list(self.polygons) polygons.append(value) self.polygons = tuple(polygons) + + def remove(self, value): + polygons = list(self.polygons) + polygons.remove(value) + self.polygons = tuple(polygons) + + + diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 95da2029c..0418372fe 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -18,7 +18,7 @@ def mutate_structure( domain: Domain, operations: list[Callable], operation_chance: float, - operations_probs: list[int], + operations_probs: list[float], **kwargs, ) -> Structure: """Apply mutation random mutation from list @@ -77,8 +77,8 @@ def drop_poly_mutation( if len(new_structure.polygons) > (domain.min_poly_num + 1): idx_ = idx_ if idx_ else int(np.random.randint(0, len(new_structure))) polygon_to_remove = new_structure.polygons[idx_] - if any([p in polygon_to_remove for p in domain.fixed_points]): - new_structure.polygons.remove(polygon_to_remove) + if not any([p in polygon_to_remove for p in domain.fixed_points]): + new_structure.remove(polygon_to_remove) return new_structure diff --git a/test/test_crossover.py b/test/test_crossover.py new file mode 100644 index 000000000..457930f75 --- /dev/null +++ b/test/test_crossover.py @@ -0,0 +1,68 @@ +import pytest +from gefest.core.opt.operators.crossovers import ( + panmixis, + polygon_level_crossover , + structure_level_crossover as crossover, +) +import numpy as np +from gefest.core.geometry.domain import Domain +from gefest.core.geometry import Point, Polygon, Structure +domain = Domain(allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ]) +geometry = domain.geometry + + +def create_rectangle(x, y, dim=5): + rectangle_points = [(x, y), (x, y+dim), (x+dim, y+dim), (x+dim, y), (x, y)] + rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points]) + return rectangle_poly + + +structure_large = Structure([create_rectangle(5, 5), create_rectangle(5, 15)]) +structure_small = Structure([create_rectangle(15, 5, 3), create_rectangle(15, 15, 3)]) + + +def test_crossover_passed(): + + expected_poly_positions = [structure_large.polygons[0].points, structure_small.polygons[1].points] + expected_square = geometry.get_square(structure_large.polygons[0])\ + + geometry.get_square(structure_small.polygons[0]) + + condition = False + for i in range(100): + new_structure = crossover(structure_large, structure_small, domain)[0] + if len(new_structure.polygons) == 2: + observed_square = geometry.get_square(new_structure.polygons[0]) + \ + geometry.get_square(new_structure.polygons[1]) + condition = all([new_structure.polygons[0].points == expected_poly_positions[0], + new_structure.polygons[1].points == expected_poly_positions[1], + observed_square == expected_square]) + if condition: + break + assert condition + + +# def test_crossover_fail(): +# +# new_structure = crossover(structure_large, structure_small, domain, rate=0.001)[0] +# assert any([new_structure == structure_large, new_structure == structure_small]) +# +# empty_structure = Structure(polygons=[]) +# structure_with_one_poly = Structure(polygons=[create_rectangle(5, 5)]) +# new_structure = crossover(empty_structure, structure_with_one_poly, domain, rate=0.999)[0] +# assert any([new_structure == empty_structure, new_structure == structure_with_one_poly]) + + +# def test_crossover_empty_structure(): +# empty_structure = Structure(polygons=[]) +# structure_with_polygons = Structure(polygons=[create_rectangle(5, 5), create_rectangle(5, 15), +# create_rectangle(15, 5, 3), create_rectangle(15, 15, 3)]) +# observed_structure = crossover(empty_structure, structure_with_polygons, domain, rate=0.999)[0] +# +# assert all([len(observed_structure.polygons) > 0, +# len(observed_structure.polygons) <= len(structure_with_polygons.polygons)]) diff --git a/test/test_mutation.py b/test/test_mutation.py new file mode 100644 index 000000000..4c63be858 --- /dev/null +++ b/test/test_mutation.py @@ -0,0 +1,111 @@ +import pytest +from gefest.core.opt.operators.mutations import mutate_structure as mutation +import numpy as np +from gefest.core.geometry.domain import Domain +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.opt.operators.mutations import ( + add_point_mutation, + drop_point_mutation, + drop_poly_mutation, + add_poly_mutation, + pos_change_point_mutation, + resize_poly_mutation, + rotate_poly_mutation, +) + +def create_rectangle(x, y, dim=5): + rectangle_points = [(x, y), (x, y+dim), (x+dim, y+dim), (x+dim, y), (x, y)] + rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points]) + return rectangle_poly +domain = Domain(min_poly_num=1, + max_poly_num=3, + allowed_area=[ + [0, 0], + [0, 500], + [500, 500], + [500, 0], + [0, 0], + ] + ) +geometry = domain.geometry +structure = Structure([create_rectangle(5, 5), create_rectangle(5, 15),create_rectangle(15, 5)]) +mut_operations = [ + drop_poly_mutation, + add_poly_mutation, +] +mutation_each_prob = [ 0.5, 0.5] + +def test_mutation_del_add_poly(): + count_del_poly = 0 + count_add_poly = 0 + condition = False + start_lenghs = len(structure.polygons) + for i in range(1000): + mutated_structure = mutation(structure, + domain, + operations=mut_operations, + operation_chance= 0.9999, + operations_probs=mutation_each_prob) + + equivalent_points = [s==m for s,m in zip(structure.polygons,mutated_structure.polygons)] + if len(mutated_structure.polygons) < start_lenghs: + count_del_poly += 1 + elif len(mutated_structure.polygons) > 2: + count_add_poly += 1 + condition = all( + [ + count_del_poly > 0, + count_add_poly > 0, + ] + ) + if condition: + break + assert condition + + +def test_mutation_not_passed(): + mutated_structure = mutation(structure, + domain, + operations=mut_operations, + operation_chance=0.001, + operations_probs=mutation_each_prob) + + mutated_points = mutated_structure.polygons[0].points + initial_points = structure.polygons[0].points + mutated_square = domain.geometry.get_square(mutated_structure.polygons[0]) + initial_square = domain.geometry.get_square(structure.polygons[0]) + + assert all([mutated_points == initial_points, mutated_square == initial_square]) + + +@pytest.mark.parametrize( + "mut_oper,operat_prob, expected_result", [([rotate_poly_mutation],[1],0), ([resize_poly_mutation],[1],0)]) +def test_mutation_rotate_resize_poly(mut_oper, operat_prob, expected_result): + count_rotated_poly = expected_result + count_resize_poly = expected_result + for i in range(10): + mutated_structure = mutation(structure, + domain, + operations=mut_oper, + operation_chance= 0.9999, + operations_probs=operat_prob) + mutated_square = [ + round(geometry.get_square(poly),2) for poly in mutated_structure.polygons + ] + equivalent_points = [s==m for s,m in zip(structure.polygons,mutated_structure.polygons)] + initial_square = [geometry.get_square(poly) for poly in structure.polygons] + + compared_squares = [] + min_numb_polys = min(len(mutated_structure.polygons), len(structure.polygons)) + for idx in range(min_numb_polys): + + compared_squares.append(initial_square[idx] == mutated_square[idx]) + for ind in range(min_numb_polys): + if not equivalent_points[ind] and compared_squares[ind]: + count_rotated_poly += 1 + elif not compared_squares[ind] and not equivalent_points[ind]: + count_resize_poly += 1 + if mut_oper==[rotate_poly_mutation]: + assert count_rotated_poly > expected_result + if mut_oper==[resize_poly_mutation]: + assert count_resize_poly > expected_result From e662113159def27bbe51fdae0ad95ce4e8ee414d Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Tue, 7 Nov 2023 17:46:29 +0300 Subject: [PATCH 34/66] update mutation tests --- test/test_mutation.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/test_mutation.py b/test/test_mutation.py index 4c63be858..35acb47f2 100644 --- a/test/test_mutation.py +++ b/test/test_mutation.py @@ -21,9 +21,9 @@ def create_rectangle(x, y, dim=5): max_poly_num=3, allowed_area=[ [0, 0], - [0, 500], - [500, 500], - [500, 0], + [0, 100], + [100, 100], + [100, 0], [0, 0], ] ) @@ -40,14 +40,13 @@ def test_mutation_del_add_poly(): count_add_poly = 0 condition = False start_lenghs = len(structure.polygons) - for i in range(1000): + for i in range(100): mutated_structure = mutation(structure, domain, operations=mut_operations, operation_chance= 0.9999, operations_probs=mutation_each_prob) - equivalent_points = [s==m for s,m in zip(structure.polygons,mutated_structure.polygons)] if len(mutated_structure.polygons) < start_lenghs: count_del_poly += 1 elif len(mutated_structure.polygons) > 2: From 96037c4ae0dfedcf03afde138fa6d9132f10d4bd Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Tue, 7 Nov 2023 17:47:50 +0300 Subject: [PATCH 35/66] Fix for BaseGA and crossovers.py --- gefest/core/opt/operators/crossovers.py | 8 ++++---- gefest/tools/optimizers/GA/base_GA.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 942c9f4c0..37974f447 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -112,14 +112,14 @@ def polygon_level_crossover( ] pairs_dists = sorted(pairs_dists, key=lambda p_d: p_d[1]) if len(pairs_dists) == 0: - return s1 + return (s1,) poly_1 = pairs_dists[0][0][0] poly_2 = pairs_dists[0][0][1] if intersected: # adaptive angle # split_angle = (np.random.rand() * 2 - 1) * (70) elif pairs_dists[0][1] > domain.dist_between_polygons: - return s1 + return (s1,) c1, c2 = geom.get_centroid(poly_1), geom.get_centroid(poly_2) vector1 = geom.rotate_point(point=c2, origin=c1, angle=split_angle) @@ -128,7 +128,7 @@ def polygon_level_crossover( parts_1 = geom.split_polygon(poly_1, [c1, vector1], scale_factor) parts_2 = geom.split_polygon(poly_2, [c2, vector2], scale_factor) if len(parts_1) < 2 or len(parts_2) < 2: - return s1 + return (s1,) new_parts = (*parts_1[0], *parts_2[1]) if c1.y > c2.y else (*parts_1[1], *parts_2[0]) new_poly = geom.get_convex(Polygon(points=[Point(*p) for p in list(set(new_parts))])) @@ -138,7 +138,7 @@ def polygon_level_crossover( idx_ = where(s1.polygons, lambda p: p == poly_1)[0] s1[idx_] = new_poly - return s1 + return (s1,) class CrossoverTypes(Enum): diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py index 0c7d07b11..8487b114b 100644 --- a/gefest/tools/optimizers/GA/base_GA.py +++ b/gefest/tools/optimizers/GA/base_GA.py @@ -1,6 +1,6 @@ from random import randint from typing import Callable - +from gefest.core.opt.operators import selections from tqdm import tqdm from gefest.core.geometry import Structure @@ -21,7 +21,7 @@ def __init__( self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) self.sampler: Callable = opt_params.sampler self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator(opt_params.objectives) - self.selector: Callable = opt_params.selector + self.selector: Callable = getattr(selections, opt_params.selector.name) self.pop_size = opt_params.pop_size self.n_steps = opt_params.n_steps self.domain = self.opt_params.domain From 7125f0813a838ba640a3a2de73c0eb5e863dfc21 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 8 Nov 2023 18:29:22 +0300 Subject: [PATCH 36/66] fix codestyle, modules structure, convex mutations bugs, add py cfg example --- gefest/core/__init__.py | 1 - gefest/core/algs/geom/validation.py | 194 ------------ gefest/core/algs/postproc/__init__.py | 0 gefest/core/algs/sensitivity/__init__.py | 0 gefest/core/configs/optimization_params.py | 4 +- gefest/core/configs/tuner_params.py | 5 +- gefest/core/configs/utils.py | 62 ++-- gefest/core/geometry/datastructs/__init__.py | 1 - gefest/core/geometry/datastructs/structure.py | 4 + gefest/core/geometry/domain.py | 6 + gefest/core/geometry/geometry.py | 22 +- gefest/core/geometry/geometry_2d.py | 113 ++++--- gefest/core/geometry/utils.py | 261 +++++++++++----- .../opt/adapters/configuration_mapping.py | 2 +- gefest/core/opt/analytics.py | 54 ++-- gefest/core/opt/individual.py | 13 - gefest/core/opt/objective/tuner_objective.py | 31 ++ gefest/core/opt/operators/crossovers.py | 8 +- gefest/core/opt/operators/mutations.py | 289 ++++-------------- .../core/{algs => opt/postproc}/__init__.py | 0 .../{algs => opt}/postproc/resolve_errors.py | 8 +- gefest/core/{algs => opt}/postproc/rules.py | 32 +- .../core/{algs => opt}/postproc/rules_base.py | 0 .../core/{algs => opt}/postproc/validation.py | 4 +- gefest/core/opt/result.py | 29 -- gefest/core/opt/tuning/__init__.py | 0 gefest/core/serialization/any.py | 7 +- gefest/core/serialization/serializer.py | 23 +- gefest/core/structure/prohibited.py | 1 - gefest/core/utils/functions.py | 1 - gefest/core/utils/parallel_manager.py | 6 +- gefest/core/viz/struct_vizualizer.py | 11 +- .../estimators/DL/bw_surrogate/bw_cnn.py | 18 +- gefest/tools/estimators/DL/heat/heat_cnn.py | 18 +- .../simulators/comsol/comsol_interface.py | 4 +- .../simulators/sound_wave/sound_interface.py | 8 +- .../simulators/swan/swan_interface.py | 107 +++---- gefest/tools/optimizers/GA/GA.py | 68 +++-- gefest/tools/optimizers/GA/base_GA.py | 40 --- gefest/tools/optimizers/SPEA2/SPEA2.py | 2 +- .../tools/optimizers/golem_optimizer/age.py | 58 ++-- .../tools/optimizers/golem_optimizer/moead.py | 57 ++-- .../tools/optimizers/golem_optimizer/nsga2.py | 51 ++-- gefest/tools/samplers/DL/heat/heat_sampler.py | 34 ++- gefest/tools/samplers/DL/microfluid/aae.py | 58 ++-- .../tools/samplers/DL/microfluid/backbones.py | 82 ++--- .../DL/microfluid/microfluid_sampler.py | 37 ++- .../samplers/sens_analysis/sens_sampler.py | 8 +- .../algs/geom => tools/tuners}/__init__.py | 0 .../sa_core.py => tools/tuners/sa.py} | 144 ++++----- .../opt/tuning => tools/tuners}/tuner.py | 10 +- .../opt/tuning => tools/tuners}/utils.py | 34 +-- gefest_config.py | 133 ++++++++ refactored.py | 9 +- 54 files changed, 998 insertions(+), 1174 deletions(-) delete mode 100644 gefest/core/algs/geom/validation.py delete mode 100755 gefest/core/algs/postproc/__init__.py delete mode 100755 gefest/core/algs/sensitivity/__init__.py delete mode 100644 gefest/core/opt/individual.py create mode 100644 gefest/core/opt/objective/tuner_objective.py rename gefest/core/{algs => opt/postproc}/__init__.py (100%) mode change 100755 => 100644 rename gefest/core/{algs => opt}/postproc/resolve_errors.py (92%) rename gefest/core/{algs => opt}/postproc/rules.py (88%) rename gefest/core/{algs => opt}/postproc/rules_base.py (100%) rename gefest/core/{algs => opt}/postproc/validation.py (87%) delete mode 100644 gefest/core/opt/result.py delete mode 100644 gefest/core/opt/tuning/__init__.py delete mode 100644 gefest/tools/optimizers/GA/base_GA.py rename gefest/{core/algs/geom => tools/tuners}/__init__.py (100%) mode change 100755 => 100644 rename gefest/{core/algs/sensitivity/sa_core.py => tools/tuners/sa.py} (80%) rename gefest/{core/opt/tuning => tools/tuners}/tuner.py (93%) rename gefest/{core/opt/tuning => tools/tuners}/utils.py (56%) create mode 100644 gefest_config.py diff --git a/gefest/core/__init__.py b/gefest/core/__init__.py index 8b1378917..e69de29bb 100755 --- a/gefest/core/__init__.py +++ b/gefest/core/__init__.py @@ -1 +0,0 @@ - diff --git a/gefest/core/algs/geom/validation.py b/gefest/core/algs/geom/validation.py deleted file mode 100644 index 92a06d70a..000000000 --- a/gefest/core/algs/geom/validation.py +++ /dev/null @@ -1,194 +0,0 @@ -from itertools import permutations - -import numpy as np -from numpy.linalg import norm -from shapely.geometry import Point as GeomPoint -from shapely.geometry import Polygon as GeomPolygon -from shapely.validation import explain_validity - -from gefest.core.geometry import Polygon, Structure -from gefest.core.geometry.domain import Domain - -min_dist_from_boundary = 1 - - -def intersection(structure: Structure, domain: Domain) -> bool: - """The method for checking intersection between Polygons in the Structure - Args: - structure: the :obj:`Structure` that explore - domain: the :obj:`class Domain` - Returns: - ``True`` if at least one of the polygons in given :obj:`structure` intersects another, - otherwise - ``False`` - """ - - polygons = structure.polygons - if len(polygons) < 2: - return False - - for poly_1, poly_2 in permutations(polygons, 2): - if domain.geometry.intersects_poly(poly_1, poly_2): - return True - - return False - - -def out_of_bound(structure: Structure, domain=None) -> bool: - """The method for checking every polygon in the given :obj:`Structure` - on crossing borders of :obj:`Domain` - - Args: - structure: the :obj:`Structure` that explore - domain: the :obj:`Domain` that determinates the main - parameters, this method requires ``allowed_area`` from :obj:`Domain` - Returns: - ``True`` if at least one of the polygons in given :obj:`structure` crossing borders - of allowed area, otherwise - ``False`` - """ - geom_poly_allowed = GeomPolygon( - [GeomPoint(pt.x, pt.y) for pt in domain.allowed_area], - ) - - for poly in structure.polygons: - for pt in poly.points: - geom_pt = GeomPoint(pt.x, pt.y) - if ( - not geom_poly_allowed.contains(geom_pt) - and not geom_poly_allowed.distance(geom_pt) < min_dist_from_boundary - ): - return True - - return False - - -def too_close(structure: Structure, domain: Domain) -> bool: - """Checking for too close location between every :obj:`Polygon` in the - given :obj:`Structure` - Args: - structure: the :obj:`Structure` that explore - domain: the :obj:`Domain` that determinates the main - parameters, this method requires ``min_dist`` from :obj:`Domain` - Returns: - ``True`` if at least one distance between any polygons is less than value of minimal - distance set by :obj:`Domain`, otherwise - ``False`` - """ - is_too_close = any( - [ - any( - [ - _pairwise_dist(poly_1, poly_2, domain) < domain.min_dist - for poly_2 in structure.polygons - ], - ) - for poly_1 in structure.polygons - ], - ) - return is_too_close - - -def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain): - """ - ::TODO:: find the answer for the question: why return 0 gives infinite computation - """ - if poly_1 is poly_2 or len(poly_1.points) == 0 or len(poly_2.points) == 0: - return 9999 - - # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point - return domain.geometry.min_distance(poly_1, poly_2) - - -def self_intersection(structure: Structure, *args) -> bool: - """The method indicates that any :obj:`Polygon` in the :obj:`Structure` - is self-intersected - Args: - structure: the :obj:`Structure` that explore - Returns: - ``True`` if at least one of the polygons in the :obj:`Structure` is - self-intersected, otherwise - ``False`` - """ - - return any( - [ - len(poly.points) > 2 - and _forbidden_validity( - explain_validity( - GeomPolygon([GeomPoint(pt.x, pt.y) for pt in poly.points]), - ), - ) - for poly in structure.polygons - ], - ) - - -def distance_between_points(structure: Structure, domain: Domain) -> bool: - """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` - is placed in correct distance by previous point - Args: - structure: the :obj:`Structure` that explore - Returns: - ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` - """ - lenght = domain.dist_between_points - p1 = structure - check = [] - for i in [[p.coords()[:2] for p in poly.points] for poly in p1.polygons]: - for ind, pnt in enumerate(i[1:]): - check.append(norm(np.array(pnt) - np.array(i[ind]), ord=1) < lenght) - if any(check): - print('Намутировал плохой полигон!, distance_between_points') - return any(check) - - -def distance_between_points_in_poly(poly: Polygon, domain: Domain) -> bool: - """The method indicates that any :obj:`Point` in the :obj:`Polygon` - is placed in norm distance - Args: - poly: the :obj:`Polygon` that explore - Returns: - ``True`` if side of poly have incorrect lenght, otherwise - ``False`` - """ - lenght = domain.dist_between_points - check = [] - for i in [p.coords()[:2] for p in poly.points]: - for ind, pnt in enumerate(i[1:]): - check.append(norm(np.array(pnt) - np.array(i[ind]), ord=1) < lenght) - if any(check): - print('Намутировал плохой полигон!, distance_between_points_in_poly') - return any(check) - - -def unclosed_poly(structure: Structure, domain: Domain) -> bool: - """Checking for equality of the first and the last points - Args: - structure: the :obj:`Structure` that explore - domain: the :obj:`Domain` that determinates the main - parameters, this method requires ``is_closed`` from :obj:`Domain` - Returns: - ``True`` if patameter ``is_closed`` from :obj:`Domain` is ``True`` and at least - one of the polygons has unequality between the first one and the last point, - otherwise - ``False`` - """ - - if domain.geometry.is_closed: - return any([poly.points[0] != poly.points[-1] for poly in structure.polygons]) - else: - return False - - -def is_contain(structure: Structure, domain: Domain) -> bool: - is_contains = [] - - try: - for poly_area in domain.prohibited_area.polygons: - if poly_area.id == 'prohibited_area': - for poly in structure.polygons: - is_contains.append(domain.geometry.contains(poly, poly_area)) - - return any(is_contains) - - except AttributeError: - return False - - -def _forbidden_validity(validity): - return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity diff --git a/gefest/core/algs/postproc/__init__.py b/gefest/core/algs/postproc/__init__.py deleted file mode 100755 index e69de29bb..000000000 diff --git a/gefest/core/algs/sensitivity/__init__.py b/gefest/core/algs/sensitivity/__init__.py deleted file mode 100755 index e69de29bb..000000000 diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 1452cacd1..b3b992aa2 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -7,8 +7,6 @@ from golem.core.optimisers.genetic.operators.selection import SelectionTypesEnum from pydantic import BaseModel, ConfigDict, model_validator -from gefest.core.algs.postproc.resolve_errors import Postrocessor -from gefest.core.algs.postproc.rules import PolygonRule, Rules, StructureRule from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry.domain import Domain from gefest.core.opt.adapters.structure import StructureAdapter @@ -16,6 +14,8 @@ from gefest.core.opt.operators.crossovers import CrossoverTypes, panmixis from gefest.core.opt.operators.mutations import MutationTypes from gefest.core.opt.operators.selections import SelectionTypes +from gefest.core.opt.postproc.resolve_errors import Postrocessor +from gefest.core.opt.postproc.rules import PolygonRule, Rules, StructureRule from gefest.core.utils.logger import LogDispatcher from gefest.tools.samplers.standard.standard import StandardSampler diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index cd32df4b4..cd0b53453 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -5,7 +5,7 @@ from hyperopt import hp from pydantic import BaseModel, ConfigDict, field_validator -from gefest.core.opt.tuning import utils +from gefest.tools.tuners import utils class TunerParams(BaseModel): @@ -22,6 +22,7 @@ class TunerParams(BaseModel): timeout_minutes: int = 60 @field_validator('tuner_type') + @classmethod def tuner_type_validate(cls, value): if isinstance(value, str): opt_names = ['iopt', 'optuna', 'sequential', 'simulataneous'] @@ -33,6 +34,7 @@ def tuner_type_validate(cls, value): raise ValueError(f'Invalid argument: {value} of type {type(value)}.') @field_validator('hyperopt_dist') + @classmethod def hyperopt_fun_validate(cls, value): if isinstance(value, str): r_ = inspect.getmembers(hp, inspect.isfunction) @@ -48,6 +50,7 @@ def hyperopt_fun_validate(cls, value): raise ValueError(f'Invalid argument: {value} of type {type(value)}.') @field_validator('variacne_generator') + @classmethod def variacne_generator_fun_validate(cls, value): fun_names = ['average_edge_variance'] if isinstance(value, str): diff --git a/gefest/core/configs/utils.py b/gefest/core/configs/utils.py index 34f1cc54f..708b374f5 100644 --- a/gefest/core/configs/utils.py +++ b/gefest/core/configs/utils.py @@ -1,6 +1,4 @@ -import importlib.util import inspect -import sys from pathlib import Path import yaml @@ -21,49 +19,43 @@ def __str__(self): return f'ParseMetricsError. {self.message}' -def dynamic_import(name): - import __main__ - - path = inspect.getfile(__main__) - components = name.split('.') - module = __import__('.'.join(components[:-1]), fromlist=[components[-1]]) - import_item = getattr(module, components[-1]) - return import_item - - def load_config( - cfg_file_path: str, - metrics_file_path: str, + cfg_py_path: str, + cfg_yaml_path: str = None, *args, **kwargs, ) -> OptimizationParams: """Generates configuretion files from yaml files. Args: - cfg_file_path (str): Path to config.yaml. - metrics_file_path (str): Path to metrics.py. + cfg_py_path (str): Path to metrics.py. + cfg_yaml_path (str): Path to config.yaml. Returns: OptimizationParams: GEFEST unified configuretion file. """ - config_dict = yaml.safe_load(Path(cfg_file_path).read_text()) - domain_cfg = Domain.model_validate(config_dict['domain']) - tuner_cfg = TunerParams.model_validate(config_dict['tuner_params']) - - module_ = __import__(Path(metrics_file_path).stem) - user_metrics = [] - for name, obj in inspect.getmembers(module_): - if inspect.isclass(obj): - if issubclass(obj, Objective) and obj is not Objective: - user_metrics.append(name) - - if not user_metrics: - raise ParseMetricsError('No Objective class has been loaded.') - config_dict['opt_params']['domain'] = domain_cfg - config_dict['opt_params']['tuner_cfg'] = tuner_cfg - config_dict['opt_params']['objectives'] = [ - getattr(module_, metric)(domain_cfg) for metric in user_metrics - ] - opt_params = OptimizationParams.model_validate(config_dict['opt_params']) + module_ = __import__(Path(cfg_py_path).stem) + if cfg_yaml_path: + user_metrics = [] + for name, obj in inspect.getmembers(module_): + if inspect.isclass(obj): + if issubclass(obj, Objective) and obj is not Objective: + user_metrics.append(name) + + if not user_metrics: + raise ParseMetricsError('No Objective class has been loaded.') + + config_dict = yaml.safe_load(Path(cfg_yaml_path).read_text()) + domain_cfg = Domain.model_validate(config_dict['domain']) + tuner_cfg = TunerParams.model_validate(config_dict['tuner_params']) + + config_dict['opt_params']['domain'] = domain_cfg + config_dict['opt_params']['tuner_cfg'] = tuner_cfg + config_dict['opt_params']['objectives'] = [ + getattr(module_, metric)(domain_cfg) for metric in user_metrics + ] + opt_params = OptimizationParams.model_validate(config_dict['opt_params']) + else: + opt_params = module_.opt_params return opt_params diff --git a/gefest/core/geometry/datastructs/__init__.py b/gefest/core/geometry/datastructs/__init__.py index 8b1378917..e69de29bb 100644 --- a/gefest/core/geometry/datastructs/__init__.py +++ b/gefest/core/geometry/datastructs/__init__.py @@ -1 +0,0 @@ - diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index f46f5f380..7f92a8998 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -1,6 +1,7 @@ from typing import Union from uuid import UUID, uuid4 +from loguru import logger from pydantic import Field from pydantic.dataclasses import dataclass @@ -21,6 +22,9 @@ def __len__(self): def __setattr__(self, name, value): if name in ['polygons']: self.fitness = [] + lens = list(map(len, value)) + if any(x < 2 for x in lens): + logger.trace('bruh') super().__setattr__(name, value) def __setitem__(self, key, value): diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py index 5f831c342..cea340512 100644 --- a/gefest/core/geometry/domain.py +++ b/gefest/core/geometry/domain.py @@ -51,30 +51,35 @@ def create_classes_instances(self): return self @field_validator('min_poly_num') + @classmethod def validate_min_poly_num(cls, data: int): if data < 1: raise ValueError('Min number of polygons must be positive value.') return data @field_validator('max_poly_num') + @classmethod def validate_max_poly_num(cls, data: int): if data < 1: raise ValueError('Max number of polygons must be positive value.') return data @field_validator('min_points_num') + @classmethod def validate_min_points_num(cls, data: int): if data < 1: raise ValueError('Max number of polygons must be positive value.') return data @field_validator('fixed_points') + @classmethod def validate_fixed_points(cls, data: Union[Polygon, list[tuple[float, float]]]): if isinstance(data, Polygon): return data return Polygon([Point(*coords) for coords in data]) @field_validator('prohibited_area') + @classmethod def validate_prohibited_area(cls, data: Optional[Union[Structure, str]]): if isinstance(data, Structure): return data @@ -88,6 +93,7 @@ def validate_prohibited_area(cls, data: Optional[Union[Structure, str]]): raise TypeError(f'Invalid argument {data}.') @field_validator('allowed_area') + @classmethod def validate_allowed_area(cls, data: Union[Polygon, list[list[float]]]): if data is None or len(data) <= 2: raise ValueError('Not enough points for allowed_area.') diff --git a/gefest/core/geometry/geometry.py b/gefest/core/geometry/geometry.py index 837dbdb61..6b1cf805f 100644 --- a/gefest/core/geometry/geometry.py +++ b/gefest/core/geometry/geometry.py @@ -2,8 +2,6 @@ from typing import List from pydantic import BaseModel -from shapely.geometry import LineString -from shapely.geometry import Point as GeomPoint from gefest.core.geometry import Point, Polygon @@ -17,40 +15,40 @@ class Geometry(BaseModel, ABC): @abstractmethod def resize_poly(self, poly: Polygon, x_scale: float, y_scale: float): - pass + ... @abstractmethod def rotate_poly(self, poly: Polygon, angle: float): - pass + ... @abstractmethod def get_length(self, polygon: Polygon): - pass + ... @abstractmethod def get_square(self, polygon: Polygon): - pass + ... @abstractmethod def is_contain_point(self, poly: Polygon, point: Point): - pass + ... @abstractmethod def get_convex(self, poly: Polygon): - pass + ... @abstractmethod def intersects(self, poly_1: Polygon, poly_2: Polygon) -> bool: - pass + ... @abstractmethod def min_distance(self, pt_1: Point, pt_2: Point) -> float: - pass + ... @abstractmethod def nearest_point(self, point: Point, poly: Polygon) -> Point: - pass + ... @abstractmethod def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: - pass + ... diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index d2039fca6..01a315fae 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -1,21 +1,18 @@ -from typing import List from uuid import uuid4 import numpy as np from loguru import logger -from numpy import arccos, array, clip, dot -from numpy.linalg import norm -from pydantic.dataclasses import dataclass from shapely import affinity, get_parts -from shapely.affinity import rotate, scale +from shapely.affinity import scale from shapely.geometry import ( GeometryCollection, LineString, MultiLineString, + MultiPoint, MultiPolygon, ) -from shapely.geometry import Point as GeomPoint -from shapely.geometry import Polygon as GeomPolygon +from shapely.geometry import Point as ShapelyPoint +from shapely.geometry import Polygon as ShapelyPolygon from shapely.geometry import box, mapping from shapely.ops import nearest_points, split @@ -40,11 +37,15 @@ def get_length(self, polygon: Polygon): if len(polygon.points) < 1: return 0 - geom_polygon = LineString([GeomPoint(pt.x, pt.y) for pt in polygon]) + geom_polygon = LineString([ShapelyPoint(pt.x, pt.y) for pt in polygon]) return geom_polygon.length - def get_coords(self, poly) -> List[Point]: + def shapely_to_gefest(self, geom_in): + if isinstance(geom_in, ShapelyPolygon): + return Polygon(self.get_coords(geom_in)) + + def get_coords(self, poly) -> list[Point]: """The function for getting points Args: poly: :obj:`Polygon` for processing @@ -52,8 +53,8 @@ def get_coords(self, poly) -> List[Point]: all :obj:`Point` that :obj:`poly`contains """ - if isinstance(poly, GeomPolygon): - poly = LineString(poly.exterior.coords) + if isinstance(poly, ShapelyPolygon): + poly = poly.exterior points = [ Point(x, y) for x, y in zip( @@ -77,7 +78,6 @@ def get_prohibited_geom( geom_collection.append(self._poly_to_shapely_line(poly).buffer(buffer_size)) return GeometryCollection(geom_collection) - ## def resize_poly( self, poly: Polygon, @@ -116,16 +116,12 @@ def get_angle( vector1: tuple[Point, Point], vector2: tuple[Point, Point], ) -> float: - np.seterr('raise') - u = array([vector1[1].x - vector1[0].x, vector1[1].y - vector1[0].y]) - v = array([vector2[1].x - vector2[0].x, vector2[1].y - vector2[0].y]) - if norm(v) == 0 or norm(u) == 0: - logger.critical(f'invalid vectors: {vector1}, {vector2}') - c = dot(u, v) / norm(u) / norm(v) - angle = arccos(clip(c, -1, 1)) - return np.rad2deg(angle) - - ## hold + v1 = np.array([vector1[1].x - vector1[0].x, vector1[1].y - vector1[0].y]) + v2 = np.array([vector2[1].x - vector2[0].x, vector2[1].y - vector2[0].y]) + v1_u = v1 / np.linalg.norm(v1) + v2_u = v2 / np.linalg.norm(v2) + return np.rad2deg(np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0))) + def rotate_point( self, point: Point, @@ -133,9 +129,9 @@ def rotate_point( angle: float, ) -> Polygon: rotated = affinity.rotate( - GeomPoint(point.x, point.y), + ShapelyPoint(point.x, point.y), angle, - GeomPoint(origin.x, origin.y), + ShapelyPoint(origin.x, origin.y), ) return Point(rotated.x, rotated.y) @@ -168,7 +164,6 @@ def rotate_poly( return rotated_poly - ### property def get_square(self, polygon: Polygon) -> float: """Recieving value of the area Args: @@ -180,11 +175,10 @@ def get_square(self, polygon: Polygon) -> float: if len(polygon.points) <= 1: return 0 - geom_polygon = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in polygon]) + geom_polygon = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in polygon]) return geom_polygon.area - ### property def is_contain_point(self, poly: Polygon, point: Point) -> bool: """Checking if a point is inside a polygon Args: @@ -193,12 +187,11 @@ def is_contain_point(self, poly: Polygon, point: Point) -> bool: Returns: ``True`` if :obj:`point` is into :obj:`poly`, otherwise ``False`` """ - geom_poly_allowed = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in poly]) - geom_pt = GeomPoint(point.x, point.y) + geom_poly_allowed = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in poly]) + geom_pt = ShapelyPoint(point.x, point.y) return geom_poly_allowed.contains(geom_pt) - ## hold def nearest_point(self, point: Point, poly: Polygon) -> Point: """Calculating closest point between input point and polygon. Args: @@ -208,11 +201,11 @@ def nearest_point(self, point: Point, poly: Polygon) -> Point: nearest_correct_position :obj:`Point` from ``point`` among all points in the ``poly`` """ geom_poly = self._poly_to_shapely_line(poly) - geom_point = GeomPoint(point.x, point.y) + geom_point = ShapelyPoint(point.x, point.y) _, nearest_correct_position = nearest_points(geom_point, geom_poly) return Point(nearest_correct_position.x, nearest_correct_position.y) - def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: + def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> list[Point]: """Calculating closest point between two polygons Args: poly_1: the first :obj:`Polygon` that explore @@ -230,7 +223,6 @@ def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: ) return nearest_correct_position - ### property def get_convex(self, poly: Polygon) -> Polygon: """Obtaining a convex polygon to avoid intersections Args: @@ -246,7 +238,6 @@ def get_convex(self, poly: Polygon) -> Polygon: return polygon - ## hold def intersection_line_line(self, points1, points2, scale1, scale2): a = scale(LineString([(p.x, p.y) for p in points1]), scale1, scale1) b = scale(LineString([(p.x, p.y) for p in points2]), scale2, scale2) @@ -271,8 +262,8 @@ def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_fac line = LineString([(p.x, p.y) for p in points]) line = scale(line, scale_factor) bounding_box = box(minx * 2, miny * 2, maxx * 2, maxy * 2) - a = GeomPoint(line.boundary.bounds[:2]) - b = GeomPoint(line.boundary.bounds[2:]) + a = ShapelyPoint(line.boundary.bounds[:2]) + b = ShapelyPoint(line.boundary.bounds[2:]) if a.x == b.x: # vertical line extended_line = LineString([(a.x, miny), (a.x, maxy)]) elif a.y == b.y: # horizonthal line @@ -286,20 +277,25 @@ def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_fac x0 = (miny - m) / k x1 = (maxy - m) / k points_on_boundary_lines = [ - GeomPoint(minx, y0), - GeomPoint(maxx, y1), - GeomPoint(x0, miny), - GeomPoint(x1, maxy), + ShapelyPoint(minx, y0), + ShapelyPoint(maxx, y1), + ShapelyPoint(x0, miny), + ShapelyPoint(x1, maxy), ] points_sorted_by_distance = sorted(points_on_boundary_lines, key=bounding_box.distance) extended_line = LineString(points_sorted_by_distance[:2]) - if extended_line.intersects(figure): - extended_line.intersection(figure) + interaction = extended_line.intersection(figure) + if interaction: + if isinstance(interaction, ShapelyPoint): + interaction = [Point(interaction.x, interaction.y)] + elif isinstance(interaction, MultiPoint): + interaction = [Point(p.x, p.y) for p in interaction.geoms] + else: + interaction = [Point(p.x, p.y) for p in interaction.coords] else: return None - ### property def simplify(self, poly: Polygon, tolerance: float) -> Polygon: from matplotlib import pyplot as plt from shapely.plotting import plot_polygon @@ -345,12 +341,8 @@ def simplify(self, poly: Polygon, tolerance: float) -> Polygon: return out - ## hold - def remove_spikes(self, poly: Polygon, eps: float): - poly = self._poly_to_shapely_poly(poly) - no_ = poly.buffer(-eps, 1, join_style='mitre').buffer(eps * 1.05, 1, join_style='mitre') - - return Polygon([Point(p[0], p[1]) for p in poly.exterior.coords]) + def is_simple(self, poly: Polygon) -> bool: + return self._poly_to_shapely_poly(poly).is_simple def get_random_point_in_shapey_geom(self, fig): if fig.is_empty: @@ -365,7 +357,7 @@ def get_random_point_in_shapey_geom(self, fig): x = np.random.uniform(minx, maxx, 1) y = np.random.uniform(miny, maxy, 1) - while not fig.contains(GeomPoint(x, y)): + while not fig.contains(ShapelyPoint(x, y)): x = np.random.uniform(minx, maxx, 1) y = np.random.uniform(miny, maxy, 1) @@ -384,13 +376,12 @@ def get_random_point_in_poly(self, poly) -> Point: for _ in range(100): x = np.random.uniform(minx, maxx, 1) y = np.random.uniform(miny, maxy, 1) - if poly.contains(GeomPoint(x, y)): + if poly.contains(ShapelyPoint(x, y)): point = Point(x, y) break return point - ### propetry def get_centroid(self, poly: Polygon) -> Point: """Getting a point that is the center of mass of the polygon Args: @@ -401,7 +392,7 @@ def get_centroid(self, poly: Polygon) -> Point: points = [pt for pt in poly.points] if len(points) < 3: points.append(points[0]) - geom_poly = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in points]) + geom_poly = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in points]) geom_point = geom_poly.centroid point = Point(geom_point.x, geom_point.y) return point @@ -422,7 +413,7 @@ def intersects(self, structure: Structure) -> bool: def contains(self, poly1: Polygon, poly2: Polygon) -> bool: geom_polygon1 = self._poly_to_shapely_line(poly1) - geom_polygon2 = GeomPolygon([self._pt_to_shapely_pt(pt) for pt in poly2]) + geom_polygon2 = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in poly2]) is_contain = geom_polygon2.contains(geom_polygon1) return is_contain @@ -477,26 +468,26 @@ def _poly_to_shapely_line(self, poly: Polygon) -> LineString: """ return LineString([self._pt_to_shapely_pt(pt) for pt in poly.points]) - def _poly_to_shapely_poly(self, poly: Polygon) -> GeomPolygon: + def _poly_to_shapely_poly(self, poly: Polygon) -> ShapelyPolygon: """Transform GEFEST Polygon to shapely Polygon. Args: poly: Polygon Returns: - GeomPolygon + ShapelyPolygon """ - return GeomPolygon([(pt.x, pt.y) for pt in poly.points]) + return ShapelyPolygon([(pt.x, pt.y) for pt in poly.points]) - def _pt_to_shapely_pt(self, pt: Point) -> GeomPoint: + def _pt_to_shapely_pt(self, pt: Point) -> ShapelyPoint: """Transform GEFEST Polygon to shapely Polygon. Args: poly: Point Returns: - GeomPoint + ShapelyPoint """ - return GeomPoint(pt.x, pt.y) + return ShapelyPoint(pt.x, pt.y) def split_polygon(self, poly, line: tuple[Point, Point], scale_factor=1000): - poly = GeomPolygon([(p.x, p.y) for p in poly]) + poly = ShapelyPolygon([(p.x, p.y) for p in poly]) line = LineString( [ (line[0].x, line[0].y), diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 5b71d0e6d..a9f1f99ac 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -1,12 +1,21 @@ -import json -from dataclasses import dataclass -from functools import partial from random import randint from typing import Optional import numpy as np from loguru import logger +from polygenerator import ( + random_convex_polygon, + random_polygon, + random_star_shaped_polygon, +) from shapely.affinity import scale +from shapely.geometry import ( + GeometryCollection, + LineString, + MultiLineString, + MultiPolygon, +) +from shapely.geometry import Point as SPoint from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.geometry_2d import Geometry2D @@ -43,7 +52,7 @@ def get_random_poly(parent_structure: Optional[Structure], domain: Domain) -> Op The main idea is to create centroids along with a neighborhood to locate the polygon. Neighborhood sizes range from small to large. The main condition for creating a neighborhood is the absence of other polygons in it. - After setting the neighborhood, polygons are created around the centroid inside the given neighborhood. + After setting the neighborhood, polygons are created around the centroid inside it. This approach is less demanding on postprocessing than random creation """ @@ -83,13 +92,6 @@ def get_random_point(polygon: Polygon, structure: Structure, domain: Domain) -> return point -from polygenerator import ( - random_convex_polygon, - random_polygon, - random_star_shaped_polygon, -) - - def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: num_points = randint( @@ -110,8 +112,6 @@ def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2 new_poly = generator(num_points) if not geometry.is_closed: start = np.random.choice(range(num_points), 1)[0] - # slice_length = np.random.choice(range(3, len(poly_points)), 1)[0] - # logger.info(slice_length) new_poly = [new_poly[((start + i) % len(new_poly))] for i in range(num_points)] scale_factor = 2 * (sigma / (1 ** 0.5)) @@ -130,51 +130,6 @@ def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2 return new_poly -# def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: -# # Creating polygon in the neighborhood of the centroid -# # sigma defines neighborhood -# num_points = randint( -# domain.min_points_num, -# domain.max_points_num, -# ) # Number of points in a polygon -# points = [] -# cntr = 0 -# while len(points) < num_points: -# cntr += 1 - -# point = create_polygon_point(centroid, sigma) -# while not in_bound(point, domain): -# point = create_polygon_point(centroid, sigma) -# points.append(point) -# ind = len(points) - 1 -# if ind > 0: -# if ( -# np.linalg.norm( -# np.array(points[ind].coords[:2]) - np.array(points[ind - 1].coords[:2]), ord=1 -# ) -# < domain.dist_between_points -# ): -# del points[ind] -# if len(points) == num_points: -# if ( -# np.linalg.norm( -# np.array(points[-1].coords[:2]) - np.array(points[0].coords[:2]), ord=1 -# ) -# < domain.dist_between_points -# ): -# del points[-1] -# if len(points) == num_points: -# if domain.geometry.is_closed: -# points.append(points[0]) -# poly = geometry.get_convex(Polygon(points=points)) -# points = poly.points -# if cntr > 5000 and len(points) > 4: -# break - -# # logger.info(f'Create poly finish, {cntr} iterations.') -# return poly - - def get_sigma_max(poly, init_max): sigma_max = init_max left_bound = 0 @@ -256,11 +211,6 @@ def distance(point: Point, structure: Structure, geometry: Geometry2D) -> float: return min(distances) -from shapely.affinity import scale -from shapely.geometry import LineString, MultiLineString -from shapely.geometry import Point as GeomPoint - - def get_selfintersection_safe_point( poly: Polygon, domain: Domain, @@ -269,8 +219,7 @@ def get_selfintersection_safe_point( ) -> Polygon: 'for non convex geometry' geom = domain.geometry - if len(poly) <= 5: - logger.info('special_case') + if geom.is_closed: parts = [ *poly.points[(point_right_idx) % len(poly) : :], @@ -286,19 +235,18 @@ def get_selfintersection_safe_point( ] if len(part) != 1 ] - # return border border = MultiLineString( [scale(line, xfact=0.99, yfact=0.99) for line in border if not line.is_empty], ) - l = poly[point_left_idx % len(poly)] - r = poly[point_right_idx % len(poly)] + l_ = poly[point_left_idx % len(poly)] + r_ = poly[point_right_idx % len(poly)] - origin = Point((l.x + r.x) / 2, (l.y + l.y) / 2) + origin = Point((l_.x + r_.x) / 2, (l_.y + l_.y) / 2) scalefactor = ( - (LineString(((l.x, l.y), (r.x, r.y))).length / 2) + (LineString(((l_.x, l_.y), (r_.x, r_.y))).length / 2) if len(poly) > 2 else geom.get_length(poly) * 1.5 - ) # 1.5 ?? + ) points = [] p_area = geom.get_prohibited_geom( domain.prohibited_area, @@ -307,7 +255,11 @@ def get_selfintersection_safe_point( for _ in range(200): point = random_polar(origin, scalefactor) points.append(point) - new_segment = scale(LineString(((l.x, l.y), (point.x, point.y), (r.x, r.y))), 0.99, 0.99) + new_segment = scale( + LineString(((l_.x, l_.y), (point.x, point.y), (r_.x, r_.y))), + 0.99, + 0.99, + ) if all( ( @@ -321,3 +273,168 @@ def get_selfintersection_safe_point( point = None return point, border + + +def get_convex_safe_area( + poly: Polygon, + domain: Domain, + point_left_idx: int, + point_right_idx: int, + structure: Structure, + poly_idx: int, + **kwargs, +) -> Polygon: + geom = domain.geometry + movment_area = None + + poly_len = len(poly) + if poly_len == 2: + p = poly[(point_left_idx + 1) % poly_len] + circle = SPoint(p.x, p.y).buffer(geom.get_length(poly) * 1.5) + base_area = [Point(p[0], p[1]) for p in list(circle.exterior_.coords)] + + elif poly_len == 3: + p = poly[(point_left_idx + 1) % poly_len] + circle = SPoint(p.x, p.y).buffer(geom.get_length(poly) / 3) + base_area = [Point(p[0], p[1]) for p in list(circle.exterior_.coords)] + + else: + left_cut = [ + poly[((point_left_idx - 1) + poly_len) % poly_len], + poly[(point_left_idx) % poly_len], + ] + right_cut = [ + poly[(point_right_idx + 1) % poly_len], + poly[(point_right_idx) % poly_len], + ] + + cut_angles = ( + geom.get_angle( + left_cut, + (left_cut[1], right_cut[1]), + ), + geom.get_angle( + right_cut, + (right_cut[1], left_cut[1]), + ), + ) + + p1, p2 = left_cut[1], right_cut[1] + pad_vector_points = [p1, geom.rotate_point(p2, p1, 90)] + pad_vector = ( + pad_vector_points[1].x - pad_vector_points[0].x, + pad_vector_points[1].y - pad_vector_points[0].y, + ) + slice_line = ( + Point(left_cut[1].x + pad_vector[0], left_cut[1].y + pad_vector[1]), + Point(right_cut[1].x + pad_vector[0], right_cut[1].y + pad_vector[1]), + ) + scale_factor = max(domain.max_x, domain.max_y) * 100 + + if sum(cut_angles) < 170: + + intersection_point = geom.intersection_line_line( + left_cut, + right_cut, + scale_factor, + scale_factor, + ) + if intersection_point is not None: + mid_points = [intersection_point] + else: + mid_points = [ + geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), + geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), + ] + slice_points = geom.intersection_poly_line( + Polygon( + [ + left_cut[1], + *mid_points, + right_cut[1], + ], + ), + slice_line, + scale_factor, + ) + + base_area = [ + left_cut[1], + *slice_points, + right_cut[1], + ] + base_area = [ + Point(p[0], p[1]) + for p in geom._poly_to_shapely_poly(Polygon(base_area)).convex_hull.exterior_.coords + ] + + else: + base_area = [ + left_cut[1], + geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), + geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), + right_cut[1], + ] + if base_area[1] is None or base_area[2] is None: + logger.warning('here') + + if not geom._poly_to_shapely_poly(Polygon(base_area)).is_simple: + base_area = [ + left_cut[1], + geom.intersection_line_line(left_cut, right_cut, scale_factor, scale_factor), + right_cut[1], + ] + + if base_area: + other_polygons = Structure([poly for i, poly in enumerate(structure) if i != poly_idx]) + movment_area = _substract_oссupied_area( + Polygon(base_area), + other_polygons, + domain, + left_cut[1].coords, + right_cut[1].coords, + ) + return movment_area + + +def _substract_oссupied_area( + base_area: Polygon, + structure: Structure, + domain: Domain, + left_point: tuple[float, float], + right_point: tuple[float, float], +): + geom = domain.geometry + prohibs = geom.get_prohibited_geom( + domain.prohibited_area, + buffer_size=domain.dist_between_polygons, + ) + + movment_area = geom._poly_to_shapely_poly(base_area).intersection( + geom._poly_to_shapely_poly(domain.allowed_area), + ) + + for fig in prohibs.geoms: + movment_area = movment_area.difference( + fig.buffer( + domain.min_dist_from_boundary, + ), + ) + + for idx in [idx for idx in range(len(structure))]: + movment_area = movment_area.difference( + geom._poly_to_shapely_poly(structure[idx]).buffer( + domain.dist_between_polygons, + ), + ) + + if movment_area.is_empty: + logger.warning('Empty movment area.') + movment_area = None + elif isinstance(movment_area, (MultiPolygon, GeometryCollection)): + for g_ in movment_area.geoms: + if g_.intersects(LineString((left_point, right_point))): + movment_area = g_ + break + + return movment_area diff --git a/gefest/core/opt/adapters/configuration_mapping.py b/gefest/core/opt/adapters/configuration_mapping.py index 2d449929c..1fa239c9d 100644 --- a/gefest/core/opt/adapters/configuration_mapping.py +++ b/gefest/core/opt/adapters/configuration_mapping.py @@ -7,12 +7,12 @@ from golem.core.optimisers.optimization_parameters import GraphRequirements from golem.core.optimisers.optimizer import GraphGenerationParams -from gefest.core.algs.postproc.resolve_errors import validate from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.opt.adapters.factories import StructureFactory from gefest.core.opt.adapters.operator import OperationWrap from gefest.core.opt.operators.crossovers import crossover_structures from gefest.core.opt.operators.mutations import mutate_structure +from gefest.core.opt.postproc.resolve_errors import validate def map_into_graph_requirements( diff --git a/gefest/core/opt/analytics.py b/gefest/core/opt/analytics.py index 9e804c06f..5ab9c8de3 100644 --- a/gefest/core/opt/analytics.py +++ b/gefest/core/opt/analytics.py @@ -7,7 +7,7 @@ class EvoAnalytics: - run_id = "def" + run_id = 'def' @staticmethod def save_cantidate( @@ -20,19 +20,19 @@ def save_cantidate( subfolder_name=None, ): - if not os.path.isdir(f"HistoryFiles"): - os.mkdir(f"HistoryFiles") + if not os.path.isdir(f'HistoryFiles'): + os.mkdir(f'HistoryFiles') if subfolder_name: - if not os.path.isdir(f"HistoryFiles/{subfolder_name}"): - os.mkdir(f"HistoryFiles/{subfolder_name}") + if not os.path.isdir(f'HistoryFiles/{subfolder_name}'): + os.mkdir(f'HistoryFiles/{subfolder_name}') - hist_file_name = f"HistoryFiles/{subfolder_name}/history_{EvoAnalytics.run_id}.csv" + hist_file_name = f'HistoryFiles/{subfolder_name}/history_{EvoAnalytics.run_id}.csv' else: - hist_file_name = f"HistoryFiles/history_{EvoAnalytics.run_id}.csv" + hist_file_name = f'HistoryFiles/history_{EvoAnalytics.run_id}.csv' if not os.path.isfile(hist_file_name): - with open(hist_file_name, "w", newline="") as f: + with open(hist_file_name, 'w', newline='') as f: EvoAnalytics._write_header_to_csv(f, objectives, anlytics_objectives, genotype) EvoAnalytics._write_candidate_to_csv( f, @@ -44,7 +44,7 @@ def save_cantidate( local_id, ) else: - with open(hist_file_name, "a", newline="") as f: + with open(hist_file_name, 'a', newline='') as f: EvoAnalytics._write_candidate_to_csv( f, pop_num, @@ -57,14 +57,20 @@ def save_cantidate( @staticmethod def _write_candidate_to_csv( - f, pop_num, objs, analytics_objectives, genotype, referenced_dataset, local_id, + f, + pop_num, + objs, + analytics_objectives, + genotype, + referenced_dataset, + local_id, ): - writer = csv.writer(f, delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL) + writer = csv.writer(f, delimiter=',', quotechar=' ', quoting=csv.QUOTE_MINIMAL) writer.writerow( [ pop_num, referenced_dataset, - ",".join([str(round(_, 6)) for _ in objs if _ is not None]), + ','.join([str(round(_, 6)) for _ in objs if _ is not None]), analytics_objectives, local_id, ], @@ -74,36 +80,36 @@ def _write_candidate_to_csv( def _write_header_to_csv(f, objectives, analytics_objectives, genotype): if len(analytics_objectives) == 0: analytics_objectives = [] - writer = csv.writer(f, delimiter=",", quotechar=" ", quoting=csv.QUOTE_MINIMAL) + writer = csv.writer(f, delimiter=',', quotechar=' ', quoting=csv.QUOTE_MINIMAL) writer.writerow( [ - "pop_num", - "referenced_dataset", - ",".join([f"obj{_}" for _ in range(0, len(objectives))]), - ",".join([f"ananlytics_ob{_}" for _ in range(len(analytics_objectives))]), - "local_id", + 'pop_num', + 'referenced_dataset', + ','.join([f'obj{_}' for _ in range(0, len(objectives))]), + ','.join([f'ananlytics_ob{_}' for _ in range(len(analytics_objectives))]), + 'local_id', ], ) @staticmethod def clear(): - hist_file_name = f"HistoryFiles/history_{EvoAnalytics.run_id}.csv" + hist_file_name = f'HistoryFiles/history_{EvoAnalytics.run_id}.csv' if os.path.isfile(hist_file_name): os.remove(hist_file_name) @staticmethod def create_boxplot(): - f = f"HistoryFiles/history_{EvoAnalytics.run_id}.csv" + f = f'HistoryFiles/history_{EvoAnalytics.run_id}.csv' - df = pd.read_csv(f, header=0, sep="\s*,\s*") + df = pd.read_csv(f, header=0, sep='\s*,\s*') plt.clf() plt.figure(figsize=(20, 10)) plt.xticks(rotation=45) - sns.boxplot(x=df["pop_num"], y=df["obj0"], palette="Blues") + sns.boxplot(x=df['pop_num'], y=df['obj0'], palette='Blues') plt.show() - if "obj1" in df.columns: + if 'obj1' in df.columns: plt.figure(figsize=(20, 10)) plt.xticks(rotation=45) - sns.boxplot(x=df["pop_num"], y=df["obj1"], palette="Blues") + sns.boxplot(x=df['pop_num'], y=df['obj1'], palette='Blues') plt.show() diff --git a/gefest/core/opt/individual.py b/gefest/core/opt/individual.py deleted file mode 100644 index 657e83e29..000000000 --- a/gefest/core/opt/individual.py +++ /dev/null @@ -1,13 +0,0 @@ -from uuid import UUID, uuid4 - -from pydantic import Field -from pydantic.dataclasses import dataclass - -from gefest.core.geometry import Structure - - -@dataclass -class Individual: - genotype: Structure - fitness: list[float] = Field(default_factory=list) - _id: UUID = Field(default_factory=uuid4) diff --git a/gefest/core/opt/objective/tuner_objective.py b/gefest/core/opt/objective/tuner_objective.py new file mode 100644 index 000000000..210173564 --- /dev/null +++ b/gefest/core/opt/objective/tuner_objective.py @@ -0,0 +1,31 @@ +from typing import Any, Callable, Dict, Optional, Union + +from golem.core.dag.graph import Graph +from golem.core.optimisers.fitness import Fitness, MultiObjFitness, SingleObjFitness +from golem.core.optimisers.objective.objective import Objective as GolemObjective + +from gefest.core.opt.adapters.structure import StructureAdapter + + +class GolemObjectiveWithPreValidation(GolemObjective): + def __init__( + self, + quality_metrics: Union[Callable, Dict[Any, Callable]], + validator: Callable, + adapter: StructureAdapter, + complexity_metrics: Optional[Dict[Any, Callable]] = None, + is_multi_objective: bool = False, + ) -> None: + super().__init__(quality_metrics, complexity_metrics, is_multi_objective) + self.validator = validator + self.adapter = adapter + + def __call__(self, graph: Graph, **metrics_kwargs: Any) -> Fitness: + if self.validator(self.adapter.restore(graph)): + res = super().__call__(graph, **metrics_kwargs) + return res + else: + if self.is_multi_objective: + return MultiObjFitness(values=[1.0e42] * len(self.quality_metrics), weights=1.0) + else: + return SingleObjFitness(1.0e42) diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 942c9f4c0..37974f447 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -112,14 +112,14 @@ def polygon_level_crossover( ] pairs_dists = sorted(pairs_dists, key=lambda p_d: p_d[1]) if len(pairs_dists) == 0: - return s1 + return (s1,) poly_1 = pairs_dists[0][0][0] poly_2 = pairs_dists[0][0][1] if intersected: # adaptive angle # split_angle = (np.random.rand() * 2 - 1) * (70) elif pairs_dists[0][1] > domain.dist_between_polygons: - return s1 + return (s1,) c1, c2 = geom.get_centroid(poly_1), geom.get_centroid(poly_2) vector1 = geom.rotate_point(point=c2, origin=c1, angle=split_angle) @@ -128,7 +128,7 @@ def polygon_level_crossover( parts_1 = geom.split_polygon(poly_1, [c1, vector1], scale_factor) parts_2 = geom.split_polygon(poly_2, [c2, vector2], scale_factor) if len(parts_1) < 2 or len(parts_2) < 2: - return s1 + return (s1,) new_parts = (*parts_1[0], *parts_2[1]) if c1.y > c2.y else (*parts_1[1], *parts_2[0]) new_poly = geom.get_convex(Polygon(points=[Point(*p) for p in list(set(new_parts))])) @@ -138,7 +138,7 @@ def polygon_level_crossover( idx_ = where(s1.polygons, lambda p: p == poly_1)[0] s1[idx_] = new_poly - return s1 + return (s1,) class CrossoverTypes(Enum): diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 95da2029c..1c294a7b5 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -5,12 +5,15 @@ import numpy as np from loguru import logger -from shapely.geometry import LineString, MultiPoint -from shapely.geometry import Point as SPoint +from shapely.geometry import LineString from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.domain import Domain -from gefest.core.geometry.utils import get_random_poly, get_selfintersection_safe_point +from gefest.core.geometry.utils import ( + get_convex_safe_area, + get_random_poly, + get_selfintersection_safe_point, +) def mutate_structure( @@ -111,133 +114,36 @@ def resize_poly_mutation( return new_structure -@logger.catch -def _get_convex_safe_area( +def _get_new_point_between( poly: Polygon, domain: Domain, - point_left_idx: int, - point_right_idx: int, - **kwargs, -) -> Polygon: + left_point_idx: int, + right_point_idx: int, +) -> Point: geom = domain.geometry - if poly[0] == poly[-1]: - poly = poly[:-1] - l = len(poly) - if l == 2: - p = poly[(point_left_idx + 1) % l] - circle = SPoint(p.x, p.y).buffer(geom.get_length(poly)) - base_area = [Point(p[0], p[1]) for p in list(circle.exterior.coords)] - return base_area - - left_cut = [ - poly[(point_left_idx - 1) % l], - poly[(point_left_idx) % l], - ] - right_cut = [ - poly[(point_right_idx + 1) % l], - poly[(point_right_idx) % l], - ] - cut_angles = ( - geom.get_angle( - left_cut, - [ - left_cut[0], - right_cut[0], - ], - ), - geom.get_angle( - right_cut, - [ - right_cut[0], - left_cut[0], - ], - ), - ) - - p1, p2 = left_cut[1], right_cut[1] - pad_vector_points = [p1, geom.rotate_point(p2, p1, 90)] - pad_vector = ( - pad_vector_points[1].x - pad_vector_points[0].x, - pad_vector_points[1].y - pad_vector_points[0].y, - ) - # pad_vector == len(vector[left_point, right_point]) - slice_line = ( - Point(left_cut[1].x + pad_vector[0], left_cut[1].y + pad_vector[1]), - Point(right_cut[1].x + pad_vector[0], right_cut[1].y + pad_vector[1]), - ) - scale_factor = max(domain.max_x, domain.max_y) * 100 - - if sum(cut_angles) < 170: - - intersection_point = geom.intersection_line_line( - left_cut, - right_cut, - scale_factor, - scale_factor, + if not geom.is_convex or len(poly) == 3: + point, _ = get_selfintersection_safe_point( + poly, + domain, + left_point_idx, + right_point_idx, ) - if intersection_point is not None: - mid_points = [intersection_point] - else: - mid_points = [ - geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), - geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), - ] - try: - slice_points = geom.intersection_poly_line( - Polygon( - [ - left_cut[1], - *mid_points, - right_cut[1], - ], - ), - slice_line, - scale_factor, - ) - except Exception as e: - raise Exception(e) - # from shapely.plotting import plot_line - # from matplotlib import pyplot as plt - # plot_line(geom._poly_to_shapely_line(poly)) - # plot_line( - # LineString( - # [(p.x,p.y) for p in - # [ - # left_cut[1], - # *mid_points, - # right_cut[1], - # ]], - # ), color='r', - # ) - # plot_line(LineString([(p.x,p.y) for p in slice_line]), color='g') - # plt.show() - - if slice_points: - if isinstance(slice_points, SPoint): - mid_points = [Point(slice_points.x, slice_points.y)] - elif isinstance(slice_points, MultiPoint): - mid_points = [Point(p.x, p.y) for p in slice_points.geoms] - else: - mid_points = [Point(p.x, p.y) for p in slice_points.coords] - base_area = [ - left_cut[1], - *mid_points, - right_cut[1], - ] - base_area = [ - Point(p[0], p[1]) - for p in geom._poly_to_shapely_poly(Polygon(base_area)).convex_hull.exterior.coords - ] else: - base_area = [ - left_cut[1], - geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), - geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), - right_cut[1], - ] + shaply_poly = geom._poly_to_shapely_poly(poly) + movment_area = get_convex_safe_area( + poly, + domain, + left_point_idx, + right_point_idx, + ) + movment_area = geom._poly_to_shapely_poly(movment_area) + if not shaply_poly.is_simple: + logger.warning('Got non convex polygon. Convex hull will be used.', backtrace=True) + + point = geom.get_random_point_in_poly(movment_area) - return Polygon(base_area) if base_area else base_area + return point @logger.catch @@ -249,68 +155,44 @@ def pos_change_point_mutation( ) -> Structure: geom = domain.geometry poly = copy.deepcopy(new_structure[idx_]) - if poly[0] == poly[-1]: poly = poly[:-1] - mutate_point_idx = int(np.random.randint(1, len(poly))) # fix 1 to 0 - - if geom.is_convex: - poly = geom.get_convex(poly=poly) - + mutate_point_idx = int(np.random.randint(0, len(poly))) + new_point = None if not geom.is_convex or (len(poly) in (2, 3)): - point, _ = get_selfintersection_safe_point( + new_point, _ = get_selfintersection_safe_point( poly, domain, mutate_point_idx - 1, mutate_point_idx + 1, ) - if point: - poly[mutate_point_idx] = point elif geom.is_convex: - - base_area = _get_convex_safe_area( + poly = geom.get_convex(poly=poly)[:-1] + movment_area = get_convex_safe_area( poly, domain, mutate_point_idx - 1, mutate_point_idx + 1, + new_structure, + idx_, ) - if base_area: - movment_area = geom._poly_to_shapely_poly(base_area).intersection( - geom._poly_to_shapely_poly(domain.allowed_area), - ) - prohibs = geom.get_prohibited_geom( - domain.prohibited_area, - buffer_size=domain.dist_between_polygons, - ) - for fig in prohibs.geoms: - movment_area = movment_area.difference( - fig.buffer( - domain.min_dist_from_boundary, - ), - ) - - for idx in [idx for idx in range(len(new_structure)) if idx != idx_]: - movment_area = movment_area.difference( - geom._poly_to_shapely_poly(new_structure[idx]).buffer( - domain.dist_between_polygons, - ), - ) - if movment_area.is_empty: - logger.warning('Empty movment area.') + if movment_area: + if not movment_area: return new_structure + else: + new_point = geom.get_random_point_in_poly(movment_area) + + else: + logger.warning('Strange case') - point = geom.get_random_point_in_poly(movment_area) # pick in geom collection : todo - if point: - poly[mutate_point_idx % len(poly)] = point + if new_point: + poly[mutate_point_idx % len(poly)] = new_point if geom.is_closed: poly.points.append(poly[0]) new_structure[idx_] = poly - if new_structure is None: - logger.error('None structure.') - return new_structure @@ -321,89 +203,50 @@ def add_point_mutation( idx_: int = None, **kwargs, ): - - if new_structure is None: - logger.error('None struct') - geom = domain.geometry poly = copy.deepcopy(new_structure[idx_]) - if geom.is_closed: - if poly[0] == poly[-1]: - poly = poly[:-1] - mutate_point_idx = int(np.random.randint(0, len(poly))) + if poly[0] == poly[-1]: + poly = poly[:-1] + mutate_point_idx = int(np.random.randint(0, len(poly))) + new_point = None if not geom.is_convex or len(poly) == 3: - point, _ = get_selfintersection_safe_point( + new_point, _ = get_selfintersection_safe_point( poly, domain, mutate_point_idx, mutate_point_idx + 1, ) - if point: - poly.points.insert(mutate_point_idx, point) - else: - logger.warning('Failed to add point without self intersection.') elif geom.is_convex: - poly = geom.get_convex(poly=poly) - base_area = _get_convex_safe_area( + poly = geom.get_convex(poly=poly)[:-1] + movment_area = get_convex_safe_area( poly, domain, mutate_point_idx, mutate_point_idx + 1, + new_structure, + idx_, ) - if base_area: - base_area = geom._poly_to_shapely_poly(Polygon(base_area)) - if not base_area.is_simple: - logger.error('Base area not simple.') - - movment_area = base_area.intersection( - geom._poly_to_shapely_poly(domain.allowed_area), - ) - - prohibs = geom.get_prohibited_geom( - domain.prohibited_area, - buffer_size=domain.dist_between_polygons, - ) - for fig in prohibs.geoms: - movment_area = movment_area.difference( - fig.buffer( - domain.min_dist_from_boundary, - ), - ) - - for idx in [idx for idx in range(len(new_structure)) if idx != idx_]: - movment_area = movment_area.difference( - geom._poly_to_shapely_poly(new_structure[idx]).buffer( - domain.dist_between_polygons, - ), - ) - if movment_area.is_empty: - logger.warning('Empty movment area') + if movment_area: + if not movment_area: return new_structure else: - pass - # logger.warning('Not implemented select adjacent to poly movment_area part.') - # logger.warning('Not implemented number of parts check. If there is 1 part - ok.') - point = geom.get_random_point_in_poly(movment_area) - if point: - if mutate_point_idx + 1 < len(poly): - poly.points.insert( - mutate_point_idx + 1, - point, - ) - else: - poly.points.insert( - mutate_point_idx - 1, - point, - ) + new_point = geom.get_random_point_in_poly(movment_area) + + else: + logger.warning('Strange case') + if new_point: + poly.points.insert( + (mutate_point_idx + 1) % len(poly), + new_point, + ) if geom.is_closed: poly.points.append(poly[0]) + new_structure[idx_] = poly - if new_structure is None: - logger.error('None struct') return new_structure diff --git a/gefest/core/algs/__init__.py b/gefest/core/opt/postproc/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from gefest/core/algs/__init__.py rename to gefest/core/opt/postproc/__init__.py diff --git a/gefest/core/algs/postproc/resolve_errors.py b/gefest/core/opt/postproc/resolve_errors.py similarity index 92% rename from gefest/core/algs/postproc/resolve_errors.py rename to gefest/core/opt/postproc/resolve_errors.py index 61ccbd699..b7e02e96d 100644 --- a/gefest/core/algs/postproc/resolve_errors.py +++ b/gefest/core/opt/postproc/resolve_errors.py @@ -3,10 +3,10 @@ from loguru import logger -from gefest.core.algs.postproc.rules_base import PolygonRule, StructureRule -from gefest.core.algs.postproc.validation import validate from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain +from gefest.core.opt.postproc.rules_base import PolygonRule, StructureRule +from gefest.core.opt.postproc.validation import validate class Postrocessor: @@ -29,8 +29,12 @@ def apply_postprocess( def _apply_polygon_rule(structure, rule, attempts, domain) -> Union[Structure, None]: for idx_, _ in enumerate(structure.polygons): for _ in range(attempts): + if structure[idx_].points is None: + logger.warning('bruh') if not rule.validate(structure, idx_, domain): structure[idx_] = rule.correct(structure, idx_, domain) + if structure[idx_].points is None: + logger.warning('bruh') else: break else: diff --git a/gefest/core/algs/postproc/rules.py b/gefest/core/opt/postproc/rules.py similarity index 88% rename from gefest/core/algs/postproc/rules.py rename to gefest/core/opt/postproc/rules.py index d4d7830bc..5e7290278 100644 --- a/gefest/core/algs/postproc/rules.py +++ b/gefest/core/opt/postproc/rules.py @@ -4,14 +4,15 @@ import numpy as np from loguru import logger +from shapely.geometry import GeometryCollection, LineString, MultiPoint from shapely.geometry import Point as ShapelyPoint from shapely.geometry import Polygon as ShapelyPolygon from shapely.ops import unary_union from shapely.validation import explain_validity -from gefest.core.algs.postproc.rules_base import PolygonRule, StructureRule from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.domain import Domain +from gefest.core.opt.postproc.rules_base import PolygonRule, StructureRule class PolygonsNotTooClose(StructureRule): @@ -81,9 +82,9 @@ def validate( Returns: ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` """ - poly = structure[idx_poly_with_error] + poly = copy.deepcopy(structure[idx_poly_with_error]) if poly[0] != poly[-1] and domain.geometry.is_closed: - poly[:-1] = poly[0] + poly.points = poly.points.append(poly[0]) lenght = domain.dist_between_points check, norms = [[None] * (len(poly) - 1)] * 2 for idx, pair in enumerate( @@ -123,19 +124,13 @@ def validate( geom = domain.geometry if domain.geometry.is_closed: - # logger.warning("There is no errors if no construction. NotImplemented validation and fix.") pass else: - from matplotlib import pyplot as plt - from shapely.plotting import plot_line, plot_polygon prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) prohib = unary_union(prohib) poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) - # for g in prohib.geoms: - # plot_polygon(g) - # plot_line(poly, color='r') - # plt.show(block=True) + if poly.intersects(prohib): return False @@ -151,33 +146,20 @@ def correct( if domain.geometry.is_closed: raise NotImplementedError() else: - from matplotlib import pyplot as plt - from shapely.plotting import plot_line, plot_polygon prohib = geom.get_prohibited_geom(domain.prohibited_area, domain.dist_between_polygons) - # for g in prohib.geoms: - # plot_polygon(g) - # plt.show(block=True) prohib = unary_union(prohib) - # for g in prohib.geoms: - # plot_polygon(g) poly = geom._poly_to_shapely_line(structure[idx_poly_with_error]) - # plot_line(poly) - # plt.show(block=True) if poly.intersects(prohib): res = poly.difference(prohib.buffer(0.001)) - from shapely.geometry import GeometryCollection, LineString, MultiPoint if isinstance(res, (MultiPoint, LineString)): res = GeometryCollection(res) parts = [g for g in res.geoms] parts = [g for g in parts if not g.intersects(prohib)] poly = np.random.choice(parts) - # plot_line(poly) - # poly = [Point(p[0], p[1]) for p in poly.coords] - # plt.show(block=True) return Polygon([Point(p[0], p[1]) for p in poly.coords]) else: return Polygon([Point(p[0], p[1]) for p in poly.coords]) @@ -204,7 +186,7 @@ def correct( domain: Domain, ) -> Polygon: poly = structure[idx_poly_with_error] - if domain.geometry.is_closed and domain.geometry.is_convex and (poly[0] != poly[-1]): + if domain.geometry.is_closed and (poly[0] != poly[-1]): poly.points.append(poly.points[0]) elif not domain.geometry.is_closed and (poly[0] == poly[-1]): poly.points = poly.points[:-1] @@ -287,6 +269,8 @@ def correct( ) -> Polygon: poly = structure[idx_poly_with_error] poly = domain.geometry.get_convex(poly) + if not domain.geometry.is_closed: + poly.points = poly.points[:-1] return poly diff --git a/gefest/core/algs/postproc/rules_base.py b/gefest/core/opt/postproc/rules_base.py similarity index 100% rename from gefest/core/algs/postproc/rules_base.py rename to gefest/core/opt/postproc/rules_base.py diff --git a/gefest/core/algs/postproc/validation.py b/gefest/core/opt/postproc/validation.py similarity index 87% rename from gefest/core/algs/postproc/validation.py rename to gefest/core/opt/postproc/validation.py index e534ddd95..f1f6e9509 100644 --- a/gefest/core/algs/postproc/validation.py +++ b/gefest/core/opt/postproc/validation.py @@ -2,9 +2,9 @@ from loguru import logger -from gefest.core.algs.postproc.rules_base import PolygonRule, StructureRule -from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain +from gefest.core.opt.postproc.rules_base import PolygonRule, StructureRule def validate( diff --git a/gefest/core/opt/result.py b/gefest/core/opt/result.py deleted file mode 100644 index c7098b0b2..000000000 --- a/gefest/core/opt/result.py +++ /dev/null @@ -1,29 +0,0 @@ -import json -import os -from dataclasses import dataclass -from typing import List, Optional, Union - -from gefest.core.serialization.serializer import Serializer -from gefest.core.structure.structure import Structure - - -@dataclass -class Result: - name: str - best_structure: Union[Structure, List[Structure]] - fitness: float - metadata: dict - - def save(self, json_file_path: os.PathLike = None) -> Optional[str]: - if json_file_path is None: - return json.dumps(self, indent=4, cls=Serializer) - with open(json_file_path, mode="w") as json_fp: - json.dump(self, json_fp, indent=4, cls=Serializer) - - @staticmethod - def load(json_str_or_file_path: Union[str, os.PathLike] = None) -> "Result": - try: - return json.loads(json_str_or_file_path, cls=Serializer) - except json.JSONDecodeError as exc: - with open(json_str_or_file_path, mode="r") as json_fp: - return json.load(json_fp, cls=Serializer) diff --git a/gefest/core/opt/tuning/__init__.py b/gefest/core/opt/tuning/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/gefest/core/serialization/any.py b/gefest/core/serialization/any.py index 073fcd34c..c7b1f5c44 100644 --- a/gefest/core/serialization/any.py +++ b/gefest/core/serialization/any.py @@ -7,16 +7,17 @@ def any_to_json(obj: INSTANCE_OR_CALLABLE) -> Dict[str, Any]: return { - **{k: v for k, v in vars(obj).items() if k != "log"}, + **{k: v for k, v in vars(obj).items() if k != 'log'}, **Serializer.dump_path_to_obj(obj), } def any_from_json( - cls: Type[INSTANCE_OR_CALLABLE], json_obj: Dict[str, Any], + cls: Type[INSTANCE_OR_CALLABLE], + json_obj: Dict[str, Any], ) -> INSTANCE_OR_CALLABLE: cls_parameters = signature(cls.__init__).parameters - if "kwargs" not in cls_parameters: + if 'kwargs' not in cls_parameters: init_data = {k: v for k, v in json_obj.items() if k in cls_parameters} obj = cls(**init_data) vars(obj).update({k: json_obj[k] for k in json_obj.keys() ^ init_data.keys()}) diff --git a/gefest/core/serialization/serializer.py b/gefest/core/serialization/serializer.py index 304805cc9..1b77c3d05 100644 --- a/gefest/core/serialization/serializer.py +++ b/gefest/core/serialization/serializer.py @@ -3,19 +3,19 @@ from json import JSONDecoder, JSONEncoder from typing import Any, Callable, Dict, Type, TypeVar, Union -MODULE_X_NAME_DELIMITER = "/" -INSTANCE_OR_CALLABLE = TypeVar("INSTANCE_OR_CALLABLE", object, Callable) -CLASS_PATH_KEY = "_class_path" +MODULE_X_NAME_DELIMITER = '/' +INSTANCE_OR_CALLABLE = TypeVar('INSTANCE_OR_CALLABLE', object, Callable) +CLASS_PATH_KEY = '_class_path' class Serializer(JSONEncoder, JSONDecoder): - _to_json = "to_json" - _from_json = "from_json" + _to_json = 'to_json' + _from_json = 'from_json' CODERS_BY_TYPE = {} def __init__(self, *args, **kwargs): - for base_class, coder_name in [(JSONEncoder, "default"), (JSONDecoder, "object_hook")]: + for base_class, coder_name in [(JSONEncoder, 'default'), (JSONDecoder, 'object_hook')]: base_kwargs = { k: kwargs[k] for k in kwargs.keys() & signature(base_class.__init__).parameters } @@ -76,11 +76,11 @@ def dump_path_to_obj(obj: INSTANCE_OR_CALLABLE) -> Dict[str, str]: else: obj_name = obj.__class__.__qualname__ - if getattr(obj, "__module__", None) is not None: + if getattr(obj, '__module__', None) is not None: obj_module = obj.__module__ else: obj_module = obj.__class__.__module__ - return {CLASS_PATH_KEY: f"{obj_module}{MODULE_X_NAME_DELIMITER}{obj_name}"} + return {CLASS_PATH_KEY: f'{obj_module}{MODULE_X_NAME_DELIMITER}{obj_name}'} def default(self, obj: INSTANCE_OR_CALLABLE) -> Dict[str, Any]: """Tries to encode objects that are not simply json-encodable to JSON-object @@ -112,7 +112,7 @@ def _get_class(class_path: str) -> Type[INSTANCE_OR_CALLABLE]: module_name, class_name = class_path.split(MODULE_X_NAME_DELIMITER) obj_cls = import_module(module_name) - for sub in class_name.split("."): + for sub in class_name.split('.'): obj_cls = getattr(obj_cls, sub) return obj_cls @@ -133,9 +133,10 @@ def object_hook(self, json_obj: Dict[str, Any]) -> Union[INSTANCE_OR_CALLABLE, d base_type = Serializer._get_base_type(obj_cls) if isclass(obj_cls) and base_type is not None: return Serializer._get_coder_by_type(base_type, Serializer._from_json)( - obj_cls, json_obj, + obj_cls, + json_obj, ) elif isfunction(obj_cls) or ismethod(obj_cls): return obj_cls - raise TypeError(f"Parsed obj_cls={obj_cls} is not serializable, but should be") + raise TypeError(f'Parsed obj_cls={obj_cls} is not serializable, but should be') return json_obj diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py index 0f835b863..a3527568a 100644 --- a/gefest/core/structure/prohibited.py +++ b/gefest/core/structure/prohibited.py @@ -4,7 +4,6 @@ from gefest.core.geometry import Point as G_Point from gefest.core.geometry import Polygon, PolyID, Structure -from gefest.core.geometry.domain import Domain def create_prohibited( diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index 82bccc306..bebda87f0 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -1,5 +1,4 @@ import json -from functools import reduce from pathlib import Path from typing import Any, Callable diff --git a/gefest/core/utils/parallel_manager.py b/gefest/core/utils/parallel_manager.py index daa5a2320..dbbef80de 100644 --- a/gefest/core/utils/parallel_manager.py +++ b/gefest/core/utils/parallel_manager.py @@ -1,4 +1,3 @@ -from ctypes import Union from typing import Any, Callable from joblib import Parallel, cpu_count, delayed @@ -53,5 +52,10 @@ def exec_parallel( else: result = parallel(delayed(func)() for _ in arguments) if flatten: + if not all(isinstance(res, (tuple, list)) for res in result): + raise ValueError( + f"""Got an unexpected outputs from {func}. + Got: {[type(res) for res in result]}. Expected tuples or lists.""", + ) result = [item for separate_output in result for item in separate_output] return result diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index 6ca0fa397..f3f8cbd91 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -78,8 +78,6 @@ def plot_poly(self, poly, linestyle, **kwargs): y_ = [pt.y for pt in poly] plt.plot(x_, y_, linestyle=linestyle, **kwargs) - # for i, p in enumerate(zip(x_, y_)): - # plt.plot(p[0], p[1], marker='${}$'.format(i), color='black') class GIFMaker(StructVizualizer): @@ -96,10 +94,11 @@ def create_frame(self, structure, infos): def make_gif(self, gifname, duration=1500, loop=-1): - # imgs = [Image.fromarray(img) for img in self.frames] - # imgs[0].save(f"./{gifname}.fig", save_all=True, append_images=imgs[1:], duration=duration, loop=0) - # clip = mp.VideoFileClip("mygif.gif") - clip = mp.ImageSequenceClip(self.frames, durations=[duration] * len(self.frames), fps=1000/duration) + clip = mp.ImageSequenceClip( + self.frames, + durations=[duration] * len(self.frames), + fps=1000 / duration, + ) clip.write_videofile(f'./{gifname}.mp4') self.frames = [] self.counter = 0 diff --git a/gefest/tools/estimators/DL/bw_surrogate/bw_cnn.py b/gefest/tools/estimators/DL/bw_surrogate/bw_cnn.py index 4f35853a6..53bc14730 100644 --- a/gefest/tools/estimators/DL/bw_surrogate/bw_cnn.py +++ b/gefest/tools/estimators/DL/bw_surrogate/bw_cnn.py @@ -4,12 +4,11 @@ import matplotlib import matplotlib.pyplot as plt - import tensorflow as tf from tensorflow import keras -from gefest.core.structure.structure import Structure from gefest.core.structure.domain import Domain +from gefest.core.structure.structure import Structure matplotlib.use('agg') @@ -18,6 +17,7 @@ class BWCNN: """ ::TODO:: Make abstract version to create own realizations for specific tasks """ + """ Surrogate model for breakwaters task """ @@ -64,24 +64,16 @@ def _save_as_fig(self, struct: Structure, ax=plt): if poly.id == 'tmp': line_x = [point.x for point in poly.points] line_y = [point.y for point in poly.points] - ax.plot(line_x, - line_y, - color='white', - linewidth=3) + ax.plot(line_x, line_y, color='white', linewidth=3) elif poly.id == 'prohibited_area': line_x = [point.x for point in poly.points] line_y = [point.y for point in poly.points] - ax.fill(line_x, - line_y, - color='white') + ax.fill(line_x, line_y, color='white') elif poly.id == 'prohibited_poly' or 'prohibited_targets': line_x = [point.x for point in poly.points] line_y = [point.y for point in poly.points] - ax.plot(line_x, - line_y, - color='white', - linewidth=1) + ax.plot(line_x, line_y, color='white', linewidth=1) ax.axis('off') ax.axis(xmin=0, xmax=self.domain.max_x) diff --git a/gefest/tools/estimators/DL/heat/heat_cnn.py b/gefest/tools/estimators/DL/heat/heat_cnn.py index 91ae144f8..a5db965f0 100644 --- a/gefest/tools/estimators/DL/heat/heat_cnn.py +++ b/gefest/tools/estimators/DL/heat/heat_cnn.py @@ -1,11 +1,11 @@ -import torchvision.models as models -import torch -import matplotlib.pyplot as plt import os -from torchvision import transforms -import PIL +import matplotlib.pyplot as plt +import PIL +import torch +import torchvision.models as models from torch import nn +from torchvision import transforms class HeatCNN: @@ -21,8 +21,7 @@ def __init__(self, path): super(HeatCNN, self).__init__() self.model = EffModel() - self.model.load_state_dict( - torch.load(path, map_location=torch.device('cpu'))) + self.model.load_state_dict(torch.load(path, map_location=torch.device('cpu'))) self.img_size = 128 @@ -51,7 +50,6 @@ def estimate(self, obj): class EffModel(nn.Module): - def __init__(self): super(EffModel, self).__init__() @@ -87,6 +85,6 @@ def forward(self, x): return decoded - def loss(self, pred, true): - out = self.mse(torch.flatten(pred.float()), torch.flatten(true.float())) + def loss(self, pred_labels, true_labels): + out = self.mse(torch.flatten(pred_labels.float()), torch.flatten(true_labels.float())) return out diff --git a/gefest/tools/estimators/simulators/comsol/comsol_interface.py b/gefest/tools/estimators/simulators/comsol/comsol_interface.py index ef6cb3dec..5575180ce 100644 --- a/gefest/tools/estimators/simulators/comsol/comsol_interface.py +++ b/gefest/tools/estimators/simulators/comsol/comsol_interface.py @@ -45,7 +45,7 @@ def estimate(self, structure: Structure): if model is None: poly_box = [] print('Start COMSOL') - for i, pol in enumerate(structure.polygons): + for _, pol in enumerate(structure.polygons): poly_repr = [] poly_repr.append(' '.join([str(pt.x) for pt in pol.points])) poly_repr.append(' '.join([str(pt.y) for pt in pol.points])) @@ -63,8 +63,6 @@ def estimate(self, structure: Structure): self.client.clear() return 0.0 - idx = self._save_simulation_result(structure, model) - try: outs = [ model.evaluate('vlct_1'), diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index 782ed5d63..3f08c09f4 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -129,7 +129,7 @@ def __init__(self, domain, duration=200, obstacle_map=None): # outflow velocities from each cell self._velocities = np.zeros((self.size_y, self.size_x, 4)) - def updateV(self): + def update_velocity(self): """Update the velocity field based on Komatsuzaki's transition rules.""" V = self._velocities P = self.pressure @@ -142,15 +142,15 @@ def updateV(self): V[i, j, 2] = V[i, j, 2] + P[i, j] - P[i + 1, j] if i < self.size_y - 1 else P[i, j] V[i, j, 3] = V[i, j, 3] + P[i, j] - P[i, j - 1] if j > 0 else P[i, j] - def updateP(self): + def update_perssure(self): """Update the pressure field based on Komatsuzaki's transition rules.""" self.pressure -= CA2 * DAMPING * np.sum(self._velocities, axis=2) def step(self): """Perform a simulation step, upadting the wind an pressure fields.""" self.pressure[self.s_y, self.s_x] = INITIAL_P * np.sin(self.omega * self.iteration) - self.updateV() - self.updateP() + self.update_velocity() + self.update_perssure() self.iteration += 1 def spl(self, integration_interval=60): diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 72f7ed7fe..f90f37325 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -1,12 +1,11 @@ import copy import subprocess -import matplotlib.pyplot as plt + import numpy as np -from loguru import logger -from gefest.core.geometry import Point, Polygon, Structure + from gefest.core.geometry import Structure from gefest.tools import Estimator -from pathlib import Path + class Swan(Estimator): def __init__( @@ -15,7 +14,7 @@ def __init__( targets, grid, domain, - input_file_path='INPUT', + input_file_path='bw_example_cfg', hs_file_path='r/hs47dd8b1c0d4447478fec6f956c7e32d9.d', ): self.path_to_model = path @@ -24,7 +23,7 @@ def __init__( self.targets = targets self.grid = grid self.domain = domain - # self._grid_configuration() + self._grid_configuration() def _grid_configuration(self): @@ -57,69 +56,45 @@ def _grid_configuration(self): file_to_write.writelines(new_content) file_to_write.close() - def estimate(self, struct: Structure): + def estimate(self, struct: 'Structure'): polygons = struct.polygons - # - file_toread = self.path_to_input+'_2' - with open(file_toread, 'r') as file_to_read: - content_read = file_to_read.read() - file_to_read.close() - - - # all_ = [Point(x=74.8, y=67.9174616), Point(x=74.8, y=67.9410473), Point(x=74.8192817, y=67.9410473), - # Point(x=74.8192817, y=67.9174616), Point(x=74.8, y=67.9174616)] - # border = [[74.7, 74.84, 74.84, 74.7], [67.88, 67.88, 67.96, 67.96]] - # plt.plot(border[0], border[1]) - # all_cd = [i.coords for i in all_] - # for poly in polygons: - # poly_cd = [i.coords for i in poly] - # - # plt.plot([x[0]/500 for x in poly_cd], [y[1]/500 for y in poly_cd]) - # plt.plot([x[0] for x in all_cd], [y[1] for y in all_cd]) - # - # plt.show() - - num_of_polygons = len(polygons) - for j, poly in enumerate(polygons): - for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' - num_of_points = len(2 * poly.points) - points = np.array([p.coords[:2] for p in poly.points]) - individ = points.reshape(-1) - for i, gen in enumerate(individ): + file_to_read = open(self.path_to_input, 'r') + content_read = file_to_read.read() + + for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + num_of_polygons = len(polygons) + for j, poly in enumerate(polygons): + num_of_points = len(2 * poly.points) + points = np.array([p.coords[:2] for p in poly.points]) + individ = points.reshape(-1) + for i, gen in enumerate(individ): + if (i + 1) % 2 == 0: + if (i + 1) == num_of_points: + for_input += '{:.6f}'.format(self.domain.max_y - gen) + else: + for_input += '{:.6f}'.format(self.domain.max_y - gen) + ', ' + else: for_input += '{:.6f}'.format(gen) + ', ' - #for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' - #if j == (num_of_polygons - 1): - for_input += '\n$optline' - # else: - # for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' - - content_to_replace = for_input - content_write = content_read.replace( - content_read[content_read.find('OBSTACLE') -1: content_read.rfind('$optline') + 10], - content_to_replace, - ) - #print(content_write) - - input_created = Path(self.path_to_input) - input_created.touch(exist_ok=True) - with open(self.path_to_input, 'w') as file_to_write: - file_to_write.write(content_write) - - logger.info('Swan estimation started...') - subprocess.run( - 'swan.exe', - shell=True, - cwd=self.path_to_model, - stdout=subprocess.DEVNULL, + + if j == (num_of_polygons - 1): + for_input += '\n$optline' + else: + for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' + + content_to_replace = for_input + content_write = content_read.replace( + content_read[content_read.find('\n\n\n') + 3 : content_read.rfind('\n$optline') + 9], + content_to_replace, ) - logger.info('Swan estimation finished.') + file_to_read.close() + + file_to_write = open(self.path_to_input, 'w') + file_to_write.writelines(content_write) + file_to_write.close() + + subprocess.run('swan.exe', shell=True, cwd=self.path_to_model) z = np.loadtxt(self.path_to_hs) - res = [] - for i in range(1538 // 32): - hs_target = np.sum( - [z[i * 32 : (i + 1) * 32][target[0], target[1]] for target in self.targets], - ) - res.append(hs_target) - hs_target = sum(res) / len(res) + hs_target = np.sum([z[target[0], target[1]] for target in self.targets]) + return z, hs_target diff --git a/gefest/tools/optimizers/GA/GA.py b/gefest/tools/optimizers/GA/GA.py index e5279aea2..57d6643a6 100644 --- a/gefest/tools/optimizers/GA/GA.py +++ b/gefest/tools/optimizers/GA/GA.py @@ -1,28 +1,40 @@ -from gefest.tools.optimizers.GA.base_GA import BaseGA - - -class GA(BaseGA): - """The class uses genetic algorithm during optimization process. - Args: - BaseGA (Callable): parent abstract class with main optimization methods - """ - - def step(self, population, performance, verbose=True, **kwargs): - self.init_populations(population) - self.init_fitness(performance) - - selected = self.tournament_selection() - self._pop = sorted(selected, key=lambda x: x.fitness) - - un_pop = set() - self._pop = [ - un_pop.add(str(ind.genotype)) or ind - for ind in self._pop - if str(ind.genotype) not in un_pop - ] - - self._pop.extend(self.reproduce(self._pop)) - - population = [ind.genotype for ind in self._pop] - - return population +from typing import Callable + +from tqdm import tqdm + +from gefest.core.geometry import Structure +from gefest.core.opt import strategies +from gefest.core.opt.objective.objective_eval import ObjectivesEvaluator +from gefest.core.opt.operators import selections +from gefest.tools.optimizers.optimizer import Optimizer + + +class BaseGA(Optimizer): + def __init__( + self, + opt_params, + **kwargs, + ): + super().__init__(opt_params.log_dispatcher) + self.opt_params = opt_params + self.crossover = getattr(strategies, opt_params.crossover_strategy)(opt_params=opt_params) + self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) + self.sampler: Callable = opt_params.sampler + self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator(opt_params.objectives) + self.selector: Callable = getattr(selections, opt_params.selector.name) + self.pop_size = opt_params.pop_size + self.n_steps = opt_params.n_steps + self.domain = self.opt_params.domain + self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) + self._pop = self.objectives_evaluator(self._pop) + self.log_dispatcher.log_pop(self._pop, '00000_init') + + def optimize(self) -> list[Structure]: + for step in tqdm(range(self.n_steps)): + self._pop = self.crossover(self._pop) + self._pop = self.mutation(self._pop) + self._pop.extend(self.sampler(self.opt_params.extra)) + self._pop = self.objectives_evaluator(self._pop) + self._pop = self.selector(self._pop, self.opt_params.pop_size) + self.log_dispatcher.log_pop(self._pop, str(step + 1)) + return self._pop diff --git a/gefest/tools/optimizers/GA/base_GA.py b/gefest/tools/optimizers/GA/base_GA.py deleted file mode 100644 index 0c7d07b11..000000000 --- a/gefest/tools/optimizers/GA/base_GA.py +++ /dev/null @@ -1,40 +0,0 @@ -from random import randint -from typing import Callable - -from tqdm import tqdm - -from gefest.core.geometry import Structure -from gefest.core.opt import strategies -from gefest.core.opt.objective.objective_eval import ObjectivesEvaluator -from gefest.tools.optimizers.optimizer import Optimizer - - -class BaseGA(Optimizer): - def __init__( - self, - opt_params, - **kwargs, - ): - super().__init__(opt_params.log_dispatcher) - self.opt_params = opt_params - self.crossover = getattr(strategies, opt_params.crossover_strategy)(opt_params=opt_params) - self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) - self.sampler: Callable = opt_params.sampler - self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator(opt_params.objectives) - self.selector: Callable = opt_params.selector - self.pop_size = opt_params.pop_size - self.n_steps = opt_params.n_steps - self.domain = self.opt_params.domain - self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) - self._pop = self.objectives_evaluator(self._pop) - self.log_dispatcher.log_pop(self._pop, '00000_init') - - def optimize(self) -> list[Structure]: - for step in tqdm(range(self.n_steps)): - self._pop = self.crossover(self._pop) - self._pop = self.mutation(self._pop) - self._pop.extend(self.sampler(self.opt_params.extra)) - self._pop = self.objectives_evaluator(self._pop) - self._pop = self.selector(self._pop, self.opt_params.pop_size) - self.log_dispatcher.log_pop(self._pop, str(step + 1)) - return self._pop diff --git a/gefest/tools/optimizers/SPEA2/SPEA2.py b/gefest/tools/optimizers/SPEA2/SPEA2.py index e9f0dcbea..b55605e8f 100644 --- a/gefest/tools/optimizers/SPEA2/SPEA2.py +++ b/gefest/tools/optimizers/SPEA2/SPEA2.py @@ -3,7 +3,7 @@ import numpy as np from tqdm import tqdm -from gefest.tools.optimizers.GA.base_GA import BaseGA +from gefest.tools.optimizers.GA.GA import BaseGA class SPEA2(BaseGA): diff --git a/gefest/tools/optimizers/golem_optimizer/age.py b/gefest/tools/optimizers/golem_optimizer/age.py index 671769c4f..3dc7c19c4 100644 --- a/gefest/tools/optimizers/golem_optimizer/age.py +++ b/gefest/tools/optimizers/golem_optimizer/age.py @@ -1,10 +1,9 @@ import numpy as np - from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer from gefest.core.opt.individual import Individual from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.GA.base_GA import BaseGA +from gefest.tools.optimizers.GA.GA import BaseGA class AGE(EvoGraphOptimizer, BaseGA): @@ -12,22 +11,16 @@ class AGE(EvoGraphOptimizer, BaseGA): GOLEM based optimizer of GEFEST structures """ - def __init__(self, - adapter, - mutation_rate, - crossover_rate, - pop_size, - task_setup, - params): + def __init__(self, adapter, mutation_rate, crossover_rate, pop_size, task_setup, params): EvoGraphOptimizer.__init__(self, **params) - self.params = BaseGA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - BaseGA.__init__(self, self.params, - default_operators(), - task_setup) + self.params = BaseGA.Params( + pop_size=pop_size, + crossover_rate=crossover_rate, + mutation_rate=mutation_rate, + mutation_value_rate=[], + ) + BaseGA.__init__(self, self.params, default_operators(), task_setup) self._pop = None self._fronts = None @@ -50,7 +43,7 @@ def step(self, population, performance, n_step): graph_pop = population # 1. Initializations - #self.__init_operators() + # self.__init_operators() self.init_populations(graph_pop) self.init_performance(performance) @@ -61,7 +54,7 @@ def step(self, population, performance, n_step): return population def _evolve_population(self, **kwargs): - """ Method realizing full evolution cycle """ + """Method realizing full evolution cycle""" self._pop = self.calculate_fitness_and_select() self._pop.extend(self.reproduce(self._pop)) @@ -78,11 +71,14 @@ def calculate_fitness_and_select(self): crowd_dist[0] = [99999] * len(front1) _, p, normalization = self.survival_score(front1, ideal_point) - for i in range(0, len(self._fronts)): # skip first front since it is normalized by survival_score + for i in range( + 0, + len(self._fronts), + ): # skip first front since it is normalized by survival_score front = np.array([ind.objectives for ind in self._fronts[i]]) m, _ = front.shape front = front / normalization - dist = 1. / self.minkowski_distances(front, ideal_point[None, :], p=p).squeeze() + dist = 1.0 / self.minkowski_distances(front, ideal_point[None, :], p=p).squeeze() if isinstance(dist, np.float64): dist = [dist] else: @@ -94,12 +90,9 @@ def calculate_fitness_and_select(self): ranks = [r for rank in ranks for r in rank] rank_dist_idx = [(i, r, d) for i, (r, d) in enumerate(zip(ranks, dists))] - sorted_list = sorted( - rank_dist_idx, - key=lambda t: (t[1], t[2]) - ) + sorted_list = sorted(rank_dist_idx, key=lambda t: (t[1], t[2])) - selected = [item[0] for item in sorted_list][:self.num_of_individuals] + selected = [item[0] for item in sorted_list][: self.num_of_individuals] out_pop = [ind for pop in self._fronts for ind in pop] self._pop = [ind for i, ind in enumerate(out_pop) if i in selected] @@ -112,7 +105,7 @@ def dominates(self, ind1, ind2): for first, second in zip(ind1.objectives, ind2.objectives): and_condition = and_condition and first <= second or_condition = or_condition or first < second - return (and_condition and or_condition) + return and_condition and or_condition def fast_nondominated_sort(self, population): fronts = [[]] @@ -172,8 +165,15 @@ def survival_score(self, front, ideal_point): remaining = np.arange(m) remaining = list(remaining[~selected]) for i in range(m - np.sum(selected)): - mg = np.meshgrid(np.arange(selected.shape[0])[selected], remaining, copy=False, sparse=False) - D_mg = distances[tuple(mg)] # avoid Numpy's future deprecation of array special indexing + mg = np.meshgrid( + np.arange(selected.shape[0])[selected], + remaining, + copy=False, + sparse=False, + ) + D_mg = distances[ + tuple(mg) + ] # avoid Numpy's future deprecation of array special indexing if D_mg.shape[1] > 1: # equivalent to mink(distances(remaining, selected),neighbors,2); in Matlab @@ -276,7 +276,7 @@ def normalize(front, extreme): if any(np.isnan(hyperplane)) or any(np.isinf(hyperplane)) or any(hyperplane < 0): normalization = np.max(front, axis=0) else: - normalization = 1. / hyperplane + normalization = 1.0 / hyperplane if any(np.isnan(normalization)) or any(np.isinf(normalization)): normalization = np.max(front, axis=0) except np.linalg.LinAlgError: diff --git a/gefest/tools/optimizers/golem_optimizer/moead.py b/gefest/tools/optimizers/golem_optimizer/moead.py index 827de88d0..74ddbd038 100644 --- a/gefest/tools/optimizers/golem_optimizer/moead.py +++ b/gefest/tools/optimizers/golem_optimizer/moead.py @@ -1,36 +1,38 @@ from functools import partial + import numpy as np +from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer from scipy.spatial.distance import cdist -from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer from gefest.core.opt.individual import Individual - from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.GA.base_GA import BaseGA +from gefest.tools.optimizers.GA.GA import BaseGA -class MOEAD(EvoGraphOptimizer, BaseGA): +class MOEAD(EvoGraphOptimizer): """ GOLEM based optimizer of GEFEST structures """ - def __init__(self, - adapter, - mutation_rate, - crossover_rate, - pop_size, - task_setup, - n_neighbors, - params): + def __init__( + self, + adapter, + mutation_rate, + crossover_rate, + pop_size, + task_setup, + n_neighbors, + params, + ): EvoGraphOptimizer.__init__(self, **params) - self.params = BaseGA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - BaseGA.__init__(self, self.params, - default_operators(), - task_setup) + self.params = BaseGA.Params( + pop_size=pop_size, + crossover_rate=crossover_rate, + mutation_rate=mutation_rate, + mutation_value_rate=[], + ) + BaseGA.__init__(self, self.params, default_operators(), task_setup) self.num_of_individuals = pop_size self.n_neighbors = n_neighbors @@ -43,7 +45,10 @@ def _setup(self): n_obj = len(self._pop[0].objectives) self.initUniformWeight(n_obj) self.ideal = np.min([ind.objectives for ind in self._pop], axis=0) - self.neighbors = np.argsort(cdist(self.ref_dirs, self.ref_dirs), axis=1, kind='quicksort')[:, :self.n_neighbors] + self.neighbors = np.argsort(cdist(self.ref_dirs, self.ref_dirs), axis=1, kind='quicksort')[ + :, + : self.n_neighbors, + ] _ = 1 def step(self, population, performance, n_step): @@ -69,7 +74,7 @@ def step(self, population, performance, n_step): return population def _evolve_population(self, **kwargs): - """ Method realizing full evolution cycle """ + """Method realizing full evolution cycle""" self.calculate_fitness() self._pop = self.tournament_selection() self._pop.extend(self.reproduce(self._pop)) @@ -78,7 +83,7 @@ def _evolve_population(self, **kwargs): def calculate_fitness(self): for j, ind in enumerate(self._pop): - maxFun = -1.0e+30 + max_fun = -1.0e30 for n in range(len(ind.objectives)): diff = abs(ind.objectives[n] - self.ideal[n]) if self.ref_dirs[j][n] == 0: @@ -86,10 +91,10 @@ def calculate_fitness(self): else: feval = diff * self.ref_dirs[j][n] - if feval > maxFun: - maxFun = feval + if feval > max_fun: + max_fun = feval - ind.fitness = maxFun + len(self.neighbors[j]) + ind.fitness = max_fun + len(self.neighbors[j]) def initUniformWeight(self, n_obj): """ @@ -108,7 +113,7 @@ def initUniformWeight(self, n_obj): self.ref_dirs[n][1] = 1 - a elif n_obj == 3: """ - Ported from Java code written by Wudong Liu + Ported from Java code written by Wudong Liu (Source: http://dces.essex.ac.uk/staff/qzhang/moead/moead-java-source.zip) """ m = len(self._pop) diff --git a/gefest/tools/optimizers/golem_optimizer/nsga2.py b/gefest/tools/optimizers/golem_optimizer/nsga2.py index ac9d0ae27..c83fc5af6 100644 --- a/gefest/tools/optimizers/golem_optimizer/nsga2.py +++ b/gefest/tools/optimizers/golem_optimizer/nsga2.py @@ -1,10 +1,10 @@ +import random +from random import randint + from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer -from gefest.core.opt.individual import Individual from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.GA.base_GA import BaseGA -from random import randint -import random +from gefest.tools.optimizers.GA.GA import BaseGA class NSGA2(EvoGraphOptimizer, BaseGA): @@ -12,22 +12,16 @@ class NSGA2(EvoGraphOptimizer, BaseGA): GOLEM based optimizer of GEFEST structures """ - def __init__(self, - adapter, - mutation_rate, - crossover_rate, - pop_size, - task_setup, - params): + def __init__(self, adapter, mutation_rate, crossover_rate, pop_size, task_setup, params): EvoGraphOptimizer.__init__(self, **params) - self.params = BaseGA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - BaseGA.__init__(self, self.params, - default_operators(), - task_setup) + self.params = BaseGA.Params( + pop_size=pop_size, + crossover_rate=crossover_rate, + mutation_rate=mutation_rate, + mutation_value_rate=[], + ) + BaseGA.__init__(self, self.params, default_operators(), task_setup) self._pop = None self._fronts = None @@ -61,7 +55,7 @@ def step(self, population, performance, n_step): return population def _evolve_population(self, **kwargs): - """ Method realizing full evolution cycle """ + """Method realizing full evolution cycle""" self.calculate_fitness() self._pop = self.tournament_selection(self._pop) self._pop.extend(self.reproduce(self._pop)) @@ -80,7 +74,7 @@ def dominates(self, ind1, ind2): for first, second in zip(ind1.objectives, ind2.objectives): and_condition = and_condition and first <= second or_condition = or_condition or first < second - return (and_condition and or_condition) + return and_condition and or_condition def fast_nondominated_sort(self, population): fronts = [[]] @@ -121,9 +115,12 @@ def calculate_crowding_distance(self, front): front[solutions_num - 1].crowding_distance = 10 ** 9 m_values = [individual.objectives[m] for individual in front] scale = max(m_values) - min(m_values) - if scale == 0: scale = 1 + if scale == 0: + scale = 1 for i in range(1, solutions_num - 1): - front[i].crowding_distance += (front[i + 1].objectives[m] - front[i - 1].objectives[m]) / scale + front[i].crowding_distance += ( + front[i + 1].objectives[m] - front[i - 1].objectives[m] + ) / scale def tournament_selection(self, population): chosen = [] @@ -144,15 +141,17 @@ def __tournament(self, population): best = None for participant in participants: if best is None or ( - self.crowding_operator(participant, best) == 1 and self.__choose_with_prob(0.9)): + self.crowding_operator(participant, best) == 1 and self.__choose_with_prob(0.9) + ): best = participant return best def crowding_operator(self, individual, other_individual): - if (individual.rank < other_individual.rank) or \ - ((individual.rank == other_individual.rank) and ( - individual.crowding_distance > other_individual.crowding_distance)): + if (individual.rank < other_individual.rank) or ( + (individual.rank == other_individual.rank) + and (individual.crowding_distance > other_individual.crowding_distance) + ): return 1 else: return -1 diff --git a/gefest/tools/samplers/DL/heat/heat_sampler.py b/gefest/tools/samplers/DL/heat/heat_sampler.py index 51ba9fbb7..80cb88675 100644 --- a/gefest/tools/samplers/DL/heat/heat_sampler.py +++ b/gefest/tools/samplers/DL/heat/heat_sampler.py @@ -1,7 +1,13 @@ -import torch import os -from gefest.tools.samplers.DL.microfluid.backbones import Encoder, Decoder, Discriminator + +import torch + from gefest.tools.samplers.DL.microfluid.aae import AAE +from gefest.tools.samplers.DL.microfluid.backbones import ( + Decoder, + Discriminator, + Encoder, +) os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' @@ -33,15 +39,19 @@ def _configurate_sampler(self): n_layers = 2 self.hidden_dim = 32 - aae = AAE(Encoder=Encoder, - Decoder=Decoder, - Discriminator=Discriminator, - hidden_dim=self.hidden_dim, - conv_dims=conv_dims, - n_layers=n_layers, - device=self.device) + aae = AAE( + Encoder=Encoder, + Decoder=Decoder, + Discriminator=Discriminator, + hidden_dim=self.hidden_dim, + conv_dims=conv_dims, + n_layers=n_layers, + device=self.device, + ) - aae.load_state_dict(torch.load(self.path, map_location=self.device)) # Load prepared sampler + aae.load_state_dict( + torch.load(self.path, map_location=self.device), + ) # Load prepared sampler aae.eval() self.sampler = aae @@ -57,6 +67,8 @@ def sample(self, n_samples: int, domain): """ with torch.no_grad(): noise = torch.normal(mean=0, std=1, size=(n_samples, self.hidden_dim)).to(self.device) - objects = self.sampler.decoder.sample(noise).to('cpu').tolist() # Numpy: {n_samples, 1, 128, 128} + objects = ( + self.sampler.decoder.sample(noise).to('cpu').tolist() + ) # Numpy: {n_samples, 1, 128, 128} return objects diff --git a/gefest/tools/samplers/DL/microfluid/aae.py b/gefest/tools/samplers/DL/microfluid/aae.py index 27d89a0d5..67e0e97c3 100644 --- a/gefest/tools/samplers/DL/microfluid/aae.py +++ b/gefest/tools/samplers/DL/microfluid/aae.py @@ -1,6 +1,6 @@ -import torch import time +import torch from torch import nn @@ -10,7 +10,7 @@ class AAE(nn.Module): # Adversarial Auto Encoder model ################################ - def __init__(self, Encoder, Decoder, Discriminator, hidden_dim, conv_dims, n_layers, device): + def __init__(self, encoder, decoder, discriminator, hidden_dim, conv_dims, n_layers, device): """ Creating AAE model :param Encoder: Encoder model @@ -26,9 +26,9 @@ def __init__(self, Encoder, Decoder, Discriminator, hidden_dim, conv_dims, n_lay self.device = device self.hidden_dim = hidden_dim - self.encoder = Encoder(hidden_dim, conv_dims, device).to(device) - self.decoder = Decoder(hidden_dim, conv_dims, device).to(device) - self.discriminator = Discriminator(hidden_dim, n_layers, device).to(device) + self.encoder = encoder(hidden_dim, conv_dims, device).to(device) + self.decoder = decoder(hidden_dim, conv_dims, device).to(device) + self.discriminator = discriminator(hidden_dim, n_layers, device).to(device) self.mse = nn.MSELoss() self.bce = nn.BCELoss() @@ -139,21 +139,21 @@ def fit(self, trainloader, testloader, epochs): params = { 'ae': list(self.decoder.parameters()) + list(self.encoder.parameters()), 'encoder': list(self.encoder.parameters()), - 'discriminator': list(self.discriminator.parameters()) + 'discriminator': list(self.discriminator.parameters()), } ae_optim = torch.optim.Adam(params=params['ae'], lr=1e-3) en_optim = torch.optim.Adam(params=params['encoder'], lr=1e-4) dis_optim = torch.optim.Adam(params=params['discriminator'], lr=1e-4) - print('opt=%s(lr=%f), epochs=%d, device=%s,\n' - 'en loss \u2193, gen loss \u2193, dis loss \u2191' % \ - (type(en_optim).__name__, - en_optim.param_groups[0]['lr'], epochs, self.device)) + print( + 'opt=%s(lr=%f), epochs=%d, device=%s,\n' + 'en loss \u2193, gen loss \u2193, dis loss \u2191' + % (type(en_optim).__name__, en_optim.param_groups[0]['lr'], epochs, self.device), + ) history = {'loss': [], 'val_loss': []} - train_len = len(trainloader.dataset) test_len = len(testloader.dataset) for epoch in range(epochs): @@ -187,7 +187,11 @@ def fit(self, trainloader, testloader, epochs): d_z_sample = self.discriminator(z_sample) # Standard normal distribution was taken as prior - z_prior = torch.normal(mean=0, std=1, size=(batch_samples.size(dim=0), self.hidden_dim)).to(self.device) + z_prior = torch.normal( + mean=0, + std=1, + size=(batch_samples.size(dim=0), self.hidden_dim), + ).to(self.device) d_z_prior = self.discriminator(z_prior) discrim_reg = self.discr_reg(d_z_sample, d_z_prior) @@ -211,12 +215,19 @@ def fit(self, trainloader, testloader, epochs): end_time = time.time() work_time = end_time - start_time - print('Epoch/batch %3d/%3d \n' - 'recon_loss %5.5f, discr_reg %5.5f, encoder_reg %5.5f \n' - 'batch time %5.2f sec' % \ - (epoch + 1, i, - recon_loss.item(), discrim_reg.item(), encoder_reg.item(), - work_time)) + print( + 'Epoch/batch %3d/%3d \n' + 'recon_loss %5.5f, discr_reg %5.5f, encoder_reg %5.5f \n' + 'batch time %5.2f sec' + % ( + epoch + 1, + i, + recon_loss.item(), + discrim_reg.item(), + encoder_reg.item(), + work_time, + ), + ) ####################### # VALIDATION PART @@ -226,7 +237,7 @@ def fit(self, trainloader, testloader, epochs): val_dis_loss = 0.0 with torch.no_grad(): - for i, batch_samples in enumerate(testloader): + for _, batch_samples in enumerate(testloader): batch_samples = batch_samples['image'].to(self.device) recon_loss, discrim_reg, encoder_reg = self.get_losses(batch_samples) @@ -240,10 +251,11 @@ def fit(self, trainloader, testloader, epochs): val_dis_loss = val_dis_loss / test_len if epoch + 1: - print('Epoch %3d/%3d \n' - 'val_en_loss %5.5f, val_gen_loss %5.5f, val_dis_loss %5.5f \n' % \ - (epoch + 1, epochs, - val_recon_loss, val_gen_loss, val_dis_loss)) + print( + 'Epoch %3d/%3d \n' + 'val_en_loss %5.5f, val_gen_loss %5.5f, val_dis_loss %5.5f \n' + % (epoch + 1, epochs, val_recon_loss, val_gen_loss, val_dis_loss), + ) history['val_loss'].append(val_recon_loss + val_gen_loss + val_dis_loss) diff --git a/gefest/tools/samplers/DL/microfluid/backbones.py b/gefest/tools/samplers/DL/microfluid/backbones.py index 50c9f8682..2b76a84a0 100644 --- a/gefest/tools/samplers/DL/microfluid/backbones.py +++ b/gefest/tools/samplers/DL/microfluid/backbones.py @@ -1,5 +1,4 @@ import torch - from torch import nn @@ -26,12 +25,15 @@ def __init__(self, hidden_dim, conv_dims, device): for channels in self.conv_dims: model.append( nn.Sequential( - nn.Conv2d(in_channels=in_channel, - out_channels=channels, - kernel_size=3, - stride=2), + nn.Conv2d( + in_channels=in_channel, + out_channels=channels, + kernel_size=3, + stride=2, + ), nn.BatchNorm2d(channels), - nn.ReLU()) + nn.ReLU(), + ), ) in_channel = channels @@ -40,8 +42,7 @@ def __init__(self, hidden_dim, conv_dims, device): self.model = nn.Sequential(*model) - self.sample = nn.Linear(in_features=self.conv_dims[-1], - out_features=self.hidden_dim) + self.sample = nn.Linear(in_features=self.conv_dims[-1], out_features=self.hidden_dim) def forward(self, x): """ @@ -72,7 +73,9 @@ def __init__(self, hidden_dim, conv_dims, device): self.hidden_dim = hidden_dim conv_dims.reverse() # Reversing dims to create decoder - self.conv_dims = conv_dims # It is possible to decrease number of parameters for prevent overfitting + self.conv_dims = ( + conv_dims # It is possible to decrease number of parameters for prevent overfitting + ) self.input_layer = nn.Linear(self.hidden_dim, self.conv_dims[0] * 4) @@ -85,35 +88,33 @@ def __init__(self, hidden_dim, conv_dims, device): for i in range(len(self.conv_dims) - 1): model.append( nn.Sequential( - nn.ConvTranspose2d(in_channels=self.conv_dims[i], - out_channels=self.conv_dims[i + 1], - kernel_size=3, - stride=2, - padding=1, - output_padding=1 - ), + nn.ConvTranspose2d( + in_channels=self.conv_dims[i], + out_channels=self.conv_dims[i + 1], + kernel_size=3, + stride=2, + padding=1, + output_padding=1, + ), nn.BatchNorm2d(self.conv_dims[i + 1]), - nn.ReLU() - ) + nn.ReLU(), + ), ) self.model = nn.Sequential(*model) self.final_layer = nn.Sequential( - nn.ConvTranspose2d(in_channels=self.conv_dims[-1], - out_channels=self.conv_dims[-1], - kernel_size=3, - stride=2, - padding=1, - output_padding=1 - ), + nn.ConvTranspose2d( + in_channels=self.conv_dims[-1], + out_channels=self.conv_dims[-1], + kernel_size=3, + stride=2, + padding=1, + output_padding=1, + ), nn.BatchNorm2d(self.conv_dims[i + 1]), nn.ReLU(), - nn.Conv2d(in_channels=self.conv_dims[-1], - out_channels=1, - kernel_size=3, - padding=1 - ), - nn.Sigmoid() + nn.Conv2d(in_channels=self.conv_dims[-1], out_channels=1, kernel_size=3, padding=1), + nn.Sigmoid(), ) def forward(self, z): @@ -122,8 +123,8 @@ def forward(self, z): :param z: (Tensor) [B x hidden_dim] :return: (Tensor) [B x C x W x H] """ - input = self.input_layer(z).view(-1, self.conv_dims[0], 2, 2) - out_decoder = self.model(input) + input_ = self.input_layer(z).view(-1, self.conv_dims[0], 2, 2) + out_decoder = self.model(input_) out_final = self.final_layer(out_decoder) return out_final @@ -163,27 +164,26 @@ def __init__(self, hidden_dim, n_layers, device): for _ in range(n_layers): model.append( nn.Sequential( - nn.Linear(in_features=in_dim, - out_features=in_dim * 4), + nn.Linear(in_features=in_dim, out_features=in_dim * 4), nn.Dropout(p=0.2), - nn.ReLU()) + nn.ReLU(), + ), ) in_dim = in_dim * 4 for _ in range(n_layers): model.append( nn.Sequential( - nn.Linear(in_features=in_dim, - out_features=int(in_dim / 4)), + nn.Linear(in_features=in_dim, out_features=int(in_dim / 4)), nn.Dropout(p=0.2), - nn.ReLU()) + nn.ReLU(), + ), ) in_dim = int(in_dim / 4) self.model = nn.Sequential(*model) - self.prob = nn.Linear(in_features=in_dim, - out_features=1) + self.prob = nn.Linear(in_features=in_dim, out_features=1) def forward(self, x): """ diff --git a/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py b/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py index 44d3c6d28..518bb27f9 100644 --- a/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py +++ b/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py @@ -1,13 +1,18 @@ -import torch +import os + import cv2 as cv import numpy as np -import os +import torch -from gefest.tools.samplers.DL.microfluid.backbones import Encoder, Decoder, Discriminator from gefest.core.structure.domain import Domain -from gefest.tools.samplers.DL.microfluid.aae import AAE -from gefest.core.structure.polygon import Polygon, Point +from gefest.core.structure.polygon import Point, Polygon from gefest.core.structure.structure import Structure +from gefest.tools.samplers.DL.microfluid.aae import AAE +from gefest.tools.samplers.DL.microfluid.backbones import ( + Decoder, + Discriminator, + Encoder, +) os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' @@ -42,15 +47,19 @@ def _configurate_sampler(self): n_layers = 2 self.hidden_dim = 32 - aae = AAE(Encoder=Encoder, - Decoder=Decoder, - Discriminator=Discriminator, - hidden_dim=self.hidden_dim, - conv_dims=conv_dims, - n_layers=n_layers, - device=self.device) - - aae.load_state_dict(torch.load(self.path, map_location=self.device)) # Load prepared sampler + aae = AAE( + Encoder=Encoder, + Decoder=Decoder, + Discriminator=Discriminator, + hidden_dim=self.hidden_dim, + conv_dims=conv_dims, + n_layers=n_layers, + device=self.device, + ) + + aae.load_state_dict( + torch.load(self.path, map_location=self.device), + ) # Load prepared sampler aae.eval() self.sampler = aae diff --git a/gefest/tools/samplers/sens_analysis/sens_sampler.py b/gefest/tools/samplers/sens_analysis/sens_sampler.py index 5a2fae5d2..a9cbb8392 100644 --- a/gefest/tools/samplers/sens_analysis/sens_sampler.py +++ b/gefest/tools/samplers/sens_analysis/sens_sampler.py @@ -1,11 +1,11 @@ from copy import deepcopy from multiprocessing import Pool -from gefest.core.algs.postproc.resolve_errors import postprocess from gefest.core.opt.constraints import check_constraints -from gefest.core.utils import project_root -from gefest.core.structure.domain import Domain from gefest.core.opt.operators.sensitivity_methods import get_structure_for_analysis +from gefest.core.opt.postproc.resolve_errors import postprocess +from gefest.core.structure.domain import Domain +from gefest.core.utils import project_root MAX_ITER = 50000 NUM_PROC = 1 @@ -27,7 +27,7 @@ def sample(self, n_samples: int, domain: Domain, initial_state=None): new_items = p.map(self.get_pop_worker, [domain] * n_samples) else: new_items = [] - for i in range(n_samples): + for _ in range(n_samples): new_items.append(self.get_pop_worker(domain)) for structure in new_items: diff --git a/gefest/core/algs/geom/__init__.py b/gefest/tools/tuners/__init__.py old mode 100755 new mode 100644 similarity index 100% rename from gefest/core/algs/geom/__init__.py rename to gefest/tools/tuners/__init__.py diff --git a/gefest/core/algs/sensitivity/sa_core.py b/gefest/tools/tuners/sa.py similarity index 80% rename from gefest/core/algs/sensitivity/sa_core.py rename to gefest/tools/tuners/sa.py index b136f150e..538b7733f 100644 --- a/gefest/core/algs/sensitivity/sa_core.py +++ b/gefest/tools/tuners/sa.py @@ -1,11 +1,12 @@ import itertools import time from copy import deepcopy + import matplotlib.pyplot as plt -from gefest.core.structure.structure import Structure +from gefest.core.algs.geom.validation import intersection, out_of_bound, too_close from gefest.core.structure.point import Point -from gefest.core.algs.geom.validation import out_of_bound, too_close, intersection +from gefest.core.structure.structure import Structure class SensitivityAnalysisMethods: @@ -28,9 +29,10 @@ def moving_position(self): structure = self.optimized_structure print(structure) for poly_num, poly in enumerate(structure.polygons): - poly.id = "poly_" + str(poly_num) + poly.id = 'poly_' + str(poly_num) init_fitness = round( - self.cost([structure])[0], 3 + self.cost([structure])[0], + 3, ) # only high of wave in multicreterial loss fitness_history = [] @@ -38,14 +40,14 @@ def moving_position(self): polygon_history = [] fitness_history.append(init_fitness) structure_history.append(structure) - polygon_history.append(f"init_moving, fitness={init_fitness}") + polygon_history.append(f'init_moving, fitness={init_fitness}') current_fitness = init_fitness for poly_num, poly in enumerate(structure.polygons): step_fitness = 0 max_attempts = 3 - if poly.id != "fixed": + if poly.id != 'fixed': moving_step = self.input_domain.geometry.get_length(polygon=poly) * 0.2 while step_fitness <= current_fitness and max_attempts > 0: @@ -62,18 +64,20 @@ def moving_position(self): if worse_res: fitness_diff = round( - 100 * ((worse_res - current_fitness) / current_fitness), 1 + 100 * ((worse_res - current_fitness) / current_fitness), + 1, ) polygon_history.append( - f"{str(poly.id)}, step={round(moving_step)},\ - fitness=+{str(fitness_diff)}%" + f'{str(poly.id)}, step={round(moving_step)},\ + fitness=+{str(fitness_diff)}%', ) else: fitness_diff = round( - 100 * ((step_fitness - current_fitness) / current_fitness), 1 + 100 * ((step_fitness - current_fitness) / current_fitness), + 1, ) polygon_history.append( - f"{str(poly.id)}, step={round(moving_step)}, fitness={str(fitness_diff)}%" + f'{str(poly.id)}, step={round(moving_step)}, fitness={str(fitness_diff)}%', ) if step_fitness >= current_fitness: @@ -86,10 +90,14 @@ def moving_position(self): return fitness_history, structure_history, polygon_history def _moving_for_one_step( - self, structure: Structure, poly_number: int, moving_step, init_fitness + self, + structure: Structure, + poly_number: int, + moving_step, + init_fitness, ): moved_init_poly = structure.polygons[poly_number] - directions = ["north", "south", "east", "west", "n-w", "s-w", "n-e", "s-e"] + directions = ['north', 'south', 'east', 'west', 'n-w', 's-w', 'n-e', 's-e'] results = {} worse_results = {} @@ -106,7 +114,7 @@ def _moving_for_one_step( out_of_bound(tmp_structure, self.input_domain), too_close(tmp_structure, self.input_domain), intersection(tmp_structure, self.input_domain), - ] + ], ) if fitness < init_fitness and non_invalid: results[fitness] = tmp_structure @@ -125,14 +133,14 @@ def _moving_for_one_step( def _moving_point(self, direction: str, point: Point, moving_step) -> Point: directions = { - "north": Point(point.x + moving_step, point.y), - "south": Point(point.x - moving_step, point.y), - "east": Point(point.x, point.y + moving_step), - "west": Point(point.x, point.y - moving_step), - "n-w": Point(point.x + moving_step, point.y - moving_step), - "s-w": Point(point.x - moving_step, point.y + moving_step), - "n-e": Point(point.x + moving_step, point.y + moving_step), - "s-e": Point(point.x - moving_step, point.y - moving_step), + 'north': Point(point.x + moving_step, point.y), + 'south': Point(point.x - moving_step, point.y), + 'east': Point(point.x, point.y + moving_step), + 'west': Point(point.x, point.y - moving_step), + 'n-w': Point(point.x + moving_step, point.y - moving_step), + 's-w': Point(point.x - moving_step, point.y + moving_step), + 'n-e': Point(point.x + moving_step, point.y + moving_step), + 's-e': Point(point.x - moving_step, point.y - moving_step), } return directions[direction] @@ -149,7 +157,7 @@ def exploring_combinations(self, structure: Structure, init_fitness): fitness_history.append(init_fitness) structure_history.append(structure) - polygon_history.append(f"init_combinations, fitness={init_fitness}") + polygon_history.append(f'init_combinations, fitness={init_fitness}') end_step_time = time.time() self.sa_time_history.append(end_step_time - self.start_time) @@ -170,13 +178,13 @@ def exploring_combinations(self, structure: Structure, init_fitness): ids = [] for polygon in tmp_structure.polygons: ids.append(polygon.id) - polygon_history.append(f"{str(ids)}, fitness={str(fitness_diff)}%") - best_description.append(f"{str(ids)}, fitness={str(fitness_diff)}%") + polygon_history.append(f'{str(ids)}, fitness={str(fitness_diff)}%') + best_description.append(f'{str(ids)}, fitness={str(fitness_diff)}%') else: ids = [] for polygon in tmp_structure.polygons: ids.append(polygon.id) - polygon_history.append(f"{str(ids)}, fitness=+{str(fitness_diff)}%") + polygon_history.append(f'{str(ids)}, fitness=+{str(fitness_diff)}%') end_step_time = time.time() self.sa_time_history.append(end_step_time - self.start_time) @@ -187,9 +195,7 @@ def exploring_combinations(self, structure: Structure, init_fitness): finish_sample = best_samples[0] else: length = [len(struct.polygons) for struct in best_structures] - best_samples = list( - zip(best_fitness, best_structures, best_description, length) - ) + best_samples = list(zip(best_fitness, best_structures, best_description, length)) best_samples.sort(key=lambda x: x[3]) finish_sample = best_samples[0][:-1] @@ -206,7 +212,7 @@ def removing_points(self, structure: Structure, init_fitness): fitness_history.append(init_fitness) structure_history.append(structure) - polygon_history.append(f"init_removing_points, fitness={init_fitness}") + polygon_history.append(f'init_removing_points, fitness={init_fitness}') end_step_time = time.time() self.sa_time_history.append(end_step_time - self.start_time) @@ -233,7 +239,8 @@ def removing_points(self, structure: Structure, init_fitness): fitness = round(self.cost([tmp_structure])[0], 3) fitness_diff = round( - 100 * ((fitness - current_fitness) / current_fitness), 1 + 100 * ((fitness - current_fitness) / current_fitness), + 1, ) structure_history.append(tmp_structure) @@ -243,14 +250,14 @@ def removing_points(self, structure: Structure, init_fitness): new_polygon = tmp_polygon fitness_history.append(fitness) polygon_history.append( - f"{str(polygon.id)}, del={str(point.coords())},\ - fitness={str(fitness_diff)}%" + f'{str(polygon.id)}, del={str(point.coords())},\ + fitness={str(fitness_diff)}%', ) else: fitness_history.append(current_fitness) polygon_history.append( - f"{str(polygon.id)}, del={str(point.coords())},\ - fitness=+{str(fitness_diff)}%" + f'{str(polygon.id)}, del={str(point.coords())},\ + fitness=+{str(fitness_diff)}%', ) end_step_time = time.time() @@ -268,7 +275,8 @@ def removing_points(self, structure: Structure, init_fitness): fitness = round(self.cost([tmp_structure])[0], 3) fitness_diff = round( - 100 * ((fitness - current_fitness) / current_fitness), 1 + 100 * ((fitness - current_fitness) / current_fitness), + 1, ) structure_history.append(tmp_structure) @@ -278,14 +286,14 @@ def removing_points(self, structure: Structure, init_fitness): new_polygon = tmp_polygon fitness_history.append(fitness) polygon_history.append( - f"{str(polygon.id)}, del={str(point.coords())},\ - fitness={str(fitness_diff)}%" + f'{str(polygon.id)}, del={str(point.coords())},\ + fitness={str(fitness_diff)}%', ) else: fitness_history.append(current_fitness) polygon_history.append( - f"{str(polygon.id)}, del={str(point.coords())},\ - fitness=+{str(fitness_diff)}%" + f'{str(polygon.id)}, del={str(point.coords())},\ + fitness=+{str(fitness_diff)}%', ) end_step_time = time.time() @@ -303,7 +311,7 @@ def rotate_objects(self, structure: Structure, init_fitness: int): fitness_history.append(init_fitness) structure_history.append(structure) - polygon_history.append(f"init_rotates, fitness={init_fitness}") + polygon_history.append(f'init_rotates, fitness={init_fitness}') end_step_time = time.time() self.sa_time_history.append(end_step_time - self.start_time) @@ -315,7 +323,7 @@ def rotate_objects(self, structure: Structure, init_fitness: int): angles = list(range(45, 360, 45)) - if poly.id != "fixed": + if poly.id != 'fixed': for angle in angles: tmp_structure = deepcopy(structure) rotated_poly = deepcopy(poly) @@ -330,7 +338,8 @@ def rotate_objects(self, structure: Structure, init_fitness: int): best_poly_fit = min(tmp_fit_history) idx_best = tmp_fit_history.index(best_poly_fit) fitness_diff = round( - 100 * ((best_poly_fit[0] - curent_fitness) / curent_fitness), 1 + 100 * ((best_poly_fit[0] - curent_fitness) / curent_fitness), + 1, ) if best_poly_fit[0] < curent_fitness: @@ -340,13 +349,13 @@ def rotate_objects(self, structure: Structure, init_fitness: int): fitness_history.append(best_poly_fit[0]) structure_history.append(best_tmp_structure) polygon_history.append( - f"{str(poly.id)}, best_angle={best_poly_fit[1]}, fitnesss={fitness_diff}%" + f'{str(poly.id)}, best_angle={best_poly_fit[1]}, fitnesss={fitness_diff}%', ) else: fitness_history.append(curent_fitness) structure_history.append(tmp_str_history[idx_best]) polygon_history.append( - f"{str(poly.id)}, best_angle={best_poly_fit[1]}, fitnesss=+{fitness_diff}%" + f'{str(poly.id)}, best_angle={best_poly_fit[1]}, fitnesss=+{fitness_diff}%', ) end_step_time = time.time() @@ -358,7 +367,7 @@ def rotate_objects(self, structure: Structure, init_fitness: int): fitness_history.append(best_fitness) structure_history.append(best_structure) - polygon_history.append("best_structure after rotating polygons") + polygon_history.append('best_structure after rotating polygons') end_step_time = time.time() self.sa_time_history.append(end_step_time - self.start_time) @@ -389,19 +398,20 @@ def analysis(self): mov_fitness, mov_structure, mov_poly = self.moving_position() rotated_fitness, rotated_structure, rotated_poly = self.rotate_objects( - mov_structure[-1], mov_fitness[-1] + mov_structure[-1], + mov_fitness[-1], ) del_fitness, del_structure, del_poly = self.exploring_combinations( - rotated_structure[-1], rotated_fitness[-1] + rotated_structure[-1], + rotated_fitness[-1], ) rm_points_fitness, rm_points_structure, rm_points_poly = self.removing_points( - del_structure[-1], del_fitness[-1] + del_structure[-1], + del_fitness[-1], ) fitness_history = mov_fitness + rotated_fitness + del_fitness + rm_points_fitness - structure_history = ( - mov_structure + rotated_structure + del_structure + rm_points_structure - ) + structure_history = mov_structure + rotated_structure + del_structure + rm_points_structure poly_history = mov_poly + rotated_poly + del_poly + rm_points_poly time_history = self.get_time_history @@ -446,32 +456,28 @@ def report_viz(analysis_result): fitness_difference = round(100 * (start_fit - end_fit) / start_fit, 1) fig, axd = plt.subplot_mosaic( - [["upper", "upper"], ["lower left", "lower right"]], + [['upper', 'upper'], ['lower left', 'lower right']], figsize=(15, 8), height_ratios=[1, 3], ) fig.suptitle( - f"Sensitivity-based optimization report, spend={spend_time}sec,\ - fitness improved on {fitness_difference}%" + f'Sensitivity-based optimization report, spend={spend_time}sec,\ + fitness improved on {fitness_difference}%', ) - initial_strucutre.plot(color="r", ax=axd["lower left"], legend=True) - axd["lower left"].set_title( - f"Initial structure, fitness={round(fitness_history[0], 3)}" - ) - optimized_structure.plot(ax=axd["lower right"], legend=True) - axd["lower right"].set_title( - f"Processed structure, fitness={round(fitness_history[-1], 3)}" - ) + initial_strucutre.plot(color='r', ax=axd['lower left'], legend=True) + axd['lower left'].set_title(f'Initial structure, fitness={round(fitness_history[0], 3)}') + optimized_structure.plot(ax=axd['lower right'], legend=True) + axd['lower right'].set_title(f'Processed structure, fitness={round(fitness_history[-1], 3)}') - axd["upper"].plot(fitness_history, c="c") - axd["upper"].scatter(x, y, marker="o", c="c") + axd['upper'].plot(fitness_history, c='c') + axd['upper'].scatter(x, y, marker='o', c='c') for idx, text in enumerate(descriptions): - axd["upper"].annotate(text, (x[idx] + 0.01, y[idx] + 0.01), rotation=45.0) - axd["upper"].set_xlabel("iteration of senitivity analysis") - axd["upper"].set_ylabel("loss - height of waves") + axd['upper'].annotate(text, (x[idx] + 0.01, y[idx] + 0.01), rotation=45.0) + axd['upper'].set_xlabel('iteration of senitivity analysis') + axd['upper'].set_ylabel('loss - height of waves') fig.tight_layout() plt.legend() - fig.savefig("sensitivity_report.png") + fig.savefig('sensitivity_report.png') diff --git a/gefest/core/opt/tuning/tuner.py b/gefest/tools/tuners/tuner.py similarity index 93% rename from gefest/core/opt/tuning/tuner.py rename to gefest/tools/tuners/tuner.py index 315965cc4..e21e0f154 100644 --- a/gefest/core/opt/tuning/tuner.py +++ b/gefest/tools/tuners/tuner.py @@ -4,21 +4,18 @@ from typing import Callable, Union from golem.core.optimisers.graph import OptGraph -from golem.core.optimisers.objective import Objective, ObjectiveEvaluate from golem.core.tuning.iopt_tuner import IOptTuner from golem.core.tuning.optuna_tuner import OptunaTuner from golem.core.tuning.search_space import OperationParametersMapping, SearchSpace from golem.core.tuning.sequential import SequentialTuner from golem.core.tuning.simultaneous import SimultaneousTuner -from gefest.core.algs.postproc.resolve_errors import validate from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -from gefest.core.opt.tuning.utils import ( - GolemObjectiveWithPreValidation, - VarianceGeneratorType, -) +from gefest.core.opt.objective.tuner_objective import GolemObjectiveWithPreValidation +from gefest.core.opt.postproc.resolve_errors import validate +from gefest.tools.tuners.utils import VarianceGeneratorType GolemTunerType = Union[IOptTuner, OptunaTuner, SequentialTuner, SimultaneousTuner] @@ -48,7 +45,6 @@ def __init__( self.validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) self.tuner_type: str = opt_params.tuner_cfg.tuner_type self.eval_n_jobs: int = 1 - # self.objective_evaluate: ObjectiveEvaluate = ObjectiveEvaluate(objective, self.eval_n_jobs) self.adapter: Callable = opt_params.golem_adapter self.objective = GolemObjectiveWithPreValidation( quality_metrics={obj.__class__.__name__: obj for obj in opt_params.objectives}, diff --git a/gefest/core/opt/tuning/utils.py b/gefest/tools/tuners/utils.py similarity index 56% rename from gefest/core/opt/tuning/utils.py rename to gefest/tools/tuners/utils.py index 27e57d779..8a5fc606f 100644 --- a/gefest/core/opt/tuning/utils.py +++ b/gefest/tools/tuners/utils.py @@ -1,42 +1,14 @@ -from typing import Any, Callable, Dict, Optional, Union +from typing import Callable -from golem.core.dag.graph import Graph -from golem.core.optimisers.fitness import Fitness, MultiObjFitness, SingleObjFitness -from golem.core.optimisers.objective.objective import Objective as GolemObjective from hyperopt import hp from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -from gefest.core.opt.adapters.structure import StructureAdapter from gefest.core.opt.objective.objective import Objective VarianceGeneratorType = Callable[[Structure], list[float]] -class GolemObjectiveWithPreValidation(GolemObjective): - def __init__( - self, - quality_metrics: Union[Callable, Dict[Any, Callable]], - validator: Callable, - adapter: StructureAdapter, - complexity_metrics: Optional[Dict[Any, Callable]] = None, - is_multi_objective: bool = False, - ) -> None: - super().__init__(quality_metrics, complexity_metrics, is_multi_objective) - self.validator = validator - self.adapter = adapter - - def __call__(self, graph: Graph, **metrics_kwargs: Any) -> Fitness: - if self.validator(self.adapter.restore(graph)): - res = super().__call__(graph, **metrics_kwargs) - return res - else: - if self.is_multi_objective: - return MultiObjFitness(values=[1.0e42] * len(self.quality_metrics), weights=1.0) - else: - return SingleObjFitness(1.0e42) - - def objective_validation_wrap( struct: Structure, objectives: Objective, @@ -80,7 +52,9 @@ def average_edge_variance( elif distrib is hp.normal: get_args = _get_norm_args else: - raise ValueError('Invalin distribution function, only hp.uniform and hp.normal allowed.') + raise ValueError( + f'Invalin distribution function: {distrib}, only hp.uniform and hp.normal allowed.' + ) geom = domain.geometry variances = [] for poly in structure: diff --git a/gefest_config.py b/gefest_config.py new file mode 100644 index 000000000..b340fdf97 --- /dev/null +++ b/gefest_config.py @@ -0,0 +1,133 @@ +import numpy as np + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.estimator import Estimator + + +# # # Metrics # # # +class Area(Objective): + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def evaluate(self, ind: Structure) -> float: + area = 0 + for poly in ind: + area += self.domain.geometry.get_square(poly) + area = abs(area - (50 * 50)) + norms = [] + if len(ind) == 1: + for p1, p2 in zip(ind[0][:-1], ind[0][1:]): + norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) + norms.append(norm) + else: + norms.append(1) + return area + + +class SideCoef(Objective): + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def evaluate(self, ind: Structure) -> float: + area = 0 + for poly in ind: + area += self.domain.geometry.get_square(poly) + area = abs(area - (50 * 50)) + norms = [] + points_num = 0 + if len(ind) == 1: + for p1, p2 in zip(ind[0][:-1], ind[0][1:]): + norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) + norms.append(norm) + points_num = len(ind[0]) + else: + norms.append(1) + points_num = sum(len(p) for p in ind) + + sides_coef = points_num + min(norms) / max(norms) + + return sides_coef + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ], + name='main', + min_poly_num=2, + max_poly_num=4, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=False, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + +opt_params = OptimizationParams( + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=10, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + n_jobs=0, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + Area(domain_cfg), + SideCoef(domain_cfg), + ], +) diff --git a/refactored.py b/refactored.py index e94fc5e31..838d84c39 100644 --- a/refactored.py +++ b/refactored.py @@ -1,16 +1,15 @@ from gefest.core.configs.utils import load_config -from gefest.core.opt.tuning.tuner import GolemTuner from gefest.core.viz.struct_vizualizer import GIFMaker -from gefest.tools.optimizers.golem_optimizer.standard import StandardOptimizer +from gefest.tools.optimizers.GA.GA import BaseGA +from gefest.tools.tuners.tuner import GolemTuner if __name__ == '__main__': opt_params = load_config( - 'F:\\Git_Repositories\\gef_ref\\GEFEST\\zcfg.yaml', - 'F:\\Git_Repositories\\gef_ref\\GEFEST\\zmetrics.py', + 'F:\\Git_Repositories\\gef_ref\\GEFEST\\gefest_config.py', ) - optimizer = StandardOptimizer(opt_params) + optimizer = BaseGA(opt_params) optimized_pop = optimizer.optimize() tuner = GolemTuner(opt_params) From 59c5314c561024ae7118286b6fbe74a242db4148 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 8 Nov 2023 19:04:04 +0300 Subject: [PATCH 37/66] minor fix --- gefest/core/geometry/datastructs/structure.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index deda0dc62..f580bef0b 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -37,9 +37,6 @@ def __setitem__(self, key, value): def __getitem__(self, key): return self.polygons[key] - # if isinstance(key, slice): - # indices = range(*key.indices(len(self.points))) - # return Polygon([self.points[i] for i in indices]) def __contains__(self, item: Union[Point, Polygon]): if isinstance(item, Polygon): @@ -56,6 +53,3 @@ def remove(self, value): polygons = list(self.polygons) polygons.remove(value) self.polygons = tuple(polygons) - - - From 9d41d61f736396b9297f0e95345672f333e1e45f Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 8 Nov 2023 19:08:49 +0300 Subject: [PATCH 38/66] upt flake8 cfg --- setup.cfg | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/setup.cfg b/setup.cfg index a9033441a..6627a86b7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,19 +1,23 @@ [flake8] -exclude = .git,.github,docs,__pycache__,env,venv,.venv,.ipynb_checkpoints +exclude = + .git,.github,docs,__pycache__,env,venv,.venv,.ipynb_checkpoints, + nsga2.py,moead.py,age.py,analytics.py,sa.py,sens_sampler.py max-line-length = 100 max-complexity = 10 docstring-convention = google -ignore = D100,D400,C812 +ignore = D100,D400,C812,VNE001,W503,E203 per-file-ignores = - gefest/core/geometry/datastructs/point.py:VNE001 - + gefest\tools\optimizers\golem_optimizer\age.py:N803 + __init__.py:F401 + sound_interface.py:N806 + comsol_interface.py:C901 + [tool:brunette] exclude = .git,.github,docs,__pycache__,env,venv,.venv line-length = 100 verbose = true single-quotes = true - [isort] include_trailing_comma = true -profile=black +profile = black From b5679c3121d3ad0a54a9429dfeecdc1294b1f523 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 8 Nov 2023 19:10:50 +0300 Subject: [PATCH 39/66] fix flake8 action --- .github/workflows/unit-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-build.yml b/.github/workflows/unit-build.yml index 37f700ef4..26bb8bfd1 100644 --- a/.github/workflows/unit-build.yml +++ b/.github/workflows/unit-build.yml @@ -29,7 +29,7 @@ jobs: pip install pytest-cov - name: Run flake8 checks run: | - flake8 . --count --statistics + flake8 gefest --count --statistics - name: Test with pytest run: | pytest --cov=GEFEST -s test/ From 25b64c6ed16201e3b991a2dc96057abbad1911eb Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 9 Nov 2023 01:34:57 +0300 Subject: [PATCH 40/66] add docstrings, fix codestyle --- .github/workflows/unit-build.yml | 2 +- gefest/core/configs/optimization_params.py | 3 + gefest/core/configs/tuner_params.py | 6 +- gefest/core/configs/utils.py | 14 +- gefest/core/geometry/datastructs/point.py | 3 + gefest/core/geometry/datastructs/polygon.py | 5 + gefest/core/geometry/datastructs/structure.py | 7 + gefest/core/geometry/domain.py | 35 ++++- gefest/core/geometry/geometry.py | 14 +- gefest/core/geometry/geometry_2d.py | 141 ++++++++++++------ gefest/core/geometry/utils.py | 56 ++++--- .../opt/adapters/configuration_mapping.py | 3 + gefest/core/opt/adapters/factories.py | 1 + gefest/core/opt/adapters/operator.py | 4 + gefest/core/opt/adapters/structure.py | 10 +- gefest/core/opt/objective/objective.py | 8 + gefest/core/opt/objective/objective_eval.py | 6 + gefest/core/opt/objective/tuner_objective.py | 8 + gefest/core/opt/operators/crossovers.py | 25 ++-- gefest/core/opt/operators/mutations.py | 55 +++---- gefest/core/opt/operators/selections.py | 5 +- gefest/core/opt/postproc/resolve_errors.py | 13 +- gefest/core/opt/postproc/rules.py | 61 ++++++-- gefest/core/opt/postproc/rules_base.py | 9 +- gefest/core/opt/postproc/validation.py | 13 +- gefest/core/opt/strategies/crossover.py | 5 +- gefest/core/opt/strategies/mutation.py | 12 +- gefest/core/opt/strategies/strategy.py | 2 +- gefest/core/serialization/serializer.py | 5 +- gefest/core/structure/prohibited.py | 17 ++- gefest/core/utils/functions.py | 8 +- gefest/core/utils/logger.py | 4 + gefest/core/utils/parallel_manager.py | 6 + gefest/core/viz/struct_vizualizer.py | 21 ++- gefest/tools/estimators/estimator.py | 4 + .../simulators/comsol/comsol_interface.py | 30 ++-- .../simulators/sound_wave/sound_interface.py | 29 ++-- .../simulators/swan/swan_interface.py | 14 +- gefest/tools/optimizers/GA/GA.py | 14 ++ gefest/tools/optimizers/SPEA2/SPEA2.py | 71 ++++----- .../optimizers/golem_optimizer/standard.py | 7 + .../optimizers/golem_optimizer/surrogate.py | 15 +- gefest/tools/optimizers/optimizer.py | 10 ++ .../DL/microfluid/microfluid_sampler.py | 18 ++- gefest/tools/samplers/sampler.py | 18 +++ gefest/tools/samplers/standard/standard.py | 15 ++ gefest/tools/tuners/tuner.py | 7 + gefest/tools/tuners/utils.py | 4 + setup.cfg | 5 +- test/test_crossover.py | 81 +++++----- test/test_domain.py | 2 + test/test_geometry2D.py | 56 +++---- test/test_mutation.py | 104 +++++++------ 53 files changed, 723 insertions(+), 368 deletions(-) diff --git a/.github/workflows/unit-build.yml b/.github/workflows/unit-build.yml index 26bb8bfd1..cd9d11652 100644 --- a/.github/workflows/unit-build.yml +++ b/.github/workflows/unit-build.yml @@ -29,7 +29,7 @@ jobs: pip install pytest-cov - name: Run flake8 checks run: | - flake8 gefest --count --statistics + flake8 gefest test --count --statistics - name: Test with pytest run: | pytest --cov=GEFEST -s test/ diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index b3b992aa2..ca6b0a6b0 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -45,6 +45,8 @@ class OptimizationParams(BaseModel): + """GEFEST configuration dataclass.""" + n_steps: int pop_size: int domain: Domain @@ -80,6 +82,7 @@ class OptimizationParams(BaseModel): @model_validator(mode='after') def create_classes_instances(self): + """Selects and initializes specified modules.""" if isinstance(self.postprocess_rules[0], str): self.postprocess_rules = [getattr(Rules, name).value for name in self.postprocess_rules] diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index cd0b53453..f3db98a1f 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -9,7 +9,8 @@ class TunerParams(BaseModel): - """Dataclass for 'GolemTuner' parameters aggreagtion. + """Dataclass for GolemTuner parameters aggreagtion. + Provides easy configuration for tuner with built-in validation and serialization. """ @@ -24,6 +25,7 @@ class TunerParams(BaseModel): @field_validator('tuner_type') @classmethod def tuner_type_validate(cls, value): + """Checks if specified tuner exists.""" if isinstance(value, str): opt_names = ['iopt', 'optuna', 'sequential', 'simulataneous'] if value in opt_names: @@ -36,6 +38,7 @@ def tuner_type_validate(cls, value): @field_validator('hyperopt_dist') @classmethod def hyperopt_fun_validate(cls, value): + """Checks if hyperopt distribution function exists.""" if isinstance(value, str): r_ = inspect.getmembers(hp, inspect.isfunction) fun_names = [i[0] for i in r_] @@ -52,6 +55,7 @@ def hyperopt_fun_validate(cls, value): @field_validator('variacne_generator') @classmethod def variacne_generator_fun_validate(cls, value): + """Checks if specified variance generation function exists.""" fun_names = ['average_edge_variance'] if isinstance(value, str): if value in fun_names: diff --git a/gefest/core/configs/utils.py b/gefest/core/configs/utils.py index 708b374f5..b1a1c4cc3 100644 --- a/gefest/core/configs/utils.py +++ b/gefest/core/configs/utils.py @@ -9,16 +9,6 @@ from gefest.core.opt.objective.objective import Objective -class ParseMetricsError(Exception): - def __init__(self, message=None, *args): - if args: - self.message = message - - def __str__(self): - if self.message: - return f'ParseMetricsError. {self.message}' - - def load_config( cfg_py_path: str, cfg_yaml_path: str = None, @@ -34,7 +24,6 @@ def load_config( Returns: OptimizationParams: GEFEST unified configuretion file. """ - module_ = __import__(Path(cfg_py_path).stem) if cfg_yaml_path: user_metrics = [] @@ -44,7 +33,7 @@ def load_config( user_metrics.append(name) if not user_metrics: - raise ParseMetricsError('No Objective class has been loaded.') + raise ValueError(f'No Objective class has been found in {cfg_py_path}.') config_dict = yaml.safe_load(Path(cfg_yaml_path).read_text()) domain_cfg = Domain.model_validate(config_dict['domain']) @@ -58,4 +47,5 @@ def load_config( opt_params = OptimizationParams.model_validate(config_dict['opt_params']) else: opt_params = module_.opt_params + return opt_params diff --git a/gefest/core/geometry/datastructs/point.py b/gefest/core/geometry/datastructs/point.py index 58afc4b4f..813727b05 100644 --- a/gefest/core/geometry/datastructs/point.py +++ b/gefest/core/geometry/datastructs/point.py @@ -4,9 +4,12 @@ @dataclass class Point: + """2D point dataclass.""" + x: float y: float @computed_field(repr=False) def coords(self) -> list[float]: + """List coordinates representation.""" return [self.x, self.y] diff --git a/gefest/core/geometry/datastructs/polygon.py b/gefest/core/geometry/datastructs/polygon.py index 2b5b09ae2..60052addd 100644 --- a/gefest/core/geometry/datastructs/polygon.py +++ b/gefest/core/geometry/datastructs/polygon.py @@ -9,6 +9,8 @@ class PolyID(Enum): + """Enumeration of special polygons ids.""" + TEMP = 'tmp' CONSTR = 'constraint' FIXED_AREA = 'fixed_area' @@ -20,6 +22,8 @@ class PolyID(Enum): @dataclass class Polygon: + """Polygon dataclass.""" + points: list[Point] = Field(default_factory=list) id_: Optional[Union[UUID, PolyID]] = Field(default_factory=uuid4) @@ -30,6 +34,7 @@ def __getitem__(self, key) -> Point: if isinstance(key, slice): indices = range(*key.indices(len(self.points))) return Polygon([self.points[i] for i in indices]) + return self.points[key] def __setitem__(self, key: int, value: Point): diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index f580bef0b..44a94829d 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -11,6 +11,8 @@ @dataclass class Structure: + """Structure dataclass.""" + polygons: tuple[Polygon, ...] = Field(default_factory=tuple) fitness: list[float] = Field(default_factory=list) extra_characteristics: dict = Field(default_factory=dict) @@ -25,11 +27,13 @@ def __setattr__(self, name, value): lens = list(map(len, value)) if any(x < 2 for x in lens): logger.trace('bruh') + super().__setattr__(name, value) def __setitem__(self, key, value): if not isinstance(value, Polygon): raise ValueError() + polygons = list(self.polygons) if polygons[key] != value: polygons[key] = value @@ -41,15 +45,18 @@ def __getitem__(self, key): def __contains__(self, item: Union[Point, Polygon]): if isinstance(item, Polygon): return item in self.polygons + if isinstance(item, Point): return any(item in poly for poly in self.polygons) def append(self, value): + """Adds polygon to structure.""" polygons = list(self.polygons) polygons.append(value) self.polygons = tuple(polygons) def remove(self, value): + """Removes polygon from structure.""" polygons = list(self.polygons) polygons.remove(value) self.polygons = tuple(polygons) diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py index cea340512..b901c3bde 100644 --- a/gefest/core/geometry/domain.py +++ b/gefest/core/geometry/domain.py @@ -8,6 +8,8 @@ class Domain(BaseModel): + """Domain configuration dataclass.""" + allowed_area: Union[Polygon, list[list[float]]] name: str = 'main' min_poly_num: int = 2 @@ -23,9 +25,11 @@ class Domain(BaseModel): geometry: Optional[Union[Geometry, str]] = '2D' def __contains__(self, point: Point): - """Checking :obj:`Domain` contains :obj:`point` + """Checking :obj:`Domain` contains :obj:`point`. + Args: point: checked point + Returns: ``True`` if given :obj:`Point` locates in the allowed area borders, otherwise returns ``False`` @@ -33,56 +37,71 @@ def __contains__(self, point: Point): return self.geometry.is_contain_point(self.allowed_area, point) @model_validator(mode='after') - def create_classes_instances(self): + def _post_init_validation(self): if self.min_poly_num > self.max_poly_num: raise ValueError('Invalid polygons number interval.') + if self.min_points_num > self.max_points_num: raise ValueError('Invalid points number interval.') + if self.min_poly_num < 1 or self.max_poly_num < 1: raise ValueError('Number of polygons must be positive value.') + min_points_in_poly = 1 + int(self.geometry_is_closed) if self.min_points_num <= min_points_in_poly or self.max_points_num <= min_points_in_poly: raise ValueError('Number of points must be >2/>1 for closed/non closed geometies.') + if self.geometry == '2D': self.geometry = Geometry2D( is_closed=self.geometry_is_closed, is_convex=self.geometry_is_convex, ) + return self @field_validator('min_poly_num') @classmethod def validate_min_poly_num(cls, data: int): + """Validates min number of polygons.""" if data < 1: raise ValueError('Min number of polygons must be positive value.') + return data @field_validator('max_poly_num') @classmethod def validate_max_poly_num(cls, data: int): + """Validates max number of polygons.""" if data < 1: raise ValueError('Max number of polygons must be positive value.') + return data @field_validator('min_points_num') @classmethod def validate_min_points_num(cls, data: int): + """Validates min number of points.""" if data < 1: raise ValueError('Max number of polygons must be positive value.') + return data @field_validator('fixed_points') @classmethod def validate_fixed_points(cls, data: Union[Polygon, list[tuple[float, float]]]): + """Validates max number of points.""" if isinstance(data, Polygon): return data + return Polygon([Point(*coords) for coords in data]) @field_validator('prohibited_area') @classmethod def validate_prohibited_area(cls, data: Optional[Union[Structure, str]]): + """Validates prohibit area format.""" if isinstance(data, Structure): return data + if isinstance(data, str): structs_from_file = parse_structs(data) num_records = len(structs_from_file) @@ -90,47 +109,59 @@ def validate_prohibited_area(cls, data: Optional[Union[Structure, str]]): raise ValueError(f'{num_records} structures found in {data} file, expected 1.') else: return structs_from_file[0] + raise TypeError(f'Invalid argument {data}.') @field_validator('allowed_area') @classmethod def validate_allowed_area(cls, data: Union[Polygon, list[list[float]]]): + """Validates allowed area area format.""" if data is None or len(data) <= 2: raise ValueError('Not enough points for allowed_area.') + return Polygon([Point(*coords) for coords in data]) @computed_field def dist_between_polygons(self) -> float: + """Min distance between polygons instructure.""" return max(self.max_x - self.min_x, self.max_y - self.min_y) / 35 @computed_field def dist_between_points(self) -> float: + """Min dstance between neighbours points in polygon.""" return self.dist_between_polygons * 15 * self.polygon_side @computed_field def min_x(self) -> int: + """Min x domain coord.""" return min(p.x for p in self.allowed_area) @computed_field def max_x(self) -> int: + """Max x domain coord.""" return max(p.x for p in self.allowed_area) @computed_field def min_y(self) -> int: + """Min y domain coord.""" return min(p.y for p in self.allowed_area) @computed_field def max_y(self) -> int: + """Max y domain coord.""" return max(p.y for p in self.allowed_area) @computed_field def len_x(self) -> int: + """Len of x domain side.""" return abs(self.max_x - self.min_x) @computed_field def len_y(self) -> int: + """Len of y domain side.""" return abs(self.max_y - self.min_y) @computed_field def bound_poly(self) -> Polygon: + """Allowed area bound. Deprecated.""" return self.allowed_area diff --git a/gefest/core/geometry/geometry.py b/gefest/core/geometry/geometry.py index 6b1cf805f..a8fd36aef 100644 --- a/gefest/core/geometry/geometry.py +++ b/gefest/core/geometry/geometry.py @@ -7,48 +7,58 @@ class Geometry(BaseModel, ABC): - """ - Abstract geometry class. + """Abstract geometry class. + Сlass contains basic transformations of geometries, geometry properties. Each of the methods is overridden for a particular dimension of the geometry. """ @abstractmethod def resize_poly(self, poly: Polygon, x_scale: float, y_scale: float): + """Resize polygon operation.""" ... @abstractmethod def rotate_poly(self, poly: Polygon, angle: float): + """Rotate polygon operation.""" ... @abstractmethod def get_length(self, polygon: Polygon): + """Perimeter calculation operation.""" ... @abstractmethod def get_square(self, polygon: Polygon): + """Square calculation operation.""" ... @abstractmethod def is_contain_point(self, poly: Polygon, point: Point): + """Checks if point in polygon.""" ... @abstractmethod def get_convex(self, poly: Polygon): + """Returns convex hull.""" ... @abstractmethod def intersects(self, poly_1: Polygon, poly_2: Polygon) -> bool: + """Checks if two polygons intersects.""" ... @abstractmethod def min_distance(self, pt_1: Point, pt_2: Point) -> float: + """Returns min distance between two polygons.""" ... @abstractmethod def nearest_point(self, point: Point, poly: Polygon) -> Point: + """Finds closest point between input point and polygon.""" ... @abstractmethod def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> List[Point]: + """Returns nearest points in the input geometries.""" ... diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index 01a315fae..9308887ad 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -1,3 +1,4 @@ +from typing import Union from uuid import uuid4 import numpy as np @@ -23,7 +24,9 @@ class Geometry2D(Geometry): """Overriding the geometry base class for 2D structures. - The input receives information about the closeness of the polygon + + The input receives information about the closeness of the polygon. + Args: is_closed: ``True`` if the :obj:`Polygon` must have close borders (first Point is equal to the last one), otherwise ``False``. @@ -34,6 +37,7 @@ class Geometry2D(Geometry): is_convex: bool = True def get_length(self, polygon: Polygon): + """Returns polygon perimeter.""" if len(polygon.points) < 1: return 0 @@ -42,19 +46,23 @@ def get_length(self, polygon: Polygon): return geom_polygon.length def shapely_to_gefest(self, geom_in): + """Converts any shapely object to GEFEST polygon.""" if isinstance(geom_in, ShapelyPolygon): return Polygon(self.get_coords(geom_in)) + # add other shapely objects def get_coords(self, poly) -> list[Point]: - """The function for getting points + """The function for getting points. + Args: poly: :obj:`Polygon` for processing + Returns: all :obj:`Point` that :obj:`poly`contains """ - if isinstance(poly, ShapelyPolygon): poly = poly.exterior + points = [ Point(x, y) for x, y in zip( @@ -70,12 +78,14 @@ def get_prohibited_geom( prohibited_area: Structure, buffer_size: float = 0.001, ) -> GeometryCollection: + """Generates Shapely GeometryCollection from pohibited structure.""" geom_collection = [] for poly in prohibited_area.polygons: if poly[0] == poly[-1]: geom_collection.append(self._poly_to_shapely_poly(poly).buffer(buffer_size)) else: geom_collection.append(self._poly_to_shapely_line(poly).buffer(buffer_size)) + return GeometryCollection(geom_collection) def resize_poly( @@ -85,11 +95,14 @@ def resize_poly( y_scale: float, ) -> Polygon: """The function for rescaling polygons along each axis. - Scaling occurs relative to the center of mass of the polygon + + Scaling occurs relative to the center of mass of the polygon. + Args: poly: :obj:`Polygon` for processing x_scale: scale value for **x** axis y_scale: scale value for **y** axis + Returns: scaled :obj:`poly` by ``(x,y)`` axes """ @@ -116,6 +129,7 @@ def get_angle( vector1: tuple[Point, Point], vector2: tuple[Point, Point], ) -> float: + """Finds angle betwen two bectors.""" v1 = np.array([vector1[1].x - vector1[0].x, vector1[1].y - vector1[0].y]) v2 = np.array([vector2[1].x - vector2[0].x, vector2[1].y - vector2[0].y]) v1_u = v1 / np.linalg.norm(v1) @@ -128,6 +142,7 @@ def rotate_point( origin: Point, angle: float, ) -> Polygon: + """Rotates polygon by given angle.""" rotated = affinity.rotate( ShapelyPoint(point.x, point.y), angle, @@ -140,14 +155,15 @@ def rotate_poly( poly: Polygon, angle: float, ) -> Polygon: - """Rotating polygon relative to the center of mass by a given angle + """Rotating polygon relative to the center of mass by a given angle. + Args: - poly: :obj:`Polygon` for processing - angle: value of degree rotation + poly: :obj:`Polygon` for processing. + angle: value of degree rotation. + Returns: - rotated :obj:`poly` + rotated :obj:`poly`. """ - geom_polygon = self._poly_to_shapely_line(poly) rotated_geom_polygon = affinity.rotate( @@ -165,13 +181,14 @@ def rotate_poly( return rotated_poly def get_square(self, polygon: Polygon) -> float: - """Recieving value of the area + """Recieving value of the area. + Args: - polygon: :obj:`Polygon` for processing + polygon: :obj:`Polygon` for processing. + Returns: - value of the :obj:`polygon` area + value of the :obj:`polygon` area. """ - if len(polygon.points) <= 1: return 0 @@ -180,12 +197,14 @@ def get_square(self, polygon: Polygon) -> float: return geom_polygon.area def is_contain_point(self, poly: Polygon, point: Point) -> bool: - """Checking if a point is inside a polygon + """Checking if a point is inside a polygon. + Args: poly: :obj:`Polygon` that explore - point: :obj:`Point` for checking presence inside the :obj:`Polygon` + point: :obj:`Point` for checking presence inside the :obj:`Polygon`. + Returns: - ``True`` if :obj:`point` is into :obj:`poly`, otherwise ``False`` + ``True`` if :obj:`point` is into :obj:`poly`, otherwise ``False``. """ geom_poly_allowed = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in poly]) geom_pt = ShapelyPoint(point.x, point.y) @@ -194,9 +213,11 @@ def is_contain_point(self, poly: Polygon, point: Point) -> bool: def nearest_point(self, point: Point, poly: Polygon) -> Point: """Calculating closest point between input point and polygon. + Args: point: the :obj:`Point` that explore poly: the :obj:`Polygon` that explore + Returns: nearest_correct_position :obj:`Point` from ``point`` among all points in the ``poly`` """ @@ -206,10 +227,12 @@ def nearest_point(self, point: Point, poly: Polygon) -> Point: return Point(nearest_correct_position.x, nearest_correct_position.y) def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> list[Point]: - """Calculating closest point between two polygons + """Calculating closest point between two polygons. + Args: poly_1: the first :obj:`Polygon` that explore poly_2: the second :obj:`Polygon` that explore + Returns: the couple of :obj:`Point` where the first one from :obj:`poly_1` and the second one from :obj:`poly_2` @@ -224,14 +247,17 @@ def nearest_points(self, poly_1: Polygon, poly_2: Polygon) -> list[Point]: return nearest_correct_position def get_convex(self, poly: Polygon) -> Polygon: - """Obtaining a convex polygon to avoid intersections + """Obtaining a convex polygon to avoid intersections. + Args: poly: :obj:`Polygon` for processing + Returns: convex :obj:`Polygon` """ if len(poly.points) < 3: return poly + geom_poly = self._poly_to_shapely_line(poly).convex_hull points = self.get_coords(geom_poly) polygon = Polygon(polygon_id='tmp', points=points) @@ -239,6 +265,7 @@ def get_convex(self, poly: Polygon) -> Polygon: return polygon def intersection_line_line(self, points1, points2, scale1, scale2): + """Returns point of two lines intersection.""" a = scale(LineString([(p.x, p.y) for p in points1]), scale1, scale1) b = scale(LineString([(p.x, p.y) for p in points2]), scale2, scale2) intersection_point = a.intersection(b) @@ -250,14 +277,17 @@ def intersection_line_line(self, points1, points2, scale1, scale2): intersection_point = Point(intersection_point.x, intersection_point.y) else: intersection_point = None + return intersection_point def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_factor): - + """Returns points where line intersects polygon.""" if self.is_closed: figure = self._poly_to_shapely_poly(figure) + else: figure = self._poly_to_shapely_line(figure) + minx, miny, maxx, maxy = figure.bounds line = LineString([(p.x, p.y) for p in points]) line = scale(line, scale_factor) @@ -297,44 +327,40 @@ def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_fac return None def simplify(self, poly: Polygon, tolerance: float) -> Polygon: - from matplotlib import pyplot as plt - from shapely.plotting import plot_polygon - + """Simplifies polyon.""" inp = poly if len(poly) < 3: return poly + if self._poly_to_shapely_line(poly).is_simple: poly = self._poly_to_shapely_poly(inp) compressed = poly.buffer(-tolerance, join_style='mitre') if not compressed.is_empty: poly = compressed.buffer(tolerance * 1.05, join_style='mitre') + simplified = poly.simplify(tolerance) if isinstance(simplified, MultiPolygon): simplified = max(simplified.geoms, key=lambda p: p.area) + if simplified.is_empty: poly = self._poly_to_shapely_poly(inp) - plot_polygon(poly, color='r') - plt.show() compressed = poly.buffer(-tolerance, join_style='mitre') - plot_polygon(compressed, color='r') - plt.show() decompressed = compressed.buffer(tolerance * 1.1, join_style='mitre') - plot_polygon(decompressed, color='g') - plt.show() intersected = decompressed.intersection(poly) - plot_polygon(intersected, color='b') - plt.show() simplified = intersected.simplify(tolerance) if isinstance(simplified, MultiPolygon): simplified = max(simplified.geoms, lambda p: p.area) + raise ValueError('Empty polygon produced 1') + out = Polygon([Point(p[0], p[1]) for p in simplified.exterior.coords]) else: simplified = self._poly_to_shapely_line(poly).convex_hull.simplify(tolerance) if simplified.is_empty: raise ValueError('Empty polygon produced 2') + out = Polygon([Point(p[0], p[1]) for p in simplified.exterior.coords]) # plot_polygon(simplified, color='b') # plt.show() @@ -342,16 +368,21 @@ def simplify(self, poly: Polygon, tolerance: float) -> Polygon: return out def is_simple(self, poly: Polygon) -> bool: + """Checks if poly is simple.""" return self._poly_to_shapely_poly(poly).is_simple def get_random_point_in_shapey_geom(self, fig): + """Returns random point from polygon of arbitrary shape shapely geometry.""" if fig.is_empty: raise ValueError('Unable to pick a point from an empty polygon.') + if isinstance(fig, MultiPolygon): bds = [] for bound in list(fig.geoms): bds.extend(list(bound.exterior.coords)) + minx, miny, maxx, maxy = LineString(bds).bounds + else: minx, miny, maxx, maxy = fig.bounds @@ -363,10 +394,10 @@ def get_random_point_in_shapey_geom(self, fig): return Point(x, y) - # utils - def get_random_point_in_poly(self, poly) -> Point: + def get_random_point_in_poly(self, poly) -> Union[Point, None]: + """Returns random point from polygon of arbitrary shape.""" minx, miny, maxx, maxy = poly.bounds - if any([b != b for b in poly.bounds]): + if any(b != b for b in poly.bounds): raise ValueError('Unable to pick a point from empty an polygon.') # also can be used polar cords generator within circumscribed circle @@ -383,25 +414,31 @@ def get_random_point_in_poly(self, poly) -> Point: return point def get_centroid(self, poly: Polygon) -> Point: - """Getting a point that is the center of mass of the polygon + """Getting a point that is the center of mass of the polygon. + Args: poly: the :obj:`Polygon` that explore + Returns: central :obj:`Point` of :obj:`poly` """ - points = [pt for pt in poly.points] + points = poly.points if len(points) < 3: points.append(points[0]) + geom_poly = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in points]) geom_point = geom_poly.centroid point = Point(geom_point.x, geom_point.y) return point def intersects(self, structure: Structure) -> bool: - """Function to check for any intersection in structure of polygons + """Function to check for any intersection in structure of polygons. + Whole structure appears like shapely MultiLineString for which uses method is simple. + Args: structure: the :obj:`Structure` that explore + Returns: ``True`` if any :obj:`Polygon` in :obj:`structure` intersects with another one, otherwise - ``False`` @@ -412,6 +449,7 @@ def intersects(self, structure: Structure) -> bool: return multi_geom.is_simple def contains(self, poly1: Polygon, poly2: Polygon) -> bool: + """Checks if poly2 contains poly1.""" geom_polygon1 = self._poly_to_shapely_line(poly1) geom_polygon2 = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in poly2]) @@ -419,9 +457,11 @@ def contains(self, poly1: Polygon, poly2: Polygon) -> bool: return is_contain def difference_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): + """Returns area of base_poly difference with diff_polys polygons.""" base_poly = self._poly_to_shapely_poly(base_poly) if isinstance(diff_polys, Polygon): diff_polys = [diff_polys] + diff_polys = [self._poly_to_shapely_poly for poly in diff_polys] for poly in diff_polys: @@ -433,9 +473,11 @@ def difference_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): return Polygon([Point(p[0], p[1]) for p in base_poly.exterior.coords]) def intersection_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): + """Returns area of base_poly intersection with diff_polys polygons.""" base_poly = self._poly_to_shapely_poly(base_poly).convex_hull if isinstance(diff_polys, Polygon): diff_polys = [diff_polys] + diff_polys = [self._poly_to_shapely_poly(poly).convex_hull for poly in diff_polys] for poly in diff_polys: @@ -447,7 +489,8 @@ def intersection_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): return Polygon([Point(p[0], p[1]) for p in base_poly.exterior.coords]) def intersects_poly(self, poly_1: Polygon, poly_2: Polygon) -> bool: - """Intersection between two polygons + """Intersection between two polygons. + Args: poly_1: the first :obj:`Polygon` that explore poly_2: the second :obj:`Polygon` that explore @@ -461,6 +504,7 @@ def intersects_poly(self, poly_1: Polygon, poly_2: Polygon) -> bool: def _poly_to_shapely_line(self, poly: Polygon) -> LineString: """Transform GEFEST Polygon to shapely non cycled LineString. + Args: poly: Polygon Returns: @@ -470,6 +514,7 @@ def _poly_to_shapely_line(self, poly: Polygon) -> LineString: def _poly_to_shapely_poly(self, poly: Polygon) -> ShapelyPolygon: """Transform GEFEST Polygon to shapely Polygon. + Args: poly: Polygon Returns: @@ -479,14 +524,21 @@ def _poly_to_shapely_poly(self, poly: Polygon) -> ShapelyPolygon: def _pt_to_shapely_pt(self, pt: Point) -> ShapelyPoint: """Transform GEFEST Polygon to shapely Polygon. + Args: poly: Point + Returns: ShapelyPoint """ return ShapelyPoint(pt.x, pt.y) - def split_polygon(self, poly, line: tuple[Point, Point], scale_factor=1000): + def split_polygon(self, poly, line: tuple[Point, Point], scale_factor=1000) -> list: + """Splits polygon by line. + + Returns: + list: Produced parts. + """ poly = ShapelyPolygon([(p.x, p.y) for p in poly]) line = LineString( [ @@ -500,32 +552,35 @@ def split_polygon(self, poly, line: tuple[Point, Point], scale_factor=1000): scale_factor, ) parts = get_parts(split(poly, line)).tolist() - parts = list(map(lambda p: list(mapping(p)['coordinates'][0][:-1]), parts)) + parts = [lambda p: list(mapping(p)['coordinates'][0][:-1]) for p in parts] return parts def min_distance(self, obj_1, obj_2) -> float: - """Smallest distance between two objects + """Finds smallest distance between two objects. + Args: obj_1: the first :obj:`obj_1` that explore obj_2: the second :obj:`obj_2` that explore + Returns: value of distance between the nearest points of the explored objects """ - if isinstance(obj_1, Polygon): obj_1 = self._poly_to_shapely_line(obj_1) elif isinstance(obj_1, Point): obj_1 = self._pt_to_shapely_pt(obj_1) + if isinstance(obj_2, Polygon): obj_2 = self._poly_to_shapely_line(obj_2) elif isinstance(obj_2, Point): obj_2 = self._pt_to_shapely_pt(obj_2) + distance = obj_1.distance(obj_2) return distance def centroid_distance(self, point: Point, poly: Polygon) -> Point: - # Distance from point to polygon + """Finds distance from point to polygon.""" geom_point = self._pt_to_shapely_pt(point) geom_poly = self._poly_to_shapely_line(poly) dist = geom_point.distance(geom_poly) @@ -533,8 +588,8 @@ def centroid_distance(self, point: Point, poly: Polygon) -> Point: return dist -# Function to create a circle, needed for one of the synthetic examples def create_circle(struct: Structure) -> Structure: + """Creates circle.""" geom = Geometry2D(is_closed=False) poly = struct.polygons[0] diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index a9f1f99ac..d76a85a44 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -24,14 +24,18 @@ def random_polar(origin: Point, radius_scale: float) -> Point: + """Generates random point in circe. + + The distribution density is shifted to the center. + https://habrastorage.org/r/w1560/webt/sn/xx/ow/snxxowuhnuqnr8dp4sadmyswqu0.png + """ theta = np.random.random() * 2 * np.pi r = np.random.random() * radius_scale return Point((r * np.cos(theta)) + origin.x, (r * np.sin(theta)) + origin.y) def get_random_structure(domain: Domain, **kwargs) -> Structure: - # Creating structure with random number of polygons - + """Generates random structure.""" structure = Structure(polygons=()) num_pols = randint(domain.min_poly_num, domain.max_poly_num) @@ -41,10 +45,12 @@ def get_random_structure(domain: Domain, **kwargs) -> Structure: structure.append(polygon) else: continue + return structure def get_random_poly(parent_structure: Optional[Structure], domain: Domain) -> Optional[Polygon]: + """Generates random polygon.""" geometry = domain.geometry try: """ @@ -55,9 +61,7 @@ def get_random_poly(parent_structure: Optional[Structure], domain: Domain) -> Op After setting the neighborhood, polygons are created around the centroid inside it. This approach is less demanding on postprocessing than random creation """ - - # Centroid with it neighborhood called occupied area - occupied_area = create_area(domain, parent_structure, geometry) + occupied_area = _create_area(domain, parent_structure, geometry) if occupied_area is None: # If it was not possible to find the occupied area then returns None return None @@ -78,22 +82,25 @@ def get_random_poly(parent_structure: Optional[Structure], domain: Domain) -> Op def get_random_point(polygon: Polygon, structure: Structure, domain: Domain) -> Optional[Point]: - # Creating a point to fill the polygon - + """Generatres random point for polygon.""" centroid = domain.geometry.get_centroid(polygon) - sigma = distance(centroid, structure, domain.geometry) / 3 + sigma = _distance(centroid, structure, domain.geometry) / 3 point = create_polygon_point(centroid, sigma) max_attempts = 20 # Number of attempts to create in bound point - while not in_bound(point, domain): + while not _in_bound(point, domain): point = create_polygon_point(centroid, sigma) max_attempts -= 1 if max_attempts == 0: return None + return point def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: + """Generates random polygon using poltgenerator lib. + For details see: https://github.com/bast/polygenerator + """ num_points = randint( domain.min_points_num, domain.max_points_num, @@ -109,6 +116,7 @@ def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2 random_polygon, ], ) + new_poly = generator(num_points) if not geometry.is_closed: start = np.random.choice(range(num_points), 1)[0] @@ -127,10 +135,11 @@ def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2 ) if domain.geometry.is_closed: new_poly.points.append(new_poly[0]) + return new_poly -def get_sigma_max(poly, init_max): +def _get_sigma_max(poly, init_max): sigma_max = init_max left_bound = 0 right_bound = init_max @@ -141,12 +150,15 @@ def get_sigma_max(poly, init_max): else: left_bound = sigma_max sigma_max += (right_bound - left_bound) / 2 + if sigma_max < 0.02: break + return sigma_max -def create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> (Point, float): +def _create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> (Point, float): + """Finds free area for new polygon.""" geom = domain.geometry area = geom._poly_to_shapely_poly(domain.bound_poly).buffer(-(domain.min_dist_from_boundary), 1) prohibs = geom.get_prohibited_geom( @@ -159,12 +171,13 @@ def create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> ( domain.min_dist_from_boundary, ), ) + for poly in structure.polygons: area = area.difference( geom._poly_to_shapely_poly(poly).convex_hull.buffer(domain.dist_between_polygons, 1), ).intersection(area) - sigma_max = 0.95 * get_sigma_max(area, (min(domain.max_x, domain.max_y) / 2) * 1.01) + sigma_max = 0.95 * _get_sigma_max(area, (min(domain.max_x, domain.max_y) / 2) * 1.01) sigma_min = max(domain.max_x - domain.min_x, domain.max_y - domain.min_y) * 0.05 sigma = np.random.uniform(sigma_min, sigma_max) @@ -174,11 +187,12 @@ def create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> ( def create_random_point(domain: Domain) -> Point: + """Returns random point from domain.""" point = Point( np.random.uniform(low=domain.min_x, high=domain.max_x), np.random.uniform(low=domain.min_y, high=domain.max_y), ) - while not in_bound(point, domain): + while not _in_bound(point, domain): point = Point( np.random.uniform(low=domain.min_x, high=domain.max_x), np.random.uniform(low=domain.min_y, high=domain.max_y), @@ -188,7 +202,7 @@ def create_random_point(domain: Domain) -> Point: def create_polygon_point(centroid: Point, sigma: int) -> Point: - # Creating polygon point inside the neighborhood defined by the centroid + """Generates point.""" point = Point( np.random.normal(centroid.x, sigma, 1)[0], np.random.normal(centroid.y, sigma, 1)[0], @@ -197,11 +211,11 @@ def create_polygon_point(centroid: Point, sigma: int) -> Point: return point -def in_bound(point: Point, domain: Domain) -> bool: +def _in_bound(point: Point, domain: Domain) -> bool: return domain.geometry.is_contain_point(domain.allowed_area, point) -def distance(point: Point, structure: Structure, geometry: Geometry2D) -> float: +def _distance(point: Point, structure: Structure, geometry: Geometry2D) -> float: polygons = structure.polygons distances = [] for poly in polygons: @@ -217,7 +231,7 @@ def get_selfintersection_safe_point( point_left_idx: int, point_right_idx: int, ) -> Polygon: - 'for non convex geometry' + """Finds a new point for the polygon that does not generate self-intersections.""" geom = domain.geometry if geom.is_closed: @@ -235,6 +249,7 @@ def get_selfintersection_safe_point( ] if len(part) != 1 ] + border = MultiLineString( [scale(line, xfact=0.99, yfact=0.99) for line in border if not line.is_empty], ) @@ -265,7 +280,7 @@ def get_selfintersection_safe_point( ( not new_segment.intersects(border), not new_segment.intersects(geom._poly_to_shapely_line(domain.allowed_area)), - not any([g.intersects(new_segment) for g in p_area.geoms]), + not any(g.intersects(new_segment) for g in p_area.geoms), ), ): break @@ -284,6 +299,7 @@ def get_convex_safe_area( poly_idx: int, **kwargs, ) -> Polygon: + """Finds an area from which a new point can be selected without breaking the convexity.""" geom = domain.geometry movment_area = None @@ -346,6 +362,7 @@ def get_convex_safe_area( geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), ] + slice_points = geom.intersection_poly_line( Polygon( [ @@ -394,6 +411,7 @@ def get_convex_safe_area( left_cut[1].coords, right_cut[1].coords, ) + return movment_area @@ -421,7 +439,7 @@ def _substract_oссupied_area( ), ) - for idx in [idx for idx in range(len(structure))]: + for idx in range(len(structure)): movment_area = movment_area.difference( geom._poly_to_shapely_poly(structure[idx]).buffer( domain.dist_between_polygons, diff --git a/gefest/core/opt/adapters/configuration_mapping.py b/gefest/core/opt/adapters/configuration_mapping.py index 1fa239c9d..a1158e885 100644 --- a/gefest/core/opt/adapters/configuration_mapping.py +++ b/gefest/core/opt/adapters/configuration_mapping.py @@ -18,6 +18,7 @@ def map_into_graph_requirements( opt_params: OptimizationParams, ) -> GraphRequirements: + """Translates OptimizationParams into GraphRequirements.""" return GraphRequirements( early_stopping_timeout=opt_params.early_stopping_timeout, early_stopping_iterations=opt_params.early_stopping_iterations, @@ -32,6 +33,7 @@ def map_into_graph_requirements( def map_into_graph_generation_params( opt_params: OptimizationParams, ) -> GraphGenerationParams: + """Translates OptimizationParams into GraphGenerationParams.""" return GraphGenerationParams( adapter=opt_params.golem_adapter, rules_for_constraint=[ @@ -48,6 +50,7 @@ def map_into_graph_generation_params( def map_into_gpa( opt_params: OptimizationParams, ) -> GPAlgorithmParameters: + """Translates OptimizationParams into GPAlgorithmParameters.""" return GPAlgorithmParameters( multi_objective=False, genetic_scheme_type=getattr( diff --git a/gefest/core/opt/adapters/factories.py b/gefest/core/opt/adapters/factories.py index 84789dc3a..6b8d30d07 100644 --- a/gefest/core/opt/adapters/factories.py +++ b/gefest/core/opt/adapters/factories.py @@ -17,5 +17,6 @@ def __init__( self.adapter = adapter def __call__(self, *args, **kwargs) -> OptGraph: + """Generates ranom GOLEM graph.""" samples = self.sampler(1) return self.adapter(samples[0]) diff --git a/gefest/core/opt/adapters/operator.py b/gefest/core/opt/adapters/operator.py index 373a08241..ba3e40cff 100644 --- a/gefest/core/opt/adapters/operator.py +++ b/gefest/core/opt/adapters/operator.py @@ -6,6 +6,8 @@ @register_serializable class OperationWrap: + """GOLEM wrap for GEFEST mutations and crossovers.""" + def __init__( self, executor, @@ -30,6 +32,7 @@ def __repr__(self): return f'{self.operations[0].__name__}' def __call__(self, *args, **kwargs): + """Executes mutation or crossover.""" executor = partial( self.executor, operations=self.operations, @@ -44,6 +47,7 @@ def __call__(self, *args, **kwargs): ) if executor.func.__name__ == 'mutate_structure': corrected = corrected[0] + return corrected def __str__(self): diff --git a/gefest/core/opt/adapters/structure.py b/gefest/core/opt/adapters/structure.py index b8402c3df..2077d742d 100644 --- a/gefest/core/opt/adapters/structure.py +++ b/gefest/core/opt/adapters/structure.py @@ -7,10 +7,9 @@ class StructureAdapter(BaseOptimizationAdapter): + """Adapter for GOLEM.""" + def __init__(self, domain: Domain) -> None: - """ - Optimization adapter for Pipeline class - """ super().__init__(base_graph_class=Structure) self.domain = domain @@ -35,11 +34,13 @@ def _adapt(self, adaptee: Structure) -> OptGraph: for polygon in adaptee.polygons: if polygon[-1] == polygon[0]: polygon = polygon[:-1] + prev_node = None for point_id in range(len(polygon.points)): node = self._point_to_node(polygon.points[point_id]) if prev_node: node.nodes_from = [prev_node] + prev_node = node nodes.append(node) @@ -65,8 +66,10 @@ def _restore(self, opt_graph: OptGraph) -> Structure: if not len(node.nodes_from): if self.domain.geometry.is_closed: poly.points.append(poly[0]) + structure.append(poly) poly = Polygon() + poly.points.append( Point( node.content['params']['x'], @@ -77,6 +80,7 @@ def _restore(self, opt_graph: OptGraph) -> Structure: if poly not in structure: if self.domain.geometry.is_closed: poly.points.append(poly[0]) + structure.append(poly) return Structure(structure) diff --git a/gefest/core/opt/objective/objective.py b/gefest/core/opt/objective/objective.py index 65f1a3df8..0e8689a30 100644 --- a/gefest/core/opt/objective/objective.py +++ b/gefest/core/opt/objective/objective.py @@ -7,6 +7,12 @@ class Objective(metaclass=ABCMeta): + """Base objective class. + + Must be used as base class for any user-defuned objetive. + + """ + def __init__( self, domain: Domain, @@ -20,6 +26,7 @@ def __call__( ind: Structure, **kwargs, ) -> list[Structure]: + """Calls evaluate method.""" return self.evaluate(ind) @abstractmethod @@ -27,4 +34,5 @@ def evaluate( self, ind: Structure, ) -> float: + """Must implement logic spicific objectiv evaluation.""" ... diff --git a/gefest/core/opt/objective/objective_eval.py b/gefest/core/opt/objective/objective_eval.py index 87ea8dd0e..0c483a6f2 100644 --- a/gefest/core/opt/objective/objective_eval.py +++ b/gefest/core/opt/objective/objective_eval.py @@ -4,6 +4,8 @@ class ObjectivesEvaluator: + """Implements objecives evaluation procedure.""" + def __init__( self, objectives: list[Objective], @@ -15,16 +17,20 @@ def __call__( pop: list[Structure], **kwargs, ) -> list[Structure]: + """Calls objectives evaluation.""" return self.set_pop_objectives(pop=pop) def set_pop_objectives( self, pop: list[Structure], ) -> list[Structure]: + """Evaluates objectives for whole population.""" for idx in where(pop, lambda ind: len(ind.fitness) == 0): pop[idx] = self.eval_objectives(pop[idx]) + return sorted(pop, key=lambda x: x.fitness) def eval_objectives(self, ind: Structure) -> Structure: + """Evaluates objectives.""" ind.fitness = [obj(ind) for obj in self.objectives] return ind diff --git a/gefest/core/opt/objective/tuner_objective.py b/gefest/core/opt/objective/tuner_objective.py index 210173564..2176553ed 100644 --- a/gefest/core/opt/objective/tuner_objective.py +++ b/gefest/core/opt/objective/tuner_objective.py @@ -8,6 +8,8 @@ class GolemObjectiveWithPreValidation(GolemObjective): + """GOLEM objective with GEFEST validation filtering.""" + def __init__( self, quality_metrics: Union[Callable, Dict[Any, Callable]], @@ -21,6 +23,12 @@ def __init__( self.adapter = adapter def __call__(self, graph: Graph, **metrics_kwargs: Any) -> Fitness: + """Evaluates objective for GOLEM graph representtion of GEFEST structure. + + If structure invalid, fintes will be set to high value. + This class allows filter out invalid variants on tuning. + + """ if self.validator(self.adapter.restore(graph)): res = super().__call__(graph, **metrics_kwargs) return res diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 37974f447..0c866367c 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -21,20 +21,19 @@ def crossover_structures( operation_chance: float, operations_probs: list[int], **kwargs, -) -> Structure: - """Apply mutation random mutation from list - for each polygons in structure. +) -> tuple[Structure]: + """Appls random crossover from given list for each pair. Args: - structure (Structure): Structure to mutate. + structure1 (Structure): First parent. + structure1 (Structure): Second parent. domain (Domain): Task domain. - mutations (list[Callable]): List of mutation operations to choose. - mutation_chance (float): Chance to mutate polygon. - mutations_probs (list[int]): Probablilites of each mutation operation. + operations (list[Callable]): List of mutation operations to choose. + operation_chance (float): Chance to mutate polygon. + operations_probs (list[int]): Probablilites of each mutation operation. Returns: - Structure: Mutated structure. It is not guaranteed - that the resulting structure will be valid or changed. + tuple[Structure]: Сhildren. """ s1, s2 = copy.deepcopy(structure1), copy.deepcopy(structure2) @@ -52,6 +51,7 @@ def crossover_structures( # pairs for crossover selection def panmixis(pop: list[Structure]) -> list[tuple[Structure, Structure]]: + """Default pair selection strategy.""" np.random.shuffle(list(pop)) return [(pop[idx], pop[idx + 1]) for idx in range(len(pop) - 1)] @@ -63,6 +63,7 @@ def structure_level_crossover( domain: Domain, **kwargs, ): + """Exchanges points of two polygons.""" s1, s2 = copy.deepcopy(s1), copy.deepcopy(s2) polygons1 = s1.polygons polygons2 = s2.polygons @@ -75,6 +76,7 @@ def structure_level_crossover( part_1 = polygons1[0:crossover_point] if not isinstance(part_1, tuple): part_1 = part_1 + part_2 = polygons2[crossover_point : len(s1.polygons)] if not isinstance(part_2, tuple): part_2 = part_2 @@ -93,6 +95,7 @@ def polygon_level_crossover( domain: Domain, **kwargs, ): + """Exchanges polygons of two structure.""" geom = domain.geometry s1, s2 = copy.deepcopy(s1), copy.deepcopy(s2) intersected = False @@ -110,9 +113,11 @@ def polygon_level_crossover( (p[0], geom.min_distance(geom.get_centroid(p[0][0]), geom.get_centroid(p[0][1]))) for p in pairs_dists ] + pairs_dists = sorted(pairs_dists, key=lambda p_d: p_d[1]) if len(pairs_dists) == 0: return (s1,) + poly_1 = pairs_dists[0][0][0] poly_2 = pairs_dists[0][0][1] if intersected: @@ -142,5 +147,7 @@ def polygon_level_crossover( class CrossoverTypes(Enum): + """Enumerates all crossover functions.""" + structure_level = partial(structure_level_crossover) polygon_level = partial(polygon_level_crossover) diff --git a/gefest/core/opt/operators/mutations.py b/gefest/core/opt/operators/mutations.py index 2c9a978dd..52d0966ed 100644 --- a/gefest/core/opt/operators/mutations.py +++ b/gefest/core/opt/operators/mutations.py @@ -7,7 +7,7 @@ from loguru import logger from shapely.geometry import LineString -from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.core.geometry.utils import ( get_convex_safe_area, @@ -24,8 +24,7 @@ def mutate_structure( operations_probs: list[float], **kwargs, ) -> Structure: - """Apply mutation random mutation from list - for each polygons in structure. + """Applys random mutation from given list for each polygon in structure. Args: structure (Structure): Structure to mutate. @@ -62,6 +61,7 @@ def rotate_poly_mutation( idx_: int = None, **kwargs, ) -> Structure: + """Rotares polygon for random angle.""" angle = float(np.random.randint(-120, 120)) new_structure[idx_] = domain.geometry.rotate_poly( new_structure[idx_], @@ -77,11 +77,13 @@ def drop_poly_mutation( idx_: int = None, **kwargs, ) -> Structure: + """Drops random polygon from structure.""" if len(new_structure.polygons) > (domain.min_poly_num + 1): idx_ = idx_ if idx_ else int(np.random.randint(0, len(new_structure))) polygon_to_remove = new_structure.polygons[idx_] - if not any([p in polygon_to_remove for p in domain.fixed_points]): + if not any(p in polygon_to_remove for p in domain.fixed_points): new_structure.remove(polygon_to_remove) + return new_structure @@ -92,10 +94,12 @@ def add_poly_mutation( idx_: int = None, **kwargs, ) -> Structure: + """Adds random polygon into structure using standard generator.""" if len(new_structure) < (domain.max_poly_num - 1): new_poly = get_random_poly(new_structure, domain) if new_poly is not None: new_structure.append(new_poly) + return new_structure @@ -106,6 +110,7 @@ def resize_poly_mutation( idx_: int = None, **kwargs, ) -> Structure: + """Randomly resizes polygon.""" new_structure[idx_] = domain.geometry.resize_poly( new_structure[idx_], x_scale=np.random.uniform(0.25, 3, 1)[0], @@ -114,38 +119,6 @@ def resize_poly_mutation( return new_structure -def _get_new_point_between( - poly: Polygon, - domain: Domain, - left_point_idx: int, - right_point_idx: int, -) -> Point: - geom = domain.geometry - if not geom.is_convex or len(poly) == 3: - point, _ = get_selfintersection_safe_point( - poly, - domain, - left_point_idx, - right_point_idx, - ) - - else: - shaply_poly = geom._poly_to_shapely_poly(poly) - movment_area = get_convex_safe_area( - poly, - domain, - left_point_idx, - right_point_idx, - ) - movment_area = geom._poly_to_shapely_poly(movment_area) - if not shaply_poly.is_simple: - logger.warning('Got non convex polygon. Convex hull will be used.', backtrace=True) - - point = geom.get_random_point_in_poly(movment_area) - - return point - - @logger.catch def pos_change_point_mutation( new_structure: Structure, @@ -153,10 +126,12 @@ def pos_change_point_mutation( idx_: int = None, **kwargs, ) -> Structure: + """Moves a random point without violating the geometry type specified in the domain.""" geom = domain.geometry poly = copy.deepcopy(new_structure[idx_]) if poly[0] == poly[-1]: poly = poly[:-1] + mutate_point_idx = int(np.random.randint(0, len(poly))) new_point = None if not geom.is_convex or (len(poly) in (2, 3)): @@ -192,6 +167,7 @@ def pos_change_point_mutation( if geom.is_closed: poly.points.append(poly[0]) + new_structure[idx_] = poly return new_structure @@ -203,11 +179,13 @@ def add_point_mutation( idx_: int = None, **kwargs, ): + """Adds a random point without violating the geometry type specified in the domain.""" geom = domain.geometry poly = copy.deepcopy(new_structure[idx_]) if poly[0] == poly[-1]: poly = poly[:-1] + mutate_point_idx = int(np.random.randint(0, len(poly))) new_point = None if not geom.is_convex or len(poly) == 3: @@ -237,6 +215,7 @@ def add_point_mutation( else: logger.warning('Strange case') + if new_point: poly.points.insert( (mutate_point_idx + 1) % len(poly), @@ -257,7 +236,7 @@ def drop_point_mutation( idx_: int = None, **kwargs, ): - + """Drops random point from polygon.""" polygon_to_mutate = new_structure[idx_] if domain.geometry.is_closed: if polygon_to_mutate[0] == polygon_to_mutate[-1]: @@ -283,6 +262,8 @@ def drop_point_mutation( class MutationTypes(Enum): + """enumerates all mutation functions.""" + rotate_poly = partial(rotate_poly_mutation) resize_poly = partial(resize_poly_mutation) add_point = partial(add_point_mutation) diff --git a/gefest/core/opt/operators/selections.py b/gefest/core/opt/operators/selections.py index 14cf9012d..6e301718a 100644 --- a/gefest/core/opt/operators/selections.py +++ b/gefest/core/opt/operators/selections.py @@ -30,6 +30,7 @@ def roulette_selection( while len(chosen) < pop_size: chosen.append(pop[np.random.choice(a=range(len(pop)), p=probability)]) + return chosen @@ -49,7 +50,6 @@ def tournament_selection( list[Structure]: The best individuals from given population. Their number is equal to ``'initial_number' * fraction`` """ - group_size = math.ceil(len(pop) * fraction) min_group_size = 2 if len(pop) > 1 else 1 group_size = max(group_size, min_group_size) @@ -65,9 +65,12 @@ def tournament_selection( n_iter = 0 rnd = pop[randint(0, len(pop) - 1)] chosen.append(rnd) + return chosen class SelectionTypes(Enum): + """Enumerates all GEFEST selection functions.""" + roulette_selection = partial(roulette_selection) tournament_selection = partial(tournament_selection) diff --git a/gefest/core/opt/postproc/resolve_errors.py b/gefest/core/opt/postproc/resolve_errors.py index b7e02e96d..4b6c935ef 100644 --- a/gefest/core/opt/postproc/resolve_errors.py +++ b/gefest/core/opt/postproc/resolve_errors.py @@ -10,6 +10,8 @@ class Postrocessor: + """Implements logic of structures postprocessing.""" + @staticmethod def apply_postprocess( structures: Union[Structure, list[Structure]], @@ -17,8 +19,10 @@ def apply_postprocess( domain: Domain, attempts: int = 3, ) -> list[Union[Structure, None]]: + """Applys postprocessing rules over all provided structures.""" if not isinstance(structures, (list, tuple)): structures = [structures] + post_processed = [ Postrocessor.postprocess_structure(struct, rules, domain, attempts) for struct in structures @@ -31,6 +35,7 @@ def _apply_polygon_rule(structure, rule, attempts, domain) -> Union[Structure, N for _ in range(attempts): if structure[idx_].points is None: logger.warning('bruh') + if not rule.validate(structure, idx_, domain): structure[idx_] = rule.correct(structure, idx_, domain) if structure[idx_].points is None: @@ -41,6 +46,7 @@ def _apply_polygon_rule(structure, rule, attempts, domain) -> Union[Structure, N if not rule.validate(structure, idx_, domain): logger.info(f'{rule.__class__.__name__} fail') return None + return structure @staticmethod @@ -53,6 +59,7 @@ def _apply_structure_rule(structure, rule, attempts, domain) -> Union[Structure, else: if not rule.validate(structure, domain): return None + return structure @staticmethod @@ -82,10 +89,8 @@ def postprocess_structure( return None if any( - [ - (not poly or len(poly) == 0 or any([not pt for pt in poly])) - for poly in structure.polygons - ], + (not poly or len(poly) == 0 or any(not pt for pt in poly)) + for poly in structure.polygons ): logger.error('Wrong structure - problems with points') return None diff --git a/gefest/core/opt/postproc/rules.py b/gefest/core/opt/postproc/rules.py index 5e7290278..a831512e1 100644 --- a/gefest/core/opt/postproc/rules.py +++ b/gefest/core/opt/postproc/rules.py @@ -3,7 +3,6 @@ from itertools import combinations import numpy as np -from loguru import logger from shapely.geometry import GeometryCollection, LineString, MultiPoint from shapely.geometry import Point as ShapelyPoint from shapely.geometry import Polygon as ShapelyPolygon @@ -16,8 +15,11 @@ class PolygonsNotTooClose(StructureRule): + """Validated distance between polygons.""" + @staticmethod def validate(struct: Structure, domain: Domain) -> bool: + """Checks distances between polgons.""" pairs = tuple(combinations(struct.polygons, 2)) is_too_close = [False] * len(pairs) @@ -29,12 +31,8 @@ def validate(struct: Structure, domain: Domain) -> bool: return not any(is_too_close) @staticmethod - @logger.catch def correct(struct: Structure, domain: Domain) -> Structure: - """ - For polygons that are closer than the specified threshold, - one of them will be removed - """ + """Removes one of polygons that are closer than the specified threshold.""" polygons = struct.polygons num_poly = len(polygons) to_delete = [] @@ -58,33 +56,37 @@ def correct(struct: Structure, domain: Domain) -> Structure: def _pairwise_dist(poly_1: Polygon, poly_2: Polygon, domain: Domain): - """ - ::TODO:: find the answer for the question: why return 0 gives infinite computation - """ + + # return 0 gives infinite computation if poly_1 is poly_2 or len(poly_1.points) == 0 or len(poly_2.points) == 0: return 9999 - # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why return only 1 point + # nearest_pts = domain.geometry.nearest_points(poly_1, poly_2) ??? why returns only 1 point return domain.geometry.min_distance(poly_1, poly_2) class PointsNotTooClose(PolygonRule): + """Validated length of polygon edges.""" + @staticmethod def validate( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> bool: - """The method indicates that any :obj:`Point` in each :obj:`Polygon` of :obj:`Structure` - is placed in correct distance by previous point + """Checks if each :obj:`Point` in :obj:`Polygon` are placed in valid distance by previous. + Args: structure: the :obj:`Structure` that explore + Returns: ``True`` if any side of poly have incorrect lenght, otherwise - ``False`` + """ poly = copy.deepcopy(structure[idx_poly_with_error]) if poly[0] != poly[-1] and domain.geometry.is_closed: poly.points = poly.points.append(poly[0]) + lenght = domain.dist_between_points check, norms = [[None] * (len(poly) - 1)] * 2 for idx, pair in enumerate( @@ -96,6 +98,7 @@ def validate( norm = np.linalg.norm(np.array(pair[1].coords) - np.array(pair[0].coords)) norms[idx] = norm check[idx] = norm > lenght + return all(check) @staticmethod @@ -104,24 +107,29 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: + """Corrects polygon.""" poly = copy.deepcopy(structure[idx_poly_with_error]) poly = domain.geometry.simplify(poly, domain.dist_between_points * 1.05) if poly[0] != poly[-1] and domain.geometry.is_closed: poly.points.append(poly[0]) + elif poly[0] == poly[-1] and not domain.geometry.is_closed: poly.points = poly.points[:-1] + return poly class PolygonNotOverlapsProhibited(PolygonRule): + """Validates polygon overlapping other objects.""" + @staticmethod def validate( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> bool: - + """Checks if polygon overlaps other polygons or prohibits.""" geom = domain.geometry if domain.geometry.is_closed: pass @@ -142,6 +150,7 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: + """Corrects polygon overlaps.""" geom = domain.geometry if domain.geometry.is_closed: raise NotImplementedError() @@ -157,7 +166,8 @@ def correct( if isinstance(res, (MultiPoint, LineString)): res = GeometryCollection(res) - parts = [g for g in res.geoms] + + parts = res.geoms parts = [g for g in parts if not g.intersects(prohib)] poly = np.random.choice(parts) return Polygon([Point(p[0], p[1]) for p in poly.coords]) @@ -166,17 +176,25 @@ def correct( class PolygonGeometryIsValid(PolygonRule): + """Validates polygon geometry. + + A polygon is invalid if its geometry does not match the geometry of the domain. + + """ + @staticmethod def validate( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> bool: + """Validates polygon geometry.""" poly = structure[idx_poly_with_error] if (domain.geometry.is_closed and (poly[0] == poly[-1])) or ( not domain.geometry.is_closed and (poly[0] != poly[-1]) ): return True + return False @staticmethod @@ -185,21 +203,27 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: + """Corrects polygon geometry.""" poly = structure[idx_poly_with_error] if domain.geometry.is_closed and (poly[0] != poly[-1]): poly.points.append(poly.points[0]) + elif not domain.geometry.is_closed and (poly[0] == poly[-1]): poly.points = poly.points[:-1] + return poly class PolygonNotOutOfBounds(PolygonRule): + """Out of bounds rule. Polygon invalid if it out of bounds.""" + @staticmethod def validate( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> bool: + """Checks if polygon is out of domain bounds.""" geom_poly_allowed = ShapelyPolygon( [ShapelyPoint(pt.x, pt.y) for pt in domain.allowed_area], ) @@ -219,11 +243,13 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: + """Corrects out of bound polygon.""" point_moved = False poly = structure[idx_poly_with_error] for p_id, point in enumerate(poly): if point in domain.fixed_points: continue + point.x = max(point.x, domain.min_x + domain.len_x * 0.05) point.y = max(point.y, domain.min_y + domain.len_y * 0.05) point.x = min(point.x, domain.max_x + domain.len_x * 0.05) @@ -245,12 +271,15 @@ def correct( class PolygonNotSelfIntersects(PolygonRule): + """Selfintersection rule. Polygon invalid if it have selfintersections.""" + @staticmethod def validate( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> bool: + """Validates polygon for selfintersection.""" poly = structure[idx_poly_with_error] return not ( len(poly) > 2 @@ -267,10 +296,12 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: + """Corrects selfintersection in polygon.""" poly = structure[idx_poly_with_error] poly = domain.geometry.get_convex(poly) if not domain.geometry.is_closed: poly.points = poly.points[:-1] + return poly @@ -279,6 +310,8 @@ def _forbidden_validity(validity): class Rules(Enum): + """Enumeration of all defined rules.""" + not_too_close_polygons = PolygonsNotTooClose() valid_polygon_geom = PolygonGeometryIsValid() not_out_of_bounds = PolygonNotOutOfBounds() diff --git a/gefest/core/opt/postproc/rules_base.py b/gefest/core/opt/postproc/rules_base.py index a8e1e78f3..2f666bc6f 100644 --- a/gefest/core/opt/postproc/rules_base.py +++ b/gefest/core/opt/postproc/rules_base.py @@ -18,7 +18,7 @@ def validate( idx_poly_with_error: int, domain: Domain, ) -> bool: - """Check if there is no error in the spicific polygon in structure. + """Checks if there is no error in the spicific polygon in structure. Args: structure (Structure): Structure with error. @@ -37,7 +37,7 @@ def correct( idx_poly_with_error: int, domain: Domain, ) -> Polygon: - """Try to fix spicific error. + """Trys to fix spicific error. The method does not guarantee error correction. @@ -64,7 +64,7 @@ def validate( structure: Structure, domain: Domain, ) -> bool: - """Check if there is no error in the structure. + """Checks if there is no error in the structure. Args: structure (Structure): Structure for validation. @@ -81,7 +81,8 @@ def correct( structure: Structure, domain: Domain, ) -> Structure: - """Try to fix spicific error. + """Trys to fix spicific error. + The method does not guarantee error correction. Args: diff --git a/gefest/core/opt/postproc/validation.py b/gefest/core/opt/postproc/validation.py index f1f6e9509..93492eb7d 100644 --- a/gefest/core/opt/postproc/validation.py +++ b/gefest/core/opt/postproc/validation.py @@ -12,9 +12,20 @@ def validate( rules: list[Union[StructureRule, PolygonRule]], domain: Domain, ) -> bool: + """Validates single structure. + + Args: + structure (Structure): Structure. + rules (list[Union[StructureRule, PolygonRule]]): Validation rules. + domain (Domain): Task domain. + + Returns: + bool: True if valid else False + """ if structure is None: return False - if any((not poly or len(poly) == 0 or any([not p for p in poly])) for poly in structure): + + if any((not poly or len(poly) == 0 or any(not p for p in poly)) for poly in structure): logger.error('Wrong structure - problems with points') return False diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index 2248ad372..697b84373 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -12,6 +12,8 @@ class CrossoverStrategy(Strategy): + """Default crossover strategy.""" + def __init__(self, opt_params: OptimizationParams): self.prob = opt_params.crossover_prob @@ -26,10 +28,11 @@ def __init__(self, opt_params: OptimizationParams): self._pm = BaseParallelDispatcher(opt_params.n_jobs) def __call__(self, pop: list[Structure]) -> list[Structure]: + """Calls crossover method.""" return self.crossover(pop=pop) def crossover(self, pop: list[Structure]): - + """Executes crossover for provided population.""" crossover = partial( crossover_structures, domain=self.domain, diff --git a/gefest/core/opt/strategies/mutation.py b/gefest/core/opt/strategies/mutation.py index 259556d7f..bacdc3d1e 100644 --- a/gefest/core/opt/strategies/mutation.py +++ b/gefest/core/opt/strategies/mutation.py @@ -12,6 +12,8 @@ class MutationStrategy(Strategy): + """Default mutation strategy.""" + def __init__(self, opt_params: OptimizationParams): self.domain = opt_params.domain @@ -24,10 +26,18 @@ def __init__(self, opt_params: OptimizationParams): self._pm = BaseParallelDispatcher(opt_params.n_jobs) def __call__(self, pop: list[Structure]) -> list[Structure]: + """Calls mutate method.""" return self.mutate(pop=pop) - def mutate(self, pop: list[Structure]): + def mutate(self, pop: list[Structure]) -> list[Structure]: + """Mutates provided population. + + Args: + pop (list[Structure]): Given population. + Returns: + list[Structure]: Mutated population. + """ mutator = partial( mutate_structure, domain=self.domain, diff --git a/gefest/core/opt/strategies/strategy.py b/gefest/core/opt/strategies/strategy.py index 9d4227809..1c99d1e28 100644 --- a/gefest/core/opt/strategies/strategy.py +++ b/gefest/core/opt/strategies/strategy.py @@ -14,5 +14,5 @@ def __call__( *args: Any, **kwds: Any, ) -> list[Structure]: - """Code""" + """Must implement logic of any genetic algorithm step.""" ... diff --git a/gefest/core/serialization/serializer.py b/gefest/core/serialization/serializer.py index 1b77c3d05..a11cdc6f7 100644 --- a/gefest/core/serialization/serializer.py +++ b/gefest/core/serialization/serializer.py @@ -117,7 +117,7 @@ def _get_class(class_path: str) -> Type[INSTANCE_OR_CALLABLE]: return obj_cls def object_hook(self, json_obj: Dict[str, Any]) -> Union[INSTANCE_OR_CALLABLE, dict]: - """Decodes every JSON-object to python class/func object or just returns dict + """Decodes every JSON-object to python class/func object or just returns dict. Args: json_obj: dict to be decoded into Python class, function or @@ -125,6 +125,7 @@ def object_hook(self, json_obj: Dict[str, Any]) -> Union[INSTANCE_OR_CALLABLE, d Returns: Python class, function or method object OR input if it's just a regular dict + """ if CLASS_PATH_KEY in json_obj: @@ -138,5 +139,7 @@ def object_hook(self, json_obj: Dict[str, Any]) -> Union[INSTANCE_OR_CALLABLE, d ) elif isfunction(obj_cls) or ismethod(obj_cls): return obj_cls + raise TypeError(f'Parsed obj_cls={obj_cls} is not serializable, but should be') + return json_obj diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py index a3527568a..3586ac176 100644 --- a/gefest/core/structure/prohibited.py +++ b/gefest/core/structure/prohibited.py @@ -12,14 +12,17 @@ def create_prohibited( fixed_points: Optional[list[list]] = None, fixed_area: Optional[list[list]] = None, ) -> Structure: - """ - Creation of fixed, prohibited structures. Polygons cannot cross them + """Creation of fixed, prohibited structures. Polygons cannot cross them. + + Args: + points_radius (_type_): _description_ + targets (Optional[list[list]], optional): Fixed targets inside domain. Defaults to None. + fixed_points (Optional[list[list]], optional): Fixed lines inside domain. Defaults to None. + fixed_area (Optional[list[list]], optional): Fixed areas inside domain. Defaults to None. + + Returns: + Structure: Compilation of imputs as GEFEST Structure. - :param targets: (Optional[List[List]]), fixed targets inside domain - :param fixed_points: (Optional[List[List]]), fixed lines inside domain - :param fixed_area: (Optional[List[List]]), fixed areas inside domain - :return: Structure, structure of all prohibited polygons (targets, lines, areas) - ::TODO:: change buffer to something more interpretable """ prohibited_area = [] if targets is not None: diff --git a/gefest/core/utils/functions.py b/gefest/core/utils/functions.py index bebda87f0..5fa7129ca 100644 --- a/gefest/core/utils/functions.py +++ b/gefest/core/utils/functions.py @@ -21,13 +21,16 @@ def parse_structs(path: str) -> list[Structure]: Returns: list[Structure]: Serialized population. + """ with open(path, 'r') as file: dict_strings = file.readlines() + pop = [] for dict_string in dict_strings: ind = Structure(**json.loads(dict_string)) pop.append(ind) + return pop @@ -37,11 +40,14 @@ def where( mask_rule: Callable[[Callable], bool], ) -> list[int]: """Finds indexes of values in a sequence satisfying the mask_rule. + Args: sequence (list[Any]): list of values mask_rule (Callable[[Callable], bool]): rule for selecting values (e.g. lambda val: val is not None) + Returns: - list[int]: _description_ + list[int]: List of indexes of elements satisfying the condition. + """ return [idx for idx, ind in enumerate(sequence) if mask_rule(ind)] diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index 72d188b28..98007109b 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -7,12 +7,15 @@ class LogDispatcher: + """Makes some logging stuff.""" + def __init__(self, log_dir: str = 'logs', run_name='new_run') -> None: self.timenow = '{date:%Y-%m-%d_%H_%M_%S}'.format(date=datetime.datetime.now()) self.log_dir = log_dir self.run_name = run_name def log_pop(self, pop: list[Structure], step: str): + """Saves provided population to json.""" inividual_log_handler = logger.add( f'{self.log_dir}/{self.run_name}_{self.timenow}/{step.zfill(5)}.log', level=4, @@ -24,5 +27,6 @@ def log_pop(self, pop: list[Structure], step: str): exclude={'polygons': {'__all__': {'points': {'__all__': {'coords'}}}}}, ) logger.log(4, dump) + logger.remove(inividual_log_handler) logger.info('Population logged. May be not sorted by fitness.') diff --git a/gefest/core/utils/parallel_manager.py b/gefest/core/utils/parallel_manager.py index dbbef80de..9cfca1eb2 100644 --- a/gefest/core/utils/parallel_manager.py +++ b/gefest/core/utils/parallel_manager.py @@ -13,12 +13,14 @@ def __init__(self, n_jobs: int = -1): Args: n_jobs (int, optional): Set 0 to debug withou joblib. For other values see joblib docs. Defaults to -1. + """ self.n_jobs = self._determine_n_jobs(n_jobs) def _determine_n_jobs(self, n_jobs: int = -1): if n_jobs > cpu_count() or n_jobs == -1: n_jobs = cpu_count() + return n_jobs @logger.catch @@ -37,6 +39,7 @@ def exec_parallel( use (bool, optional): If True, each arg in args will be used as func argument, otherwise func will be called without arguments len(args) times. Defaults to True. flatten (bool): If true, makes flatten list from function ouput lists. + Returns: list[Any] """ @@ -51,11 +54,14 @@ def exec_parallel( result = parallel(delayed(func)(*args) for args in arguments) else: result = parallel(delayed(func)() for _ in arguments) + if flatten: if not all(isinstance(res, (tuple, list)) for res in result): raise ValueError( f"""Got an unexpected outputs from {func}. Got: {[type(res) for res in result]}. Expected tuples or lists.""", ) + result = [item for separate_output in result for item in separate_output] + return result diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index f3f8cbd91..a9f7bc3c1 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -8,23 +8,27 @@ class StructVizualizer: - """The object for mapping a :obj:`Structure` or :obj:`Polygon` + """The object for mapping a :obj:`Structure` or :obj:`Polygon`. + Examples: >>> from gefest.core.structure.domain import Domain >>> from gefest.core.viz.struct_vizualizer import StructVizualizer >>> domain = Domain() >>> viz = StructVizualizer(domain) + """ def __init__(self, domain: Domain): self.domain = domain def plot_structure(self, structs: list[Structure], domain=None, infos=None, linestyles='-'): - """The method displays the given list[obj:`Structure`] + """The method displays the given list[obj:`Structure`]. + Args: structs: the list[obj:`Structure`] for displaying infos: the list of data to plot legend for each structure linestyles: pyplot linestyles for stuctures + Examples: >>> from gefest.core.structure.structure import get_random_structure >>> struct_1 = get_random_structure(domain) @@ -33,14 +37,17 @@ def plot_structure(self, structs: list[Structure], domain=None, infos=None, line [struct_1, struct_2], ['stucture_1', 'stucture_2'], [':', '-']) + Returns: |viz_struct| .. |viz_struct| image::https://ibb.co/fN7XCXh """ if not isinstance(structs, list): structs = [structs] + if not isinstance(infos, list): infos = [infos] + fig = plt.figure() for struct, linestyle in zip(structs, linestyles): if self.domain: @@ -62,15 +69,18 @@ def plot_structure(self, structs: list[Structure], domain=None, infos=None, line return fig def plot_poly(self, poly, linestyle, **kwargs): - """The method displays the given :obj:`Polygon` + """The method displays the given :obj:`Polygon`. + Args: poly: the :obj:`Polygon` for displaying linestyle: pyplot linestyles for polygon + Examples: >>> from gefest.core.structure.structure import get_random_poly >>> struct = get_random_structure(domain) >>> poly = struct.polygons[0] >>> viz.plot_poly(poly, '-') + Returns: .. |viz_poly| image:: https://ibb.co/s31cj3c """ @@ -81,19 +91,22 @@ def plot_poly(self, poly, linestyle, **kwargs): class GIFMaker(StructVizualizer): + """Smple API for saving a series of plots in mp4 with moviepy.""" + def __init__(self, domain) -> None: super().__init__(domain=domain) self.frames = [] self.counter = 0 def create_frame(self, structure, infos): + """Appends new frame from given structure.""" fig = self.plot_structure(structure, self.domain, infos) numpy_fig = mplfig_to_npimage(fig) self.frames.append(numpy_fig) plt.close() def make_gif(self, gifname, duration=1500, loop=-1): - + """Makes mp4 file from collected plots.""" clip = mp.ImageSequenceClip( self.frames, durations=[duration] * len(self.frames), diff --git a/gefest/tools/estimators/estimator.py b/gefest/tools/estimators/estimator.py index 10712ace5..c2db6b7ed 100644 --- a/gefest/tools/estimators/estimator.py +++ b/gefest/tools/estimators/estimator.py @@ -5,12 +5,16 @@ class Estimator(metaclass=ABCMeta): + """Interface for estimation backends, e.g. physical simulators, neural networks.""" + def __call__( self, struct: Structure, ) -> Any: + """Incapsulates estimate method call for simler estimator usage.""" return self.estimate(struct) @abstractmethod def estimate(self, struct: Structure) -> Any: + """Must implemet logic of estimation.""" ... diff --git a/gefest/tools/estimators/simulators/comsol/comsol_interface.py b/gefest/tools/estimators/simulators/comsol/comsol_interface.py index 5575180ce..02a8c982b 100644 --- a/gefest/tools/estimators/simulators/comsol/comsol_interface.py +++ b/gefest/tools/estimators/simulators/comsol/comsol_interface.py @@ -15,28 +15,23 @@ class Comsol(Estimator): - """ - ::TODO:: make abstract class for further specific realizations - """ + """Comsol wrapper class for microfluidic problem estimation.""" - """ - Comsol class for microfluidic problem - """ + def __init__(self, path_to_mph: str) -> None: - def __init__(self, path_to_mph): - """ - :param path_to_mph: (String), path to mph file - """ super(Comsol, self).__init__() self.client = mph.Client() self.path_to_mph = path_to_mph - def estimate(self, structure: Structure): - """ - Estimation using comsol multiphysics - :param structure: (Structure), Structure of polygons - :return: (Int), Performance + def estimate(self, structure: Structure) -> int: + """Estimates given structure using comsol multiphysics. + + Args: + structure (Structure): GEFEST structure. + + Returns: + int: Performance. """ gc.collect() target, idx = self._load_fitness(structure) @@ -97,7 +92,7 @@ def estimate(self, structure: Structure): np.mean([abs(float(o) / np.mean(outs[0:4]) - 1) * 100 for o in outs[0:4]]), ) if USE_AVG_CONST and any( - [abs(float(o) / np.mean(outs[0:4]) - 1) * 100 > 5.0 for o in outs[0:4]], + abs(float(o) / np.mean(outs[0:4]) - 1) * 100 > 5.0 for o in outs[0:4] ): print( 'Speed equality violated', @@ -128,6 +123,7 @@ def _poly_add(self, model, polygons): model.java.component('comp1').geom('geom1').create('pol' + str(n + 1), 'Polygon') except Exception: pass + model.java.component('comp1').geom('geom1').feature('pol' + str(n + 1)).set( 'x', poly[0], @@ -136,11 +132,13 @@ def _poly_add(self, model, polygons): 'y', poly[1], ) + return model def _save_simulation_result(self, configuration, model): if not os.path.exists('./models'): os.mkdir('./models') + model_uid = str(uuid4()) model.save(f'./models/{model_uid}.mph') db = pickledb.load('comsol_db.saved', False) diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index 3f08c09f4..2fb66894a 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -19,14 +19,15 @@ def generate_map(domain, structure): - """Generates obstacke map according to polygons in structure inside of domain borders + """Generates obstacke map according to polygons in structure inside of domain borders. - Parameters: + Args: domain(Domain): shape of the map to generate structure (Structure): structure for shaping obstacles + Returns: - obstacle_map (np.array): array shaped as domain area, containing polygons as - obstacles. + obstacle_map (np.array): array shaped as domain area, containing polygons as obstacles. + """ map_size = (round(1.2 * domain.max_y), round(1.2 * domain.max_x)) observed_structure = deepcopy(structure) @@ -45,10 +46,13 @@ def generate_map(domain, structure): def generate_random_map(map_size, random_seed): """Randomly generate an array of zeros (free media) and ones (obstacles). + The obstacles have basic geometric shapes. - Parameters: + + Args: map_size(tuple): shape of the map to generate random_seed (int): random seed for random generation of obstacles + Returns: random_map (np.array): array shaped as map_size, containing random obstacles """ @@ -84,11 +88,12 @@ def generate_random_map(map_size, random_seed): class SoundSimulator(Estimator): - """Class for the configuration and simulation of sound propagation in a map - with obstacles. + """Class for the configuration and simulation of sound propagation in a map with obstacles. + Adapted from https://github.com/Alexander3/wave-propagation Based on Komatsuzaki T. "Modelling of Incident Sound Wave Propagation around Sound Barriers Using Cellular Automata" (2012) + Attributes: map_size (tuple): size of the map obstacle_map (np.array): free media = 0, obstacles = 1. If the given @@ -137,6 +142,7 @@ def update_velocity(self): if self.obstacle_map[i, j] == 1: V[i, j, 0:4] = 0.0 continue + V[i, j, 0] = V[i, j, 0] + P[i, j] - P[i - 1, j] if i > 0 else P[i, j] V[i, j, 1] = V[i, j, 1] + P[i, j] - P[i, j + 1] if j < self.size_x - 1 else P[i, j] V[i, j, 2] = V[i, j, 2] + P[i, j] - P[i + 1, j] if i < self.size_y - 1 else P[i, j] @@ -154,18 +160,22 @@ def step(self): self.iteration += 1 def spl(self, integration_interval=60): - """Compute the sound pressure level map. + """Computes the sound pressure level map. + https://en.wikipedia.org/wiki/Sound_pressure#Sound_pressure_level - Parameters: + + Args: integration_interval (int): interval over which the rms pressure is computed, starting from the last simulation iteration backwards. + Returns: spl (np.array): map of sound pressure level (dB). """ p0 = 20 * 10e-6 # Pa if integration_interval > self.pressure_hist.shape[0]: integration_interval = self.pressure_hist.shape[0] + rms_p = np.sqrt(np.mean(np.square(self.pressure_hist[-integration_interval:-1]), axis=0)) rms_p[rms_p == 0.0] = 0.000000001 @@ -173,6 +183,7 @@ def spl(self, integration_interval=60): return matrix_db def run(self): + """Runs soun estimation.""" for iteration in range(self.duration): self.pressure_hist[iteration] = deepcopy(self.pressure) self.step() diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index f90f37325..d51dcd67c 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -8,6 +8,8 @@ class Swan(Estimator): + """Swan waves simulator wrapper.""" + def __init__( self, path, @@ -26,7 +28,6 @@ def __init__( self._grid_configuration() def _grid_configuration(self): - file_to_read = open(self.path_to_input, 'r') content_read = file_to_read.read() @@ -50,13 +51,22 @@ def _grid_configuration(self): content_to_replace, ) new_content = content_write + file_to_read.close() file_to_write = open(self.path_to_input, 'w') file_to_write.writelines(new_content) file_to_write.close() - def estimate(self, struct: 'Structure'): + def estimate(self, struct: Structure) -> tuple: + """Estimates waves height for given structure. + + Args: + struct (Structure): GEFEST Structure. + + Returns: + tuple: Waves height matrix and sum of wave heights in target areas. + """ polygons = struct.polygons file_to_read = open(self.path_to_input, 'r') content_read = file_to_read.read() diff --git a/gefest/tools/optimizers/GA/GA.py b/gefest/tools/optimizers/GA/GA.py index 57d6643a6..ed5fafb6f 100644 --- a/gefest/tools/optimizers/GA/GA.py +++ b/gefest/tools/optimizers/GA/GA.py @@ -10,6 +10,14 @@ class BaseGA(Optimizer): + """Implemets default genetic optimization algorithm steps. + + Can be used as base class for others GA based optimizers. + Can be configured using modules with different realization of operations, + e.g. crossover, mutation, selection operations or crossover, mutation strategies. + + """ + def __init__( self, opt_params, @@ -30,6 +38,11 @@ def __init__( self.log_dispatcher.log_pop(self._pop, '00000_init') def optimize(self) -> list[Structure]: + """Optimizes population. + + Returns: + list[Structure]: Optimized population. + """ for step in tqdm(range(self.n_steps)): self._pop = self.crossover(self._pop) self._pop = self.mutation(self._pop) @@ -37,4 +50,5 @@ def optimize(self) -> list[Structure]: self._pop = self.objectives_evaluator(self._pop) self._pop = self.selector(self._pop, self.opt_params.pop_size) self.log_dispatcher.log_pop(self._pop, str(step + 1)) + return self._pop diff --git a/gefest/tools/optimizers/SPEA2/SPEA2.py b/gefest/tools/optimizers/SPEA2/SPEA2.py index b55605e8f..377cdb86b 100644 --- a/gefest/tools/optimizers/SPEA2/SPEA2.py +++ b/gefest/tools/optimizers/SPEA2/SPEA2.py @@ -7,8 +7,8 @@ class SPEA2(BaseGA): - """ - SPEA2 algorithm realization + """SPEA2 algorithm realization. + In this algorithm performance is multi-dimension """ @@ -20,8 +20,7 @@ def __init__(self, opt_params): self.calculate_sepa2_fitness() def dominate(self, idx_1: int, idx_2: int) -> bool: - """Check if one indivdial not worse than other - by all fitness components. + """Checks if one indivdial not worse than other by all fitness components. Args: idx_1 (int): Index of first individual. @@ -30,21 +29,19 @@ def dominate(self, idx_1: int, idx_2: int) -> bool: Returns: bool: True if self._pop[idx_1] dominate self._pop[idx_2] else False """ - return all( - [ - ind1 <= ind2 - for ind1, ind2 in zip( - self._pop[idx_1].fitness, - self._pop[idx_2].fitness, - ) - ], + ind1 <= ind2 + for ind1, ind2 in zip( + self._pop[idx_1].fitness, + self._pop[idx_2].fitness, + ) ) - def strength(self): - """ - Calculating strength for each individ in pop and arch - :return: (List(Int)) strength of each individ + def strength(self) -> list[int]: + """Calculates strength for each individ in pop and arch. + + Returns: + list[int]: strength of each individ """ strength = [] @@ -53,16 +50,19 @@ def strength(self): for j in range(len(self._pop)): if j == i: continue + if self.dominate(i, j): count += 1 + strength.append(count) return strength - def raw(self): - """ - Calculating raw for pop and arch - :return: (List(Int)) raw of each individ + def raw(self) -> list[int]: + """Calculates raw for pop and arch. + + Returns: + list[int]: Raw of each individ. """ raw = [] strength = self.strength() @@ -72,16 +72,19 @@ def raw(self): for j in range(len(self._pop)): if j == i: continue + if self.dominate(j, i): count += strength[j] + raw.append(count) return raw - def density(self): - """ - Calculating density - :return: (List(float)) density of each individ in pop + arch + def density(self) -> list[float]: + """Calculates density. + + Returns: + list[float]: Density of each individ in pop and arch. """ density = [] k = 0 @@ -92,19 +95,17 @@ def density(self): for j in range(len(self._pop)): if j == i: continue + second_point = np.array(self._pop[j].fitness) distance.append(np.linalg.norm(first_point - second_point)) + sorted_dist = np.sort(distance) density.append(1 / (sorted_dist[k] + 2)) return density - def calculate_sepa2_fitness(self): - """ - Calculating SPEA2 fitness function - fitness = raw + density - :return: None - """ + def calculate_sepa2_fitness(self) -> None: + """Calulates SPEA2 fitness function.""" self._pop = self._pop + self.archive raw = self.raw() @@ -112,11 +113,8 @@ def calculate_sepa2_fitness(self): for idx, _ in enumerate(self._pop): self._pop[idx].extra_characteristics['SEPA2_fitness'] = raw[idx] + density[idx] - def environmental_selection(self): - """ - Updating archive population via environmental selection procedure - :return: (None) - """ + def environmental_selection(self) -> None: + """Updates archive population via environmental selection procedure.""" self.archive = [ind for ind in self._pop if ind.extra_characteristics['SEPA2_fitness'] < 1] # First case, adding remaining best individs @@ -126,6 +124,7 @@ def environmental_selection(self): while len(self.archive) != self.arch_size: if sorted_pop[idx].extra_characteristics['SEPA2_fitness'] >= 1: self.archive.append(sorted_pop[idx]) + idx += 1 # Second case, deleting using truncation procedure @@ -140,11 +139,13 @@ def _save_archive(self, n): pickle.dump(self.archive, handle, protocol=pickle.HIGHEST_PROTOCOL) def optimize(self): + """Optimizes population.""" for step in tqdm(range(self.n_steps)): # self._pop = self.selector(self._pop, self.opt_params.pop_size) self.environmental_selection() if step == self.n_steps: return self.archive + self._pop = self.selector(self._pop, self.opt_params.pop_size) children = self.crossover(self._pop) mutated_children = self.mutation(children) diff --git a/gefest/tools/optimizers/golem_optimizer/standard.py b/gefest/tools/optimizers/golem_optimizer/standard.py index 89ca846d2..7f0a333e1 100644 --- a/gefest/tools/optimizers/golem_optimizer/standard.py +++ b/gefest/tools/optimizers/golem_optimizer/standard.py @@ -11,6 +11,12 @@ class StandardOptimizer(Optimizer): + """Wrapper for GOLEM EvoGraphOptimizer. + + All GOLEM optimization features can be setted up with native GEFEST configuration file. + + """ + def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: super().__init__(opt_params.log_dispatcher, **kwargs) self.opt_params = opt_params @@ -33,6 +39,7 @@ def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: ) def optimize(self): + """Optimizes population.""" optimized_graphs = self.__standard_opt.optimise(self.objective) optimized_pop = list(map(self.opt_params.golem_adapter.restore, optimized_graphs)) return optimized_pop diff --git a/gefest/tools/optimizers/golem_optimizer/surrogate.py b/gefest/tools/optimizers/golem_optimizer/surrogate.py index 25e60e1c5..cbead9822 100644 --- a/gefest/tools/optimizers/golem_optimizer/surrogate.py +++ b/gefest/tools/optimizers/golem_optimizer/surrogate.py @@ -1,3 +1,5 @@ +from ctypes import Structure + from golem.core.optimisers.meta.surrogate_optimizer import SurrogateEachNgenOptimizer from golem.core.optimisers.objective import Objective @@ -11,6 +13,12 @@ class SurrogateOptimizer(Optimizer): + """Wrapper for GOLEM SurrogateEachNgenOptimizer. + + Provides optimization strategy using both physical simulator and surrogate model. + + """ + def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: super().__init__(opt_params.log_dispatcher, **kwargs) self.opt_params = opt_params @@ -33,7 +41,12 @@ def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: surrogate_each_n_gen=self.opt_params.golem_surrogate_each_n_gen, ) - def optimize(self): + def optimize(self) -> list[Structure]: + """Optimizes population. + + Returns: + list[Structure]: Optimized population. + """ optimized_graphs = self.__surrogate_opt.optimise(self.objective) optimized_pop = list(map(self.opt_params.golem_adapter.restore, optimized_graphs)) return optimized_pop diff --git a/gefest/tools/optimizers/optimizer.py b/gefest/tools/optimizers/optimizer.py index 18eb727d4..06124914f 100644 --- a/gefest/tools/optimizers/optimizer.py +++ b/gefest/tools/optimizers/optimizer.py @@ -4,6 +4,8 @@ class Optimizer(metaclass=ABCMeta): + """Interface for optimizers.""" + def __init__( self, log_dispatcher=None, @@ -17,4 +19,12 @@ def optimize( n_steps: int, **kwargs, ) -> list[Structure]: + """Must implement optimization logic. + + Args: + n_steps (int): Number of optimization steps. + + Returns: + list[Structure]: Optimized population. + """ ... diff --git a/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py b/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py index 518bb27f9..7c7067860 100644 --- a/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py +++ b/gefest/tools/samplers/DL/microfluid/microfluid_sampler.py @@ -4,9 +4,8 @@ import numpy as np import torch -from gefest.core.structure.domain import Domain -from gefest.core.structure.polygon import Point, Polygon -from gefest.core.structure.structure import Structure +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.domain import Domain from gefest.tools.samplers.DL.microfluid.aae import AAE from gefest.tools.samplers.DL.microfluid.backbones import ( Decoder, @@ -64,11 +63,18 @@ def _configurate_sampler(self): self.sampler = aae - def _transform(self, objects, domain): - """ - Transformation from images to polygons using edge detector + def _transform(self, objects, domain) -> list[Structure]: + """Transforms images to polygons using edge detector. + :param objects: (Array) [n_samples x 1 x 128 x 128] :return: List(Structure) + + Args: + objects (_type_): _description_ + domain (_type_): _description_ + + Returns: + _type_: _description_ """ samples = [] diff --git a/gefest/tools/samplers/sampler.py b/gefest/tools/samplers/sampler.py index e69085620..1b9940a79 100644 --- a/gefest/tools/samplers/sampler.py +++ b/gefest/tools/samplers/sampler.py @@ -6,6 +6,8 @@ class Sampler(metaclass=ABCMeta): + """Interface for samplers.""" + def __init__( self, samples_generator: Callable[[Any], Structure], @@ -19,8 +21,24 @@ def __call__( n_samples: int, **kwargs, ) -> list[Structure]: + """Simplifies usage of samplers. + + Args: + n_samples (int): Number of samples to generate. + + Returns: + list[Structure]: Generated samples. + """ return self.sample(n_samples) @abstractmethod def sample(self, n_samples: int) -> list[Structure]: + """Must implement sampling logic. + + Args: + n_samples (int): Number of samples to generate. + + Returns: + list[Structure]: Generated samples. + """ ... diff --git a/gefest/tools/samplers/standard/standard.py b/gefest/tools/samplers/standard/standard.py index eff5d48d6..e0920b793 100644 --- a/gefest/tools/samplers/standard/standard.py +++ b/gefest/tools/samplers/standard/standard.py @@ -11,6 +11,12 @@ class StandardSampler(Sampler): + """Generator of random structures. + + The get_random_structure utility is used for structure generation. + The generated samples satisfy the domain configuration. + """ + def __init__(self, opt_params) -> None: super().__init__( samples_generator=get_random_structure, @@ -22,9 +28,18 @@ def __init__(self, opt_params) -> None: self._pm = BaseParallelDispatcher(opt_params.n_jobs) def __call__(self, n_samples: int) -> list[Structure]: + """Calls sample method.""" return self.sample(n_samples=n_samples) def sample(self, n_samples: int) -> list[Structure]: + """Generates requested number of random samples. + + Args: + n_samples (int): Number of samples to generate. + + Returns: + list[Structure]: Generated samples. + """ random_pop = self._pm.exec_parallel( partial(get_random_structure, domain=self.domain), tuple(range(n_samples + 1)), diff --git a/gefest/tools/tuners/tuner.py b/gefest/tools/tuners/tuner.py index e21e0f154..d8c24b7a6 100644 --- a/gefest/tools/tuners/tuner.py +++ b/gefest/tools/tuners/tuner.py @@ -21,6 +21,8 @@ class TunerType(Enum): + """Enumeration of all GOLEM tuner classes.""" + iopt = IOptTuner optuna = OptunaTuner sequential = SequentialTuner @@ -29,6 +31,7 @@ class TunerType(Enum): class GolemTuner: """Wrap for GOLEM tuners. + Provides interface for tuning stucture points coordinates. For more details about tuners see: https://thegolem.readthedocs.io/en/latest/api/tuning.html @@ -73,6 +76,7 @@ def _get_tuner( } if self.tuner_type == 'optuna': kwargs['objectives_number'] = len(self.objective.metrics) + return getattr(TunerType, self.tuner_type).value(**kwargs) def _generate_search_space( @@ -111,6 +115,7 @@ def tune( """ if isinstance(objects_for_tune, Structure): objects_for_tune = [objects_for_tune] + tuned_objects = [] for struct in objects_for_tune: graph = self.adapter.adapt(struct) @@ -124,8 +129,10 @@ def tune( if isinstance(tuned_structures, Structure): tuned_structures = [tuned_structures] metrics = [tuner.obtained_metric] + for idx_, _ in enumerate(tuned_structures): tuned_structures[idx_].fitness = metrics[idx_] + tuned_objects.extend(tuned_structures) tuned_objects = sorted(tuned_objects, key=lambda x: x.fitness) self.log_dispatcher.log_pop(tuned_objects, 'tuned') diff --git a/gefest/tools/tuners/utils.py b/gefest/tools/tuners/utils.py index 8a5fc606f..a200defc3 100644 --- a/gefest/tools/tuners/utils.py +++ b/gefest/tools/tuners/utils.py @@ -15,6 +15,7 @@ def objective_validation_wrap( validator: Callable, ) -> float: """Applys validation rules to structure. + Used for GOLEM tuner as objective to filter out invalid cases in tuning process. @@ -42,6 +43,7 @@ def average_edge_variance( distrib: Callable, ) -> list[float]: """Generates tuning variance for each point. + Variance is equal to half the average edge length of the polygon. Returns: @@ -55,6 +57,7 @@ def average_edge_variance( raise ValueError( f'Invalin distribution function: {distrib}, only hp.uniform and hp.normal allowed.' ) + geom = domain.geometry variances = [] for poly in structure: @@ -62,4 +65,5 @@ def average_edge_variance( for point in poly: for coord in point.coords: variances.append(get_args(coord, avg)) + return variances diff --git a/setup.cfg b/setup.cfg index 6627a86b7..d54cef9e6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,11 +1,12 @@ [flake8] exclude = .git,.github,docs,__pycache__,env,venv,.venv,.ipynb_checkpoints, - nsga2.py,moead.py,age.py,analytics.py,sa.py,sens_sampler.py + nsga2.py,moead.py,age.py,analytics.py,sa.py,sens_sampler.py, + DL, serialization max-line-length = 100 max-complexity = 10 docstring-convention = google -ignore = D100,D400,C812,VNE001,W503,E203 +ignore = D100,D400,C812,VNE001,W503,E203,D107,D104,D105 per-file-ignores = gefest\tools\optimizers\golem_optimizer\age.py:N803 __init__.py:F401 diff --git a/test/test_crossover.py b/test/test_crossover.py index 457930f75..eddac2732 100644 --- a/test/test_crossover.py +++ b/test/test_crossover.py @@ -1,24 +1,22 @@ -import pytest -from gefest.core.opt.operators.crossovers import ( - panmixis, - polygon_level_crossover , - structure_level_crossover as crossover, -) -import numpy as np -from gefest.core.geometry.domain import Domain from gefest.core.geometry import Point, Polygon, Structure -domain = Domain(allowed_area=[ - [0, 0], - [0, 100], - [100, 100], - [100, 0], - [0, 0], - ]) +from gefest.core.geometry.domain import Domain +from gefest.core.opt.operators.crossovers import structure_level_crossover as crossover + +domain = Domain( + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ] +) geometry = domain.geometry def create_rectangle(x, y, dim=5): - rectangle_points = [(x, y), (x, y+dim), (x+dim, y+dim), (x+dim, y), (x, y)] + """Rectangle generation util.""" + rectangle_points = [(x, y), (x, y + dim), (x + dim, y + dim), (x + dim, y), (x, y)] rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points]) return rectangle_poly @@ -28,41 +26,30 @@ def create_rectangle(x, y, dim=5): def test_crossover_passed(): - - expected_poly_positions = [structure_large.polygons[0].points, structure_small.polygons[1].points] - expected_square = geometry.get_square(structure_large.polygons[0])\ - + geometry.get_square(structure_small.polygons[0]) + """Crossober valid cases.""" + expected_poly_positions = [ + structure_large.polygons[0].points, + structure_small.polygons[1].points, + ] + expected_square = geometry.get_square(structure_large.polygons[0]) + geometry.get_square( + structure_small.polygons[0] + ) condition = False - for i in range(100): + for _ in range(100): new_structure = crossover(structure_large, structure_small, domain)[0] if len(new_structure.polygons) == 2: - observed_square = geometry.get_square(new_structure.polygons[0]) + \ - geometry.get_square(new_structure.polygons[1]) - condition = all([new_structure.polygons[0].points == expected_poly_positions[0], - new_structure.polygons[1].points == expected_poly_positions[1], - observed_square == expected_square]) + observed_square = geometry.get_square(new_structure.polygons[0]) + geometry.get_square( + new_structure.polygons[1] + ) + condition = all( + [ + new_structure.polygons[0].points == expected_poly_positions[0], + new_structure.polygons[1].points == expected_poly_positions[1], + observed_square == expected_square, + ] + ) if condition: break - assert condition - - -# def test_crossover_fail(): -# -# new_structure = crossover(structure_large, structure_small, domain, rate=0.001)[0] -# assert any([new_structure == structure_large, new_structure == structure_small]) -# -# empty_structure = Structure(polygons=[]) -# structure_with_one_poly = Structure(polygons=[create_rectangle(5, 5)]) -# new_structure = crossover(empty_structure, structure_with_one_poly, domain, rate=0.999)[0] -# assert any([new_structure == empty_structure, new_structure == structure_with_one_poly]) - -# def test_crossover_empty_structure(): -# empty_structure = Structure(polygons=[]) -# structure_with_polygons = Structure(polygons=[create_rectangle(5, 5), create_rectangle(5, 15), -# create_rectangle(15, 5, 3), create_rectangle(15, 15, 3)]) -# observed_structure = crossover(empty_structure, structure_with_polygons, domain, rate=0.999)[0] -# -# assert all([len(observed_structure.polygons) > 0, -# len(observed_structure.polygons) <= len(structure_with_polygons.polygons)]) + assert condition diff --git a/test/test_domain.py b/test/test_domain.py index 28ce70f13..2ceddda83 100644 --- a/test/test_domain.py +++ b/test/test_domain.py @@ -6,6 +6,7 @@ class TestDomain: + """Domain class tests collection.""" @pytest.mark.parametrize( ', '.join( [ @@ -47,6 +48,7 @@ def test_domain_init_validity( geometry_is_closed, expectation, ): + """Test doamin init fails on invalid configurations.""" with expectation: domain = Domain( allowed_area=allowed_area, diff --git a/test/test_geometry2D.py b/test/test_geometry2D.py index ed748910d..d51f9b0e4 100755 --- a/test/test_geometry2D.py +++ b/test/test_geometry2D.py @@ -1,9 +1,8 @@ -import pytest import numpy as np +import pytest -from gefest.core.geometry.geometry_2d import Geometry2D from gefest.core.geometry import Point, Polygon, Structure -from gefest.core.algs.geom.validation import self_intersection +from gefest.core.geometry.geometry_2d import Geometry2D geometry = Geometry2D(is_closed=True) # marking length and width for testing polygon @@ -17,12 +16,10 @@ (poly_width, poly_length), (poly_width, 0), ] -rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points] -) +rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points]) triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] -triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points] -) +triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points]) incorrect_points = [ (0, 0), @@ -32,8 +29,7 @@ (-poly_width, -poly_length), (0, 0), ] -incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points] -) +incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points]) # creating an expected rotated polygon for testing rotate_poly() function exp_coords = [ @@ -42,13 +38,11 @@ (poly_length - poly_width / 2, poly_length - poly_width / 2), (poly_length - poly_width / 2, poly_width / 2), ] -exp_rectangle_poly = Polygon(points=[Point(*coords) for coords in exp_coords] -) +exp_rectangle_poly = Polygon(points=[Point(*coords) for coords in exp_coords]) def test_resize_poly(): - """Test for resize_poly function from Geometry2D class""" - + """Test for resize_poly function from Geometry2D class.""" x_scale = 2 y_scale = 3 @@ -67,12 +61,9 @@ def test_resize_poly(): assert np.isclose(observed_difference, expected_difference) -@pytest.mark.parametrize( - "angle, expected_poly", [(90, exp_rectangle_poly), (180, rectangle_poly)] -) +@pytest.mark.parametrize('angle, expected_poly', [(90, exp_rectangle_poly), (180, rectangle_poly)]) def test_rotate_poly(angle, expected_poly): - """Test for rotate_poly function from Geometry2D class""" - + """Test for rotate_poly function from Geometry2D class.""" rotate_poly = geometry.rotate_poly(rectangle_poly, angle=angle) rotated_coords = [tuple(coords.coords) for coords in rotate_poly.points] @@ -84,24 +75,22 @@ def test_rotate_poly(angle, expected_poly): @pytest.mark.parametrize( - "figure, expected_poly", + 'figure, expected_poly', [ (rectangle_poly, poly_width * poly_length), (triangle_poly, poly_width * poly_length / 2), ], ) def test_get_square(figure, expected_poly): - """Test for get_square function from Geometry2D class""" - + """Test for get_square function from Geometry2D class.""" observed_square = geometry.get_square(figure) assert observed_square == expected_poly -@pytest.mark.parametrize("figure", [rectangle_poly, triangle_poly]) +@pytest.mark.parametrize('figure', [rectangle_poly, triangle_poly]) def test_contains_point(figure): - """Test for get_square function from Geometry2D class""" - + """Test for get_square function from Geometry2D class.""" expected_point = Point(1, 3) assert geometry.is_contain_point(figure, expected_point) @@ -110,32 +99,23 @@ def test_contains_point(figure): @pytest.mark.parametrize( - "figure_1, figure_2, expected_point", + 'figure_1, figure_2, expected_point', [(Point(*rectangle_points[3]), rectangle_poly, Point(*rectangle_points[3]))], ) def test_nearest_point(figure_1, figure_2, expected_point): - """Test for nearest_point function from Geometry2D class""" + """Test for nearest_point function from Geometry2D class.""" observed_point = geometry.nearest_point(figure_1, figure_2) assert observed_point.coords == expected_point.coords -def test_get_convex(): - """Test for get_convex function from Geometry2D class""" - poly_to_structure = Structure([incorrect_poly]) - assert self_intersection(poly_to_structure) - - transformed_poly = geometry.get_convex(*poly_to_structure.polygons) - poly_to_structure = Structure([transformed_poly]) - assert not self_intersection(poly_to_structure) - - def test_intersects(): - """Test for intersects function from Geometry2D class""" + """Test for intersects function from Geometry2D class.""" + assert geometry.intersects(Structure([rectangle_poly])) def test_distance(): - """Test for distance function from Geometry2D class""" + """Test for distance function from Geometry2D class.""" dist_1 = geometry.min_distance(rectangle_poly, triangle_poly) assert np.isclose(dist_1, 0) diff --git a/test/test_mutation.py b/test/test_mutation.py index 35acb47f2..ec1fe9aed 100644 --- a/test/test_mutation.py +++ b/test/test_mutation.py @@ -1,56 +1,62 @@ import pytest -from gefest.core.opt.operators.mutations import mutate_structure as mutation -import numpy as np -from gefest.core.geometry.domain import Domain + from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.operators.mutations import add_poly_mutation, drop_poly_mutation +from gefest.core.opt.operators.mutations import mutate_structure as mutation from gefest.core.opt.operators.mutations import ( - add_point_mutation, - drop_point_mutation, - drop_poly_mutation, - add_poly_mutation, - pos_change_point_mutation, resize_poly_mutation, rotate_poly_mutation, ) + def create_rectangle(x, y, dim=5): - rectangle_points = [(x, y), (x, y+dim), (x+dim, y+dim), (x+dim, y), (x, y)] + """Rectangle generator util.""" + rectangle_points = [(x, y), (x, y + dim), (x + dim, y + dim), (x + dim, y), (x, y)] rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points]) return rectangle_poly -domain = Domain(min_poly_num=1, - max_poly_num=3, - allowed_area=[ - [0, 0], - [0, 100], - [100, 100], - [100, 0], - [0, 0], - ] - ) + + +domain = Domain( + min_poly_num=1, + max_poly_num=3, + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ], +) geometry = domain.geometry -structure = Structure([create_rectangle(5, 5), create_rectangle(5, 15),create_rectangle(15, 5)]) +structure = Structure([create_rectangle(5, 5), create_rectangle(5, 15), create_rectangle(15, 5)]) mut_operations = [ drop_poly_mutation, add_poly_mutation, ] -mutation_each_prob = [ 0.5, 0.5] +mutation_each_prob = [0.5, 0.5] + def test_mutation_del_add_poly(): + """Test add and delete polygon mutations.""" count_del_poly = 0 count_add_poly = 0 condition = False start_lenghs = len(structure.polygons) - for i in range(100): - mutated_structure = mutation(structure, - domain, - operations=mut_operations, - operation_chance= 0.9999, - operations_probs=mutation_each_prob) + for _ in range(100): + mutated_structure = mutation( + structure, + domain, + operations=mut_operations, + operation_chance=0.9999, + operations_probs=mutation_each_prob, + ) if len(mutated_structure.polygons) < start_lenghs: count_del_poly += 1 elif len(mutated_structure.polygons) > 2: count_add_poly += 1 + condition = all( [ count_del_poly > 0, @@ -59,15 +65,19 @@ def test_mutation_del_add_poly(): ) if condition: break + assert condition def test_mutation_not_passed(): - mutated_structure = mutation(structure, - domain, - operations=mut_operations, - operation_chance=0.001, - operations_probs=mutation_each_prob) + """Tests mutations fails.""" + mutated_structure = mutation( + structure, + domain, + operations=mut_operations, + operation_chance=0.001, + operations_probs=mutation_each_prob, + ) mutated_points = mutated_structure.polygons[0].points initial_points = structure.polygons[0].points @@ -78,20 +88,25 @@ def test_mutation_not_passed(): @pytest.mark.parametrize( - "mut_oper,operat_prob, expected_result", [([rotate_poly_mutation],[1],0), ([resize_poly_mutation],[1],0)]) + 'mut_oper,operat_prob, expected_result', + [([rotate_poly_mutation], [1], 0), ([resize_poly_mutation], [1], 0)], +) def test_mutation_rotate_resize_poly(mut_oper, operat_prob, expected_result): + """Tests rotate poly operation.""" count_rotated_poly = expected_result count_resize_poly = expected_result - for i in range(10): - mutated_structure = mutation(structure, - domain, - operations=mut_oper, - operation_chance= 0.9999, - operations_probs=operat_prob) + for _ in range(10): + mutated_structure = mutation( + structure, + domain, + operations=mut_oper, + operation_chance=0.9999, + operations_probs=operat_prob, + ) mutated_square = [ - round(geometry.get_square(poly),2) for poly in mutated_structure.polygons + round(geometry.get_square(poly), 2) for poly in mutated_structure.polygons ] - equivalent_points = [s==m for s,m in zip(structure.polygons,mutated_structure.polygons)] + equivalent_points = [s == m for s, m in zip(structure.polygons, mutated_structure.polygons)] initial_square = [geometry.get_square(poly) for poly in structure.polygons] compared_squares = [] @@ -99,12 +114,15 @@ def test_mutation_rotate_resize_poly(mut_oper, operat_prob, expected_result): for idx in range(min_numb_polys): compared_squares.append(initial_square[idx] == mutated_square[idx]) + for ind in range(min_numb_polys): if not equivalent_points[ind] and compared_squares[ind]: count_rotated_poly += 1 elif not compared_squares[ind] and not equivalent_points[ind]: count_resize_poly += 1 - if mut_oper==[rotate_poly_mutation]: + + if mut_oper == [rotate_poly_mutation]: assert count_rotated_poly > expected_result - if mut_oper==[resize_poly_mutation]: + + if mut_oper == [resize_poly_mutation]: assert count_resize_poly > expected_result From 7fe46192e1d11bd4a99badab1d0102538be3f2f0 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 9 Nov 2023 01:38:02 +0300 Subject: [PATCH 41/66] minor test fix --- test/test_geometry2D.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/test_geometry2D.py b/test/test_geometry2D.py index d51f9b0e4..fd6e661c9 100755 --- a/test/test_geometry2D.py +++ b/test/test_geometry2D.py @@ -111,7 +111,6 @@ def test_nearest_point(figure_1, figure_2, expected_point): def test_intersects(): """Test for intersects function from Geometry2D class.""" - assert geometry.intersects(Structure([rectangle_poly])) From 95727b689756e303eca405c24f46376bf339eec8 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 9 Nov 2023 11:57:52 +0300 Subject: [PATCH 42/66] upd py version for package & git actions --- .github/workflows/unit-build.yml | 2 +- setup.py | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/unit-build.yml b/.github/workflows/unit-build.yml index cd9d11652..6c391f14f 100644 --- a/.github/workflows/unit-build.yml +++ b/.github/workflows/unit-build.yml @@ -13,7 +13,7 @@ jobs: timeout-minutes: 5 strategy: matrix: - python-version: [ 3.8, 3.9] + python-version: [ 3.9, 3.10 ] steps: - uses: actions/checkout@v2 diff --git a/setup.py b/setup.py index 00f3d7070..ff48bc604 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ SHORT_DESCRIPTION = 'The toolbox for the generative design of physical objects' README = Path(HERE, 'README.rst').read_text() URL = 'https://github.com/ITMO-NSS-team/GEFEST' -REQUIRES_PYTHON = '>=3.7' +REQUIRES_PYTHON = '>=3.9' LICENSE = 'BSD 3-Clause' @@ -47,8 +47,7 @@ def _get_requirements(req_name: str): install_requires=_get_requirements('requirements.txt'), classifiers=[ 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9' + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', ], ) From 71189f4579e3e782f41ec2da8ae2bfc13941b207 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 9 Nov 2023 12:00:17 +0300 Subject: [PATCH 43/66] minor git action syntax fix --- .github/workflows/unit-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit-build.yml b/.github/workflows/unit-build.yml index 6c391f14f..7bc0f828e 100644 --- a/.github/workflows/unit-build.yml +++ b/.github/workflows/unit-build.yml @@ -13,7 +13,7 @@ jobs: timeout-minutes: 5 strategy: matrix: - python-version: [ 3.9, 3.10 ] + python-version: [ "3.9", "3.10" ] steps: - uses: actions/checkout@v2 From 8d7ecbc56e8125e4ea8e9c2fb5aa1b0af0abe8c9 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 10 Nov 2023 21:56:28 +0300 Subject: [PATCH 44/66] update docs, add synthetic cases, add simple experimets runner, fix typehints circular imports, minor fixes --- cases/main_conf.py | 18 -- .../circle/configuration/circle_domain.py | 38 --- .../circle/configuration/circle_estimator.py | 46 --- .../circle/configuration/circle_optimizer.py | 27 -- .../circle/configuration/circle_sampler.py | 19 -- cases/synthetic/circle/main.py | 70 ----- cases/synthetic/circle/multi_objective.py | 115 +++++++ cases/synthetic/circle/single_objective.py | 113 +++++++ cases/synthetic/intersect_figs/__init__.py | 0 .../intersect_figs/configuration/__init__.py | 0 .../intersect_figs/configuration/estimator.py | 61 ---- cases/synthetic/intersect_figs/main.py | 65 ---- cases/synthetic/line/__init__.py | 0 .../synthetic/line/configuration/__init__.py | 0 .../line/configuration/line_domain.py | 38 --- .../line/configuration/line_estimator.py | 36 --- .../line/configuration/line_optimizer.py | 27 -- .../line/configuration/line_sampler.py | 19 -- cases/synthetic/line/main.py | 58 ---- cases/synthetic/multiobj/__init__.py | 0 .../multiobj/configuration/__init__.py | 0 .../multiobj/configuration/multiobj_domain.py | 38 --- .../configuration/multiobj_estimator.py | 44 --- .../configuration/multiobj_optimizer.py | 60 ---- cases/synthetic/multiobj/main.py | 60 ---- docs/source/api/configuration.rst | 39 +++ docs/source/api/geometry/datastructs.rst | 27 ++ .../{components => api/geometry}/geometry.rst | 8 +- docs/source/api/geometry/index.rst | 12 + docs/source/api/index.rst | 16 + docs/source/api/optimization/adapters.rst | 29 ++ docs/source/api/optimization/index.rst | 14 + docs/source/api/optimization/objective.rst | 17 + docs/source/api/optimization/operators.rst | 25 ++ .../api/optimization/postprocessing.rst | 35 +++ docs/source/api/optimization/strategies.rst | 24 ++ docs/source/api/tools/estimators.rst | 34 ++ docs/source/api/tools/index.rst | 14 + docs/source/api/tools/optimizers.rst | 40 +++ docs/source/api/tools/samplers.rst | 16 + docs/source/api/tools/tuners.rst | 15 + docs/source/api/utils.rst | 23 ++ docs/source/api/visualisation.rst | 8 + docs/source/components/algorithm.rst | 17 - docs/source/components/index.rst | 15 - docs/source/components/optimization.rst | 36 --- docs/source/components/structure.rst | 31 -- docs/source/components/visualization.rst | 6 - docs/source/conf.py | 1 + docs/source/contribution.rst | 18 ++ docs/source/gefest/quickstart.rst | 293 +++++++++++------- docs/source/index.rst | 1 + docs/tutorials/sample.rst | 2 +- gefest/core/configs/optimization_params.py | 108 ++++++- gefest/core/configs/tuner_params.py | 24 ++ gefest/core/configs/utils.py | 51 ++- gefest/core/geometry/geometry_2d.py | 4 +- gefest/core/geometry/utils.py | 65 ++-- .../core/opt/adapters}/__init__.py | 0 .../opt/adapters/configuration_mapping.py | 8 +- gefest/core/opt/objective/objective.py | 6 +- gefest/core/opt/operators/crossovers.py | 8 +- gefest/core/opt/postproc/resolve_errors.py | 4 - gefest/core/opt/postproc/rules_base.py | 2 +- gefest/core/opt/strategies/crossover.py | 8 +- gefest/core/opt/strategies/mutation.py | 8 +- gefest/core/structure/__init__.py | 0 gefest/core/structure/prohibited.py | 48 --- gefest/core/utils/parallel_manager.py | 2 +- gefest/core/viz/struct_vizualizer.py | 5 +- gefest/tools/optimizers/SPEA2/SPEA2.py | 2 +- gefest/tools/optimizers/__init__.py | 15 + .../optimizers/golem_optimizer/standard.py | 8 +- .../optimizers/golem_optimizer/surrogate.py | 10 +- gefest/tools/run_experiment.py | 34 ++ gefest/tools/samplers/standard/standard.py | 9 +- gefest/tools/tuners/utils.py | 2 +- refactored.py | 23 -- requirements.txt | 6 +- run_experiment.py | 37 +++ 80 files changed, 1196 insertions(+), 1069 deletions(-) delete mode 100644 cases/main_conf.py delete mode 100644 cases/synthetic/circle/configuration/circle_domain.py delete mode 100644 cases/synthetic/circle/configuration/circle_estimator.py delete mode 100644 cases/synthetic/circle/configuration/circle_optimizer.py delete mode 100644 cases/synthetic/circle/configuration/circle_sampler.py delete mode 100644 cases/synthetic/circle/main.py create mode 100644 cases/synthetic/circle/multi_objective.py create mode 100644 cases/synthetic/circle/single_objective.py delete mode 100644 cases/synthetic/intersect_figs/__init__.py delete mode 100644 cases/synthetic/intersect_figs/configuration/__init__.py delete mode 100644 cases/synthetic/intersect_figs/configuration/estimator.py delete mode 100644 cases/synthetic/intersect_figs/main.py delete mode 100644 cases/synthetic/line/__init__.py delete mode 100644 cases/synthetic/line/configuration/__init__.py delete mode 100644 cases/synthetic/line/configuration/line_domain.py delete mode 100644 cases/synthetic/line/configuration/line_estimator.py delete mode 100644 cases/synthetic/line/configuration/line_optimizer.py delete mode 100644 cases/synthetic/line/configuration/line_sampler.py delete mode 100644 cases/synthetic/line/main.py delete mode 100644 cases/synthetic/multiobj/__init__.py delete mode 100644 cases/synthetic/multiobj/configuration/__init__.py delete mode 100644 cases/synthetic/multiobj/configuration/multiobj_domain.py delete mode 100644 cases/synthetic/multiobj/configuration/multiobj_estimator.py delete mode 100644 cases/synthetic/multiobj/configuration/multiobj_optimizer.py delete mode 100644 cases/synthetic/multiobj/main.py create mode 100644 docs/source/api/configuration.rst create mode 100644 docs/source/api/geometry/datastructs.rst rename docs/source/{components => api/geometry}/geometry.rst (85%) create mode 100644 docs/source/api/geometry/index.rst create mode 100644 docs/source/api/index.rst create mode 100644 docs/source/api/optimization/adapters.rst create mode 100644 docs/source/api/optimization/index.rst create mode 100644 docs/source/api/optimization/objective.rst create mode 100644 docs/source/api/optimization/operators.rst create mode 100644 docs/source/api/optimization/postprocessing.rst create mode 100644 docs/source/api/optimization/strategies.rst create mode 100644 docs/source/api/tools/estimators.rst create mode 100644 docs/source/api/tools/index.rst create mode 100644 docs/source/api/tools/optimizers.rst create mode 100644 docs/source/api/tools/samplers.rst create mode 100644 docs/source/api/tools/tuners.rst create mode 100644 docs/source/api/utils.rst create mode 100644 docs/source/api/visualisation.rst delete mode 100644 docs/source/components/algorithm.rst delete mode 100644 docs/source/components/index.rst delete mode 100644 docs/source/components/optimization.rst delete mode 100644 docs/source/components/structure.rst delete mode 100644 docs/source/components/visualization.rst rename {cases/synthetic/circle/configuration => gefest/core/opt/adapters}/__init__.py (100%) delete mode 100755 gefest/core/structure/__init__.py delete mode 100644 gefest/core/structure/prohibited.py create mode 100644 gefest/tools/run_experiment.py delete mode 100644 refactored.py create mode 100644 run_experiment.py diff --git a/cases/main_conf.py b/cases/main_conf.py deleted file mode 100644 index 0cf589a91..000000000 --- a/cases/main_conf.py +++ /dev/null @@ -1,18 +0,0 @@ -import argparse -from gefest.core.utils import project_root -root = project_root() -file = 'optimized.pkl' - -""" -General configurations for all cases. -Some specific ones should be described in corresponding file -""" -parser = argparse.ArgumentParser() -parser.add_argument("--pop_size", type=int, default=100, help='number of individs in population') -parser.add_argument("--n_steps", type=int, default=300, help='number of generative design steps') -parser.add_argument('--n_polys', type=int, default=1, help='maximum number of polygons in structure') -parser.add_argument('--n_points', type=int, default=10, help='maximum number of points in polygon') -parser.add_argument('--c_rate', type=float, default=0.1, help='crossover rate') -parser.add_argument('--m_rate', type=float, default=0.9, help='mutation rate') -parser.add_argument('--is_closed', type=bool, default=True, help='type of polygon') -opt_params = parser.parse_args() diff --git a/cases/synthetic/circle/configuration/circle_domain.py b/cases/synthetic/circle/configuration/circle_domain.py deleted file mode 100644 index c5eb81204..000000000 --- a/cases/synthetic/circle/configuration/circle_domain.py +++ /dev/null @@ -1,38 +0,0 @@ -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain - -X_domain_max = 300 -X_domain_min = 0 - -Y_domain_max = 300 -Y_domain_min = 0 - - -def configurate_domain(poly_num: int, - points_num: int, - is_closed: bool): - # ------------ - # GEFEST domain based on user-defined configuration_de - # ------------ - if is_closed: - min_points_num = 3 - else: - min_points_num = 2 - - geometry = Geometry2D(is_closed=is_closed) - domain = Domain(allowed_area=[(X_domain_min, Y_domain_min), - (X_domain_min, Y_domain_max), - (X_domain_max, Y_domain_max), - (X_domain_max, Y_domain_min), - (X_domain_min, Y_domain_min)], - geometry=geometry, - max_poly_num=poly_num, - min_poly_num=1, - max_points_num=points_num, - min_points_num=min_points_num, - is_closed=is_closed) - - task_setup = Setup(domain=domain) - - return domain, task_setup diff --git a/cases/synthetic/circle/configuration/circle_estimator.py b/cases/synthetic/circle/configuration/circle_estimator.py deleted file mode 100644 index 5ace96bed..000000000 --- a/cases/synthetic/circle/configuration/circle_estimator.py +++ /dev/null @@ -1,46 +0,0 @@ -import numpy as np -from types import SimpleNamespace - -from gefest.core.structure.structure import Structure -from gefest.tools.estimators.estimator import Estimator - - -def configurate_estimator(domain): - # ------------ - # User-defined estimator - # it should be created as object with .estimate() method - # ------------ - # Area to length ratio, circle have maximum among all figures (that`s why it`s our optima) - def area_length_ratio(poly): - area = domain.geometry.get_square(poly) - length = domain.geometry.get_length(poly) - - if area == 0: - return None - - ratio = 1 - 4 * np.pi * area / length ** 2 - - return ratio - - # Adding fine for structures containing more (less) than three polygons - def multi_loss(struct: Structure): - num = 3 - num_polys = len(struct.polygons) - loss = 0 - for poly in struct.polygons: - length = area_length_ratio(poly) - loss += length - L = loss + 20 * abs(num_polys - num) - - return L - - estimator = SimpleNamespace() - estimator.estimate = multi_loss - - # ------------ - # GEFEST estimator - # ------------ - - estimator = Estimator(estimator=estimator) - - return estimator diff --git a/cases/synthetic/circle/configuration/circle_optimizer.py b/cases/synthetic/circle/configuration/circle_optimizer.py deleted file mode 100644 index cf38cde9e..000000000 --- a/cases/synthetic/circle/configuration/circle_optimizer.py +++ /dev/null @@ -1,27 +0,0 @@ -from gefest.tools.optimizers.GA.GA import GA -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.optimizer import Optimizer - - -def configurate_optimizer(pop_size: int, - crossover_rate: int, - mutation_rate: int, - task_setup): - # ------------ - # User-defined optimizer - # it should be created as object with .step() method - # ------------ - params = GA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - - ga_optimizer = GA(params=params, - evolutionary_operators=default_operators(), - task_setup=task_setup) - # ------------ - # GEFEST optimizer - # ------------ - optimizer = Optimizer(optimizer=ga_optimizer) - - return optimizer diff --git a/cases/synthetic/circle/configuration/circle_sampler.py b/cases/synthetic/circle/configuration/circle_sampler.py deleted file mode 100644 index 79fd24d72..000000000 --- a/cases/synthetic/circle/configuration/circle_sampler.py +++ /dev/null @@ -1,19 +0,0 @@ -from gefest.tools.samplers.standard.standard import StandardSampler -from gefest.tools.samplers.sampler import Sampler - - -def configurate_sampler(domain): - # ------------ - # User-defined sampler - # it should be created as object with .sample() method - # ------------ - standard_sampler = StandardSampler() - - # ------------ - # GEFEST sampler, - # it consist of user defined sampler and configurated domain - # ------------ - sampler = Sampler(sampler=standard_sampler, - domain=domain) - - return sampler \ No newline at end of file diff --git a/cases/synthetic/circle/main.py b/cases/synthetic/circle/main.py deleted file mode 100644 index 11b6454ea..000000000 --- a/cases/synthetic/circle/main.py +++ /dev/null @@ -1,70 +0,0 @@ -import timeit -import pickle -import matplotlib.pyplot as plt - -from gefest.core.geometry.geometry_2d import create_circle -from gefest.core.structure.structure import Structure -from gefest.core.viz.struct_vizualizer import StructVizualizer - -from gefest.core.opt.gen_design import design -from cases.synthetic.circle.configuration import circle_estimator, circle_sampler, circle_optimizer, circle_domain -from cases.main_conf import opt_params - -opt_params.is_closed = True - -# ------------ -# GEFEST tools configuration -# ------------ - -domain, task_setup = circle_domain.configurate_domain(poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed) - -estimator = circle_estimator.configurate_estimator(domain=domain) -sampler = circle_sampler.configurate_sampler(domain=domain) -optimizer = circle_optimizer.configurate_optimizer(pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup) - -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design(n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer) -spend_time = timeit.default_timer() - start - -# ------------ -# Visualization optimized structure -# ------------ - -with open(f'HistoryFiles/performance_{opt_params.n_steps - 1}.pickle', 'rb') as f: - performance = pickle.load(f) - -with open(f'HistoryFiles/population_{opt_params.n_steps - 1}.pickle', 'rb') as f: - population = pickle.load(f) - -idx_of_best = performance.index(min(performance)) - -plt.figure(figsize=(7, 7)) -visualiser = StructVizualizer(task_setup.domain) - -info = {'spend_time': spend_time, - 'fitness': performance[idx_of_best], - 'type': 'prediction'} -visualiser.plot_structure(population[idx_of_best], info) - -# We also add global optima for comparison with optimized solutions -true_circle = [Structure([create_circle(population[idx_of_best]), create_circle(population[idx_of_best]), - create_circle(population[idx_of_best])])] -info = {'spend_time': spend_time, - 'fitness': estimator.estimate(true_circle)[0], - 'type': 'true'} -visualiser.plot_structure(true_circle[0], info) - -plt.show() diff --git a/cases/synthetic/circle/multi_objective.py b/cases/synthetic/circle/multi_objective.py new file mode 100644 index 000000000..6e47744f1 --- /dev/null +++ b/cases/synthetic/circle/multi_objective.py @@ -0,0 +1,115 @@ +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.estimator import Estimator + + +# # # Metrics # # # +class Area(Objective): + """Figure area.""" + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure) -> float: + area = 0 + for poly in ind: + area += self.domain.geometry.get_square(poly) + + area = abs(area - (50 * 50)) + return area + + +class Perimeter(Objective): + """Figure perimeter opposit ratio.""" + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure) -> float: + perimeter = 0 + for poly in ind: + perimeter += 1 / self.domain.geometry.get_length(poly) + + return perimeter + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ], + name='main', + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + +opt_params = OptimizationParams( + optimizer='golem_optimizer', + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=50, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + Area(domain_cfg), + Perimeter(domain_cfg), + ], +) diff --git a/cases/synthetic/circle/single_objective.py b/cases/synthetic/circle/single_objective.py new file mode 100644 index 000000000..887e82b42 --- /dev/null +++ b/cases/synthetic/circle/single_objective.py @@ -0,0 +1,113 @@ +import numpy as np + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.estimator import Estimator + + +# # # Metrics # # # +class AreaLengthRatio(Objective): + """Area length ratio metric.""" + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure) -> float: + + num = 3 + num_polys = len(ind.polygons) + loss = 0 + for poly in ind.polygons: + area = self.domain.geometry.get_square(poly) + length = self.domain.geometry.get_length(poly) + if area == 0: + ratio = None + else: + ratio = 1 - 4 * np.pi * area / length ** 2 + + loss += ratio + + loss = loss + 20 * abs(num_polys - num) + return loss + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 300], + [300, 300], + [300, 0], + [0, 0], + ], + name='main', + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + +opt_params = OptimizationParams( + optimizer='gefest_ga', + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=50, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + AreaLengthRatio(domain_cfg), + ], +) diff --git a/cases/synthetic/intersect_figs/__init__.py b/cases/synthetic/intersect_figs/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/synthetic/intersect_figs/configuration/__init__.py b/cases/synthetic/intersect_figs/configuration/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/synthetic/intersect_figs/configuration/estimator.py b/cases/synthetic/intersect_figs/configuration/estimator.py deleted file mode 100644 index cbdbde088..000000000 --- a/cases/synthetic/intersect_figs/configuration/estimator.py +++ /dev/null @@ -1,61 +0,0 @@ -import numpy as np -from types import SimpleNamespace -from uuid import uuid4 - -from gefest.core.structure.structure import Structure -from gefest.tools.estimators.estimator import Estimator -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.structure.polygon import Polygon -from gefest.core.structure.point import Point - - -def create_internal() -> 'Polygon': - X = [100, 100, 120, 120, 100] - Y = [100, 120, 120, 100, 100] - - struct = Polygon(polygon_id=str(uuid4()), - points=[(Point(x, y)) for x, y in zip(X, Y)]) - - return struct - - -true = create_internal() -true_struct = Structure([true]) - - -def configurate_estimator(domain): - # ------------ - # User-defined estimator - # it should be created as object with .estimate() method - # ------------ - - def multi_loss(struct: Structure): - if len(struct.polygons) != 1: - return 1000 - - poly_pred = Geometry2D()._poly_to_geom(struct.polygons[0]) - poly_true = Geometry2D()._poly_to_geom(true) - - if not poly_true.intersects(poly_pred): - return 1000 - if poly_pred.length < poly_true.length / 1.5: - return 1000 - - d1 = poly_pred.difference(poly_true).length - d2 = poly_true.difference(poly_pred).length - - if d1 < d2: - return d2 - else: - return d1 - - estimator = SimpleNamespace() - estimator.estimate = multi_loss - - # ------------ - # GEFEST estimator - # ------------ - - estimator = Estimator(estimator=estimator) - - return estimator diff --git a/cases/synthetic/intersect_figs/main.py b/cases/synthetic/intersect_figs/main.py deleted file mode 100644 index 5d203f50b..000000000 --- a/cases/synthetic/intersect_figs/main.py +++ /dev/null @@ -1,65 +0,0 @@ -import timeit -import pickle -import matplotlib.pyplot as plt - -from gefest.core.viz.struct_vizualizer import StructVizualizer - -from gefest.core.opt.gen_design import design -from cases.synthetic.circle.configuration import circle_sampler, circle_optimizer, circle_domain -from configuration import estimator as circle_estimator -from configuration.estimator import true_struct -from cases.main_conf import opt_params - -# ------------ -# GEFEST tools configuration_de -# ------------ - -domain, task_setup = circle_domain.configurate_domain(poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed) - -estimator = circle_estimator.configurate_estimator(domain=domain) -sampler = circle_sampler.configurate_sampler(domain=domain) -optimizer = circle_optimizer.configurate_optimizer(pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup) - -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design(n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer) -spend_time = timeit.default_timer() - start - -# ------------ -# Visualization optimized structure -# ------------ - -with open(f'HistoryFiles/performance_{opt_params.n_steps - 1}.pickle', 'rb') as f: - performance = pickle.load(f) - -with open(f'HistoryFiles/population_{opt_params.n_steps - 1}.pickle', 'rb') as f: - population = pickle.load(f) - -idx_of_best = performance.index(min(performance)) - -visualiser = StructVizualizer(task_setup.domain) -plt.figure(figsize=(7, 7)) - -info = {'spend_time': round(spend_time, 3), - 'fitness': round(performance[idx_of_best], 3), - 'type': 'prediction'} -visualiser.plot_structure(population[idx_of_best], info) - -info = {'spend_time': round(spend_time, 3), - 'fitness': 0, - 'type': 'true'} -visualiser.plot_structure(true_struct, info) - -plt.show() \ No newline at end of file diff --git a/cases/synthetic/line/__init__.py b/cases/synthetic/line/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/synthetic/line/configuration/__init__.py b/cases/synthetic/line/configuration/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/synthetic/line/configuration/line_domain.py b/cases/synthetic/line/configuration/line_domain.py deleted file mode 100644 index c5eb81204..000000000 --- a/cases/synthetic/line/configuration/line_domain.py +++ /dev/null @@ -1,38 +0,0 @@ -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain - -X_domain_max = 300 -X_domain_min = 0 - -Y_domain_max = 300 -Y_domain_min = 0 - - -def configurate_domain(poly_num: int, - points_num: int, - is_closed: bool): - # ------------ - # GEFEST domain based on user-defined configuration_de - # ------------ - if is_closed: - min_points_num = 3 - else: - min_points_num = 2 - - geometry = Geometry2D(is_closed=is_closed) - domain = Domain(allowed_area=[(X_domain_min, Y_domain_min), - (X_domain_min, Y_domain_max), - (X_domain_max, Y_domain_max), - (X_domain_max, Y_domain_min), - (X_domain_min, Y_domain_min)], - geometry=geometry, - max_poly_num=poly_num, - min_poly_num=1, - max_points_num=points_num, - min_points_num=min_points_num, - is_closed=is_closed) - - task_setup = Setup(domain=domain) - - return domain, task_setup diff --git a/cases/synthetic/line/configuration/line_estimator.py b/cases/synthetic/line/configuration/line_estimator.py deleted file mode 100644 index e8d8fe19f..000000000 --- a/cases/synthetic/line/configuration/line_estimator.py +++ /dev/null @@ -1,36 +0,0 @@ -import numpy as np -from types import SimpleNamespace - -from gefest.core.structure.structure import Structure -from gefest.tools.estimators.estimator import Estimator - - -def configurate_estimator(domain): - # ------------ - # User-defined estimator - # it should be created as object with .estimate() method - # ------------ - def len_num_ration(struct: Structure): - L = [] - p = [] - for poly in struct.polygons: - L.append(domain.geometry.get_length(poly)) - p.append(len(poly.points)) - length = sum(L) - num_poly = len(struct.polygons) - num_points = sum(p) - - ratio = abs(length - 300) + 100 * abs(num_points - 20) + 100 * abs(num_poly - 3) - - return ratio - - estimator = SimpleNamespace() - estimator.estimate = len_num_ration - - # ------------ - # GEFEST estimator - # ------------ - - estimator = Estimator(estimator=estimator) - - return estimator diff --git a/cases/synthetic/line/configuration/line_optimizer.py b/cases/synthetic/line/configuration/line_optimizer.py deleted file mode 100644 index cf38cde9e..000000000 --- a/cases/synthetic/line/configuration/line_optimizer.py +++ /dev/null @@ -1,27 +0,0 @@ -from gefest.tools.optimizers.GA.GA import GA -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.optimizer import Optimizer - - -def configurate_optimizer(pop_size: int, - crossover_rate: int, - mutation_rate: int, - task_setup): - # ------------ - # User-defined optimizer - # it should be created as object with .step() method - # ------------ - params = GA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - - ga_optimizer = GA(params=params, - evolutionary_operators=default_operators(), - task_setup=task_setup) - # ------------ - # GEFEST optimizer - # ------------ - optimizer = Optimizer(optimizer=ga_optimizer) - - return optimizer diff --git a/cases/synthetic/line/configuration/line_sampler.py b/cases/synthetic/line/configuration/line_sampler.py deleted file mode 100644 index 687b2402f..000000000 --- a/cases/synthetic/line/configuration/line_sampler.py +++ /dev/null @@ -1,19 +0,0 @@ -from gefest.tools.samplers.standard.standard import StandardSampler -from gefest.tools.samplers.sampler import Sampler - - -def configurate_sampler(domain): - # ------------ - # User-defined sampler - # it should be created as object with .sample() method - # ------------ - standard_sampler = StandardSampler() - - # ------------ - # GEFEST sampler, - # it consist of user defined sampler and configurated domain - # ------------ - sampler = Sampler(sampler=standard_sampler, - domain=domain) - - return sampler diff --git a/cases/synthetic/line/main.py b/cases/synthetic/line/main.py deleted file mode 100644 index 30880760c..000000000 --- a/cases/synthetic/line/main.py +++ /dev/null @@ -1,58 +0,0 @@ -import timeit -import pickle -import matplotlib.pyplot as plt - -from gefest.core.viz.struct_vizualizer import StructVizualizer - -from gefest.core.opt.gen_design import design -from cases.synthetic.line.configuration import line_estimator, line_sampler, line_optimizer, line_domain -from cases.main_conf import opt_params - -# ------------ -# GEFEST tools configuration_de -# ------------ - -domain, task_setup = line_domain.configurate_domain(poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed) - -estimator = line_estimator.configurate_estimator(domain=domain) -sampler = line_sampler.configurate_sampler(domain=domain) -optimizer = line_optimizer.configurate_optimizer(pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup) - -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design(n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer) -spend_time = timeit.default_timer() - start - -# ------------ -# Visualization optimized structure -# ------------ - -with open(f'HistoryFiles/performance_{opt_params.n_steps - 1}.pickle', 'rb') as f: - performance = pickle.load(f) - -with open(f'HistoryFiles/population_{opt_params.n_steps - 1}.pickle', 'rb') as f: - population = pickle.load(f) - -idx_of_best = performance.index(min(performance)) - -visualiser = StructVizualizer(task_setup.domain) -plt.figure(figsize=(7, 7)) - -info = {'spend_time': spend_time, - 'fitness': performance[idx_of_best], - 'type': 'prediction'} -visualiser.plot_structure(population[idx_of_best], info) - -plt.show() diff --git a/cases/synthetic/multiobj/__init__.py b/cases/synthetic/multiobj/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/synthetic/multiobj/configuration/__init__.py b/cases/synthetic/multiobj/configuration/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/synthetic/multiobj/configuration/multiobj_domain.py b/cases/synthetic/multiobj/configuration/multiobj_domain.py deleted file mode 100644 index 6ca809597..000000000 --- a/cases/synthetic/multiobj/configuration/multiobj_domain.py +++ /dev/null @@ -1,38 +0,0 @@ -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain - -X_domain_max = 300 -X_domain_min = 0 - -Y_domain_max = 300 -Y_domain_min = 0 - - -def configurate_domain(poly_num: int, - points_num: int, - is_closed: bool): - # ------------ - # GEFEST domain based on user-defined configuration_de - # ------------ - if is_closed: - min_points_num = 3 - else: - min_points_num = 2 - - geometry = Geometry2D(is_closed=is_closed) - domain = Domain(allowed_area=[(X_domain_min, Y_domain_min), - (X_domain_min, Y_domain_max), - (X_domain_max, Y_domain_max), - (X_domain_max, Y_domain_min), - (X_domain_min, Y_domain_min)], - geometry=geometry, - max_poly_num=poly_num, - min_poly_num=1, - max_points_num=points_num, - min_points_num=min_points_num, - is_closed=is_closed) - - task_setup = Setup(domain=domain) - - return domain, task_setup \ No newline at end of file diff --git a/cases/synthetic/multiobj/configuration/multiobj_estimator.py b/cases/synthetic/multiobj/configuration/multiobj_estimator.py deleted file mode 100644 index a933349e3..000000000 --- a/cases/synthetic/multiobj/configuration/multiobj_estimator.py +++ /dev/null @@ -1,44 +0,0 @@ -from shapely.geometry import Polygon, Point -from types import SimpleNamespace - -from gefest.core.structure.structure import Structure -from gefest.tools.estimators.estimator import Estimator -from gefest.core.structure.point import Point - -target = Point(150, 150) - - -def configurate_estimator(domain): - # ------------ - # User-defined estimator - # it should be created as object with .estimate() method - # ------------ - def len_num_ratio(struct: Structure): - if len(struct.polygons) > 1 or len(struct.polygons[0].points) < 3: - return [100000, 100000] - else: - poly = struct.polygons[0] - - l_dist = domain.geometry.min_distance(poly, target) - length = domain.geometry.get_length(poly) - - is_cont = domain.geometry.is_contain_point(poly=poly, - point=target) - - if not is_cont: - length += 10500 - - objective = [length, l_dist] - - return objective - - estimator = SimpleNamespace() - estimator.estimate = len_num_ratio - - # ------------ - # GEFEST estimator - # ------------ - - estimator = Estimator(estimator=estimator) - - return estimator diff --git a/cases/synthetic/multiobj/configuration/multiobj_optimizer.py b/cases/synthetic/multiobj/configuration/multiobj_optimizer.py deleted file mode 100644 index 95690ba5c..000000000 --- a/cases/synthetic/multiobj/configuration/multiobj_optimizer.py +++ /dev/null @@ -1,60 +0,0 @@ -from functools import partial - -from golem.core.optimisers.optimization_parameters import GraphRequirements -from golem.core.optimisers.genetic.gp_params import GPAlgorithmParameters -from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum -from golem.core.optimisers.genetic.operators.regularization import RegularizationTypesEnum -from golem.core.optimisers.optimizer import GraphGenerationParams -from golem.core.optimisers.objective import Objective - -from gefest.core.opt.adapter import StructureAdapter -from gefest.core.opt.constraints import check_constraints -from gefest.tools.optimizers.optimizer import Optimizer - -from gefest.tools.optimizers.golem_optimizer.nsga2 import NSGA2 -from gefest.tools.optimizers.golem_optimizer.moead import MOEAD -from gefest.tools.optimizers.golem_optimizer.age import AGE - - -def configurate_optimizer(pop_size: int, - crossover_rate: float, - mutation_rate: float, - task_setup): - # ------------ - # User-defined optimizer - # it should be created as object with .step() method - # ------------ - rules = [partial(check_constraints, domain=task_setup.domain)] - - requirements = GraphRequirements() - - optimiser_parameters = GPAlgorithmParameters( - crossover_prob=crossover_rate, - mutation_prob=mutation_rate, - genetic_scheme_type=GeneticSchemeTypesEnum.steady_state, - regularization_type=RegularizationTypesEnum.none) - - graph_generation_params = GraphGenerationParams( - adapter=StructureAdapter(), - rules_for_constraint=rules) - - adapter = StructureAdapter() - params = {'objective': Objective(metrics=2), - 'graph_generation_params': graph_generation_params, - 'graph_optimizer_params': optimiser_parameters, - 'requirements': requirements, - 'initial_graphs': [1, 2, 3]} - - age_optimizer = AGE(adapter=adapter, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - pop_size=pop_size, - task_setup=task_setup, - params=params) - - # ------------ - # GEFEST optimizer - # ------------ - optimizer = Optimizer(optimizer=age_optimizer) - - return optimizer diff --git a/cases/synthetic/multiobj/main.py b/cases/synthetic/multiobj/main.py deleted file mode 100644 index 879613ee8..000000000 --- a/cases/synthetic/multiobj/main.py +++ /dev/null @@ -1,60 +0,0 @@ -import timeit -import pickle -import matplotlib.pyplot as plt - -from gefest.core.viz.struct_vizualizer import StructVizualizer - -from gefest.core.opt.gen_design import design -from cases.synthetic.multiobj.configuration import multiobj_estimator, multiobj_optimizer, multiobj_domain -from cases.synthetic.line.configuration import line_sampler -from cases.main_conf import opt_params - -# ------------ -# GEFEST tools configuration_de -# ------------ - -domain, task_setup = multiobj_domain.configurate_domain(poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed) - -estimator = multiobj_estimator.configurate_estimator(domain=domain) -sampler = line_sampler.configurate_sampler(domain=domain) -optimizer = multiobj_optimizer.configurate_optimizer(pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup) - -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design(n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer) -spend_time = timeit.default_timer() - start - -# ------------ -# Visualization optimized structure -# ------------ - -with open(f'HistoryFiles/performance_{opt_params.n_steps - 1}.pickle', 'rb') as f: - performance = pickle.load(f) - -with open(f'HistoryFiles/population_{opt_params.n_steps - 1}.pickle', 'rb') as f: - population = pickle.load(f) - -idx_of_best = performance.index(min(performance)) - -visualiser = StructVizualizer(task_setup.domain) -plt.figure(figsize=(7, 7)) - -info = {'spend_time': spend_time, - 'fitness': performance[idx_of_best], - 'type': 'prediction'} -plt.scatter(150, 150, label='target') -visualiser.plot_structure(population[idx_of_best], info) - -plt.show() diff --git a/docs/source/api/configuration.rst b/docs/source/api/configuration.rst new file mode 100644 index 000000000..b18f20c40 --- /dev/null +++ b/docs/source/api/configuration.rst @@ -0,0 +1,39 @@ +.. _configuration: + +============= +Configuration +============= + +To run the experiment, the user should define 3 components: the domain of the problem, +objectives and hyperparameters of the algorithm. +Since it is easiest way to define objective in a python script, GEFEST provides two options +for experiments configuration: python config and mixed config. + +**Python** configuration, as the name implies, is just python script, in which user shoud define +task objectives, Domain and OptimizationParams objects (TunerParams also if required), and some domain +pre-computaions. + +**Mixed** configuration assumes that configuration objects (Domain, OptimizationParams, TunerParams) will be +read from yaml file, while objective stay in python script. + + +OptimizationParams +~~~~~~~~~~~~~~~~~~ + +.. autopydantic_model:: gefest.core.configs.optimization_params.OptimizationParams + +TunerParams +~~~~~~~~~~~ + +.. autopydantic_model:: gefest.core.configs.tuner_params.TunerParams + +Domain +~~~~~~ + +.. autopydantic_model:: gefest.core.geometry.domain.Domain + +Utils +~~~~~~ + +.. automodule:: gefest.core.configs.utils + :members: diff --git a/docs/source/api/geometry/datastructs.rst b/docs/source/api/geometry/datastructs.rst new file mode 100644 index 000000000..2760712b3 --- /dev/null +++ b/docs/source/api/geometry/datastructs.rst @@ -0,0 +1,27 @@ +=========== +Datastructs +=========== + +Сlasses for representing geometric entities during optimization. +These classes are pydantic models, which simplifies serialization, deserialization, validation and configuring experiments. + +Point +~~~~~ + +.. autoclass:: gefest.core.geometry.datastructs.point.Point + :members: + :no-undoc-members: + +Polygon +~~~~~ + +.. autoclass:: gefest.core.geometry.datastructs.polygon.Polygon + :members: + :no-undoc-members: + +Structure +~~~~~ + +.. autoclass:: gefest.core.geometry.datastructs.structure.Structure + :members: + :no-undoc-members: diff --git a/docs/source/components/geometry.rst b/docs/source/api/geometry/geometry.rst similarity index 85% rename from docs/source/components/geometry.rst rename to docs/source/api/geometry/geometry.rst index b06621b53..545da258c 100644 --- a/docs/source/components/geometry.rst +++ b/docs/source/api/geometry/geometry.rst @@ -1,6 +1,6 @@ -========= -Geometry -========= +=================== +Geometry operations +=================== class Geometry ~~~~~~~~~~~~~~ @@ -18,5 +18,3 @@ geometrical figures. The most of implemented methods based on the **shapely** library. .. autoclass:: gefest.core.geometry.geometry_2d.Geometry2D - - diff --git a/docs/source/api/geometry/index.rst b/docs/source/api/geometry/index.rst new file mode 100644 index 000000000..91948c317 --- /dev/null +++ b/docs/source/api/geometry/index.rst @@ -0,0 +1,12 @@ +======== +Geometry +======== + +GEFEST uses shapely (https://github.com/shapely/shapely) as backend for geometric operations. + +.. toctree:: + :glob: + :maxdepth: 2 + + datastructs + geometry diff --git a/docs/source/api/index.rst b/docs/source/api/index.rst new file mode 100644 index 000000000..1e80ebe1f --- /dev/null +++ b/docs/source/api/index.rst @@ -0,0 +1,16 @@ +API Reference +============= + +This section of the documentation contains GEFEST API description. + + +.. toctree:: + :glob: + :maxdepth: 2 + + ./configuration + ./geometry/index + ./optimization/index + ./utils + ./visualisation + ./tools/index diff --git a/docs/source/api/optimization/adapters.rst b/docs/source/api/optimization/adapters.rst new file mode 100644 index 000000000..85b504871 --- /dev/null +++ b/docs/source/api/optimization/adapters.rst @@ -0,0 +1,29 @@ +============== +GOLEM adapters +============== + +Adapters of GEFEST modules to use optimization algorithms from GOLEM. + +Sampler adapter +~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.adapters.factories + :members: + +Mutation and crossover adapter +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.adapters.operator + :members: + +Structure adapter +~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.adapters.structure + :members: + +Configuration translators +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.adapters.configuration_mapping + :members: diff --git a/docs/source/api/optimization/index.rst b/docs/source/api/optimization/index.rst new file mode 100644 index 000000000..cd036b60a --- /dev/null +++ b/docs/source/api/optimization/index.rst @@ -0,0 +1,14 @@ +============ +Optimization +============ + + +.. toctree:: + :glob: + :maxdepth: 3 + + adapters + objective + operators + postprocessing + strategies diff --git a/docs/source/api/optimization/objective.rst b/docs/source/api/optimization/objective.rst new file mode 100644 index 000000000..b235abd67 --- /dev/null +++ b/docs/source/api/optimization/objective.rst @@ -0,0 +1,17 @@ +========= +Objective +========= + + +GEFEST objective base class +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. autoclass:: gefest.core.opt.objective.objective.Objective + :members: + + +Objective evaluator +~~~~~~~~~~~~~~~~~~~ + +.. autoclass:: gefest.core.opt.objective.objective_eval.ObjectivesEvaluator + :members: diff --git a/docs/source/api/optimization/operators.rst b/docs/source/api/optimization/operators.rst new file mode 100644 index 000000000..b817148dc --- /dev/null +++ b/docs/source/api/optimization/operators.rst @@ -0,0 +1,25 @@ +========= +Operators +========= + +Crossovers, mutations and selections operations. + +Crossovers +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.operators.crossovers + :members: + + +Mutations +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.operators.mutations + :members: + + +Selections +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.operators.selections + :members: diff --git a/docs/source/api/optimization/postprocessing.rst b/docs/source/api/optimization/postprocessing.rst new file mode 100644 index 000000000..d307a2e01 --- /dev/null +++ b/docs/source/api/optimization/postprocessing.rst @@ -0,0 +1,35 @@ +============== +Postprocessing +============== + +This module provides operations for validation structures and correcting invalid ones. + +Postprocessor +~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.postproc.resolve_errors + :members: + +Base rule classes +~~~~~~~~~~~~~ + +All new rules shoud use one of this classes as parent. + +.. automodule:: gefest.core.opt.postproc.rules_base + :members: + +Rules +~~~~~ + +Collection of default rules. + +.. automodule:: gefest.core.opt.postproc.rules + :members: + +Validation +~~~~~ + +Util for run validation part of rules. + +.. automodule:: gefest.core.opt.postproc.validation + :members: diff --git a/docs/source/api/optimization/strategies.rst b/docs/source/api/optimization/strategies.rst new file mode 100644 index 000000000..c364d5395 --- /dev/null +++ b/docs/source/api/optimization/strategies.rst @@ -0,0 +1,24 @@ +========== +Strategies +========== + +Strategies describes realization of specific optimization algorithm step. +GEFEST provides two default strategies for crossover and mutation steps. + +Strategy base class +~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.strategies.strategy + :members: + +Default crossover strategy +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.strategies.crossover + :members: + +Default mutation strategy +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.core.opt.strategies.mutation + :members: diff --git a/docs/source/api/tools/estimators.rst b/docs/source/api/tools/estimators.rst new file mode 100644 index 000000000..efdbeeec5 --- /dev/null +++ b/docs/source/api/tools/estimators.rst @@ -0,0 +1,34 @@ +========== +Estimators +========== + +The purpose of an estimator is to calculate the component of the fitness function +that requires physical simulation, for example, using differential equations or surrogate models. +The estimator should mainly implement an interface of interaction with external stimulatior, +such as comsol multiphysics, SWAN or neural network models. + +GEFEST provides estimators for several tasks. + +Estimator interface +~~~~~~~~~ + +.. automodule:: gefest.tools.estimators.estimator + :members: + +SWAN estimator +~~~~~~~~~ + +.. automodule:: gefest.tools.estimators.simulators.swan.swan_interface + :members: + +Sound waves estimator +~~~~~~~~~ + +.. automodule:: gefest.tools.estimators.simulators.sound_wave.sound_interface + :members: + +Comsol estimator +~~~~~~~~~ + +.. automodule:: gefest.tools.estimators.simulators.comsol.comsol_interface + :members: \ No newline at end of file diff --git a/docs/source/api/tools/index.rst b/docs/source/api/tools/index.rst new file mode 100644 index 000000000..5f2a32357 --- /dev/null +++ b/docs/source/api/tools/index.rst @@ -0,0 +1,14 @@ +===== +Tools +===== + +The model contains spicific implementations of optimizers, sampler, estimators and tuners. + +.. toctree:: + :glob: + :maxdepth: 2 + + ./optimizers + ./estimators + ./samplers + ./tuners diff --git a/docs/source/api/tools/optimizers.rst b/docs/source/api/tools/optimizers.rst new file mode 100644 index 000000000..343772944 --- /dev/null +++ b/docs/source/api/tools/optimizers.rst @@ -0,0 +1,40 @@ +========== +Optimizers +========== + +GEFEST provides optimizers for single and multi objective tasks. + + +Optimizer interface +~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.optimizers.optimizer + :members: + +Defalt single-objective GA +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.optimizers.GA.GA + :members: + +SPEA2 +~~~~~ + +.. automodule:: gefest.tools.optimizers.SPEA2.SPEA2 + :members: + +Standard optimizer with GOLEM backend +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.optimizers.golem_optimizer.standard + :members: + +Golem based surrogate optimizer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.optimizers.golem_optimizer.surrogate + :members: + +*Note*: GOLEM based optimizers provides single/multiobjective optimizations and other features, +e.g. adaptive mutation strategies. For details see OptimizationParams class and GOLEM docs (https://thegolem.readthedocs.io/en/latest/). + diff --git a/docs/source/api/tools/samplers.rst b/docs/source/api/tools/samplers.rst new file mode 100644 index 000000000..8d666930a --- /dev/null +++ b/docs/source/api/tools/samplers.rst @@ -0,0 +1,16 @@ +======== +Samplers +======== + + +Sampler interface +~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.samplers.sampler + :members: + +Standard sampler +~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.samplers.standard.standard + :members: diff --git a/docs/source/api/tools/tuners.rst b/docs/source/api/tools/tuners.rst new file mode 100644 index 000000000..b9291f65d --- /dev/null +++ b/docs/source/api/tools/tuners.rst @@ -0,0 +1,15 @@ +====== +Tuners +====== + +GolemTuner +~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.tuners.tuner + :members: + +Utils +~~~~~~~~~~~~~~~~~~~ + +.. automodule:: gefest.tools.tuners.utils + :members: \ No newline at end of file diff --git a/docs/source/api/utils.rst b/docs/source/api/utils.rst new file mode 100644 index 000000000..328d57d5c --- /dev/null +++ b/docs/source/api/utils.rst @@ -0,0 +1,23 @@ +===== +Utils +===== + +General purpose utilities + +Functions +~~~~~~~~~ + +.. automodule:: gefest.core.utils.functions + :members: + +Logger +~~~~~~~ + +.. automodule:: gefest.core.utils.logger + :members: + +Parallel execution +~~~~~~ + +.. automodule:: gefest.core.utils.parallel_manager + :members: diff --git a/docs/source/api/visualisation.rst b/docs/source/api/visualisation.rst new file mode 100644 index 000000000..f89860b20 --- /dev/null +++ b/docs/source/api/visualisation.rst @@ -0,0 +1,8 @@ +.. _structvizualizer: + +============= +Visualization +============= + +.. automodule:: gefest.core.viz.struct_vizualizer + :members: diff --git a/docs/source/components/algorithm.rst b/docs/source/components/algorithm.rst deleted file mode 100644 index 6f317a00e..000000000 --- a/docs/source/components/algorithm.rst +++ /dev/null @@ -1,17 +0,0 @@ -Algorithms -========== - -Validation -~~~~~~~~~~ - -.. automodule:: gefest.core.algs.geom.validation - :members: - :no-undoc-members: - - -Postprocessing -~~~~~~~~~~~~~~ - -.. automodule:: gefest.core.algs.postproc.resolve_errors - :members: - :no-private-members: diff --git a/docs/source/components/index.rst b/docs/source/components/index.rst deleted file mode 100644 index 557583843..000000000 --- a/docs/source/components/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -Components -========== - -**That is about modules into GEFEST** - -.. toctree:: - :glob: - :maxdepth: 2 - - structure - geometry - algorithm - optimization - visualization - \ No newline at end of file diff --git a/docs/source/components/optimization.rst b/docs/source/components/optimization.rst deleted file mode 100644 index b3d2fb63a..000000000 --- a/docs/source/components/optimization.rst +++ /dev/null @@ -1,36 +0,0 @@ -============ -Optimization -============ - - -Genetic -~~~~~~~ - -.. autoclass:: gefest.core.opt.GA.base_GA.BaseGA - :members: - :no-undoc-members: - -.. autoclass:: gefest.core.opt.GA.GA.GA - :members: - :no-undoc-members: - - -Operators -~~~~~~~~~ - -.. automodule:: gefest.core.opt.operators.crossover - :members: crossover - :exclude-members: crossover_worker - -.. automodule:: gefest.core.opt.operators.mutation - :members: mutation - :no-undoc-members: - - -Optimization -~~~~~~~~~~~~ - -.. automodule:: gefest.core.opt.optimize - :members: optimize - -.. autoclass:: gefest.core.opt.setup.Setup \ No newline at end of file diff --git a/docs/source/components/structure.rst b/docs/source/components/structure.rst deleted file mode 100644 index b9192ede6..000000000 --- a/docs/source/components/structure.rst +++ /dev/null @@ -1,31 +0,0 @@ -========= -Structure -========= - -There is a description of structural elements that allow to create -geometrical objects. Any geometrical figure might be created via set of -3D :obj:`Point`, :obj:`Polygon` and :obj:`Structure` objects. -The class Domain which using for determinate default settings has shown below. - -class Point -~~~~~~~~~~~~ -.. autoclass:: gefest.core.structure.point.Point - :members: - :no-undoc-members: - -class Polygon -~~~~~~~~~~~~~ -.. autoclass:: gefest.core.structure.polygon.Polygon - -class Structure -~~~~~~~~~~~~~~~ -.. autoclass:: gefest.core.structure.structure.Structure - :members: - :no-undoc-members: - -class Domain -~~~~~~~~~~~~ - -.. autoclass:: gefest.core.structure.domain.Domain - :members: - :no-undoc-members: diff --git a/docs/source/components/visualization.rst b/docs/source/components/visualization.rst deleted file mode 100644 index bd3195b2a..000000000 --- a/docs/source/components/visualization.rst +++ /dev/null @@ -1,6 +0,0 @@ -============= -Visualization -============= - -.. autoclass:: gefest.core.viz.struct_vizualizer.StructVizualizer - :members: diff --git a/docs/source/conf.py b/docs/source/conf.py index 410a24f46..d55373a67 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -41,6 +41,7 @@ 'sphinx.ext.autosummary', 'sphinx.ext.autodoc.typehints', 'sphinx.ext.graphviz', + 'sphinxcontrib.autodoc_pydantic', ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/source/contribution.rst b/docs/source/contribution.rst index 99e7c4b7c..c1a000fa6 100644 --- a/docs/source/contribution.rst +++ b/docs/source/contribution.rst @@ -55,6 +55,24 @@ repository `__ on GitHub: $ pytest -s +7. After all the necessary code is added and tested, make sure there is no flake8 errors. + +Run autoformatters: + +:: + + $ brunette gefest test + $ isort gefest test + +Run code style checks: + +:: + + $ flake8 gefest test --count --statistics + +If flake8 throws errors that are inconsistent or difficult to fix by editing new code, +exclude them in setup.cfg or create an issue. + 7. When you're done editing and local testing, run: :: diff --git a/docs/source/gefest/quickstart.rst b/docs/source/gefest/quickstart.rst index 230e67b76..bc977be9d 100644 --- a/docs/source/gefest/quickstart.rst +++ b/docs/source/gefest/quickstart.rst @@ -7,151 +7,236 @@ GEFEST Framework quick start guide How to install -------------- -Tested on python 3.7 +Tested on python 3.9-3.10 .. code:: pip install https://github.com/ITMO-NSS-team/GEFEST/archive/master.zip -How to design your own polygon in manual way ----------------------------------------------------- +How to run +---------- -- **Step 1**. Define estimator using loss function or simulator of the physical process. +To run examples or custom config just use `run_experiments` and provide absolute path to config file. -Loss function for finding a polygon that seems like circle showed below. +You can use it as API: .. code:: python - from types import SimpleNamespace - import numpy as np - from gefest.tools.estimators.estimator import Estimator - from gefest.core.geometry.geometry_2d import Geometry2D - - geometry = Geometry2D() + from gefest.tools.run_experiments import run_experiments + path = 'C:\\Your\\Folder\\GEFEST\\cases\\synthetic\\circle\\multi_objective.py' + run_experiments(path) - def circle_loss(structure): - #calculating area and length of designed polygon via GEFEST.gefest methods - - best = 999999 - for idx, polygon in enumerate(structure.polygons): - area = geometry.get_square(polygon) - length = geometry.get_length(polygon) - centroid = geometry.get_centroid(polygon) +Or as CLI script: - if area == 0: - continue - #checking "area/length" ratio (equal 1 for circle) - ratio = 4 * np.pi * area / length ** 2 - loss = 1 - ratio +.. code:: - if loss < best: - best = loss + python run_experiments.py C:\Path\To\Config\python_config.py - return best - - estimator = SimpleNamespace() - estimator.estimate = circle_loss - estimator = Estimator(estimator=estimator) +How to design experiment with GEFEST +------------------------------------ -- **Step 2**. Specify border coordinates of area where GEFEST will solve the task. +To run an experiment, you need to define several entities: + 1. Objectives + 2. Domain + 3. TunerParams (if needed) + 4. OptimizationParams -Put the *Domain* to *Setup()* class for creating a task variable. +They can be defined in the experiment startup script, +or placed in a separate python file and loaded using `gefest.core.configs.utils.load_config` function. + +All of them aggreagted into single `OptimizationParams` object. + +Let's take a step-by-step look at how to do this. + +- **Step 0**. Import required GEFEST modules. .. code:: python - - from gefest.core.structure.domain import Domain - from gefest.core.opt.setup import Setup - domain = Domain(allowed_area=[ - (0, 0), - (0, 300), - (300, 300), - (300, 0), - (0, 0) - ], + from gefest.core.configs.optimization_params import OptimizationParams + from gefest.core.configs.tuner_params import TunerParams + from gefest.core.geometry.datastructs.structure import Structure + from gefest.core.geometry.domain import Domain + from gefest.core.opt.objective.objective import Objective + from gefest.tools.estimators.estimator import Estimator - # specify processing way - geometry=geometry, +- **Step 1**. Define objectives using loss function and simulator of the physical process if required. - # every designed polygon locates into Structure(), - # these parameters determine number of polygons per Structure() - max_poly_num=3, - min_poly_num=1, +Objective for finding a polygon that seems like circle showed below. - # every designed polygon might сontain up to 20 points - max_points_num=20, - min_points_num=5, +Inherit from Objective, pass domain and estimator through `__init__`. +Define logic of objective evaluation in `_evaluate` method, which returns float value. +If you want to solve multiobjective optimisation task, just define more objectives classes below. - # designed polygons have closed borders - is_closed=True) +.. code:: python - task_setup = Setup(domain=domain) + import numpy as np -- **Step 3** Create sampler to generate population in specified domain. + class AreaLengthRatio(Objective): + """Area length ratio metric.""" + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure) -> float: + + num = 3 + num_polys = len(ind.polygons) + loss = 0 + for poly in ind.polygons: + area = self.domain.geometry.get_square(poly) + length = self.domain.geometry.get_length(poly) + if area == 0: + ratio = None + else: + ratio = 1 - 4 * np.pi * area / length ** 2 + + loss += ratio + + loss = loss + 20 * abs(num_polys - num) + return loss + + + +- **Step 2**. Define task domain. + +Domain describes geometric constraints for individuals. .. code:: python + + domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 300], + [300, 300], + [300, 0], + [0, 0], + ], + min_poly_num=1, + max_poly_num=4, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + ) + +- **Step 3** Create sampler to generate population in specified domain. - from gefest.tools.samplers.standard.standard import StandardSampler - from gefest.tools.samplers.sampler import Sampler +By default, the standard sampler is used. +You can select another sampler or define custom for spicific task. +How to define your own samler described in the tutorials section of the documentation. - sampler = Sampler(StandardSampler(), domain) +- **Step 4**. Define tuner configuraton. -- **Step 4**. Create optimizer. +You can tune coordinates of optimized structures points to achieve better objective metric using GOLEM tuners. +To use this feature define `TunerParams` configuration. .. code:: python - from gefest.tools.optimizers.GA.GA import GA - from gefest.tools.optimizers.optimizer import Optimizer - from gefest.core.opt.operators.operators import default_operators - from gefest.tools.samplers.standard.standard import StandardSampler + tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, + ) - n_steps = 25 - pop_size = 25 +- **Step 5**. Define OptimisationParams config. - params = GA.Params(pop_size=pop_size, - crossover_rate=0.6, - mutation_rate=0.6, - mutation_value_rate=[]) - ga = GA(params=params, - evolutionary_operators=default_operators(), - task_setup=task_setup) +To know more about configuration options see :ref:`configuration` section of API reference. - optimizer = Optimizer(ga) +.. code:: python -- **Step 5**. Run generative design. + opt_params = OptimizationParams( + optimizer='gefest_ga', + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=50, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + 'not_too_close_points', + ], + extra=5, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + AreaLengthRatio(domain_cfg), + ], + ) + +- **Step 5**. Run generative design and results visualisation. + +Now you can run the optimization as it was described above in *How to run* section of this tutorial. +Let's look at how it works inside. .. code:: python - from gefest.core.opt.gen_design import design + from loguru import logger + from tqdm import tqdm - optimized_population = design(n_steps=n_steps, - pop_size=pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer) + from gefest.core.configs.utils import load_config + from gefest.core.viz.struct_vizualizer import GIFMaker + from gefest.tools.tuners.tuner import GolemTuner -- **Step 6**. Create visualization of the best structure in designed population. + config_path = 'your/config/absolute/path.py' -.. code:: python - - import pickle - import matplotlib.pyplot as plt - from gefest.core.viz.struct_vizualizer import StructVizualizer - - - with open(f'HistoryFiles/performance_{n_steps-1}.pickle', 'rb') as f: - performance = pickle.load(f) - with open(f'HistoryFiles/population_{n_steps-1}.pickle', 'rb') as f: - population = pickle.load(f) - - idx_of_best = performance.index(min(performance)) - visualiser = StructVizualizer(task_setup.domain) - plt.figure(figsize=(7, 7)) - info = {'fitness': f'{performance[idx_of_best]:.2f}', - 'type': 'prediction'} - visualiser.plot_structure([population[idx_of_best]], - [info], - ['-']) - plt.show() - \ No newline at end of file + # Load config + opt_params = load_config( + config_path + ) + + # Initialize and run optimizer + optimizer = opt_params.optimizer(opt_params) + optimized_pop = optimizer.optimize() + + # Optimized pop visualization + logger.info('Collecting plots of optimized structures...') + # GIFMaker object creates mp4 series of optimized structures plots + gm = GIFMaker(domain=opt_params.domain) + for st in tqdm(optimized_pop): + gm.create_frame(st, {'Optimized': st.fitness}) + + gm.make_gif('Optimized population', 500) + + # Run tuning if it defined in cofiguration + if opt_params.tuner_cfg: + tuner = GolemTuner(opt_params) + tuned_individuals = tuner.tune(optimized_pop[: opt_params.tuner_cfg.tune_n_best]) + + # Tuned structures visualization + logger.info('Collecting plots of tuned structures...') + gm = GIFMaker(domain=opt_params.domain) + for st in tqdm(tuned_individuals): + gm.create_frame(st, {'Tuned': st.fitness}) + + gm.make_gif('Tuned individuals', 500) + +To plot spicific structures with matplotlib.pyplot see :ref:`structvizualizer` examples. diff --git a/docs/source/index.rst b/docs/source/index.rst index acac021c9..458ea7b65 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -13,6 +13,7 @@ Content: gefest/index components/index + api/index contribution faq about diff --git a/docs/tutorials/sample.rst b/docs/tutorials/sample.rst index 8165da68f..835254c60 100644 --- a/docs/tutorials/sample.rst +++ b/docs/tutorials/sample.rst @@ -40,7 +40,7 @@ Tested on python 3.7 from gefest.core.opt.operators.operators import default_operators from gefest.core.opt.gen_design import design from gefest.tools.estimators.simulators.swan import swan_model - from gefest.core.structure.prohibited import create_prohibited + from gefest.core.configs.utils import create_prohibited **3. Settings for domain to be researched** diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index ca6b0a6b0..168c4d477 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -1,6 +1,6 @@ from enum import Enum from functools import partial -from typing import Callable, Optional, Union +from typing import Any, Callable, Optional, Union from golem.core.optimisers.adaptive.operator_agent import MutationAgentTypeEnum from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum @@ -8,6 +8,7 @@ from pydantic import BaseModel, ConfigDict, model_validator from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure from gefest.core.geometry.domain import Domain from gefest.core.opt.adapters.structure import StructureAdapter from gefest.core.opt.objective.objective import Objective @@ -17,6 +18,7 @@ from gefest.core.opt.postproc.resolve_errors import Postrocessor from gefest.core.opt.postproc.rules import PolygonRule, Rules, StructureRule from gefest.core.utils.logger import LogDispatcher +from gefest.tools.optimizers import OptimizerTypes from gefest.tools.samplers.standard.standard import StandardSampler ValidRules = Enum( @@ -43,46 +45,144 @@ type=str, ) +ValidOptimizer = Enum( + 'ValidOptimizer', + ((value, value) for value in [r.name for r in OptimizerTypes]), + type=str, +) + class OptimizationParams(BaseModel): - """GEFEST configuration dataclass.""" + """GEFEST configuration dataclass. + + Attributes: + crossover_each_prob (Optional[list[float]]): Probability for each crossover operation. + """ n_steps: int + """Number optimization algorithm steps.""" + pop_size: int + """Popultion size limit. Also auto-generated initial population size.""" + domain: Domain + """Task domain.""" + objectives: list[Objective] - mutations: Union[list[Callable], list[ValidMutations]] - crossovers: Union[list[Callable], list[ValidCrossovers]] + """Task objectives.""" + + mutations: Union[list[Callable[[Any], Structure]], list[ValidMutations]] + """Mutation operations.""" + + crossovers: Union[list[Callable[[Any], tuple[Structure]]], list[ValidCrossovers]] + """Crossover operations.""" + selector: Union[Callable, ValidSelection] + """Selection operation.""" + + optimizer: ValidOptimizer = 'gefest_ga' + """Optimizer.""" + pair_selector: Callable = panmixis + """Pairs selector for crossover operation.""" + sampler: Callable = StandardSampler + """Structures sampler.""" + postprocessor: Callable = Postrocessor.apply_postprocess + """Postprocessing module.""" + postprocess_rules: Union[list[Union[PolygonRule, StructureRule]], list[ValidRules]] + """Postprocessing rules.""" + mutation_strategy: str = 'MutationStrategy' + """Incapsulates mutation step logic.""" + crossover_strategy: str = 'CrossoverStrategy' + """Incapsulates crossover step logic.""" + postprocess_attempts: int = 3 + """Nuber of attempts to correct invalid structures on postprocessing.""" + mutation_prob: float = 0.6 + """Probability to mutate structure.""" + crossover_prob: float = 0.6 + """Probability to crossover pair.""" + mutation_each_prob: Optional[list[float]] = None + """Probability of each provided mutation operation to be applied.""" + crossover_each_prob: Optional[list[float]] = None + """Probability of each provided crossover operation to be applied.""" + extra: int = 5 + """Number of extra structures to generate on each optimization step.""" + n_jobs: Optional[int] = -1 + """Nuber of cores to use in parallel execution. + n_jobs = -1 to use all cores, + n_jobs > 0 to spicic number of cores, + n_jobs = 0 to eval sequentially without joblib, + use 0 for debug GEFEST only. + """ + early_stopping_timeout: int = 60 + """GOLEM argument. + For details see https://thegolem.readthedocs.io/en/latest/api/parameters.html + """ + early_stopping_iterations: int = 1000 + """GOLEM argument. + For details see: + https://thegolem.readthedocs.io/en/latest/api/parameters.html + """ + golem_adapter: Callable = StructureAdapter + """Adapter for convertation GEFEST Structure into GOLEM OptGraph.""" + tuner_cfg: Optional[TunerParams] = None + """Configuration for GOLEM tuner wrap.""" + log_dir: str = 'logs' + """Directory for logs.""" + run_name: str = 'run_name' + """Experiment name.""" + log_dispatcher: Callable = LogDispatcher + """GEFEST logger.""" + golem_keep_histoy: bool = False + """Enables/disables GOLEM experiment historry serialization.""" + golem_genetic_scheme_type: GeneticSchemeTypesEnum = 'steady_state' + """GOLEM configuration argument `genetic_scheme_type`. + For details see: + https://thegolem.readthedocs.io/en/latest/api/parameters.html + """ + golem_adaptive_mutation_type: MutationAgentTypeEnum = 'default' + """GOLEM configuration argument `adaptive_mutation_type`. + For details see: + https://thegolem.readthedocs.io/en/latest/api/parameters.html + """ + golem_selection_type: SelectionTypesEnum = 'spea2' + """GOLEM configuration argument `selection_type`. + For details see: + https://thegolem.readthedocs.io/en/latest/api/parameters.html + """ + golem_surrogate_each_n_gen: int = 5 + """Frequency of usage surrogate model in `golem_surrogate` optimizer""" @model_validator(mode='after') def create_classes_instances(self): """Selects and initializes specified modules.""" + if isinstance(self.optimizer, str): + self.optimizer = getattr(OptimizerTypes, self.optimizer).value + if isinstance(self.postprocess_rules[0], str): self.postprocess_rules = [getattr(Rules, name).value for name in self.postprocess_rules] diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index f3db98a1f..8225263b8 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -16,11 +16,35 @@ class TunerParams(BaseModel): """ tuner_type: str + """Type of GOLEM tuners to use. + Available: 'iopt', 'optuna', 'sequential', 'simulataneous'. + For tuner details see: + https://thegolem.readthedocs.io/en/latest/api/tuning.html + https://fedot.readthedocs.io/en/latest/advanced/hyperparameters_tuning.html + """ + n_steps_tune: int + """Number of tuner steps.""" + + tune_n_best: int = 1 + """Top tune_n_best structures from provided population to tune.""" + hyperopt_dist: Union[Callable, str] = hp.uniform + """Random distribution function.""" + verbose: bool = True + """GOLEM console info.""" + variacne_generator: Union[Callable[[Structure], list[float]], str] = utils.average_edge_variance + """The function for generating the search space includes intervals + for each component of each point of each polygon in the provided structure. + + Output format should be spicific dict configuration. For details see: + https://thegolem.readthedocs.io/en/latest/api/tuning.html + """ + timeout_minutes: int = 60 + """GOLEM argument.""" @field_validator('tuner_type') @classmethod diff --git a/gefest/core/configs/utils.py b/gefest/core/configs/utils.py index b1a1c4cc3..50f97e6bf 100644 --- a/gefest/core/configs/utils.py +++ b/gefest/core/configs/utils.py @@ -1,10 +1,14 @@ import inspect from pathlib import Path +from typing import Optional import yaml +from shapely.geometry.point import Point from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry import Point as G_Point +from gefest.core.geometry import Polygon, PolyID, Structure from gefest.core.geometry.domain import Domain from gefest.core.opt.objective.objective import Objective @@ -24,7 +28,10 @@ def load_config( Returns: OptimizationParams: GEFEST unified configuretion file. """ - module_ = __import__(Path(cfg_py_path).stem) + root_path = Path.cwd() + relative_path = Path(cfg_py_path).relative_to(root_path.parent.resolve()) + import_string = '.'.join(relative_path.with_suffix('').parts[1:]) + module_ = __import__(import_string, fromlist=[None]) if cfg_yaml_path: user_metrics = [] for name, obj in inspect.getmembers(module_): @@ -49,3 +56,45 @@ def load_config( opt_params = module_.opt_params return opt_params + + +def create_prohibited( + points_radius, + targets: Optional[list[list]] = None, + fixed_points: Optional[list[list]] = None, + fixed_area: Optional[list[list]] = None, +) -> Structure: + """Creates of fixed, prohibited structures. Polygons cannot cross them. + + Args: + points_radius (_type_): _description_ + targets (Optional[list[list]], optional): Fixed targets inside domain. Defaults to None. + fixed_points (Optional[list[list]], optional): Fixed lines inside domain. Defaults to None. + fixed_area (Optional[list[list]], optional): Fixed areas inside domain. Defaults to None. + + Returns: + Structure: Compilation of inputs as GEFEST Structure. + + """ + prohibited_area = [] + if targets is not None: + target_polygons = [ + list(Point(target).buffer(points_radius).exterior.coords) for target in targets + ] + target_points = [[G_Point(p[0], p[1]) for p in target] for target in target_polygons] + poly_targets = [Polygon(id_=PolyID.PROH_TARG, points=points) for points in target_points] + prohibited_area += poly_targets + + if fixed_points is not None: + fix_points = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_points] + poly_fixed = [Polygon(id_=PolyID.PROH_POLY, points=points) for points in fix_points] + prohibited_area += poly_fixed + + if fixed_area is not None: + fix_area = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_area] + poly_area = [Polygon(id_=PolyID.PROH_AREA, points=points) for points in fix_area] + prohibited_area += poly_area + + struct = Structure(polygons=prohibited_area) + + return struct diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index 9308887ad..e7d4d672b 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -320,9 +320,9 @@ def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_fac if isinstance(interaction, ShapelyPoint): interaction = [Point(interaction.x, interaction.y)] elif isinstance(interaction, MultiPoint): - interaction = [Point(p.x, p.y) for p in interaction.geoms] + interaction = [Point(p[0], p[1]) for p in interaction.geoms] else: - interaction = [Point(p.x, p.y) for p in interaction.coords] + interaction = [Point(p[0], p[1]) for p in interaction.coords] else: return None diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index d76a85a44..3d96ff9a6 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -1,3 +1,10 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from gefest.core.geometry.domain import Domain + from random import randint from typing import Optional @@ -20,8 +27,6 @@ from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.geometry_2d import Geometry2D -from .domain import Domain - def random_polar(origin: Point, radius_scale: float) -> Point: """Generates random point in circe. @@ -307,12 +312,12 @@ def get_convex_safe_area( if poly_len == 2: p = poly[(point_left_idx + 1) % poly_len] circle = SPoint(p.x, p.y).buffer(geom.get_length(poly) * 1.5) - base_area = [Point(p[0], p[1]) for p in list(circle.exterior_.coords)] + base_area = [Point(p[0], p[1]) for p in list(circle.exterior.coords)] elif poly_len == 3: p = poly[(point_left_idx + 1) % poly_len] circle = SPoint(p.x, p.y).buffer(geom.get_length(poly) / 3) - base_area = [Point(p[0], p[1]) for p in list(circle.exterior_.coords)] + base_area = [Point(p[0], p[1]) for p in list(circle.exterior.coords)] else: left_cut = [ @@ -356,34 +361,48 @@ def get_convex_safe_area( scale_factor, ) if intersection_point is not None: - mid_points = [intersection_point] + base_area = [ + left_cut[1], + intersection_point, + right_cut[1], + ] else: - mid_points = [ + base_area = [ + left_cut[1], geom.intersection_line_line(left_cut, slice_line, scale_factor, scale_factor), geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), + right_cut[1], ] slice_points = geom.intersection_poly_line( - Polygon( - [ - left_cut[1], - *mid_points, - right_cut[1], - ], - ), + Polygon(base_area), slice_line, scale_factor, ) - - base_area = [ - left_cut[1], - *slice_points, - right_cut[1], - ] - base_area = [ - Point(p[0], p[1]) - for p in geom._poly_to_shapely_poly(Polygon(base_area)).convex_hull.exterior_.coords - ] + # if not slice_points: + # from shapely.geometry import Polygon as SPoly, LineString + # from shapely.plotting import plot_line, plot_polygon + # from matplotlib import pyplot as plt + # plot_polygon(geom._poly_to_shapely_poly(Polygon([ + # left_cut[1], + # *mid_points, + # right_cut[1], + # ])) + # ) + # plot_line(LineString([(p.x,p.y) for p in slice_line]), color='m') + # plt.show(block=True) + if slice_points: + base_area = [ + left_cut[1], + *slice_points, + right_cut[1], + ] + base_area = [ + Point(p[0], p[1]) + for p in geom._poly_to_shapely_poly( + Polygon(base_area), + ).convex_hull.exterior.coords + ] else: base_area = [ diff --git a/cases/synthetic/circle/configuration/__init__.py b/gefest/core/opt/adapters/__init__.py similarity index 100% rename from cases/synthetic/circle/configuration/__init__.py rename to gefest/core/opt/adapters/__init__.py diff --git a/gefest/core/opt/adapters/configuration_mapping.py b/gefest/core/opt/adapters/configuration_mapping.py index a1158e885..8fcae6b54 100644 --- a/gefest/core/opt/adapters/configuration_mapping.py +++ b/gefest/core/opt/adapters/configuration_mapping.py @@ -1,3 +1,10 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from gefest.core.configs.optimization_params import OptimizationParams + from functools import partial from golem.core.optimisers.adaptive.operator_agent import MutationAgentTypeEnum @@ -7,7 +14,6 @@ from golem.core.optimisers.optimization_parameters import GraphRequirements from golem.core.optimisers.optimizer import GraphGenerationParams -from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.opt.adapters.factories import StructureFactory from gefest.core.opt.adapters.operator import OperationWrap from gefest.core.opt.operators.crossovers import crossover_structures diff --git a/gefest/core/opt/objective/objective.py b/gefest/core/opt/objective/objective.py index 0e8689a30..abe1df9c9 100644 --- a/gefest/core/opt/objective/objective.py +++ b/gefest/core/opt/objective/objective.py @@ -9,7 +9,7 @@ class Objective(metaclass=ABCMeta): """Base objective class. - Must be used as base class for any user-defuned objetive. + Must be used as base class for any user-defined objectives. """ @@ -27,10 +27,10 @@ def __call__( **kwargs, ) -> list[Structure]: """Calls evaluate method.""" - return self.evaluate(ind) + return self._evaluate(ind) @abstractmethod - def evaluate( + def _evaluate( self, ind: Structure, ) -> float: diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 0c866367c..e0afd9ead 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -22,15 +22,15 @@ def crossover_structures( operations_probs: list[int], **kwargs, ) -> tuple[Structure]: - """Appls random crossover from given list for each pair. + """Applys random crossover from given list for pair of structures. Args: structure1 (Structure): First parent. structure1 (Structure): Second parent. domain (Domain): Task domain. - operations (list[Callable]): List of mutation operations to choose. - operation_chance (float): Chance to mutate polygon. - operations_probs (list[int]): Probablilites of each mutation operation. + operations (list[Callable]): List of crossovers operations to choose. + operation_chance (float): Chance of crossover. + operations_probs (list[int]): Probablilites of each crossover operation. Returns: tuple[Structure]: Сhildren. diff --git a/gefest/core/opt/postproc/resolve_errors.py b/gefest/core/opt/postproc/resolve_errors.py index 4b6c935ef..83ef7ffda 100644 --- a/gefest/core/opt/postproc/resolve_errors.py +++ b/gefest/core/opt/postproc/resolve_errors.py @@ -33,13 +33,9 @@ def apply_postprocess( def _apply_polygon_rule(structure, rule, attempts, domain) -> Union[Structure, None]: for idx_, _ in enumerate(structure.polygons): for _ in range(attempts): - if structure[idx_].points is None: - logger.warning('bruh') if not rule.validate(structure, idx_, domain): structure[idx_] = rule.correct(structure, idx_, domain) - if structure[idx_].points is None: - logger.warning('bruh') else: break else: diff --git a/gefest/core/opt/postproc/rules_base.py b/gefest/core/opt/postproc/rules_base.py index 2f666bc6f..27e532e96 100644 --- a/gefest/core/opt/postproc/rules_base.py +++ b/gefest/core/opt/postproc/rules_base.py @@ -52,7 +52,7 @@ def correct( class StructureRule(metaclass=ABCMeta): - """Interface of postprocessing rule for whloe structure. + """Interface of postprocessing rule for whole structure. Provides validation and correction functions for spicific error, e.g. 'polygons in structure too close'. diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index 697b84373..caa014f60 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -1,8 +1,14 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from gefest.core.configs.optimization_params import OptimizationParams + import copy from functools import partial from typing import Callable -from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure from gefest.core.opt.operators.crossovers import crossover_structures from gefest.core.utils import where diff --git a/gefest/core/opt/strategies/mutation.py b/gefest/core/opt/strategies/mutation.py index bacdc3d1e..e60ec3e2e 100644 --- a/gefest/core/opt/strategies/mutation.py +++ b/gefest/core/opt/strategies/mutation.py @@ -1,8 +1,14 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from gefest.core.configs.optimization_params import OptimizationParams + import copy from functools import partial from typing import Callable -from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure from gefest.core.opt.operators.mutations import mutate_structure from gefest.core.utils import where diff --git a/gefest/core/structure/__init__.py b/gefest/core/structure/__init__.py deleted file mode 100755 index e69de29bb..000000000 diff --git a/gefest/core/structure/prohibited.py b/gefest/core/structure/prohibited.py deleted file mode 100644 index 3586ac176..000000000 --- a/gefest/core/structure/prohibited.py +++ /dev/null @@ -1,48 +0,0 @@ -from typing import Optional - -from shapely.geometry.point import Point - -from gefest.core.geometry import Point as G_Point -from gefest.core.geometry import Polygon, PolyID, Structure - - -def create_prohibited( - points_radius, - targets: Optional[list[list]] = None, - fixed_points: Optional[list[list]] = None, - fixed_area: Optional[list[list]] = None, -) -> Structure: - """Creation of fixed, prohibited structures. Polygons cannot cross them. - - Args: - points_radius (_type_): _description_ - targets (Optional[list[list]], optional): Fixed targets inside domain. Defaults to None. - fixed_points (Optional[list[list]], optional): Fixed lines inside domain. Defaults to None. - fixed_area (Optional[list[list]], optional): Fixed areas inside domain. Defaults to None. - - Returns: - Structure: Compilation of imputs as GEFEST Structure. - - """ - prohibited_area = [] - if targets is not None: - target_polygons = [ - list(Point(target).buffer(points_radius).exterior.coords) for target in targets - ] - target_points = [[G_Point(p[0], p[1]) for p in target] for target in target_polygons] - poly_targets = [Polygon(id_=PolyID.PROH_TARG, points=points) for points in target_points] - prohibited_area += poly_targets - - if fixed_points is not None: - fix_points = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_points] - poly_fixed = [Polygon(id_=PolyID.PROH_POLY, points=points) for points in fix_points] - prohibited_area += poly_fixed - - if fixed_area is not None: - fix_area = [[G_Point(p[0], p[1]) for p in fixed] for fixed in fixed_area] - poly_area = [Polygon(id_=PolyID.PROH_AREA, points=points) for points in fix_area] - prohibited_area += poly_area - - struct = Structure(polygons=prohibited_area) - - return struct diff --git a/gefest/core/utils/parallel_manager.py b/gefest/core/utils/parallel_manager.py index 9cfca1eb2..cc8bce930 100644 --- a/gefest/core/utils/parallel_manager.py +++ b/gefest/core/utils/parallel_manager.py @@ -5,7 +5,7 @@ class BaseParallelDispatcher: - """Provides interface for parallel execution.""" + """Provides api for easy to use parallel execution with joblib backernd.""" def __init__(self, n_jobs: int = -1): """Inits parallel dispatcher. diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index a9f7bc3c1..b490d61be 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -39,8 +39,7 @@ def plot_structure(self, structs: list[Structure], domain=None, infos=None, line [':', '-']) Returns: - |viz_struct| - .. |viz_struct| image::https://ibb.co/fN7XCXh + matplotlib.pyplot.figure """ if not isinstance(structs, list): structs = [structs] @@ -81,8 +80,6 @@ def plot_poly(self, poly, linestyle, **kwargs): >>> poly = struct.polygons[0] >>> viz.plot_poly(poly, '-') - Returns: - .. |viz_poly| image:: https://ibb.co/s31cj3c """ x_ = [pt.x for pt in poly] y_ = [pt.y for pt in poly] diff --git a/gefest/tools/optimizers/SPEA2/SPEA2.py b/gefest/tools/optimizers/SPEA2/SPEA2.py index 377cdb86b..322337c77 100644 --- a/gefest/tools/optimizers/SPEA2/SPEA2.py +++ b/gefest/tools/optimizers/SPEA2/SPEA2.py @@ -151,7 +151,7 @@ def optimize(self): mutated_children = self.mutation(children) extras = self.sampler(self.opt_params.extra) self._pop.extend(mutated_children + extras) - self._pop = self.estimator(self._pop) + self._pop = self.objectives_evaluator(self._pop) self.calculate_sepa2_fitness() self.log_dispatcher.log_pop(self._pop, str(step + 1)) diff --git a/gefest/tools/optimizers/__init__.py b/gefest/tools/optimizers/__init__.py index e69de29bb..64f1131dd 100644 --- a/gefest/tools/optimizers/__init__.py +++ b/gefest/tools/optimizers/__init__.py @@ -0,0 +1,15 @@ +from enum import Enum + +from .GA.GA import BaseGA +from .golem_optimizer.standard import StandardOptimizer +from .golem_optimizer.surrogate import SurrogateOptimizer +from .SPEA2.SPEA2 import SPEA2 + + +class OptimizerTypes(Enum): + """Enumeration of all optimizers.""" + + gefest_ga = BaseGA + gefest_spea2 = SPEA2 + golem_optimizer = StandardOptimizer + golem_surrogate = SurrogateOptimizer diff --git a/gefest/tools/optimizers/golem_optimizer/standard.py b/gefest/tools/optimizers/golem_optimizer/standard.py index 7f0a333e1..75320676d 100644 --- a/gefest/tools/optimizers/golem_optimizer/standard.py +++ b/gefest/tools/optimizers/golem_optimizer/standard.py @@ -1,7 +1,13 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from gefest.core.configs.optimization_params import OptimizationParams + from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer from golem.core.optimisers.objective import Objective -from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.opt.adapters.configuration_mapping import ( map_into_gpa, map_into_graph_generation_params, diff --git a/gefest/tools/optimizers/golem_optimizer/surrogate.py b/gefest/tools/optimizers/golem_optimizer/surrogate.py index cbead9822..f9a29aae9 100644 --- a/gefest/tools/optimizers/golem_optimizer/surrogate.py +++ b/gefest/tools/optimizers/golem_optimizer/surrogate.py @@ -1,9 +1,15 @@ -from ctypes import Structure +from __future__ import annotations + +from typing import TYPE_CHECKING + +from gefest.core.geometry.datastructs.structure import Structure + +if TYPE_CHECKING: + from gefest.core.configs.optimization_params import OptimizationParams from golem.core.optimisers.meta.surrogate_optimizer import SurrogateEachNgenOptimizer from golem.core.optimisers.objective import Objective -from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.opt.adapters.configuration_mapping import ( map_into_gpa, map_into_graph_generation_params, diff --git a/gefest/tools/run_experiment.py b/gefest/tools/run_experiment.py new file mode 100644 index 000000000..b6509b5b6 --- /dev/null +++ b/gefest/tools/run_experiment.py @@ -0,0 +1,34 @@ +from loguru import logger +from tqdm import tqdm + +from gefest.core.configs.utils import load_config +from gefest.core.viz.struct_vizualizer import GIFMaker +from gefest.tools.tuners.tuner import GolemTuner + + +def run_experiment(config_path: str): + """Simple experiment runner.""" + opt_params = load_config(config_path) + + optimizer = opt_params.optimizer(opt_params) + optimized_pop = optimizer.optimize() + + # Optimized pop visualization + logger.info('Collecting plots of optimized structures...') + gm = GIFMaker(domain=opt_params.domain) + for st in tqdm(optimized_pop): + gm.create_frame(st, {'Optimized': st.fitness}) + + gm.make_gif('Optimized population', 500) + + if opt_params.tuner_cfg: + tuner = GolemTuner(opt_params) + tuned_individuals = tuner.tune(optimized_pop[: opt_params.tuner_cfg.tune_n_best]) + + # Tuned structures visualization + logger.info('Collecting plots of tuned structures...') + gm = GIFMaker(domain=opt_params.domain) + for st in tqdm(tuned_individuals): + gm.create_frame(st, {'Tuned': st.fitness}) + + gm.make_gif('Tuned individuals', 500) diff --git a/gefest/tools/samplers/standard/standard.py b/gefest/tools/samplers/standard/standard.py index e0920b793..36d767dde 100644 --- a/gefest/tools/samplers/standard/standard.py +++ b/gefest/tools/samplers/standard/standard.py @@ -1,3 +1,10 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from gefest.core.configs.optimization_params import OptimizationParams + from functools import partial from typing import Callable @@ -17,7 +24,7 @@ class StandardSampler(Sampler): The generated samples satisfy the domain configuration. """ - def __init__(self, opt_params) -> None: + def __init__(self, opt_params: OptimizationParams) -> None: super().__init__( samples_generator=get_random_structure, domain=opt_params.domain, diff --git a/gefest/tools/tuners/utils.py b/gefest/tools/tuners/utils.py index a200defc3..c4a156f10 100644 --- a/gefest/tools/tuners/utils.py +++ b/gefest/tools/tuners/utils.py @@ -55,7 +55,7 @@ def average_edge_variance( get_args = _get_norm_args else: raise ValueError( - f'Invalin distribution function: {distrib}, only hp.uniform and hp.normal allowed.' + f'Invalid distribution function: {distrib}, only hp.uniform and hp.normal allowed.', ) geom = domain.geometry diff --git a/refactored.py b/refactored.py deleted file mode 100644 index 838d84c39..000000000 --- a/refactored.py +++ /dev/null @@ -1,23 +0,0 @@ -from gefest.core.configs.utils import load_config -from gefest.core.viz.struct_vizualizer import GIFMaker -from gefest.tools.optimizers.GA.GA import BaseGA -from gefest.tools.tuners.tuner import GolemTuner - -if __name__ == '__main__': - - opt_params = load_config( - 'F:\\Git_Repositories\\gef_ref\\GEFEST\\gefest_config.py', - ) - - optimizer = BaseGA(opt_params) - optimized_pop = optimizer.optimize() - - tuner = GolemTuner(opt_params) - tuned_individuals = tuner.tune(optimized_pop[0]) - - # visualization - gm = GIFMaker(domain=opt_params.domain) - for st in optimized_pop: - gm.create_frame(st, {'Optimized': st.fitness}) - - gm.make_gif('diag_test', 500) diff --git a/requirements.txt b/requirements.txt index 3d6310a6c..c8a968066 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ cython==0.29.36 pandas==1.4.4 -numpy +numpy==1.25.2 typing==3.7.4.1 matplotlib==3.6.3 seaborn==0.9.0 @@ -15,13 +15,13 @@ scipy==1.9.3 scikit-image==0.19.3 scikit-learn==1.3.0 pydantic==2.4.2 +autodoc_pydantic==2.0.1 pydantic-yaml==1.1.1 PyYAML==6.0.1 moviepy==1.0.3 joblib==1.3.2 loguru==0.7.2 - -polygenerator +polygenerator==0.2.0 flake8==6.0.0 brunette==0.2.8 diff --git a/run_experiment.py b/run_experiment.py new file mode 100644 index 000000000..d0b391a40 --- /dev/null +++ b/run_experiment.py @@ -0,0 +1,37 @@ +import sys + +from loguru import logger +from tqdm import tqdm + +from gefest.core.configs.utils import load_config +from gefest.core.viz.struct_vizualizer import GIFMaker +from gefest.tools.tuners.tuner import GolemTuner + +if __name__ == '__main__': + + opt_params = load_config( + sys.argv[1], + ) + + optimizer = opt_params.optimizer(opt_params) + optimized_pop = optimizer.optimize() + + # Optimized pop visualization + logger.info('Collecting plots of optimized structures...') + gm = GIFMaker(domain=opt_params.domain) + for st in tqdm(optimized_pop): + gm.create_frame(st, {'Optimized': st.fitness}) + + gm.make_gif('Optimized population', 500) + + if opt_params.tuner_cfg: + tuner = GolemTuner(opt_params) + tuned_individuals = tuner.tune(optimized_pop[: opt_params.tuner_cfg.tune_n_best]) + + # Tuned structures visualization + logger.info('Collecting plots of tuned structures...') + gm = GIFMaker(domain=opt_params.domain) + for st in tqdm(tuned_individuals): + gm.create_frame(st, {'Tuned': st.fitness}) + + gm.make_gif('Tuned individuals', 500) From e63aa411366dd450784dd29660602ed021514827 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Sat, 11 Nov 2023 14:06:13 +0300 Subject: [PATCH 45/66] add comsol and sound cases --- cases/microfluidic/config_standard.py | 102 ++++++++ .../configuration_standard/sd_domain.py | 37 --- .../configuration_standard/sd_estimator.py | 26 -- .../configuration_standard/sd_optimizer.py | 28 --- .../configuration_standard/sd_sampler.py | 19 -- cases/microfluidic/main.py | 35 --- .../__init__.py | 0 .../microfluid_file/rbc-trap-setup.mph | Bin cases/sound_waves/configuration/config.py | 132 +++++++++++ .../figures/bottom_square.txt | 0 .../sound_waves/configuration/sound_domain.py | 55 ----- .../configuration/sound_estimator.py | 46 ---- .../configuration/sound_optimizer.py | 32 --- .../configuration/sound_sampler.py | 23 -- cases/sound_waves/main.py | 222 ------------------ cases/sound_waves/microphone_points.py | 60 ++--- cases/sound_waves/sound_viz.py | 33 ++- cases/sound_waves/vizualization.py | 54 +++-- .../comsol/microfluid_file/__init__.py | 0 .../tools/utils.py | 23 +- 20 files changed, 322 insertions(+), 605 deletions(-) create mode 100644 cases/microfluidic/config_standard.py delete mode 100644 cases/microfluidic/configuration_standard/sd_domain.py delete mode 100644 cases/microfluidic/configuration_standard/sd_estimator.py delete mode 100644 cases/microfluidic/configuration_standard/sd_optimizer.py delete mode 100644 cases/microfluidic/configuration_standard/sd_sampler.py delete mode 100644 cases/microfluidic/main.py rename cases/microfluidic/{configuration_standard => microfluid_file}/__init__.py (100%) rename {gefest/tools/estimators/simulators/comsol => cases/microfluidic}/microfluid_file/rbc-trap-setup.mph (100%) create mode 100644 cases/sound_waves/configuration/config.py rename cases/sound_waves/{ => configuration}/figures/bottom_square.txt (100%) delete mode 100644 cases/sound_waves/configuration/sound_domain.py delete mode 100644 cases/sound_waves/configuration/sound_estimator.py delete mode 100644 cases/sound_waves/configuration/sound_optimizer.py delete mode 100644 cases/sound_waves/configuration/sound_sampler.py delete mode 100644 cases/sound_waves/main.py delete mode 100644 gefest/tools/estimators/simulators/comsol/microfluid_file/__init__.py rename cases/sound_waves/poly_from_point.py => gefest/tools/utils.py (58%) diff --git a/cases/microfluidic/config_standard.py b/cases/microfluidic/config_standard.py new file mode 100644 index 000000000..502805d57 --- /dev/null +++ b/cases/microfluidic/config_standard.py @@ -0,0 +1,102 @@ +from pathlib import Path + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.simulators.comsol.comsol_interface import Comsol + + +# # # Metrics # # # +class ComsolMetric(Objective): + """Comsol metric.""" + def __init__(self, domain, estimator): + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure): + return self.estimator(ind) + + +# # # Precompute domain arguments # # # +pass +# # # + +domain_cfg = Domain( + allowed_area=[ + (-125, 100), + (-75, 170), + (15, 170), + (30, 90), + (-20, -130), + (-20, -170), + (-125, -170), + (-125, 100), + ], + name='main', + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + +opt_params = OptimizationParams( + optimizer='gefest_ga', + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=50, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + ComsolMetric( + domain_cfg, + Comsol(str(Path(__file__).parent) + '\\microfluid_file\\rbc-trap-setup.mph'), + ), + ], +) diff --git a/cases/microfluidic/configuration_standard/sd_domain.py b/cases/microfluidic/configuration_standard/sd_domain.py deleted file mode 100644 index 79eec0926..000000000 --- a/cases/microfluidic/configuration_standard/sd_domain.py +++ /dev/null @@ -1,37 +0,0 @@ -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain - - -# ------------ -# USER-DEFINED CONFIGURATION OF DOMAIN FOR MICROFLUIDIC TASK -# ------------ -def configurate_domain(poly_num: int, - points_num: int, - is_closed: bool): - # ------------ - # GEFEST domain based on user-defined configuration_de - # ------------ - if is_closed: - min_points_num = 3 - else: - min_points_num = 2 - - geometry = Geometry2D(is_closed=is_closed) - domain = Domain(allowed_area=[(-125, 100), - (-75, 170), - (15, 170), - (30, 90), - (-20, -130), - (-20, -170), - (-125, -170), - (-125, 100)], - geometry=geometry, - max_poly_num=poly_num, - min_poly_num=1, - max_points_num=points_num, - min_points_num=min_points_num, - is_closed=is_closed) - task_setup = Setup(domain=domain) - - return domain, task_setup diff --git a/cases/microfluidic/configuration_standard/sd_estimator.py b/cases/microfluidic/configuration_standard/sd_estimator.py deleted file mode 100644 index 1f437ee13..000000000 --- a/cases/microfluidic/configuration_standard/sd_estimator.py +++ /dev/null @@ -1,26 +0,0 @@ -from pathlib import Path - -from gefest.tools.estimators.simulators.comsol.comsol_interface import Comsol -from gefest.tools.estimators.estimator import Estimator - - -def configurate_estimator(domain, path_to_sim=False): - # ------------ - # User-defined estimator - # it should be created as object with .estimate() method - # ------------ - - if not path_to_sim: - root_path = Path(__file__).parent.parent.parent.parent - path_to_sim = f'{root_path}/gefest/tools/estimators/simulators/comsol/microfluid_file/rbc-trap-setup.mph' - - comsol = Comsol(path_to_mph=path_to_sim) - - # ------------ - # GEFEST estimator - # ------------ - - # Here loss is an optional argument, otherwise estimator will be considered as loss for minimizing - estimator = Estimator(estimator=comsol) - - return estimator diff --git a/cases/microfluidic/configuration_standard/sd_optimizer.py b/cases/microfluidic/configuration_standard/sd_optimizer.py deleted file mode 100644 index da19dd84f..000000000 --- a/cases/microfluidic/configuration_standard/sd_optimizer.py +++ /dev/null @@ -1,28 +0,0 @@ -from gefest.tools.optimizers.GA.GA import GA -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.optimizer import Optimizer - - -def configurate_optimizer(pop_size: int, - crossover_rate: int, - mutation_rate: int, - task_setup): - # ------------ - # User-defined optimizer - # it should be created as object with .step() method - # ------------ - params = GA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - - ga_optimizer = GA(params=params, - evolutionary_operators=default_operators(), - task_setup=task_setup) - - # ------------ - # GEFEST optimizer - # ------------ - optimizer = Optimizer(optimizer=ga_optimizer) - - return optimizer diff --git a/cases/microfluidic/configuration_standard/sd_sampler.py b/cases/microfluidic/configuration_standard/sd_sampler.py deleted file mode 100644 index 175a61a8d..000000000 --- a/cases/microfluidic/configuration_standard/sd_sampler.py +++ /dev/null @@ -1,19 +0,0 @@ -from gefest.tools.samplers.standard.standard import StandardSampler -from gefest.tools.samplers.sampler import Sampler - - -def configurate_sampler(domain): - # ------------ - # User-defined sampler - # it should be created as object with .sample() method - # ------------ - sampler = StandardSampler() - - # ------------ - # GEFEST sampler, - # it consist of user defined sampler and configurated domain - # ------------ - sampler = Sampler(sampler=sampler, - domain=domain) - - return sampler diff --git a/cases/microfluidic/main.py b/cases/microfluidic/main.py deleted file mode 100644 index 432f407a0..000000000 --- a/cases/microfluidic/main.py +++ /dev/null @@ -1,35 +0,0 @@ -import timeit - -from gefest.core.opt.gen_design import design -from cases.microfluidic.configuration_dl import md_domain, md_sampler, md_estimator, md_optimizer -from cases.main_conf import opt_params - -opt_params.is_closed = True - -# ------------ -# GEFEST tools configuration -# ------------ - -domain, task_setup = md_domain.configurate_domain(poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed) - -estimator = md_estimator.configurate_estimator(domain=domain) -sampler = md_sampler.configurate_sampler(domain=domain) -optimizer = md_optimizer.configurate_optimizer(pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup) - -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design(n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer) -spend_time = timeit.default_timer() - start -print(f'spent time {spend_time} sec') diff --git a/cases/microfluidic/configuration_standard/__init__.py b/cases/microfluidic/microfluid_file/__init__.py similarity index 100% rename from cases/microfluidic/configuration_standard/__init__.py rename to cases/microfluidic/microfluid_file/__init__.py diff --git a/gefest/tools/estimators/simulators/comsol/microfluid_file/rbc-trap-setup.mph b/cases/microfluidic/microfluid_file/rbc-trap-setup.mph similarity index 100% rename from gefest/tools/estimators/simulators/comsol/microfluid_file/rbc-trap-setup.mph rename to cases/microfluidic/microfluid_file/rbc-trap-setup.mph diff --git a/cases/sound_waves/configuration/config.py b/cases/sound_waves/configuration/config.py new file mode 100644 index 000000000..109bf630a --- /dev/null +++ b/cases/sound_waves/configuration/config.py @@ -0,0 +1,132 @@ +from pathlib import Path + +import numpy as np + +from cases.sound_waves.microphone_points import Microphone +from cases.sound_waves.poly_from_point import poly_from_comsol_txt +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.utils import get_random_structure +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( + SoundSimulator, + generate_map, +) + +# # # Metrics # # # + + +class SoundFieldFitness(Objective): + """Evaluates sound pressure level difference with reference.""" + + def __init__(self, domain, estimator, path_best_struct=None): + super().__init__(domain, estimator) + self.path_best_struct = path_best_struct + + if self.path_best_struct is None: + print('Please, set up the best spl matrix into configuration.') + print('The best structure will be generated randomly.') + rnd_structure = get_random_structure(domain) + best_spl = generate_map(domain, rnd_structure) + else: + best_structure = poly_from_comsol_txt(path_best_struct) + best_spl = self.estimator(best_structure) + best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) + micro = Microphone(matrix=best_spl).array() + best_spl = np.concatenate(micro[1]) + + self.best_spl = best_spl + + def _evaluate(self, ind: Structure): + spl = self.estimator(ind) + current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) + micro = Microphone(matrix=current_spl).array() + current_spl = np.concatenate(micro[1]) + l_f = np.sum(np.abs(self.best_spl - current_spl)) + return l_f + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 120], + [120, 120], + [120, 0], + [0, 0], + ], + name='main', + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + +opt_params = OptimizationParams( + optimizer='gefest_ga', + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=50, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + SoundFieldFitness( + domain_cfg, + SoundSimulator(domain_cfg, 10, None), + str(Path(__file__).parent) + '\\figures\\bottom_square.txt', + ), + ], +) diff --git a/cases/sound_waves/figures/bottom_square.txt b/cases/sound_waves/configuration/figures/bottom_square.txt similarity index 100% rename from cases/sound_waves/figures/bottom_square.txt rename to cases/sound_waves/configuration/figures/bottom_square.txt diff --git a/cases/sound_waves/configuration/sound_domain.py b/cases/sound_waves/configuration/sound_domain.py deleted file mode 100644 index 4e50f9bb9..000000000 --- a/cases/sound_waves/configuration/sound_domain.py +++ /dev/null @@ -1,55 +0,0 @@ -import numpy as np - -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.opt.setup import Setup -from gefest.core.structure.domain import Domain -from gefest.core.structure.prohibited import create_prohibited - -# ------------ -# USER-DEFINED CONFIGURATION OF DOMAIN FOR BREAKWATERS TASK -# ------------ - -grid_resolution_x = 300 # Number of points on x-axis -grid_resolution_y = 300 # Number of points on y-axis -coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid -coord_Y = np.linspace(20, 100, grid_resolution_y + 1) # Y coordinate for spatial grid - -grid = [grid_resolution_x, grid_resolution_y] # points grid - - -""" -Prohibited objects -""" -fixed_area = [[[45, 55], [55, 55], [55, 45], [45, 45], [45, 55]]] -prohibited = create_prohibited(fixed_area=fixed_area) - - -def configurate_domain(poly_num: int, points_num: int, is_closed: bool): - # ------------ - # GEFEST domain based on user-defined configuration_de - # ------------ - if is_closed: - min_points_num = 3 - else: - min_points_num = 2 - - geometry = Geometry2D(is_closed=is_closed) - domain = Domain( - allowed_area=[ - (min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y)), - ], - geometry=geometry, - max_poly_num=poly_num, - min_poly_num=1, - max_points_num=points_num, - min_points_num=min_points_num, - is_closed=is_closed, - prohibited_area=prohibited, - ) - task_setup = Setup(domain=domain) - - return domain, task_setup diff --git a/cases/sound_waves/configuration/sound_estimator.py b/cases/sound_waves/configuration/sound_estimator.py deleted file mode 100644 index 6d1aead06..000000000 --- a/cases/sound_waves/configuration/sound_estimator.py +++ /dev/null @@ -1,46 +0,0 @@ -import numpy as np -import pickle - -from test.test_sound_simulator import load_file_from_path -from gefest.core.structure.structure import Structure, get_random_structure -from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( - SoundSimulator, - generate_map, -) -from gefest.tools.estimators.estimator import Estimator - - -def configurate_estimator(domain: "Domain", path_best_struct=None): - # ------------ - # User-defined estimator - # it should be created as object with .estimate() method - # ------------ - sound = SoundSimulator(domain=domain) - - if path_best_struct is None: - print("please, set up the best spl matrix into configuration") - print("the best structure will be generated randomly") - rnd_structure = get_random_structure(domain) - best_spl = generate_map(domain, rnd_structure) - else: - best_structure = load_file_from_path(path_best_struct) - best_spl = sound.estimate(best_structure) - best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) - - # Loss for minimizing, it is optional function - def loss(struct: Structure, estimator): - spl = estimator.estimate(struct) - current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) - - l_f = np.sum(np.abs(best_spl - current_spl)) - - return l_f - - # ------------ - # GEFEST estimator - # ------------ - - # Here loss is an optional argument, otherwise estimator will be considered as loss for minimizing - estimator = Estimator(estimator=sound, loss=loss) - - return estimator diff --git a/cases/sound_waves/configuration/sound_optimizer.py b/cases/sound_waves/configuration/sound_optimizer.py deleted file mode 100644 index 31121627d..000000000 --- a/cases/sound_waves/configuration/sound_optimizer.py +++ /dev/null @@ -1,32 +0,0 @@ -from gefest.tools.optimizers.GA.GA import GA -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.optimizer import Optimizer - - -def configurate_optimizer(pop_size: int, - crossover_rate: int, - mutation_rate: int, - task_setup): - """ - ::TODO:: - Create abstract interface for configurations - """ - # ------------ - # User-defined optimizer - # it should be created as object with .step() method - # ------------ - params = GA.Params(pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[]) - - ga_optimizer = GA(params=params, - evolutionary_operators=default_operators(), - task_setup=task_setup) - - # ------------ - # GEFEST optimizer - # ------------ - optimizer = Optimizer(optimizer=ga_optimizer) - - return optimizer diff --git a/cases/sound_waves/configuration/sound_sampler.py b/cases/sound_waves/configuration/sound_sampler.py deleted file mode 100644 index 21070eda0..000000000 --- a/cases/sound_waves/configuration/sound_sampler.py +++ /dev/null @@ -1,23 +0,0 @@ -from gefest.tools.samplers.standard.standard import StandardSampler -from gefest.tools.samplers.sampler import Sampler - - -def configurate_sampler(domain): - """ - ::TODO:: - Create abstract interface for configurations - """ - # ------------ - # User-defined sampler - # it should be created as object with .sample() method - # ------------ - standard_sampler = StandardSampler() - - # ------------ - # GEFEST sampler, - # it consist of user defined sampler and configurated domain - # ------------ - sampler = Sampler(sampler=standard_sampler, - domain=domain) - - return sampler diff --git a/cases/sound_waves/main.py b/cases/sound_waves/main.py deleted file mode 100644 index 4fc890d9c..000000000 --- a/cases/sound_waves/main.py +++ /dev/null @@ -1,222 +0,0 @@ -import pickle -from functools import partial - -import numpy as np -from hyperopt import hp -from sqlalchemy import lambda_stmt -from gefest.core.opt.operators.selections import tournament_selection,roulette_selection -from gefest.core.algs.postproc.resolve_errors import Rules, apply_postprocess -from gefest.core.configs.optimization_params import OptimizationParams -from gefest.core.configs.tuner_params import TunerParams -from gefest.core.geometry import Structure -from gefest.core.geometry.datastructs.point import Point -from gefest.core.geometry.datastructs.polygon import Polygon -from gefest.core.geometry.domain import Domain -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.geometry.utils import get_random_structure -from gefest.core.opt.adapters.structure import StructureAdapter -from gefest.core.opt.operators.crossovers import ( - panmixis, - polygon_level_crossover, - structure_level_crossover, -) -from cases.sound_waves.microphone_points import Microphone -from gefest.core.opt.operators.mutations import ( - add_point, - add_poly, - drop_point, - drop_poly, - pos_change_point_mutation, - resize_poly, - rotate_poly, -) -from gefest.core.opt.tuning.tuner import GolemTuner -from gefest.core.structure.prohibited import create_prohibited -from gefest.core.viz.struct_vizualizer import GIFMaker -from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( - SoundSimulator, - generate_map, -) -from gefest.tools.fitness import Fitness -from gefest.tools.optimizers.GA.base_GA import BaseGA -from pathlib import Path -from poly_from_point import poly_from_comsol_txt -# pre domain params -grid_resolution_x = 300 # Number of points on x-axis -grid_resolution_y = 300 # Number of points on y-axis -coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid -coord_Y = np.linspace(20, 100, grid_resolution_y + 1) # Y coordinate for spatial grid -grid = [grid_resolution_x, grid_resolution_y] # points grid -fixed_area = [[[45, 55], [55, 55], [55, 45], [45, 45], [45, 55]]] - - -def load_file_from_path(path: str): - with open(path, 'rb') as f: - file = pickle.load(f) - f.close() - return file - - -if __name__ == '__main__': - class SoundSimulator_(SoundSimulator): - def __init__(self, domain, obstacle_map=None): - super().__init__(domain, obstacle_map=None) - self.duration = 200 - self.pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) - if ( - obstacle_map is not None - and (obstacle_map.shape[0], obstacle_map.shape[1]) == self.map_size - ): - print("** Map Accepted **") - self.obstacle_map = obstacle_map - elif obstacle_map is not None and obstacle_map.shape != self.map_size: - print("** Map size denied **") - self.obstacle_map = np.zeros((self.size_y, self.size_x)) - else: - self.obstacle_map = np.zeros((self.size_y, self.size_x)) - - # in the future all model can be loaded from configs - - # domain configuration - geometry = Geometry2D(is_closed=True, is_convex=True) - prohibited = create_prohibited(1, [], [], fixed_area=fixed_area) - domain = Domain( - allowed_area=[ - (min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y)), - ], - geometry=geometry, - max_poly_num=5, - min_poly_num=1, - max_points_num=10, - min_points_num=6, - prohibited_area=prohibited, - ) - - # tuner config - tp = TunerParams( - tuner_type='iopt', - n_steps_tune=2, - sampling_variance=0.1, - hyperopt_dist=hp.uniform, - ) - - # fitness function - class SoundFieldFitness(Fitness): - def __init__(self, domain, estimator, path_best_struct=None): - super().__init__(domain, SoundSimulator(domain=domain)) - self.path_best_struct = path_best_struct - - if self.path_best_struct is None: - print('please, set up the best spl matrix into configuration') - print('the best structure will be generated randomly') - rnd_structure = get_random_structure(domain) - best_spl = generate_map(domain, rnd_structure) - else: - best_structure = poly_from_comsol_txt(path_best_struct) - best_spl = self.estimator(best_structure) - best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) - micro = Microphone(matrix=best_spl).array() - best_spl = np.concatenate(micro[1]) - self.best_spl = best_spl - - def fitness(self, ind: Structure): - spl = self.estimator(ind) - current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) - - l_f = np.sum(np.abs(self.best_spl - current_spl)) - return l_f - - - path_to_init_figure = f'figures/bottom_square.txt' - # fitness estimator - #root_path = Path(__file__).parent.parent.parent - path_to_init_figure = f'figures/bottom_square.txt' - estimator = SoundFieldFitness( - domain, - SoundSimulator(domain, None), - None, - ) - - # optimization params config - opt_params = OptimizationParams( - crossovers=[ - polygon_level_crossover, - structure_level_crossover, - ], - crossover_prob=0.3, - crossover_each_prob=[0.0, 1.0], - mutations=[ - rotate_poly, - resize_poly, - add_point, - drop_point, - add_poly, - drop_poly, - pos_change_point_mutation, - ], - mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.00, 0.00, 0.25], - pair_selector=panmixis, - postprocess_attempts=3, - domain=domain, - postprocessor=apply_postprocess, - estimator=estimator, - postprocess_rules=[ - Rules.not_out_of_bounds.value, - Rules.not_closed_polygon.value, - Rules.not_self_intersects.value, - Rules.not_too_close_polygons.value, - Rules.not_overlaps_prohibited.value, - Rules.not_too_close_points.value, - ], - extra=3, - n_jobs=-1, - golem_adapter=StructureAdapter, - tuner_cfg=tp, - n_steps=1, - pop_size=3, - ) - - optimizer = BaseGA(opt_params) - optimized_pop = optimizer.optimize() - - # make mp4 of optimized pop here if need - - - - # pts = [[87.8183662653238, 23.51407028817777], - # [69.58377821212272, 34.2536199692584], - # [43.580509484692485, 92.58122224308758], - # [68.48530826424907, 94.10533753906533], - # [87.8183662653238, 23.51407028817777]] #899529.0143030069 - # s = Structure(polygons=[Polygon([Point(p[0], p[1]) for p in pts])], fitness=[899529.999]) - - # opt_params.estimator.estimator.estimate(s) - - - # gm = GIFMaker(domain=domain) # mp4 maker actually - # gm.create_frame(_structure_, {'Optimized': _structure_.fitness}) # make frames for each stucture you want - # gm.make_gif('tuning', 500, ) # save file - - from gefest.core.utils.functions import parse_structs - - pop = parse_structs("C:\\Users\\mangaboba\\Downloads\\Telegram Desktop\\00075.log") - pop = sorted(pop, key=lambda x: x.fitness) - print(pop[0].fitness) - tuner = GolemTuner(opt_params) - n_best_for_tune = 1 - tuned_individuals = tuner.tune(pop[0]) - - - # tuned_individuals = tuner.tune(optimized_pop[0:n_best_for_tune]) - - # make mp4 of tuned pop here if need - - # code to create mp4 - ### - # gm = GIFMaker(domain=domain) # mp4 maker actually - # gm.create_frame(_structure_, {'Optimized': _structure_.fitness}) # make frames for each stucture you want - # gm.make_gif('tuning', 500, ) # save file diff --git a/cases/sound_waves/microphone_points.py b/cases/sound_waves/microphone_points.py index 116de4ded..633db5ce3 100644 --- a/cases/sound_waves/microphone_points.py +++ b/cases/sound_waves/microphone_points.py @@ -1,49 +1,29 @@ import numpy as np -class Microphone: - ''' - Class that contain a slice of microphone points where makes a sound measurements - ''' - def __init__(self,matrix = np.random.rand(120,120)): - self.matrix = matrix - def array(self): - arrs =[ - # [[self.matrix[0, -1], self.matrix[120 // 2, -1], self.matrix[-1, -1]]], - [[self.matrix[0, 120 // 2], self.matrix[0, 3 * 120 // 4], self.matrix[0, -1], self.matrix[3 * 120 // 4, -1], - self.matrix[120 // 2, -1], self.matrix[120 // 4, -1], self.matrix[-1, -1], - self.matrix[-1, 3 * 120 // 4], self.matrix[-1, 120 // 2]]], +class Microphone: + """Slices microphone points where makes a sound measurements.""" + def __init__(self, matrix: np.ndarray = None): + self.matrix = np.random.rand(120, 120) + def array(self): + """Generates np.array of sound pressure.""" + arrs = [ + [ + [ + self.matrix[0, 120 // 2], + self.matrix[0, 3 * 120 // 4], + self.matrix[0, -1], + self.matrix[3 * 120 // 4, -1], + self.matrix[120 // 2, -1], + self.matrix[120 // 4, -1], + self.matrix[-1, -1], + self.matrix[-1, 3 * 120 // 4], + self.matrix[-1, 120 // 2], + ] + ], [self.matrix[0, 64:-1][::4], self.matrix[7:-7, -1][::3], self.matrix[-1, 64:-1][::4]], [self.matrix[0, 59:-1], self.matrix[:, -1], self.matrix[-1, 59:-1]], self.matrix, ] return arrs - # def reflect_array(self): - # arrs =[ - # [[self.matrix[0, 0], self.matrix[120 // 2, 0], self.matrix[-1, 0]]], - # [[self.matrix[0, 120 // 2], self.matrix[0, 120 // 4], self.matrix[0, 0], self.matrix[3 * 120 // 4, 0], self.matrix[120 // 2, 0], self.matrix[120 // 4, 0], self.matrix[-1, 0], - # self.matrix[-1, 120 // 4], self.matrix[-1, 120 // 2]]], - # [self.matrix[0, :60],self.matrix[:,0],self.matrix[-1,:60]], - # [self.matrix[0, :60],self.matrix[:,0],self.matrix[-1,:60],self.matrix[11:109,55],self.matrix[109,55:109],self.matrix[11:109,109],self.matrix[10,55:109]] - # ] - # return arrs - # coords = {'points': [ - # #[[120, 120], [120, 120 // 2], [120, 0]], - # [[120 // 2, 120], [3 * 120 // 4, 120], [120, 120], [120, 3 * 120 // 4], [120, 120 // 2], [120, 120 // 4], - # [120, 0], [3 * 120 // 4, 0], [120 // 2, 0]], - # [[56,119],[58,119]]+[[60+top,119] for top in range (0,60,4)]+[[119,119-middle] for middle in range (0,119,4)]+[[119-bot,1] for bot in range (0,60,4)]+[[58,1],[56,1]], - # [[[110, 110],[110 ,10],[55,10],[55, 110],[110, 110]], [[60, 119], [119, 119],[119,1],[60,1]]], - # [[1,1],[1,119],[119,119],[119,1],[1,1]] - # ] - # } - -# m = Microphone(matrix = np.random.rand(120,120)) -# a =m.coords -# print(a) -# lenght = sum([len(i) for i in a[1]]) -#cnte = np.concatenate(a[-1]) -#cnte = np.concatenate(a[-1]) -# #ss = [np.concatenate(a[3]) for i in a[3]] -# print(sum([sum(i) for i in a[3]])) -# # print() \ No newline at end of file diff --git a/cases/sound_waves/sound_viz.py b/cases/sound_waves/sound_viz.py index eb5d470da..7f551ff3a 100644 --- a/cases/sound_waves/sound_viz.py +++ b/cases/sound_waves/sound_viz.py @@ -1,35 +1,30 @@ + import matplotlib.pyplot as plt -from cases.main_conf import opt_params -from cases.sound_waves.configuration import sound_domain -from gefest.tools.estimators.simulators.sound_wave.sound_interface import SoundSimulator -from test.test_sound_simulator import load_file_from_path +from gefest.core.configs.utils import load_config +from gefest.tools.utils import load_pickle -init_path = "best_structure.pickle" -optimized_path = "optimized_structure.pickle" +init_path = 'best_structure.pickle' +optimized_path = 'optimized_structure.pickle' +if __name__ == '__main__': -if __name__ == "__main__": - domain, _ = sound_domain.configurate_domain( - poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed, - ) + opt_params = load_config('F:\\Git_Repositories\\gef_ref\\GEFEST\\cases\\sound_waves\\configuration\\config.py') - init_structure = load_file_from_path(init_path) - optimized_archive = load_file_from_path(optimized_path) + init_structure = load_pickle(init_path) + optimized_archive = load_pickle(optimized_path) optimized_structure = optimized_archive[0] - sound = SoundSimulator(domain) + sound_sim = opt_params.objectives[0].estimator - spl_0 = sound.estimate(init_structure) - spl_1 = sound.estimate(optimized_structure) + spl_0 = sound_sim.estimate(init_structure) + spl_1 = sound_sim.estimate(optimized_structure) fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(12, 4), sharey=True) - spl_plt_0 = ax1.pcolormesh(spl_0, cmap="coolwarm") + spl_plt_0 = ax1.pcolormesh(spl_0, cmap='coolwarm') plt.colorbar(spl_plt_0, ax=ax1) - spl_plt_1 = ax2.pcolormesh(spl_1, cmap="coolwarm") + spl_plt_1 = ax2.pcolormesh(spl_1, cmap='coolwarm') plt.colorbar(spl_plt_1, ax=ax2) plt.show() diff --git a/cases/sound_waves/vizualization.py b/cases/sound_waves/vizualization.py index c3abfbaf3..4301e61bb 100644 --- a/cases/sound_waves/vizualization.py +++ b/cases/sound_waves/vizualization.py @@ -2,36 +2,52 @@ import numpy as np from cases.sound_waves.poly_from_point import poly_from_comsol_txt -from gefest.core.utils.functions import parse_structs,project_root +from gefest.core.utils.functions import parse_structs, project_root -pr_root=project_root() -#p_s = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-10_16_25_55/tuned.log')[0] +pr_root = project_root() +# p_s = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-10_16_25_55/tuned.log')[0] tuned = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-12_12_27_12/tuned.log')[0] -tuned_2 = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-11_12_58_51/00100.log')[-1] -tuned_1 = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-11_15_25_40/00100.log')[-1] +tuned_2 = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-11_12_58_51/00100.log')[ + -1 +] +tuned_1 = parse_structs(f'{pr_root}/cases/sound_waves/logs/run_name_2023-10-11_15_25_40/00100.log')[ + -1 +] grid_resolution_x = 300 # Number of points on x-axis grid_resolution_y = 300 coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid coord_Y = np.linspace(20, 100, grid_resolution_y + 1) -allowed_area=[ - (min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y)), - ] +allowed_area = [ + (min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y)), +] path_to_init_figure = f'figures/bottom_square.txt' best_structure = poly_from_comsol_txt(path_to_init_figure) -d_p=tuned[0].points +d_p = tuned[0].points tuned_p = tuned_1[0].points tuned_2_p = tuned_2[0].points print([i[0] for i in allowed_area]) -plt.plot([i[0] for i in allowed_area],[i[1] for i in allowed_area]) -plt.plot([p.coords[0] for p in d_p],[p.coords[1] for p in d_p],label='tuned') -plt.plot([p.coords[0] for p in tuned_p],[p.coords[1] for p in tuned_p],label=f'notTuned_1,fitness :{tuned_1.fitness[0]}') -plt.plot([p.coords[0] for p in tuned_2_p],[p.coords[1] for p in tuned_2_p],label=f'notTuned_2,fitness :{tuned_2.fitness[0]}') -plt.plot([x[0] for x in [i.coords for i in best_structure.polygons[0].points]],[x[1] for x in [i.coords for i in best_structure.polygons[0].points]],label='Init fig') +plt.plot([i[0] for i in allowed_area], [i[1] for i in allowed_area]) +plt.plot([p.coords[0] for p in d_p], [p.coords[1] for p in d_p], label='tuned') +plt.plot( + [p.coords[0] for p in tuned_p], + [p.coords[1] for p in tuned_p], + label=f'notTuned_1,fitness :{tuned_1.fitness[0]}', +) +plt.plot( + [p.coords[0] for p in tuned_2_p], + [p.coords[1] for p in tuned_2_p], + label=f'notTuned_2,fitness :{tuned_2.fitness[0]}', +) +plt.plot( + [x[0] for x in [i.coords for i in best_structure.polygons[0].points]], + [x[1] for x in [i.coords for i in best_structure.polygons[0].points]], + label='Init fig', +) plt.legend() plt.show() -print() \ No newline at end of file +print() diff --git a/gefest/tools/estimators/simulators/comsol/microfluid_file/__init__.py b/gefest/tools/estimators/simulators/comsol/microfluid_file/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/cases/sound_waves/poly_from_point.py b/gefest/tools/utils.py similarity index 58% rename from cases/sound_waves/poly_from_point.py rename to gefest/tools/utils.py index 89c5f145d..63920ea9f 100644 --- a/cases/sound_waves/poly_from_point.py +++ b/gefest/tools/utils.py @@ -1,18 +1,33 @@ +import pickle + import numpy as np -from gefest.core.geometry import Point, Polygon, Structure import pandas as pd -def poly_from_comsol_txt(path='figures/bottom_square.txt'): - """ + +from gefest.core.geometry import Point, Polygon, Structure + + +def poly_from_comsol_txt(path: str): + """Loads txt representation of comsol model. Args: path: path to txt file with comsol points Returns: + Structure """ res = pd.read_csv(path, sep=' ', header=None) points = [[int(round(res.iloc[i, 0], 2)), int(round(res.iloc[i, 1], 2))] for i in res.index] points = [Point(i[0], i[1]) for i in np.array(points)] - poly = Polygon( points=points) + poly = Polygon(points=points) struct = Structure(polygons=[poly]) return struct + + +def load_pickle(path: str): + """Loads data from pickle.""" + with open(path, 'rb') as f: + data = pickle.load(f) + f.close() + + return data From 7d638bdbe1c82b742a4980816022aba42e0f2d2b Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Sat, 11 Nov 2023 23:47:48 +0300 Subject: [PATCH 46/66] add tuners tutorial --- docs/source/index.rst | 2 +- docs/source/tutorials/index.rst | 8 ++ docs/source/tutorials/tuners.rst | 77 +++++++++++ docs/tutorials/sample.rst | 214 ------------------------------- 4 files changed, 86 insertions(+), 215 deletions(-) create mode 100644 docs/source/tutorials/index.rst create mode 100644 docs/source/tutorials/tuners.rst delete mode 100644 docs/tutorials/sample.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index 458ea7b65..9dafeae06 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -12,7 +12,7 @@ Content: :maxdepth: 1 gefest/index - components/index + tutorials/index api/index contribution faq diff --git a/docs/source/tutorials/index.rst b/docs/source/tutorials/index.rst new file mode 100644 index 000000000..79c3f24ba --- /dev/null +++ b/docs/source/tutorials/index.rst @@ -0,0 +1,8 @@ +Tutorials +========= + +.. toctree:: + :glob: + :maxdepth: 1 + + tuners diff --git a/docs/source/tutorials/tuners.rst b/docs/source/tutorials/tuners.rst new file mode 100644 index 000000000..a445d8737 --- /dev/null +++ b/docs/source/tutorials/tuners.rst @@ -0,0 +1,77 @@ +Tuners +====== + +GEFEST provides api for 4 tuners from `GOLEM `_\ : + +.. list-table:: + :header-rows: 1 + + * - Name + - iopt + - optuna + - sequential + - simultaneous + * - Nodes bypass + - simultaneous + - simultaneous + - sequential + - simultaneous + * - Backend + - `iOpt `_ + - `Optuna `_ + - `Hyperopt `_ + - `Hyperopt `_ + * - Multi objective + - No + - Yes + - No + - No + + +How to tune +----------- + +To initialize tuner and run tuning, similarly to the optimizers, you need an ``OptimizationParams`` with defined ``TunerParams`` in it and also one or more ``Structure``. + +More details and examples about ``OptimizationParams`` you can find in ``cases`` and API referece. + +Here we will take a closer look at several ``TunerParams`` attributes which may be unclear. + +.. code-block:: python + + from gefest.tools.tuners.utils import verage_edge_variance + + tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=10, + hyperopt_dist='uniform', + variance_generator=verage_edge_variance, + verbose=True, + timeout_minutes=60, + ) + + +* + ``tuner_type`` is responsible for which tuner will be used. + +* + ``hyperopt_dist`` is the type of distribution from which random values will be taken during tuning. Available values are names of `hpyeropt hp module finctions `_. + +* + ``variance_generator`` is function that generates bounds of intervals from which random values should pe picked for all components of all point in structure. If normal distribution set they will be automatically converted into means and varicances. + +``verage_edge_variance`` function setes variance to 50% of average edge length for each polygon. This solution can be much more "greedy" than necessary, which can lead to many invalid intermediate variants during tuning. To improve fitness in fewer tuning steps, it is worth creating variance generation functions for selecting smaller intervals based on the conditions of a specific task. + +Now that the ``OptimizationParams`` have been defined and some structures have been created, we can run tuning with couple lines of code: + +.. code-block:: python + + from gefest.core.configs.optimization_params import OptimizationParams + from gefest.core.geometry.datastructs.structure import Structure + from gefest.tools.tuners.tuner import GolemTuner + + structs: list[Structure] | Structure = ... + opt_params: OptimizationParams = ... + + tuner = GolemTuner(opt_params) + tuned_structs = tuner.tune(structs) diff --git a/docs/tutorials/sample.rst b/docs/tutorials/sample.rst deleted file mode 100644 index 835254c60..000000000 --- a/docs/tutorials/sample.rst +++ /dev/null @@ -1,214 +0,0 @@ -Tutorial for beginners -====================== - -*Here is an example of breakwaters optimization. SWAN model need to be installed. -You can find our configuration in simulators folder in INPUT file. -It consist water area with two fixed breakwaters, bathymetry (specified in bathymetry folder) and land. -Output file (wave height at each point of the water are) located is in the 'r' folder.* - -**1. Install last stable version of the GEFEST** - -Tested on python 3.7 - -.. code-block:: python - - pip install https://github.com/ITMO-NSS-team/GEFEST/archive/master.zip - -**2. Import needed libraries** - -.. code-block:: python - - import timeit - import pickle - from types import SimpleNamespace - - import matplotlib.pyplot as plt - import numpy as np - - from gefest.core.geometry.geometry_2d import Geometry2D - from gefest.tools.estimators.simulators.swan.swan_interface import Swan - from gefest.core.opt.setup import Setup - from gefest.tools.optimizers.optimizer import Optimizer - from gefest.core.structure.domain import Domain - from gefest.core.structure.structure import Structure - from gefest.core.opt.analytics import EvoAnalytics - from gefest.core.viz.struct_vizualizer import StructVizualizer - from gefest.tools.estimators.estimator import Estimator - from gefest.tools.samplers.standard.standard import StandardSampler - from gefest.tools.samplers.sampler import Sampler - from gefest.tools.optimizers.SPEA2.SPEA2 import SPEA2 - from gefest.core.opt.operators.operators import default_operators - from gefest.core.opt.gen_design import design - from gefest.tools.estimators.simulators.swan import swan_model - from gefest.core.configs.utils import create_prohibited - -**3. Settings for domain to be researched** - -*You have to set grid resolution on each axis (x and y), spatial grid -and coordinates of your target (or targets) for which you want to optimize height of wave* - -.. code-block:: python - - grid_resolution_x = 83 # Number of points on x-axis - grid_resolution_y = 58 # Number of points on y-axis - coord_X = np.linspace(0, 2075, grid_resolution_x + 1) # X coordinate for spatial grid - coord_Y = np.linspace(0, 1450, grid_resolution_y + 1) # Y coordinate for spatial grid - X, Y = np.meshgrid(coord_X, coord_Y) # Two dimensional spatial grid - grid_target_X = 25 # X-grid coordinate of your target - grid_target_Y = 25 # Y-grid coordinate of your target - -**4. Create domain grid and coordinates of your targets** - -*As you can see, in this exampe we consider only one target* - -.. code-block:: python - - grid = [grid_resolution_x, grid_resolution_y] - targets = [[grid_target_X, grid_target_Y]] - -**5. Set up domain configuration that GEFEST requires for every task** - -*Here we are working with open polygons* - -.. code-block:: python - - fixed_area = [ - [[471, 5], [1335, 2], [1323, 214], [1361, 277], [1395, 327], [1459, 405], [1485, 490], [1449, 521], [1419, 558], - [1375, 564], [1321, 469], [1248, 318], [1068, 272], [921, 225], [804, 231], [732, 266], [634, 331], [548, 405], - [485, 482], [424, 569], [381, 625], [310, 662], [271, 684], [244, 706], [203, 708], [182, 647], [214, 638], - [234, 632], [275, 588], [346, 475], [427, 366], [504, 240], [574, 166], [471, 5]], - [[652, 1451], [580, 1335], [544, 1253], [468, 1190], [439, 1170], [395, 1150], [378, 1115], [438, 1070], - [481, 1059], [508, 1076], [539, 1133], [554, 1183], [571, 1244], [594, 1305], [631, 1366], [657, 1414], - [671, 1449], [652, 1451]] - ] - fixed_targets = [[coord_X[26], coord_Y[49]], [coord_X[37], coord_Y[11]], [coord_X[60], coord_Y[5]]] - fixed_poly = [ - [[878, 1433], [829, 1303], [739, 1116], [619, 995], [447, 962], [306, 1004], [254, 1092], [241, 1184], - [269, 1244], - [291, 1338], [370, 1450]], - [[878, 1433], [829, 1303], [739, 1116], [619, 995], [447, 962], [274, 868], [180, 813], [126, 717], [146, 580], - [203, 480], [249, 469], [347, 471]] - ] - - # Creation of prohibited structure consist of targets, lines, areas - prohibited_structure = create_prohibited( - targets=fixed_targets, - fixed_area=fixed_area, - fixed_points=fixed_poly - ) - - fixed_points = [[[1000, 50], [700, 600], [800, 800]], - [[1900, 540], [1750, 1000]]] - is_closed = False - geometry = Geometry2D(is_closed=is_closed) - domain = Domain(allowed_area=[(min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y))], - geometry=geometry, - max_poly_num=3, - min_poly_num=1, - max_points_num=10, - min_points_num=2, - prohibited_area=prohibited_structure, - fixed_points=fixed_points, - is_closed=is_closed) - task_setup = Setup(domain=domain) - -**6. Preparation of the SWAN model** - -*You need to set path to folder with swan.exe file. -Our SWAN interface uses this path, domain grid, GEFEST domain and coordinates of targets* - -.. code-block:: python - - path = swan_model.__file__[:-11] - swan = Swan(path=path, - targets=targets, - grid=grid, - domain=domain) - max_length = np.linalg.norm(np.array([max(coord_X) - min(coord_X), max(coord_Y) - min(coord_Y)])) - -**7. Definition of the cost function and estimator** - -*There is a cost function as sum of cost of structure and wave height at the target points* - -.. code-block:: python - - def cost(struct, estimator): - max_length = np.linalg.norm( - np.array([max(coord_X) - min(coord_X), - max(coord_Y) - min(coord_Y)])) - lengths = 0 - for poly in struct.polygons: - if poly.id != 'fixed': - length = geometry.get_length(poly) - lengths += length - - _, hs = estimator.estimate(struct) - loss = [hs, 2 * lengths / max_length] - - return loss - - estimator = Estimator(estimator=swan, loss=cost) - -**8. Definition of the sampler** - -.. code-block:: python - - sampler = Sampler(sampler=StandardSampler(), domain=domain) - -**9. Definition of the optimizer** - -.. code-block:: python - - pop_size = 10 - n_steps = 10 - - params = SPEA2.Params(pop_size=pop_size, - crossover_rate=0.6, - mutation_rate=0.6, - mutation_value_rate=[]) - - spea2_optimizer = SPEA2(params=params, - evolutionary_operators=default_operators(), - task_setup=task_setup) - -**10. Run optimization** - -.. code-block:: python - - start = timeit.default_timer() - optimized_pop = design(n_steps=n_steps, - pop_size=pop_size, - estimator=estimator, - sampler=sampler, - optimizer=spea2_optimizer) - spend_time = timeit.default_timer() - start - -**11. Vizualization of the result** - -.. code-block:: python - - with open(f'HistoryFiles/performance_{n_steps-1}.pickle', 'rb') as f: - performance = pickle.load(f) - with open(f'HistoryFiles/population_{n_steps-1}.pickle', 'rb') as f: - population = pickle.load(f) - - performance_sum = [sum(pair) for pair in performance] - idx_of_best = performance_sum.index(min(performance_sum)) - - visualiser = StructVizualizer(task_setup.domain) - plt.figure(figsize=(7, 7)) - - best = performance[idx_of_best] - info_optimized = { - 'spend time': f'{spend_time:.2f}', - 'fitness': f'[{best[0]:.3f}, {best[1]:.3f}]', - 'type': 'prediction'} - visualiser.plot_structure( - [domain.prohibited_area, population[idx_of_best]], - ['prohibited structures', info_optimized], - [':', '-']) - - From a59db488ca988c446d9978dde8f11767cc73db41 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 13 Nov 2023 01:27:03 +0300 Subject: [PATCH 47/66] add optimizers tutorial --- docs/source/gefest/quickstart.rst | 2 + docs/source/tutorials/index.rst | 1 + docs/source/tutorials/optimizers.rst | 78 ++++++++++++++++++++++++++++ docs/source/tutorials/tuners.rst | 26 ++++++---- 4 files changed, 96 insertions(+), 11 deletions(-) create mode 100644 docs/source/tutorials/optimizers.rst diff --git a/docs/source/gefest/quickstart.rst b/docs/source/gefest/quickstart.rst index bc977be9d..8cee123c2 100644 --- a/docs/source/gefest/quickstart.rst +++ b/docs/source/gefest/quickstart.rst @@ -1,3 +1,5 @@ +.. _quickstart: + Quickstart ========== diff --git a/docs/source/tutorials/index.rst b/docs/source/tutorials/index.rst index 79c3f24ba..fed3c4f8c 100644 --- a/docs/source/tutorials/index.rst +++ b/docs/source/tutorials/index.rst @@ -5,4 +5,5 @@ Tutorials :glob: :maxdepth: 1 + optimizers tuners diff --git a/docs/source/tutorials/optimizers.rst b/docs/source/tutorials/optimizers.rst new file mode 100644 index 000000000..9330ce464 --- /dev/null +++ b/docs/source/tutorials/optimizers.rst @@ -0,0 +1,78 @@ +.. role:: raw-html-m2r(raw) + :format: html + +Optimizers +========== + +To solve the optimization problem, 4 optimizers are available in GEFEST - 2 native and 2 based on GOLEM. +All of them have a single interface and can be imported from ``gefest.tools.optimizers``. + +.. list-table:: Optimizers comparation + :header-rows: 1 + + * - + - ``BaseGA`` + - ``SPEA2`` + - ``StandardOptimizer`` + - ``SurrogateOptimizer`` + * - **Backend** + - GEFEST + - GEFEST + - GOLEM + - GOLEM + * - **Muti objective** + - :raw-html-m2r:`No` + - :raw-html-m2r:`Yes` + - :raw-html-m2r:`Yes` + - :raw-html-m2r:`Yes` + * - **Evolutionary schemes** + - :raw-html-m2r:`No` + - :raw-html-m2r:`No` + - :raw-html-m2r:`Yes` + - :raw-html-m2r:`Yes` + * - **Adaptive mutation strategies** + - :raw-html-m2r:`No` + - :raw-html-m2r:`No` + - :raw-html-m2r:`Yes` + - :raw-html-m2r:`Yes` + * - **Surrogate optimization** + - :raw-html-m2r:`No` + - :raw-html-m2r:`No` + - :raw-html-m2r:`No` + - :raw-html-m2r:`Yes` + +Some details +------------ + +``BaseGA`` implements the base genetic algorithm, that performs generation of the initial population, +crossover and mutation operations, fitness estimation and selection. +Each of the steps is encapsulated in a separate executor, which allows you to change the logic of individual steps. +Thus, BaseGA essentially only implements the sequence of their call. + +``SPEA2`` implements Strength Pareto Evolutionary Algorithm 2 for multiobjective optimization. + +``StandardOptimizer`` is a wrapper for GOLEM`s ``EvoGraphOptimizer`` optimizer. +It allows to select different evolutionary schemes, adaptive mutation strategies and some other features. +To use multiobjective optimization set `golem_selection_type` in ``OptimizationParams`` config to 'spea2'. + +``SurrogateOptimizer`` is the extension of ``StandardOptimizer`` with the ability +to use a surrogate model to evaluate fitness along with the main estimator. + +How to run +---------- + +Easiest way to run optimizer described in :ref:`quickstart`. + +If you want to get some more control you can do it in code by import corresponding classes: + +.. code-block:: python + + from gefest.tools.optimizers BaseGA, SPEA2, StandardOptimizer, SurrogateOptimizer + + from gefest.core.configs.optimization_params import OptimizationParams + from gefest.core.geometry.datastructs.structure import Structure + + opt_params: OptimizationParams = ... + + optimizer = BaseGA(opt_params) + optimized_population = optimizer.optimize(n_steps=42) diff --git a/docs/source/tutorials/tuners.rst b/docs/source/tutorials/tuners.rst index a445d8737..af74332c6 100644 --- a/docs/source/tutorials/tuners.rst +++ b/docs/source/tutorials/tuners.rst @@ -1,39 +1,43 @@ +.. role:: raw-html-m2r(raw) + :format: html + Tuners ====== GEFEST provides api for 4 tuners from `GOLEM `_\ : -.. list-table:: +.. list-table:: Tuners comparation :header-rows: 1 - * - Name + * - - iopt - optuna - sequential - simultaneous - * - Nodes bypass + * - **Nodes bypass** - simultaneous - simultaneous - sequential - simultaneous - * - Backend + * - ****Backend** - `iOpt `_ - `Optuna `_ - `Hyperopt `_ - `Hyperopt `_ - * - Multi objective - - No - - Yes - - No - - No + * - **Multi objective** + - :raw-html-m2r:`No` + - :raw-html-m2r:`Yes` + - :raw-html-m2r:`No` + - :raw-html-m2r:`No` How to tune ----------- -To initialize tuner and run tuning, similarly to the optimizers, you need an ``OptimizationParams`` with defined ``TunerParams`` in it and also one or more ``Structure``. +To initialize tuner and run tuning, similarly to the optimizers, you need an ``OptimizationParams`` +with defined ``TunerParams`` and also one or more ``Structure`` objects. -More details and examples about ``OptimizationParams`` you can find in ``cases`` and API referece. +More details about ``OptimizationParams`` you can find in `cases` and `API referece` sections of this documentation. Here we will take a closer look at several ``TunerParams`` attributes which may be unclear. From 216a2203e123bed9f85763f6e5c44b66835f4974 Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Wed, 8 Nov 2023 17:58:14 +0300 Subject: [PATCH 48/66] add PRE test --- gefest/core/opt/postproc/rules.py | 7 +- test/old_test/test_validation.py | 155 ++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 test/old_test/test_validation.py diff --git a/gefest/core/opt/postproc/rules.py b/gefest/core/opt/postproc/rules.py index a831512e1..dcd613051 100644 --- a/gefest/core/opt/postproc/rules.py +++ b/gefest/core/opt/postproc/rules.py @@ -306,7 +306,12 @@ def correct( def _forbidden_validity(validity): - return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity + #print(validity,validity != 'Valid Geometry' and 'Self-intersection' not in validity,'Valid Geometry' in validity,'Ring Self-intersection' in validity) + if 'Valid Geometry' in validity: + return False + if 'Self-intersection' in validity: + return True + #return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity class Rules(Enum): diff --git a/test/old_test/test_validation.py b/test/old_test/test_validation.py new file mode 100644 index 000000000..19a300537 --- /dev/null +++ b/test/old_test/test_validation.py @@ -0,0 +1,155 @@ +import pytest + +from gefest.core.algs.postproc.rules import Rules +from gefest.core.geometry.geometry import Geometry +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.geometry.domain import Domain +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.algs.geom.validation import * + + +import matplotlib.pyplot as plt +geometry = Geometry2D() +prohibited_area = [(30,30), + (30,50), + (50,50), + (50,30), + (30,30)] +prohibit_intersect = [(x,y-5) for x,y in prohibited_area] +prohibit_intersect_2 = [(x-5,y-5) for x,y in prohibited_area] +domain = Domain(allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ]) +"""allowed area for Domain() is [(0, 0), + (0, 100), + (100, 100), + (100, 0)] + +""" +def plotc(coords): + plt.plot([p[0] for p in coords],[p[1] for p in coords]) + + +def poly_from_coords(coords): + return Polygon(points=[Point(*coords) for coords in coords]) + + +rules = Rules +poly_width = 10 +poly_length = 20 +# creating a testing polygons via corner points +rectangle_points = [ + (0, 0), + (0, poly_length), + (poly_width, poly_length), + (poly_width, 0), +] +rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points] +) + +triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] +triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points] +) + +out_points = [Point(x + 200, y + 200) for (x, y) in rectangle_points] +out_poly = Polygon(points=out_points) + +self_intersected_poly = [(2,2),(3,8),(2,1),(1,4),(9,9),(2,2)] +self_intersected_poly_open = [(2,2),(3,8),(2,1),(1,4),(9,9)] +self_intersected_poly_2 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4)] +self_intersected_poly_3 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] +self_intersected_poly_4 = [(4,4),(4,2),(2,2),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] +not_self_intersected_poly_closed = [(4,4),(4,2),(2,2),(2,4),(4,4)] +not_self_intersected_poly_open = [(4,4),(4,2),(2,2),(2,4)] +plotc([(1, 1), + (1, poly_length), + (poly_width, poly_length), + (poly_width, 1)]) +plotc(rectangle_points) +plotc(prohibited_area) +plotc(prohibit_intersect_2) +#plotc(self_intersected_poly_2) + + +structure_for_check = Structure(polygons=([poly_from_coords(coords) for coords in [self_intersected_poly,self_intersected_poly_open,not_self_intersected_poly_closed,not_self_intersected_poly_open]])) + +rl_slf_inter = [rules.not_self_intersects.value.validate(structure_for_check,idx_poly_with_error=i,domain=domain) for i in range(len(structure_for_check.polygons))] +plt.show() +def test_intersection(): + intersected_points = [ + (1, 1), + (1, poly_length), + (poly_width, poly_length), + (poly_width, 1), + ] + intersected_rectangle_poly = Polygon(points=[Point(*coords) for coords in intersected_points] + ) + structure = Structure([rectangle_poly, intersected_rectangle_poly]) + assert intersection(structure, domain) + + structure = Structure([rectangle_poly, out_poly]) + assert not intersection(structure, domain) + + +def test_out_off_bound(): + inside_points = [ + (1, 1), + (1, poly_length), + (poly_width, poly_length), + (poly_width, 1), + ] + inside_rectangle_poly = Polygon(points=[Point(*coords) for coords in inside_points] + ) + structure = Structure([inside_rectangle_poly]) + assert not out_of_bound(structure, domain) + + structure = Structure([out_poly]) + assert out_of_bound(structure, domain) + + +def test_too_close(): + structure = Structure([rectangle_poly, triangle_poly]) + assert too_close(structure, domain) + + structure = Structure([rectangle_poly, out_poly]) + assert not too_close(structure, domain) + + +def test_self_intersection(): + incorrect_points = [ + (0, 0), + (0, poly_length), + (poly_width, poly_length), + (poly_width - 5, poly_length - 5), + (poly_width, poly_length + 10), + (0, 0), + ] + incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points] + ) + structure = Structure([incorrect_poly]) + assert self_intersection(structure) + + rebuilt_poly = geometry.get_convex(incorrect_poly) + structure = Structure([rebuilt_poly]) + assert not self_intersection(structure) + + +def test_unclosed_poly(): + structure = Structure([rectangle_poly]) + assert unclosed_poly(structure, domain) + + closed_rectangle_points = [ + (0, 0), + (0, poly_length), + (poly_width, poly_length), + (poly_width, 0), + (0, 0), + ] + closed_rectangle_poly = Polygon(points=[Point(*coords) for coords in closed_rectangle_points] + ) + structure = Structure([closed_rectangle_poly]) + assert not unclosed_poly(structure, domain) From 083833d344ac621f4c33816b8260957fcd7b6cc5 Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Mon, 13 Nov 2023 13:49:53 +0300 Subject: [PATCH 49/66] add validation test --- test/test_validation.py | 155 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 test/test_validation.py diff --git a/test/test_validation.py b/test/test_validation.py new file mode 100644 index 000000000..19a300537 --- /dev/null +++ b/test/test_validation.py @@ -0,0 +1,155 @@ +import pytest + +from gefest.core.algs.postproc.rules import Rules +from gefest.core.geometry.geometry import Geometry +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.geometry.domain import Domain +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.algs.geom.validation import * + + +import matplotlib.pyplot as plt +geometry = Geometry2D() +prohibited_area = [(30,30), + (30,50), + (50,50), + (50,30), + (30,30)] +prohibit_intersect = [(x,y-5) for x,y in prohibited_area] +prohibit_intersect_2 = [(x-5,y-5) for x,y in prohibited_area] +domain = Domain(allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ]) +"""allowed area for Domain() is [(0, 0), + (0, 100), + (100, 100), + (100, 0)] + +""" +def plotc(coords): + plt.plot([p[0] for p in coords],[p[1] for p in coords]) + + +def poly_from_coords(coords): + return Polygon(points=[Point(*coords) for coords in coords]) + + +rules = Rules +poly_width = 10 +poly_length = 20 +# creating a testing polygons via corner points +rectangle_points = [ + (0, 0), + (0, poly_length), + (poly_width, poly_length), + (poly_width, 0), +] +rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points] +) + +triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] +triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points] +) + +out_points = [Point(x + 200, y + 200) for (x, y) in rectangle_points] +out_poly = Polygon(points=out_points) + +self_intersected_poly = [(2,2),(3,8),(2,1),(1,4),(9,9),(2,2)] +self_intersected_poly_open = [(2,2),(3,8),(2,1),(1,4),(9,9)] +self_intersected_poly_2 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4)] +self_intersected_poly_3 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] +self_intersected_poly_4 = [(4,4),(4,2),(2,2),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] +not_self_intersected_poly_closed = [(4,4),(4,2),(2,2),(2,4),(4,4)] +not_self_intersected_poly_open = [(4,4),(4,2),(2,2),(2,4)] +plotc([(1, 1), + (1, poly_length), + (poly_width, poly_length), + (poly_width, 1)]) +plotc(rectangle_points) +plotc(prohibited_area) +plotc(prohibit_intersect_2) +#plotc(self_intersected_poly_2) + + +structure_for_check = Structure(polygons=([poly_from_coords(coords) for coords in [self_intersected_poly,self_intersected_poly_open,not_self_intersected_poly_closed,not_self_intersected_poly_open]])) + +rl_slf_inter = [rules.not_self_intersects.value.validate(structure_for_check,idx_poly_with_error=i,domain=domain) for i in range(len(structure_for_check.polygons))] +plt.show() +def test_intersection(): + intersected_points = [ + (1, 1), + (1, poly_length), + (poly_width, poly_length), + (poly_width, 1), + ] + intersected_rectangle_poly = Polygon(points=[Point(*coords) for coords in intersected_points] + ) + structure = Structure([rectangle_poly, intersected_rectangle_poly]) + assert intersection(structure, domain) + + structure = Structure([rectangle_poly, out_poly]) + assert not intersection(structure, domain) + + +def test_out_off_bound(): + inside_points = [ + (1, 1), + (1, poly_length), + (poly_width, poly_length), + (poly_width, 1), + ] + inside_rectangle_poly = Polygon(points=[Point(*coords) for coords in inside_points] + ) + structure = Structure([inside_rectangle_poly]) + assert not out_of_bound(structure, domain) + + structure = Structure([out_poly]) + assert out_of_bound(structure, domain) + + +def test_too_close(): + structure = Structure([rectangle_poly, triangle_poly]) + assert too_close(structure, domain) + + structure = Structure([rectangle_poly, out_poly]) + assert not too_close(structure, domain) + + +def test_self_intersection(): + incorrect_points = [ + (0, 0), + (0, poly_length), + (poly_width, poly_length), + (poly_width - 5, poly_length - 5), + (poly_width, poly_length + 10), + (0, 0), + ] + incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points] + ) + structure = Structure([incorrect_poly]) + assert self_intersection(structure) + + rebuilt_poly = geometry.get_convex(incorrect_poly) + structure = Structure([rebuilt_poly]) + assert not self_intersection(structure) + + +def test_unclosed_poly(): + structure = Structure([rectangle_poly]) + assert unclosed_poly(structure, domain) + + closed_rectangle_points = [ + (0, 0), + (0, poly_length), + (poly_width, poly_length), + (poly_width, 0), + (0, 0), + ] + closed_rectangle_poly = Polygon(points=[Point(*coords) for coords in closed_rectangle_points] + ) + structure = Structure([closed_rectangle_poly]) + assert not unclosed_poly(structure, domain) From fbef4b5580064a58d9e9778238e28374258b5fd0 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 13 Nov 2023 14:40:35 +0300 Subject: [PATCH 50/66] add conves-safe util test --- gefest/core/geometry/geometry_2d.py | 5 +- gefest/core/geometry/utils.py | 12 ----- test/test_geometry_utils.py | 80 +++++++++++++++++++++++++++++ test/test_mutation.py | 7 ++- 4 files changed, 87 insertions(+), 17 deletions(-) create mode 100644 test/test_geometry_utils.py diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index e7d4d672b..771074872 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -284,7 +284,6 @@ def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_fac """Returns points where line intersects polygon.""" if self.is_closed: figure = self._poly_to_shapely_poly(figure) - else: figure = self._poly_to_shapely_line(figure) @@ -315,8 +314,8 @@ def intersection_poly_line(self, figure: Polygon, points: list[Point], scale_fac points_sorted_by_distance = sorted(points_on_boundary_lines, key=bounding_box.distance) extended_line = LineString(points_sorted_by_distance[:2]) - interaction = extended_line.intersection(figure) - if interaction: + if extended_line.intersects(figure): + interaction = extended_line.intersection(figure) if isinstance(interaction, ShapelyPoint): interaction = [Point(interaction.x, interaction.y)] elif isinstance(interaction, MultiPoint): diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 3d96ff9a6..fae048c51 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -379,18 +379,6 @@ def get_convex_safe_area( slice_line, scale_factor, ) - # if not slice_points: - # from shapely.geometry import Polygon as SPoly, LineString - # from shapely.plotting import plot_line, plot_polygon - # from matplotlib import pyplot as plt - # plot_polygon(geom._poly_to_shapely_poly(Polygon([ - # left_cut[1], - # *mid_points, - # right_cut[1], - # ])) - # ) - # plot_line(LineString([(p.x,p.y) for p in slice_line]), color='m') - # plt.show(block=True) if slice_points: base_area = [ left_cut[1], diff --git a/test/test_geometry_utils.py b/test/test_geometry_utils.py new file mode 100644 index 000000000..ad8ca27a3 --- /dev/null +++ b/test/test_geometry_utils.py @@ -0,0 +1,80 @@ +from contextlib import nullcontext as no_exception + +import pytest +from shapely.ops import unary_union + +from gefest.core.geometry import Polygon, Structure +from gefest.core.geometry.datastructs.point import Point +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.utils import get_convex_safe_area + + +class TestConvexSafeArea: + """Utility tests for convex-safe selection of new points.""" + domain = Domain( + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ], + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', + ) + + poly_points = [ + (40, 25), + (30, 40), + (40, 55), + (60, 55), + (70, 40), + (60, 25), + (40, 25), + ] + test_poly = Polygon(Point(p[0], p[1]) for p in poly_points) + test_structure = Structure([test_poly]) + + @pytest.mark.parametrize( + ', '.join( + [ + 'poly', + 'domain', + 'point_left_idx', + 'point_right_idx', + 'structure', + 'poly_idx', + 'expectation', + ], + ), + [ + (test_poly, domain, 2, 3, test_structure, 0, no_exception()), + ], + ) + def test_get_convex_safe_area_saves_convexity_triangle_area_case( + self, + poly, + domain, + point_left_idx, + point_right_idx, + structure, + poly_idx, + expectation, + ): + """Crossing lines case.""" + with expectation: + movment_area = get_convex_safe_area( + poly, domain, point_left_idx, point_right_idx, structure, poly_idx, + ) + s_poly = domain.geometry._poly_to_shapely_poly(poly) + union = unary_union([s_poly, movment_area]) + assert union.area == union.convex_hull.area + assert union.is_simple + assert union.is_valid diff --git a/test/test_mutation.py b/test/test_mutation.py index ec1fe9aed..2ef9b5123 100644 --- a/test/test_mutation.py +++ b/test/test_mutation.py @@ -88,8 +88,11 @@ def test_mutation_not_passed(): @pytest.mark.parametrize( - 'mut_oper,operat_prob, expected_result', - [([rotate_poly_mutation], [1], 0), ([resize_poly_mutation], [1], 0)], + 'mut_oper, operat_prob, expected_result', + [ + ([rotate_poly_mutation], [1], 0), + ([resize_poly_mutation], [1], 0), + ], ) def test_mutation_rotate_resize_poly(mut_oper, operat_prob, expected_result): """Tests rotate poly operation.""" From 7386f47d06873995ca4b223207e4b7fd2a161832 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 13 Nov 2023 15:41:44 +0300 Subject: [PATCH 51/66] add tests for out_of_bounds and selfintersection checks --- gefest/core/opt/postproc/rules.py | 7 +- test/old_test.zip | Bin 105862 -> 0 bytes test/old_test/test_validation.py | 155 ------------------- test/test_domain.py | 1 + test/test_geometry_utils.py | 8 +- test/test_validation.py | 242 +++++++++++++++--------------- 6 files changed, 129 insertions(+), 284 deletions(-) delete mode 100644 test/old_test.zip delete mode 100644 test/old_test/test_validation.py diff --git a/gefest/core/opt/postproc/rules.py b/gefest/core/opt/postproc/rules.py index dcd613051..8275dc90b 100644 --- a/gefest/core/opt/postproc/rules.py +++ b/gefest/core/opt/postproc/rules.py @@ -3,6 +3,7 @@ from itertools import combinations import numpy as np +from loguru import logger from shapely.geometry import GeometryCollection, LineString, MultiPoint from shapely.geometry import Point as ShapelyPoint from shapely.geometry import Polygon as ShapelyPolygon @@ -306,12 +307,12 @@ def correct( def _forbidden_validity(validity): - #print(validity,validity != 'Valid Geometry' and 'Self-intersection' not in validity,'Valid Geometry' in validity,'Ring Self-intersection' in validity) if 'Valid Geometry' in validity: return False - if 'Self-intersection' in validity: + elif 'Self-intersection' in validity: return True - #return validity != 'Valid Geometry' and 'Ring Self-intersection' not in validity + else: + logger.critical('Unexpected shapely validity output.') class Rules(Enum): diff --git a/test/old_test.zip b/test/old_test.zip deleted file mode 100644 index d64ae7b3062585850026960a874a32fbf675e2ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105862 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 z zt*MLs52?UcUBSBRrtCrUL0gT-mIm)|L}}!BXU=6yY9<5-V>kH9v~|;gEr8?0&Aj%) zPBpzKW^WOFw%zubw;rO@wSa7D>`D{h)gXl}y1XI~x(Q?Rcy3sC30$JPhjt#T@CGQ7NtCrQ={q$4ix z?qS2-qWgB%jmCS>MAhLOy{Z_7^2U&GXVFR|Z&wnd;6Zeh1Q=PV8A{4)C&0R9TEK`# zC-6p0N)i7teh{U8VTxHsa*()bc;h46lU1-as%_F}-uaAmY}!Wi&}x^I=vq>YDcDgO zF$%Lc%$IyqL4D2GXT@ukqg2(CYsLNbI!j*Z$Eldl5;Q_#T6^tQ0TF{MRTT5o) zp>O8Z3t8L;z+R_Yw$U^4uYW7=+LNUvDH)JND#m1}@#wyaNg+GmH5#8o-QL%Ht^Wk_ zLImr+DM-snYve3hn_dOQaloiKysl!Azm^3{+&*@~S>77hRustnr8Qlf*td^go=jOy z4E8MqT_)dzB-4=8lY;yB0o8evMcLOyy)8ph*2+p@_{#d5^$)lLfDlg2dXD%FgoKAo zP;2Bug}8gFv3jr$2Nwori1u_69gqG2nDm{bULvt_HHw3Bati3>e08O6RW|pvp?}X} z95L2jW}Il>#aR;#S#n>jy76I*+MpA45om`8(r{+;k}~sSqDhW%GP5=0B4hF?q7r`4 zXz>NhHJ#xcdfz1N!kA7HE3k1dFbKoW1YJf!2k4vDS{+_JWub|@lCdIQ$cRW`NqG-F z;FX9==Jf012)$G@u?5q~$6-Zg!A_ULIDFJGFty3HLhGlc1C+ad2L}R;HmrQE4U&XH z=16f)5vv$`)e8_AS!1J>CYDn2eW08Y34=AW7~p-D?9y|MEp}#yn6=Riz`$BIGHu1o zaO>zM99dIENns|^%cVM0RNtI9j!{>NKPbA4Afc%_h=^_bGD~}V#uD~6X06D>EwMv_ zDHez4<5Fv_DNK0FcZ~O>Wg{P3;cx|U7MD*~Vu97>1Feg1LOLp8&4K7_#wy#Zt_mh? zcC0p@oXV-{7n33M*{8(I5W5JFF!@1nA2&Axy> zQlz4ORj^h6s%6(`y5ji!^A*!~fT{u_Km_53295BS2L0FI=Lr>o{^#gNqxIwXTam^< zp#AF=A_6Hw5{o)~colvVpngC8W%qAw`$HEU#$yN~LU1SIO%?phF73^mevJQAx*cqP zYTW+>^}CFI8x?)?0sch&A*%lq;O~<4ZD0Zv@ecv}wtXM9|LnW_T_?V6-#_4&{adQ> zKSBJi;N3>Zzxs*zP0#!PGXA}Dzs;x({mHo1$KNId3Mf7!KmFgG><8iZR_ivwD&i;M ze`>sLqwdk#|DUKI|JD3n8sA3Ui~foFw?g?g=cDa^_S^rS{%>>g;(l`ey%_i>px-mu gZIEQbPtb39?LT9np#BI8m^TkYWCR34*pE2zU+16KkN^Mx diff --git a/test/old_test/test_validation.py b/test/old_test/test_validation.py deleted file mode 100644 index 19a300537..000000000 --- a/test/old_test/test_validation.py +++ /dev/null @@ -1,155 +0,0 @@ -import pytest - -from gefest.core.algs.postproc.rules import Rules -from gefest.core.geometry.geometry import Geometry -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.geometry.domain import Domain -from gefest.core.geometry import Point, Polygon, Structure -from gefest.core.algs.geom.validation import * - - -import matplotlib.pyplot as plt -geometry = Geometry2D() -prohibited_area = [(30,30), - (30,50), - (50,50), - (50,30), - (30,30)] -prohibit_intersect = [(x,y-5) for x,y in prohibited_area] -prohibit_intersect_2 = [(x-5,y-5) for x,y in prohibited_area] -domain = Domain(allowed_area=[ - [0, 0], - [0, 100], - [100, 100], - [100, 0], - [0, 0], - ]) -"""allowed area for Domain() is [(0, 0), - (0, 100), - (100, 100), - (100, 0)] - -""" -def plotc(coords): - plt.plot([p[0] for p in coords],[p[1] for p in coords]) - - -def poly_from_coords(coords): - return Polygon(points=[Point(*coords) for coords in coords]) - - -rules = Rules -poly_width = 10 -poly_length = 20 -# creating a testing polygons via corner points -rectangle_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width, 0), -] -rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points] -) - -triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] -triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points] -) - -out_points = [Point(x + 200, y + 200) for (x, y) in rectangle_points] -out_poly = Polygon(points=out_points) - -self_intersected_poly = [(2,2),(3,8),(2,1),(1,4),(9,9),(2,2)] -self_intersected_poly_open = [(2,2),(3,8),(2,1),(1,4),(9,9)] -self_intersected_poly_2 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4)] -self_intersected_poly_3 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] -self_intersected_poly_4 = [(4,4),(4,2),(2,2),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] -not_self_intersected_poly_closed = [(4,4),(4,2),(2,2),(2,4),(4,4)] -not_self_intersected_poly_open = [(4,4),(4,2),(2,2),(2,4)] -plotc([(1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1)]) -plotc(rectangle_points) -plotc(prohibited_area) -plotc(prohibit_intersect_2) -#plotc(self_intersected_poly_2) - - -structure_for_check = Structure(polygons=([poly_from_coords(coords) for coords in [self_intersected_poly,self_intersected_poly_open,not_self_intersected_poly_closed,not_self_intersected_poly_open]])) - -rl_slf_inter = [rules.not_self_intersects.value.validate(structure_for_check,idx_poly_with_error=i,domain=domain) for i in range(len(structure_for_check.polygons))] -plt.show() -def test_intersection(): - intersected_points = [ - (1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1), - ] - intersected_rectangle_poly = Polygon(points=[Point(*coords) for coords in intersected_points] - ) - structure = Structure([rectangle_poly, intersected_rectangle_poly]) - assert intersection(structure, domain) - - structure = Structure([rectangle_poly, out_poly]) - assert not intersection(structure, domain) - - -def test_out_off_bound(): - inside_points = [ - (1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1), - ] - inside_rectangle_poly = Polygon(points=[Point(*coords) for coords in inside_points] - ) - structure = Structure([inside_rectangle_poly]) - assert not out_of_bound(structure, domain) - - structure = Structure([out_poly]) - assert out_of_bound(structure, domain) - - -def test_too_close(): - structure = Structure([rectangle_poly, triangle_poly]) - assert too_close(structure, domain) - - structure = Structure([rectangle_poly, out_poly]) - assert not too_close(structure, domain) - - -def test_self_intersection(): - incorrect_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width - 5, poly_length - 5), - (poly_width, poly_length + 10), - (0, 0), - ] - incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points] - ) - structure = Structure([incorrect_poly]) - assert self_intersection(structure) - - rebuilt_poly = geometry.get_convex(incorrect_poly) - structure = Structure([rebuilt_poly]) - assert not self_intersection(structure) - - -def test_unclosed_poly(): - structure = Structure([rectangle_poly]) - assert unclosed_poly(structure, domain) - - closed_rectangle_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width, 0), - (0, 0), - ] - closed_rectangle_poly = Polygon(points=[Point(*coords) for coords in closed_rectangle_points] - ) - structure = Structure([closed_rectangle_poly]) - assert not unclosed_poly(structure, domain) diff --git a/test/test_domain.py b/test/test_domain.py index 2ceddda83..5b7e6bdc8 100644 --- a/test/test_domain.py +++ b/test/test_domain.py @@ -7,6 +7,7 @@ class TestDomain: """Domain class tests collection.""" + @pytest.mark.parametrize( ', '.join( [ diff --git a/test/test_geometry_utils.py b/test/test_geometry_utils.py index ad8ca27a3..9e5bc0362 100644 --- a/test/test_geometry_utils.py +++ b/test/test_geometry_utils.py @@ -11,6 +11,7 @@ class TestConvexSafeArea: """Utility tests for convex-safe selection of new points.""" + domain = Domain( allowed_area=[ [0, 0], @@ -71,7 +72,12 @@ def test_get_convex_safe_area_saves_convexity_triangle_area_case( """Crossing lines case.""" with expectation: movment_area = get_convex_safe_area( - poly, domain, point_left_idx, point_right_idx, structure, poly_idx, + poly, + domain, + point_left_idx, + point_right_idx, + structure, + poly_idx, ) s_poly = domain.geometry._poly_to_shapely_poly(poly) union = unary_union([s_poly, movment_area]) diff --git a/test/test_validation.py b/test/test_validation.py index 19a300537..0d65e1418 100644 --- a/test/test_validation.py +++ b/test/test_validation.py @@ -1,40 +1,29 @@ +from contextlib import nullcontext as no_exception + import pytest -from gefest.core.algs.postproc.rules import Rules -from gefest.core.geometry.geometry import Geometry -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.geometry.domain import Domain from gefest.core.geometry import Point, Polygon, Structure -from gefest.core.algs.geom.validation import * - +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.opt.postproc.rules import Rules -import matplotlib.pyplot as plt geometry = Geometry2D() -prohibited_area = [(30,30), - (30,50), - (50,50), - (50,30), - (30,30)] -prohibit_intersect = [(x,y-5) for x,y in prohibited_area] -prohibit_intersect_2 = [(x-5,y-5) for x,y in prohibited_area] -domain = Domain(allowed_area=[ - [0, 0], - [0, 100], - [100, 100], - [100, 0], - [0, 0], - ]) -"""allowed area for Domain() is [(0, 0), - (0, 100), - (100, 100), - (100, 0)] - -""" -def plotc(coords): - plt.plot([p[0] for p in coords],[p[1] for p in coords]) +prohibited_area = [(30, 30), (30, 50), (50, 50), (50, 30), (30, 30)] +prohibit_intersect = [(x, y - 5) for x, y in prohibited_area] +prohibit_intersect_2 = [(x - 5, y - 5) for x, y in prohibited_area] +domain = Domain( + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ] +) def poly_from_coords(coords): + """Builds GEFEST Polygon from point tulpes.""" return Polygon(points=[Point(*coords) for coords in coords]) @@ -48,108 +37,111 @@ def poly_from_coords(coords): (poly_width, poly_length), (poly_width, 0), ] -rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points] -) +rectangle_poly = Polygon(points=[Point(*coords) for coords in rectangle_points]) triangle_points = [(0, 0), (poly_width, poly_length), (0, poly_length)] -triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points] -) +triangle_poly = Polygon(points=[Point(*coords) for coords in triangle_points]) out_points = [Point(x + 200, y + 200) for (x, y) in rectangle_points] out_poly = Polygon(points=out_points) -self_intersected_poly = [(2,2),(3,8),(2,1),(1,4),(9,9),(2,2)] -self_intersected_poly_open = [(2,2),(3,8),(2,1),(1,4),(9,9)] -self_intersected_poly_2 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4)] -self_intersected_poly_3 = [(4,4),(4,2),(2,2),(2,4),(4,4),(2,7),(4,7),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] -self_intersected_poly_4 = [(4,4),(4,2),(2,2),(2,4),(4,4),(4,2),(2,2),(2,4),(4,4)] -not_self_intersected_poly_closed = [(4,4),(4,2),(2,2),(2,4),(4,4)] -not_self_intersected_poly_open = [(4,4),(4,2),(2,2),(2,4)] -plotc([(1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1)]) -plotc(rectangle_points) -plotc(prohibited_area) -plotc(prohibit_intersect_2) -#plotc(self_intersected_poly_2) - - -structure_for_check = Structure(polygons=([poly_from_coords(coords) for coords in [self_intersected_poly,self_intersected_poly_open,not_self_intersected_poly_closed,not_self_intersected_poly_open]])) - -rl_slf_inter = [rules.not_self_intersects.value.validate(structure_for_check,idx_poly_with_error=i,domain=domain) for i in range(len(structure_for_check.polygons))] -plt.show() -def test_intersection(): - intersected_points = [ - (1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1), - ] - intersected_rectangle_poly = Polygon(points=[Point(*coords) for coords in intersected_points] - ) - structure = Structure([rectangle_poly, intersected_rectangle_poly]) - assert intersection(structure, domain) - - structure = Structure([rectangle_poly, out_poly]) - assert not intersection(structure, domain) - - -def test_out_off_bound(): - inside_points = [ - (1, 1), - (1, poly_length), - (poly_width, poly_length), - (poly_width, 1), - ] - inside_rectangle_poly = Polygon(points=[Point(*coords) for coords in inside_points] - ) - structure = Structure([inside_rectangle_poly]) - assert not out_of_bound(structure, domain) - - structure = Structure([out_poly]) - assert out_of_bound(structure, domain) - - -def test_too_close(): - structure = Structure([rectangle_poly, triangle_poly]) - assert too_close(structure, domain) - - structure = Structure([rectangle_poly, out_poly]) - assert not too_close(structure, domain) - - -def test_self_intersection(): - incorrect_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width - 5, poly_length - 5), - (poly_width, poly_length + 10), - (0, 0), - ] - incorrect_poly = Polygon(points=[Point(*coords) for coords in incorrect_points] +self_intersected_poly = [(2, 2), (3, 8), (2, 1), (1, 4), (9, 9), (2, 2)] +self_intersected_poly_open = [(2, 2), (3, 8), (2, 1), (1, 4), (9, 9)] +self_intersected_poly_2 = [(4, 4), (4, 2), (2, 2), (2, 4), (4, 4), (2, 7), (4, 7), (2, 4)] +self_intersected_poly_3 = [ + (4, 4), + (4, 2), + (2, 2), + (2, 4), + (4, 4), + (2, 7), + (4, 7), + (2, 4), + (4, 4), + (4, 2), + (2, 2), + (2, 4), + (4, 4), +] +self_intersected_poly_4 = [(4, 4), (4, 2), (2, 2), (2, 4), (4, 4), (4, 2), (2, 2), (2, 4), (4, 4)] +not_self_intersected_poly_closed = [(4, 4), (4, 2), (2, 2), (2, 4), (4, 4)] +not_self_intersected_poly_open = [(4, 4), (4, 2), (2, 2), (2, 4)] + +out_of_bound_poly_closed = [(50, 50), (150, 150), (150, 50), (99, 0), (45, 0), (50, 50)] +out_of_bound_poly_unclosed = [(50, 50), (150, 150), (150, 50), (99, 0), (45, 0)] + +structure_for_check = Structure( + polygons=( + [ + poly_from_coords(coords) + for coords in [ + self_intersected_poly, + self_intersected_poly_open, + not_self_intersected_poly_closed, + not_self_intersected_poly_open, + out_of_bound_poly_closed, + out_of_bound_poly_unclosed, + ] + ] ) - structure = Structure([incorrect_poly]) - assert self_intersection(structure) - - rebuilt_poly = geometry.get_convex(incorrect_poly) - structure = Structure([rebuilt_poly]) - assert not self_intersection(structure) - +) -def test_unclosed_poly(): - structure = Structure([rectangle_poly]) - assert unclosed_poly(structure, domain) - closed_rectangle_points = [ - (0, 0), - (0, poly_length), - (poly_width, poly_length), - (poly_width, 0), - (0, 0), - ] - closed_rectangle_poly = Polygon(points=[Point(*coords) for coords in closed_rectangle_points] - ) - structure = Structure([closed_rectangle_poly]) - assert not unclosed_poly(structure, domain) +@pytest.mark.parametrize( + ', '.join( + [ + 'structure', + 'idx_poly_with_error', + 'domain', + 'result', + 'expectation', + ], + ), + [ + (structure_for_check, 0, domain, False, no_exception()), + (structure_for_check, 1, domain, False, no_exception()), + (structure_for_check, 2, domain, True, no_exception()), + (structure_for_check, 3, domain, True, no_exception()), + ], +) +def test_self_intersection_rule( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + result: bool, + expectation, +): + """Test self intersection rule.""" + rule = rules.not_self_intersects.value + with expectation: + assert rule.validate(structure, idx_poly_with_error, domain) == result + + +@pytest.mark.parametrize( + ', '.join( + [ + 'structure', + 'idx_poly_with_error', + 'domain', + 'result', + 'expectation', + ], + ), + [ + (structure_for_check, 2, domain, True, no_exception()), + (structure_for_check, 3, domain, True, no_exception()), + (structure_for_check, 4, domain, False, no_exception()), + (structure_for_check, 5, domain, False, no_exception()), + ], +) +def test_out_of_bounds_rule( + structure: Structure, + idx_poly_with_error: int, + domain: Domain, + result: bool, + expectation, +): + """Test self intersection rule.""" + rule = rules.not_out_of_bounds.value + with expectation: + assert rule.validate(structure, idx_poly_with_error, domain) == result From 2a737eba564cbb5547078013631f8d1e7c849167 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 13 Nov 2023 16:55:26 +0300 Subject: [PATCH 52/66] rm debug samples --- gefest_config.py | 133 ------------------------ zcfg.yaml | 64 ------------ zmetrics.py | 51 --------- zsurrogate.py | 265 ----------------------------------------------- 4 files changed, 513 deletions(-) delete mode 100644 gefest_config.py delete mode 100644 zcfg.yaml delete mode 100644 zmetrics.py delete mode 100644 zsurrogate.py diff --git a/gefest_config.py b/gefest_config.py deleted file mode 100644 index b340fdf97..000000000 --- a/gefest_config.py +++ /dev/null @@ -1,133 +0,0 @@ -import numpy as np - -from gefest.core.configs.optimization_params import OptimizationParams -from gefest.core.configs.tuner_params import TunerParams -from gefest.core.geometry.datastructs.structure import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.opt.objective.objective import Objective -from gefest.tools.estimators.estimator import Estimator - - -# # # Metrics # # # -class Area(Objective): - def __init__(self, domain: Domain, estimator: Estimator = None) -> None: - super().__init__(domain, estimator) - - def evaluate(self, ind: Structure) -> float: - area = 0 - for poly in ind: - area += self.domain.geometry.get_square(poly) - area = abs(area - (50 * 50)) - norms = [] - if len(ind) == 1: - for p1, p2 in zip(ind[0][:-1], ind[0][1:]): - norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) - norms.append(norm) - else: - norms.append(1) - return area - - -class SideCoef(Objective): - def __init__(self, domain: Domain, estimator: Estimator = None) -> None: - super().__init__(domain, estimator) - - def evaluate(self, ind: Structure) -> float: - area = 0 - for poly in ind: - area += self.domain.geometry.get_square(poly) - area = abs(area - (50 * 50)) - norms = [] - points_num = 0 - if len(ind) == 1: - for p1, p2 in zip(ind[0][:-1], ind[0][1:]): - norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) - norms.append(norm) - points_num = len(ind[0]) - else: - norms.append(1) - points_num = sum(len(p) for p in ind) - - sides_coef = points_num + min(norms) / max(norms) - - return sides_coef - - -# # # Precompute domain arguments # # # - -pass - -# # # - -domain_cfg = Domain( - allowed_area=[ - [0, 0], - [0, 100], - [100, 100], - [100, 0], - [0, 0], - ], - name='main', - min_poly_num=2, - max_poly_num=4, - min_points_num=3, - max_points_num=15, - polygon_side=0.0001, - min_dist_from_boundary=0.0001, - geometry_is_convex=False, - geometry_is_closed=True, - geometry='2D', -) - -tuner_cfg = TunerParams( - tuner_type='optuna', - n_steps_tune=10, - hyperopt_dist='uniform', - verbose=True, - timeout_minutes=60, -) - -opt_params = OptimizationParams( - domain=domain_cfg, - tuner_cfg=tuner_cfg, - n_steps=10, - pop_size=50, - postprocess_attempts=3, - mutation_prob=0.6, - crossover_prob=0.6, - mutations=[ - 'rotate_poly', - 'resize_poly', - 'add_point', - 'drop_point', - 'add_poly', - 'drop_poly', - 'pos_change_point', - ], - selector='tournament_selection', - mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], - crossovers=[ - 'polygon_level', - 'structure_level', - ], - crossover_each_prob=[0.0, 1.0], - postprocess_rules=[ - 'not_out_of_bounds', - 'valid_polygon_geom', - 'not_self_intersects', - 'not_too_close_polygons', - # 'not_overlaps_prohibited', - 'not_too_close_points', - ], - extra=5, - n_jobs=0, - log_dir='logs', - run_name='run_name', - golem_keep_histoy=False, - golem_genetic_scheme_type='steady_state', - golem_surrogate_each_n_gen=5, - objectives=[ - Area(domain_cfg), - SideCoef(domain_cfg), - ], -) diff --git a/zcfg.yaml b/zcfg.yaml deleted file mode 100644 index 9e77ee190..000000000 --- a/zcfg.yaml +++ /dev/null @@ -1,64 +0,0 @@ -domain: - allowed_area: [ - [0, 0], - [0, 100], - [100, 100], - [100, 0], - [0, 0], - ] - name: main - min_poly_num: 2 - max_poly_num: 4 - min_points_num: 20 - max_points_num: 50 - polygon_side: 0.0001 - min_dist_from_boundary: 0.0001 - geometry_is_convex: True - geometry_is_closed: True - geometry: '2D' - -opt_params: - n_steps: 10 - pop_size: 15 - postprocess_attempts: 3 - mutation_prob: 0.6 - crossover_prob: 0.6 - mutations: [ - 'rotate_poly', - 'resize_poly', - 'add_point', - 'drop_point', - 'add_poly', - 'drop_poly', - 'pos_change_point', - ] - selector: 'tournament_selection' - mutation_each_prob: [0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25] - crossovers: [ - 'polygon_level', - 'structure_level', - ] - crossover_each_prob: [0.0, 1.0] - postprocess_rules: [ - 'not_out_of_bounds', - 'valid_polygon_geom', - 'not_self_intersects', - 'not_too_close_polygons', - # 'not_overlaps_prohibited', - 'not_too_close_points', - ] - crossover_each_prob: - extra: 5 - n_jobs: -1 - log_dir: logs - run_name: run_name - golem_keep_histoy: False - golem_genetic_scheme_type: steady_state - golem_surrogate_each_n_gen: 5 - -tuner_params: - tuner_type: optuna - n_steps_tune: 5 - hyperopt_dist: uniform - verbose: True - timeout_minutes: 60 diff --git a/zmetrics.py b/zmetrics.py deleted file mode 100644 index 080863420..000000000 --- a/zmetrics.py +++ /dev/null @@ -1,51 +0,0 @@ -import __main__ -import numpy as np - -from gefest.core.geometry.datastructs.structure import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.opt.objective.objective import Objective -from gefest.tools.estimators.estimator import Estimator - - -class Area(Objective): - def __init__(self, domain: Domain, estimator: Estimator = None) -> None: - super().__init__(domain, estimator) - - def evaluate(self, ind: Structure) -> float: - area = 0 - for poly in ind: - area += self.domain.geometry.get_square(poly) - area = abs(area - (50 * 50)) - norms = [] - if len(ind) == 1: - for p1, p2 in zip(ind[0][:-1], ind[0][1:]): - norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) - norms.append(norm) - else: - norms.append(1) - return area - - -class SideCoef(Objective): - def __init__(self, domain: Domain, estimator: Estimator = None) -> None: - super().__init__(domain, estimator) - - def evaluate(self, ind: Structure) -> float: - area = 0 - for poly in ind: - area += self.domain.geometry.get_square(poly) - area = abs(area - (50 * 50)) - norms = [] - points_num = 0 - if len(ind) == 1: - for p1, p2 in zip(ind[0][:-1], ind[0][1:]): - norm = np.linalg.norm(np.array(p1.coords) - np.array(p2.coords)) - norms.append(norm) - points_num = len(ind[0]) - else: - norms.append(1) - points_num = sum(len(p) for p in ind) - - sides_coef = points_num + min(norms) / max(norms) - - return sides_coef diff --git a/zsurrogate.py b/zsurrogate.py deleted file mode 100644 index 7f0c91ae6..000000000 --- a/zsurrogate.py +++ /dev/null @@ -1,265 +0,0 @@ -from functools import partial - -import pandas as pd -from examples.synthetic_graph_evolution.experiment_setup import run_experiments -from examples.synthetic_graph_evolution.generators import generate_labeled_graph -from golem.core.adapter.adapter import BaseOptimizationAdapter -from golem.core.optimisers.genetic.gp_params import GPAlgorithmParameters -from golem.core.optimisers.genetic.operators.inheritance import GeneticSchemeTypesEnum -from golem.core.optimisers.graph import OptGraph, OptNode - -from golem.core.optimisers.meta.surrogate_optimizer import SurrogateEachNgenOptimizer -from golem.core.optimisers.objective import Objective -from golem.core.optimisers.optimization_parameters import GraphRequirements -from golem.core.optimisers.optimizer import GraphGenerationParams -from golem.core.optimisers.random_graph_factory import RandomGraphFactory - -from gefest.core.algs.geom.validation import * -from gefest.core.algs.postproc.resolve_errors import Rules, postprocess, validate -from gefest.core.configs.optimization_params import OptimizationParams -from gefest.core.geometry import Structure -from gefest.core.geometry.datastructs.point import Point -from gefest.core.geometry.datastructs.polygon import Polygon -from gefest.core.geometry.domain import Domain -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.geometry.utils import get_random_structure -from gefest.core.opt.adapters.structure import StructureAdapter -from gefest.core.opt.operators.crossovers import ( - panmixis, - polygon_level_crossover, - structure_level_crossover, -) -from gefest.core.opt.operators.mutations import ( - add_point, - add_poly, - drop_point, - drop_poly, - mutate_structure, - pos_change_point_mutation, - resize_poly, - rotate_poly, -) -from gefest.core.structure.prohibited import create_prohibited -from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( - SoundSimulator, - generate_map, -) -from gefest.tools.fitness import Fitness -from gefest.tools.samplers.sampler import Sampler - -# pre domain params -grid_resolution_x = 300 # Number of points on x-axis -grid_resolution_y = 300 # Number of points on y-axis -coord_X = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid -coord_Y = np.linspace(20, 100, grid_resolution_y + 1) # Y coordinate for spatial grid -grid = [grid_resolution_x, grid_resolution_y] # points grid -fixed_area = [[[45, 55], [55, 55], [55, 45], [45, 45], [45, 55]]] - -# domain configuration -geometry = Geometry2D(is_closed=True, is_convex=True) -prohibited = create_prohibited(1, [], [], fixed_area=fixed_area) -domain = Domain( - allowed_area=[ - (min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y)), - ], - geometry=geometry, - max_poly_num=5, - min_poly_num=1, - max_points_num=30, - min_points_num=20, - prohibited_area=prohibited, - polygon_side=0.0001, -) - - -def poly_from_comsol_txt(path='figures/bottom_square.txt'): - """ - - Args: - path: path to txt file with comsol points - - Returns: - - """ - res = pd.read_csv(path, sep=' ', header=None) - points = [[int(round(res.iloc[i, 0], 2)), int(round(res.iloc[i, 1], 2))] for i in res.index] - points = [Point(i[0], i[1]) for i in np.array(points)] - poly = Polygon(points=points) - struct = Structure(polygons=[poly]) - return struct - - -class SoundFieldFitness(Fitness): - def __init__(self, domain, estimator, n_jobs, path_best_struct=None): - super().__init__(domain, estimator) - self.path_best_struct = path_best_struct - self.n_jobs = n_jobs - if self.path_best_struct is None: - print('please, set up the best spl matrix into configuration') - print('the best structure will be generated randomly') - rnd_structure = get_random_structure(domain) - best_spl = generate_map(domain, rnd_structure) - else: - best_structure = poly_from_comsol_txt(path_best_struct) - best_spl = self.estimator(best_structure) - best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) - - self.best_spl = best_spl - - def fitness(self, ind: Structure): - spl = self.estimator(ind) - current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) - l_f = np.sum(np.abs(self.best_spl - current_spl)) / (120 * 120) - return l_f - - -path_to_init_figure = f'figures/bottom_square.txt' -estimator = SoundFieldFitness( - domain, - SoundSimulator(domain, 10), - -1, - 'F:\\Git_Repositories\\gef_ref\\GEFEST\\cases\\sound_waves\\figures\\bottom_square.txt', -) - - -# RandomGraphFactory sampler wrap -class StructFactory(RandomGraphFactory): - """Simple GEFEST sampler wrap for GOLEM RandomGraphFactory compatibility.""" - - def __init__( - self, - sampler: Sampler, - adapter: BaseOptimizationAdapter, - ): - self.sampler = sampler - self.adapter = adapter - - def __call__(self, *args, **kwargs) -> OptGraph: - samples = self.sampler(1) - return self.adapter(samples[0]) - - -if __name__ == '__main__': - - opt_params = OptimizationParams( - crossovers=[ - partial(polygon_level_crossover, domain=domain), - partial(structure_level_crossover, domain=domain), - ], - crossover_each_prob=[0.0, 1.0], - mutations=[ - rotate_poly, - resize_poly, - add_point, - drop_point, - add_poly, - drop_poly, - pos_change_point_mutation, - ], - mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.00, 0.00, 0.25], - pair_selector=panmixis, - postprocess_attempts=3, - domain=domain, - postprocessor=postprocess, - estimator=estimator, - postprocess_rules=[ - Rules.not_out_of_bounds.value, - Rules.not_closed_polygon.value, - Rules.not_self_intersects.value, - Rules.not_too_close_polygons.value, - Rules.not_overlaps_prohibited.value, - Rules.not_too_close_points.value, - ], - extra=3, - n_jobs=1, - golem_adapter=StructureAdapter, - tuner_cfg=None, - n_steps=30, - pop_size=10, - log_dir='saved_pop', - run_name='test', - ) - - objective = Objective( - quality_metrics={ - type(opt_params.estimator).__name__: opt_params.estimator.fitness, - }, - ) - - requirements = GraphRequirements( - early_stopping_timeout=5, - early_stopping_iterations=1000, - keep_n_best=4, - # timeout=timeout, - keep_history=True, - num_of_generations=opt_params.n_steps, - n_jobs=opt_params.n_jobs, - history_dir='surrogate_logs', - ) - - ggp = GraphGenerationParams( - adapter=opt_params.golem_adapter, - rules_for_constraint=[ - partial(validate, rules=opt_params.postprocess_rules, domain=opt_params.domain), - ], - random_graph_factory=StructFactory(opt_params.sampler, opt_params.golem_adapter), - ) - - pop = list(map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size))) - - def fake_crossover(struct1, struct2, *args, **kwargs): - return struct1, struct2 - - ######################################## - class MutationWrap: - def __init__(self, mutations, mutation_chance, mutations_probs, domain): - self.mutations = mutations - self.mutation_chance = mutation_chance - self.mutations_probs = mutations_probs - self.domain = domain - - def __call__(self, struct, **kwargs): - return mutate_structure( - structure=struct, - mutations=self.mutations, - mutation_chance=self.mutation_chance, - mutations_probs=self.mutations_probs, - domain=self.domain, - ) - - gpparams = GPAlgorithmParameters( - multi_objective=False, - genetic_scheme_type=GeneticSchemeTypesEnum.generational, - ######################################## - mutation_types=[ - MutationWrap( - mutations=[mut], - mutation_chance=opt_params.mutation_prob, - mutations_probs=[1], - domain=domain, - ) - for mut in opt_params.mutations - ], - ######################################## - crossover_types=[fake_crossover], - pop_size=opt_params.pop_size, - max_pop_size=int(opt_params.pop_size * 1.5), - crossover_prob=opt_params.crossover_prob, - mutation_prob=1, - ) - - surrogate = SurrogateEachNgenOptimizer( - objective=objective, - initial_graphs=pop, - requirements=requirements, - graph_generation_params=ggp, - graph_optimizer_params=gpparams, - # surrogate_model=, # random - surrogate_each_n_gen=8, - ) - - surrogate.optimise(objective=objective) From 0db6252d3cd3f621d84a0000035b2526a09e7e3b Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Tue, 14 Nov 2023 18:45:27 +0300 Subject: [PATCH 53/66] Add Arctice config and ob2_upd with SWAN.exe to breakwaters case --- cases/breakwaters/arctic_config/__init__.py | 0 .../arctic_config/arctic_config.py | 177 ++ cases/breakwaters/main.py | 42 - cases/breakwaters/main_arctic.py | 201 -- .../newdata/border_PwiOsA2HE2igZUel.geojson | 1 + .../newdata/landscape_PwiOsA2HE2igZUel.csv | 628 ++++++ .../newdata/result_PwiOsA2HE2igZUel.geojson | 1 + cases/breakwaters/{ob2 => ob2_upd}/INPUT | 4 +- cases/breakwaters/ob2_upd/INPUT_2 | 59 + cases/breakwaters/ob2_upd/PRINT | 1929 +++++++++++++++++ cases/breakwaters/ob2_upd/config.prt | 1919 ++++++++++++++++ cases/breakwaters/ob2_upd/config.swn | 51 + cases/breakwaters/ob2_upd/data/bathy.bot | 32 + .../ob2_upd/data/bathy_ob_example2.nc | Bin 0 -> 19658 bytes .../ob2_upd/data/bathy_ob_example2.nc.tmp | Bin 0 -> 23258 bytes .../data/landscape_PwiOsA2HE2igZUel.csv | 628 ++++++ cases/breakwaters/ob2_upd/data/wind_2018.txt | 780 +++++++ .../ob2_upd/data/wind_inventory.txt | 1 + cases/breakwaters/ob2_upd/init_ob2.py | 9 + cases/breakwaters/ob2_upd/norm_end | 1 + cases/breakwaters/ob2_upd/ob_example.json | 39 + .../ob2_upd/results/HSig_ob_example.dat | 1536 +++++++++++++ .../ob2_upd/results/PDIR_ob_example.dat | 1536 +++++++++++++ .../ob2_upd/results/RTP_ob_example.dat | 1536 +++++++++++++ .../results_old(crashed)/HSig_ob_example.dat | 1536 +++++++++++++ .../results_old(crashed)/PDIR_ob_example.dat | 608 ++++++ .../results_old(crashed)/RTP_ob_example.dat | 576 +++++ cases/breakwaters/ob2_upd/swan.edt | 296 +++ cases/breakwaters/ob2_upd/swan.exe | Bin 0 -> 3679744 bytes cases/breakwaters/ob2_upd/swaninit | 15 + cases/breakwaters/ob2_upd/swanrun.bat | 86 + .../simulators/swan/swan_interface.py | 132 +- 32 files changed, 14034 insertions(+), 325 deletions(-) create mode 100644 cases/breakwaters/arctic_config/__init__.py create mode 100644 cases/breakwaters/arctic_config/arctic_config.py delete mode 100644 cases/breakwaters/main.py delete mode 100644 cases/breakwaters/main_arctic.py create mode 100644 cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson create mode 100644 cases/breakwaters/newdata/landscape_PwiOsA2HE2igZUel.csv create mode 100644 cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson rename cases/breakwaters/{ob2 => ob2_upd}/INPUT (88%) create mode 100644 cases/breakwaters/ob2_upd/INPUT_2 create mode 100644 cases/breakwaters/ob2_upd/PRINT create mode 100644 cases/breakwaters/ob2_upd/config.prt create mode 100644 cases/breakwaters/ob2_upd/config.swn create mode 100644 cases/breakwaters/ob2_upd/data/bathy.bot create mode 100644 cases/breakwaters/ob2_upd/data/bathy_ob_example2.nc create mode 100644 cases/breakwaters/ob2_upd/data/bathy_ob_example2.nc.tmp create mode 100644 cases/breakwaters/ob2_upd/data/landscape_PwiOsA2HE2igZUel.csv create mode 100644 cases/breakwaters/ob2_upd/data/wind_2018.txt create mode 100644 cases/breakwaters/ob2_upd/data/wind_inventory.txt create mode 100644 cases/breakwaters/ob2_upd/init_ob2.py create mode 100644 cases/breakwaters/ob2_upd/norm_end create mode 100644 cases/breakwaters/ob2_upd/ob_example.json create mode 100644 cases/breakwaters/ob2_upd/results/HSig_ob_example.dat create mode 100644 cases/breakwaters/ob2_upd/results/PDIR_ob_example.dat create mode 100644 cases/breakwaters/ob2_upd/results/RTP_ob_example.dat create mode 100644 cases/breakwaters/ob2_upd/results_old(crashed)/HSig_ob_example.dat create mode 100644 cases/breakwaters/ob2_upd/results_old(crashed)/PDIR_ob_example.dat create mode 100644 cases/breakwaters/ob2_upd/results_old(crashed)/RTP_ob_example.dat create mode 100644 cases/breakwaters/ob2_upd/swan.edt create mode 100644 cases/breakwaters/ob2_upd/swan.exe create mode 100644 cases/breakwaters/ob2_upd/swaninit create mode 100644 cases/breakwaters/ob2_upd/swanrun.bat diff --git a/cases/breakwaters/arctic_config/__init__.py b/cases/breakwaters/arctic_config/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/cases/breakwaters/arctic_config/arctic_config.py b/cases/breakwaters/arctic_config/arctic_config.py new file mode 100644 index 000000000..e66958570 --- /dev/null +++ b/cases/breakwaters/arctic_config/arctic_config.py @@ -0,0 +1,177 @@ +import json +import pickle +from pathlib import Path + +import numpy as np +from shapely.geometry import shape + +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.simulators.swan.swan_interface import Swan + +root_path = Path(__file__).parent.parent.parent.parent +with open( + f"{root_path}/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson", "r" +) as file: + res_list = json.load(file) +with open( + f"{root_path}/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson", "r" +) as file: + border_dict = json.load(file) + + +border = shape(border_dict["features"][0]["geometry"]) +water = [i for i in res_list["features"] if i["properties"]["type"] == "water"] +water_coord = [p["geometry"]["coordinates"] for p in water] +cargo_piers = [ + i for i in res_list["features"] if i["properties"]["type"] == "cargo_pier" +] +passenger_pier = [ + i for i in res_list["features"] if i["properties"]["type"] == "passenger_pier" +] +piers = [ + i + for i in res_list["features"] + if (i["properties"]["type"] == "passenger_pier") + or (i["properties"]["type"] == "cargo_pier") +] +piers_coords = [x[0] for x in [i["geometry"]["coordinates"] for i in piers]] +piers_line = [max(p, key=lambda i: i[1]) for p in piers_coords] +unique_types = np.unique([i["properties"]["type"] for i in res_list["features"]]) +allow_water = [ + i + for i in water_coord[0][0] + if (i[0] > 74.8) and (i[1] < 67.942) and (i[1] > 67.915) +] +allow_area = [[74.80, 67.92], [74.80, 67.94]] + allow_water + [[74.80, 67.92]] +grid_resolution_x = 17 # Number of points on x-axis +grid_resolution_y = 31 # Number of points on y-axis +coord_Y = np.linspace( + min([p[1] for p in allow_area]) * 500, + max([p[1] for p in allow_area]) * 500, + grid_resolution_y + 1, +) # X coordinate for spatial grid +coord_X = np.linspace( + min([p[0] for p in allow_area]) * 500, + max([p[0] for p in allow_area]) * 500, + grid_resolution_x + 1, +) +grid = [grid_resolution_x, grid_resolution_y] # points grid +fixed_area = None +targets = [[10, 15], [12, 14], [14, 14], [16, 14]] +# targets = [[i,11] for i in [10,12,14,16]] +# WINDWIND 19.1 225 +# targets = [[14,10],[16,10],[18,10]] +# # # Metrics # # # +def load_file_from_path(path: str): + with open(path, "rb") as f: + _file = pickle.load(f) + f.close() + return _file + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + (min(coord_X), min(coord_Y)), + (min(coord_X), max(coord_Y)), + (max(coord_X), max(coord_Y)), + (max(coord_X), min(coord_Y)), + (min(coord_X), min(coord_Y)), + ], + name="main", + min_poly_num=1, + max_poly_num=4, + min_points_num=3, + max_points_num=4, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=False, + geometry_is_closed=False, + geometry="2D", +) + +tuner_cfg = TunerParams( + tuner_type="sequential", + n_steps_tune=25, + hyperopt_dist="uniform", + verbose=True, + timeout_minutes=60, +) +# # # Estimator # # # +path_ = f"{root_path}/cases/breakwaters/ob2_upd/" +swan_estimator = Swan( + targets=targets, + domain=domain_cfg, + grid=grid, + path=path_, + hs_file_path="results/HSig_ob_example.dat", +) +# # # # # # + + +class BreakWatersFitness(Objective): + def __init__(self, domain, estimator): + super().__init__(domain, estimator) + self.estimator = estimator + + def _evaluate(self, ind: Structure): + fitness = self.estimator(ind) + return fitness + + +# fitness estimator +estimator = BreakWatersFitness(domain_cfg, swan_estimator) + +opt_params = OptimizationParams( + optimizer="gefest_ga", + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=4, + pop_size=10, + postprocess_attempts=15, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + "rotate_poly", + "resize_poly", + "add_point", + "drop_point", + "add_poly", + "drop_poly", + "pos_change_point", + ], + selector="tournament_selection", + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + "polygon_level", + "structure_level", + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + "not_out_of_bounds", + "valid_polygon_geom", + "not_self_intersects", + "not_too_close_polygons", + # 'not_overlaps_prohibited', + "not_too_close_points", + ], + extra=4, + n_jobs=-1, + log_dir="logs", + run_name="run_name", + golem_keep_histoy=False, + golem_genetic_scheme_type="steady_state", + golem_surrogate_each_n_gen=5, + objectives=[ + estimator, + ], +) diff --git a/cases/breakwaters/main.py b/cases/breakwaters/main.py deleted file mode 100644 index a05b40288..000000000 --- a/cases/breakwaters/main.py +++ /dev/null @@ -1,42 +0,0 @@ -import timeit - -from gefest.core.opt.gen_design import design -from cases.breakwaters.configuration_de import bw_domain -from cases.breakwaters.configuration_spea2 import bw_optimizer, bw_sampler, bw_estimator -from cases.main_conf import opt_params - -# If the value is False, pretrained models will be selected -# otherwise put path to your model -opt_params.path_to_sim = False -opt_params.path_to_sur = False - -# ------------ -# GEFEST tools configuration -# ------------ -domain, task_setup = bw_domain.configurate_domain(poly_num=opt_params.n_polys, - points_num=opt_params.n_points, - is_closed=opt_params.is_closed) - -estimator = bw_estimator.configurate_estimator(domain=domain, - path_sim=opt_params.path_to_sim) - -sampler = bw_sampler.configurate_sampler(domain=domain) - -optimizer = bw_optimizer.configurate_optimizer(pop_size=opt_params.pop_size, - crossover_rate=opt_params.c_rate, - mutation_rate=opt_params.m_rate, - task_setup=task_setup) - -# ------------ -# Generative design stage -# ------------ - -start = timeit.default_timer() -optimized_pop = design(n_steps=opt_params.n_steps, - pop_size=opt_params.pop_size, - estimator=estimator, - sampler=sampler, - optimizer=optimizer, - extra=True) -spend_time = timeit.default_timer() - start -print(f'spent time {spend_time} sec') diff --git a/cases/breakwaters/main_arctic.py b/cases/breakwaters/main_arctic.py deleted file mode 100644 index 84135c1ef..000000000 --- a/cases/breakwaters/main_arctic.py +++ /dev/null @@ -1,201 +0,0 @@ -import pickle -from functools import partial -from gefest.core.algs.postproc.resolve_errors import Rules, apply_postprocess -import numpy as np -from hyperopt import hp -from gefest.core.opt.operators.selections import tournament_selection,roulette_selection -from gefest.core.algs.postproc.resolve_errors import Rules, postprocess -from gefest.core.configs.optimization_params import OptimizationParams -from gefest.core.configs.tuner_params import TunerParams -from gefest.core.geometry import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.geometry.geometry_2d import Geometry2D -from gefest.core.geometry.utils import get_random_structure -from gefest.core.opt.adapters.structure import StructureAdapter -from gefest.core.opt.operators.crossovers import ( - panmixis, - polygon_level_crossover, - structure_level_crossover, -) -from gefest.core.opt.operators.mutations import ( - add_point, - add_poly, - drop_point, - drop_poly, - pos_change_point_mutation, - resize_poly, - rotate_poly, -) -import json -from gefest.core.opt.tuning.tuner import GolemTuner -from gefest.core.structure.prohibited import create_prohibited -from gefest.core.viz.struct_vizualizer import GIFMaker -from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( - SoundSimulator, - generate_map, -) -from gefest.tools.fitness import Fitness -from gefest.tools.optimizers.GA.base_GA import BaseGA -from pathlib import Path -from gefest.tools.estimators.simulators.swan.swan_interface import Swan -from shapely.geometry import shape -# pre domain params -root_path = Path(__file__).parent.parent.parent -with open(f'{root_path}/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson', 'r') as file: - res_list = json.load(file) -with open(f'{root_path}/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson', 'r') as file: - border_dict = json.load(file) -border = shape(border_dict['features'][0]['geometry']) -water = [i for i in res_list['features'] if i['properties']['type'] =='water'] -water_coord =[p['geometry']['coordinates'] for p in water] -cargo_piers = [i for i in res_list['features'] if i['properties']['type'] =='cargo_pier'] -passenger_pier = [i for i in res_list['features'] if i['properties']['type'] =='passenger_pier'] -piers = [i for i in res_list['features'] if (i['properties']['type']=='passenger_pier') or (i['properties']['type'] =='cargo_pier')] -piers_coords = [x[0] for x in [i['geometry']['coordinates'] for i in piers]] -piers_line = [max(p,key=lambda i: i[1]) for p in piers_coords] -unique_types = np.unique([i['properties']['type'] for i in res_list['features']]) -allow_water = [i for i in water_coord[0][0] if (i[0]>74.8) and (i[1]<67.942) and (i[1]>67.915)] -########### -allow_area = [[74.80,67.92],[74.80,67.94]]+allow_water +[[74.80,67.92]] -grid_resolution_x = 17 # Number of points on x-axis -grid_resolution_y = 31 # Number of points on y-axis -coord_Y = np.linspace(min([p[1] for p in allow_area])*500, max([p[1] for p in allow_area])*500, grid_resolution_y + 1) # X coordinate for spatial grid -coord_X = np.linspace(min([p[0] for p in allow_area])*500, max([p[0] for p in allow_area])*500, grid_resolution_x + 1) -grid = [grid_resolution_x, grid_resolution_y] # points grid -fixed_area = None -targets = [[14,10],[16,10],[18,10]] - - -def load_file_from_path(path: str): - with open(path, 'rb') as f: - file = pickle.load(f) - f.close() - return file - - -if __name__ == '__main__': - # class SoundSimulator_(SoundSimulator): - # def __init__(self, domain, obstacle_map=None): - # super().__init__(domain, obstacle_map=None) - # self.duration = 200 - # self.pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) - # if ( - # obstacle_map is not None - # and (obstacle_map.shape[0], obstacle_map.shape[1]) == self.map_size - # ): - # print("** Map Accepted **") - # self.obstacle_map = obstacle_map - # elif obstacle_map is not None and obstacle_map.shape != self.map_size: - # print("** Map size denied **") - # self.obstacle_map = np.zeros((self.size_y, self.size_x)) - # else: - # self.obstacle_map = np.zeros((self.size_y, self.size_x)) - - # in the future all model can be loaded from configs - - # domain configuration - geometry = Geometry2D(is_closed=False, is_convex=True) - prohibited = create_prohibited(1, [], [], fixed_area=fixed_area) - domain = Domain( - allowed_area=[ - (min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y)), - ], - geometry=geometry, - max_poly_num=1, - min_poly_num=1, - max_points_num=10, - min_points_num=4, - prohibited_area=prohibited, - ) - - # tuner config - tp = TunerParams( - tuner_type='sequential', - n_steps_tune=25, - sampling_variance=1, - hyperopt_dist=hp.uniform, - ) - path_=f"{root_path}/cases/breakwaters/ob2/" - #Estimator - swan_estimator = Swan( - targets=targets, - domain=domain, - grid=grid, - path=path_, - hs_file_path='results/HSig_ob_example.dat' - ) - # fitness function - class SoundFieldFitness(Fitness): - def __init__(self, domain, estimator): - super().__init__(domain) - self.estimator=estimator - def fitness(self, ind: Structure): - fitness = self.estimator(ind) - return fitness - - # fitness estimator - estimator = SoundFieldFitness( - domain, - swan_estimator - ) - - # optimization params config - opt_params = OptimizationParams( - crossovers=[ - polygon_level_crossover, - structure_level_crossover, - ], - crossover_prob=0.3, - crossover_each_prob=[0.0, 1.0], - mutations=[ - rotate_poly, - resize_poly, - add_point, - drop_point, - add_poly, - drop_poly, - pos_change_point_mutation, - ], - mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.00, 0.00, 0.25], - pair_selector=panmixis, - postprocess_attempts=10, - domain=domain, - postprocessor=apply_postprocess, - estimator=estimator, - postprocess_rules=[ - Rules.not_out_of_bounds.value, - Rules.not_closed_polygon.value, - Rules.not_self_intersects.value, - Rules.not_too_close_polygons.value, - # Rules.not_overlaps_prohibited.value, - Rules.not_too_close_points.value, - ], - extra=2, - n_jobs=0, - golem_adapter=StructureAdapter, - tuner_cfg=tp, - n_steps=5, - pop_size=6, - selector=roulette_selection - ) - - optimizer = BaseGA(opt_params) - optimized_pop = optimizer.optimize() - - # make mp4 of optimized pop here if need - - # tuner = GolemTuner(opt_params) - # n_best_for_tune = 1 - # tuned_individuals = tuner.tune(optimized_pop[0:n_best_for_tune]) - - # make mp4 of tuned pop here if need - - # code to create mp4 - ### - # gm = GIFMaker(domain=domain) # mp4 maker actually - # gm.create_frame(_structure_, {'Optimized': _structure_.fitness}) # make frames for each stucture you want - # gm.make_gif('tuning', 500, ) # save file diff --git a/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson b/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson new file mode 100644 index 000000000..72c8423b3 --- /dev/null +++ b/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81798968,67.93215759],[74.81798995,67.93215759],[74.8194412,67.93211759],[74.81944121,67.93211759],[74.81944121,67.93211759],[74.82586478,67.93194054],[74.82586523,67.93194051],[74.82586967,67.93194005],[74.82587049,67.9319399],[74.82587414,67.93193885],[74.82587474,67.93193859],[74.82587706,67.93193709],[74.82587736,67.93193676],[74.825878,67.93193505],[74.82587802,67.93193488],[74.82581336,67.93149107],[74.82977234,67.93138194],[74.8297728,67.93138191],[74.82977723,67.93138146],[74.82977806,67.9313813],[74.8297817,67.93138025],[74.82978231,67.93137999],[74.82978462,67.9313785],[74.82978493,67.93137817],[74.82978556,67.93137646],[74.82978558,67.93137628],[74.82951015,67.92948781],[74.82951008,67.92948763],[74.8295089,67.92948592],[74.82950849,67.9294856],[74.82950564,67.92948419],[74.82950522,67.92948405],[74.82922587,67.9275387],[74.82922587,67.9275387],[74.82922587,67.92753865],[74.82922587,67.92753865],[74.82921124,67.92745329],[74.82921124,67.92745329],[74.82921123,67.92745324],[74.82921123,67.92745324],[74.82824882,67.92256293],[74.82824874,67.92256275],[74.82824858,67.92256254],[74.82795309,67.92106018],[74.82795301,67.92106001],[74.82795177,67.92105832],[74.82795135,67.92105801],[74.82794849,67.92105663],[74.82794778,67.9210564],[74.82794374,67.92105554],[74.82794286,67.92105543],[74.82793824,67.92105521],[74.82793778,67.92105521],[74.82397911,67.92116436],[74.82397865,67.92116439],[74.82397416,67.92116486],[74.82397333,67.92116502],[74.82397328,67.92116503],[74.82397318,67.92116501],[74.8239723,67.9211649],[74.82396768,67.92116469],[74.82396722,67.92116468],[74.81754797,67.92134168],[74.81754771,67.92134167],[74.81609737,67.92138166],[74.81609737,67.92138166],[74.8173539,67.9277831],[74.81798968,67.93215759]]]},"properties":{"type":"boundary"}}]} \ No newline at end of file diff --git a/cases/breakwaters/newdata/landscape_PwiOsA2HE2igZUel.csv b/cases/breakwaters/newdata/landscape_PwiOsA2HE2igZUel.csv new file mode 100644 index 000000000..5a8d90930 --- /dev/null +++ b/cases/breakwaters/newdata/landscape_PwiOsA2HE2igZUel.csv @@ -0,0 +1,628 @@ +lat, lon, elevation, xIndex, yIndex +67.88362250095344, 74.70452573998112, -3.0, 0, 0 +67.8836220353277, 74.71166324496195, -3.0, 1, 0 +67.88362125928482, 74.71880074956255, -3.0, 2, 0 +67.88362017282485, 74.72593825359276, -2.0, 3, 0 +67.88361877594781, 74.73307575686246, -2.0, 4, 0 +67.88361706865378, 74.74021325918153, -2.0, 5, 0 +67.88361505094282, 74.74735076035986, -2.0, 6, 0 +67.88361272281502, 74.75448826020731, -1.0, 7, 0 +67.88361008427047, 74.76162575853374, -1.0, 8, 0 +67.88360713530929, 74.76876325514907, -1.0, 9, 0 +67.88360387593158, 74.77590074986313, 0.0, 10, 0 +67.88360030613754, 74.78303824248582, 0.0, 11, 0 +67.88359642592724, 74.790175732827, -1.0, 12, 0 +67.8835922353009, 74.79731322069657, -1.0, 13, 0 +67.88358773425867, 74.80445070590439, -1.0, 14, 0 +67.88358292280074, 74.81158818826033, 17.0, 15, 0 +67.88357780092733, 74.8187256675743, 26.0, 16, 0 +67.88357236863864, 74.82586314365615, 26.0, 17, 0 +67.88356662593489, 74.83300061631577, 24.0, 18, 0 +67.8863122603243, 74.70452656380225, -3.0, 0, 1 +67.8863117946361, 74.71166489260412, -3.0, 1, 1 +67.8863110184891, 74.7188032210256, -3.0, 2, 1 +67.88630993188335, 74.72594154887649, -2.0, 3, 1 +67.8863085348189, 74.73307987596658, -2.0, 4, 1 +67.8863068272958, 74.74021820210567, -2.0, 5, 1 +67.88630480931411, 74.74735652710358, -2.0, 6, 1 +67.88630248087395, 74.75449485077009, -1.0, 7, 1 +67.88629984197539, 74.76163317291503, -1.0, 8, 1 +67.88629689261855, 74.76877149334815, -1.0, 9, 1 +67.88629363280353, 74.77590981187932, -1.0, 10, 1 +67.88629006253052, 74.7830481283183, -1.0, 11, 1 +67.88628618179963, 74.7901864424749, -1.0, 12, 1 +67.88628199061102, 74.79732475415894, -1.0, 13, 1 +67.8862774889649, 74.8044630631802, -1.0, 14, 1 +67.88627267686141, 74.8116013693485, 16.0, 15, 1 +67.8862675543008, 74.81873967247363, 27.0, 16, 1 +67.88626212128327, 74.8258779723654, 29.0, 17, 1 +67.88625637780903, 74.83301626883365, 27.0, 18, 1 +67.88900201880564, 74.70452738782927, -3.0, 0, 2 +67.88900155305494, 74.71166654065811, -3.0, 1, 2 +67.88900077680381, 74.7188056931064, -3.0, 2, 2 +67.88899969005224, 74.72594484498389, -3.0, 3, 2 +67.88899829280034, 74.73308399610028, -2.0, 4, 2 +67.88899658504812, 74.74022314626531, -2.0, 5, 2 +67.88899456679567, 74.74736229528871, -2.0, 6, 2 +67.88899223804304, 74.7545014429802, -1.0, 7, 2 +67.8889895987904, 74.76164058914952, -1.0, 8, 2 +67.8889866490378, 74.76877973360641, -1.0, 9, 2 +67.88898338878539, 74.77591887616057, -1.0, 10, 2 +67.8889798180333, 74.78305801662177, -1.0, 11, 2 +67.88897593678169, 74.7901971547997, -1.0, 12, 2 +67.8889717450307, 74.79733629050409, -1.0, 13, 2 +67.88896724278052, 74.80447542354472, -1.0, 14, 2 +67.88896243003134, 74.81161455373126, 14.0, 15, 2 +67.88895730678338, 74.81875368087348, 28.0, 16, 2 +67.88895187303683, 74.82589280478112, 31.0, 17, 2 +67.88894612879191, 74.83303192526388, 26.0, 18, 2 +67.89169177639754, 74.7045282120623, -4.0, 0, 3 +67.89169131058433, 74.71166818912408, -3.0, 1, 3 +67.89169053422903, 74.71880816580517, -3.0, 2, 3 +67.89168944733164, 74.72594814191524, -3.0, 3, 3 +67.89168804989222, 74.73308811726392, -2.0, 4, 3 +67.89168634191083, 74.74022809166088, -2.0, 5, 3 +67.89168432338752, 74.74736806491576, -2.0, 6, 3 +67.89168199432241, 74.75450803683823, -2.0, 7, 3 +67.89167935471558, 74.76164800723795, -1.0, 8, 3 +67.89167640456714, 74.76878797592455, -1.0, 9, 3 +67.89167314387721, 74.77592794270772, -1.0, 10, 3 +67.89166957264595, 74.7830679073971, -1.0, 11, 3 +67.89166569087348, 74.79020786980234, -1.0, 12, 3 +67.89166149855998, 74.79734782973311, -1.0, 13, 3 +67.89165699570563, 74.80448778699908, -1.0, 14, 3 +67.8916521823106, 74.81162774140986, 13.0, 15, 3 +67.89164705837511, 74.81876769277515, 26.0, 16, 3 +67.89164162389937, 74.82590764090462, 27.0, 17, 3 +67.89163587888362, 74.83304758560789, 23.0, 18, 3 +67.89438153310007, 74.70452903650138, -4.0, 0, 4 +67.89438106722434, 74.71166983800218, -3.0, 1, 4 +67.89438029076484, 74.71881063912215, -3.0, 2, 4 +67.89437920372158, 74.72595143967085, -3.0, 3, 4 +67.89437780609461, 74.73309223945789, -3.0, 4, 4 +67.89437609788399, 74.74023303829284, -2.0, 5, 4 +67.8943740790898, 74.74737383598527, -2.0, 6, 4 +67.8943717497121, 74.75451463234478, -2.0, 7, 4 +67.89436910975101, 74.76165542718095, -1.0, 8, 4 +67.89436615920664, 74.76879622030336, -1.0, 9, 4 +67.8943628980791, 74.77593701152159, -1.0, 10, 4 +67.89435932636854, 74.78307780064522, -1.0, 11, 4 +67.8943554440751, 74.79021858748384, -1.0, 12, 4 +67.89435125119897, 74.79735937184704, -1.0, 13, 4 +67.89434674774029, 74.8045001535444, -1.0, 14, 4 +67.89434193369927, 74.81164093238549, -1.0, 15, 4 +67.89433680907611, 74.81878170817991, 22.0, 16, 4 +67.89433137387101, 74.82592248073725, 22.0, 17, 4 +67.89432562808423, 74.8330632498671, 18.0, 18, 4 +67.89707128891334, 74.70452986114661, -4.0, 0, 5 +67.8970708229751, 74.71167148729256, -4.0, 1, 5 +67.89707004641137, 74.71881311305754, -3.0, 2, 5 +67.8970689592222, 74.72595473825103, -3.0, 3, 5 +67.89706756140764, 74.73309636268257, -3.0, 4, 5 +67.89706585296774, 74.74023798616165, -2.0, 5, 5 +67.89706383390258, 74.74737960849777, -2.0, 6, 5 +67.89706150421223, 74.75452122950045, -2.0, 7, 5 +67.8970588638968, 74.76166284897921, -1.0, 8, 5 +67.8970559129564, 74.76880446674356, -1.0, 9, 5 +67.89705265139115, 74.77594608260299, -1.0, 10, 5 +67.8970490792012, 74.783087696367, -1.0, 11, 5 +67.89704519638667, 74.79022930784515, -1.0, 12, 5 +67.89704100294774, 74.7973709168469, -1.0, 13, 5 +67.89703649888462, 74.8045125231818, -1.0, 14, 5 +67.89703168419744, 74.81165412665933, -1.0, 15, 5 +67.89702655888644, 74.81879572708903, 19.0, 16, 5 +67.89702112295183, 74.82593732428039, 19.0, 17, 5 +67.89701537639385, 74.83307891804294, 15.0, 18, 5 +67.89976104383743, 74.70453068599805, -4.0, 0, 6 +67.89976057783663, 74.71167313699539, -4.0, 1, 6 +67.89975980116867, 74.71881558761157, -3.0, 2, 6 +67.89975871383356, 74.72595803765608, -3.0, 3, 6 +67.89975731583137, 74.73310048693833, -3.0, 4, 6 +67.89975560716215, 74.74024293526774, -2.0, 5, 6 +67.89975358782596, 74.74738538245377, -2.0, 6, 6 +67.89975125782287, 74.75452782830585, -2.0, 7, 6 +67.89974861715302, 74.76167027263342, -1.0, 8, 6 +67.8997456658165, 74.7688127152459, -1.0, 9, 6 +67.89974240381343, 74.77595515595274, -1.0, 10, 6 +67.89973883114396, 74.78309759456337, -1.0, 11, 6 +67.89973494780824, 74.79024003088725, -1.0, 12, 6 +67.89973075380641, 74.79738246473377, -1.0, 13, 6 +67.89972624913867, 74.80452489591242, -1.0, 14, 6 +67.89972143380521, 74.8116673242326, -1.0, 15, 6 +67.89971630780622, 74.81880974950379, 16.0, 16, 6 +67.89971087114192, 74.82595217153538, 17.0, 17, 6 +67.89970512381255, 74.83309459013684, 15.0, 18, 6 +67.9024507978724, 74.70453151105579, -4.0, 0, 7 +67.90245033180905, 74.71167478711078, -4.0, 1, 7 +67.90244955503684, 74.7188180627845, -4.0, 2, 7 +67.90244846755576, 74.72596133788629, -3.0, 3, 7 +67.90244706936588, 74.73310461222553, -3.0, 4, 7 +67.90244536046725, 74.74024788561158, -3.0, 5, 7 +67.90244334085997, 74.74739115785381, -2.0, 6, 7 +67.9024410105441, 74.75453442876157, -2.0, 7, 7 +67.90243836951976, 74.76167769814423, -2.0, 8, 7 +67.90243541778702, 74.76882096581114, -1.0, 9, 7 +67.90243215534603, 74.77596423157169, -1.0, 10, 7 +67.90242858219695, 74.78310749523523, -1.0, 11, 7 +67.90242469833989, 74.7902507566111, -1.0, 12, 7 +67.90242050377503, 74.7973940155087, -1.0, 13, 7 +67.90241599850255, 74.80453727173739, -1.0, 14, 7 +67.90241118252264, 74.81168052510651, -1.0, 15, 7 +67.9024060558355, 74.81882377542544, 14.0, 16, 7 +67.90240061844135, 74.82596702250355, 16.0, 17, 7 +67.9023948703404, 74.83311026615021, 15.0, 18, 7 +67.90514055101838, 74.70453233631989, -4.0, 0, 8 +67.90514008489245, 74.7116764376389, -4.0, 1, 8 +67.90513930801595, 74.7188205385765, -4.0, 2, 8 +67.90513822038886, 74.72596463894195, -3.0, 3, 8 +67.90513682201126, 74.73310873854456, -3.0, 4, 8 +67.9051351128832, 74.74025283719362, -3.0, 5, 8 +67.90513309300476, 74.7473969346984, -2.0, 6, 8 +67.90513076237603, 74.75454103086821, -2.0, 7, 8 +67.90512812099709, 74.76168512551233, -2.0, 8, 8 +67.90512516886805, 74.76882921844005, -1.0, 9, 8 +67.90512190598905, 74.77597330946065, -1.0, 10, 8 +67.90511833236022, 74.78311739838345, -1.0, 11, 8 +67.90511444798172, 74.79026148501771, -1.0, 12, 8 +67.9051102528537, 74.79740556917274, -1.0, 13, 8 +67.90510574697635, 74.8045496506578, -1.0, 14, 8 +67.90510093034985, 74.81169372928223, 4.0, 15, 8 +67.90509580297439, 74.81883780485529, 16.0, 16, 8 +67.90509036485021, 74.82598187718628, 20.0, 17, 8 +67.90508461597753, 74.8331259460845, 19.0, 18, 8 +67.90783030327543, 74.70453316179044, -4.0, 0, 9 +67.90782983708692, 74.71167808857992, -4.0, 1, 9 +67.9078290601061, 74.71882301498782, -4.0, 2, 9 +67.90782797233297, 74.72596794082338, -4.0, 3, 9 +67.90782657376761, 74.7331128658958, -3.0, 4, 9 +67.90782486441006, 74.7402577900143, -3.0, 5, 9 +67.90782284426041, 74.74740271298809, -2.0, 6, 9 +67.90782051331873, 74.75454763462638, -2.0, 7, 9 +67.90781787158511, 74.7616925547384, -2.0, 8, 9 +67.90781491905969, 74.76883747313336, -1.0, 9, 9 +67.90781165574256, 74.77598238962047, -1.0, 10, 9 +67.9078080816339, 74.78312730400896, -1.0, 11, 9 +67.90780419673382, 74.79027221610804, -1.0, 12, 9 +67.9078000010425, 74.79741712572692, -1.0, 13, 9 +67.90779549456013, 74.80456203267484, -1.0, 14, 9 +67.90779067728688, 74.81170693676098, -1.0, 15, 9 +67.90778554922295, 74.81885183779461, 20.0, 16, 9 +67.90778011036858, 74.82599673558491, 25.0, 17, 9 +67.90777436072398, 74.83314162994112, 24.0, 18, 9 +67.91052005464365, 74.70453398746749, -4.0, 0, 10 +67.91051958839255, 74.71167973993396, -4.0, 1, 10 +67.91051881130736, 74.71882549201871, -4.0, 2, 10 +67.91051772338817, 74.72597124353088, -4.0, 3, 10 +67.91051632463501, 74.73311699427963, -3.0, 4, 10 +67.91051461504792, 74.74026274407407, -3.0, 5, 10 +67.91051259462698, 74.74740849272338, -3.0, 6, 10 +67.91051026337227, 74.75455424003667, -2.0, 7, 10 +67.91050762128393, 74.7616999858231, -2.0, 8, 10 +67.91050466836201, 74.76884572989181, -2.0, 9, 10 +67.91050140460666, 74.77599147205194, -1.0, 10, 10 +67.91049783001804, 74.78313721211265, -1.0, 11, 10 +67.91049394459628, 74.79028294988305, -1.0, 12, 10 +67.91048974834155, 74.79742868517232, -1.0, 13, 10 +67.91048524125401, 74.80457441778958, -1.0, 14, 10 +67.91048042333385, 74.81172014754398, -1.0, 15, 10 +67.91047529458132, 74.81886587424466, 24.0, 16, 10 +67.91046985499656, 74.8260115977008, 30.0, 17, 10 +67.91046410457987, 74.83315731772151, 30.0, 18, 10 +67.91320980512312, 74.70453481335113, -5.0, 0, 11 +67.91320933880938, 74.71168139170118, -4.0, 1, 11 +67.91320856161985, 74.71882796966936, -4.0, 2, 11 +67.91320747355455, 74.72597454706474, -4.0, 3, 11 +67.91320607461353, 74.73312112369639, -3.0, 4, 11 +67.91320436479684, 74.74026769937339, -3.0, 5, 11 +67.91320234410456, 74.7474142739048, -3.0, 6, 11 +67.91320001253678, 74.75456084709968, -2.0, 7, 11 +67.91319737009358, 74.76170741876713, -2.0, 8, 11 +67.9131944167751, 74.76885398871617, -2.0, 9, 11 +67.91319115258145, 74.77600055675592, -1.0, 10, 11 +67.91318757751276, 74.78314712269542, -1.0, 11, 11 +67.91318369156917, 74.79029368634374, -1.0, 12, 11 +67.91317949475088, 74.79744024750997, -1.0, 13, 11 +67.91317498705804, 74.80458680600317, -1.0, 14, 11 +67.91317016849085, 74.8117333616324, -1.0, 15, 11 +67.91316503904952, 74.81887991420676, 26.0, 16, 11 +67.91315959873424, 74.8260264635353, 33.0, 17, 11 +67.91315384754527, 74.83317300942709, 33.0, 18, 11 +67.91589955471392, 74.70453563944145, -5.0, 0, 12 +67.91589908833755, 74.71168304388173, -5.0, 1, 12 +67.91589831104363, 74.71883044794001, -4.0, 2, 12 +67.91589722283219, 74.72597785142527, -4.0, 3, 12 +67.91589582370327, 74.7331252541465, -4.0, 4, 12 +67.91589411365693, 74.74027265591272, -3.0, 5, 12 +67.91589209269326, 74.74742005653289, -3.0, 6, 12 +67.9158897608123, 74.75456745581604, -3.0, 7, 12 +67.9158871180142, 74.76171485357115, -2.0, 8, 12 +67.91588416429904, 74.76886224960721, -2.0, 9, 12 +67.91588089966696, 74.77600964373322, -1.0, 10, 12 +67.9158773241181, 74.78315703575818, -1.0, 11, 12 +67.91587343765259, 74.7903044254911, -1.0, 12, 12 +67.91586924027061, 74.79745181274095, -1.0, 13, 12 +67.91586473197233, 74.80459919731675, -1.0, 14, 12 +67.91585991275795, 74.81174657902747, -1.0, 15, 12 +67.91585478262766, 74.81889395768215, 26.0, 16, 12 +67.91584934158169, 74.82604133308976, 35.0, 17, 12 +67.91584358962027, 74.8331887050593, 35.0, 18, 12 +67.91858930341614, 74.70453646573851, -5.0, 0, 13 +67.91858883697712, 74.71168469647577, -5.0, 1, 13 +67.9185880595788, 74.71883292683088, -4.0, 2, 13 +67.91858697122117, 74.72598115661276, -4.0, 3, 13 +67.91858557190432, 74.73312938563032, -4.0, 4, 13 +67.91858386162828, 74.74027761369248, -3.0, 5, 13 +67.91858184039313, 74.74742584060817, -3.0, 6, 13 +67.91857950819895, 74.75457406618632, -3.0, 7, 13 +67.91857686504585, 74.76172229023584, -2.0, 8, 13 +67.91857391093393, 74.76887051256564, -2.0, 9, 13 +67.91857064586333, 74.77601873298468, -2.0, 10, 13 +67.91856706983418, 74.78316695130185, -1.0, 11, 13 +67.91856318284661, 74.79031516732607, -1.0, 12, 13 +67.91855898490081, 74.79746338086629, -1.0, 13, 13 +67.91855447599696, 74.80461159173143, -1.0, 14, 13 +67.91854965613524, 74.8117597997304, -1.0, 15, 13 +67.91854452531584, 74.81890800467212, 24.0, 16, 13 +67.918539083539, 74.82605620636554, 35.0, 17, 13 +67.91853333080493, 74.83320440461956, 36.0, 18, 13 +67.92127905122986, 74.70453729224238, -5.0, 0, 14 +67.92127858472819, 74.71168634948346, -5.0, 1, 14 +67.92127780722542, 74.71883540634222, -5.0, 2, 14 +67.9212767187216, 74.72598446262752, -4.0, 3, 14 +67.92127531921675, 74.73313351814822, -4.0, 4, 14 +67.92127360871095, 74.74028257271316, -4.0, 5, 14 +67.92127158720427, 74.74743162613117, -3.0, 6, 14 +67.9212692546968, 74.75458067821114, -3.0, 7, 14 +67.92126661118861, 74.76172972876188, -2.0, 8, 14 +67.92126365667984, 74.76887877759225, -2.0, 9, 14 +67.92126039117062, 74.77602782451112, -2.0, 10, 14 +67.92125681466106, 74.7831768693273, -1.0, 11, 14 +67.92125292715133, 74.79032591184966, -1.0, 12, 14 +67.92124872864159, 74.79747495188707, -1.0, 13, 14 +67.921244219132, 74.80462398924836, -1.0, 14, 14 +67.92123939862279, 74.81177302374236, -1.0, 15, 14 +67.92123426711413, 74.81892205517796, 23.0, 16, 14 +67.92122882460625, 74.826071083364, 35.0, 17, 14 +67.92122307109938, 74.83322010810932, 37.0, 18, 14 +67.92396879815517, 74.70453811895315, -5.0, 0, 15 +67.92396833159083, 74.7116880029049, -5.0, 1, 15 +67.9239675539836, 74.71883788647422, -5.0, 2, 15 +67.92396646533354, 74.72598776946985, -4.0, 3, 15 +67.92396506564066, 74.73313765170059, -4.0, 4, 15 +67.92396335490506, 74.74028753297519, -4.0, 5, 15 +67.92396133312678, 74.74743741310243, -3.0, 6, 15 +67.92395900030593, 74.7545872918911, -3.0, 7, 15 +67.92395635644259, 74.76173716914995, -3.0, 8, 15 +67.92395340153688, 74.76888704468779, -2.0, 9, 15 +67.92395013558892, 74.77603691831337, -2.0, 10, 15 +67.92394655859886, 74.78318678983545, -1.0, 11, 15 +67.92394267056682, 74.79033665906285, -1.0, 12, 15 +67.923938471493, 74.79748652580432, -1.0, 13, 15 +67.92393396137757, 74.80463638986865, -1.0, 14, 15 +67.92392914022071, 74.81178625106459, -1.0, 15, 15 +67.92392400802262, 74.81893610920095, 22.0, 16, 15 +67.92391856478353, 74.82608596408649, 35.0, 17, 15 +67.92391281050367, 74.83323581552999, 36.0, 18, 15 +67.92665854419218, 74.70453894587088, -5.0, 0, 16 +67.92665807756514, 74.7116896567403, -5.0, 1, 16 +67.92665729985342, 74.71884036722713, -5.0, 2, 16 +67.92665621105708, 74.72599107714007, -4.0, 3, 16 +67.92665481117614, 74.73314178628779, -4.0, 4, 16 +67.92665310021067, 74.74029249447902, -4.0, 5, 16 +67.92665107816073, 74.74744320152246, -3.0, 6, 16 +67.92664874502643, 74.75459390722679, -3.0, 7, 16 +67.92664610080786, 74.76174461140073, -3.0, 8, 16 +67.9266431455051, 74.768895313853, -2.0, 9, 16 +67.92663987911833, 74.77604601439225, -2.0, 10, 16 +67.92663630164763, 74.78319671282722, -1.0, 11, 16 +67.92663241309319, 74.79034740896661, -1.0, 12, 16 +67.92662821345516, 74.79749810261912, -1.0, 13, 16 +67.92662370273374, 74.80464879359343, -1.0, 14, 16 +67.92661888092908, 74.81179948169829, -1.0, 15, 16 +67.9266137480414, 74.81895016674235, 21.0, 16, 16 +67.92660830407094, 74.82610084853437, 35.0, 17, 16 +67.9266025490179, 74.83325152688302, 36.0, 18, 16 +67.92934828934094, 74.70453977299566, -5.0, 0, 17 +67.9293478226512, 74.71169131098979, -5.0, 1, 17 +67.92934704483497, 74.71884284860117, -5.0, 2, 17 +67.92934595589232, 74.72599438563844, -5.0, 3, 17 +67.92934455582326, 74.73314592191021, -4.0, 4, 17 +67.92934284462788, 74.74029745722511, -4.0, 5, 17 +67.92934082230623, 74.74744899139178, -4.0, 6, 17 +67.9293384888584, 74.75460052421883, -3.0, 7, 17 +67.9293358442845, 74.7617520555149, -3.0, 8, 17 +67.92933288858463, 74.76890358508862, -3.0, 9, 17 +67.92932962175891, 74.77605511274861, -2.0, 10, 17 +67.92932604380749, 74.7832066383035, -2.0, 11, 17 +67.92932215473051, 74.79035816156191, -1.0, 12, 17 +67.92931795452816, 74.79750968233249, -1.0, 13, 17 +67.92931344320058, 74.80466120042387, -1.0, 14, 17 +67.92930862074797, 74.81181271564465, -1.0, 15, 17 +67.92930348717057, 74.81896422780348, 17.0, 16, 17 +67.92929804246855, 74.826115736709, 33.0, 17, 17 +67.92929228664215, 74.83326724216982, 36.0, 18, 17 +67.93203803360154, 74.70454060032756, -5.0, 0, 18 +67.93203756684909, 74.71169296565351, -5.0, 1, 18 +67.93203678892834, 74.71884533059658, -5.0, 2, 18 +67.93203569983933, 74.7259976949653, -5.0, 3, 18 +67.93203429958213, 74.73315005856823, -4.0, 4, 18 +67.93203258815677, 74.74030242121393, -4.0, 5, 18 +67.93203056556334, 74.74745478271093, -4.0, 6, 18 +67.93202823180192, 74.75460714286783, -3.0, 7, 18 +67.93202558687261, 74.76175950149315, -3.0, 8, 18 +67.93202263077552, 74.76891185839544, -3.0, 9, 18 +67.93201936351078, 74.77606421338326, -2.0, 10, 18 +67.9320157850785, 74.7832165662652, -2.0, 11, 18 +67.93201189547887, 74.79036891684976, -1.0, 12, 18 +67.93200769471204, 74.79752126494553, -1.0, 13, 18 +67.93200318277819, 74.80467361036105, -1.0, 14, 18 +67.9319983596775, 74.81182595290488, -1.0, 15, 18 +67.93199322541018, 74.8189782923856, 14.0, 16, 18 +67.93198777997645, 74.82613062861174, 31.0, 17, 18 +67.93198202337653, 74.83328296139184, 36.0, 18, 18 +67.93472777697409, 74.70454142786666, -5.0, 0, 19 +67.9347273101589, 74.71169462073163, -5.0, 1, 19 +67.9347265321336, 74.71884781321356, -5.0, 2, 19 +67.93472544289821, 74.72600100512093, -5.0, 3, 19 +67.93472404245281, 74.73315419626222, -4.0, 4, 19 +67.93472233079743, 74.74030738644589, -4.0, 5, 19 +67.93472030793215, 74.74746057548046, -4.0, 6, 19 +67.93471797385708, 74.75461376317438, -3.0, 7, 19 +67.93471532857227, 74.76176694933612, -3.0, 8, 19 +67.93471237207787, 74.7689201337742, -3.0, 9, 19 +67.93470910437398, 74.77607331629706, -2.0, 10, 19 +67.93470552546077, 74.78322649671321, -2.0, 11, 19 +67.93470163533836, 74.79037967483112, -1.0, 12, 19 +67.93469743400692, 74.79753285045926, -1.0, 13, 19 +67.93469292146665, 74.80468602340613, -1.0, 14, 19 +67.93468809771771, 74.81183919348022, -1.0, 15, 19 +67.93468296276033, 74.81899236048999, 11.0, 16, 19 +67.93467751659472, 74.82614552424394, 29.0, 17, 19 +67.93467175922109, 74.83329868455054, 35.0, 18, 19 +67.93741751945868, 74.70454225561302, -5.0, 0, 20 +67.93741705258074, 74.71169627622427, -5.0, 1, 20 +67.93741627445085, 74.71885029645235, -5.0, 2, 20 +67.93741518506906, 74.72600431610564, -5.0, 3, 20 +67.9374137844354, 74.73315833499255, -5.0, 4, 20 +67.93741207254996, 74.74031235292149, -4.0, 5, 20 +67.93741004941276, 74.74746636970086, -4.0, 6, 20 +67.93740771502394, 74.75462038513908, -4.0, 7, 20 +67.93740506938357, 74.76177439904454, -3.0, 8, 20 +67.93740211249175, 74.76892841122564, -3.0, 9, 20 +67.93739884434865, 74.77608242149083, -2.0, 10, 20 +67.93739526495436, 74.78323642964845, -2.0, 11, 20 +67.93739137430906, 74.79039043550698, -1.0, 12, 20 +67.9373871724129, 74.79754443887477, -1.0, 13, 20 +67.93738265926606, 74.80469843956025, -1.0, 14, 20 +67.93737783486873, 74.81185243737185, -1.0, 15, 20 +67.93737269922113, 74.81900643211794, 10.0, 16, 20 +67.93736725232345, 74.82616042360696, 26.0, 17, 20 +67.93736149417595, 74.83331441164731, 32.0, 18, 20 +67.94010726105537, 74.70454308356673, -5.0, 0, 21 +67.94010679411466, 74.71169793213163, -5.0, 1, 21 +67.94010601588018, 74.71885278031318, -5.0, 2, 21 +67.94010492635194, 74.72600762791974, -5.0, 3, 21 +67.94010352553, 74.73316247475962, -5.0, 4, 21 +67.94010181341442, 74.74031732064115, -4.0, 5, 21 +67.94009979000526, 74.74747216537268, -4.0, 6, 21 +67.94009745530262, 74.75462700876254, -4.0, 7, 21 +67.9400948093066, 74.76178185061906, -3.0, 8, 21 +67.9400918520173, 74.76893669075055, -3.0, 9, 21 +67.94008858343484, 74.77609152896537, -2.0, 10, 21 +67.94008500355937, 74.78324636507185, -2.0, 11, 21 +67.94008111239106, 74.79040119887831, -2.0, 12, 21 +67.94007690993003, 74.7975560301931, -2.0, 13, 21 +67.94007239617649, 74.80471085882455, -2.0, 14, 21 +67.94006757113063, 74.811865684581, -2.0, 15, 21 +67.94006243479262, 74.81902050727075, -2.0, 16, 21 +67.94005698716273, 74.82617532670218, 22.0, 17, 21 +67.94005122824116, 74.83333014268362, 29.0, 18, 21 +67.94279700176426, 74.70454391172785, -5.0, 0, 22 +67.94279653476079, 74.71169958845381, -5.0, 1, 22 +67.94279575642167, 74.71885526479628, -5.0, 2, 22 +67.94279466674695, 74.72601094056351, -5.0, 3, 22 +67.94279326573668, 74.73316661556379, -5.0, 4, 22 +67.94279155339092, 74.74032228960534, -4.0, 5, 22 +67.94278952970973, 74.74747796249646, -4.0, 6, 22 +67.94278719469321, 74.75463363404538, -4.0, 7, 22 +67.94278454834145, 74.76178930406036, -3.0, 8, 22 +67.94278159065455, 74.76894497234966, -3.0, 9, 22 +67.94277832163266, 74.77610063872156, -2.0, 10, 22 +67.94277474127591, 74.78325630298428, -2.0, 11, 22 +67.94277084958443, 74.79041196494612, -2.0, 12, 22 +67.94276664655843, 74.79756762441531, -2.0, 13, 22 +67.94276213219806, 74.80472328120014, -2.0, 14, 22 +67.9427573065035, 74.81187893510884, -2.0, 15, 22 +67.94275216947494, 74.8190345859497, -2.0, 16, 22 +67.94274672111266, 74.82619023353095, 19.0, 17, 22 +67.94274096141685, 74.83334587766089, 27.0, 18, 22 +67.94548674158546, 74.70454474009648, -5.0, 0, 23 +67.94548627451917, 74.711701245191, -5.0, 1, 23 +67.9454854960754, 74.71885774990186, -5.0, 2, 23 +67.94548440625418, 74.72601425403728, -5.0, 3, 23 +67.94548300505554, 74.73317075740545, -5.0, 4, 23 +67.94548129247953, 74.74032725981452, -4.0, 5, 23 +67.94547926852626, 74.74748376107271, -4.0, 6, 23 +67.94547693319576, 74.75464026098818, -4.0, 7, 23 +67.94547428648818, 74.76179675936913, -3.0, 8, 23 +67.94547132840361, 74.76895325602374, -3.0, 9, 23 +67.94546805894218, 74.77610975076018, -2.0, 10, 23 +67.94546447810403, 74.78326624338668, -2.0, 11, 23 +67.94546058588931, 74.79042273371137, -2.0, 12, 23 +67.94545638229818, 74.79757922154246, -2.0, 13, 23 +67.9454518673308, 74.80473570668816, -2.0, 14, 23 +67.9454470409874, 74.81189218895662, -2.0, 15, 23 +67.94544190326816, 74.81904866815606, -2.0, 16, 23 +67.9454364541733, 74.82620514409463, 18.0, 17, 23 +67.94543069370307, 74.83336161658056, 28.0, 18, 23 +67.948176480519, 74.70454556867269, -5.0, 0, 24 +67.94817601338991, 74.71170290234332, -5.0, 1, 24 +67.94817523484147, 74.71886023563016, -5.0, 2, 24 +67.9481741448737, 74.72601756834135, -5.0, 3, 24 +67.94817274348664, 74.73317490028496, -5.0, 4, 24 +67.94817103068034, 74.74033223126914, -4.0, 5, 24 +67.9481690064549, 74.74748956110197, -4.0, 6, 24 +67.9481666708104, 74.75464688959157, -3.0, 7, 24 +67.9481640237469, 74.76180421654605, -3.0, 8, 24 +67.94816106526457, 74.76896154177354, -3.0, 9, 24 +67.9481577953635, 74.77611886508213, -2.0, 10, 24 +67.94815421404383, 74.78327618627992, -2.0, 11, 24 +67.94815032130572, 74.79043350517506, -2.0, 12, 24 +67.94814611714934, 74.79759082157562, -2.0, 13, 24 +67.94814160157483, 74.80474813528976, -2.0, 14, 24 +67.94813677458245, 74.81190544612555, -2.0, 15, 24 +67.94813163617235, 74.81906275389112, -2.0, 16, 24 +67.94812618634475, 74.82622005839458, 19.0, 17, 24 +67.9481204250999, 74.83337735944407, 31.0, 18, 24 +67.95086621856501, 74.70454639745653, -5.0, 0, 25 +67.9508657513731, 74.71170455991094, -5.0, 1, 25 +67.95086497271996, 74.71886272198141, -5.0, 2, 25 +67.9508638826056, 74.726020883476, -5.0, 3, 25 +67.95086248103007, 74.73317904420273, -5.0, 4, 25 +67.95086076799345, 74.74033720396963, -4.0, 5, 25 +67.95085874349577, 74.74749536258476, -4.0, 6, 25 +67.95085640753716, 74.75465351985615, -3.0, 7, 25 +67.9508537601177, 74.76181167559182, -3.0, 8, 25 +67.9508508012375, 74.76896982959981, -3.0, 9, 25 +67.95084753089667, 74.77612798168818, -2.0, 10, 25 +67.95084394909539, 74.78328613166495, -2.0, 11, 25 +67.95084005583377, 74.79044427933816, -2.0, 12, 25 +67.950835851112, 74.79760242451584, -2.0, 13, 25 +67.95083133493024, 74.80476056700606, -2.0, 14, 25 +67.95082650728871, 74.81191870661682, -2.0, 15, 25 +67.95082136818758, 74.81907684315618, -2.0, 16, 25 +67.95081591762708, 74.82623497643218, 21.0, 17, 25 +67.95081015560746, 74.83339310625286, 31.0, 18, 25 +67.95355595572356, 74.7045472264481, -5.0, 0, 26 +67.95355548846882, 74.711706217894, -5.0, 1, 26 +67.95355470971094, 74.71886520895583, -5.0, 2, 26 +67.95355361944996, 74.72602419944155, -5.0, 3, 26 +67.95355221768594, 74.7331831891591, -5.0, 4, 26 +67.95355050441891, 74.74034217791647, -4.0, 5, 26 +67.95354847964896, 74.74750116552163, -4.0, 6, 26 +67.95354614337617, 74.7546601517825, -3.0, 7, 26 +67.95354349560064, 74.76181913650709, -3.0, 8, 26 +67.95354053632249, 74.76897811950333, -3.0, 9, 26 +67.95353726554183, 74.77613710057919, -2.0, 10, 26 +67.9535336832588, 74.78329607954265, -2.0, 11, 26 +67.95352978947355, 74.79045505620167, -2.0, 12, 26 +67.95352558418627, 74.79761403036419, -2.0, 13, 26 +67.9535210673971, 74.8047730018382, -2.0, 14, 26 +67.95351623910628, 74.81193197043166, -2.0, 15, 26 +67.95351109931397, 74.81909093595252, -2.0, 16, 26 +67.9535056480204, 74.82624989820877, 22.0, 17, 26 +67.95349988522581, 74.83340885700838, 30.0, 18, 26 +67.95624569199474, 74.70454805564748, -5.0, 0, 27 +67.95624522467716, 74.71170787629268, -5.0, 1, 27 +67.95624444581453, 74.71886769655366, -5.0, 2, 27 +67.95624335540691, 74.7260275162383, -5.0, 3, 27 +67.95624195345432, 74.7331873351545, -5.0, 4, 27 +67.95624023995684, 74.74034715311012, -4.0, 5, 27 +67.95623821491455, 74.74750696991309, -4.0, 6, 27 +67.9562358783275, 74.75466678537127, -3.0, 7, 27 +67.95623323019582, 74.76182659929256, -3.0, 8, 27 +67.95623027051963, 74.76898641148483, -3.0, 9, 27 +67.956226999299, 74.77614622175601, -2.0, 10, 27 +67.95622341653413, 74.78330602991394, -2.0, 11, 27 +67.95621952222515, 74.79046583576655, -1.0, 12, 27 +67.95621531637222, 74.79762563912172, -1.0, 13, 27 +67.95621079897552, 74.80478543978732, -1.0, 14, 27 +67.95620597003524, 74.81194523757127, -1.0, 15, 27 +67.95620082955158, 74.81910503228144, -1.0, 16, 27 +67.95619537752478, 74.82626482372574, 21.0, 17, 27 +67.95618961395505, 74.83342461171205, 27.0, 18, 27 +67.95893542737863, 74.70454888505472, -5.0, 0, 28 +67.95893495999819, 74.7117095351071, -5.0, 1, 28 +67.9589341810308, 74.7188701847751, -5.0, 2, 28 +67.95893309047648, 74.72603083386655, -5.0, 3, 28 +67.95893168833531, 74.73319148218926, -4.0, 4, 28 +67.95892997460733, 74.74035212955103, -4.0, 5, 28 +67.95892794929262, 74.74751277575967, -4.0, 6, 28 +67.95892561239125, 74.75467342062304, -3.0, 7, 28 +67.95892296390335, 74.7618340639489, -3.0, 8, 28 +67.958920003829, 74.7689947055451, -2.0, 9, 28 +67.95891673216833, 74.77615534521944, -2.0, 10, 28 +67.95891314892151, 74.78331598277974, -2.0, 11, 28 +67.95890925408865, 74.79047661803382, -1.0, 12, 28 +67.95890504766994, 74.79763725078949, -1.0, 13, 28 +67.95890052966556, 74.80479788085457, -1.0, 14, 28 +67.95889570007567, 74.81195850803687, -1.0, 15, 28 +67.95889055890052, 74.81911913214422, -1.0, 16, 28 +67.9588851061403, 74.82627975298443, 21.0, 17, 28 +67.95887934179524, 74.83344037036532, 25.0, 18, 28 +67.96162516187533, 74.70454971466992, -5.0, 0, 29 +67.961624694432, 74.71171119433743, -5.0, 1, 29 +67.96162391535981, 74.71887267362041, -5.0, 2, 29 +67.96162282465878, 74.7260341523266, -5.0, 3, 29 +67.96162142232897, 74.73319563026376, -4.0, 4, 29 +67.96161970837043, 74.74035710723963, -4.0, 5, 29 +67.96161768278326, 74.74751858306193, -4.0, 6, 29 +67.9616153455675, 74.75468005753841, -3.0, 7, 29 +67.96161269672328, 74.76184153047681, -3.0, 8, 29 +67.9616097362507, 74.76900300168488, -2.0, 9, 29 +67.96160646414988, 74.77616447097034, -2.0, 10, 29 +67.96160288042098, 74.78332593814095, -2.0, 11, 29 +67.96159898506414, 74.79048740300445, -1.0, 12, 29 +67.96159477807952, 74.79764886536857, -1.0, 13, 29 +67.9615902594673, 74.80481032504106, -1.0, 14, 29 +67.96158542922768, 74.81197178182968, -1.0, 15, 29 +67.96158028736086, 74.81913323554215, 11.0, 16, 29 +67.96157483386705, 74.82629468598621, 21.0, 17, 29 +67.96156906874648, 74.83345613296964, 24.0, 18, 29 +67.96431489548492, 74.70455054449316, -5.0, 0, 30 +67.9643144279787, 74.71171285398381, -5.0, 1, 30 +67.96431364880168, 74.71887516308979, -5.0, 2, 30 +67.9643125579539, 74.72603747161878, -5.0, 3, 30 +67.96431115543541, 74.73319977937842, -4.0, 4, 30 +67.96430944124627, 74.7403620861764, -4.0, 5, 30 +67.96430741538654, 74.74752439182038, -3.0, 6, 30 +67.96430507785632, 74.75468669611801, -3.0, 7, 30 +67.9643024286557, 74.76184899887697, -3.0, 8, 30 +67.9642994677848, 74.76901129990492, -2.0, 9, 30 +67.96429619524372, 74.77617359900954, -2.0, 10, 30 +67.96429261103265, 74.78333589599848, -2.0, 11, 30 +67.9642887151517, 74.79049819067943, -1.0, 12, 30 +67.96428450760104, 74.79766048286002, -1.0, 13, 30 +67.96427998838085, 74.80482277234796, -1.0, 14, 30 +67.96427515749133, 74.81198505895091, -1.0, 15, 30 +67.96427001493268, 74.81914734247653, 15.0, 16, 30 +67.96426456070512, 74.82630962273248, 21.0, 17, 30 +67.96425879480888, 74.83347189952644, 24.0, 18, 30 +67.96700462820748, 74.70455137452448, -5.0, 0, 31 +67.96700416063835, 74.7117145140464, -5.0, 1, 31 +67.96700338135649, 74.7188776531835, -5.0, 2, 31 +67.96700229036193, 74.72604079174337, -5.0, 3, 31 +67.9670008876547, 74.7332039295336, -4.0, 4, 31 +67.96699917323491, 74.7403670663618, -4.0, 5, 31 +67.96699714710257, 74.74753020203555, -3.0, 6, 31 +67.96699480925781, 74.75469333636244, -3.0, 7, 31 +67.96699215970071, 74.76185646915005, -3.0, 8, 31 +67.96698919843139, 74.76901960020601, -2.0, 9, 31 +67.96698592544996, 74.77618272933786, -2.0, 10, 31 +67.96698234075659, 74.78334585635325, -2.0, 11, 31 +67.96697844435141, 74.79050898105973, -1.0, 12, 31 +67.96697423623458, 74.79767210326492, -1.0, 13, 31 +67.96696971640628, 74.8048352227764, -1.0, 14, 31 +67.96696488486671, 74.81199833940177, -1.0, 15, 31 +67.9669597416161, 74.81916145294862, 15.0, 16, 31 +67.96695428665461, 74.82632456322456, 20.0, 17, 31 +67.96694851998251, 74.83348767003717, 23.0, 18, 31 +67.96969436004309, 74.704552204764, -5.0, 0, 32 +67.96969389241104, 74.71171617452535, -5.0, 1, 32 +67.9696931130243, 74.71888014390173, -5.0, 2, 32 +67.96969202188293, 74.72604411270068, -4.0, 3, 32 +67.96969061898695, 74.73320808072968, -4.0, 4, 32 +67.96968890433642, 74.74037204779627, -4.0, 5, 32 +67.96968687793142, 74.74753601370797, -3.0, 6, 32 +67.96968453977206, 74.75469997827228, -3.0, 7, 32 +67.96968188985839, 74.76186394129675, -3.0, 8, 32 +67.96967892819056, 74.76902790258887, -2.0, 9, 32 +67.96967565476868, 74.77619186195616, -2.0, 10, 32 +67.9696720695929, 74.78335581920616, -1.0, 11, 32 +67.96966817266336, 74.79051977414638, -1.0, 12, 32 +67.96966396398022, 74.79768372658431, 0.0, 13, 32 +67.96965944354369, 74.80484767632751, -1.0, 14, 32 +67.96965461135392, 74.8120116231835, -1.0, 15, 32 +67.96964946741114, 74.81917556695976, 14.0, 16, 32 +67.96964401171557, 74.82633950746386, 19.0, 17, 32 +67.96963824426743, 74.83350344450328, 20.0, 18, 32 diff --git a/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson b/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson new file mode 100644 index 000000000..5ffff8cfe --- /dev/null +++ b/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82504385,67.92141103],[74.8251845,67.92212634],[74.82459035,67.92214288],[74.82444971,67.92142757],[74.82504385,67.92141103]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006625","angle":"4.230726724667532","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82635103,67.92137499],[74.8264829,67.92204559],[74.82588875,67.92206213],[74.8257569,67.92139153],[74.82635103,67.92137499]]]},"properties":{"modelId":"fuel_3tanks_75x25","subtype":"oil_bunker_tank","zone":"COMMON_OBJECT","libraryGroupId":"3006629","angle":"4.230726662170459","type":"oil_bunker_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82663113,67.92287879],[74.82676125,67.92359438],[74.82616682,67.92360968],[74.82603672,67.92289408],[74.82663113,67.92287879]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006638","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82681005,67.92386273],[74.82694017,67.92457832],[74.82634572,67.92459362],[74.82621562,67.92387803],[74.82681005,67.92386273]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006641","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82698898,67.92484667],[74.82711911,67.92556226],[74.82652464,67.92557756],[74.82639453,67.92486197],[74.82698898,67.92484667]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006646","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82716793,67.92583061],[74.82729807,67.9265462],[74.82670357,67.9265615],[74.82657345,67.92584591],[74.82716793,67.92583061]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006649","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8273469,67.92681455],[74.82747704,67.92753014],[74.82688251,67.92754544],[74.82675239,67.92682985],[74.8273469,67.92681455]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006651","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82752588,67.92779849],[74.82765603,67.92851408],[74.82706148,67.92852938],[74.82693135,67.92781379],[74.82752588,67.92779849]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006652","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82770487,67.92878243],[74.82776994,67.92914023],[74.82717538,67.92915552],[74.82711031,67.92879773],[74.82770487,67.92878243]]]},"properties":{"modelId":"warehouse_40x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006654","angle":"3.9130394145166667","type":"port_warehouse","building":"warehouse","dimensions":"40x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82657387,67.92984115],[74.82667821,67.93055734],[74.82608311,67.9305696],[74.82597879,67.92985341],[74.82657387,67.92984115]]]},"properties":{"modelId":"warehouse_80x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006661","angle":"3.1358561727346994","type":"port_warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82671734,67.93082591],[74.82676951,67.931184],[74.82617439,67.93119627],[74.82612223,67.93083817],[74.82671734,67.93082591]]]},"properties":{"modelId":"warehouse_40x25","subtype":"port_warehouse","zone":"COMMON_OBJECT","libraryGroupId":"3006662","angle":"3.1358561727346994","type":"port_warehouse","building":"warehouse","dimensions":"40x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82788178,67.92980521],[74.8279796,67.93047664],[74.8273845,67.9304889],[74.8272867,67.92981747],[74.82788178,67.92980521]]]},"properties":{"modelId":"fuel_3tanks_75x25","subtype":"oil_bunker_tank","zone":"COMMON_OBJECT","libraryGroupId":"3006664","angle":"3.1358573970361197","type":"oil_bunker_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82801873,67.93074521],[74.82805133,67.93096902],[74.82745622,67.93098128],[74.82742362,67.93075747],[74.82801873,67.93074521]]]},"properties":{"modelId":"fuel_1tank_25x25","subtype":"oil_bunker_tank","zone":"COMMON_OBJECT","libraryGroupId":"3006666","angle":"3.1358573970361197","type":"oil_bunker_tank","building":"fuel_tank","capacity":"2120.575","dimensions":"25x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82339966,67.92942057],[74.82327025,67.92870496],[74.82386482,67.92868975],[74.82399425,67.92940536],[74.82339966,67.92942057]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006784","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82322173,67.92843661],[74.82309232,67.92772099],[74.82368687,67.92770578],[74.82381629,67.92842139],[74.82322173,67.92843661]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006788","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82304381,67.92745264],[74.82291441,67.92673703],[74.82350893,67.92672182],[74.82363835,67.92743743],[74.82304381,67.92745264]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006790","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82286591,67.92646867],[74.82273652,67.92575306],[74.82333101,67.92573785],[74.82346043,67.92645346],[74.82286591,67.92646867]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006794","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82268803,67.9254847],[74.82255864,67.92476909],[74.82315311,67.92475388],[74.82328252,67.92546949],[74.82268803,67.9254847]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006796","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82251016,67.92450074],[74.82238077,67.92378512],[74.82297522,67.92376991],[74.82310462,67.92448553],[74.82251016,67.92450074]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006799","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82233229,67.92351677],[74.8222676,67.92315896],[74.82286203,67.92314375],[74.82292673,67.92350156],[74.82233229,67.92351677]]]},"properties":{"modelId":"warehouse_40x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006802","angle":"-176.10871237679675","type":"warehouse","building":"warehouse","dimensions":"40x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8220922,67.92945661],[74.82196279,67.928741],[74.82255736,67.92872579],[74.82268679,67.9294414],[74.8220922,67.92945661]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006805","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82191427,67.92847264],[74.82178487,67.92775703],[74.82237941,67.92774182],[74.82250884,67.92845743],[74.82191427,67.92847264]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006808","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82173636,67.92748868],[74.82160696,67.92677306],[74.82220148,67.92675785],[74.8223309,67.92747346],[74.82173636,67.92748868]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006810","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82155846,67.92650471],[74.82142906,67.9257891],[74.82202356,67.92577389],[74.82215297,67.9264895],[74.82155846,67.92650471]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006814","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82138057,67.92552074],[74.82125118,67.92480513],[74.82184565,67.92478992],[74.82197506,67.92550553],[74.82138057,67.92552074]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006816","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8212027,67.92453677],[74.82107332,67.92382116],[74.82166776,67.92380595],[74.82179717,67.92452156],[74.8212027,67.92453677]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006820","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82102484,67.92355281],[74.82096015,67.923195],[74.82155458,67.92317979],[74.82161928,67.9235376],[74.82102484,67.92355281]]]},"properties":{"modelId":"warehouse_40x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006822","angle":"-176.1087128095903","type":"warehouse","building":"warehouse","dimensions":"40x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82078474,67.92949265],[74.82065533,67.92877703],[74.82124991,67.92876182],[74.82137934,67.92947744],[74.82078474,67.92949265]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006826","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82060681,67.92850868],[74.82047741,67.92779307],[74.82107196,67.92777786],[74.82120138,67.92849347],[74.82060681,67.92850868]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006828","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8204289,67.92752471],[74.8202995,67.9268091],[74.82089402,67.92679389],[74.82102344,67.9275095],[74.8204289,67.92752471]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006832","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.820251,67.92654075],[74.8201216,67.92582513],[74.8207161,67.92580992],[74.82084551,67.92652554],[74.820251,67.92654075]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006834","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82007311,67.92555678],[74.81994372,67.92484117],[74.8205382,67.92482596],[74.8206676,67.92554157],[74.82007311,67.92555678]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006838","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81989524,67.92457281],[74.81976586,67.9238572],[74.82036031,67.92384199],[74.82048971,67.9245576],[74.81989524,67.92457281]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006840","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81971738,67.92358884],[74.81965269,67.92323104],[74.82024712,67.92321583],[74.82031182,67.92357363],[74.81971738,67.92358884]]]},"properties":{"modelId":"warehouse_40x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006844","angle":"-176.10871324247464","type":"warehouse","building":"warehouse","dimensions":"40x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81947729,67.92952868],[74.81934787,67.92881307],[74.81994245,67.92879786],[74.82007188,67.92951347],[74.81947729,67.92952868]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006846","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81929935,67.92854472],[74.81916995,67.92782911],[74.8197645,67.9278139],[74.81989392,67.92852951],[74.81929935,67.92854472]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006850","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81912144,67.92756075],[74.81899204,67.92684514],[74.81958656,67.92682993],[74.81971598,67.92754554],[74.81912144,67.92756075]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006852","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81894354,67.92657678],[74.81881414,67.92586117],[74.81940864,67.92584596],[74.81953805,67.92656157],[74.81894354,67.92657678]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006856","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81876565,67.92559282],[74.81863626,67.92487721],[74.81923074,67.92486199],[74.81936014,67.92557761],[74.81876565,67.92559282]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006859","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81858778,67.92460885],[74.8184584,67.92389324],[74.81905285,67.92387803],[74.81918225,67.92459364],[74.81858778,67.92460885]]]},"properties":{"modelId":"warehouse_80x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006862","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"80x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81840992,67.92362488],[74.81834523,67.92326708],[74.81893966,67.92325186],[74.81900436,67.92360967],[74.81840992,67.92362488]]]},"properties":{"modelId":"warehouse_40x25","zone":"CONTAINER_TERMINAL","libraryGroupId":"3006864","angle":"-176.10871367544593","type":"warehouse","building":"warehouse","dimensions":"40x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81910469,67.92166473],[74.81919171,67.92211182],[74.8188352,67.92212164],[74.81874818,67.92167455],[74.81910469,67.92166473]]]},"properties":{"modelId":"admin_50x15","zone":"PRE_PORT","libraryGroupId":"3006885","angle":"4.188324616420713","type":"administrative_building","building":"administrative","dimensions":"50x15"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81993654,67.92164179],[74.82002357,67.92208888],[74.81966706,67.92209871],[74.81958004,67.92165161],[74.81993654,67.92164179]]]},"properties":{"modelId":"admin_50x15","zone":"PRE_PORT","libraryGroupId":"3006888","angle":"4.188324619090205","type":"administrative_building","building":"administrative","dimensions":"50x15"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82076839,67.92161885],[74.82085542,67.92206595],[74.82049891,67.92207577],[74.82041189,67.92162868],[74.82076839,67.92161885]]]},"properties":{"modelId":"admin_50x15","zone":"PRE_PORT","libraryGroupId":"3006891","angle":"4.188324621751281","type":"administrative_building","building":"administrative","dimensions":"50x15"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82160024,67.92159592],[74.82168727,67.92204301],[74.82133076,67.92205284],[74.82124374,67.92160574],[74.82160024,67.92159592]]]},"properties":{"modelId":"admin_50x15","zone":"PRE_PORT","libraryGroupId":"3006895","angle":"4.188324624369251","type":"administrative_building","building":"administrative","dimensions":"50x15"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82243209,67.92157298],[74.82251912,67.92202008],[74.82216261,67.9220299],[74.82207559,67.9215828],[74.82243209,67.92157298]]]},"properties":{"modelId":"admin_50x15","zone":"PRE_PORT","libraryGroupId":"3006897","angle":"4.188324627013504","type":"administrative_building","building":"administrative","dimensions":"50x15"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82326394,67.92155005],[74.82335097,67.92199714],[74.82299446,67.92200696],[74.82290744,67.92155987],[74.82326394,67.92155005]]]},"properties":{"modelId":"admin_50x15","zone":"PRE_PORT","libraryGroupId":"3006901","angle":"4.188324629707168","type":"administrative_building","building":"administrative","dimensions":"50x15"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8209335,67.93026422],[74.8210641,67.93093486],[74.82046969,67.93095123],[74.82033911,67.93028059],[74.8209335,67.93026422]]]},"properties":{"modelId":"fuel_3tanks_75x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006920","angle":"4.188480602608438","type":"fuel_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82109893,67.93111369],[74.821186,67.93156079],[74.82059158,67.93157716],[74.82050452,67.93113007],[74.82109893,67.93111369]]]},"properties":{"modelId":"fuel_2tanks_50x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006922","angle":"4.188480602608438","type":"fuel_tank","building":"fuel_tank","capacity":"4241.15","dimensions":"50x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82200344,67.93023473],[74.82213404,67.93090537],[74.82153963,67.93092174],[74.82140905,67.9302511],[74.82200344,67.93023473]]]},"properties":{"modelId":"fuel_3tanks_75x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006924","angle":"4.188480605958735","type":"fuel_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82216887,67.9310842],[74.82225594,67.9315313],[74.82166151,67.93154767],[74.82157446,67.93110058],[74.82216887,67.9310842]]]},"properties":{"modelId":"fuel_2tanks_50x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006925","angle":"4.188480605958735","type":"fuel_tank","building":"fuel_tank","capacity":"4241.15","dimensions":"50x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82307337,67.93020524],[74.82320397,67.93087588],[74.82260956,67.93089225],[74.82247898,67.93022161],[74.82307337,67.93020524]]]},"properties":{"modelId":"fuel_3tanks_75x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006927","angle":"4.188480609431631","type":"fuel_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8232388,67.93105471],[74.82332587,67.93150181],[74.82273145,67.93151818],[74.82264439,67.93107108],[74.8232388,67.93105471]]]},"properties":{"modelId":"fuel_2tanks_50x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006929","angle":"4.188480609431631","type":"fuel_tank","building":"fuel_tank","capacity":"4241.15","dimensions":"50x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82414331,67.93017575],[74.82427391,67.93084639],[74.8236795,67.93086276],[74.82354892,67.93019212],[74.82414331,67.93017575]]]},"properties":{"modelId":"fuel_3tanks_75x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006931","angle":"4.188480612754634","type":"fuel_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82430874,67.93102522],[74.82439581,67.93147232],[74.82380138,67.93148869],[74.82371432,67.93104159],[74.82430874,67.93102522]]]},"properties":{"modelId":"fuel_2tanks_50x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006933","angle":"4.188480612754634","type":"fuel_tank","building":"fuel_tank","capacity":"4241.15","dimensions":"50x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82521324,67.93014626],[74.82534384,67.9308169],[74.82474943,67.93083327],[74.82461885,67.93016263],[74.82521324,67.93014626]]]},"properties":{"modelId":"fuel_3tanks_75x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006935","angle":"4.188480616185506","type":"fuel_tank","building":"fuel_tank","capacity":"6361.725","dimensions":"75x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.82537867,67.93099573],[74.82546574,67.93144283],[74.82487131,67.9314592],[74.82478426,67.9310121],[74.82537867,67.93099573]]]},"properties":{"modelId":"fuel_2tanks_50x25","zone":"FUEL_TERMINAL","libraryGroupId":"3006938","angle":"4.188480616185506","type":"fuel_tank","building":"fuel_tank","capacity":"4241.15","dimensions":"50x25"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81727931,67.92139107],[74.81731621,67.92156984],[74.81589067,67.92161149],[74.81585378,67.92143271],[74.81727931,67.92139107]]]},"properties":{"modelId":"passenger_pier_20x60","zone":"PASSENGER_TERMINAL","libraryGroupId":"3007135","angle":"4.439984240292297","type":"passenger_pier","building":"passenger_pier","dimensions":"20x60"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81735032,67.92174885],[74.81738722,67.92192762],[74.81596166,67.92196927],[74.81592477,67.92179049],[74.81735032,67.92174885]]]},"properties":{"modelId":"passenger_pier_20x60","zone":"PASSENGER_TERMINAL","libraryGroupId":"3007170","angle":"4.439984240292297","type":"passenger_pier","building":"passenger_pier","dimensions":"20x60"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81742134,67.92210663],[74.81745824,67.92228541],[74.81603266,67.92232705],[74.81599576,67.92214827],[74.81742134,67.92210663]]]},"properties":{"modelId":"passenger_pier_20x60","zone":"PASSENGER_TERMINAL","libraryGroupId":"3007195","angle":"4.439984240292297","type":"passenger_pier","building":"passenger_pier","dimensions":"20x60"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81749235,67.92246441],[74.81752926,67.92264319],[74.81610365,67.92268483],[74.81606676,67.92250605],[74.81749235,67.92246441]]]},"properties":{"modelId":"passenger_pier_20x60","zone":"PASSENGER_TERMINAL","libraryGroupId":"3007231","angle":"4.439984240292297","type":"passenger_pier","building":"passenger_pier","dimensions":"20x60"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81652687,67.92303254],[74.81671137,67.92392643],[74.81599853,67.92394725],[74.81581406,67.92305336],[74.81652687,67.92303254]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3007914","angle":"4.439984240292297","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81723969,67.92301171],[74.81742421,67.9239056],[74.81671137,67.92392643],[74.81652687,67.92303254],[74.81723969,67.92301171]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3007914","angle":"4.439984240292297","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8167399,67.92410588],[74.81692441,67.92499977],[74.81621154,67.92502059],[74.81602706,67.9241267],[74.8167399,67.92410588]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3007974","angle":"4.439984240292297","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81745275,67.92408505],[74.81763728,67.92497895],[74.81692441,67.92499977],[74.8167399,67.92410588],[74.81745275,67.92408505]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3007974","angle":"4.439984240292297","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81695295,67.92517922],[74.81713747,67.92607311],[74.81642456,67.92609393],[74.81624007,67.92520004],[74.81695295,67.92517922]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3008021","angle":"4.439984240292297","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81766583,67.9251584],[74.81785038,67.92605229],[74.81713747,67.92607311],[74.81695295,67.92517922],[74.81766583,67.9251584]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3008021","angle":"4.439984240292297","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81716603,67.92625256],[74.81735055,67.92714645],[74.81663761,67.92716727],[74.81645311,67.92627338],[74.81716603,67.92625256]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3008079","angle":"4.439984240292297","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81787894,67.92623174],[74.81806349,67.92712563],[74.81735055,67.92714645],[74.81716603,67.92625256],[74.81787894,67.92623174]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3008079","angle":"4.439984240292297","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81737911,67.9273259],[74.81756365,67.92821979],[74.81685067,67.92824061],[74.81666617,67.92734672],[74.81737911,67.9273259]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3008141","angle":"4.439984240292297","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81809206,67.92730507],[74.81827662,67.92819896],[74.81756365,67.92821979],[74.81737911,67.9273259],[74.81809206,67.92730507]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3008141","angle":"4.439984240292297","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8175605,67.9284077],[74.81769761,67.92930279],[74.81698364,67.92931826],[74.81684656,67.92842317],[74.8175605,67.9284077]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3008203","angle":"3.2973625834928955","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81827444,67.92839222],[74.81841158,67.92928732],[74.81769761,67.92930279],[74.8175605,67.9284077],[74.81827444,67.92839222]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3008203","angle":"3.2973625834928955","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81776873,67.92984066],[74.81790585,67.93073576],[74.81719184,67.93075123],[74.81705475,67.92985613],[74.81776873,67.92984066]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3008768","angle":"3.2973625834928955","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81848272,67.92982519],[74.81861987,67.93072029],[74.81790585,67.93073576],[74.81776873,67.92984066],[74.81848272,67.92982519]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3008768","angle":"3.2973625834928955","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81792493,67.93091539],[74.81806205,67.93181048],[74.81734801,67.93182595],[74.81721091,67.93093085],[74.81792493,67.93091539]]]},"properties":{"modelId":"cargo_pier_100x30","zone":"PIER","libraryGroupId":"3008830","angle":"3.2973625834928955","type":"cargo_pier","building":"cargo_pier","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81863895,67.93089991],[74.8187761,67.93179501],[74.81806205,67.93181048],[74.81792493,67.93091539],[74.81863895,67.93089991]]]},"properties":{"modelId":"operational_warehouse_100x30","zone":"PIER","libraryGroupId":"3008830","angle":"3.2973625834928955","type":"operational_warehouse","building":"operational_warehouse","dimensions":"100x30"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81827518,67.92146466],[74.81746616,67.92149783],[74.81729776,67.92148046]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82159694,67.92308447],[74.81843459,67.92316542],[74.81827947,67.9232323],[74.81812434,67.92329917],[74.81750644,67.9234548],[74.81733195,67.92345866]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81827518,67.92146466],[74.8175276,67.92181078],[74.81736877,67.92183824]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81743979,67.92219602],[74.81760134,67.92218632],[74.81864885,67.92252416]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81751081,67.9225538],[74.81767508,67.92256186],[74.81864885,67.92252416]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81887275,67.92466395],[74.81820695,67.92468099],[74.81769949,67.92451926],[74.81754502,67.924532]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81889083,67.92661357],[74.81871304,67.92655521],[74.81789254,67.92558372],[74.8177581,67.92560534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81889083,67.92661357],[74.81872436,67.92661783],[74.81808561,67.92664818],[74.81797121,67.92667868]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81940493,67.92760691],[74.81844516,67.92770837],[74.81829005,67.92777525],[74.81818434,67.92775202]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81993885,67.92141878],[74.81827518,67.92146466]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81834301,67.92883977],[74.81848313,67.92883971],[74.8192452,67.92949817],[74.81942301,67.92955652],[74.81960082,67.92961488],[74.8197673,67.92961062]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81855129,67.93027274],[74.81872176,67.93025507],[74.82054746,67.93105875]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81864885,67.92252416],[74.82114446,67.92245532]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81869525,67.92361758],[74.8186916,67.92366209],[74.81885804,67.92365783],[74.81902449,67.92365357],[74.82002315,67.92362801]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82054746,67.93105875],[74.81887671,67.93132041],[74.81870752,67.93134746]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81887275,67.92466395],[74.81887313,67.92460155]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82020436,67.92462987],[74.81887275,67.92466395]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81889083,67.92661357],[74.81905729,67.92660931],[74.81922375,67.92660505]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82038557,67.92563173],[74.81905391,67.92566581],[74.81905101,67.92558552]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81993885,67.92141878],[74.81932217,67.92168751],[74.81935876,67.92187529],[74.8191482,67.92188827]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81922375,67.92660505],[74.81922891,67.92656948]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81922375,67.92660505],[74.81939022,67.92660079],[74.81955668,67.92659653],[74.81972315,67.92659227],[74.82005608,67.92658375],[74.82022254,67.92657949],[74.82038901,67.92657523],[74.82055547,67.92657097]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81940493,67.92760691],[74.81940682,67.92755345]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8207367,67.92757283],[74.81940493,67.92760691]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82091794,67.92857468],[74.81958611,67.92860876],[74.81958475,67.92853742]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8197673,67.92961062],[74.81976269,67.92952138]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82065637,67.9299024],[74.8197673,67.92961062]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81993885,67.92141878],[74.82093704,67.92139124]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81998005,67.92186534],[74.8201906,67.92185234],[74.8201662,67.92172716],[74.82030817,67.92159738],[74.82047454,67.92159279],[74.82064091,67.9215882],[74.82080727,67.92158361],[74.82097364,67.92157902]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82002315,67.92362801],[74.82000271,67.92358154]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82135469,67.92359392],[74.82002315,67.92362801]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82020436,67.92462987],[74.82018059,67.92456551]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82153596,67.92459578],[74.82020436,67.92462987]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82038557,67.92563173],[74.82035847,67.92554948]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82171723,67.92559764],[74.82038557,67.92563173]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82055547,67.92657097],[74.82053637,67.92653345]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82054746,67.93105875],[74.82154607,67.93103122]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82055547,67.92657097],[74.82072194,67.92656671],[74.8208884,67.92656245],[74.82105486,67.92655819],[74.82138779,67.92654967],[74.82155426,67.9265454],[74.82172072,67.92654114],[74.82188719,67.92653688]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82110338,67.93047706],[74.82105457,67.93022669],[74.82065637,67.9299024]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82065637,67.9299024],[74.82109919,67.92957654],[74.82107015,67.92948535]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8207367,67.92757283],[74.82071428,67.92751741]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82206847,67.92753874],[74.8207367,67.92757283]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82075851,67.92125855],[74.82078241,67.9212519],[74.82093704,67.92139124]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82102244,67.92182939],[74.82081191,67.9218424]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82091794,67.92857468],[74.82089221,67.92850138]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82224977,67.92854059],[74.82091794,67.92857468]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82093704,67.92139124],[74.82094924,67.92145383]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82094924,67.92145383],[74.82097364,67.92157902]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82094924,67.92145383],[74.82178107,67.92143088]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82097364,67.92157902],[74.82102244,67.92182939]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82110338,67.93047706],[74.82097704,67.93048776]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82102244,67.92182939],[74.82114446,67.92245532]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82110338,67.93047706],[74.82135523,67.93091062],[74.82153386,67.93096862],[74.8217125,67.93102663]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82154607,67.93103122],[74.8212376,67.93116558],[74.82127421,67.93135336],[74.82114247,67.93133724]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82114446,67.92245532],[74.82157428,67.92295924]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82135469,67.92359392],[74.82131017,67.92354551]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82135469,67.92359392],[74.82185402,67.92358114]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82153596,67.92459578],[74.82148804,67.92452947]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82153596,67.92459578],[74.82203531,67.92458299]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82154607,67.93103122],[74.8217125,67.93102663]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82157428,67.92295924],[74.82159694,67.92308447]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82157428,67.92295924],[74.82482085,67.92286355]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82159694,67.92308447],[74.8218087,67.92333067],[74.82185402,67.92358114]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82164376,67.92181947],[74.82185429,67.92180644],[74.82178107,67.92143088]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82171723,67.92559764],[74.82166593,67.92551344]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82254467,67.93100368],[74.8217125,67.93102663]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82171723,67.92559764],[74.8222166,67.92558485]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82178107,67.92143088],[74.8221138,67.9214217]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82188719,67.92653688],[74.82184382,67.92649741]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82185402,67.92358114],[74.82187668,67.92370637]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82203531,67.92458299],[74.82187668,67.92370637]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82237601,67.92369358],[74.82187668,67.92370637]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82188719,67.92653688],[74.82205365,67.92653262],[74.82222011,67.92652836],[74.82238658,67.92652409]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82206847,67.92753874],[74.82202174,67.92748138]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82203531,67.92458299],[74.8222166,67.92558485]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82203531,67.92458299],[74.82286756,67.92456168],[74.8227955,67.92449344]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82254467,67.93100368],[74.82232942,67.9307579],[74.82226839,67.93044493],[74.82204697,67.93045827]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82271169,67.92739646],[74.82240142,67.92753021],[74.82206847,67.92753874]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8221138,67.9214217],[74.82229237,67.9214797],[74.82247094,67.9215377],[74.82264951,67.9215957],[74.82268613,67.92178348],[74.82247561,67.92179653]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8221138,67.9214217],[74.82294562,67.92139874]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82224977,67.92854059],[74.82219966,67.92846534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82254467,67.93100368],[74.82243926,67.93132123],[74.8222124,67.93130775]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82238658,67.92652409],[74.8222166,67.92558485]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8222166,67.92558485],[74.82304889,67.92556354],[74.82297338,67.9254774]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8235816,67.92850649],[74.82224977,67.92854059]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82237601,67.92369358],[74.82268623,67.92355982],[74.82261762,67.92350947]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82237601,67.92369358],[74.82287534,67.92368079],[74.82305312,67.92373914],[74.82323089,67.9237975],[74.82444135,67.92401811]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82237761,67.92944931],[74.82241975,67.92947984],[74.82258623,67.92947557],[74.82275272,67.92947131],[74.8229192,67.92946705],[74.82325217,67.92945852],[74.82341865,67.92945426],[74.82358514,67.92945],[74.82375162,67.92944573]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82271169,67.92739646],[74.82238658,67.92652409]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82238658,67.92652409],[74.8227195,67.92651557],[74.82288597,67.92651131],[74.82305243,67.92650704],[74.82321889,67.92650278],[74.82315128,67.92646137]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82254467,67.93100368],[74.82354327,67.93097613]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82271169,67.92739646],[74.8228895,67.92745481],[74.8230673,67.92751316],[74.8232451,67.92757152]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82294562,67.92139874],[74.8231242,67.92145674],[74.82330277,67.92151474],[74.82348134,67.92157274],[74.82351796,67.92176052],[74.82330746,67.92177359]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82294562,67.92139874],[74.82470711,67.921355],[74.82475866,67.92141897]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82354327,67.93097613],[74.82326697,67.93041739],[74.82311691,67.93042878]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8232451,67.92757152],[74.82358938,67.92762561],[74.82376719,67.92768396],[74.82377852,67.92774657],[74.82378986,67.92780919],[74.8238012,67.92787181],[74.82381253,67.92793442],[74.82382387,67.92799704],[74.8238352,67.92805965],[74.82384654,67.92812227],[74.82385787,67.92818489],[74.82386921,67.9282475],[74.82388054,67.92831012],[74.82389188,67.92837273],[74.82390322,67.92843535],[74.82391455,67.92849797]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8232451,67.92757152],[74.82340024,67.92750464],[74.82332919,67.92744534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82370971,67.93097154],[74.82340126,67.93110591],[74.82343788,67.93129369],[74.82328234,67.93127826]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8235816,67.92850649],[74.82350712,67.9284293]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82354327,67.93097613],[74.82370971,67.93097154]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82391455,67.92849797],[74.8235816,67.92850649]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82375162,67.92944573],[74.82368506,67.92941327]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82454188,67.93094858],[74.82370971,67.93097154]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82375162,67.92944573],[74.82391811,67.92944147],[74.82408459,67.92943721],[74.82550586,67.92938829]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82391455,67.92849797],[74.82544891,67.92907522]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82454188,67.93094858],[74.82443198,67.93038524],[74.82418684,67.93039929]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82470831,67.93094399],[74.8245663,67.93107377],[74.82460293,67.93126154],[74.82435227,67.93124877]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82444135,67.92401811],[74.8266719,67.92476603],[74.82670364,67.92485401]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82444135,67.92401811],[74.82616814,67.92383538],[74.82633458,67.9238311],[74.82650102,67.92382681],[74.82652472,67.92387007]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82454188,67.93094858],[74.82470831,67.93094399]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82470831,67.93094399],[74.82573312,67.93092944]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82639499,67.92159852],[74.82659861,67.921617],[74.8266848,67.92205513],[74.82482085,67.92286355]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82482085,67.92286355],[74.82631875,67.92282498],[74.82634581,67.92288613]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82525677,67.9303698],[74.82543055,67.93035769],[74.82604812,67.93079724]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82573312,67.93092944],[74.82560154,67.93123399],[74.8254222,67.93121928]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82544891,67.92907522],[74.82550586,67.92938829]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82544891,67.92907522],[74.82622435,67.92874073]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82639277,67.9297216],[74.82550586,67.92938829]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82604812,67.93079724],[74.82573312,67.93092944]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82604812,67.93079724],[74.82621475,67.9307938],[74.82638138,67.93079037]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82673075,67.92784699],[74.82622435,67.92874073]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82622435,67.92874073],[74.82738968,67.92871073],[74.82741948,67.92878977]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82639277,67.9297216],[74.82623528,67.9297877],[74.82628823,67.92984703]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82638138,67.93079037],[74.82643169,67.93083179]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8269931,67.93040063],[74.82701136,67.93052597],[74.82653887,67.93072427],[74.82638138,67.93079037]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82639277,67.9297216],[74.82656853,67.92978083]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82673075,67.92784699],[74.82654848,67.92684516]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82654848,67.92684516],[74.82636621,67.92584333],[74.82652127,67.92577643],[74.82685418,67.92576786],[74.82688258,67.92583795]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82654848,67.92684516],[74.82670355,67.92677826],[74.82703647,67.92676969],[74.82706154,67.92682189]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82656853,67.92978083],[74.82674428,67.92984007],[74.8269931,67.93040063]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82656853,67.92978083],[74.8279015,67.92975335],[74.82807726,67.92981258],[74.82810467,67.93000058],[74.82791439,67.93002902]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82673075,67.92784699],[74.82688583,67.92778009],[74.8270523,67.9277758],[74.82721877,67.92777152],[74.8272405,67.92780583]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8269931,67.93040063],[74.82716886,67.93045986],[74.82734462,67.9305191],[74.82752038,67.93057833],[74.82803853,67.93069335],[74.8282143,67.93075259],[74.82823257,67.93087792],[74.82803438,67.93085264]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82078241,67.9212519],[74.82075851,67.92125855]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82823257,67.93087792],[74.82803438,67.93085264]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82638138,67.93079037],[74.82643169,67.93083179]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82810467,67.93000058],[74.82791439,67.93002902]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82560154,67.93123399],[74.8254222,67.93121928]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82460293,67.93126154],[74.82435227,67.93124877]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82623528,67.9297877],[74.82628823,67.92984703]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82343788,67.93129369],[74.82328234,67.93127826]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81887671,67.93132041],[74.81870752,67.93134746]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82243926,67.93132123],[74.8222124,67.93130775]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82127421,67.93135336],[74.82114247,67.93133724]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82738968,67.92871073],[74.82741948,67.92878977]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82543055,67.93035769],[74.82525677,67.9303698]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82443198,67.93038524],[74.82418684,67.93039929]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82326697,67.93041739],[74.82311691,67.93042878]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82226839,67.93044493],[74.82204697,67.93045827]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82110338,67.93047706],[74.82097704,67.93048776]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82721877,67.92777152],[74.8272405,67.92780583]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81872176,67.93025507],[74.81855129,67.93027274]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82703647,67.92676969],[74.82706154,67.92682189]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82375162,67.92944573],[74.82368506,67.92941327]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8197673,67.92961062],[74.81976269,67.92952138]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82241975,67.92947984],[74.82237761,67.92944931]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81848313,67.92883971],[74.81834301,67.92883977]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82109919,67.92957654],[74.82107015,67.92948535]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82685418,67.92576786],[74.82688258,67.92583795]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8235816,67.92850649],[74.82350712,67.9284293]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8266719,67.92476603],[74.82670364,67.92485401]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81958611,67.92860876],[74.81958475,67.92853742]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81829005,67.92777525],[74.81818434,67.92775202]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82224977,67.92854059],[74.82219966,67.92846534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82091794,67.92857468],[74.82089221,67.92850138]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82650102,67.92382681],[74.82652472,67.92387007]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82340024,67.92750464],[74.82332919,67.92744534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81808561,67.92664818],[74.81797121,67.92667868]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81940493,67.92760691],[74.81940682,67.92755345]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82206847,67.92753874],[74.82202174,67.92748138]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8207367,67.92757283],[74.82071428,67.92751741]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82631875,67.92282498],[74.82634581,67.92288613]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81789254,67.92558372],[74.8177581,67.92560534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82659861,67.921617],[74.82639499,67.92159852]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82321889,67.92650278],[74.82315128,67.92646137]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81922375,67.92660505],[74.81922891,67.92656948]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82188719,67.92653688],[74.82184382,67.92649741]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82055547,67.92657097],[74.82053637,67.92653345]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81769949,67.92451926],[74.81754502,67.924532]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81750644,67.9234548],[74.81733195,67.92345866]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82304889,67.92556354],[74.82297338,67.9254774]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81905391,67.92566581],[74.81905101,67.92558552]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82470711,67.921355],[74.82475866,67.92141897]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82171723,67.92559764],[74.82166593,67.92551344]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82038557,67.92563173],[74.82035847,67.92554948]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81767508,67.92256186],[74.81751081,67.9225538]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81746616,67.92149783],[74.81729776,67.92148046]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81760134,67.92218632],[74.81743979,67.92219602]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8175276,67.92181078],[74.81736877,67.92183824]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81887275,67.92466395],[74.81887313,67.92460155]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82286756,67.92456168],[74.8227955,67.92449344]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8186916,67.92366209],[74.81869525,67.92361758]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82020436,67.92462987],[74.82018059,67.92456551]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82153596,67.92459578],[74.82148804,67.92452947]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82268623,67.92355982],[74.82261762,67.92350947]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82351796,67.92176052],[74.82330746,67.92177359]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82002315,67.92362801],[74.82000271,67.92358154]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82135469,67.92359392],[74.82131017,67.92354551]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81935876,67.92187529],[74.8191482,67.92188827]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82268613,67.92178348],[74.82247561,67.92179653]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8201906,67.92185234],[74.81998005,67.92186534]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82185429,67.92180644],[74.82164376,67.92181947]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82102244,67.92182939],[74.82081191,67.9218424]]},"properties":{"type":"highway"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81806205,67.93181048],[74.81769087,67.93181852],[74.81775286,67.93217154],[74.81822884,67.93215972],[74.81816711,67.93180821],[74.81806205,67.93181048]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8179785,67.93073418],[74.81750229,67.9307445],[74.81753378,67.93092386],[74.81792493,67.93091539],[74.81801,67.93091354],[74.8179785,67.93073418]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81772703,67.92930216],[74.81725084,67.92931247],[74.8173452,67.92984984],[74.81782139,67.92983952],[74.81772703,67.92930216]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81706155,67.92823445],[74.81709375,67.92841781],[74.81756992,67.92840749],[74.81753709,67.92822057],[74.81706155,67.92823445]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81687296,67.9271604],[74.81690446,67.92733976],[74.81737997,67.92732587],[74.81734848,67.92714651],[74.81687296,67.9271604]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81715986,67.92607246],[74.81668437,67.92608634],[74.81671586,67.92626571],[74.81719136,67.92625182],[74.81715986,67.92607246]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81697125,67.9249984],[74.81649578,67.92501229],[74.81652727,67.92519165],[74.81700275,67.92517776],[74.81697125,67.9249984]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81678264,67.92392435],[74.81630719,67.92393824],[74.81633868,67.9241176],[74.81681413,67.92410371],[74.81678264,67.92392435]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81608719,67.92268531],[74.81615009,67.92304354],[74.81652687,67.92303254],[74.81662552,67.92302966],[74.81656261,67.92267142],[74.81608719,67.92268531]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81602432,67.92232729],[74.81605577,67.92250637],[74.81653119,67.92249249],[74.81649974,67.92231341],[74.81602432,67.92232729]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81596146,67.92196928],[74.8159929,67.92214836],[74.81646832,67.92213447],[74.81643687,67.92195539],[74.81596146,67.92196928]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.8158986,67.92161126],[74.81593004,67.92179034],[74.81640545,67.92177645],[74.816374,67.92159737],[74.8158986,67.92161126]]]},"properties":{"type":"embankment"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81639665,67.9228942],[74.81784469,67.92285428],[74.8178447,67.92285428],[74.82130715,67.92275881]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82149508,67.92275363],[74.82426462,67.92267727],[74.8242691,67.9226768],[74.82427277,67.92267573],[74.82427507,67.9226742],[74.82427563,67.92267247],[74.82402689,67.92140741]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.82401299,67.92133672],[74.82398015,67.92116972],[74.82397891,67.92116803],[74.82397605,67.92116665],[74.82397201,67.92116579],[74.82396739,67.92116558],[74.82087797,67.92125076]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.8206825,67.92125615],[74.81754801,67.92134257],[74.81754789,67.92134257],[74.81609992,67.92138249]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81799193,67.93215663],[74.81944103,67.93211669],[74.81944103,67.93211669],[74.8258646,67.93193964],[74.82586904,67.93193919],[74.82587268,67.93193813],[74.825875,67.93193664],[74.82587564,67.93193493],[74.82581085,67.93149024],[74.82977217,67.93138105],[74.8297766,67.93138059],[74.82978025,67.93137954],[74.82978256,67.93137804],[74.8297832,67.93137633],[74.82950777,67.92948786],[74.82950659,67.92948614],[74.82950374,67.92948474],[74.8295029,67.92948455],[74.82922349,67.92753875],[74.82922349,67.9275387],[74.82920886,67.92745335],[74.82920886,67.92745331],[74.82824644,67.92256299],[74.82824622,67.92256269],[74.82795071,67.92106025],[74.82794947,67.92105856],[74.82794661,67.92105718],[74.82794256,67.92105632],[74.82793795,67.9210561],[74.82397928,67.92116526],[74.8239748,67.92116572],[74.82397369,67.92116605]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81639665,67.9228942],[74.81612505,67.92290095]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81799193,67.93215663],[74.81799085,67.93216563]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"LineString","coordinates":[[74.81639665,67.9228942],[74.81612505,67.92290095]]},"properties":{"type":"fence"}},{"type":"Feature","geometry":{"type":"MultiPoint","coordinates":[[74.82087797,67.92125076],[74.8206825,67.92125615]]},"properties":{"type":"gate"}},{"type":"Feature","geometry":{"type":"MultiPoint","coordinates":[[74.82149508,67.92275363],[74.82130715,67.92275881]]},"properties":{"type":"gate"}},{"type":"Feature","geometry":{"type":"MultiPoint","coordinates":[[74.82402689,67.92140741],[74.82401299,67.92133672]]},"properties":{"type":"gate"}},{"type":"Feature","geometry":{"type":"MultiPoint","coordinates":[[74.82130715,67.92275881],[74.82149508,67.92275363]]},"properties":{"type":"gate"}},{"type":"Feature","geometry":{"type":"MultiPoint","coordinates":[[74.82401299,67.92133672],[74.82402689,67.92140741]]},"properties":{"type":"gate"}},{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[74.81504737,67.97049077],[74.81676,67.9661499],[74.8189346,67.9598134],[74.8197568,67.95808],[74.8191132,67.9528809],[74.8195968,67.9522672],[74.8202791,67.9521791],[74.8195515,67.9440595],[74.8192817,67.9410473],[74.8173539,67.9277831],[74.8153279,67.9174616],[74.8132882,67.9104606],[74.8120949,67.9078187],[74.8091717,67.9045934],[74.8084951,67.9038808],[74.8084155,67.9034915],[74.8086702,67.9032669],[74.807102,67.9031082],[74.8053745,67.9021708],[74.8058999,67.9020151],[74.8077707,67.9029644],[74.8109708,67.9033328],[74.8114166,67.9034825],[74.8118943,67.9035094],[74.8124038,67.9034376],[74.8129053,67.9032968],[74.8134784,67.9031112],[74.8136796,67.9030318],[74.8138048,67.9029824],[74.8144417,67.9029944],[74.8147044,67.9030692],[74.8147681,67.903207],[74.8147601,67.9033717],[74.8149193,67.9035184],[74.8154527,67.9036472],[74.816051,67.903767],[74.8183235,67.9040249],[74.81861,67.9039111],[74.8188177,67.9037914],[74.8194696,67.9039471],[74.8192494,67.9040793],[74.8233966,67.905062],[74.8244584,67.9050397],[74.831225,67.9037626],[74.8334089,67.9033781],[74.8335363,67.9031056],[74.8335283,67.9029858],[74.8331303,67.9028181],[74.8320161,67.9026579],[74.8319048,67.9026419],[74.8305271,67.9025935],[74.8279558,67.9026384],[74.8271279,67.9025665],[74.825695,67.9029499],[74.8239039,67.9032643],[74.822662,67.9031685],[74.8205604,67.9026564],[74.8196131,67.9024348],[74.8189444,67.9024078],[74.8183314,67.9024108],[74.817193,67.9019107],[74.8169303,67.9015453],[74.8168348,67.9012788],[74.817201,67.9012099],[74.8191673,67.9011021],[74.8206002,67.9010572],[74.821643,67.9010362],[74.8220809,67.9010093],[74.8221923,67.9008865],[74.8221127,67.9007577],[74.8219057,67.9006619],[74.8211654,67.9006379],[74.8191752,67.9007068],[74.8184349,67.9006768],[74.8176707,67.9006679],[74.8166756,67.9007487],[74.8161024,67.9007996],[74.8157044,67.9007787],[74.8154019,67.9006828],[74.8152347,67.9005151],[74.815011,67.9000438],[74.8146536,67.8993471],[74.8134277,67.8976158],[74.8123848,67.8957257],[74.812337,67.8948031],[74.8119629,67.8938864],[74.8116763,67.8925862],[74.8097757,67.8910578],[74.8098804,67.8889915],[74.8104311,67.8872783],[74.8094849,67.8823838],[74.8091719,67.88181313],[74.77372895,67.88442437],[74.73500915,67.89408815],[74.70901888,67.90859375],[74.69972909,67.92573944],[74.70858912,67.94291774],[74.73428554,67.95751076],[74.77292131,67.96729024],[74.81504737,67.97049077]]]},"properties":{"type":"water"}}]} \ No newline at end of file diff --git a/cases/breakwaters/ob2/INPUT b/cases/breakwaters/ob2_upd/INPUT similarity index 88% rename from cases/breakwaters/ob2/INPUT rename to cases/breakwaters/ob2_upd/INPUT index 919f04d9e..ddd75510f 100644 --- a/cases/breakwaters/ob2/INPUT +++ b/cases/breakwaters/ob2_upd/INPUT @@ -12,6 +12,8 @@ INPgrid BOTtom REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & dxinp=0.0071370458 dyinp=0.0026897599 EXCeption -9 READinp BOTtom fac=1 'data\bathy.bot' idla=1 0 FREE + + INPgrid WIND REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & alpinp=0. mxinp=17 myinp=31 & dxinp=0.0071370458 dyinp=0.0026897599 & @@ -22,7 +24,7 @@ BOUnd SHAPespec JONswap 3.3 PEAK DSPR DEGRees -OBSTACLE TRANSM 0. REFL 0. LINE 74.810470, 67.930902, 74.806538, 67.930025, 74.803719, 67.928509, 74.809836, 67.923163, 74.810798, 67.922973, 74.811649, 67.926213, 74.811374, 67.929569 +OBSTACLE TRANSM 0. REFL 0. LINE 74.816568, 67.917807, 74.814523, 67.940433, 74.801762, 67.918330 $optline diff --git a/cases/breakwaters/ob2_upd/INPUT_2 b/cases/breakwaters/ob2_upd/INPUT_2 new file mode 100644 index 000000000..f31f3cd5c --- /dev/null +++ b/cases/breakwaters/ob2_upd/INPUT_2 @@ -0,0 +1,59 @@ +$***********MODEL INPUT********************************* +SET NAUTical +MODE NONSTationary TWODimensional +COORDinates spherical + +CGRID REGular xpc=74.70350703505787 ypc=67.88206697110601 alpc=0. & + xlenc=0.128969 ylenc=0.086128 mxc=17 myc=31 & + CIRCLE mdc=36 flow=0.05 fhigh=1. msc=25 + +INPgrid BOTtom REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071370458 dyinp=0.0026897599 EXCeption -9 +READinp BOTtom fac=1 'data\bathy.bot' idla=1 0 FREE + + + +INPgrid WIND REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071370458 dyinp=0.0026897599 & +NONSTATIONARY 20180101.000000 6 HR 20180103.230000 +READinp WIND fac=1.21 SERIES 'data\wind_inventory.txt' 1 0 1 0 FREE + +BOUnd SHAPespec JONswap 3.3 PEAK DSPR DEGRees + + + +OBSTACLE TRANSM + +$optline + + + + +GEN3 ST6 6.5E-6 8.5E-5 4.0 4.0 UP HWANG VECTAU U10PROXY 35.0 AGROW +BREAKING +FRiction JONswap CONstant 0.067 +TRIAD +DIFFRACtion + PROP BSBT +QUANTity Per short='Tm-1,0' power=0. + + + +OUTPUT OPTIONS '%' TABLE 16 BLOCK 6 18 + +BLOCK 'COMPGRID' NOHEAD 'results\HSig_ob_example.dat' LAYOUT 1 HSig OUT 20180102.000000 1. HR +BLOCK 'COMPGRID' NOHEAD 'results\PDIR_ob_example.dat' LAYOUT 1 PDIR OUT 20180102.000000 1. HR +BLOCK 'COMPGRID' NOHEAD 'results\RTP_ob_example.dat' LAYOUT 1 RTP OUT 20180102.000000 1. HR + + + + + + + + +COMPUTE NONSTat 20180101.000000 10 MIN 20180103.230000 + +STOP diff --git a/cases/breakwaters/ob2_upd/PRINT b/cases/breakwaters/ob2_upd/PRINT new file mode 100644 index 000000000..ce6cc1dcd --- /dev/null +++ b/cases/breakwaters/ob2_upd/PRINT @@ -0,0 +1,1929 @@ +1 + + Execution started at 20231114.175653 + + + + --------------------------------------- + SWAN + SIMULATION OF WAVES IN NEAR SHORE AREAS + VERSION NUMBER 41.31A + --------------------------------------- + + + + $***********MODEL INPUT********************************* + + SET NAUTical + + MODE NONSTationary TWODimensional + + COORDinates spherical + + + + CGRID REGular xpc=74.70350703505787 ypc=67.88206697110601 alpc=0. & + xlenc=0.128969 ylenc=0.086128 mxc=17 myc=31 & + CIRCLE mdc=36 flow=0.05 fhigh=1. msc=25 + Resolution in sigma-space: df/f = 0.1273 + + + + INPgrid BOTtom REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071370458 dyinp=0.0026897599 EXCeption -9 + + READinp BOTtom fac=1 'data\bathy.bot' idla=1 0 FREE + + + + + + + + INPgrid WIND REGular xpinp=74.70350703505787 ypinp=67.88206697110601 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071370458 dyinp=0.0026897599 & + NONSTATIONARY 20180101.000000 6 HR 20180103.230000 + ** Warning : [deltinp] is not a fraction of the period + + READinp WIND fac=1.21 SERIES 'data\wind_inventory.txt' 1 0 1 0 FREE + ** Heading lines ** + -> 20180101.000000 + + + + BOUnd SHAPespec JONswap 3.3 PEAK DSPR DEGRees + + + + + + + + OBSTACLE TRANSM 0. REFL 0. LINE 74.816568, 67.917807, 74.814523, 67.940433, 74.801762, 67.918330 + + $optline + + + + + + GEN3 ST6 6.5E-6 8.5E-5 4.0 4.0 UP HWANG VECTAU U10PROXY 35.0 AGROW + + BREAKING + + FRiction JONswap CONstant 0.067 + + TRIAD + + DIFFRACtion + + PROP BSBT + + QUANTity Per short='Tm-1,0' power=0. + + + + + + + + OUTPUT OPTIONS '%' TABLE 16 BLOCK 6 18 + + + + BLOCK 'COMPGRID' NOHEAD 'results\HSig_ob_example.dat' LAYOUT 1 HSig OUT 20180102.000000 1. HR + + BLOCK 'COMPGRID' NOHEAD 'results\PDIR_ob_example.dat' LAYOUT 1 PDIR OUT 20180102.000000 1. HR + + BLOCK 'COMPGRID' NOHEAD 'results\RTP_ob_example.dat' LAYOUT 1 RTP OUT 20180102.000000 1. HR + + + + + + + + + + + + + + + + + + COMPUTE NONSTat 20180101.000000 10 MIN 20180103.230000 + ** Warning : Corner of comp grid outside bottom grid + Coordinates : 74.70 67.97 + ** Warning : Corner of comp grid outside bottom grid + Coordinates : 74.83 67.88 + ** Warning : Corner of comp grid outside bottom grid + Coordinates : 74.83 67.97 + ** Warning : (corner)point outside bottom grid + Set of output locations: BOUND_02 coordinates: 74.83 67.88 + ** Warning : (corner)point outside bottom grid + Set of output locations: BOUND_03 coordinates: 74.83 67.97 + ** Warning : (corner)point outside bottom grid + Set of output locations: BOUND_04 coordinates: 74.70 67.97 + Time of computation -> 20180101.001000 in sec: 600. + ** Heading lines ** + -> 20180101.060000 + +---------------------------------------------------------------- + COMPUTATIONAL PART OF SWAN +---------------------------------------------------------------- + + Gridresolution : MXC 18 MYC 32 + : MCGRD 483 + : MSC 26 MDC 36 + : MTC 426 + : NSTATC 1 ITERMX 1 + Propagation flags : ITFRE 1 IREFR 1 + Source term flags : IBOT 1 ISURF 1 + : IWCAP 8 IWIND 8 + : ITRIAD 11 IQUAD 2 + : IVEG 0 ITURBV 0 + : IMUD 0 IICE 0 + Spatial step : DX 0.7586E-02 DY 0.2778E-02 + Spectral bin : df/f 0.1273E+00 DDIR 0.1000E+02 + Physical constants : GRAV 0.9810E+01 RHO 0.1025E+04 + Wind input : WSPEED 0.0000E+00 DIR 0.0000E+00 + : ICEWIND 0.00 + Tail parameters : E(f) 0.4000E+01 E(k) 0.2500E+01 + : A(f) 0.5000E+01 A(k) 0.3000E+01 + Accuracy parameters : DREL 0.1000E-01 NPNTS 0.9950E+02 + : DHABS 0.5000E-02 CURVAT 0.5000E-02 + : GRWMX 0.1000E+00 + Drying/flooding : LEVEL 0.0000E+00 DEPMIN 0.5000E-01 + The nautical convention for wind and wave directions is used + Scheme for geographic propagation is BSBT + Scheme geogr. space : PROPSC 1 ICMAX 5 + Scheme spectral space: CSS 0.5000E+00 CDD 0.5000E+00 + Current is off + Quadruplets : IQUAD 2 + : LAMBDA 0.2500E+00 CNL4 0.3000E+08 + : CSH1 0.5500E+01 CSH2 0.8330E+00 + : CSH3 -0.1250E+01 + Maximum Ursell nr for Snl4 : 0.1000E+02 + Triads : ITRIAD 11 TRFAC 0.5000E-01 + : CUTFR 0.2500E+01 URCRI 0.2000E+00 + Minimum Ursell nr for Snl3 : 0.1000E-01 + JONSWAP (`73) : GAMMA 0.6700E-01 + Vegetation is off + Turbulence is off + Fluid mud is off + Dissipation by sea ice is off + W-cap Babanin : A1 0.6500E-05 A2 0.8500E-04 + : P1 0.4000E+01 P2 0.4000E+01 + : CDSV 0.1200E+01 + Babanin Sds: concave up behavior : T + DBYB Sin: tau calculated from vector: T + DBYB Sin: true U10 used : F + DBYB Sin: U10PROXY = 35.0 * Ustar + DBYB Sin: factor on Cdrag to counter wind bias: 1.000 + Wind drag is Hwang + DBYB/Tsagareli/Rogers wind input + Battjes&Janssen (`78): ALPHA 0.1000E+01 GAMMA 0.7300E+00 + Set-up is off + Diffraction : SMPAR 0.0000E+00 SMNUM 0 + Janssen (`89,`90) : ALPHA 0.1000E-01 KAPPA 0.4100E+00 + Janssen (`89,`90) : RHOA 0.1280E+01 RHOW 0.1025E+04 + + 1st and 2nd gen. wind: CF10 0.1880E+03 CF20 0.5900E+00 + : CF30 0.1200E+00 CF40 0.2500E+03 + : CF50 0.2300E-02 CF60 -0.2230E+00 + : CF70 0.0000E+00 CF80 -0.5600E+00 + : RHOAW 0.1249E-02 EDMLPM 0.3600E-02 + : CDRAG 0.1230E-02 UMIN 0.1000E+01 + : LIM_PM 0.1300E+00 + + not possible to compute, first iteration + + + Time of computation -> 20180101.002000 in sec: 1200. + not possible to compute, first iteration + + + Time of computation -> 20180101.003000 in sec: 1800. + not possible to compute, first iteration + + + Time of computation -> 20180101.004000 in sec: 2400. + not possible to compute, first iteration + + + Time of computation -> 20180101.005000 in sec: 3000. + not possible to compute, first iteration + + + Time of computation -> 20180101.010000 in sec: 3600. + not possible to compute, first iteration + + + Time of computation -> 20180101.011000 in sec: 4200. + not possible to compute, first iteration + + + Time of computation -> 20180101.012000 in sec: 4800. + not possible to compute, first iteration + + + Time of computation -> 20180101.013000 in sec: 5400. + not possible to compute, first iteration + + + Time of computation -> 20180101.014000 in sec: 6000. + not possible to compute, first iteration + + + Time of computation -> 20180101.015000 in sec: 6600. + not possible to compute, first iteration + + + Time of computation -> 20180101.020000 in sec: 7200. + not possible to compute, first iteration + + + Time of computation -> 20180101.021000 in sec: 7800. + not possible to compute, first iteration + + + Time of computation -> 20180101.022000 in sec: 8400. + not possible to compute, first iteration + + + Time of computation -> 20180101.023000 in sec: 9000. + not possible to compute, first iteration + + + Time of computation -> 20180101.024000 in sec: 9600. + not possible to compute, first iteration + + + Time of computation -> 20180101.025000 in sec: 10200. + not possible to compute, first iteration + + + Time of computation -> 20180101.030000 in sec: 10800. + not possible to compute, first iteration + + + Time of computation -> 20180101.031000 in sec: 11400. + not possible to compute, first iteration + + + Time of computation -> 20180101.032000 in sec: 12000. + not possible to compute, first iteration + + + Time of computation -> 20180101.033000 in sec: 12600. + not possible to compute, first iteration + + + Time of computation -> 20180101.034000 in sec: 13200. + not possible to compute, first iteration + + + Time of computation -> 20180101.035000 in sec: 13800. + not possible to compute, first iteration + + + Time of computation -> 20180101.040000 in sec: 14400. + not possible to compute, first iteration + + + Time of computation -> 20180101.041000 in sec: 15000. + not possible to compute, first iteration + + + Time of computation -> 20180101.042000 in sec: 15600. + not possible to compute, first iteration + + + Time of computation -> 20180101.043000 in sec: 16200. + not possible to compute, first iteration + + + Time of computation -> 20180101.044000 in sec: 16800. + not possible to compute, first iteration + + + Time of computation -> 20180101.045000 in sec: 17400. + not possible to compute, first iteration + + + Time of computation -> 20180101.050000 in sec: 18000. + not possible to compute, first iteration + + + Time of computation -> 20180101.051000 in sec: 18600. + not possible to compute, first iteration + + + Time of computation -> 20180101.052000 in sec: 19200. + not possible to compute, first iteration + + + Time of computation -> 20180101.053000 in sec: 19800. + not possible to compute, first iteration + + + Time of computation -> 20180101.054000 in sec: 20400. + not possible to compute, first iteration + + + Time of computation -> 20180101.055000 in sec: 21000. + not possible to compute, first iteration + + + Time of computation -> 20180101.060000 in sec: 21600. + not possible to compute, first iteration + + + Time of computation -> 20180101.061000 in sec: 22200. + ** Heading lines ** + -> 20180101.120000 + not possible to compute, first iteration + + + Time of computation -> 20180101.062000 in sec: 22800. + not possible to compute, first iteration + + + Time of computation -> 20180101.063000 in sec: 23400. + not possible to compute, first iteration + + + Time of computation -> 20180101.064000 in sec: 24000. + not possible to compute, first iteration + + + Time of computation -> 20180101.065000 in sec: 24600. + not possible to compute, first iteration + + + Time of computation -> 20180101.070000 in sec: 25200. + not possible to compute, first iteration + + + Time of computation -> 20180101.071000 in sec: 25800. + not possible to compute, first iteration + + + Time of computation -> 20180101.072000 in sec: 26400. + not possible to compute, first iteration + + + Time of computation -> 20180101.073000 in sec: 27000. + not possible to compute, first iteration + + + Time of computation -> 20180101.074000 in sec: 27600. + not possible to compute, first iteration + + + Time of computation -> 20180101.075000 in sec: 28200. + not possible to compute, first iteration + + + Time of computation -> 20180101.080000 in sec: 28800. + not possible to compute, first iteration + + + Time of computation -> 20180101.081000 in sec: 29400. + not possible to compute, first iteration + + + Time of computation -> 20180101.082000 in sec: 30000. + not possible to compute, first iteration + + + Time of computation -> 20180101.083000 in sec: 30600. + not possible to compute, first iteration + + + Time of computation -> 20180101.084000 in sec: 31200. + not possible to compute, first iteration + + + Time of computation -> 20180101.085000 in sec: 31800. + not possible to compute, first iteration + + + Time of computation -> 20180101.090000 in sec: 32400. + not possible to compute, first iteration + + + Time of computation -> 20180101.091000 in sec: 33000. + not possible to compute, first iteration + + + Time of computation -> 20180101.092000 in sec: 33600. + not possible to compute, first iteration + + + Time of computation -> 20180101.093000 in sec: 34200. + not possible to compute, first iteration + + + Time of computation -> 20180101.094000 in sec: 34800. + not possible to compute, first iteration + + + Time of computation -> 20180101.095000 in sec: 35400. + not possible to compute, first iteration + + + Time of computation -> 20180101.100000 in sec: 36000. + not possible to compute, first iteration + + + Time of computation -> 20180101.101000 in sec: 36600. + not possible to compute, first iteration + + + Time of computation -> 20180101.102000 in sec: 37200. + not possible to compute, first iteration + + + Time of computation -> 20180101.103000 in sec: 37800. + not possible to compute, first iteration + + + Time of computation -> 20180101.104000 in sec: 38400. + not possible to compute, first iteration + + + Time of computation -> 20180101.105000 in sec: 39000. + not possible to compute, first iteration + + + Time of computation -> 20180101.110000 in sec: 39600. + not possible to compute, first iteration + + + Time of computation -> 20180101.111000 in sec: 40200. + not possible to compute, first iteration + + + Time of computation -> 20180101.112000 in sec: 40800. + not possible to compute, first iteration + + + Time of computation -> 20180101.113000 in sec: 41400. + not possible to compute, first iteration + + + Time of computation -> 20180101.114000 in sec: 42000. + not possible to compute, first iteration + + + Time of computation -> 20180101.115000 in sec: 42600. + not possible to compute, first iteration + + + Time of computation -> 20180101.120000 in sec: 43200. + not possible to compute, first iteration + + + Time of computation -> 20180101.121000 in sec: 43800. + ** Heading lines ** + -> 20180101.180000 + not possible to compute, first iteration + + + Time of computation -> 20180101.122000 in sec: 44400. + not possible to compute, first iteration + + + Time of computation -> 20180101.123000 in sec: 45000. + not possible to compute, first iteration + + + Time of computation -> 20180101.124000 in sec: 45600. + not possible to compute, first iteration + + + Time of computation -> 20180101.125000 in sec: 46200. + not possible to compute, first iteration + + + Time of computation -> 20180101.130000 in sec: 46800. + not possible to compute, first iteration + + + Time of computation -> 20180101.131000 in sec: 47400. + not possible to compute, first iteration + + + Time of computation -> 20180101.132000 in sec: 48000. + not possible to compute, first iteration + + + Time of computation -> 20180101.133000 in sec: 48600. + not possible to compute, first iteration + + + Time of computation -> 20180101.134000 in sec: 49200. + not possible to compute, first iteration + + + Time of computation -> 20180101.135000 in sec: 49800. + not possible to compute, first iteration + + + Time of computation -> 20180101.140000 in sec: 50400. + not possible to compute, first iteration + + + Time of computation -> 20180101.141000 in sec: 51000. + not possible to compute, first iteration + + + Time of computation -> 20180101.142000 in sec: 51600. + not possible to compute, first iteration + + + Time of computation -> 20180101.143000 in sec: 52200. + not possible to compute, first iteration + + + Time of computation -> 20180101.144000 in sec: 52800. + not possible to compute, first iteration + + + Time of computation -> 20180101.145000 in sec: 53400. + not possible to compute, first iteration + + + Time of computation -> 20180101.150000 in sec: 54000. + not possible to compute, first iteration + + + Time of computation -> 20180101.151000 in sec: 54600. + not possible to compute, first iteration + + + Time of computation -> 20180101.152000 in sec: 55200. + not possible to compute, first iteration + + + Time of computation -> 20180101.153000 in sec: 55800. + not possible to compute, first iteration + + + Time of computation -> 20180101.154000 in sec: 56400. + not possible to compute, first iteration + + + Time of computation -> 20180101.155000 in sec: 57000. + not possible to compute, first iteration + + + Time of computation -> 20180101.160000 in sec: 57600. + not possible to compute, first iteration + + + Time of computation -> 20180101.161000 in sec: 58200. + not possible to compute, first iteration + + + Time of computation -> 20180101.162000 in sec: 58800. + not possible to compute, first iteration + + + Time of computation -> 20180101.163000 in sec: 59400. + not possible to compute, first iteration + + + Time of computation -> 20180101.164000 in sec: 60000. + not possible to compute, first iteration + + + Time of computation -> 20180101.165000 in sec: 60600. + not possible to compute, first iteration + + + Time of computation -> 20180101.170000 in sec: 61200. + not possible to compute, first iteration + + + Time of computation -> 20180101.171000 in sec: 61800. + not possible to compute, first iteration + + + Time of computation -> 20180101.172000 in sec: 62400. + not possible to compute, first iteration + + + Time of computation -> 20180101.173000 in sec: 63000. + not possible to compute, first iteration + + + Time of computation -> 20180101.174000 in sec: 63600. + not possible to compute, first iteration + + + Time of computation -> 20180101.175000 in sec: 64200. + not possible to compute, first iteration + + + Time of computation -> 20180101.180000 in sec: 64800. + not possible to compute, first iteration + + + Time of computation -> 20180101.181000 in sec: 65400. + ** Heading lines ** + -> 20180102.000000 + not possible to compute, first iteration + + + Time of computation -> 20180101.182000 in sec: 66000. + not possible to compute, first iteration + + + Time of computation -> 20180101.183000 in sec: 66600. + not possible to compute, first iteration + + + Time of computation -> 20180101.184000 in sec: 67200. + not possible to compute, first iteration + + + Time of computation -> 20180101.185000 in sec: 67800. + not possible to compute, first iteration + + + Time of computation -> 20180101.190000 in sec: 68400. + not possible to compute, first iteration + + + Time of computation -> 20180101.191000 in sec: 69000. + not possible to compute, first iteration + + + Time of computation -> 20180101.192000 in sec: 69600. + not possible to compute, first iteration + + + Time of computation -> 20180101.193000 in sec: 70200. + not possible to compute, first iteration + + + Time of computation -> 20180101.194000 in sec: 70800. + not possible to compute, first iteration + + + Time of computation -> 20180101.195000 in sec: 71400. + not possible to compute, first iteration + + + Time of computation -> 20180101.200000 in sec: 72000. + not possible to compute, first iteration + + + Time of computation -> 20180101.201000 in sec: 72600. + not possible to compute, first iteration + + + Time of computation -> 20180101.202000 in sec: 73200. + not possible to compute, first iteration + + + Time of computation -> 20180101.203000 in sec: 73800. + not possible to compute, first iteration + + + Time of computation -> 20180101.204000 in sec: 74400. + not possible to compute, first iteration + + + Time of computation -> 20180101.205000 in sec: 75000. + not possible to compute, first iteration + + + Time of computation -> 20180101.210000 in sec: 75600. + not possible to compute, first iteration + + + Time of computation -> 20180101.211000 in sec: 76200. + not possible to compute, first iteration + + + Time of computation -> 20180101.212000 in sec: 76800. + not possible to compute, first iteration + + + Time of computation -> 20180101.213000 in sec: 77400. + not possible to compute, first iteration + + + Time of computation -> 20180101.214000 in sec: 78000. + not possible to compute, first iteration + + + Time of computation -> 20180101.215000 in sec: 78600. + not possible to compute, first iteration + + + Time of computation -> 20180101.220000 in sec: 79200. + not possible to compute, first iteration + + + Time of computation -> 20180101.221000 in sec: 79800. + not possible to compute, first iteration + + + Time of computation -> 20180101.222000 in sec: 80400. + not possible to compute, first iteration + + + Time of computation -> 20180101.223000 in sec: 81000. + not possible to compute, first iteration + + + Time of computation -> 20180101.224000 in sec: 81600. + not possible to compute, first iteration + + + Time of computation -> 20180101.225000 in sec: 82200. + not possible to compute, first iteration + + + Time of computation -> 20180101.230000 in sec: 82800. + not possible to compute, first iteration + + + Time of computation -> 20180101.231000 in sec: 83400. + not possible to compute, first iteration + + + Time of computation -> 20180101.232000 in sec: 84000. + not possible to compute, first iteration + + + Time of computation -> 20180101.233000 in sec: 84600. + not possible to compute, first iteration + + + Time of computation -> 20180101.234000 in sec: 85200. + not possible to compute, first iteration + + + Time of computation -> 20180101.235000 in sec: 85800. + not possible to compute, first iteration + + + Time of computation -> 20180102.000000 in sec: 86400. + not possible to compute, first iteration + + + Time of computation -> 20180102.001000 in sec: 87000. + ** Heading lines ** + -> 20180102.060000 + not possible to compute, first iteration + + + Time of computation -> 20180102.002000 in sec: 87600. + not possible to compute, first iteration + + + Time of computation -> 20180102.003000 in sec: 88200. + not possible to compute, first iteration + + + Time of computation -> 20180102.004000 in sec: 88800. + not possible to compute, first iteration + + + Time of computation -> 20180102.005000 in sec: 89400. + not possible to compute, first iteration + + + Time of computation -> 20180102.010000 in sec: 90000. + not possible to compute, first iteration + + + Time of computation -> 20180102.011000 in sec: 90600. + not possible to compute, first iteration + + + Time of computation -> 20180102.012000 in sec: 91200. + not possible to compute, first iteration + + + Time of computation -> 20180102.013000 in sec: 91800. + not possible to compute, first iteration + + + Time of computation -> 20180102.014000 in sec: 92400. + not possible to compute, first iteration + + + Time of computation -> 20180102.015000 in sec: 93000. + not possible to compute, first iteration + + + Time of computation -> 20180102.020000 in sec: 93600. + not possible to compute, first iteration + + + Time of computation -> 20180102.021000 in sec: 94200. + not possible to compute, first iteration + + + Time of computation -> 20180102.022000 in sec: 94800. + not possible to compute, first iteration + + + Time of computation -> 20180102.023000 in sec: 95400. + not possible to compute, first iteration + + + Time of computation -> 20180102.024000 in sec: 96000. + not possible to compute, first iteration + + + Time of computation -> 20180102.025000 in sec: 96600. + not possible to compute, first iteration + + + Time of computation -> 20180102.030000 in sec: 97200. + not possible to compute, first iteration + + + Time of computation -> 20180102.031000 in sec: 97800. + not possible to compute, first iteration + + + Time of computation -> 20180102.032000 in sec: 98400. + not possible to compute, first iteration + + + Time of computation -> 20180102.033000 in sec: 99000. + not possible to compute, first iteration + + + Time of computation -> 20180102.034000 in sec: 99600. + not possible to compute, first iteration + + + Time of computation -> 20180102.035000 in sec: 100200. + not possible to compute, first iteration + + + Time of computation -> 20180102.040000 in sec: 100800. + not possible to compute, first iteration + + + Time of computation -> 20180102.041000 in sec: 101400. + not possible to compute, first iteration + + + Time of computation -> 20180102.042000 in sec: 102000. + not possible to compute, first iteration + + + Time of computation -> 20180102.043000 in sec: 102600. + not possible to compute, first iteration + + + Time of computation -> 20180102.044000 in sec: 103200. + not possible to compute, first iteration + + + Time of computation -> 20180102.045000 in sec: 103800. + not possible to compute, first iteration + + + Time of computation -> 20180102.050000 in sec: 104400. + not possible to compute, first iteration + + + Time of computation -> 20180102.051000 in sec: 105000. + not possible to compute, first iteration + + + Time of computation -> 20180102.052000 in sec: 105600. + not possible to compute, first iteration + + + Time of computation -> 20180102.053000 in sec: 106200. + not possible to compute, first iteration + + + Time of computation -> 20180102.054000 in sec: 106800. + not possible to compute, first iteration + + + Time of computation -> 20180102.055000 in sec: 107400. + not possible to compute, first iteration + + + Time of computation -> 20180102.060000 in sec: 108000. + not possible to compute, first iteration + + + Time of computation -> 20180102.061000 in sec: 108600. + ** Heading lines ** + -> 20180102.120000 + not possible to compute, first iteration + + + Time of computation -> 20180102.062000 in sec: 109200. + not possible to compute, first iteration + + + Time of computation -> 20180102.063000 in sec: 109800. + not possible to compute, first iteration + + + Time of computation -> 20180102.064000 in sec: 110400. + not possible to compute, first iteration + + + Time of computation -> 20180102.065000 in sec: 111000. + not possible to compute, first iteration + + + Time of computation -> 20180102.070000 in sec: 111600. + not possible to compute, first iteration + + + Time of computation -> 20180102.071000 in sec: 112200. + not possible to compute, first iteration + + + Time of computation -> 20180102.072000 in sec: 112800. + not possible to compute, first iteration + + + Time of computation -> 20180102.073000 in sec: 113400. + not possible to compute, first iteration + + + Time of computation -> 20180102.074000 in sec: 114000. + not possible to compute, first iteration + + + Time of computation -> 20180102.075000 in sec: 114600. + not possible to compute, first iteration + + + Time of computation -> 20180102.080000 in sec: 115200. + not possible to compute, first iteration + + + Time of computation -> 20180102.081000 in sec: 115800. + not possible to compute, first iteration + + + Time of computation -> 20180102.082000 in sec: 116400. + not possible to compute, first iteration + + + Time of computation -> 20180102.083000 in sec: 117000. + not possible to compute, first iteration + + + Time of computation -> 20180102.084000 in sec: 117600. + not possible to compute, first iteration + + + Time of computation -> 20180102.085000 in sec: 118200. + not possible to compute, first iteration + + + Time of computation -> 20180102.090000 in sec: 118800. + not possible to compute, first iteration + + + Time of computation -> 20180102.091000 in sec: 119400. + not possible to compute, first iteration + + + Time of computation -> 20180102.092000 in sec: 120000. + not possible to compute, first iteration + + + Time of computation -> 20180102.093000 in sec: 120600. + not possible to compute, first iteration + + + Time of computation -> 20180102.094000 in sec: 121200. + not possible to compute, first iteration + + + Time of computation -> 20180102.095000 in sec: 121800. + not possible to compute, first iteration + + + Time of computation -> 20180102.100000 in sec: 122400. + not possible to compute, first iteration + + + Time of computation -> 20180102.101000 in sec: 123000. + not possible to compute, first iteration + + + Time of computation -> 20180102.102000 in sec: 123600. + not possible to compute, first iteration + + + Time of computation -> 20180102.103000 in sec: 124200. + not possible to compute, first iteration + + + Time of computation -> 20180102.104000 in sec: 124800. + not possible to compute, first iteration + + + Time of computation -> 20180102.105000 in sec: 125400. + not possible to compute, first iteration + + + Time of computation -> 20180102.110000 in sec: 126000. + not possible to compute, first iteration + + + Time of computation -> 20180102.111000 in sec: 126600. + not possible to compute, first iteration + + + Time of computation -> 20180102.112000 in sec: 127200. + not possible to compute, first iteration + + + Time of computation -> 20180102.113000 in sec: 127800. + not possible to compute, first iteration + + + Time of computation -> 20180102.114000 in sec: 128400. + not possible to compute, first iteration + + + Time of computation -> 20180102.115000 in sec: 129000. + not possible to compute, first iteration + + + Time of computation -> 20180102.120000 in sec: 129600. + not possible to compute, first iteration + + + Time of computation -> 20180102.121000 in sec: 130200. + ** Heading lines ** + -> 20180102.180000 + not possible to compute, first iteration + + + Time of computation -> 20180102.122000 in sec: 130800. + not possible to compute, first iteration + + + Time of computation -> 20180102.123000 in sec: 131400. + not possible to compute, first iteration + + + Time of computation -> 20180102.124000 in sec: 132000. + not possible to compute, first iteration + + + Time of computation -> 20180102.125000 in sec: 132600. + not possible to compute, first iteration + + + Time of computation -> 20180102.130000 in sec: 133200. + not possible to compute, first iteration + + + Time of computation -> 20180102.131000 in sec: 133800. + not possible to compute, first iteration + + + Time of computation -> 20180102.132000 in sec: 134400. + not possible to compute, first iteration + + + Time of computation -> 20180102.133000 in sec: 135000. + not possible to compute, first iteration + + + Time of computation -> 20180102.134000 in sec: 135600. + not possible to compute, first iteration + + + Time of computation -> 20180102.135000 in sec: 136200. + not possible to compute, first iteration + + + Time of computation -> 20180102.140000 in sec: 136800. + not possible to compute, first iteration + + + Time of computation -> 20180102.141000 in sec: 137400. + not possible to compute, first iteration + + + Time of computation -> 20180102.142000 in sec: 138000. + not possible to compute, first iteration + + + Time of computation -> 20180102.143000 in sec: 138600. + not possible to compute, first iteration + + + Time of computation -> 20180102.144000 in sec: 139200. + not possible to compute, first iteration + + + Time of computation -> 20180102.145000 in sec: 139800. + not possible to compute, first iteration + + + Time of computation -> 20180102.150000 in sec: 140400. + not possible to compute, first iteration + + + Time of computation -> 20180102.151000 in sec: 141000. + not possible to compute, first iteration + + + Time of computation -> 20180102.152000 in sec: 141600. + not possible to compute, first iteration + + + Time of computation -> 20180102.153000 in sec: 142200. + not possible to compute, first iteration + + + Time of computation -> 20180102.154000 in sec: 142800. + not possible to compute, first iteration + + + Time of computation -> 20180102.155000 in sec: 143400. + not possible to compute, first iteration + + + Time of computation -> 20180102.160000 in sec: 144000. + not possible to compute, first iteration + + + Time of computation -> 20180102.161000 in sec: 144600. + not possible to compute, first iteration + + + Time of computation -> 20180102.162000 in sec: 145200. + not possible to compute, first iteration + + + Time of computation -> 20180102.163000 in sec: 145800. + not possible to compute, first iteration + + + Time of computation -> 20180102.164000 in sec: 146400. + not possible to compute, first iteration + + + Time of computation -> 20180102.165000 in sec: 147000. + not possible to compute, first iteration + + + Time of computation -> 20180102.170000 in sec: 147600. + not possible to compute, first iteration + + + Time of computation -> 20180102.171000 in sec: 148200. + not possible to compute, first iteration + + + Time of computation -> 20180102.172000 in sec: 148800. + not possible to compute, first iteration + + + Time of computation -> 20180102.173000 in sec: 149400. + not possible to compute, first iteration + + + Time of computation -> 20180102.174000 in sec: 150000. + not possible to compute, first iteration + + + Time of computation -> 20180102.175000 in sec: 150600. + not possible to compute, first iteration + + + Time of computation -> 20180102.180000 in sec: 151200. + not possible to compute, first iteration + + + Time of computation -> 20180102.181000 in sec: 151800. + ** Heading lines ** + -> 20180103.000000 + not possible to compute, first iteration + + + Time of computation -> 20180102.182000 in sec: 152400. + not possible to compute, first iteration + + + Time of computation -> 20180102.183000 in sec: 153000. + not possible to compute, first iteration + + + Time of computation -> 20180102.184000 in sec: 153600. + not possible to compute, first iteration + + + Time of computation -> 20180102.185000 in sec: 154200. + not possible to compute, first iteration + + + Time of computation -> 20180102.190000 in sec: 154800. + not possible to compute, first iteration + + + Time of computation -> 20180102.191000 in sec: 155400. + not possible to compute, first iteration + + + Time of computation -> 20180102.192000 in sec: 156000. + not possible to compute, first iteration + + + Time of computation -> 20180102.193000 in sec: 156600. + not possible to compute, first iteration + + + Time of computation -> 20180102.194000 in sec: 157200. + not possible to compute, first iteration + + + Time of computation -> 20180102.195000 in sec: 157800. + not possible to compute, first iteration + + + Time of computation -> 20180102.200000 in sec: 158400. + not possible to compute, first iteration + + + Time of computation -> 20180102.201000 in sec: 159000. + not possible to compute, first iteration + + + Time of computation -> 20180102.202000 in sec: 159600. + not possible to compute, first iteration + + + Time of computation -> 20180102.203000 in sec: 160200. + not possible to compute, first iteration + + + Time of computation -> 20180102.204000 in sec: 160800. + not possible to compute, first iteration + + + Time of computation -> 20180102.205000 in sec: 161400. + not possible to compute, first iteration + + + Time of computation -> 20180102.210000 in sec: 162000. + not possible to compute, first iteration + + + Time of computation -> 20180102.211000 in sec: 162600. + not possible to compute, first iteration + + + Time of computation -> 20180102.212000 in sec: 163200. + not possible to compute, first iteration + + + Time of computation -> 20180102.213000 in sec: 163800. + not possible to compute, first iteration + + + Time of computation -> 20180102.214000 in sec: 164400. + not possible to compute, first iteration + + + Time of computation -> 20180102.215000 in sec: 165000. + not possible to compute, first iteration + + + Time of computation -> 20180102.220000 in sec: 165600. + not possible to compute, first iteration + + + Time of computation -> 20180102.221000 in sec: 166200. + not possible to compute, first iteration + + + Time of computation -> 20180102.222000 in sec: 166800. + not possible to compute, first iteration + + + Time of computation -> 20180102.223000 in sec: 167400. + not possible to compute, first iteration + + + Time of computation -> 20180102.224000 in sec: 168000. + not possible to compute, first iteration + + + Time of computation -> 20180102.225000 in sec: 168600. + not possible to compute, first iteration + + + Time of computation -> 20180102.230000 in sec: 169200. + not possible to compute, first iteration + + + Time of computation -> 20180102.231000 in sec: 169800. + not possible to compute, first iteration + + + Time of computation -> 20180102.232000 in sec: 170400. + not possible to compute, first iteration + + + Time of computation -> 20180102.233000 in sec: 171000. + not possible to compute, first iteration + + + Time of computation -> 20180102.234000 in sec: 171600. + not possible to compute, first iteration + + + Time of computation -> 20180102.235000 in sec: 172200. + not possible to compute, first iteration + + + Time of computation -> 20180103.000000 in sec: 172800. + not possible to compute, first iteration + + + Time of computation -> 20180103.001000 in sec: 173400. + ** Heading lines ** + -> 20180103.060000 + not possible to compute, first iteration + + + Time of computation -> 20180103.002000 in sec: 174000. + not possible to compute, first iteration + + + Time of computation -> 20180103.003000 in sec: 174600. + not possible to compute, first iteration + + + Time of computation -> 20180103.004000 in sec: 175200. + not possible to compute, first iteration + + + Time of computation -> 20180103.005000 in sec: 175800. + not possible to compute, first iteration + + + Time of computation -> 20180103.010000 in sec: 176400. + not possible to compute, first iteration + + + Time of computation -> 20180103.011000 in sec: 177000. + not possible to compute, first iteration + + + Time of computation -> 20180103.012000 in sec: 177600. + not possible to compute, first iteration + + + Time of computation -> 20180103.013000 in sec: 178200. + not possible to compute, first iteration + + + Time of computation -> 20180103.014000 in sec: 178800. + not possible to compute, first iteration + + + Time of computation -> 20180103.015000 in sec: 179400. + not possible to compute, first iteration + + + Time of computation -> 20180103.020000 in sec: 180000. + not possible to compute, first iteration + + + Time of computation -> 20180103.021000 in sec: 180600. + not possible to compute, first iteration + + + Time of computation -> 20180103.022000 in sec: 181200. + not possible to compute, first iteration + + + Time of computation -> 20180103.023000 in sec: 181800. + not possible to compute, first iteration + + + Time of computation -> 20180103.024000 in sec: 182400. + not possible to compute, first iteration + + + Time of computation -> 20180103.025000 in sec: 183000. + not possible to compute, first iteration + + + Time of computation -> 20180103.030000 in sec: 183600. + not possible to compute, first iteration + + + Time of computation -> 20180103.031000 in sec: 184200. + not possible to compute, first iteration + + + Time of computation -> 20180103.032000 in sec: 184800. + not possible to compute, first iteration + + + Time of computation -> 20180103.033000 in sec: 185400. + not possible to compute, first iteration + + + Time of computation -> 20180103.034000 in sec: 186000. + not possible to compute, first iteration + + + Time of computation -> 20180103.035000 in sec: 186600. + not possible to compute, first iteration + + + Time of computation -> 20180103.040000 in sec: 187200. + not possible to compute, first iteration + + + Time of computation -> 20180103.041000 in sec: 187800. + not possible to compute, first iteration + + + Time of computation -> 20180103.042000 in sec: 188400. + not possible to compute, first iteration + + + Time of computation -> 20180103.043000 in sec: 189000. + not possible to compute, first iteration + + + Time of computation -> 20180103.044000 in sec: 189600. + not possible to compute, first iteration + + + Time of computation -> 20180103.045000 in sec: 190200. + not possible to compute, first iteration + + + Time of computation -> 20180103.050000 in sec: 190800. + not possible to compute, first iteration + + + Time of computation -> 20180103.051000 in sec: 191400. + not possible to compute, first iteration + + + Time of computation -> 20180103.052000 in sec: 192000. + not possible to compute, first iteration + + + Time of computation -> 20180103.053000 in sec: 192600. + not possible to compute, first iteration + + + Time of computation -> 20180103.054000 in sec: 193200. + not possible to compute, first iteration + + + Time of computation -> 20180103.055000 in sec: 193800. + not possible to compute, first iteration + + + Time of computation -> 20180103.060000 in sec: 194400. + not possible to compute, first iteration + + + Time of computation -> 20180103.061000 in sec: 195000. + ** Heading lines ** + -> 20180103.120000 + not possible to compute, first iteration + + + Time of computation -> 20180103.062000 in sec: 195600. + not possible to compute, first iteration + + + Time of computation -> 20180103.063000 in sec: 196200. + not possible to compute, first iteration + + + Time of computation -> 20180103.064000 in sec: 196800. + not possible to compute, first iteration + + + Time of computation -> 20180103.065000 in sec: 197400. + not possible to compute, first iteration + + + Time of computation -> 20180103.070000 in sec: 198000. + not possible to compute, first iteration + + + Time of computation -> 20180103.071000 in sec: 198600. + not possible to compute, first iteration + + + Time of computation -> 20180103.072000 in sec: 199200. + not possible to compute, first iteration + + + Time of computation -> 20180103.073000 in sec: 199800. + not possible to compute, first iteration + + + Time of computation -> 20180103.074000 in sec: 200400. + not possible to compute, first iteration + + + Time of computation -> 20180103.075000 in sec: 201000. + not possible to compute, first iteration + + + Time of computation -> 20180103.080000 in sec: 201600. + not possible to compute, first iteration + + + Time of computation -> 20180103.081000 in sec: 202200. + not possible to compute, first iteration + + + Time of computation -> 20180103.082000 in sec: 202800. + not possible to compute, first iteration + + + Time of computation -> 20180103.083000 in sec: 203400. + not possible to compute, first iteration + + + Time of computation -> 20180103.084000 in sec: 204000. + not possible to compute, first iteration + + + Time of computation -> 20180103.085000 in sec: 204600. + not possible to compute, first iteration + + + Time of computation -> 20180103.090000 in sec: 205200. + not possible to compute, first iteration + + + Time of computation -> 20180103.091000 in sec: 205800. + not possible to compute, first iteration + + + Time of computation -> 20180103.092000 in sec: 206400. + not possible to compute, first iteration + + + Time of computation -> 20180103.093000 in sec: 207000. + not possible to compute, first iteration + + + Time of computation -> 20180103.094000 in sec: 207600. + not possible to compute, first iteration + + + Time of computation -> 20180103.095000 in sec: 208200. + not possible to compute, first iteration + + + Time of computation -> 20180103.100000 in sec: 208800. + not possible to compute, first iteration + + + Time of computation -> 20180103.101000 in sec: 209400. + not possible to compute, first iteration + + + Time of computation -> 20180103.102000 in sec: 210000. + not possible to compute, first iteration + + + Time of computation -> 20180103.103000 in sec: 210600. + not possible to compute, first iteration + + + Time of computation -> 20180103.104000 in sec: 211200. + not possible to compute, first iteration + + + Time of computation -> 20180103.105000 in sec: 211800. + not possible to compute, first iteration + + + Time of computation -> 20180103.110000 in sec: 212400. + not possible to compute, first iteration + + + Time of computation -> 20180103.111000 in sec: 213000. + not possible to compute, first iteration + + + Time of computation -> 20180103.112000 in sec: 213600. + not possible to compute, first iteration + + + Time of computation -> 20180103.113000 in sec: 214200. + not possible to compute, first iteration + + + Time of computation -> 20180103.114000 in sec: 214800. + not possible to compute, first iteration + + + Time of computation -> 20180103.115000 in sec: 215400. + not possible to compute, first iteration + + + Time of computation -> 20180103.120000 in sec: 216000. + not possible to compute, first iteration + + + Time of computation -> 20180103.121000 in sec: 216600. + ** Heading lines ** + -> 20180103.180000 + not possible to compute, first iteration + + + Time of computation -> 20180103.122000 in sec: 217200. + not possible to compute, first iteration + + + Time of computation -> 20180103.123000 in sec: 217800. + not possible to compute, first iteration + + + Time of computation -> 20180103.124000 in sec: 218400. + not possible to compute, first iteration + + + Time of computation -> 20180103.125000 in sec: 219000. + not possible to compute, first iteration + + + Time of computation -> 20180103.130000 in sec: 219600. + not possible to compute, first iteration + + + Time of computation -> 20180103.131000 in sec: 220200. + not possible to compute, first iteration + + + Time of computation -> 20180103.132000 in sec: 220800. + not possible to compute, first iteration + + + Time of computation -> 20180103.133000 in sec: 221400. + not possible to compute, first iteration + + + Time of computation -> 20180103.134000 in sec: 222000. + not possible to compute, first iteration + + + Time of computation -> 20180103.135000 in sec: 222600. + not possible to compute, first iteration + + + Time of computation -> 20180103.140000 in sec: 223200. + not possible to compute, first iteration + + + Time of computation -> 20180103.141000 in sec: 223800. + not possible to compute, first iteration + + + Time of computation -> 20180103.142000 in sec: 224400. + not possible to compute, first iteration + + + Time of computation -> 20180103.143000 in sec: 225000. + not possible to compute, first iteration + + + Time of computation -> 20180103.144000 in sec: 225600. + not possible to compute, first iteration + + + Time of computation -> 20180103.145000 in sec: 226200. + not possible to compute, first iteration + + + Time of computation -> 20180103.150000 in sec: 226800. + not possible to compute, first iteration + + + Time of computation -> 20180103.151000 in sec: 227400. + not possible to compute, first iteration + + + Time of computation -> 20180103.152000 in sec: 228000. + not possible to compute, first iteration + + + Time of computation -> 20180103.153000 in sec: 228600. + not possible to compute, first iteration + + + Time of computation -> 20180103.154000 in sec: 229200. + not possible to compute, first iteration + + + Time of computation -> 20180103.155000 in sec: 229800. + not possible to compute, first iteration + + + Time of computation -> 20180103.160000 in sec: 230400. + not possible to compute, first iteration + + + Time of computation -> 20180103.161000 in sec: 231000. + not possible to compute, first iteration + + + Time of computation -> 20180103.162000 in sec: 231600. + not possible to compute, first iteration + + + Time of computation -> 20180103.163000 in sec: 232200. + not possible to compute, first iteration + + + Time of computation -> 20180103.164000 in sec: 232800. + not possible to compute, first iteration + + + Time of computation -> 20180103.165000 in sec: 233400. + not possible to compute, first iteration + + + Time of computation -> 20180103.170000 in sec: 234000. + not possible to compute, first iteration + + + Time of computation -> 20180103.171000 in sec: 234600. + not possible to compute, first iteration + + + Time of computation -> 20180103.172000 in sec: 235200. + not possible to compute, first iteration + + + Time of computation -> 20180103.173000 in sec: 235800. + not possible to compute, first iteration + + + Time of computation -> 20180103.174000 in sec: 236400. + not possible to compute, first iteration + + + Time of computation -> 20180103.175000 in sec: 237000. + not possible to compute, first iteration + + + Time of computation -> 20180103.180000 in sec: 237600. + not possible to compute, first iteration + + + Time of computation -> 20180103.181000 in sec: 238200. + not possible to compute, first iteration + + + Time of computation -> 20180103.182000 in sec: 238800. + not possible to compute, first iteration + + + Time of computation -> 20180103.183000 in sec: 239400. + not possible to compute, first iteration + + + Time of computation -> 20180103.184000 in sec: 240000. + not possible to compute, first iteration + + + Time of computation -> 20180103.185000 in sec: 240600. + not possible to compute, first iteration + + + Time of computation -> 20180103.190000 in sec: 241200. + not possible to compute, first iteration + + + Time of computation -> 20180103.191000 in sec: 241800. + not possible to compute, first iteration + + + Time of computation -> 20180103.192000 in sec: 242400. + not possible to compute, first iteration + + + Time of computation -> 20180103.193000 in sec: 243000. + not possible to compute, first iteration + + + Time of computation -> 20180103.194000 in sec: 243600. + not possible to compute, first iteration + + + Time of computation -> 20180103.195000 in sec: 244200. + not possible to compute, first iteration + + + Time of computation -> 20180103.200000 in sec: 244800. + not possible to compute, first iteration + + + Time of computation -> 20180103.201000 in sec: 245400. + not possible to compute, first iteration + + + Time of computation -> 20180103.202000 in sec: 246000. + not possible to compute, first iteration + + + Time of computation -> 20180103.203000 in sec: 246600. + not possible to compute, first iteration + + + Time of computation -> 20180103.204000 in sec: 247200. + not possible to compute, first iteration + + + Time of computation -> 20180103.205000 in sec: 247800. + not possible to compute, first iteration + + + Time of computation -> 20180103.210000 in sec: 248400. + not possible to compute, first iteration + + + Time of computation -> 20180103.211000 in sec: 249000. + not possible to compute, first iteration + + + Time of computation -> 20180103.212000 in sec: 249600. + not possible to compute, first iteration + + + Time of computation -> 20180103.213000 in sec: 250200. + not possible to compute, first iteration + + + Time of computation -> 20180103.214000 in sec: 250800. + not possible to compute, first iteration + + + Time of computation -> 20180103.215000 in sec: 251400. + not possible to compute, first iteration + + + Time of computation -> 20180103.220000 in sec: 252000. + not possible to compute, first iteration + + + Time of computation -> 20180103.221000 in sec: 252600. + not possible to compute, first iteration + + + Time of computation -> 20180103.222000 in sec: 253200. + not possible to compute, first iteration + + + Time of computation -> 20180103.223000 in sec: 253800. + not possible to compute, first iteration + + + Time of computation -> 20180103.224000 in sec: 254400. + not possible to compute, first iteration + + + Time of computation -> 20180103.225000 in sec: 255000. + not possible to compute, first iteration + + + Time of computation -> 20180103.230000 in sec: 255600. + not possible to compute, first iteration + + + + + + STOP diff --git a/cases/breakwaters/ob2_upd/config.prt b/cases/breakwaters/ob2_upd/config.prt new file mode 100644 index 000000000..a6507d96c --- /dev/null +++ b/cases/breakwaters/ob2_upd/config.prt @@ -0,0 +1,1919 @@ +1 + + Execution started at 20231023.152206 + + + + --------------------------------------- + SWAN + SIMULATION OF WAVES IN NEAR SHORE AREAS + VERSION NUMBER 41.31A + --------------------------------------- + + + + $***********MODEL INPUT********************************* + + $ + + SET NAUTical + + MODE NONSTationary TWODimensional + + COORDinates spherical + + + + CGRID REGular xpc=74.70452573998112 ypc=67.88356662593489 alpc=0. & + xlenc=0.128978 ylenc=0.086128 mxc=17 myc=31 & + CIRCLE mdc=36 flow=0.05 fhigh=1. msc=25 + Resolution in sigma-space: df/f = 0.1273 + + + + INPgrid BOTtom REGular xpinp=74.70452573998112 ypinp=67.88356662593489 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071375050 dyinp=0.0026897594 EXCeption -9 + + READinp BOTtom fac=1 'data\bathy.bot' idla=1 0 FREE + + + + INPgrid WIND REGular xpinp=74.70452573998112 ypinp=67.88356662593489 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071375050 dyinp=0.0026897594 & + NONSTATIONARY 20180101.000000 6 HR 20180103.230000 + ** Warning : [deltinp] is not a fraction of the period + + READinp WIND fac=1.21 SERIES 'data\wind_inventory.txt' 1 0 1 0 FREE + ** Heading lines ** + -> 20180101.000000 + + + + BOUnd SHAPespec JONswap 3.3 PEAK DSPR DEGRees + + + + + + + + GEN3 ST6 6.5E-6 8.5E-5 4.0 4.0 UP HWANG VECTAU U10PROXY 35.0 AGROW + + BREAKING + + FRiction JONswap CONstant 0.067 + + TRIAD + + DIFFRACtion + + PROP BSBT + + QUANTity Per short='Tm-1,0' power=0. + + + + + + + + OUTPUT OPTIONS '%' TABLE 16 BLOCK 6 18 + + + + BLOCK 'COMPGRID' NOHEAD 'results\HSig_ob_example2_20180102.000000_20180103.230000.dat' LAYOUT 1 HSig OUT 20180102.000000 1. HR + + BLOCK 'COMPGRID' NOHEAD 'results\PDIR_ob_example2_20180102.000000_20180103.230000.dat' LAYOUT 1 PDIR OUT 20180102.000000 1. HR + + BLOCK 'COMPGRID' NOHEAD 'results\RTP_ob_example2_20180102.000000_20180103.230000.dat' LAYOUT 1 RTP OUT 20180102.000000 1. HR + + + + + + + + + + + + + + + + + + COMPUTE NONSTat 20180101.000000 10 MIN 20180103.230000 + ** Warning : Corner of comp grid outside bottom grid + Coordinates : 74.70 67.97 + ** Warning : Corner of comp grid outside bottom grid + Coordinates : 74.83 67.88 + ** Warning : Corner of comp grid outside bottom grid + Coordinates : 74.83 67.97 + ** Warning : (corner)point outside bottom grid + Set of output locations: BOUND_02 coordinates: 74.83 67.88 + ** Warning : (corner)point outside bottom grid + Set of output locations: BOUND_03 coordinates: 74.83 67.97 + ** Warning : (corner)point outside bottom grid + Set of output locations: BOUND_04 coordinates: 74.70 67.97 + Time of computation -> 20180101.001000 in sec: 600. + ** Heading lines ** + -> 20180101.060000 + +---------------------------------------------------------------- + COMPUTATIONAL PART OF SWAN +---------------------------------------------------------------- + + Gridresolution : MXC 18 MYC 32 + : MCGRD 483 + : MSC 26 MDC 36 + : MTC 426 + : NSTATC 1 ITERMX 1 + Propagation flags : ITFRE 1 IREFR 1 + Source term flags : IBOT 1 ISURF 1 + : IWCAP 8 IWIND 8 + : ITRIAD 11 IQUAD 2 + : IVEG 0 ITURBV 0 + : IMUD 0 IICE 0 + Spatial step : DX 0.7587E-02 DY 0.2778E-02 + Spectral bin : df/f 0.1273E+00 DDIR 0.1000E+02 + Physical constants : GRAV 0.9810E+01 RHO 0.1025E+04 + Wind input : WSPEED 0.0000E+00 DIR 0.0000E+00 + : ICEWIND 0.00 + Tail parameters : E(f) 0.4000E+01 E(k) 0.2500E+01 + : A(f) 0.5000E+01 A(k) 0.3000E+01 + Accuracy parameters : DREL 0.1000E-01 NPNTS 0.9950E+02 + : DHABS 0.5000E-02 CURVAT 0.5000E-02 + : GRWMX 0.1000E+00 + Drying/flooding : LEVEL 0.0000E+00 DEPMIN 0.5000E-01 + The nautical convention for wind and wave directions is used + Scheme for geographic propagation is BSBT + Scheme geogr. space : PROPSC 1 ICMAX 5 + Scheme spectral space: CSS 0.5000E+00 CDD 0.5000E+00 + Current is off + Quadruplets : IQUAD 2 + : LAMBDA 0.2500E+00 CNL4 0.3000E+08 + : CSH1 0.5500E+01 CSH2 0.8330E+00 + : CSH3 -0.1250E+01 + Maximum Ursell nr for Snl4 : 0.1000E+02 + Triads : ITRIAD 11 TRFAC 0.5000E-01 + : CUTFR 0.2500E+01 URCRI 0.2000E+00 + Minimum Ursell nr for Snl3 : 0.1000E-01 + JONSWAP (`73) : GAMMA 0.6700E-01 + Vegetation is off + Turbulence is off + Fluid mud is off + Dissipation by sea ice is off + W-cap Babanin : A1 0.6500E-05 A2 0.8500E-04 + : P1 0.4000E+01 P2 0.4000E+01 + : CDSV 0.1200E+01 + Babanin Sds: concave up behavior : T + DBYB Sin: tau calculated from vector: T + DBYB Sin: true U10 used : F + DBYB Sin: U10PROXY = 35.0 * Ustar + DBYB Sin: factor on Cdrag to counter wind bias: 1.000 + Wind drag is Hwang + DBYB/Tsagareli/Rogers wind input + Battjes&Janssen (`78): ALPHA 0.1000E+01 GAMMA 0.7300E+00 + Set-up is off + Diffraction : SMPAR 0.0000E+00 SMNUM 0 + Janssen (`89,`90) : ALPHA 0.1000E-01 KAPPA 0.4100E+00 + Janssen (`89,`90) : RHOA 0.1280E+01 RHOW 0.1025E+04 + + 1st and 2nd gen. wind: CF10 0.1880E+03 CF20 0.5900E+00 + : CF30 0.1200E+00 CF40 0.2500E+03 + : CF50 0.2300E-02 CF60 -0.2230E+00 + : CF70 0.0000E+00 CF80 -0.5600E+00 + : RHOAW 0.1249E-02 EDMLPM 0.3600E-02 + : CDRAG 0.1230E-02 UMIN 0.1000E+01 + : LIM_PM 0.1300E+00 + + not possible to compute, first iteration + + + Time of computation -> 20180101.002000 in sec: 1200. + not possible to compute, first iteration + + + Time of computation -> 20180101.003000 in sec: 1800. + not possible to compute, first iteration + + + Time of computation -> 20180101.004000 in sec: 2400. + not possible to compute, first iteration + + + Time of computation -> 20180101.005000 in sec: 3000. + not possible to compute, first iteration + + + Time of computation -> 20180101.010000 in sec: 3600. + not possible to compute, first iteration + + + Time of computation -> 20180101.011000 in sec: 4200. + not possible to compute, first iteration + + + Time of computation -> 20180101.012000 in sec: 4800. + not possible to compute, first iteration + + + Time of computation -> 20180101.013000 in sec: 5400. + not possible to compute, first iteration + + + Time of computation -> 20180101.014000 in sec: 6000. + not possible to compute, first iteration + + + Time of computation -> 20180101.015000 in sec: 6600. + not possible to compute, first iteration + + + Time of computation -> 20180101.020000 in sec: 7200. + not possible to compute, first iteration + + + Time of computation -> 20180101.021000 in sec: 7800. + not possible to compute, first iteration + + + Time of computation -> 20180101.022000 in sec: 8400. + not possible to compute, first iteration + + + Time of computation -> 20180101.023000 in sec: 9000. + not possible to compute, first iteration + + + Time of computation -> 20180101.024000 in sec: 9600. + not possible to compute, first iteration + + + Time of computation -> 20180101.025000 in sec: 10200. + not possible to compute, first iteration + + + Time of computation -> 20180101.030000 in sec: 10800. + not possible to compute, first iteration + + + Time of computation -> 20180101.031000 in sec: 11400. + not possible to compute, first iteration + + + Time of computation -> 20180101.032000 in sec: 12000. + not possible to compute, first iteration + + + Time of computation -> 20180101.033000 in sec: 12600. + not possible to compute, first iteration + + + Time of computation -> 20180101.034000 in sec: 13200. + not possible to compute, first iteration + + + Time of computation -> 20180101.035000 in sec: 13800. + not possible to compute, first iteration + + + Time of computation -> 20180101.040000 in sec: 14400. + not possible to compute, first iteration + + + Time of computation -> 20180101.041000 in sec: 15000. + not possible to compute, first iteration + + + Time of computation -> 20180101.042000 in sec: 15600. + not possible to compute, first iteration + + + Time of computation -> 20180101.043000 in sec: 16200. + not possible to compute, first iteration + + + Time of computation -> 20180101.044000 in sec: 16800. + not possible to compute, first iteration + + + Time of computation -> 20180101.045000 in sec: 17400. + not possible to compute, first iteration + + + Time of computation -> 20180101.050000 in sec: 18000. + not possible to compute, first iteration + + + Time of computation -> 20180101.051000 in sec: 18600. + not possible to compute, first iteration + + + Time of computation -> 20180101.052000 in sec: 19200. + not possible to compute, first iteration + + + Time of computation -> 20180101.053000 in sec: 19800. + not possible to compute, first iteration + + + Time of computation -> 20180101.054000 in sec: 20400. + not possible to compute, first iteration + + + Time of computation -> 20180101.055000 in sec: 21000. + not possible to compute, first iteration + + + Time of computation -> 20180101.060000 in sec: 21600. + not possible to compute, first iteration + + + Time of computation -> 20180101.061000 in sec: 22200. + ** Heading lines ** + -> 20180101.120000 + not possible to compute, first iteration + + + Time of computation -> 20180101.062000 in sec: 22800. + not possible to compute, first iteration + + + Time of computation -> 20180101.063000 in sec: 23400. + not possible to compute, first iteration + + + Time of computation -> 20180101.064000 in sec: 24000. + not possible to compute, first iteration + + + Time of computation -> 20180101.065000 in sec: 24600. + not possible to compute, first iteration + + + Time of computation -> 20180101.070000 in sec: 25200. + not possible to compute, first iteration + + + Time of computation -> 20180101.071000 in sec: 25800. + not possible to compute, first iteration + + + Time of computation -> 20180101.072000 in sec: 26400. + not possible to compute, first iteration + + + Time of computation -> 20180101.073000 in sec: 27000. + not possible to compute, first iteration + + + Time of computation -> 20180101.074000 in sec: 27600. + not possible to compute, first iteration + + + Time of computation -> 20180101.075000 in sec: 28200. + not possible to compute, first iteration + + + Time of computation -> 20180101.080000 in sec: 28800. + not possible to compute, first iteration + + + Time of computation -> 20180101.081000 in sec: 29400. + not possible to compute, first iteration + + + Time of computation -> 20180101.082000 in sec: 30000. + not possible to compute, first iteration + + + Time of computation -> 20180101.083000 in sec: 30600. + not possible to compute, first iteration + + + Time of computation -> 20180101.084000 in sec: 31200. + not possible to compute, first iteration + + + Time of computation -> 20180101.085000 in sec: 31800. + not possible to compute, first iteration + + + Time of computation -> 20180101.090000 in sec: 32400. + not possible to compute, first iteration + + + Time of computation -> 20180101.091000 in sec: 33000. + not possible to compute, first iteration + + + Time of computation -> 20180101.092000 in sec: 33600. + not possible to compute, first iteration + + + Time of computation -> 20180101.093000 in sec: 34200. + not possible to compute, first iteration + + + Time of computation -> 20180101.094000 in sec: 34800. + not possible to compute, first iteration + + + Time of computation -> 20180101.095000 in sec: 35400. + not possible to compute, first iteration + + + Time of computation -> 20180101.100000 in sec: 36000. + not possible to compute, first iteration + + + Time of computation -> 20180101.101000 in sec: 36600. + not possible to compute, first iteration + + + Time of computation -> 20180101.102000 in sec: 37200. + not possible to compute, first iteration + + + Time of computation -> 20180101.103000 in sec: 37800. + not possible to compute, first iteration + + + Time of computation -> 20180101.104000 in sec: 38400. + not possible to compute, first iteration + + + Time of computation -> 20180101.105000 in sec: 39000. + not possible to compute, first iteration + + + Time of computation -> 20180101.110000 in sec: 39600. + not possible to compute, first iteration + + + Time of computation -> 20180101.111000 in sec: 40200. + not possible to compute, first iteration + + + Time of computation -> 20180101.112000 in sec: 40800. + not possible to compute, first iteration + + + Time of computation -> 20180101.113000 in sec: 41400. + not possible to compute, first iteration + + + Time of computation -> 20180101.114000 in sec: 42000. + not possible to compute, first iteration + + + Time of computation -> 20180101.115000 in sec: 42600. + not possible to compute, first iteration + + + Time of computation -> 20180101.120000 in sec: 43200. + not possible to compute, first iteration + + + Time of computation -> 20180101.121000 in sec: 43800. + ** Heading lines ** + -> 20180101.180000 + not possible to compute, first iteration + + + Time of computation -> 20180101.122000 in sec: 44400. + not possible to compute, first iteration + + + Time of computation -> 20180101.123000 in sec: 45000. + not possible to compute, first iteration + + + Time of computation -> 20180101.124000 in sec: 45600. + not possible to compute, first iteration + + + Time of computation -> 20180101.125000 in sec: 46200. + not possible to compute, first iteration + + + Time of computation -> 20180101.130000 in sec: 46800. + not possible to compute, first iteration + + + Time of computation -> 20180101.131000 in sec: 47400. + not possible to compute, first iteration + + + Time of computation -> 20180101.132000 in sec: 48000. + not possible to compute, first iteration + + + Time of computation -> 20180101.133000 in sec: 48600. + not possible to compute, first iteration + + + Time of computation -> 20180101.134000 in sec: 49200. + not possible to compute, first iteration + + + Time of computation -> 20180101.135000 in sec: 49800. + not possible to compute, first iteration + + + Time of computation -> 20180101.140000 in sec: 50400. + not possible to compute, first iteration + + + Time of computation -> 20180101.141000 in sec: 51000. + not possible to compute, first iteration + + + Time of computation -> 20180101.142000 in sec: 51600. + not possible to compute, first iteration + + + Time of computation -> 20180101.143000 in sec: 52200. + not possible to compute, first iteration + + + Time of computation -> 20180101.144000 in sec: 52800. + not possible to compute, first iteration + + + Time of computation -> 20180101.145000 in sec: 53400. + not possible to compute, first iteration + + + Time of computation -> 20180101.150000 in sec: 54000. + not possible to compute, first iteration + + + Time of computation -> 20180101.151000 in sec: 54600. + not possible to compute, first iteration + + + Time of computation -> 20180101.152000 in sec: 55200. + not possible to compute, first iteration + + + Time of computation -> 20180101.153000 in sec: 55800. + not possible to compute, first iteration + + + Time of computation -> 20180101.154000 in sec: 56400. + not possible to compute, first iteration + + + Time of computation -> 20180101.155000 in sec: 57000. + not possible to compute, first iteration + + + Time of computation -> 20180101.160000 in sec: 57600. + not possible to compute, first iteration + + + Time of computation -> 20180101.161000 in sec: 58200. + not possible to compute, first iteration + + + Time of computation -> 20180101.162000 in sec: 58800. + not possible to compute, first iteration + + + Time of computation -> 20180101.163000 in sec: 59400. + not possible to compute, first iteration + + + Time of computation -> 20180101.164000 in sec: 60000. + not possible to compute, first iteration + + + Time of computation -> 20180101.165000 in sec: 60600. + not possible to compute, first iteration + + + Time of computation -> 20180101.170000 in sec: 61200. + not possible to compute, first iteration + + + Time of computation -> 20180101.171000 in sec: 61800. + not possible to compute, first iteration + + + Time of computation -> 20180101.172000 in sec: 62400. + not possible to compute, first iteration + + + Time of computation -> 20180101.173000 in sec: 63000. + not possible to compute, first iteration + + + Time of computation -> 20180101.174000 in sec: 63600. + not possible to compute, first iteration + + + Time of computation -> 20180101.175000 in sec: 64200. + not possible to compute, first iteration + + + Time of computation -> 20180101.180000 in sec: 64800. + not possible to compute, first iteration + + + Time of computation -> 20180101.181000 in sec: 65400. + ** Heading lines ** + -> 20180102.000000 + not possible to compute, first iteration + + + Time of computation -> 20180101.182000 in sec: 66000. + not possible to compute, first iteration + + + Time of computation -> 20180101.183000 in sec: 66600. + not possible to compute, first iteration + + + Time of computation -> 20180101.184000 in sec: 67200. + not possible to compute, first iteration + + + Time of computation -> 20180101.185000 in sec: 67800. + not possible to compute, first iteration + + + Time of computation -> 20180101.190000 in sec: 68400. + not possible to compute, first iteration + + + Time of computation -> 20180101.191000 in sec: 69000. + not possible to compute, first iteration + + + Time of computation -> 20180101.192000 in sec: 69600. + not possible to compute, first iteration + + + Time of computation -> 20180101.193000 in sec: 70200. + not possible to compute, first iteration + + + Time of computation -> 20180101.194000 in sec: 70800. + not possible to compute, first iteration + + + Time of computation -> 20180101.195000 in sec: 71400. + not possible to compute, first iteration + + + Time of computation -> 20180101.200000 in sec: 72000. + not possible to compute, first iteration + + + Time of computation -> 20180101.201000 in sec: 72600. + not possible to compute, first iteration + + + Time of computation -> 20180101.202000 in sec: 73200. + not possible to compute, first iteration + + + Time of computation -> 20180101.203000 in sec: 73800. + not possible to compute, first iteration + + + Time of computation -> 20180101.204000 in sec: 74400. + not possible to compute, first iteration + + + Time of computation -> 20180101.205000 in sec: 75000. + not possible to compute, first iteration + + + Time of computation -> 20180101.210000 in sec: 75600. + not possible to compute, first iteration + + + Time of computation -> 20180101.211000 in sec: 76200. + not possible to compute, first iteration + + + Time of computation -> 20180101.212000 in sec: 76800. + not possible to compute, first iteration + + + Time of computation -> 20180101.213000 in sec: 77400. + not possible to compute, first iteration + + + Time of computation -> 20180101.214000 in sec: 78000. + not possible to compute, first iteration + + + Time of computation -> 20180101.215000 in sec: 78600. + not possible to compute, first iteration + + + Time of computation -> 20180101.220000 in sec: 79200. + not possible to compute, first iteration + + + Time of computation -> 20180101.221000 in sec: 79800. + not possible to compute, first iteration + + + Time of computation -> 20180101.222000 in sec: 80400. + not possible to compute, first iteration + + + Time of computation -> 20180101.223000 in sec: 81000. + not possible to compute, first iteration + + + Time of computation -> 20180101.224000 in sec: 81600. + not possible to compute, first iteration + + + Time of computation -> 20180101.225000 in sec: 82200. + not possible to compute, first iteration + + + Time of computation -> 20180101.230000 in sec: 82800. + not possible to compute, first iteration + + + Time of computation -> 20180101.231000 in sec: 83400. + not possible to compute, first iteration + + + Time of computation -> 20180101.232000 in sec: 84000. + not possible to compute, first iteration + + + Time of computation -> 20180101.233000 in sec: 84600. + not possible to compute, first iteration + + + Time of computation -> 20180101.234000 in sec: 85200. + not possible to compute, first iteration + + + Time of computation -> 20180101.235000 in sec: 85800. + not possible to compute, first iteration + + + Time of computation -> 20180102.000000 in sec: 86400. + not possible to compute, first iteration + + + Time of computation -> 20180102.001000 in sec: 87000. + ** Heading lines ** + -> 20180102.060000 + not possible to compute, first iteration + + + Time of computation -> 20180102.002000 in sec: 87600. + not possible to compute, first iteration + + + Time of computation -> 20180102.003000 in sec: 88200. + not possible to compute, first iteration + + + Time of computation -> 20180102.004000 in sec: 88800. + not possible to compute, first iteration + + + Time of computation -> 20180102.005000 in sec: 89400. + not possible to compute, first iteration + + + Time of computation -> 20180102.010000 in sec: 90000. + not possible to compute, first iteration + + + Time of computation -> 20180102.011000 in sec: 90600. + not possible to compute, first iteration + + + Time of computation -> 20180102.012000 in sec: 91200. + not possible to compute, first iteration + + + Time of computation -> 20180102.013000 in sec: 91800. + not possible to compute, first iteration + + + Time of computation -> 20180102.014000 in sec: 92400. + not possible to compute, first iteration + + + Time of computation -> 20180102.015000 in sec: 93000. + not possible to compute, first iteration + + + Time of computation -> 20180102.020000 in sec: 93600. + not possible to compute, first iteration + + + Time of computation -> 20180102.021000 in sec: 94200. + not possible to compute, first iteration + + + Time of computation -> 20180102.022000 in sec: 94800. + not possible to compute, first iteration + + + Time of computation -> 20180102.023000 in sec: 95400. + not possible to compute, first iteration + + + Time of computation -> 20180102.024000 in sec: 96000. + not possible to compute, first iteration + + + Time of computation -> 20180102.025000 in sec: 96600. + not possible to compute, first iteration + + + Time of computation -> 20180102.030000 in sec: 97200. + not possible to compute, first iteration + + + Time of computation -> 20180102.031000 in sec: 97800. + not possible to compute, first iteration + + + Time of computation -> 20180102.032000 in sec: 98400. + not possible to compute, first iteration + + + Time of computation -> 20180102.033000 in sec: 99000. + not possible to compute, first iteration + + + Time of computation -> 20180102.034000 in sec: 99600. + not possible to compute, first iteration + + + Time of computation -> 20180102.035000 in sec: 100200. + not possible to compute, first iteration + + + Time of computation -> 20180102.040000 in sec: 100800. + not possible to compute, first iteration + + + Time of computation -> 20180102.041000 in sec: 101400. + not possible to compute, first iteration + + + Time of computation -> 20180102.042000 in sec: 102000. + not possible to compute, first iteration + + + Time of computation -> 20180102.043000 in sec: 102600. + not possible to compute, first iteration + + + Time of computation -> 20180102.044000 in sec: 103200. + not possible to compute, first iteration + + + Time of computation -> 20180102.045000 in sec: 103800. + not possible to compute, first iteration + + + Time of computation -> 20180102.050000 in sec: 104400. + not possible to compute, first iteration + + + Time of computation -> 20180102.051000 in sec: 105000. + not possible to compute, first iteration + + + Time of computation -> 20180102.052000 in sec: 105600. + not possible to compute, first iteration + + + Time of computation -> 20180102.053000 in sec: 106200. + not possible to compute, first iteration + + + Time of computation -> 20180102.054000 in sec: 106800. + not possible to compute, first iteration + + + Time of computation -> 20180102.055000 in sec: 107400. + not possible to compute, first iteration + + + Time of computation -> 20180102.060000 in sec: 108000. + not possible to compute, first iteration + + + Time of computation -> 20180102.061000 in sec: 108600. + ** Heading lines ** + -> 20180102.120000 + not possible to compute, first iteration + + + Time of computation -> 20180102.062000 in sec: 109200. + not possible to compute, first iteration + + + Time of computation -> 20180102.063000 in sec: 109800. + not possible to compute, first iteration + + + Time of computation -> 20180102.064000 in sec: 110400. + not possible to compute, first iteration + + + Time of computation -> 20180102.065000 in sec: 111000. + not possible to compute, first iteration + + + Time of computation -> 20180102.070000 in sec: 111600. + not possible to compute, first iteration + + + Time of computation -> 20180102.071000 in sec: 112200. + not possible to compute, first iteration + + + Time of computation -> 20180102.072000 in sec: 112800. + not possible to compute, first iteration + + + Time of computation -> 20180102.073000 in sec: 113400. + not possible to compute, first iteration + + + Time of computation -> 20180102.074000 in sec: 114000. + not possible to compute, first iteration + + + Time of computation -> 20180102.075000 in sec: 114600. + not possible to compute, first iteration + + + Time of computation -> 20180102.080000 in sec: 115200. + not possible to compute, first iteration + + + Time of computation -> 20180102.081000 in sec: 115800. + not possible to compute, first iteration + + + Time of computation -> 20180102.082000 in sec: 116400. + not possible to compute, first iteration + + + Time of computation -> 20180102.083000 in sec: 117000. + not possible to compute, first iteration + + + Time of computation -> 20180102.084000 in sec: 117600. + not possible to compute, first iteration + + + Time of computation -> 20180102.085000 in sec: 118200. + not possible to compute, first iteration + + + Time of computation -> 20180102.090000 in sec: 118800. + not possible to compute, first iteration + + + Time of computation -> 20180102.091000 in sec: 119400. + not possible to compute, first iteration + + + Time of computation -> 20180102.092000 in sec: 120000. + not possible to compute, first iteration + + + Time of computation -> 20180102.093000 in sec: 120600. + not possible to compute, first iteration + + + Time of computation -> 20180102.094000 in sec: 121200. + not possible to compute, first iteration + + + Time of computation -> 20180102.095000 in sec: 121800. + not possible to compute, first iteration + + + Time of computation -> 20180102.100000 in sec: 122400. + not possible to compute, first iteration + + + Time of computation -> 20180102.101000 in sec: 123000. + not possible to compute, first iteration + + + Time of computation -> 20180102.102000 in sec: 123600. + not possible to compute, first iteration + + + Time of computation -> 20180102.103000 in sec: 124200. + not possible to compute, first iteration + + + Time of computation -> 20180102.104000 in sec: 124800. + not possible to compute, first iteration + + + Time of computation -> 20180102.105000 in sec: 125400. + not possible to compute, first iteration + + + Time of computation -> 20180102.110000 in sec: 126000. + not possible to compute, first iteration + + + Time of computation -> 20180102.111000 in sec: 126600. + not possible to compute, first iteration + + + Time of computation -> 20180102.112000 in sec: 127200. + not possible to compute, first iteration + + + Time of computation -> 20180102.113000 in sec: 127800. + not possible to compute, first iteration + + + Time of computation -> 20180102.114000 in sec: 128400. + not possible to compute, first iteration + + + Time of computation -> 20180102.115000 in sec: 129000. + not possible to compute, first iteration + + + Time of computation -> 20180102.120000 in sec: 129600. + not possible to compute, first iteration + + + Time of computation -> 20180102.121000 in sec: 130200. + ** Heading lines ** + -> 20180102.180000 + not possible to compute, first iteration + + + Time of computation -> 20180102.122000 in sec: 130800. + not possible to compute, first iteration + + + Time of computation -> 20180102.123000 in sec: 131400. + not possible to compute, first iteration + + + Time of computation -> 20180102.124000 in sec: 132000. + not possible to compute, first iteration + + + Time of computation -> 20180102.125000 in sec: 132600. + not possible to compute, first iteration + + + Time of computation -> 20180102.130000 in sec: 133200. + not possible to compute, first iteration + + + Time of computation -> 20180102.131000 in sec: 133800. + not possible to compute, first iteration + + + Time of computation -> 20180102.132000 in sec: 134400. + not possible to compute, first iteration + + + Time of computation -> 20180102.133000 in sec: 135000. + not possible to compute, first iteration + + + Time of computation -> 20180102.134000 in sec: 135600. + not possible to compute, first iteration + + + Time of computation -> 20180102.135000 in sec: 136200. + not possible to compute, first iteration + + + Time of computation -> 20180102.140000 in sec: 136800. + not possible to compute, first iteration + + + Time of computation -> 20180102.141000 in sec: 137400. + not possible to compute, first iteration + + + Time of computation -> 20180102.142000 in sec: 138000. + not possible to compute, first iteration + + + Time of computation -> 20180102.143000 in sec: 138600. + not possible to compute, first iteration + + + Time of computation -> 20180102.144000 in sec: 139200. + not possible to compute, first iteration + + + Time of computation -> 20180102.145000 in sec: 139800. + not possible to compute, first iteration + + + Time of computation -> 20180102.150000 in sec: 140400. + not possible to compute, first iteration + + + Time of computation -> 20180102.151000 in sec: 141000. + not possible to compute, first iteration + + + Time of computation -> 20180102.152000 in sec: 141600. + not possible to compute, first iteration + + + Time of computation -> 20180102.153000 in sec: 142200. + not possible to compute, first iteration + + + Time of computation -> 20180102.154000 in sec: 142800. + not possible to compute, first iteration + + + Time of computation -> 20180102.155000 in sec: 143400. + not possible to compute, first iteration + + + Time of computation -> 20180102.160000 in sec: 144000. + not possible to compute, first iteration + + + Time of computation -> 20180102.161000 in sec: 144600. + not possible to compute, first iteration + + + Time of computation -> 20180102.162000 in sec: 145200. + not possible to compute, first iteration + + + Time of computation -> 20180102.163000 in sec: 145800. + not possible to compute, first iteration + + + Time of computation -> 20180102.164000 in sec: 146400. + not possible to compute, first iteration + + + Time of computation -> 20180102.165000 in sec: 147000. + not possible to compute, first iteration + + + Time of computation -> 20180102.170000 in sec: 147600. + not possible to compute, first iteration + + + Time of computation -> 20180102.171000 in sec: 148200. + not possible to compute, first iteration + + + Time of computation -> 20180102.172000 in sec: 148800. + not possible to compute, first iteration + + + Time of computation -> 20180102.173000 in sec: 149400. + not possible to compute, first iteration + + + Time of computation -> 20180102.174000 in sec: 150000. + not possible to compute, first iteration + + + Time of computation -> 20180102.175000 in sec: 150600. + not possible to compute, first iteration + + + Time of computation -> 20180102.180000 in sec: 151200. + not possible to compute, first iteration + + + Time of computation -> 20180102.181000 in sec: 151800. + ** Heading lines ** + -> 20180103.000000 + not possible to compute, first iteration + + + Time of computation -> 20180102.182000 in sec: 152400. + not possible to compute, first iteration + + + Time of computation -> 20180102.183000 in sec: 153000. + not possible to compute, first iteration + + + Time of computation -> 20180102.184000 in sec: 153600. + not possible to compute, first iteration + + + Time of computation -> 20180102.185000 in sec: 154200. + not possible to compute, first iteration + + + Time of computation -> 20180102.190000 in sec: 154800. + not possible to compute, first iteration + + + Time of computation -> 20180102.191000 in sec: 155400. + not possible to compute, first iteration + + + Time of computation -> 20180102.192000 in sec: 156000. + not possible to compute, first iteration + + + Time of computation -> 20180102.193000 in sec: 156600. + not possible to compute, first iteration + + + Time of computation -> 20180102.194000 in sec: 157200. + not possible to compute, first iteration + + + Time of computation -> 20180102.195000 in sec: 157800. + not possible to compute, first iteration + + + Time of computation -> 20180102.200000 in sec: 158400. + not possible to compute, first iteration + + + Time of computation -> 20180102.201000 in sec: 159000. + not possible to compute, first iteration + + + Time of computation -> 20180102.202000 in sec: 159600. + not possible to compute, first iteration + + + Time of computation -> 20180102.203000 in sec: 160200. + not possible to compute, first iteration + + + Time of computation -> 20180102.204000 in sec: 160800. + not possible to compute, first iteration + + + Time of computation -> 20180102.205000 in sec: 161400. + not possible to compute, first iteration + + + Time of computation -> 20180102.210000 in sec: 162000. + not possible to compute, first iteration + + + Time of computation -> 20180102.211000 in sec: 162600. + not possible to compute, first iteration + + + Time of computation -> 20180102.212000 in sec: 163200. + not possible to compute, first iteration + + + Time of computation -> 20180102.213000 in sec: 163800. + not possible to compute, first iteration + + + Time of computation -> 20180102.214000 in sec: 164400. + not possible to compute, first iteration + + + Time of computation -> 20180102.215000 in sec: 165000. + not possible to compute, first iteration + + + Time of computation -> 20180102.220000 in sec: 165600. + not possible to compute, first iteration + + + Time of computation -> 20180102.221000 in sec: 166200. + not possible to compute, first iteration + + + Time of computation -> 20180102.222000 in sec: 166800. + not possible to compute, first iteration + + + Time of computation -> 20180102.223000 in sec: 167400. + not possible to compute, first iteration + + + Time of computation -> 20180102.224000 in sec: 168000. + not possible to compute, first iteration + + + Time of computation -> 20180102.225000 in sec: 168600. + not possible to compute, first iteration + + + Time of computation -> 20180102.230000 in sec: 169200. + not possible to compute, first iteration + + + Time of computation -> 20180102.231000 in sec: 169800. + not possible to compute, first iteration + + + Time of computation -> 20180102.232000 in sec: 170400. + not possible to compute, first iteration + + + Time of computation -> 20180102.233000 in sec: 171000. + not possible to compute, first iteration + + + Time of computation -> 20180102.234000 in sec: 171600. + not possible to compute, first iteration + + + Time of computation -> 20180102.235000 in sec: 172200. + not possible to compute, first iteration + + + Time of computation -> 20180103.000000 in sec: 172800. + not possible to compute, first iteration + + + Time of computation -> 20180103.001000 in sec: 173400. + ** Heading lines ** + -> 20180103.060000 + not possible to compute, first iteration + + + Time of computation -> 20180103.002000 in sec: 174000. + not possible to compute, first iteration + + + Time of computation -> 20180103.003000 in sec: 174600. + not possible to compute, first iteration + + + Time of computation -> 20180103.004000 in sec: 175200. + not possible to compute, first iteration + + + Time of computation -> 20180103.005000 in sec: 175800. + not possible to compute, first iteration + + + Time of computation -> 20180103.010000 in sec: 176400. + not possible to compute, first iteration + + + Time of computation -> 20180103.011000 in sec: 177000. + not possible to compute, first iteration + + + Time of computation -> 20180103.012000 in sec: 177600. + not possible to compute, first iteration + + + Time of computation -> 20180103.013000 in sec: 178200. + not possible to compute, first iteration + + + Time of computation -> 20180103.014000 in sec: 178800. + not possible to compute, first iteration + + + Time of computation -> 20180103.015000 in sec: 179400. + not possible to compute, first iteration + + + Time of computation -> 20180103.020000 in sec: 180000. + not possible to compute, first iteration + + + Time of computation -> 20180103.021000 in sec: 180600. + not possible to compute, first iteration + + + Time of computation -> 20180103.022000 in sec: 181200. + not possible to compute, first iteration + + + Time of computation -> 20180103.023000 in sec: 181800. + not possible to compute, first iteration + + + Time of computation -> 20180103.024000 in sec: 182400. + not possible to compute, first iteration + + + Time of computation -> 20180103.025000 in sec: 183000. + not possible to compute, first iteration + + + Time of computation -> 20180103.030000 in sec: 183600. + not possible to compute, first iteration + + + Time of computation -> 20180103.031000 in sec: 184200. + not possible to compute, first iteration + + + Time of computation -> 20180103.032000 in sec: 184800. + not possible to compute, first iteration + + + Time of computation -> 20180103.033000 in sec: 185400. + not possible to compute, first iteration + + + Time of computation -> 20180103.034000 in sec: 186000. + not possible to compute, first iteration + + + Time of computation -> 20180103.035000 in sec: 186600. + not possible to compute, first iteration + + + Time of computation -> 20180103.040000 in sec: 187200. + not possible to compute, first iteration + + + Time of computation -> 20180103.041000 in sec: 187800. + not possible to compute, first iteration + + + Time of computation -> 20180103.042000 in sec: 188400. + not possible to compute, first iteration + + + Time of computation -> 20180103.043000 in sec: 189000. + not possible to compute, first iteration + + + Time of computation -> 20180103.044000 in sec: 189600. + not possible to compute, first iteration + + + Time of computation -> 20180103.045000 in sec: 190200. + not possible to compute, first iteration + + + Time of computation -> 20180103.050000 in sec: 190800. + not possible to compute, first iteration + + + Time of computation -> 20180103.051000 in sec: 191400. + not possible to compute, first iteration + + + Time of computation -> 20180103.052000 in sec: 192000. + not possible to compute, first iteration + + + Time of computation -> 20180103.053000 in sec: 192600. + not possible to compute, first iteration + + + Time of computation -> 20180103.054000 in sec: 193200. + not possible to compute, first iteration + + + Time of computation -> 20180103.055000 in sec: 193800. + not possible to compute, first iteration + + + Time of computation -> 20180103.060000 in sec: 194400. + not possible to compute, first iteration + + + Time of computation -> 20180103.061000 in sec: 195000. + ** Heading lines ** + -> 20180103.120000 + not possible to compute, first iteration + + + Time of computation -> 20180103.062000 in sec: 195600. + not possible to compute, first iteration + + + Time of computation -> 20180103.063000 in sec: 196200. + not possible to compute, first iteration + + + Time of computation -> 20180103.064000 in sec: 196800. + not possible to compute, first iteration + + + Time of computation -> 20180103.065000 in sec: 197400. + not possible to compute, first iteration + + + Time of computation -> 20180103.070000 in sec: 198000. + not possible to compute, first iteration + + + Time of computation -> 20180103.071000 in sec: 198600. + not possible to compute, first iteration + + + Time of computation -> 20180103.072000 in sec: 199200. + not possible to compute, first iteration + + + Time of computation -> 20180103.073000 in sec: 199800. + not possible to compute, first iteration + + + Time of computation -> 20180103.074000 in sec: 200400. + not possible to compute, first iteration + + + Time of computation -> 20180103.075000 in sec: 201000. + not possible to compute, first iteration + + + Time of computation -> 20180103.080000 in sec: 201600. + not possible to compute, first iteration + + + Time of computation -> 20180103.081000 in sec: 202200. + not possible to compute, first iteration + + + Time of computation -> 20180103.082000 in sec: 202800. + not possible to compute, first iteration + + + Time of computation -> 20180103.083000 in sec: 203400. + not possible to compute, first iteration + + + Time of computation -> 20180103.084000 in sec: 204000. + not possible to compute, first iteration + + + Time of computation -> 20180103.085000 in sec: 204600. + not possible to compute, first iteration + + + Time of computation -> 20180103.090000 in sec: 205200. + not possible to compute, first iteration + + + Time of computation -> 20180103.091000 in sec: 205800. + not possible to compute, first iteration + + + Time of computation -> 20180103.092000 in sec: 206400. + not possible to compute, first iteration + + + Time of computation -> 20180103.093000 in sec: 207000. + not possible to compute, first iteration + + + Time of computation -> 20180103.094000 in sec: 207600. + not possible to compute, first iteration + + + Time of computation -> 20180103.095000 in sec: 208200. + not possible to compute, first iteration + + + Time of computation -> 20180103.100000 in sec: 208800. + not possible to compute, first iteration + + + Time of computation -> 20180103.101000 in sec: 209400. + not possible to compute, first iteration + + + Time of computation -> 20180103.102000 in sec: 210000. + not possible to compute, first iteration + + + Time of computation -> 20180103.103000 in sec: 210600. + not possible to compute, first iteration + + + Time of computation -> 20180103.104000 in sec: 211200. + not possible to compute, first iteration + + + Time of computation -> 20180103.105000 in sec: 211800. + not possible to compute, first iteration + + + Time of computation -> 20180103.110000 in sec: 212400. + not possible to compute, first iteration + + + Time of computation -> 20180103.111000 in sec: 213000. + not possible to compute, first iteration + + + Time of computation -> 20180103.112000 in sec: 213600. + not possible to compute, first iteration + + + Time of computation -> 20180103.113000 in sec: 214200. + not possible to compute, first iteration + + + Time of computation -> 20180103.114000 in sec: 214800. + not possible to compute, first iteration + + + Time of computation -> 20180103.115000 in sec: 215400. + not possible to compute, first iteration + + + Time of computation -> 20180103.120000 in sec: 216000. + not possible to compute, first iteration + + + Time of computation -> 20180103.121000 in sec: 216600. + ** Heading lines ** + -> 20180103.180000 + not possible to compute, first iteration + + + Time of computation -> 20180103.122000 in sec: 217200. + not possible to compute, first iteration + + + Time of computation -> 20180103.123000 in sec: 217800. + not possible to compute, first iteration + + + Time of computation -> 20180103.124000 in sec: 218400. + not possible to compute, first iteration + + + Time of computation -> 20180103.125000 in sec: 219000. + not possible to compute, first iteration + + + Time of computation -> 20180103.130000 in sec: 219600. + not possible to compute, first iteration + + + Time of computation -> 20180103.131000 in sec: 220200. + not possible to compute, first iteration + + + Time of computation -> 20180103.132000 in sec: 220800. + not possible to compute, first iteration + + + Time of computation -> 20180103.133000 in sec: 221400. + not possible to compute, first iteration + + + Time of computation -> 20180103.134000 in sec: 222000. + not possible to compute, first iteration + + + Time of computation -> 20180103.135000 in sec: 222600. + not possible to compute, first iteration + + + Time of computation -> 20180103.140000 in sec: 223200. + not possible to compute, first iteration + + + Time of computation -> 20180103.141000 in sec: 223800. + not possible to compute, first iteration + + + Time of computation -> 20180103.142000 in sec: 224400. + not possible to compute, first iteration + + + Time of computation -> 20180103.143000 in sec: 225000. + not possible to compute, first iteration + + + Time of computation -> 20180103.144000 in sec: 225600. + not possible to compute, first iteration + + + Time of computation -> 20180103.145000 in sec: 226200. + not possible to compute, first iteration + + + Time of computation -> 20180103.150000 in sec: 226800. + not possible to compute, first iteration + + + Time of computation -> 20180103.151000 in sec: 227400. + not possible to compute, first iteration + + + Time of computation -> 20180103.152000 in sec: 228000. + not possible to compute, first iteration + + + Time of computation -> 20180103.153000 in sec: 228600. + not possible to compute, first iteration + + + Time of computation -> 20180103.154000 in sec: 229200. + not possible to compute, first iteration + + + Time of computation -> 20180103.155000 in sec: 229800. + not possible to compute, first iteration + + + Time of computation -> 20180103.160000 in sec: 230400. + not possible to compute, first iteration + + + Time of computation -> 20180103.161000 in sec: 231000. + not possible to compute, first iteration + + + Time of computation -> 20180103.162000 in sec: 231600. + not possible to compute, first iteration + + + Time of computation -> 20180103.163000 in sec: 232200. + not possible to compute, first iteration + + + Time of computation -> 20180103.164000 in sec: 232800. + not possible to compute, first iteration + + + Time of computation -> 20180103.165000 in sec: 233400. + not possible to compute, first iteration + + + Time of computation -> 20180103.170000 in sec: 234000. + not possible to compute, first iteration + + + Time of computation -> 20180103.171000 in sec: 234600. + not possible to compute, first iteration + + + Time of computation -> 20180103.172000 in sec: 235200. + not possible to compute, first iteration + + + Time of computation -> 20180103.173000 in sec: 235800. + not possible to compute, first iteration + + + Time of computation -> 20180103.174000 in sec: 236400. + not possible to compute, first iteration + + + Time of computation -> 20180103.175000 in sec: 237000. + not possible to compute, first iteration + + + Time of computation -> 20180103.180000 in sec: 237600. + not possible to compute, first iteration + + + Time of computation -> 20180103.181000 in sec: 238200. + not possible to compute, first iteration + + + Time of computation -> 20180103.182000 in sec: 238800. + not possible to compute, first iteration + + + Time of computation -> 20180103.183000 in sec: 239400. + not possible to compute, first iteration + + + Time of computation -> 20180103.184000 in sec: 240000. + not possible to compute, first iteration + + + Time of computation -> 20180103.185000 in sec: 240600. + not possible to compute, first iteration + + + Time of computation -> 20180103.190000 in sec: 241200. + not possible to compute, first iteration + + + Time of computation -> 20180103.191000 in sec: 241800. + not possible to compute, first iteration + + + Time of computation -> 20180103.192000 in sec: 242400. + not possible to compute, first iteration + + + Time of computation -> 20180103.193000 in sec: 243000. + not possible to compute, first iteration + + + Time of computation -> 20180103.194000 in sec: 243600. + not possible to compute, first iteration + + + Time of computation -> 20180103.195000 in sec: 244200. + not possible to compute, first iteration + + + Time of computation -> 20180103.200000 in sec: 244800. + not possible to compute, first iteration + + + Time of computation -> 20180103.201000 in sec: 245400. + not possible to compute, first iteration + + + Time of computation -> 20180103.202000 in sec: 246000. + not possible to compute, first iteration + + + Time of computation -> 20180103.203000 in sec: 246600. + not possible to compute, first iteration + + + Time of computation -> 20180103.204000 in sec: 247200. + not possible to compute, first iteration + + + Time of computation -> 20180103.205000 in sec: 247800. + not possible to compute, first iteration + + + Time of computation -> 20180103.210000 in sec: 248400. + not possible to compute, first iteration + + + Time of computation -> 20180103.211000 in sec: 249000. + not possible to compute, first iteration + + + Time of computation -> 20180103.212000 in sec: 249600. + not possible to compute, first iteration + + + Time of computation -> 20180103.213000 in sec: 250200. + not possible to compute, first iteration + + + Time of computation -> 20180103.214000 in sec: 250800. + not possible to compute, first iteration + + + Time of computation -> 20180103.215000 in sec: 251400. + not possible to compute, first iteration + + + Time of computation -> 20180103.220000 in sec: 252000. + not possible to compute, first iteration + + + Time of computation -> 20180103.221000 in sec: 252600. + not possible to compute, first iteration + + + Time of computation -> 20180103.222000 in sec: 253200. + not possible to compute, first iteration + + + Time of computation -> 20180103.223000 in sec: 253800. + not possible to compute, first iteration + + + Time of computation -> 20180103.224000 in sec: 254400. + not possible to compute, first iteration + + + Time of computation -> 20180103.225000 in sec: 255000. + not possible to compute, first iteration + + + Time of computation -> 20180103.230000 in sec: 255600. + not possible to compute, first iteration + + + + + + STOP diff --git a/cases/breakwaters/ob2_upd/config.swn b/cases/breakwaters/ob2_upd/config.swn new file mode 100644 index 000000000..9002d67bb --- /dev/null +++ b/cases/breakwaters/ob2_upd/config.swn @@ -0,0 +1,51 @@ +$***********MODEL INPUT********************************* +$ +SET NAUTical +MODE NONSTationary TWODimensional +COORDinates spherical + +CGRID REGular xpc=74.70452573998112 ypc=67.88356662593489 alpc=0. & + xlenc=0.128978 ylenc=0.086128 mxc=17 myc=31 & + CIRCLE mdc=36 flow=0.05 fhigh=1. msc=25 + +INPgrid BOTtom REGular xpinp=74.70452573998112 ypinp=67.88356662593489 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071375050 dyinp=0.0026897594 EXCeption -9 +READinp BOTtom fac=1 'data\bathy.bot' idla=1 0 FREE + +INPgrid WIND REGular xpinp=74.70452573998112 ypinp=67.88356662593489 & + alpinp=0. mxinp=17 myinp=31 & + dxinp=0.0071375050 dyinp=0.0026897594 & +NONSTATIONARY 20180101.000000 6 HR 20180103.230000 +READinp WIND fac=1.21 SERIES 'data\wind_inventory.txt' 1 0 1 0 FREE + +BOUnd SHAPespec JONswap 3.3 PEAK DSPR DEGRees + + + +GEN3 ST6 6.5E-6 8.5E-5 4.0 4.0 UP HWANG VECTAU U10PROXY 35.0 AGROW +BREAKING +FRiction JONswap CONstant 0.067 +TRIAD +DIFFRACtion + PROP BSBT +QUANTity Per short='Tm-1,0' power=0. + + + +OUTPUT OPTIONS '%' TABLE 16 BLOCK 6 18 + +BLOCK 'COMPGRID' NOHEAD 'results\HSig_ob_example2_20180102.000000_20180103.230000.dat' LAYOUT 1 HSig OUT 20180102.000000 1. HR +BLOCK 'COMPGRID' NOHEAD 'results\PDIR_ob_example2_20180102.000000_20180103.230000.dat' LAYOUT 1 PDIR OUT 20180102.000000 1. HR +BLOCK 'COMPGRID' NOHEAD 'results\RTP_ob_example2_20180102.000000_20180103.230000.dat' LAYOUT 1 RTP OUT 20180102.000000 1. HR + + + + + + + + +COMPUTE NONSTat 20180101.000000 10 MIN 20180103.230000 + +STOP diff --git a/cases/breakwaters/ob2_upd/data/bathy.bot b/cases/breakwaters/ob2_upd/data/bathy.bot new file mode 100644 index 000000000..6eaad604f --- /dev/null +++ b/cases/breakwaters/ob2_upd/data/bathy.bot @@ -0,0 +1,32 @@ +5.0 5.0 5.0 5.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 5.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 -9.0 +5.0 5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 5.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +5.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 4.0 4.0 4.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 -9.0 +4.0 4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 4.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 3.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 +4.0 3.0 3.0 3.0 2.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 -9.0 +3.0 3.0 3.0 3.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 -9.0 +3.0 3.0 3.0 2.0 2.0 2.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 -9.0 -9.0 -9.0 +3.0 3.0 3.0 2.0 2.0 2.0 2.0 1.0 1.0 1.0 0.0 -9.0 1.0 1.0 1.0 -9.0 -9.0 -9.0 diff --git a/cases/breakwaters/ob2_upd/data/bathy_ob_example2.nc b/cases/breakwaters/ob2_upd/data/bathy_ob_example2.nc new file mode 100644 index 0000000000000000000000000000000000000000..77d853b7af10c7aa79734fe84964fd64b797dee3 GIT binary patch literal 19658 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 y`!fgj3>;_R7JqkW%)33>^FS{rW$Xfg>&e literal 0 HcmV?d00001 diff --git a/cases/breakwaters/ob2_upd/data/bathy_ob_example2.nc.tmp b/cases/breakwaters/ob2_upd/data/bathy_ob_example2.nc.tmp new file mode 100644 index 0000000000000000000000000000000000000000..cb28e6c2b14d4f1140a68e38f43034625d0e3eca GIT binary patch literal 23258 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 IPnya918Lyz9smFU literal 0 HcmV?d00001 diff --git a/cases/breakwaters/ob2_upd/data/landscape_PwiOsA2HE2igZUel.csv b/cases/breakwaters/ob2_upd/data/landscape_PwiOsA2HE2igZUel.csv new file mode 100644 index 000000000..5a8d90930 --- /dev/null +++ b/cases/breakwaters/ob2_upd/data/landscape_PwiOsA2HE2igZUel.csv @@ -0,0 +1,628 @@ +lat, lon, elevation, xIndex, yIndex +67.88362250095344, 74.70452573998112, -3.0, 0, 0 +67.8836220353277, 74.71166324496195, -3.0, 1, 0 +67.88362125928482, 74.71880074956255, -3.0, 2, 0 +67.88362017282485, 74.72593825359276, -2.0, 3, 0 +67.88361877594781, 74.73307575686246, -2.0, 4, 0 +67.88361706865378, 74.74021325918153, -2.0, 5, 0 +67.88361505094282, 74.74735076035986, -2.0, 6, 0 +67.88361272281502, 74.75448826020731, -1.0, 7, 0 +67.88361008427047, 74.76162575853374, -1.0, 8, 0 +67.88360713530929, 74.76876325514907, -1.0, 9, 0 +67.88360387593158, 74.77590074986313, 0.0, 10, 0 +67.88360030613754, 74.78303824248582, 0.0, 11, 0 +67.88359642592724, 74.790175732827, -1.0, 12, 0 +67.8835922353009, 74.79731322069657, -1.0, 13, 0 +67.88358773425867, 74.80445070590439, -1.0, 14, 0 +67.88358292280074, 74.81158818826033, 17.0, 15, 0 +67.88357780092733, 74.8187256675743, 26.0, 16, 0 +67.88357236863864, 74.82586314365615, 26.0, 17, 0 +67.88356662593489, 74.83300061631577, 24.0, 18, 0 +67.8863122603243, 74.70452656380225, -3.0, 0, 1 +67.8863117946361, 74.71166489260412, -3.0, 1, 1 +67.8863110184891, 74.7188032210256, -3.0, 2, 1 +67.88630993188335, 74.72594154887649, -2.0, 3, 1 +67.8863085348189, 74.73307987596658, -2.0, 4, 1 +67.8863068272958, 74.74021820210567, -2.0, 5, 1 +67.88630480931411, 74.74735652710358, -2.0, 6, 1 +67.88630248087395, 74.75449485077009, -1.0, 7, 1 +67.88629984197539, 74.76163317291503, -1.0, 8, 1 +67.88629689261855, 74.76877149334815, -1.0, 9, 1 +67.88629363280353, 74.77590981187932, -1.0, 10, 1 +67.88629006253052, 74.7830481283183, -1.0, 11, 1 +67.88628618179963, 74.7901864424749, -1.0, 12, 1 +67.88628199061102, 74.79732475415894, -1.0, 13, 1 +67.8862774889649, 74.8044630631802, -1.0, 14, 1 +67.88627267686141, 74.8116013693485, 16.0, 15, 1 +67.8862675543008, 74.81873967247363, 27.0, 16, 1 +67.88626212128327, 74.8258779723654, 29.0, 17, 1 +67.88625637780903, 74.83301626883365, 27.0, 18, 1 +67.88900201880564, 74.70452738782927, -3.0, 0, 2 +67.88900155305494, 74.71166654065811, -3.0, 1, 2 +67.88900077680381, 74.7188056931064, -3.0, 2, 2 +67.88899969005224, 74.72594484498389, -3.0, 3, 2 +67.88899829280034, 74.73308399610028, -2.0, 4, 2 +67.88899658504812, 74.74022314626531, -2.0, 5, 2 +67.88899456679567, 74.74736229528871, -2.0, 6, 2 +67.88899223804304, 74.7545014429802, -1.0, 7, 2 +67.8889895987904, 74.76164058914952, -1.0, 8, 2 +67.8889866490378, 74.76877973360641, -1.0, 9, 2 +67.88898338878539, 74.77591887616057, -1.0, 10, 2 +67.8889798180333, 74.78305801662177, -1.0, 11, 2 +67.88897593678169, 74.7901971547997, -1.0, 12, 2 +67.8889717450307, 74.79733629050409, -1.0, 13, 2 +67.88896724278052, 74.80447542354472, -1.0, 14, 2 +67.88896243003134, 74.81161455373126, 14.0, 15, 2 +67.88895730678338, 74.81875368087348, 28.0, 16, 2 +67.88895187303683, 74.82589280478112, 31.0, 17, 2 +67.88894612879191, 74.83303192526388, 26.0, 18, 2 +67.89169177639754, 74.7045282120623, -4.0, 0, 3 +67.89169131058433, 74.71166818912408, -3.0, 1, 3 +67.89169053422903, 74.71880816580517, -3.0, 2, 3 +67.89168944733164, 74.72594814191524, -3.0, 3, 3 +67.89168804989222, 74.73308811726392, -2.0, 4, 3 +67.89168634191083, 74.74022809166088, -2.0, 5, 3 +67.89168432338752, 74.74736806491576, -2.0, 6, 3 +67.89168199432241, 74.75450803683823, -2.0, 7, 3 +67.89167935471558, 74.76164800723795, -1.0, 8, 3 +67.89167640456714, 74.76878797592455, -1.0, 9, 3 +67.89167314387721, 74.77592794270772, -1.0, 10, 3 +67.89166957264595, 74.7830679073971, -1.0, 11, 3 +67.89166569087348, 74.79020786980234, -1.0, 12, 3 +67.89166149855998, 74.79734782973311, -1.0, 13, 3 +67.89165699570563, 74.80448778699908, -1.0, 14, 3 +67.8916521823106, 74.81162774140986, 13.0, 15, 3 +67.89164705837511, 74.81876769277515, 26.0, 16, 3 +67.89164162389937, 74.82590764090462, 27.0, 17, 3 +67.89163587888362, 74.83304758560789, 23.0, 18, 3 +67.89438153310007, 74.70452903650138, -4.0, 0, 4 +67.89438106722434, 74.71166983800218, -3.0, 1, 4 +67.89438029076484, 74.71881063912215, -3.0, 2, 4 +67.89437920372158, 74.72595143967085, -3.0, 3, 4 +67.89437780609461, 74.73309223945789, -3.0, 4, 4 +67.89437609788399, 74.74023303829284, -2.0, 5, 4 +67.8943740790898, 74.74737383598527, -2.0, 6, 4 +67.8943717497121, 74.75451463234478, -2.0, 7, 4 +67.89436910975101, 74.76165542718095, -1.0, 8, 4 +67.89436615920664, 74.76879622030336, -1.0, 9, 4 +67.8943628980791, 74.77593701152159, -1.0, 10, 4 +67.89435932636854, 74.78307780064522, -1.0, 11, 4 +67.8943554440751, 74.79021858748384, -1.0, 12, 4 +67.89435125119897, 74.79735937184704, -1.0, 13, 4 +67.89434674774029, 74.8045001535444, -1.0, 14, 4 +67.89434193369927, 74.81164093238549, -1.0, 15, 4 +67.89433680907611, 74.81878170817991, 22.0, 16, 4 +67.89433137387101, 74.82592248073725, 22.0, 17, 4 +67.89432562808423, 74.8330632498671, 18.0, 18, 4 +67.89707128891334, 74.70452986114661, -4.0, 0, 5 +67.8970708229751, 74.71167148729256, -4.0, 1, 5 +67.89707004641137, 74.71881311305754, -3.0, 2, 5 +67.8970689592222, 74.72595473825103, -3.0, 3, 5 +67.89706756140764, 74.73309636268257, -3.0, 4, 5 +67.89706585296774, 74.74023798616165, -2.0, 5, 5 +67.89706383390258, 74.74737960849777, -2.0, 6, 5 +67.89706150421223, 74.75452122950045, -2.0, 7, 5 +67.8970588638968, 74.76166284897921, -1.0, 8, 5 +67.8970559129564, 74.76880446674356, -1.0, 9, 5 +67.89705265139115, 74.77594608260299, -1.0, 10, 5 +67.8970490792012, 74.783087696367, -1.0, 11, 5 +67.89704519638667, 74.79022930784515, -1.0, 12, 5 +67.89704100294774, 74.7973709168469, -1.0, 13, 5 +67.89703649888462, 74.8045125231818, -1.0, 14, 5 +67.89703168419744, 74.81165412665933, -1.0, 15, 5 +67.89702655888644, 74.81879572708903, 19.0, 16, 5 +67.89702112295183, 74.82593732428039, 19.0, 17, 5 +67.89701537639385, 74.83307891804294, 15.0, 18, 5 +67.89976104383743, 74.70453068599805, -4.0, 0, 6 +67.89976057783663, 74.71167313699539, -4.0, 1, 6 +67.89975980116867, 74.71881558761157, -3.0, 2, 6 +67.89975871383356, 74.72595803765608, -3.0, 3, 6 +67.89975731583137, 74.73310048693833, -3.0, 4, 6 +67.89975560716215, 74.74024293526774, -2.0, 5, 6 +67.89975358782596, 74.74738538245377, -2.0, 6, 6 +67.89975125782287, 74.75452782830585, -2.0, 7, 6 +67.89974861715302, 74.76167027263342, -1.0, 8, 6 +67.8997456658165, 74.7688127152459, -1.0, 9, 6 +67.89974240381343, 74.77595515595274, -1.0, 10, 6 +67.89973883114396, 74.78309759456337, -1.0, 11, 6 +67.89973494780824, 74.79024003088725, -1.0, 12, 6 +67.89973075380641, 74.79738246473377, -1.0, 13, 6 +67.89972624913867, 74.80452489591242, -1.0, 14, 6 +67.89972143380521, 74.8116673242326, -1.0, 15, 6 +67.89971630780622, 74.81880974950379, 16.0, 16, 6 +67.89971087114192, 74.82595217153538, 17.0, 17, 6 +67.89970512381255, 74.83309459013684, 15.0, 18, 6 +67.9024507978724, 74.70453151105579, -4.0, 0, 7 +67.90245033180905, 74.71167478711078, -4.0, 1, 7 +67.90244955503684, 74.7188180627845, -4.0, 2, 7 +67.90244846755576, 74.72596133788629, -3.0, 3, 7 +67.90244706936588, 74.73310461222553, -3.0, 4, 7 +67.90244536046725, 74.74024788561158, -3.0, 5, 7 +67.90244334085997, 74.74739115785381, -2.0, 6, 7 +67.9024410105441, 74.75453442876157, -2.0, 7, 7 +67.90243836951976, 74.76167769814423, -2.0, 8, 7 +67.90243541778702, 74.76882096581114, -1.0, 9, 7 +67.90243215534603, 74.77596423157169, -1.0, 10, 7 +67.90242858219695, 74.78310749523523, -1.0, 11, 7 +67.90242469833989, 74.7902507566111, -1.0, 12, 7 +67.90242050377503, 74.7973940155087, -1.0, 13, 7 +67.90241599850255, 74.80453727173739, -1.0, 14, 7 +67.90241118252264, 74.81168052510651, -1.0, 15, 7 +67.9024060558355, 74.81882377542544, 14.0, 16, 7 +67.90240061844135, 74.82596702250355, 16.0, 17, 7 +67.9023948703404, 74.83311026615021, 15.0, 18, 7 +67.90514055101838, 74.70453233631989, -4.0, 0, 8 +67.90514008489245, 74.7116764376389, -4.0, 1, 8 +67.90513930801595, 74.7188205385765, -4.0, 2, 8 +67.90513822038886, 74.72596463894195, -3.0, 3, 8 +67.90513682201126, 74.73310873854456, -3.0, 4, 8 +67.9051351128832, 74.74025283719362, -3.0, 5, 8 +67.90513309300476, 74.7473969346984, -2.0, 6, 8 +67.90513076237603, 74.75454103086821, -2.0, 7, 8 +67.90512812099709, 74.76168512551233, -2.0, 8, 8 +67.90512516886805, 74.76882921844005, -1.0, 9, 8 +67.90512190598905, 74.77597330946065, -1.0, 10, 8 +67.90511833236022, 74.78311739838345, -1.0, 11, 8 +67.90511444798172, 74.79026148501771, -1.0, 12, 8 +67.9051102528537, 74.79740556917274, -1.0, 13, 8 +67.90510574697635, 74.8045496506578, -1.0, 14, 8 +67.90510093034985, 74.81169372928223, 4.0, 15, 8 +67.90509580297439, 74.81883780485529, 16.0, 16, 8 +67.90509036485021, 74.82598187718628, 20.0, 17, 8 +67.90508461597753, 74.8331259460845, 19.0, 18, 8 +67.90783030327543, 74.70453316179044, -4.0, 0, 9 +67.90782983708692, 74.71167808857992, -4.0, 1, 9 +67.9078290601061, 74.71882301498782, -4.0, 2, 9 +67.90782797233297, 74.72596794082338, -4.0, 3, 9 +67.90782657376761, 74.7331128658958, -3.0, 4, 9 +67.90782486441006, 74.7402577900143, -3.0, 5, 9 +67.90782284426041, 74.74740271298809, -2.0, 6, 9 +67.90782051331873, 74.75454763462638, -2.0, 7, 9 +67.90781787158511, 74.7616925547384, -2.0, 8, 9 +67.90781491905969, 74.76883747313336, -1.0, 9, 9 +67.90781165574256, 74.77598238962047, -1.0, 10, 9 +67.9078080816339, 74.78312730400896, -1.0, 11, 9 +67.90780419673382, 74.79027221610804, -1.0, 12, 9 +67.9078000010425, 74.79741712572692, -1.0, 13, 9 +67.90779549456013, 74.80456203267484, -1.0, 14, 9 +67.90779067728688, 74.81170693676098, -1.0, 15, 9 +67.90778554922295, 74.81885183779461, 20.0, 16, 9 +67.90778011036858, 74.82599673558491, 25.0, 17, 9 +67.90777436072398, 74.83314162994112, 24.0, 18, 9 +67.91052005464365, 74.70453398746749, -4.0, 0, 10 +67.91051958839255, 74.71167973993396, -4.0, 1, 10 +67.91051881130736, 74.71882549201871, -4.0, 2, 10 +67.91051772338817, 74.72597124353088, -4.0, 3, 10 +67.91051632463501, 74.73311699427963, -3.0, 4, 10 +67.91051461504792, 74.74026274407407, -3.0, 5, 10 +67.91051259462698, 74.74740849272338, -3.0, 6, 10 +67.91051026337227, 74.75455424003667, -2.0, 7, 10 +67.91050762128393, 74.7616999858231, -2.0, 8, 10 +67.91050466836201, 74.76884572989181, -2.0, 9, 10 +67.91050140460666, 74.77599147205194, -1.0, 10, 10 +67.91049783001804, 74.78313721211265, -1.0, 11, 10 +67.91049394459628, 74.79028294988305, -1.0, 12, 10 +67.91048974834155, 74.79742868517232, -1.0, 13, 10 +67.91048524125401, 74.80457441778958, -1.0, 14, 10 +67.91048042333385, 74.81172014754398, -1.0, 15, 10 +67.91047529458132, 74.81886587424466, 24.0, 16, 10 +67.91046985499656, 74.8260115977008, 30.0, 17, 10 +67.91046410457987, 74.83315731772151, 30.0, 18, 10 +67.91320980512312, 74.70453481335113, -5.0, 0, 11 +67.91320933880938, 74.71168139170118, -4.0, 1, 11 +67.91320856161985, 74.71882796966936, -4.0, 2, 11 +67.91320747355455, 74.72597454706474, -4.0, 3, 11 +67.91320607461353, 74.73312112369639, -3.0, 4, 11 +67.91320436479684, 74.74026769937339, -3.0, 5, 11 +67.91320234410456, 74.7474142739048, -3.0, 6, 11 +67.91320001253678, 74.75456084709968, -2.0, 7, 11 +67.91319737009358, 74.76170741876713, -2.0, 8, 11 +67.9131944167751, 74.76885398871617, -2.0, 9, 11 +67.91319115258145, 74.77600055675592, -1.0, 10, 11 +67.91318757751276, 74.78314712269542, -1.0, 11, 11 +67.91318369156917, 74.79029368634374, -1.0, 12, 11 +67.91317949475088, 74.79744024750997, -1.0, 13, 11 +67.91317498705804, 74.80458680600317, -1.0, 14, 11 +67.91317016849085, 74.8117333616324, -1.0, 15, 11 +67.91316503904952, 74.81887991420676, 26.0, 16, 11 +67.91315959873424, 74.8260264635353, 33.0, 17, 11 +67.91315384754527, 74.83317300942709, 33.0, 18, 11 +67.91589955471392, 74.70453563944145, -5.0, 0, 12 +67.91589908833755, 74.71168304388173, -5.0, 1, 12 +67.91589831104363, 74.71883044794001, -4.0, 2, 12 +67.91589722283219, 74.72597785142527, -4.0, 3, 12 +67.91589582370327, 74.7331252541465, -4.0, 4, 12 +67.91589411365693, 74.74027265591272, -3.0, 5, 12 +67.91589209269326, 74.74742005653289, -3.0, 6, 12 +67.9158897608123, 74.75456745581604, -3.0, 7, 12 +67.9158871180142, 74.76171485357115, -2.0, 8, 12 +67.91588416429904, 74.76886224960721, -2.0, 9, 12 +67.91588089966696, 74.77600964373322, -1.0, 10, 12 +67.9158773241181, 74.78315703575818, -1.0, 11, 12 +67.91587343765259, 74.7903044254911, -1.0, 12, 12 +67.91586924027061, 74.79745181274095, -1.0, 13, 12 +67.91586473197233, 74.80459919731675, -1.0, 14, 12 +67.91585991275795, 74.81174657902747, -1.0, 15, 12 +67.91585478262766, 74.81889395768215, 26.0, 16, 12 +67.91584934158169, 74.82604133308976, 35.0, 17, 12 +67.91584358962027, 74.8331887050593, 35.0, 18, 12 +67.91858930341614, 74.70453646573851, -5.0, 0, 13 +67.91858883697712, 74.71168469647577, -5.0, 1, 13 +67.9185880595788, 74.71883292683088, -4.0, 2, 13 +67.91858697122117, 74.72598115661276, -4.0, 3, 13 +67.91858557190432, 74.73312938563032, -4.0, 4, 13 +67.91858386162828, 74.74027761369248, -3.0, 5, 13 +67.91858184039313, 74.74742584060817, -3.0, 6, 13 +67.91857950819895, 74.75457406618632, -3.0, 7, 13 +67.91857686504585, 74.76172229023584, -2.0, 8, 13 +67.91857391093393, 74.76887051256564, -2.0, 9, 13 +67.91857064586333, 74.77601873298468, -2.0, 10, 13 +67.91856706983418, 74.78316695130185, -1.0, 11, 13 +67.91856318284661, 74.79031516732607, -1.0, 12, 13 +67.91855898490081, 74.79746338086629, -1.0, 13, 13 +67.91855447599696, 74.80461159173143, -1.0, 14, 13 +67.91854965613524, 74.8117597997304, -1.0, 15, 13 +67.91854452531584, 74.81890800467212, 24.0, 16, 13 +67.918539083539, 74.82605620636554, 35.0, 17, 13 +67.91853333080493, 74.83320440461956, 36.0, 18, 13 +67.92127905122986, 74.70453729224238, -5.0, 0, 14 +67.92127858472819, 74.71168634948346, -5.0, 1, 14 +67.92127780722542, 74.71883540634222, -5.0, 2, 14 +67.9212767187216, 74.72598446262752, -4.0, 3, 14 +67.92127531921675, 74.73313351814822, -4.0, 4, 14 +67.92127360871095, 74.74028257271316, -4.0, 5, 14 +67.92127158720427, 74.74743162613117, -3.0, 6, 14 +67.9212692546968, 74.75458067821114, -3.0, 7, 14 +67.92126661118861, 74.76172972876188, -2.0, 8, 14 +67.92126365667984, 74.76887877759225, -2.0, 9, 14 +67.92126039117062, 74.77602782451112, -2.0, 10, 14 +67.92125681466106, 74.7831768693273, -1.0, 11, 14 +67.92125292715133, 74.79032591184966, -1.0, 12, 14 +67.92124872864159, 74.79747495188707, -1.0, 13, 14 +67.921244219132, 74.80462398924836, -1.0, 14, 14 +67.92123939862279, 74.81177302374236, -1.0, 15, 14 +67.92123426711413, 74.81892205517796, 23.0, 16, 14 +67.92122882460625, 74.826071083364, 35.0, 17, 14 +67.92122307109938, 74.83322010810932, 37.0, 18, 14 +67.92396879815517, 74.70453811895315, -5.0, 0, 15 +67.92396833159083, 74.7116880029049, -5.0, 1, 15 +67.9239675539836, 74.71883788647422, -5.0, 2, 15 +67.92396646533354, 74.72598776946985, -4.0, 3, 15 +67.92396506564066, 74.73313765170059, -4.0, 4, 15 +67.92396335490506, 74.74028753297519, -4.0, 5, 15 +67.92396133312678, 74.74743741310243, -3.0, 6, 15 +67.92395900030593, 74.7545872918911, -3.0, 7, 15 +67.92395635644259, 74.76173716914995, -3.0, 8, 15 +67.92395340153688, 74.76888704468779, -2.0, 9, 15 +67.92395013558892, 74.77603691831337, -2.0, 10, 15 +67.92394655859886, 74.78318678983545, -1.0, 11, 15 +67.92394267056682, 74.79033665906285, -1.0, 12, 15 +67.923938471493, 74.79748652580432, -1.0, 13, 15 +67.92393396137757, 74.80463638986865, -1.0, 14, 15 +67.92392914022071, 74.81178625106459, -1.0, 15, 15 +67.92392400802262, 74.81893610920095, 22.0, 16, 15 +67.92391856478353, 74.82608596408649, 35.0, 17, 15 +67.92391281050367, 74.83323581552999, 36.0, 18, 15 +67.92665854419218, 74.70453894587088, -5.0, 0, 16 +67.92665807756514, 74.7116896567403, -5.0, 1, 16 +67.92665729985342, 74.71884036722713, -5.0, 2, 16 +67.92665621105708, 74.72599107714007, -4.0, 3, 16 +67.92665481117614, 74.73314178628779, -4.0, 4, 16 +67.92665310021067, 74.74029249447902, -4.0, 5, 16 +67.92665107816073, 74.74744320152246, -3.0, 6, 16 +67.92664874502643, 74.75459390722679, -3.0, 7, 16 +67.92664610080786, 74.76174461140073, -3.0, 8, 16 +67.9266431455051, 74.768895313853, -2.0, 9, 16 +67.92663987911833, 74.77604601439225, -2.0, 10, 16 +67.92663630164763, 74.78319671282722, -1.0, 11, 16 +67.92663241309319, 74.79034740896661, -1.0, 12, 16 +67.92662821345516, 74.79749810261912, -1.0, 13, 16 +67.92662370273374, 74.80464879359343, -1.0, 14, 16 +67.92661888092908, 74.81179948169829, -1.0, 15, 16 +67.9266137480414, 74.81895016674235, 21.0, 16, 16 +67.92660830407094, 74.82610084853437, 35.0, 17, 16 +67.9266025490179, 74.83325152688302, 36.0, 18, 16 +67.92934828934094, 74.70453977299566, -5.0, 0, 17 +67.9293478226512, 74.71169131098979, -5.0, 1, 17 +67.92934704483497, 74.71884284860117, -5.0, 2, 17 +67.92934595589232, 74.72599438563844, -5.0, 3, 17 +67.92934455582326, 74.73314592191021, -4.0, 4, 17 +67.92934284462788, 74.74029745722511, -4.0, 5, 17 +67.92934082230623, 74.74744899139178, -4.0, 6, 17 +67.9293384888584, 74.75460052421883, -3.0, 7, 17 +67.9293358442845, 74.7617520555149, -3.0, 8, 17 +67.92933288858463, 74.76890358508862, -3.0, 9, 17 +67.92932962175891, 74.77605511274861, -2.0, 10, 17 +67.92932604380749, 74.7832066383035, -2.0, 11, 17 +67.92932215473051, 74.79035816156191, -1.0, 12, 17 +67.92931795452816, 74.79750968233249, -1.0, 13, 17 +67.92931344320058, 74.80466120042387, -1.0, 14, 17 +67.92930862074797, 74.81181271564465, -1.0, 15, 17 +67.92930348717057, 74.81896422780348, 17.0, 16, 17 +67.92929804246855, 74.826115736709, 33.0, 17, 17 +67.92929228664215, 74.83326724216982, 36.0, 18, 17 +67.93203803360154, 74.70454060032756, -5.0, 0, 18 +67.93203756684909, 74.71169296565351, -5.0, 1, 18 +67.93203678892834, 74.71884533059658, -5.0, 2, 18 +67.93203569983933, 74.7259976949653, -5.0, 3, 18 +67.93203429958213, 74.73315005856823, -4.0, 4, 18 +67.93203258815677, 74.74030242121393, -4.0, 5, 18 +67.93203056556334, 74.74745478271093, -4.0, 6, 18 +67.93202823180192, 74.75460714286783, -3.0, 7, 18 +67.93202558687261, 74.76175950149315, -3.0, 8, 18 +67.93202263077552, 74.76891185839544, -3.0, 9, 18 +67.93201936351078, 74.77606421338326, -2.0, 10, 18 +67.9320157850785, 74.7832165662652, -2.0, 11, 18 +67.93201189547887, 74.79036891684976, -1.0, 12, 18 +67.93200769471204, 74.79752126494553, -1.0, 13, 18 +67.93200318277819, 74.80467361036105, -1.0, 14, 18 +67.9319983596775, 74.81182595290488, -1.0, 15, 18 +67.93199322541018, 74.8189782923856, 14.0, 16, 18 +67.93198777997645, 74.82613062861174, 31.0, 17, 18 +67.93198202337653, 74.83328296139184, 36.0, 18, 18 +67.93472777697409, 74.70454142786666, -5.0, 0, 19 +67.9347273101589, 74.71169462073163, -5.0, 1, 19 +67.9347265321336, 74.71884781321356, -5.0, 2, 19 +67.93472544289821, 74.72600100512093, -5.0, 3, 19 +67.93472404245281, 74.73315419626222, -4.0, 4, 19 +67.93472233079743, 74.74030738644589, -4.0, 5, 19 +67.93472030793215, 74.74746057548046, -4.0, 6, 19 +67.93471797385708, 74.75461376317438, -3.0, 7, 19 +67.93471532857227, 74.76176694933612, -3.0, 8, 19 +67.93471237207787, 74.7689201337742, -3.0, 9, 19 +67.93470910437398, 74.77607331629706, -2.0, 10, 19 +67.93470552546077, 74.78322649671321, -2.0, 11, 19 +67.93470163533836, 74.79037967483112, -1.0, 12, 19 +67.93469743400692, 74.79753285045926, -1.0, 13, 19 +67.93469292146665, 74.80468602340613, -1.0, 14, 19 +67.93468809771771, 74.81183919348022, -1.0, 15, 19 +67.93468296276033, 74.81899236048999, 11.0, 16, 19 +67.93467751659472, 74.82614552424394, 29.0, 17, 19 +67.93467175922109, 74.83329868455054, 35.0, 18, 19 +67.93741751945868, 74.70454225561302, -5.0, 0, 20 +67.93741705258074, 74.71169627622427, -5.0, 1, 20 +67.93741627445085, 74.71885029645235, -5.0, 2, 20 +67.93741518506906, 74.72600431610564, -5.0, 3, 20 +67.9374137844354, 74.73315833499255, -5.0, 4, 20 +67.93741207254996, 74.74031235292149, -4.0, 5, 20 +67.93741004941276, 74.74746636970086, -4.0, 6, 20 +67.93740771502394, 74.75462038513908, -4.0, 7, 20 +67.93740506938357, 74.76177439904454, -3.0, 8, 20 +67.93740211249175, 74.76892841122564, -3.0, 9, 20 +67.93739884434865, 74.77608242149083, -2.0, 10, 20 +67.93739526495436, 74.78323642964845, -2.0, 11, 20 +67.93739137430906, 74.79039043550698, -1.0, 12, 20 +67.9373871724129, 74.79754443887477, -1.0, 13, 20 +67.93738265926606, 74.80469843956025, -1.0, 14, 20 +67.93737783486873, 74.81185243737185, -1.0, 15, 20 +67.93737269922113, 74.81900643211794, 10.0, 16, 20 +67.93736725232345, 74.82616042360696, 26.0, 17, 20 +67.93736149417595, 74.83331441164731, 32.0, 18, 20 +67.94010726105537, 74.70454308356673, -5.0, 0, 21 +67.94010679411466, 74.71169793213163, -5.0, 1, 21 +67.94010601588018, 74.71885278031318, -5.0, 2, 21 +67.94010492635194, 74.72600762791974, -5.0, 3, 21 +67.94010352553, 74.73316247475962, -5.0, 4, 21 +67.94010181341442, 74.74031732064115, -4.0, 5, 21 +67.94009979000526, 74.74747216537268, -4.0, 6, 21 +67.94009745530262, 74.75462700876254, -4.0, 7, 21 +67.9400948093066, 74.76178185061906, -3.0, 8, 21 +67.9400918520173, 74.76893669075055, -3.0, 9, 21 +67.94008858343484, 74.77609152896537, -2.0, 10, 21 +67.94008500355937, 74.78324636507185, -2.0, 11, 21 +67.94008111239106, 74.79040119887831, -2.0, 12, 21 +67.94007690993003, 74.7975560301931, -2.0, 13, 21 +67.94007239617649, 74.80471085882455, -2.0, 14, 21 +67.94006757113063, 74.811865684581, -2.0, 15, 21 +67.94006243479262, 74.81902050727075, -2.0, 16, 21 +67.94005698716273, 74.82617532670218, 22.0, 17, 21 +67.94005122824116, 74.83333014268362, 29.0, 18, 21 +67.94279700176426, 74.70454391172785, -5.0, 0, 22 +67.94279653476079, 74.71169958845381, -5.0, 1, 22 +67.94279575642167, 74.71885526479628, -5.0, 2, 22 +67.94279466674695, 74.72601094056351, -5.0, 3, 22 +67.94279326573668, 74.73316661556379, -5.0, 4, 22 +67.94279155339092, 74.74032228960534, -4.0, 5, 22 +67.94278952970973, 74.74747796249646, -4.0, 6, 22 +67.94278719469321, 74.75463363404538, -4.0, 7, 22 +67.94278454834145, 74.76178930406036, -3.0, 8, 22 +67.94278159065455, 74.76894497234966, -3.0, 9, 22 +67.94277832163266, 74.77610063872156, -2.0, 10, 22 +67.94277474127591, 74.78325630298428, -2.0, 11, 22 +67.94277084958443, 74.79041196494612, -2.0, 12, 22 +67.94276664655843, 74.79756762441531, -2.0, 13, 22 +67.94276213219806, 74.80472328120014, -2.0, 14, 22 +67.9427573065035, 74.81187893510884, -2.0, 15, 22 +67.94275216947494, 74.8190345859497, -2.0, 16, 22 +67.94274672111266, 74.82619023353095, 19.0, 17, 22 +67.94274096141685, 74.83334587766089, 27.0, 18, 22 +67.94548674158546, 74.70454474009648, -5.0, 0, 23 +67.94548627451917, 74.711701245191, -5.0, 1, 23 +67.9454854960754, 74.71885774990186, -5.0, 2, 23 +67.94548440625418, 74.72601425403728, -5.0, 3, 23 +67.94548300505554, 74.73317075740545, -5.0, 4, 23 +67.94548129247953, 74.74032725981452, -4.0, 5, 23 +67.94547926852626, 74.74748376107271, -4.0, 6, 23 +67.94547693319576, 74.75464026098818, -4.0, 7, 23 +67.94547428648818, 74.76179675936913, -3.0, 8, 23 +67.94547132840361, 74.76895325602374, -3.0, 9, 23 +67.94546805894218, 74.77610975076018, -2.0, 10, 23 +67.94546447810403, 74.78326624338668, -2.0, 11, 23 +67.94546058588931, 74.79042273371137, -2.0, 12, 23 +67.94545638229818, 74.79757922154246, -2.0, 13, 23 +67.9454518673308, 74.80473570668816, -2.0, 14, 23 +67.9454470409874, 74.81189218895662, -2.0, 15, 23 +67.94544190326816, 74.81904866815606, -2.0, 16, 23 +67.9454364541733, 74.82620514409463, 18.0, 17, 23 +67.94543069370307, 74.83336161658056, 28.0, 18, 23 +67.948176480519, 74.70454556867269, -5.0, 0, 24 +67.94817601338991, 74.71170290234332, -5.0, 1, 24 +67.94817523484147, 74.71886023563016, -5.0, 2, 24 +67.9481741448737, 74.72601756834135, -5.0, 3, 24 +67.94817274348664, 74.73317490028496, -5.0, 4, 24 +67.94817103068034, 74.74033223126914, -4.0, 5, 24 +67.9481690064549, 74.74748956110197, -4.0, 6, 24 +67.9481666708104, 74.75464688959157, -3.0, 7, 24 +67.9481640237469, 74.76180421654605, -3.0, 8, 24 +67.94816106526457, 74.76896154177354, -3.0, 9, 24 +67.9481577953635, 74.77611886508213, -2.0, 10, 24 +67.94815421404383, 74.78327618627992, -2.0, 11, 24 +67.94815032130572, 74.79043350517506, -2.0, 12, 24 +67.94814611714934, 74.79759082157562, -2.0, 13, 24 +67.94814160157483, 74.80474813528976, -2.0, 14, 24 +67.94813677458245, 74.81190544612555, -2.0, 15, 24 +67.94813163617235, 74.81906275389112, -2.0, 16, 24 +67.94812618634475, 74.82622005839458, 19.0, 17, 24 +67.9481204250999, 74.83337735944407, 31.0, 18, 24 +67.95086621856501, 74.70454639745653, -5.0, 0, 25 +67.9508657513731, 74.71170455991094, -5.0, 1, 25 +67.95086497271996, 74.71886272198141, -5.0, 2, 25 +67.9508638826056, 74.726020883476, -5.0, 3, 25 +67.95086248103007, 74.73317904420273, -5.0, 4, 25 +67.95086076799345, 74.74033720396963, -4.0, 5, 25 +67.95085874349577, 74.74749536258476, -4.0, 6, 25 +67.95085640753716, 74.75465351985615, -3.0, 7, 25 +67.9508537601177, 74.76181167559182, -3.0, 8, 25 +67.9508508012375, 74.76896982959981, -3.0, 9, 25 +67.95084753089667, 74.77612798168818, -2.0, 10, 25 +67.95084394909539, 74.78328613166495, -2.0, 11, 25 +67.95084005583377, 74.79044427933816, -2.0, 12, 25 +67.950835851112, 74.79760242451584, -2.0, 13, 25 +67.95083133493024, 74.80476056700606, -2.0, 14, 25 +67.95082650728871, 74.81191870661682, -2.0, 15, 25 +67.95082136818758, 74.81907684315618, -2.0, 16, 25 +67.95081591762708, 74.82623497643218, 21.0, 17, 25 +67.95081015560746, 74.83339310625286, 31.0, 18, 25 +67.95355595572356, 74.7045472264481, -5.0, 0, 26 +67.95355548846882, 74.711706217894, -5.0, 1, 26 +67.95355470971094, 74.71886520895583, -5.0, 2, 26 +67.95355361944996, 74.72602419944155, -5.0, 3, 26 +67.95355221768594, 74.7331831891591, -5.0, 4, 26 +67.95355050441891, 74.74034217791647, -4.0, 5, 26 +67.95354847964896, 74.74750116552163, -4.0, 6, 26 +67.95354614337617, 74.7546601517825, -3.0, 7, 26 +67.95354349560064, 74.76181913650709, -3.0, 8, 26 +67.95354053632249, 74.76897811950333, -3.0, 9, 26 +67.95353726554183, 74.77613710057919, -2.0, 10, 26 +67.9535336832588, 74.78329607954265, -2.0, 11, 26 +67.95352978947355, 74.79045505620167, -2.0, 12, 26 +67.95352558418627, 74.79761403036419, -2.0, 13, 26 +67.9535210673971, 74.8047730018382, -2.0, 14, 26 +67.95351623910628, 74.81193197043166, -2.0, 15, 26 +67.95351109931397, 74.81909093595252, -2.0, 16, 26 +67.9535056480204, 74.82624989820877, 22.0, 17, 26 +67.95349988522581, 74.83340885700838, 30.0, 18, 26 +67.95624569199474, 74.70454805564748, -5.0, 0, 27 +67.95624522467716, 74.71170787629268, -5.0, 1, 27 +67.95624444581453, 74.71886769655366, -5.0, 2, 27 +67.95624335540691, 74.7260275162383, -5.0, 3, 27 +67.95624195345432, 74.7331873351545, -5.0, 4, 27 +67.95624023995684, 74.74034715311012, -4.0, 5, 27 +67.95623821491455, 74.74750696991309, -4.0, 6, 27 +67.9562358783275, 74.75466678537127, -3.0, 7, 27 +67.95623323019582, 74.76182659929256, -3.0, 8, 27 +67.95623027051963, 74.76898641148483, -3.0, 9, 27 +67.956226999299, 74.77614622175601, -2.0, 10, 27 +67.95622341653413, 74.78330602991394, -2.0, 11, 27 +67.95621952222515, 74.79046583576655, -1.0, 12, 27 +67.95621531637222, 74.79762563912172, -1.0, 13, 27 +67.95621079897552, 74.80478543978732, -1.0, 14, 27 +67.95620597003524, 74.81194523757127, -1.0, 15, 27 +67.95620082955158, 74.81910503228144, -1.0, 16, 27 +67.95619537752478, 74.82626482372574, 21.0, 17, 27 +67.95618961395505, 74.83342461171205, 27.0, 18, 27 +67.95893542737863, 74.70454888505472, -5.0, 0, 28 +67.95893495999819, 74.7117095351071, -5.0, 1, 28 +67.9589341810308, 74.7188701847751, -5.0, 2, 28 +67.95893309047648, 74.72603083386655, -5.0, 3, 28 +67.95893168833531, 74.73319148218926, -4.0, 4, 28 +67.95892997460733, 74.74035212955103, -4.0, 5, 28 +67.95892794929262, 74.74751277575967, -4.0, 6, 28 +67.95892561239125, 74.75467342062304, -3.0, 7, 28 +67.95892296390335, 74.7618340639489, -3.0, 8, 28 +67.958920003829, 74.7689947055451, -2.0, 9, 28 +67.95891673216833, 74.77615534521944, -2.0, 10, 28 +67.95891314892151, 74.78331598277974, -2.0, 11, 28 +67.95890925408865, 74.79047661803382, -1.0, 12, 28 +67.95890504766994, 74.79763725078949, -1.0, 13, 28 +67.95890052966556, 74.80479788085457, -1.0, 14, 28 +67.95889570007567, 74.81195850803687, -1.0, 15, 28 +67.95889055890052, 74.81911913214422, -1.0, 16, 28 +67.9588851061403, 74.82627975298443, 21.0, 17, 28 +67.95887934179524, 74.83344037036532, 25.0, 18, 28 +67.96162516187533, 74.70454971466992, -5.0, 0, 29 +67.961624694432, 74.71171119433743, -5.0, 1, 29 +67.96162391535981, 74.71887267362041, -5.0, 2, 29 +67.96162282465878, 74.7260341523266, -5.0, 3, 29 +67.96162142232897, 74.73319563026376, -4.0, 4, 29 +67.96161970837043, 74.74035710723963, -4.0, 5, 29 +67.96161768278326, 74.74751858306193, -4.0, 6, 29 +67.9616153455675, 74.75468005753841, -3.0, 7, 29 +67.96161269672328, 74.76184153047681, -3.0, 8, 29 +67.9616097362507, 74.76900300168488, -2.0, 9, 29 +67.96160646414988, 74.77616447097034, -2.0, 10, 29 +67.96160288042098, 74.78332593814095, -2.0, 11, 29 +67.96159898506414, 74.79048740300445, -1.0, 12, 29 +67.96159477807952, 74.79764886536857, -1.0, 13, 29 +67.9615902594673, 74.80481032504106, -1.0, 14, 29 +67.96158542922768, 74.81197178182968, -1.0, 15, 29 +67.96158028736086, 74.81913323554215, 11.0, 16, 29 +67.96157483386705, 74.82629468598621, 21.0, 17, 29 +67.96156906874648, 74.83345613296964, 24.0, 18, 29 +67.96431489548492, 74.70455054449316, -5.0, 0, 30 +67.9643144279787, 74.71171285398381, -5.0, 1, 30 +67.96431364880168, 74.71887516308979, -5.0, 2, 30 +67.9643125579539, 74.72603747161878, -5.0, 3, 30 +67.96431115543541, 74.73319977937842, -4.0, 4, 30 +67.96430944124627, 74.7403620861764, -4.0, 5, 30 +67.96430741538654, 74.74752439182038, -3.0, 6, 30 +67.96430507785632, 74.75468669611801, -3.0, 7, 30 +67.9643024286557, 74.76184899887697, -3.0, 8, 30 +67.9642994677848, 74.76901129990492, -2.0, 9, 30 +67.96429619524372, 74.77617359900954, -2.0, 10, 30 +67.96429261103265, 74.78333589599848, -2.0, 11, 30 +67.9642887151517, 74.79049819067943, -1.0, 12, 30 +67.96428450760104, 74.79766048286002, -1.0, 13, 30 +67.96427998838085, 74.80482277234796, -1.0, 14, 30 +67.96427515749133, 74.81198505895091, -1.0, 15, 30 +67.96427001493268, 74.81914734247653, 15.0, 16, 30 +67.96426456070512, 74.82630962273248, 21.0, 17, 30 +67.96425879480888, 74.83347189952644, 24.0, 18, 30 +67.96700462820748, 74.70455137452448, -5.0, 0, 31 +67.96700416063835, 74.7117145140464, -5.0, 1, 31 +67.96700338135649, 74.7188776531835, -5.0, 2, 31 +67.96700229036193, 74.72604079174337, -5.0, 3, 31 +67.9670008876547, 74.7332039295336, -4.0, 4, 31 +67.96699917323491, 74.7403670663618, -4.0, 5, 31 +67.96699714710257, 74.74753020203555, -3.0, 6, 31 +67.96699480925781, 74.75469333636244, -3.0, 7, 31 +67.96699215970071, 74.76185646915005, -3.0, 8, 31 +67.96698919843139, 74.76901960020601, -2.0, 9, 31 +67.96698592544996, 74.77618272933786, -2.0, 10, 31 +67.96698234075659, 74.78334585635325, -2.0, 11, 31 +67.96697844435141, 74.79050898105973, -1.0, 12, 31 +67.96697423623458, 74.79767210326492, -1.0, 13, 31 +67.96696971640628, 74.8048352227764, -1.0, 14, 31 +67.96696488486671, 74.81199833940177, -1.0, 15, 31 +67.9669597416161, 74.81916145294862, 15.0, 16, 31 +67.96695428665461, 74.82632456322456, 20.0, 17, 31 +67.96694851998251, 74.83348767003717, 23.0, 18, 31 +67.96969436004309, 74.704552204764, -5.0, 0, 32 +67.96969389241104, 74.71171617452535, -5.0, 1, 32 +67.9696931130243, 74.71888014390173, -5.0, 2, 32 +67.96969202188293, 74.72604411270068, -4.0, 3, 32 +67.96969061898695, 74.73320808072968, -4.0, 4, 32 +67.96968890433642, 74.74037204779627, -4.0, 5, 32 +67.96968687793142, 74.74753601370797, -3.0, 6, 32 +67.96968453977206, 74.75469997827228, -3.0, 7, 32 +67.96968188985839, 74.76186394129675, -3.0, 8, 32 +67.96967892819056, 74.76902790258887, -2.0, 9, 32 +67.96967565476868, 74.77619186195616, -2.0, 10, 32 +67.9696720695929, 74.78335581920616, -1.0, 11, 32 +67.96966817266336, 74.79051977414638, -1.0, 12, 32 +67.96966396398022, 74.79768372658431, 0.0, 13, 32 +67.96965944354369, 74.80484767632751, -1.0, 14, 32 +67.96965461135392, 74.8120116231835, -1.0, 15, 32 +67.96964946741114, 74.81917556695976, 14.0, 16, 32 +67.96964401171557, 74.82633950746386, 19.0, 17, 32 +67.96963824426743, 74.83350344450328, 20.0, 18, 32 diff --git a/cases/breakwaters/ob2_upd/data/wind_2018.txt b/cases/breakwaters/ob2_upd/data/wind_2018.txt new file mode 100644 index 000000000..da976179f --- /dev/null +++ b/cases/breakwaters/ob2_upd/data/wind_2018.txt @@ -0,0 +1,780 @@ +20180101.000000 + 5.78 5.77 5.75 5.74 5.73 5.72 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 + 5.78 5.76 5.75 5.74 5.73 5.72 5.70 5.69 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 + 5.77 5.76 5.75 5.74 5.73 5.71 5.70 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.59 5.57 + 5.77 5.76 5.75 5.74 5.72 5.71 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 + 5.77 5.76 5.74 5.73 5.72 5.71 5.70 5.69 5.67 5.66 5.65 5.64 5.63 5.62 5.60 5.59 5.58 5.57 + 5.76 5.75 5.74 5.73 5.72 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.57 + 5.76 5.75 5.74 5.73 5.72 5.70 5.69 5.68 5.67 5.66 5.65 5.63 5.62 5.61 5.60 5.59 5.58 5.57 + 5.76 5.75 5.74 5.72 5.71 5.70 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.59 5.57 5.56 + 5.76 5.74 5.73 5.72 5.71 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 + 5.75 5.74 5.73 5.72 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.56 + 5.75 5.74 5.73 5.72 5.70 5.69 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.57 5.55 + 5.75 5.74 5.72 5.71 5.70 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.59 5.58 5.56 5.55 + 5.74 5.73 5.72 5.71 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 + 5.74 5.73 5.72 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 + 5.74 5.73 5.72 5.71 5.69 5.68 5.67 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.56 5.55 + 5.74 5.73 5.72 5.70 5.69 5.68 5.67 5.66 5.65 5.63 5.62 5.61 5.60 5.59 5.58 5.57 5.55 5.54 + 5.74 5.72 5.71 5.70 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 + 5.73 5.72 5.71 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.54 + 5.73 5.72 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.56 5.55 5.54 + 5.73 5.72 5.70 5.69 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.57 5.56 5.55 5.53 + 5.72 5.71 5.70 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.59 5.58 5.57 5.55 5.54 5.53 + 5.72 5.71 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 + 5.72 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.54 5.53 + 5.72 5.70 5.69 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.57 5.56 5.55 5.53 5.52 + 5.71 5.70 5.69 5.68 5.67 5.66 5.65 5.63 5.62 5.61 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 + 5.71 5.70 5.69 5.68 5.67 5.65 5.64 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.52 + 5.71 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.54 5.53 5.52 + 5.70 5.69 5.68 5.67 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.56 5.55 5.54 5.53 5.51 + 5.70 5.69 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.57 5.56 5.55 5.53 5.52 5.51 + 5.70 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.51 + 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.52 5.51 + 5.70 5.68 5.67 5.66 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.54 5.53 5.52 5.50 + 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.60 3.59 3.58 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.67 3.66 3.66 3.65 3.64 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.67 3.66 3.66 3.65 3.64 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.67 3.67 3.66 3.65 3.64 3.63 3.62 3.61 3.60 3.60 3.59 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.67 3.67 3.66 3.65 3.64 3.63 3.62 3.61 3.61 3.60 3.59 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.61 3.61 3.60 3.59 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.56 3.55 3.54 + 3.69 3.68 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.56 3.55 3.55 + 3.69 3.69 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.56 3.56 3.55 + 3.69 3.69 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.56 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.64 3.63 3.63 3.62 3.61 3.60 3.59 3.58 3.57 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.64 3.63 3.63 3.62 3.61 3.60 3.59 3.58 3.57 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.64 3.64 3.63 3.62 3.61 3.60 3.59 3.58 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.64 3.64 3.63 3.62 3.61 3.60 3.59 3.58 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.60 3.60 3.59 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.66 3.65 3.64 3.63 3.62 3.61 3.60 3.60 3.59 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.66 3.66 3.65 3.64 3.63 3.62 3.61 3.61 3.60 3.59 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.67 3.66 3.65 3.64 3.63 3.62 3.61 3.61 3.60 3.59 3.58 3.57 3.56 3.55 + 3.70 3.69 3.68 3.67 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.56 3.56 + 3.70 3.69 3.68 3.67 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.56 3.56 + 3.70 3.69 3.68 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.57 3.56 + 3.70 3.69 3.68 3.68 3.67 3.66 3.65 3.64 3.63 3.62 3.62 3.61 3.60 3.59 3.58 3.57 3.57 3.56 + 3.70 3.69 3.68 3.68 3.67 3.66 3.65 3.64 3.63 3.63 3.62 3.61 3.60 3.59 3.58 3.58 3.57 3.56 + 3.70 3.69 3.69 3.68 3.67 3.66 3.65 3.64 3.63 3.63 3.62 3.61 3.60 3.59 3.58 3.58 3.57 3.56 + 3.70 3.69 3.69 3.68 3.67 3.66 3.65 3.64 3.63 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 + 3.70 3.69 3.69 3.68 3.67 3.66 3.65 3.64 3.64 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 + 3.70 3.70 3.69 3.68 3.67 3.66 3.65 3.64 3.64 3.63 3.62 3.61 3.60 3.59 3.59 3.58 3.57 3.56 + 3.70 3.70 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.60 3.60 3.59 3.58 3.57 3.56 + 3.70 3.70 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.60 3.60 3.59 3.58 3.57 3.56 + 3.71 3.70 3.69 3.68 3.67 3.66 3.65 3.65 3.64 3.63 3.62 3.61 3.61 3.60 3.59 3.58 3.57 3.56 +20180101.060000 + 6.16 6.15 6.13 6.12 6.11 6.10 6.09 6.08 6.06 6.05 6.04 6.03 6.02 6.01 5.99 5.98 5.97 5.96 + 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.97 5.96 + 6.16 6.15 6.14 6.13 6.12 6.10 6.09 6.08 6.07 6.06 6.05 6.03 6.02 6.01 6.00 5.99 5.98 5.97 + 6.16 6.15 6.14 6.13 6.12 6.11 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.01 6.00 5.99 5.98 5.97 + 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.07 6.06 6.05 6.04 6.03 6.02 6.01 5.99 5.98 5.97 + 6.17 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 6.03 6.02 6.01 6.00 5.98 5.97 + 6.17 6.16 6.15 6.14 6.13 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.03 6.02 6.01 6.00 5.99 5.97 + 6.18 6.16 6.15 6.14 6.13 6.12 6.11 6.09 6.08 6.07 6.06 6.05 6.04 6.02 6.01 6.00 5.99 5.98 + 6.18 6.17 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.07 6.06 6.05 6.04 6.03 6.02 6.00 5.99 5.98 + 6.18 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.06 6.05 6.04 6.03 6.02 6.01 5.99 5.98 + 6.18 6.17 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 6.03 6.02 6.01 6.00 5.99 + 6.18 6.17 6.16 6.15 6.14 6.13 6.12 6.10 6.09 6.08 6.07 6.06 6.05 6.03 6.02 6.01 6.00 5.99 + 6.19 6.18 6.16 6.15 6.14 6.13 6.12 6.11 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.01 6.00 5.99 + 6.19 6.18 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.07 6.06 6.05 6.04 6.03 6.02 6.01 5.99 + 6.19 6.18 6.17 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 6.03 6.02 6.01 6.00 + 6.19 6.18 6.17 6.16 6.15 6.14 6.13 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.03 6.02 6.01 6.00 + 6.20 6.18 6.17 6.16 6.15 6.14 6.13 6.12 6.11 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.01 6.00 + 6.20 6.19 6.18 6.16 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.07 6.06 6.05 6.04 6.03 6.02 6.01 + 6.20 6.19 6.18 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 6.03 6.02 6.01 + 6.20 6.19 6.18 6.17 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.03 6.02 6.01 + 6.21 6.20 6.18 6.17 6.16 6.15 6.14 6.13 6.12 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.01 + 6.21 6.20 6.19 6.18 6.16 6.15 6.14 6.13 6.12 6.11 6.10 6.08 6.07 6.06 6.05 6.04 6.03 6.02 + 6.21 6.20 6.19 6.18 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.06 6.05 6.04 6.03 6.02 + 6.21 6.20 6.19 6.18 6.17 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.04 6.03 6.02 + 6.22 6.20 6.19 6.18 6.17 6.16 6.15 6.14 6.13 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.02 + 6.22 6.21 6.20 6.18 6.17 6.16 6.15 6.14 6.13 6.12 6.11 6.09 6.08 6.07 6.06 6.05 6.04 6.03 + 6.22 6.21 6.20 6.19 6.18 6.16 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.07 6.06 6.05 6.04 6.03 + 6.22 6.21 6.20 6.19 6.18 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 6.03 + 6.23 6.22 6.20 6.19 6.18 6.17 6.16 6.15 6.14 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.03 + 6.23 6.22 6.21 6.20 6.18 6.17 6.16 6.15 6.14 6.13 6.12 6.11 6.09 6.08 6.07 6.06 6.05 6.04 + 6.23 6.22 6.21 6.20 6.19 6.18 6.16 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.07 6.06 6.05 6.04 + 6.23 6.22 6.21 6.20 6.19 6.18 6.17 6.16 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.05 6.04 + 5.70 5.69 5.68 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.56 5.55 5.54 5.53 5.51 5.50 5.49 + 5.70 5.69 5.68 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.51 5.50 5.49 + 5.70 5.69 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.51 5.50 5.49 + 5.70 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.52 5.51 5.50 5.49 + 5.70 5.68 5.67 5.66 5.65 5.63 5.62 5.61 5.60 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.49 + 5.70 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.48 + 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.48 + 5.69 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.54 5.53 5.52 5.51 5.49 5.48 + 5.69 5.68 5.67 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.51 5.49 5.48 + 5.69 5.68 5.66 5.65 5.64 5.63 5.62 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.51 5.49 5.48 + 5.69 5.68 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.50 5.49 5.48 + 5.69 5.68 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.48 + 5.69 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.48 + 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.48 + 5.68 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.52 5.51 5.50 5.49 5.47 + 5.68 5.67 5.66 5.65 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.49 5.47 + 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.49 5.47 + 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.48 5.47 + 5.68 5.67 5.66 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.54 5.53 5.52 5.51 5.49 5.48 5.47 + 5.68 5.67 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.54 5.53 5.52 5.51 5.49 5.48 5.47 + 5.68 5.66 5.65 5.64 5.63 5.62 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.51 5.49 5.48 5.47 + 5.68 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.50 5.49 5.48 5.47 + 5.68 5.66 5.65 5.64 5.63 5.61 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.50 5.49 5.48 5.47 + 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.58 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.48 5.47 + 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.48 5.46 + 5.67 5.66 5.65 5.64 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.48 5.46 + 5.67 5.66 5.65 5.63 5.62 5.61 5.60 5.59 5.57 5.56 5.55 5.54 5.52 5.51 5.50 5.49 5.47 5.46 + 5.67 5.66 5.64 5.63 5.62 5.61 5.60 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.49 5.47 5.46 + 5.67 5.66 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.49 5.47 5.46 + 5.67 5.66 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.48 5.47 5.46 + 5.67 5.65 5.64 5.63 5.62 5.61 5.59 5.58 5.57 5.56 5.54 5.53 5.52 5.51 5.49 5.48 5.47 5.46 + 5.66 5.65 5.64 5.63 5.62 5.60 5.59 5.58 5.57 5.55 5.54 5.53 5.52 5.51 5.49 5.48 5.47 5.46 +20180101.120000 + 5.90 5.88 5.86 5.85 5.83 5.82 5.80 5.79 5.77 5.76 5.74 5.72 5.71 5.69 5.68 5.66 5.64 5.63 + 5.90 5.88 5.87 5.85 5.84 5.82 5.80 5.79 5.77 5.76 5.74 5.72 5.71 5.69 5.68 5.66 5.65 5.63 + 5.90 5.88 5.87 5.85 5.84 5.82 5.80 5.79 5.77 5.76 5.74 5.73 5.71 5.70 5.68 5.66 5.65 5.63 + 5.90 5.89 5.87 5.85 5.84 5.82 5.81 5.79 5.78 5.76 5.74 5.73 5.71 5.70 5.68 5.67 5.65 5.63 + 5.90 5.89 5.87 5.86 5.84 5.82 5.81 5.79 5.78 5.76 5.74 5.73 5.71 5.70 5.68 5.67 5.65 5.64 + 5.90 5.89 5.87 5.86 5.84 5.82 5.81 5.79 5.78 5.76 5.75 5.73 5.72 5.70 5.68 5.67 5.65 5.64 + 5.91 5.89 5.87 5.86 5.84 5.83 5.81 5.80 5.78 5.76 5.75 5.73 5.72 5.70 5.69 5.67 5.66 5.64 + 5.91 5.89 5.88 5.86 5.84 5.83 5.81 5.80 5.78 5.77 5.75 5.73 5.72 5.70 5.69 5.67 5.66 5.64 + 5.91 5.89 5.88 5.86 5.84 5.83 5.81 5.80 5.78 5.77 5.75 5.74 5.72 5.70 5.69 5.67 5.66 5.64 + 5.91 5.89 5.88 5.86 5.85 5.83 5.82 5.80 5.78 5.77 5.75 5.74 5.72 5.71 5.69 5.68 5.66 5.64 + 5.91 5.89 5.88 5.86 5.85 5.83 5.82 5.80 5.79 5.77 5.75 5.74 5.72 5.71 5.69 5.68 5.66 5.64 + 5.91 5.90 5.88 5.86 5.85 5.83 5.82 5.80 5.79 5.77 5.76 5.74 5.72 5.71 5.69 5.68 5.66 5.65 + 5.91 5.90 5.88 5.87 5.85 5.84 5.82 5.80 5.79 5.77 5.76 5.74 5.73 5.71 5.70 5.68 5.66 5.65 + 5.91 5.90 5.88 5.87 5.85 5.84 5.82 5.81 5.79 5.77 5.76 5.74 5.73 5.71 5.70 5.68 5.66 5.65 + 5.92 5.90 5.89 5.87 5.85 5.84 5.82 5.81 5.79 5.78 5.76 5.74 5.73 5.71 5.70 5.68 5.67 5.65 + 5.92 5.90 5.89 5.87 5.86 5.84 5.82 5.81 5.79 5.78 5.76 5.75 5.73 5.72 5.70 5.68 5.67 5.65 + 5.92 5.90 5.89 5.87 5.86 5.84 5.82 5.81 5.79 5.78 5.76 5.75 5.73 5.72 5.70 5.69 5.67 5.66 + 5.92 5.91 5.89 5.87 5.86 5.84 5.83 5.81 5.80 5.78 5.76 5.75 5.73 5.72 5.70 5.69 5.67 5.66 + 5.92 5.91 5.89 5.88 5.86 5.84 5.83 5.81 5.80 5.78 5.77 5.75 5.74 5.72 5.70 5.69 5.67 5.66 + 5.92 5.91 5.89 5.88 5.86 5.84 5.83 5.81 5.80 5.78 5.77 5.75 5.74 5.72 5.71 5.69 5.68 5.66 + 5.92 5.91 5.89 5.88 5.86 5.85 5.83 5.82 5.80 5.78 5.77 5.75 5.74 5.72 5.71 5.69 5.68 5.66 + 5.93 5.91 5.89 5.88 5.86 5.85 5.83 5.82 5.80 5.79 5.77 5.76 5.74 5.72 5.71 5.69 5.68 5.66 + 5.93 5.91 5.90 5.88 5.86 5.85 5.83 5.82 5.80 5.79 5.77 5.76 5.74 5.73 5.71 5.70 5.68 5.66 + 5.93 5.91 5.90 5.88 5.87 5.85 5.84 5.82 5.80 5.79 5.77 5.76 5.74 5.73 5.71 5.70 5.68 5.66 + 5.93 5.91 5.90 5.88 5.87 5.85 5.84 5.82 5.81 5.79 5.78 5.76 5.74 5.73 5.71 5.70 5.68 5.67 + 5.93 5.92 5.90 5.89 5.87 5.85 5.84 5.82 5.81 5.79 5.78 5.76 5.75 5.73 5.72 5.70 5.68 5.67 + 5.93 5.92 5.90 5.89 5.87 5.86 5.84 5.82 5.81 5.79 5.78 5.76 5.75 5.73 5.72 5.70 5.69 5.67 + 5.93 5.92 5.90 5.89 5.87 5.86 5.84 5.83 5.81 5.80 5.78 5.76 5.75 5.73 5.72 5.70 5.69 5.67 + 5.93 5.92 5.90 5.89 5.87 5.86 5.84 5.83 5.81 5.80 5.78 5.77 5.75 5.74 5.72 5.70 5.69 5.67 + 5.94 5.92 5.91 5.89 5.88 5.86 5.84 5.83 5.81 5.80 5.78 5.77 5.75 5.74 5.72 5.71 5.69 5.68 + 5.94 5.92 5.91 5.89 5.88 5.86 5.85 5.83 5.82 5.80 5.78 5.77 5.75 5.74 5.72 5.71 5.69 5.68 + 5.94 5.92 5.91 5.89 5.88 5.86 5.85 5.83 5.82 5.80 5.79 5.77 5.76 5.74 5.72 5.71 5.69 5.68 + 4.98 4.97 4.96 4.95 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.84 4.83 4.82 4.81 4.80 4.79 + 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 4.81 4.80 4.79 + 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 4.81 4.80 4.79 + 4.98 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.82 4.80 4.79 + 4.98 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.82 4.80 4.79 + 4.99 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.87 4.86 4.85 4.84 4.83 4.82 4.81 4.80 + 4.99 4.98 4.96 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.86 4.85 4.84 4.83 4.82 4.81 4.80 + 4.99 4.98 4.97 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.86 4.85 4.84 4.83 4.82 4.81 4.80 + 4.99 4.98 4.97 4.96 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.84 4.83 4.82 4.81 4.80 + 4.99 4.98 4.97 4.96 4.95 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.84 4.83 4.82 4.81 4.80 + 4.99 4.98 4.97 4.96 4.95 4.94 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 4.81 4.80 + 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 4.81 4.80 + 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.92 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.82 4.80 + 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.82 4.80 + 5.00 4.99 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.90 4.88 4.87 4.86 4.85 4.84 4.83 4.82 4.81 + 5.00 4.99 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.87 4.86 4.85 4.84 4.83 4.82 4.81 + 5.00 4.99 4.98 4.97 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.86 4.85 4.84 4.83 4.82 4.81 + 5.00 4.99 4.98 4.97 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.85 4.84 4.83 4.82 4.81 + 5.00 4.99 4.98 4.97 4.96 4.95 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.84 4.83 4.82 4.81 + 5.00 4.99 4.98 4.97 4.96 4.95 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.83 4.82 4.81 + 5.00 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 4.81 + 5.01 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.81 + 5.01 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.82 + 5.01 5.00 4.99 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.89 4.88 4.87 4.86 4.85 4.84 4.83 4.82 + 5.01 5.00 4.99 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.87 4.86 4.85 4.84 4.83 4.82 + 5.01 5.00 4.99 4.98 4.97 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.86 4.85 4.84 4.83 4.82 + 5.01 5.00 4.99 4.98 4.97 4.95 4.94 4.93 4.92 4.91 4.90 4.89 4.88 4.86 4.85 4.84 4.83 4.82 + 5.01 5.00 4.99 4.98 4.97 4.96 4.95 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.84 4.83 4.82 + 5.01 5.00 4.99 4.98 4.97 4.96 4.95 4.93 4.92 4.91 4.90 4.89 4.88 4.87 4.86 4.84 4.83 4.82 + 5.01 5.00 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 + 5.01 5.00 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.91 4.90 4.89 4.88 4.87 4.86 4.85 4.84 4.82 + 5.02 5.01 4.99 4.98 4.97 4.96 4.95 4.94 4.93 4.92 4.91 4.89 4.88 4.87 4.86 4.85 4.84 4.83 +20180101.180000 + 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.08 4.06 4.05 4.04 4.03 4.02 4.01 3.99 3.98 + 4.18 4.17 4.16 4.15 4.14 4.13 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 4.02 4.01 3.99 3.98 + 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.10 4.09 4.08 4.07 4.06 4.04 4.03 4.02 4.01 4.00 3.98 + 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.03 4.02 4.01 4.00 3.99 + 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.08 4.07 4.06 4.05 4.04 4.02 4.01 4.00 3.99 + 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 4.01 4.00 3.99 + 4.19 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 4.02 4.00 3.99 + 4.20 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 4.02 4.01 3.99 + 4.20 4.19 4.17 4.16 4.15 4.14 4.13 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 4.02 4.01 4.00 + 4.20 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.03 4.02 4.01 4.00 + 4.20 4.19 4.18 4.17 4.15 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.03 4.02 4.01 4.00 + 4.20 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 4.01 4.00 + 4.21 4.19 4.18 4.17 4.16 4.15 4.13 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 4.01 4.00 + 4.21 4.20 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 4.02 4.01 + 4.21 4.20 4.18 4.17 4.16 4.15 4.14 4.13 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 4.02 4.01 + 4.21 4.20 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.10 4.09 4.08 4.07 4.06 4.05 4.03 4.02 4.01 + 4.21 4.20 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.03 4.02 4.01 + 4.22 4.20 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.08 4.07 4.06 4.05 4.04 4.03 4.01 + 4.22 4.20 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 4.01 + 4.22 4.21 4.20 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.08 4.06 4.05 4.04 4.03 4.02 + 4.22 4.21 4.20 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 4.02 + 4.22 4.21 4.20 4.19 4.18 4.16 4.15 4.14 4.13 4.11 4.10 4.09 4.08 4.07 4.06 4.04 4.03 4.02 + 4.22 4.21 4.20 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.03 4.02 + 4.23 4.21 4.20 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.04 4.02 + 4.23 4.22 4.20 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 + 4.23 4.22 4.21 4.19 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 4.03 + 4.23 4.22 4.21 4.20 4.18 4.17 4.16 4.15 4.14 4.12 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 + 4.23 4.22 4.21 4.20 4.19 4.17 4.16 4.15 4.14 4.13 4.11 4.10 4.09 4.08 4.07 4.05 4.04 4.03 + 4.24 4.22 4.21 4.20 4.19 4.18 4.16 4.15 4.14 4.13 4.12 4.10 4.09 4.08 4.07 4.06 4.05 4.03 + 4.24 4.22 4.21 4.20 4.19 4.18 4.17 4.15 4.14 4.13 4.12 4.11 4.09 4.08 4.07 4.06 4.05 4.03 + 4.24 4.23 4.22 4.20 4.19 4.18 4.17 4.16 4.14 4.13 4.12 4.11 4.10 4.08 4.07 4.06 4.05 4.04 + 4.24 4.23 4.22 4.20 4.19 4.18 4.17 4.16 4.15 4.13 4.12 4.11 4.10 4.09 4.07 4.06 4.05 4.04 + 5.59 5.58 5.57 5.56 5.54 5.53 5.52 5.50 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.38 + 5.59 5.58 5.57 5.55 5.54 5.53 5.51 5.50 5.49 5.48 5.46 5.45 5.44 5.42 5.41 5.40 5.39 5.37 + 5.59 5.58 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 + 5.59 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.48 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 + 5.58 5.57 5.56 5.55 5.53 5.52 5.51 5.49 5.48 5.47 5.45 5.44 5.43 5.42 5.40 5.39 5.38 5.36 + 5.58 5.57 5.56 5.54 5.53 5.52 5.50 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.38 5.36 + 5.58 5.57 5.55 5.54 5.53 5.51 5.50 5.49 5.48 5.46 5.45 5.44 5.42 5.41 5.40 5.39 5.37 5.36 + 5.58 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 5.36 + 5.57 5.56 5.55 5.53 5.52 5.51 5.50 5.48 5.47 5.46 5.44 5.43 5.42 5.41 5.39 5.38 5.37 5.35 + 5.57 5.56 5.55 5.53 5.52 5.51 5.49 5.48 5.47 5.45 5.44 5.43 5.42 5.40 5.39 5.38 5.36 5.35 + 5.57 5.56 5.54 5.53 5.52 5.50 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.38 5.36 5.35 + 5.57 5.55 5.54 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.44 5.42 5.41 5.40 5.39 5.37 5.36 5.35 + 5.56 5.55 5.54 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 5.36 5.34 + 5.56 5.55 5.53 5.52 5.51 5.50 5.48 5.47 5.46 5.44 5.43 5.42 5.41 5.39 5.38 5.37 5.35 5.34 + 5.56 5.55 5.53 5.52 5.51 5.49 5.48 5.47 5.45 5.44 5.43 5.42 5.40 5.39 5.38 5.36 5.35 5.34 + 5.55 5.54 5.53 5.52 5.50 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.37 5.36 5.35 5.34 + 5.55 5.54 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.44 5.42 5.41 5.40 5.39 5.37 5.36 5.35 5.33 + 5.55 5.54 5.52 5.51 5.50 5.49 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 5.36 5.34 5.33 + 5.55 5.53 5.52 5.51 5.50 5.48 5.47 5.46 5.44 5.43 5.42 5.41 5.39 5.38 5.37 5.35 5.34 5.33 + 5.55 5.53 5.52 5.51 5.49 5.48 5.47 5.45 5.44 5.43 5.42 5.40 5.39 5.38 5.36 5.35 5.34 5.32 + 5.54 5.53 5.52 5.50 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.37 5.36 5.35 5.34 5.32 + 5.54 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.44 5.42 5.41 5.40 5.39 5.37 5.36 5.35 5.33 5.32 + 5.54 5.52 5.51 5.50 5.49 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 5.36 5.34 5.33 5.32 + 5.53 5.52 5.51 5.50 5.48 5.47 5.46 5.44 5.43 5.42 5.41 5.39 5.38 5.37 5.35 5.34 5.33 5.32 + 5.53 5.52 5.51 5.49 5.48 5.47 5.45 5.44 5.43 5.42 5.40 5.39 5.38 5.36 5.35 5.34 5.32 5.31 + 5.53 5.52 5.50 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.37 5.36 5.35 5.34 5.32 5.31 + 5.53 5.51 5.50 5.49 5.47 5.46 5.45 5.44 5.42 5.41 5.40 5.38 5.37 5.36 5.35 5.33 5.32 5.31 + 5.52 5.51 5.50 5.49 5.47 5.46 5.45 5.43 5.42 5.41 5.39 5.38 5.37 5.36 5.34 5.33 5.32 5.30 + 5.52 5.51 5.49 5.48 5.47 5.46 5.44 5.43 5.42 5.41 5.39 5.38 5.37 5.35 5.34 5.33 5.32 5.30 + 5.52 5.51 5.49 5.48 5.47 5.45 5.44 5.43 5.41 5.40 5.39 5.38 5.36 5.35 5.34 5.32 5.31 5.30 + 5.52 5.50 5.49 5.48 5.46 5.45 5.44 5.43 5.41 5.40 5.39 5.37 5.36 5.35 5.34 5.32 5.31 5.30 + 5.51 5.50 5.49 5.47 5.46 5.45 5.44 5.42 5.41 5.40 5.38 5.37 5.36 5.35 5.33 5.32 5.31 5.29 +20180102.000000 + 2.96 2.95 2.93 2.92 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.76 2.75 2.73 2.72 2.70 + 2.96 2.95 2.93 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 + 2.96 2.94 2.93 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.74 2.73 2.71 2.70 + 2.96 2.94 2.92 2.91 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.73 2.71 2.69 + 2.95 2.94 2.92 2.91 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.75 2.74 2.72 2.71 2.69 + 2.95 2.93 2.92 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 + 2.95 2.93 2.92 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.76 2.75 2.73 2.72 2.70 2.69 + 2.94 2.93 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 2.68 + 2.94 2.93 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.77 2.76 2.74 2.73 2.71 2.70 2.68 + 2.94 2.92 2.91 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.73 2.71 2.69 2.68 + 2.94 2.92 2.91 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 2.68 + 2.93 2.92 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 2.67 + 2.93 2.92 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.76 2.75 2.73 2.72 2.70 2.69 2.67 + 2.93 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 2.68 2.67 + 2.93 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.77 2.76 2.74 2.73 2.71 2.70 2.68 2.67 + 2.92 2.91 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.73 2.71 2.70 2.68 2.66 + 2.92 2.91 2.89 2.88 2.86 2.85 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 2.68 2.66 + 2.92 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 2.67 2.66 + 2.91 2.90 2.88 2.87 2.86 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 2.69 2.67 2.66 + 2.91 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 2.68 2.67 2.65 + 2.91 2.89 2.88 2.87 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.73 2.71 2.70 2.68 2.67 2.65 + 2.91 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.73 2.71 2.69 2.68 2.66 2.65 + 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 2.68 2.66 2.65 + 2.90 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.70 2.69 2.67 2.66 2.64 + 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 2.69 2.67 2.66 2.64 + 2.90 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.71 2.70 2.68 2.67 2.65 2.64 + 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.73 2.71 2.70 2.68 2.67 2.65 2.64 + 2.89 2.88 2.86 2.85 2.83 2.82 2.80 2.79 2.77 2.76 2.74 2.72 2.71 2.69 2.68 2.66 2.65 2.63 + 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.74 2.72 2.71 2.69 2.68 2.66 2.65 2.63 + 2.89 2.87 2.86 2.84 2.83 2.81 2.80 2.78 2.77 2.75 2.73 2.72 2.70 2.69 2.67 2.66 2.64 2.63 + 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.75 2.73 2.72 2.70 2.69 2.67 2.66 2.64 2.63 + 2.88 2.87 2.85 2.84 2.82 2.81 2.79 2.78 2.76 2.74 2.73 2.71 2.70 2.68 2.67 2.65 2.64 2.62 + 8.72 8.69 8.67 8.65 8.63 8.60 8.58 8.56 8.54 8.52 8.49 8.47 8.45 8.43 8.40 8.38 8.36 8.34 + 8.72 8.70 8.67 8.65 8.63 8.61 8.59 8.56 8.54 8.52 8.50 8.48 8.45 8.43 8.41 8.39 8.36 8.34 + 8.72 8.70 8.68 8.66 8.63 8.61 8.59 8.57 8.55 8.52 8.50 8.48 8.46 8.44 8.41 8.39 8.37 8.35 + 8.73 8.70 8.68 8.66 8.64 8.62 8.59 8.57 8.55 8.53 8.51 8.48 8.46 8.44 8.42 8.40 8.37 8.35 + 8.73 8.71 8.69 8.66 8.64 8.62 8.60 8.58 8.55 8.53 8.51 8.49 8.47 8.44 8.42 8.40 8.38 8.35 + 8.73 8.71 8.69 8.67 8.65 8.62 8.60 8.58 8.56 8.53 8.51 8.49 8.47 8.45 8.43 8.40 8.38 8.36 + 8.74 8.72 8.69 8.67 8.65 8.63 8.61 8.58 8.56 8.54 8.52 8.49 8.47 8.45 8.43 8.41 8.38 8.36 + 8.74 8.72 8.70 8.68 8.65 8.63 8.61 8.59 8.56 8.54 8.52 8.50 8.48 8.45 8.43 8.41 8.39 8.37 + 8.75 8.73 8.70 8.68 8.66 8.64 8.61 8.59 8.57 8.55 8.52 8.50 8.48 8.46 8.44 8.41 8.39 8.37 + 8.75 8.73 8.71 8.68 8.66 8.64 8.62 8.60 8.57 8.55 8.53 8.51 8.48 8.46 8.44 8.42 8.40 8.37 + 8.76 8.73 8.71 8.69 8.67 8.64 8.62 8.60 8.58 8.56 8.53 8.51 8.49 8.47 8.44 8.42 8.40 8.38 + 8.76 8.74 8.71 8.69 8.67 8.65 8.63 8.60 8.58 8.56 8.54 8.52 8.49 8.47 8.45 8.43 8.40 8.38 + 8.76 8.74 8.72 8.70 8.67 8.65 8.63 8.61 8.59 8.56 8.54 8.52 8.50 8.47 8.45 8.43 8.41 8.39 + 8.77 8.74 8.72 8.70 8.68 8.66 8.63 8.61 8.59 8.57 8.55 8.52 8.50 8.48 8.46 8.43 8.41 8.39 + 8.77 8.75 8.73 8.70 8.68 8.66 8.64 8.61 8.59 8.57 8.55 8.53 8.50 8.48 8.46 8.44 8.42 8.39 + 8.77 8.75 8.73 8.71 8.69 8.66 8.64 8.62 8.60 8.57 8.55 8.53 8.51 8.49 8.46 8.44 8.42 8.40 + 8.78 8.76 8.73 8.71 8.69 8.67 8.65 8.62 8.60 8.58 8.56 8.53 8.51 8.49 8.47 8.45 8.42 8.40 + 8.78 8.76 8.74 8.72 8.69 8.67 8.65 8.63 8.60 8.58 8.56 8.54 8.52 8.49 8.47 8.45 8.43 8.40 + 8.79 8.77 8.74 8.72 8.70 8.68 8.65 8.63 8.61 8.59 8.56 8.54 8.52 8.50 8.48 8.45 8.43 8.41 + 8.79 8.77 8.75 8.72 8.70 8.68 8.66 8.64 8.61 8.59 8.57 8.55 8.52 8.50 8.48 8.46 8.44 8.41 + 8.80 8.77 8.75 8.73 8.71 8.68 8.66 8.64 8.62 8.60 8.57 8.55 8.53 8.51 8.48 8.46 8.44 8.42 + 8.80 8.78 8.76 8.73 8.71 8.69 8.67 8.64 8.62 8.60 8.58 8.55 8.53 8.51 8.49 8.47 8.44 8.42 + 8.80 8.78 8.76 8.74 8.71 8.69 8.67 8.65 8.62 8.60 8.58 8.56 8.54 8.51 8.49 8.47 8.45 8.43 + 8.81 8.78 8.76 8.74 8.72 8.70 8.67 8.65 8.63 8.61 8.58 8.56 8.54 8.52 8.49 8.47 8.45 8.43 + 8.81 8.79 8.77 8.74 8.72 8.70 8.68 8.65 8.63 8.61 8.59 8.57 8.54 8.52 8.50 8.48 8.45 8.43 + 8.81 8.79 8.77 8.75 8.73 8.70 8.68 8.66 8.64 8.61 8.59 8.57 8.55 8.53 8.50 8.48 8.46 8.44 + 8.82 8.80 8.77 8.75 8.73 8.71 8.69 8.66 8.64 8.62 8.60 8.57 8.55 8.53 8.51 8.48 8.46 8.44 + 8.82 8.80 8.78 8.76 8.73 8.71 8.69 8.67 8.65 8.62 8.60 8.58 8.56 8.53 8.51 8.49 8.47 8.44 + 8.83 8.81 8.78 8.76 8.74 8.72 8.69 8.67 8.65 8.63 8.60 8.58 8.56 8.54 8.52 8.49 8.47 8.45 + 8.83 8.81 8.79 8.76 8.74 8.72 8.70 8.68 8.65 8.63 8.61 8.59 8.56 8.54 8.52 8.50 8.47 8.45 + 8.84 8.81 8.79 8.77 8.75 8.72 8.70 8.68 8.66 8.63 8.61 8.59 8.57 8.55 8.52 8.50 8.48 8.46 + 8.84 8.82 8.80 8.77 8.75 8.73 8.70 8.68 8.66 8.64 8.62 8.59 8.57 8.55 8.53 8.51 8.48 8.46 +20180102.060000 + 8.69 8.67 8.64 8.62 8.59 8.56 8.54 8.52 8.49 8.47 8.44 8.41 8.39 8.36 8.34 8.31 8.29 8.26 + 8.69 8.67 8.64 8.62 8.59 8.57 8.54 8.52 8.49 8.47 8.44 8.42 8.39 8.37 8.34 8.32 8.29 8.27 + 8.70 8.67 8.65 8.62 8.60 8.57 8.55 8.52 8.49 8.47 8.44 8.42 8.39 8.37 8.34 8.32 8.29 8.27 + 8.70 8.67 8.65 8.62 8.60 8.57 8.55 8.52 8.50 8.47 8.45 8.42 8.40 8.37 8.35 8.32 8.30 8.27 + 8.70 8.68 8.65 8.62 8.60 8.57 8.55 8.52 8.50 8.47 8.45 8.42 8.40 8.37 8.35 8.32 8.30 8.27 + 8.70 8.68 8.65 8.63 8.60 8.58 8.55 8.53 8.50 8.48 8.45 8.43 8.40 8.38 8.35 8.32 8.30 8.27 + 8.71 8.68 8.65 8.63 8.60 8.58 8.56 8.53 8.50 8.48 8.45 8.43 8.40 8.38 8.35 8.33 8.30 8.28 + 8.71 8.68 8.66 8.63 8.61 8.58 8.56 8.53 8.51 8.48 8.46 8.43 8.41 8.38 8.35 8.33 8.31 8.28 + 8.71 8.69 8.66 8.64 8.61 8.59 8.56 8.53 8.51 8.48 8.46 8.43 8.41 8.38 8.36 8.33 8.31 8.28 + 8.71 8.69 8.66 8.64 8.61 8.59 8.56 8.54 8.51 8.49 8.46 8.44 8.41 8.39 8.36 8.34 8.31 8.28 + 8.72 8.69 8.66 8.64 8.61 8.59 8.56 8.54 8.51 8.49 8.46 8.44 8.41 8.39 8.36 8.34 8.31 8.29 + 8.72 8.69 8.67 8.64 8.62 8.59 8.57 8.54 8.52 8.49 8.47 8.44 8.41 8.39 8.36 8.34 8.31 8.29 + 8.72 8.69 8.67 8.64 8.62 8.59 8.57 8.54 8.52 8.49 8.47 8.44 8.42 8.39 8.37 8.34 8.32 8.29 + 8.72 8.70 8.67 8.65 8.62 8.60 8.57 8.55 8.52 8.50 8.47 8.44 8.42 8.40 8.37 8.35 8.32 8.29 + 8.73 8.70 8.67 8.65 8.62 8.60 8.57 8.55 8.52 8.50 8.47 8.45 8.42 8.40 8.37 8.35 8.32 8.30 + 8.73 8.70 8.68 8.65 8.63 8.60 8.58 8.55 8.53 8.50 8.48 8.45 8.43 8.40 8.38 8.35 8.32 8.30 + 8.73 8.70 8.68 8.65 8.63 8.60 8.58 8.55 8.53 8.50 8.48 8.45 8.43 8.40 8.38 8.35 8.33 8.30 + 8.73 8.71 8.68 8.66 8.63 8.61 8.58 8.56 8.53 8.51 8.48 8.45 8.43 8.40 8.38 8.35 8.33 8.30 + 8.73 8.71 8.68 8.66 8.63 8.61 8.58 8.56 8.53 8.51 8.48 8.46 8.43 8.41 8.38 8.36 8.33 8.31 + 8.74 8.71 8.69 8.66 8.64 8.61 8.59 8.56 8.53 8.51 8.48 8.46 8.44 8.41 8.38 8.36 8.33 8.31 + 8.74 8.71 8.69 8.66 8.64 8.61 8.59 8.56 8.54 8.51 8.49 8.46 8.44 8.41 8.39 8.36 8.34 8.31 + 8.74 8.72 8.69 8.67 8.64 8.62 8.59 8.56 8.54 8.52 8.49 8.47 8.44 8.41 8.39 8.36 8.34 8.31 + 8.74 8.72 8.69 8.67 8.64 8.62 8.59 8.57 8.54 8.52 8.49 8.47 8.44 8.42 8.39 8.37 8.34 8.32 + 8.75 8.72 8.70 8.67 8.65 8.62 8.60 8.57 8.55 8.52 8.49 8.47 8.44 8.42 8.39 8.37 8.34 8.32 + 8.75 8.72 8.70 8.67 8.65 8.62 8.60 8.57 8.55 8.52 8.50 8.47 8.45 8.42 8.40 8.37 8.35 8.32 + 8.75 8.73 8.70 8.68 8.65 8.62 8.60 8.57 8.55 8.52 8.50 8.47 8.45 8.42 8.40 8.37 8.35 8.32 + 8.75 8.73 8.70 8.68 8.65 8.63 8.60 8.58 8.55 8.53 8.50 8.48 8.45 8.43 8.40 8.38 8.35 8.33 + 8.76 8.73 8.70 8.68 8.65 8.63 8.60 8.58 8.55 8.53 8.50 8.48 8.45 8.43 8.40 8.38 8.35 8.33 + 8.76 8.73 8.71 8.68 8.66 8.63 8.61 8.58 8.56 8.53 8.51 8.48 8.46 8.43 8.41 8.38 8.36 8.33 + 8.76 8.73 8.71 8.69 8.66 8.64 8.61 8.58 8.56 8.53 8.51 8.48 8.46 8.43 8.41 8.38 8.36 8.33 + 8.76 8.74 8.71 8.69 8.66 8.64 8.61 8.59 8.56 8.54 8.51 8.49 8.46 8.44 8.41 8.39 8.36 8.34 + 8.77 8.74 8.72 8.69 8.66 8.64 8.61 8.59 8.56 8.54 8.51 8.49 8.46 8.44 8.41 8.39 8.36 8.34 + 6.15 6.14 6.13 6.12 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 + 6.15 6.14 6.13 6.12 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 + 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 + 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 + 6.15 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.00 5.99 + 6.14 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.06 6.05 6.04 6.03 6.02 6.01 6.00 5.99 + 6.14 6.13 6.12 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 + 6.14 6.13 6.12 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 5.99 + 6.14 6.13 6.12 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 5.99 + 6.14 6.13 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 + 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.00 6.00 5.99 + 6.14 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.99 + 6.13 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.98 + 6.13 6.12 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.98 + 6.13 6.12 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 5.99 5.98 + 6.13 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 5.98 + 6.13 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 5.98 + 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.99 5.98 + 6.13 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.99 5.98 + 6.12 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.98 5.97 + 6.12 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 5.99 5.98 5.97 + 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 5.99 5.98 5.97 + 6.12 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 5.98 5.97 + 6.12 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 5.98 5.97 + 6.12 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.99 5.98 5.97 + 6.12 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.98 5.98 5.97 + 6.11 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.04 6.03 6.02 6.01 6.00 5.99 5.98 5.97 5.97 + 6.11 6.10 6.10 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.03 6.02 6.01 6.00 5.99 5.98 5.97 5.96 + 6.11 6.10 6.09 6.09 6.08 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 5.98 5.97 5.96 + 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.01 6.00 5.99 5.98 5.97 5.96 + 6.11 6.10 6.09 6.08 6.07 6.07 6.06 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.99 5.98 5.97 5.96 + 6.11 6.10 6.09 6.08 6.07 6.06 6.05 6.05 6.04 6.03 6.02 6.01 6.00 5.99 5.99 5.98 5.97 5.96 +20180102.120000 + 9.41 9.39 9.37 9.35 9.33 9.31 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 9.12 9.10 9.08 9.06 + 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 9.11 9.09 9.06 + 9.42 9.40 9.38 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 9.11 9.09 9.07 + 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.15 9.14 9.11 9.09 9.07 + 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 9.12 9.10 9.08 + 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.24 9.22 9.20 9.18 9.16 9.14 9.12 9.10 9.08 + 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 9.11 9.09 + 9.44 9.42 9.40 9.38 9.35 9.34 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 9.11 9.09 + 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.15 9.14 9.11 9.09 + 9.45 9.43 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 9.12 9.10 + 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.20 9.18 9.16 9.14 9.12 9.10 + 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 9.11 + 9.46 9.44 9.42 9.40 9.38 9.36 9.34 9.31 9.30 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 9.11 + 9.46 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 9.11 + 9.47 9.45 9.43 9.41 9.39 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 9.12 + 9.47 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.20 9.19 9.16 9.14 9.12 + 9.48 9.45 9.44 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 9.13 + 9.48 9.46 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.27 9.26 9.23 9.21 9.19 9.17 9.15 9.13 + 9.48 9.46 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 + 9.49 9.47 9.45 9.43 9.41 9.39 9.36 9.35 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 9.14 + 9.49 9.47 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.16 9.14 + 9.50 9.48 9.46 9.44 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 9.15 + 9.50 9.48 9.46 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.23 9.21 9.19 9.17 9.15 + 9.51 9.48 9.47 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 9.16 + 9.51 9.49 9.47 9.45 9.43 9.41 9.39 9.37 9.35 9.32 9.31 9.28 9.26 9.24 9.22 9.20 9.18 9.16 + 9.51 9.49 9.47 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.16 + 9.52 9.50 9.48 9.46 9.44 9.42 9.40 9.38 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 9.17 + 9.52 9.50 9.48 9.46 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.23 9.22 9.19 9.17 + 9.53 9.51 9.49 9.47 9.44 9.42 9.40 9.38 9.36 9.34 9.32 9.30 9.28 9.26 9.24 9.22 9.20 9.18 + 9.53 9.51 9.49 9.47 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.28 9.26 9.24 9.22 9.20 9.18 + 9.54 9.52 9.49 9.47 9.45 9.43 9.41 9.39 9.37 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 + 9.54 9.52 9.50 9.48 9.46 9.44 9.42 9.40 9.38 9.35 9.33 9.31 9.29 9.27 9.25 9.23 9.21 9.19 + 4.88 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 + 4.88 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 + 4.88 4.87 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 + 4.88 4.87 4.87 4.86 4.85 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 + 4.88 4.87 4.87 4.86 4.85 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 + 4.88 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.80 4.79 4.78 4.78 4.77 + 4.88 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.78 4.77 + 4.88 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 + 4.88 4.87 4.86 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.79 4.78 4.77 4.77 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.88 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.87 4.87 4.86 4.85 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 + 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.78 4.77 4.76 + 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 4.76 + 4.87 4.87 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 4.76 + 4.87 4.86 4.86 4.85 4.85 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.83 4.82 4.81 4.81 4.80 4.79 4.79 4.78 4.77 4.77 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.77 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 4.76 + 4.87 4.86 4.86 4.85 4.84 4.84 4.83 4.82 4.82 4.81 4.80 4.80 4.79 4.78 4.78 4.77 4.76 4.76 +20180102.180000 + 8.03 8.02 8.01 7.99 7.98 7.96 7.95 7.94 7.92 7.91 7.90 7.88 7.87 7.86 7.84 7.83 7.81 7.80 + 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.88 7.87 7.86 7.84 7.83 7.82 7.80 + 8.04 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.84 7.83 7.82 7.80 + 8.04 8.02 8.01 8.00 7.98 7.97 7.96 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.85 7.83 7.82 7.81 + 8.04 8.03 8.01 8.00 7.99 7.97 7.96 7.94 7.93 7.92 7.90 7.89 7.88 7.86 7.85 7.84 7.82 7.81 + 8.04 8.03 8.01 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.86 7.85 7.84 7.82 7.81 + 8.04 8.03 8.02 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.87 7.85 7.84 7.82 7.81 + 8.05 8.03 8.02 8.00 7.99 7.98 7.96 7.95 7.94 7.92 7.91 7.89 7.88 7.87 7.85 7.84 7.83 7.81 + 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.92 7.91 7.90 7.88 7.87 7.86 7.84 7.83 7.82 + 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.84 7.83 7.82 + 8.05 8.04 8.02 8.01 8.00 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.85 7.83 7.82 + 8.05 8.04 8.02 8.01 8.00 7.98 7.97 7.96 7.94 7.93 7.92 7.90 7.89 7.88 7.86 7.85 7.83 7.82 + 8.05 8.04 8.03 8.01 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.90 7.89 7.88 7.86 7.85 7.84 7.82 + 8.06 8.04 8.03 8.02 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.86 7.85 7.84 7.82 + 8.06 8.04 8.03 8.02 8.00 7.99 7.98 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.87 7.85 7.84 7.83 + 8.06 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.92 7.91 7.90 7.88 7.87 7.86 7.84 7.83 + 8.06 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.84 7.83 + 8.06 8.05 8.04 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.85 7.83 + 8.06 8.05 8.04 8.02 8.01 8.00 7.98 7.97 7.96 7.94 7.93 7.92 7.90 7.89 7.88 7.86 7.85 7.83 + 8.07 8.05 8.04 8.03 8.01 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.90 7.89 7.88 7.86 7.85 7.84 + 8.07 8.06 8.04 8.03 8.02 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.86 7.85 7.84 + 8.07 8.06 8.04 8.03 8.02 8.00 7.99 7.98 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.87 7.85 7.84 + 8.07 8.06 8.05 8.03 8.02 8.01 7.99 7.98 7.96 7.95 7.94 7.92 7.91 7.90 7.88 7.87 7.86 7.84 + 8.07 8.06 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.88 7.87 7.86 7.84 + 8.08 8.06 8.05 8.04 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.84 + 8.08 8.06 8.05 8.04 8.02 8.01 8.00 7.98 7.97 7.96 7.94 7.93 7.91 7.90 7.89 7.87 7.86 7.85 + 8.08 8.07 8.05 8.04 8.03 8.01 8.00 7.99 7.97 7.96 7.94 7.93 7.92 7.90 7.89 7.88 7.86 7.85 + 8.08 8.07 8.06 8.04 8.03 8.01 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.86 7.85 + 8.08 8.07 8.06 8.04 8.03 8.02 8.00 7.99 7.97 7.96 7.95 7.93 7.92 7.91 7.89 7.88 7.87 7.85 + 8.09 8.07 8.06 8.05 8.03 8.02 8.00 7.99 7.98 7.96 7.95 7.94 7.92 7.91 7.89 7.88 7.87 7.85 + 8.09 8.07 8.06 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.92 7.91 7.90 7.88 7.87 7.86 + 8.09 8.08 8.06 8.05 8.03 8.02 8.01 7.99 7.98 7.97 7.95 7.94 7.93 7.91 7.90 7.89 7.87 7.86 + 4.60 4.59 4.59 4.58 4.58 4.57 4.56 4.56 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 + 4.59 4.59 4.58 4.58 4.57 4.57 4.56 4.55 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 + 4.59 4.59 4.58 4.57 4.57 4.56 4.56 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.50 4.50 4.49 + 4.59 4.58 4.58 4.57 4.57 4.56 4.55 4.55 4.54 4.54 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 + 4.58 4.58 4.57 4.57 4.56 4.55 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 + 4.58 4.57 4.57 4.56 4.56 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 + 4.58 4.57 4.57 4.56 4.55 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 + 4.57 4.57 4.56 4.56 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 + 4.57 4.56 4.56 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 + 4.57 4.56 4.55 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 + 4.56 4.56 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 4.47 + 4.56 4.55 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 4.46 + 4.55 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 + 4.55 4.55 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.46 + 4.55 4.54 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 4.46 4.46 4.45 + 4.54 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.45 4.45 + 4.54 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.50 4.49 4.48 4.48 4.47 4.47 4.46 4.46 4.45 4.45 + 4.54 4.53 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 + 4.53 4.53 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.45 4.45 4.44 4.44 + 4.53 4.52 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.43 + 4.53 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.45 4.45 4.44 4.44 4.43 + 4.52 4.52 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.43 4.43 + 4.52 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.44 4.43 4.43 + 4.51 4.51 4.50 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.45 4.45 4.44 4.44 4.43 4.43 4.42 + 4.51 4.51 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.43 4.43 4.42 4.42 + 4.51 4.50 4.50 4.49 4.49 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.44 4.43 4.43 4.42 4.41 + 4.50 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.45 4.45 4.44 4.44 4.43 4.43 4.42 4.42 4.41 + 4.50 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.43 4.43 4.42 4.42 4.41 4.41 + 4.50 4.49 4.49 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.44 4.43 4.43 4.42 4.42 4.41 4.41 + 4.49 4.49 4.48 4.48 4.47 4.47 4.46 4.45 4.45 4.44 4.44 4.43 4.43 4.42 4.42 4.41 4.41 4.40 + 4.49 4.48 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.43 4.43 4.43 4.42 4.41 4.41 4.40 4.40 + 4.49 4.48 4.47 4.47 4.46 4.46 4.45 4.45 4.44 4.44 4.43 4.43 4.42 4.42 4.41 4.41 4.40 4.39 +20180103.000000 + 4.65 4.64 4.63 4.62 4.62 4.61 4.60 4.59 4.58 4.58 4.57 4.56 4.55 4.55 4.54 4.53 4.52 4.51 + 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 4.56 4.55 4.54 4.53 4.52 4.52 + 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 4.56 4.55 4.54 4.53 4.53 4.52 + 4.66 4.65 4.64 4.63 4.62 4.62 4.61 4.60 4.59 4.58 4.58 4.57 4.56 4.55 4.55 4.54 4.53 4.52 + 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 4.56 4.55 4.54 4.53 4.52 + 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 4.56 4.55 4.54 4.53 4.53 + 4.66 4.66 4.65 4.64 4.63 4.62 4.62 4.61 4.60 4.59 4.58 4.58 4.57 4.56 4.55 4.55 4.54 4.53 + 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 4.56 4.55 4.54 4.53 + 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 4.56 4.55 4.54 4.53 + 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.58 4.57 4.56 4.55 4.55 4.54 + 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 4.56 4.55 4.54 + 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 4.56 4.55 4.54 + 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.58 4.57 4.56 4.55 4.55 + 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 4.56 4.55 + 4.68 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 4.56 4.55 + 4.68 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.58 4.57 4.56 4.55 + 4.69 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 4.56 + 4.69 4.68 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 4.56 + 4.69 4.68 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.58 4.57 4.56 + 4.70 4.69 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 4.56 + 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 4.57 + 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.58 4.57 + 4.70 4.70 4.69 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 4.57 + 4.71 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.57 + 4.71 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 4.58 + 4.71 4.70 4.70 4.69 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 4.58 + 4.71 4.70 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.58 + 4.72 4.71 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.61 4.61 4.60 4.59 4.59 + 4.72 4.71 4.70 4.70 4.69 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 4.59 + 4.72 4.71 4.70 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.64 4.64 4.63 4.62 4.61 4.61 4.60 4.59 + 4.72 4.72 4.71 4.70 4.69 4.68 4.68 4.67 4.66 4.65 4.65 4.64 4.63 4.62 4.62 4.61 4.60 4.59 + 4.73 4.72 4.71 4.70 4.70 4.69 4.68 4.67 4.66 4.66 4.65 4.64 4.63 4.63 4.62 4.61 4.60 4.59 + 3.43 3.43 3.42 3.41 3.40 3.39 3.38 3.37 3.36 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.28 + 3.43 3.42 3.41 3.41 3.40 3.39 3.38 3.37 3.36 3.35 3.34 3.33 3.33 3.32 3.31 3.30 3.29 3.28 + 3.43 3.42 3.41 3.40 3.39 3.38 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.31 3.30 3.29 3.28 + 3.43 3.42 3.41 3.40 3.39 3.38 3.37 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.29 3.28 + 3.42 3.41 3.41 3.40 3.39 3.38 3.37 3.36 3.35 3.34 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.27 + 3.42 3.41 3.40 3.39 3.39 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.32 3.31 3.30 3.29 3.28 3.27 + 3.42 3.41 3.40 3.39 3.38 3.37 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.29 3.28 3.27 + 3.42 3.41 3.40 3.39 3.38 3.37 3.36 3.35 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.27 + 3.41 3.40 3.39 3.39 3.38 3.37 3.36 3.35 3.34 3.33 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.26 + 3.41 3.40 3.39 3.38 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.30 3.29 3.28 3.27 3.26 + 3.41 3.40 3.39 3.38 3.37 3.36 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.28 3.27 3.26 + 3.40 3.40 3.39 3.38 3.37 3.36 3.35 3.34 3.33 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.26 + 3.40 3.39 3.38 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.31 3.30 3.29 3.28 3.27 3.26 3.25 + 3.40 3.39 3.38 3.37 3.36 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.29 3.28 3.27 3.26 3.25 + 3.40 3.39 3.38 3.37 3.36 3.35 3.34 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.26 3.25 + 3.39 3.38 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.25 3.24 + 3.39 3.38 3.37 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.29 3.28 3.27 3.26 3.25 3.24 + 3.39 3.38 3.37 3.36 3.35 3.34 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.27 3.26 3.25 3.24 + 3.39 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.25 3.24 3.24 + 3.38 3.37 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.30 3.29 3.28 3.27 3.26 3.25 3.24 3.23 + 3.38 3.37 3.36 3.35 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.28 3.27 3.26 3.25 3.24 3.23 + 3.38 3.37 3.36 3.35 3.34 3.33 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.26 3.25 3.24 3.23 + 3.38 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.31 3.30 3.29 3.28 3.27 3.26 3.25 3.24 3.23 3.23 + 3.37 3.36 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.28 3.27 3.26 3.25 3.24 3.23 3.22 + 3.37 3.36 3.35 3.34 3.33 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.26 3.25 3.24 3.23 3.22 + 3.37 3.36 3.35 3.34 3.33 3.32 3.31 3.31 3.30 3.29 3.28 3.27 3.26 3.25 3.24 3.23 3.23 3.22 + 3.36 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.29 3.29 3.28 3.27 3.26 3.25 3.24 3.23 3.22 3.21 + 3.36 3.35 3.34 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.27 3.26 3.25 3.24 3.23 3.22 3.21 + 3.36 3.35 3.34 3.33 3.32 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.25 3.24 3.24 3.23 3.22 3.21 + 3.36 3.35 3.34 3.33 3.32 3.31 3.30 3.30 3.29 3.28 3.27 3.26 3.25 3.24 3.23 3.22 3.22 3.21 + 3.35 3.34 3.34 3.33 3.32 3.31 3.30 3.29 3.28 3.27 3.27 3.26 3.25 3.24 3.23 3.22 3.21 3.20 + 3.35 3.34 3.33 3.32 3.32 3.31 3.30 3.29 3.28 3.27 3.26 3.25 3.25 3.24 3.23 3.22 3.21 3.20 +20180103.060000 +-0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.20 -0.20 -0.20 -0.20 -0.20 +-0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.20 -0.20 -0.20 +-0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.20 +-0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 +-0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 -0.19 -0.19 -0.19 -0.19 +-0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 -0.19 -0.19 +-0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 -0.19 +-0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 -0.18 -0.19 +-0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 -0.18 +-0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 -0.18 -0.18 +-0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.18 -0.18 +-0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 +-0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 -0.17 +-0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 -0.17 -0.17 +-0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 -0.17 -0.17 +-0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.17 +-0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 -0.16 +-0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 -0.16 -0.16 +-0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 -0.16 +-0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.16 -0.16 +-0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 +-0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 -0.15 -0.15 +-0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 -0.15 -0.15 +-0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.15 +-0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 +-0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 -0.14 -0.14 +-0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 -0.14 -0.14 +-0.11 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 -0.14 +-0.11 -0.11 -0.11 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 -0.13 -0.14 +-0.11 -0.11 -0.11 -0.11 -0.11 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 -0.13 +-0.11 -0.11 -0.11 -0.11 -0.11 -0.11 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 -0.13 -0.13 +-0.10 -0.10 -0.11 -0.11 -0.11 -0.11 -0.11 -0.11 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.12 -0.13 -0.13 + 7.67 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 7.34 7.32 + 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 7.34 7.32 + 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.42 7.40 7.38 7.36 7.34 7.32 + 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.36 7.34 7.32 + 7.68 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 7.35 7.33 + 7.68 7.66 7.64 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 7.35 7.33 + 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 7.35 7.33 + 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.45 7.43 7.41 7.39 7.37 7.35 7.33 + 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 7.33 + 7.69 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 7.34 + 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 7.34 + 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.46 7.44 7.42 7.40 7.38 7.36 7.34 + 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.38 7.36 7.34 + 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 7.34 + 7.70 7.68 7.66 7.64 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 7.35 + 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 7.35 + 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.47 7.45 7.43 7.41 7.39 7.37 7.35 + 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.39 7.38 7.35 + 7.71 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 + 7.71 7.69 7.67 7.65 7.63 7.61 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 + 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.50 7.48 7.46 7.44 7.42 7.40 7.38 7.36 + 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.42 7.40 7.38 7.36 + 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.36 + 7.72 7.70 7.68 7.66 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 + 7.72 7.70 7.68 7.66 7.64 7.62 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 + 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.51 7.49 7.47 7.45 7.43 7.41 7.39 7.37 + 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.43 7.41 7.39 7.37 + 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 + 7.73 7.71 7.69 7.67 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 + 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.52 7.50 7.48 7.46 7.44 7.42 7.40 7.38 + 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.44 7.42 7.40 7.38 + 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.38 +20180103.120000 + 4.67 4.65 4.63 4.61 4.58 4.56 4.54 4.52 4.50 4.48 4.46 4.43 4.41 4.39 4.37 4.35 4.33 4.31 + 4.67 4.65 4.62 4.60 4.58 4.56 4.54 4.52 4.50 4.48 4.45 4.43 4.41 4.39 4.37 4.35 4.33 4.31 + 4.67 4.64 4.62 4.60 4.58 4.56 4.54 4.52 4.50 4.47 4.45 4.43 4.41 4.39 4.37 4.35 4.32 4.30 + 4.66 4.64 4.62 4.60 4.58 4.56 4.54 4.51 4.49 4.47 4.45 4.43 4.41 4.39 4.37 4.34 4.32 4.30 + 4.66 4.64 4.62 4.60 4.58 4.56 4.53 4.51 4.49 4.47 4.45 4.43 4.41 4.39 4.36 4.34 4.32 4.30 + 4.66 4.64 4.62 4.60 4.58 4.55 4.53 4.51 4.49 4.47 4.45 4.43 4.41 4.39 4.36 4.34 4.32 4.30 + 4.66 4.64 4.62 4.60 4.57 4.55 4.53 4.51 4.49 4.47 4.45 4.43 4.40 4.38 4.36 4.34 4.32 4.30 + 4.66 4.64 4.62 4.59 4.57 4.55 4.53 4.51 4.49 4.47 4.45 4.42 4.40 4.38 4.36 4.34 4.32 4.30 + 4.66 4.64 4.61 4.59 4.57 4.55 4.53 4.51 4.49 4.47 4.44 4.42 4.40 4.38 4.36 4.34 4.32 4.30 + 4.66 4.64 4.61 4.59 4.57 4.55 4.53 4.51 4.49 4.46 4.44 4.42 4.40 4.38 4.36 4.34 4.31 4.29 + 4.66 4.63 4.61 4.59 4.57 4.55 4.53 4.51 4.48 4.46 4.44 4.42 4.40 4.38 4.36 4.33 4.31 4.29 + 4.65 4.63 4.61 4.59 4.57 4.55 4.53 4.50 4.48 4.46 4.44 4.42 4.40 4.38 4.35 4.33 4.31 4.29 + 4.65 4.63 4.61 4.59 4.57 4.55 4.52 4.50 4.48 4.46 4.44 4.42 4.39 4.37 4.35 4.33 4.31 4.29 + 4.65 4.63 4.61 4.59 4.57 4.54 4.52 4.50 4.48 4.46 4.44 4.41 4.39 4.37 4.35 4.33 4.31 4.29 + 4.65 4.63 4.61 4.59 4.56 4.54 4.52 4.50 4.48 4.46 4.43 4.41 4.39 4.37 4.35 4.33 4.31 4.28 + 4.65 4.63 4.61 4.58 4.56 4.54 4.52 4.50 4.48 4.45 4.43 4.41 4.39 4.37 4.35 4.33 4.30 4.28 + 4.65 4.62 4.60 4.58 4.56 4.54 4.52 4.50 4.47 4.45 4.43 4.41 4.39 4.37 4.35 4.32 4.30 4.28 + 4.64 4.62 4.60 4.58 4.56 4.54 4.52 4.49 4.47 4.45 4.43 4.41 4.39 4.37 4.34 4.32 4.30 4.28 + 4.64 4.62 4.60 4.58 4.56 4.54 4.51 4.49 4.47 4.45 4.43 4.41 4.39 4.36 4.34 4.32 4.30 4.28 + 4.64 4.62 4.60 4.58 4.56 4.53 4.51 4.49 4.47 4.45 4.43 4.41 4.38 4.36 4.34 4.32 4.30 4.28 + 4.64 4.62 4.60 4.58 4.55 4.53 4.51 4.49 4.47 4.45 4.43 4.40 4.38 4.36 4.34 4.32 4.30 4.28 + 4.64 4.62 4.60 4.57 4.55 4.53 4.51 4.49 4.47 4.45 4.42 4.40 4.38 4.36 4.34 4.32 4.30 4.27 + 4.64 4.62 4.59 4.57 4.55 4.53 4.51 4.49 4.47 4.44 4.42 4.40 4.38 4.36 4.34 4.32 4.29 4.27 + 4.64 4.61 4.59 4.57 4.55 4.53 4.51 4.49 4.46 4.44 4.42 4.40 4.38 4.36 4.34 4.31 4.29 4.27 + 4.64 4.61 4.59 4.57 4.55 4.53 4.51 4.48 4.46 4.44 4.42 4.40 4.38 4.36 4.33 4.31 4.29 4.27 + 4.63 4.61 4.59 4.57 4.55 4.53 4.50 4.48 4.46 4.44 4.42 4.40 4.38 4.35 4.33 4.31 4.29 4.27 + 4.63 4.61 4.59 4.57 4.55 4.53 4.50 4.48 4.46 4.44 4.42 4.39 4.37 4.35 4.33 4.31 4.29 4.27 + 4.63 4.61 4.59 4.57 4.55 4.52 4.50 4.48 4.46 4.44 4.41 4.39 4.37 4.35 4.33 4.31 4.29 4.26 + 4.63 4.61 4.59 4.57 4.54 4.52 4.50 4.48 4.46 4.43 4.41 4.39 4.37 4.35 4.33 4.31 4.28 4.26 + 4.63 4.61 4.59 4.56 4.54 4.52 4.50 4.48 4.45 4.43 4.41 4.39 4.37 4.35 4.33 4.30 4.28 4.26 + 4.63 4.61 4.58 4.56 4.54 4.52 4.50 4.48 4.45 4.43 4.41 4.39 4.37 4.35 4.32 4.30 4.28 4.26 + 4.62 4.60 4.58 4.56 4.54 4.52 4.50 4.47 4.45 4.43 4.41 4.39 4.37 4.34 4.32 4.30 4.28 4.26 + 9.53 9.51 9.49 9.46 9.44 9.42 9.39 9.37 9.35 9.33 9.30 9.28 9.26 9.23 9.21 9.19 9.16 9.14 + 9.54 9.51 9.49 9.47 9.44 9.42 9.40 9.38 9.35 9.33 9.31 9.28 9.26 9.24 9.21 9.19 9.17 9.15 + 9.54 9.52 9.49 9.47 9.45 9.43 9.40 9.38 9.36 9.33 9.31 9.29 9.26 9.24 9.22 9.19 9.17 9.15 + 9.54 9.52 9.50 9.47 9.45 9.43 9.40 9.38 9.36 9.34 9.31 9.29 9.27 9.24 9.22 9.20 9.18 9.15 + 9.55 9.52 9.50 9.48 9.45 9.43 9.41 9.39 9.36 9.34 9.32 9.29 9.27 9.25 9.23 9.20 9.18 9.16 + 9.55 9.53 9.51 9.48 9.46 9.44 9.41 9.39 9.37 9.34 9.32 9.30 9.27 9.25 9.23 9.21 9.18 9.16 + 9.55 9.53 9.51 9.48 9.46 9.44 9.42 9.39 9.37 9.35 9.32 9.30 9.28 9.26 9.23 9.21 9.19 9.16 + 9.56 9.53 9.51 9.49 9.47 9.44 9.42 9.40 9.37 9.35 9.33 9.31 9.28 9.26 9.24 9.21 9.19 9.17 + 9.56 9.54 9.52 9.49 9.47 9.45 9.42 9.40 9.38 9.35 9.33 9.31 9.29 9.26 9.24 9.22 9.19 9.17 + 9.56 9.54 9.52 9.50 9.47 9.45 9.43 9.40 9.38 9.36 9.34 9.31 9.29 9.27 9.24 9.22 9.20 9.17 + 9.57 9.55 9.52 9.50 9.48 9.45 9.43 9.41 9.39 9.36 9.34 9.32 9.29 9.27 9.25 9.22 9.20 9.18 + 9.57 9.55 9.53 9.50 9.48 9.46 9.44 9.41 9.39 9.37 9.34 9.32 9.30 9.27 9.25 9.23 9.20 9.18 + 9.58 9.55 9.53 9.51 9.48 9.46 9.44 9.41 9.39 9.37 9.35 9.32 9.30 9.28 9.25 9.23 9.21 9.19 + 9.58 9.56 9.53 9.51 9.49 9.47 9.44 9.42 9.40 9.37 9.35 9.33 9.30 9.28 9.26 9.23 9.21 9.19 + 9.58 9.56 9.54 9.51 9.49 9.47 9.45 9.42 9.40 9.38 9.35 9.33 9.31 9.28 9.26 9.24 9.22 9.19 + 9.59 9.56 9.54 9.52 9.49 9.47 9.45 9.43 9.40 9.38 9.36 9.33 9.31 9.29 9.27 9.24 9.22 9.20 + 9.59 9.57 9.55 9.52 9.50 9.48 9.45 9.43 9.41 9.38 9.36 9.34 9.31 9.29 9.27 9.25 9.22 9.20 + 9.59 9.57 9.55 9.52 9.50 9.48 9.46 9.43 9.41 9.39 9.36 9.34 9.32 9.30 9.27 9.25 9.23 9.20 + 9.60 9.57 9.55 9.53 9.51 9.48 9.46 9.44 9.41 9.39 9.37 9.35 9.32 9.30 9.28 9.25 9.23 9.21 + 9.60 9.58 9.56 9.53 9.51 9.49 9.46 9.44 9.42 9.40 9.37 9.35 9.33 9.30 9.28 9.26 9.23 9.21 + 9.60 9.58 9.56 9.54 9.51 9.49 9.47 9.44 9.42 9.40 9.38 9.35 9.33 9.31 9.28 9.26 9.24 9.21 + 9.61 9.59 9.56 9.54 9.52 9.49 9.47 9.45 9.43 9.40 9.38 9.36 9.33 9.31 9.29 9.26 9.24 9.22 + 9.61 9.59 9.57 9.54 9.52 9.50 9.48 9.45 9.43 9.41 9.38 9.36 9.34 9.31 9.29 9.27 9.24 9.22 + 9.62 9.59 9.57 9.55 9.52 9.50 9.48 9.45 9.43 9.41 9.39 9.36 9.34 9.32 9.29 9.27 9.25 9.23 + 9.62 9.60 9.57 9.55 9.53 9.51 9.48 9.46 9.44 9.41 9.39 9.37 9.34 9.32 9.30 9.27 9.25 9.23 + 9.62 9.60 9.58 9.56 9.53 9.51 9.49 9.46 9.44 9.42 9.39 9.37 9.35 9.32 9.30 9.28 9.26 9.23 + 9.63 9.60 9.58 9.56 9.53 9.51 9.49 9.47 9.44 9.42 9.40 9.37 9.35 9.33 9.31 9.28 9.26 9.24 + 9.63 9.61 9.59 9.56 9.54 9.52 9.49 9.47 9.45 9.42 9.40 9.38 9.35 9.33 9.31 9.29 9.26 9.24 + 9.64 9.61 9.59 9.57 9.54 9.52 9.50 9.47 9.45 9.43 9.40 9.38 9.36 9.34 9.31 9.29 9.27 9.24 + 9.64 9.61 9.59 9.57 9.55 9.52 9.50 9.48 9.45 9.43 9.41 9.39 9.36 9.34 9.32 9.29 9.27 9.25 + 9.64 9.62 9.60 9.57 9.55 9.53 9.50 9.48 9.46 9.44 9.41 9.39 9.37 9.34 9.32 9.30 9.27 9.25 + 9.65 9.62 9.60 9.58 9.55 9.53 9.51 9.48 9.46 9.44 9.41 9.39 9.37 9.35 9.32 9.30 9.28 9.25 +20180103.180000 + 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 + 7.72 7.70 7.68 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 7.39 + 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.44 7.42 7.40 + 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 + 7.73 7.71 7.69 7.67 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 7.40 + 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.45 7.43 7.41 + 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 + 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 + 7.74 7.72 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 7.41 + 7.75 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.50 7.48 7.46 7.44 7.42 + 7.75 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 + 7.75 7.73 7.71 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 7.42 + 7.76 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.51 7.49 7.47 7.45 7.43 + 7.76 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 + 7.76 7.74 7.72 7.70 7.68 7.66 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 7.43 + 7.76 7.74 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.46 7.44 + 7.77 7.75 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.54 7.52 7.50 7.48 7.46 7.44 + 7.77 7.75 7.73 7.71 7.69 7.67 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 7.44 + 7.77 7.75 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.47 7.45 + 7.78 7.76 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.55 7.53 7.51 7.49 7.47 7.45 + 7.78 7.76 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 + 7.78 7.76 7.74 7.72 7.70 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 7.45 + 7.78 7.77 7.75 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.52 7.50 7.48 7.46 + 7.79 7.77 7.75 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 + 7.79 7.77 7.75 7.73 7.71 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 7.46 + 7.79 7.78 7.76 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.53 7.51 7.49 7.47 + 7.80 7.78 7.76 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 + 7.80 7.78 7.76 7.74 7.72 7.70 7.68 7.66 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.47 + 7.80 7.78 7.76 7.74 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.55 7.53 7.51 7.49 7.48 + 7.81 7.79 7.77 7.75 7.73 7.71 7.69 7.67 7.65 7.63 7.61 7.59 7.57 7.56 7.54 7.52 7.50 7.48 + 7.81 7.79 7.77 7.75 7.73 7.71 7.69 7.67 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.48 + 7.81 7.79 7.77 7.75 7.74 7.72 7.70 7.68 7.66 7.64 7.62 7.60 7.58 7.56 7.54 7.52 7.50 7.49 + 7.45 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.33 7.31 7.30 7.28 7.26 7.25 7.23 7.22 7.20 7.19 + 7.45 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 + 7.45 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 + 7.45 7.43 7.42 7.40 7.39 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 + 7.45 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.18 + 7.45 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.18 + 7.44 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.24 7.23 7.22 7.20 7.18 + 7.44 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.30 7.29 7.28 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.30 7.29 7.27 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.43 7.41 7.40 7.38 7.36 7.35 7.34 7.32 7.30 7.29 7.27 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.43 7.41 7.39 7.38 7.36 7.35 7.33 7.32 7.30 7.29 7.27 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.43 7.41 7.39 7.38 7.36 7.35 7.33 7.32 7.30 7.29 7.27 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.42 7.41 7.39 7.38 7.36 7.35 7.33 7.32 7.30 7.29 7.27 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.42 7.41 7.39 7.38 7.36 7.35 7.33 7.32 7.30 7.29 7.27 7.26 7.24 7.23 7.21 7.20 7.18 + 7.44 7.42 7.41 7.39 7.38 7.36 7.35 7.33 7.32 7.30 7.29 7.27 7.26 7.24 7.22 7.21 7.20 7.18 + 7.44 7.42 7.41 7.39 7.38 7.36 7.35 7.33 7.32 7.30 7.28 7.27 7.26 7.24 7.22 7.21 7.19 7.18 + 7.44 7.42 7.41 7.39 7.38 7.36 7.34 7.33 7.32 7.30 7.28 7.27 7.25 7.24 7.22 7.21 7.19 7.18 + 7.44 7.42 7.41 7.39 7.38 7.36 7.34 7.33 7.31 7.30 7.28 7.27 7.25 7.24 7.22 7.21 7.19 7.18 + 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.33 7.31 7.30 7.28 7.27 7.25 7.24 7.22 7.21 7.19 7.18 + 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.33 7.31 7.30 7.28 7.27 7.25 7.24 7.22 7.21 7.19 7.18 + 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.33 7.31 7.30 7.28 7.27 7.25 7.24 7.22 7.21 7.19 7.18 + 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.33 7.31 7.30 7.28 7.27 7.25 7.24 7.22 7.21 7.19 7.18 + 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.33 7.31 7.30 7.28 7.27 7.25 7.24 7.22 7.20 7.19 7.18 + 7.43 7.42 7.40 7.39 7.37 7.36 7.34 7.32 7.31 7.30 7.28 7.26 7.25 7.24 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.39 7.37 7.36 7.34 7.32 7.31 7.30 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 + 7.43 7.41 7.40 7.38 7.37 7.35 7.34 7.32 7.31 7.29 7.28 7.26 7.25 7.23 7.22 7.20 7.19 7.17 diff --git a/cases/breakwaters/ob2_upd/data/wind_inventory.txt b/cases/breakwaters/ob2_upd/data/wind_inventory.txt new file mode 100644 index 000000000..9754ad749 --- /dev/null +++ b/cases/breakwaters/ob2_upd/data/wind_inventory.txt @@ -0,0 +1 @@ +./data/wind_2018.txt diff --git a/cases/breakwaters/ob2_upd/init_ob2.py b/cases/breakwaters/ob2_upd/init_ob2.py new file mode 100644 index 000000000..d963ccba3 --- /dev/null +++ b/cases/breakwaters/ob2_upd/init_ob2.py @@ -0,0 +1,9 @@ +import os + +from core.simulation_case.case import Case +from core.utils.files import get_project_root + +os.chdir(f"{get_project_root()}/cases/ob2") +case = Case("./ob_example.json") +case.prepare_case() +case.run() diff --git a/cases/breakwaters/ob2_upd/norm_end b/cases/breakwaters/ob2_upd/norm_end new file mode 100644 index 000000000..a587de1b9 --- /dev/null +++ b/cases/breakwaters/ob2_upd/norm_end @@ -0,0 +1 @@ + Normal end of run diff --git a/cases/breakwaters/ob2_upd/ob_example.json b/cases/breakwaters/ob2_upd/ob_example.json new file mode 100644 index 000000000..e110705dd --- /dev/null +++ b/cases/breakwaters/ob2_upd/ob_example.json @@ -0,0 +1,39 @@ +{ + "id": "ob_example2", + "case_description": { + "area_name": "Ob Bay", + "coords": "None", + "grid": { + "step": "None", + "step_unit": "deg", + "grid_type": "spherical" + }, + "open_boundaries": "None" + }, + "simulation": { + "spinup_start": "2018-01-01 00:00", + "start": "2018-01-02 00:00", + "end": "2018-01-03 23:00", + "integration_step": "10 MIN", + "parallel": "False", + "model": "SWAN4131" + }, + "data": { + "upload_data": "True", + "storage_path": "./storage", + "force_overwrite": "False", + "bathy_source": "./data/landscape_PwiOsA2HE2igZUel.csv", + "bdc_dataset_type": "None", + "wind_dataset_type": "cfs2" + }, + "output": { + "variables": "['HSig','PDIR','RTP']", + "save_output_fields": "True", + "save_spectres": "False", + "points": { + } + }, + "nesting": { + "nested_grid": "None" + } +} \ No newline at end of file diff --git a/cases/breakwaters/ob2_upd/results/HSig_ob_example.dat b/cases/breakwaters/ob2_upd/results/HSig_ob_example.dat new file mode 100644 index 000000000..7ed17a034 --- /dev/null +++ b/cases/breakwaters/ob2_upd/results/HSig_ob_example.dat @@ -0,0 +1,1536 @@ + 0.466932E+00 0.495101E+00 0.505844E+00 0.505505E+00 0.491684E+00 0.482776E+00 0.457434E+00 0.451904E+00 0.424133E+00 0.389930E+00 0.377892E+00 0.317343E+00 0.265994E+00 0.243326E+00 0.225768E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528233E+00 0.557006E+00 0.566469E+00 0.565256E+00 0.549930E+00 0.541462E+00 0.514163E+00 0.509852E+00 0.482067E+00 0.446792E+00 0.439907E+00 0.378062E+00 0.329149E+00 0.314474E+00 0.302205E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524736E+00 0.554578E+00 0.564256E+00 0.563388E+00 0.547811E+00 0.540243E+00 0.514614E+00 0.507550E+00 0.481300E+00 0.446146E+00 0.439540E+00 0.378444E+00 0.330170E+00 0.316637E+00 0.304085E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.520845E+00 0.551571E+00 0.562243E+00 0.561618E+00 0.546279E+00 0.544206E+00 0.531028E+00 0.507300E+00 0.482113E+00 0.446496E+00 0.439547E+00 0.379695E+00 0.332424E+00 0.319702E+00 0.306510E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.516893E+00 0.548130E+00 0.560316E+00 0.560030E+00 0.547145E+00 0.541301E+00 0.529212E+00 0.506266E+00 0.485937E+00 0.450715E+00 0.439722E+00 0.383084E+00 0.338614E+00 0.328198E+00 0.320417E+00 0.308149E+00 -0.900000E+01 -0.900000E+01 + 0.512236E+00 0.542924E+00 0.557954E+00 0.561004E+00 0.556571E+00 0.538953E+00 0.527908E+00 0.504966E+00 0.502092E+00 0.470755E+00 0.442148E+00 0.398315E+00 0.366942E+00 0.358802E+00 0.351283E+00 0.339218E+00 -0.900000E+01 -0.900000E+01 + 0.505147E+00 0.536132E+00 0.554370E+00 0.558355E+00 0.553883E+00 0.536726E+00 0.526064E+00 0.503308E+00 0.499552E+00 0.469680E+00 0.441845E+00 0.438899E+00 0.434291E+00 0.428616E+00 0.420772E+00 0.407309E+00 -0.900000E+01 -0.900000E+01 + 0.495626E+00 0.527480E+00 0.551026E+00 0.554771E+00 0.550883E+00 0.534358E+00 0.524297E+00 0.501171E+00 0.496228E+00 0.467573E+00 0.440359E+00 0.437162E+00 0.432766E+00 0.427141E+00 0.419270E+00 0.406031E+00 -0.900000E+01 -0.900000E+01 + 0.482529E+00 0.517347E+00 0.544925E+00 0.549850E+00 0.546686E+00 0.531278E+00 0.524141E+00 0.502728E+00 0.492840E+00 0.465025E+00 0.438426E+00 0.434377E+00 0.428783E+00 0.421504E+00 0.411017E+00 0.392237E+00 -0.900000E+01 -0.900000E+01 + 0.469692E+00 0.503375E+00 0.536703E+00 0.543039E+00 0.541577E+00 0.527136E+00 0.524624E+00 0.509699E+00 0.489467E+00 0.462188E+00 0.435794E+00 0.429389E+00 0.421464E+00 0.411522E+00 0.398517E+00 0.351484E+00 -0.900000E+01 -0.900000E+01 + 0.457234E+00 0.487983E+00 0.522098E+00 0.533339E+00 0.533490E+00 0.520003E+00 0.516154E+00 0.502457E+00 0.484036E+00 0.457617E+00 0.431218E+00 0.419426E+00 0.407188E+00 0.395196E+00 0.379845E+00 0.167651E+00 -0.900000E+01 -0.900000E+01 + 0.445429E+00 0.474617E+00 0.505564E+00 0.519374E+00 0.521987E+00 0.509623E+00 0.505364E+00 0.492974E+00 0.476812E+00 0.451043E+00 0.423525E+00 0.395025E+00 0.372312E+00 0.359167E+00 0.339904E+00 0.582083E-02 -0.900000E+01 -0.900000E+01 + 0.433694E+00 0.463197E+00 0.490306E+00 0.503294E+00 0.504868E+00 0.497175E+00 0.491016E+00 0.478386E+00 0.466911E+00 0.441437E+00 0.413465E+00 0.358212E+00 0.314104E+00 0.298702E+00 0.255288E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421775E+00 0.454199E+00 0.476835E+00 0.488213E+00 0.485738E+00 0.484244E+00 0.474748E+00 0.459423E+00 0.454415E+00 0.428518E+00 0.400531E+00 0.348192E+00 0.306346E+00 0.290391E+00 0.194298E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.408299E+00 0.447766E+00 0.466536E+00 0.475762E+00 0.474083E+00 0.472458E+00 0.463994E+00 0.449058E+00 0.442068E+00 0.416220E+00 0.388199E+00 0.337611E+00 0.299517E+00 0.284140E+00 0.195426E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.392155E+00 0.438796E+00 0.457870E+00 0.461653E+00 0.463784E+00 0.459851E+00 0.447826E+00 0.438248E+00 0.423607E+00 0.397963E+00 0.363453E+00 0.316677E+00 0.291369E+00 0.278116E+00 0.199437E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.377411E+00 0.419926E+00 0.450703E+00 0.449126E+00 0.454633E+00 0.448134E+00 0.430826E+00 0.427182E+00 0.405077E+00 0.380422E+00 0.335879E+00 0.293674E+00 0.282769E+00 0.269215E+00 0.206081E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.363711E+00 0.396943E+00 0.442984E+00 0.443378E+00 0.446693E+00 0.439996E+00 0.423806E+00 0.412672E+00 0.387773E+00 0.374384E+00 0.329836E+00 0.288626E+00 0.279013E+00 0.243098E+00 0.221633E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.350587E+00 0.376646E+00 0.425729E+00 0.438622E+00 0.438811E+00 0.427109E+00 0.419160E+00 0.401688E+00 0.373581E+00 0.367342E+00 0.323753E+00 0.285615E+00 0.276806E+00 0.269818E+00 0.262712E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337215E+00 0.362044E+00 0.405739E+00 0.430701E+00 0.431155E+00 0.416594E+00 0.413605E+00 0.397436E+00 0.370929E+00 0.344466E+00 0.300628E+00 0.280331E+00 0.272032E+00 0.266430E+00 0.258961E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.319914E+00 0.350378E+00 0.386698E+00 0.416500E+00 0.414332E+00 0.408914E+00 0.400661E+00 0.378589E+00 0.365977E+00 0.326089E+00 0.283116E+00 0.273344E+00 0.267667E+00 0.261704E+00 0.251454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306871E+00 0.345127E+00 0.370959E+00 0.400207E+00 0.398002E+00 0.397236E+00 0.387224E+00 0.363899E+00 0.356788E+00 0.318457E+00 0.278257E+00 0.269278E+00 0.263198E+00 0.257059E+00 0.229836E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.297183E+00 0.341843E+00 0.359487E+00 0.384321E+00 0.384557E+00 0.378689E+00 0.363748E+00 0.355358E+00 0.331317E+00 0.288204E+00 0.270279E+00 0.263850E+00 0.258001E+00 0.251788E+00 0.238788E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.288593E+00 0.334661E+00 0.351045E+00 0.360647E+00 0.367736E+00 0.362766E+00 0.347307E+00 0.344897E+00 0.313994E+00 0.270289E+00 0.263059E+00 0.257812E+00 0.252179E+00 0.244328E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.278598E+00 0.323125E+00 0.346446E+00 0.346340E+00 0.352248E+00 0.350536E+00 0.338006E+00 0.332078E+00 0.302511E+00 0.264622E+00 0.257322E+00 0.251459E+00 0.246682E+00 0.242893E+00 0.236544E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267431E+00 0.299774E+00 0.335342E+00 0.340058E+00 0.340108E+00 0.328358E+00 0.327126E+00 0.307199E+00 0.267869E+00 0.255102E+00 0.249416E+00 0.245250E+00 0.241756E+00 0.238184E+00 0.231170E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.256748E+00 0.280151E+00 0.326359E+00 0.336642E+00 0.335122E+00 0.317632E+00 0.317995E+00 0.295206E+00 0.253937E+00 0.248088E+00 0.243603E+00 0.240061E+00 0.235869E+00 0.231877E+00 0.213788E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244539E+00 0.269546E+00 0.302109E+00 0.326960E+00 0.328499E+00 0.311905E+00 0.310567E+00 0.288847E+00 0.248732E+00 0.241605E+00 0.236253E+00 0.232968E+00 0.229175E+00 0.224618E+00 0.191305E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233091E+00 0.259421E+00 0.278188E+00 0.294314E+00 0.294612E+00 0.297091E+00 0.296032E+00 0.275041E+00 0.238384E+00 0.231240E+00 0.225810E+00 0.223630E+00 0.219732E+00 0.214027E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214830E+00 0.228873E+00 0.264060E+00 0.272605E+00 0.266005E+00 0.268284E+00 0.258563E+00 0.227287E+00 0.220578E+00 0.216275E+00 0.206375E+00 0.210880E+00 0.210209E+00 0.207819E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184529E+00 0.203128E+00 0.223317E+00 0.232140E+00 0.235648E+00 0.239694E+00 0.232304E+00 0.204622E+00 0.198293E+00 0.194022E+00 0.342237E-01 0.159893E+00 0.163877E+00 0.164368E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107027E-02 0.676787E-01 0.619121E-01 0.554554E-01 0.547367E-01 0.582369E-01 0.622561E-01 0.789041E-01 0.867827E-01 0.508018E-01 -0.900000E+01 0.223232E-04 0.560099E-01 0.523905E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470999E+00 0.501224E+00 0.516100E+00 0.518372E+00 0.504957E+00 0.496105E+00 0.470128E+00 0.462980E+00 0.434387E+00 0.405757E+00 0.394246E+00 0.333286E+00 0.276513E+00 0.250247E+00 0.230329E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.533066E+00 0.563960E+00 0.577783E+00 0.580319E+00 0.565450E+00 0.556677E+00 0.528804E+00 0.522357E+00 0.494579E+00 0.468372E+00 0.462921E+00 0.397832E+00 0.339333E+00 0.322313E+00 0.309421E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528480E+00 0.561736E+00 0.574801E+00 0.577218E+00 0.562250E+00 0.554329E+00 0.528138E+00 0.519257E+00 0.492997E+00 0.465736E+00 0.461255E+00 0.397933E+00 0.340225E+00 0.324372E+00 0.310729E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.523144E+00 0.559065E+00 0.571861E+00 0.574272E+00 0.559290E+00 0.557753E+00 0.544165E+00 0.518898E+00 0.493680E+00 0.463570E+00 0.458870E+00 0.398287E+00 0.342349E+00 0.328036E+00 0.314369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.517099E+00 0.555162E+00 0.569069E+00 0.571196E+00 0.558580E+00 0.554069E+00 0.541773E+00 0.518042E+00 0.497733E+00 0.464439E+00 0.455696E+00 0.400090E+00 0.348274E+00 0.336419E+00 0.328259E+00 0.314575E+00 -0.900000E+01 -0.900000E+01 + 0.509819E+00 0.549725E+00 0.565884E+00 0.570578E+00 0.566529E+00 0.550809E+00 0.539650E+00 0.516322E+00 0.514465E+00 0.482479E+00 0.455646E+00 0.413204E+00 0.378300E+00 0.368793E+00 0.360171E+00 0.348566E+00 -0.900000E+01 -0.900000E+01 + 0.496052E+00 0.540893E+00 0.561988E+00 0.567559E+00 0.562920E+00 0.547874E+00 0.537182E+00 0.514039E+00 0.511795E+00 0.480731E+00 0.453273E+00 0.449611E+00 0.443711E+00 0.437866E+00 0.430680E+00 0.422204E+00 -0.900000E+01 -0.900000E+01 + 0.480387E+00 0.526889E+00 0.556902E+00 0.564060E+00 0.559683E+00 0.545067E+00 0.535129E+00 0.512334E+00 0.509054E+00 0.478307E+00 0.450275E+00 0.446197E+00 0.442140E+00 0.437904E+00 0.432278E+00 0.423580E+00 -0.900000E+01 -0.900000E+01 + 0.465764E+00 0.509260E+00 0.548382E+00 0.559761E+00 0.556656E+00 0.542160E+00 0.536095E+00 0.516363E+00 0.506845E+00 0.476977E+00 0.447861E+00 0.442736E+00 0.438582E+00 0.433894E+00 0.427606E+00 0.413013E+00 -0.900000E+01 -0.900000E+01 + 0.454613E+00 0.491332E+00 0.535713E+00 0.554115E+00 0.553600E+00 0.539912E+00 0.540341E+00 0.527074E+00 0.505444E+00 0.476304E+00 0.445768E+00 0.438558E+00 0.433282E+00 0.427581E+00 0.418251E+00 0.373937E+00 -0.900000E+01 -0.900000E+01 + 0.445890E+00 0.475095E+00 0.518002E+00 0.544313E+00 0.548664E+00 0.536785E+00 0.536751E+00 0.523579E+00 0.503294E+00 0.474346E+00 0.442793E+00 0.430849E+00 0.421798E+00 0.413164E+00 0.400638E+00 0.174021E+00 -0.900000E+01 -0.900000E+01 + 0.437844E+00 0.461839E+00 0.498770E+00 0.529155E+00 0.539726E+00 0.531068E+00 0.530383E+00 0.517848E+00 0.499284E+00 0.471346E+00 0.438785E+00 0.407352E+00 0.385831E+00 0.374724E+00 0.358326E+00 0.649439E-02 -0.900000E+01 -0.900000E+01 + 0.429140E+00 0.452367E+00 0.482372E+00 0.510507E+00 0.522652E+00 0.520877E+00 0.517188E+00 0.503839E+00 0.491152E+00 0.464004E+00 0.432196E+00 0.370483E+00 0.323084E+00 0.308407E+00 0.268919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.419444E+00 0.444892E+00 0.470645E+00 0.492148E+00 0.500262E+00 0.505536E+00 0.498177E+00 0.481156E+00 0.476805E+00 0.449872E+00 0.418998E+00 0.360637E+00 0.315716E+00 0.300037E+00 0.199732E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.408084E+00 0.440212E+00 0.461073E+00 0.477126E+00 0.484701E+00 0.488347E+00 0.482315E+00 0.466043E+00 0.459774E+00 0.433390E+00 0.403330E+00 0.349301E+00 0.308472E+00 0.293588E+00 0.199667E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395425E+00 0.437604E+00 0.452758E+00 0.461616E+00 0.470290E+00 0.470894E+00 0.460951E+00 0.450160E+00 0.437624E+00 0.411206E+00 0.374614E+00 0.326388E+00 0.299643E+00 0.285565E+00 0.201597E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385168E+00 0.432460E+00 0.446476E+00 0.447598E+00 0.457748E+00 0.455884E+00 0.440179E+00 0.435741E+00 0.416060E+00 0.390547E+00 0.343567E+00 0.300422E+00 0.288920E+00 0.274323E+00 0.207560E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375928E+00 0.418832E+00 0.442106E+00 0.439277E+00 0.446398E+00 0.443811E+00 0.428802E+00 0.417495E+00 0.395586E+00 0.381423E+00 0.334022E+00 0.293171E+00 0.283294E+00 0.248439E+00 0.224857E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.365135E+00 0.397187E+00 0.433902E+00 0.434039E+00 0.435797E+00 0.427297E+00 0.419521E+00 0.402529E+00 0.378178E+00 0.371662E+00 0.326991E+00 0.289236E+00 0.280635E+00 0.273921E+00 0.266886E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.352742E+00 0.378107E+00 0.422618E+00 0.431893E+00 0.429543E+00 0.415658E+00 0.413198E+00 0.397219E+00 0.372735E+00 0.346874E+00 0.304006E+00 0.284501E+00 0.276815E+00 0.270281E+00 0.262862E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337736E+00 0.361837E+00 0.407285E+00 0.426318E+00 0.419996E+00 0.413889E+00 0.404098E+00 0.380467E+00 0.368504E+00 0.329073E+00 0.286845E+00 0.278474E+00 0.271521E+00 0.266318E+00 0.256640E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323755E+00 0.350555E+00 0.387100E+00 0.416269E+00 0.410284E+00 0.410498E+00 0.396561E+00 0.369395E+00 0.363151E+00 0.323839E+00 0.284246E+00 0.275081E+00 0.268482E+00 0.263648E+00 0.236686E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312500E+00 0.345139E+00 0.368482E+00 0.402474E+00 0.402185E+00 0.397226E+00 0.377091E+00 0.366047E+00 0.339739E+00 0.296456E+00 0.277793E+00 0.270798E+00 0.264815E+00 0.259712E+00 0.280326E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303042E+00 0.340775E+00 0.356287E+00 0.375552E+00 0.386749E+00 0.383311E+00 0.363416E+00 0.359759E+00 0.324971E+00 0.279938E+00 0.271225E+00 0.265529E+00 0.260092E+00 0.253429E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294672E+00 0.335961E+00 0.348845E+00 0.352451E+00 0.365834E+00 0.368184E+00 0.354431E+00 0.349039E+00 0.315958E+00 0.274207E+00 0.265940E+00 0.260039E+00 0.254439E+00 0.249901E+00 0.241797E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.283858E+00 0.321804E+00 0.337423E+00 0.342207E+00 0.345314E+00 0.337598E+00 0.340318E+00 0.320184E+00 0.277457E+00 0.263106E+00 0.257252E+00 0.251380E+00 0.246283E+00 0.242428E+00 0.234430E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272347E+00 0.290225E+00 0.329644E+00 0.336692E+00 0.335753E+00 0.321540E+00 0.322926E+00 0.301144E+00 0.259538E+00 0.253266E+00 0.247699E+00 0.242973E+00 0.238788E+00 0.235114E+00 0.217646E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.256180E+00 0.273349E+00 0.315955E+00 0.331291E+00 0.330521E+00 0.314871E+00 0.313989E+00 0.292341E+00 0.251825E+00 0.245235E+00 0.239452E+00 0.235267E+00 0.232229E+00 0.228568E+00 0.212753E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242118E+00 0.264384E+00 0.281865E+00 0.310094E+00 0.300839E+00 0.302619E+00 0.301996E+00 0.281336E+00 0.243717E+00 0.236410E+00 0.230618E+00 0.227784E+00 0.225040E+00 0.219840E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224346E+00 0.246635E+00 0.271091E+00 0.277572E+00 0.272935E+00 0.278644E+00 0.269044E+00 0.232400E+00 0.224628E+00 0.221174E+00 0.211567E+00 0.213344E+00 0.211497E+00 0.209028E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187081E+00 0.205615E+00 0.240620E+00 0.237937E+00 0.237713E+00 0.241899E+00 0.235616E+00 0.207615E+00 0.202522E+00 0.201122E+00 0.401838E-01 0.160526E+00 0.164171E+00 0.165359E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.109521E-02 0.651324E-01 0.651425E-01 0.624122E-01 0.602949E-01 0.605227E-01 0.632774E-01 0.775900E-01 0.874511E-01 0.511872E-01 -0.900000E+01 0.256747E-05 0.482923E-01 0.456134E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.459964E+00 0.497005E+00 0.517755E+00 0.523543E+00 0.512985E+00 0.504057E+00 0.476355E+00 0.470529E+00 0.445966E+00 0.419779E+00 0.408449E+00 0.344838E+00 0.283894E+00 0.253288E+00 0.229114E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.520210E+00 0.560101E+00 0.581252E+00 0.587466E+00 0.576242E+00 0.566819E+00 0.536920E+00 0.532917E+00 0.511886E+00 0.487598E+00 0.482383E+00 0.412050E+00 0.346611E+00 0.325815E+00 0.310088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.515227E+00 0.557024E+00 0.577496E+00 0.583303E+00 0.571361E+00 0.562742E+00 0.534517E+00 0.527758E+00 0.508444E+00 0.485013E+00 0.480703E+00 0.412024E+00 0.347959E+00 0.328497E+00 0.312725E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.509949E+00 0.552941E+00 0.573587E+00 0.579274E+00 0.567060E+00 0.564471E+00 0.549252E+00 0.526052E+00 0.506518E+00 0.482145E+00 0.477774E+00 0.412379E+00 0.350160E+00 0.332491E+00 0.316769E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.498841E+00 0.547687E+00 0.569555E+00 0.575062E+00 0.564752E+00 0.559062E+00 0.546171E+00 0.523857E+00 0.506742E+00 0.480335E+00 0.473733E+00 0.414591E+00 0.356803E+00 0.342384E+00 0.333230E+00 0.318912E+00 -0.900000E+01 -0.900000E+01 + 0.484153E+00 0.539018E+00 0.564449E+00 0.572533E+00 0.571384E+00 0.555170E+00 0.543767E+00 0.520766E+00 0.519765E+00 0.493020E+00 0.472525E+00 0.430007E+00 0.392188E+00 0.380586E+00 0.370836E+00 0.357932E+00 -0.900000E+01 -0.900000E+01 + 0.467853E+00 0.525435E+00 0.557876E+00 0.567738E+00 0.567096E+00 0.551497E+00 0.541008E+00 0.517334E+00 0.515888E+00 0.489764E+00 0.469261E+00 0.468482E+00 0.462809E+00 0.454614E+00 0.444100E+00 0.433093E+00 -0.900000E+01 -0.900000E+01 + 0.452406E+00 0.507621E+00 0.549356E+00 0.562926E+00 0.563077E+00 0.548326E+00 0.538579E+00 0.514592E+00 0.512146E+00 0.486130E+00 0.464350E+00 0.462347E+00 0.458531E+00 0.453156E+00 0.444543E+00 0.434678E+00 -0.900000E+01 -0.900000E+01 + 0.442798E+00 0.489544E+00 0.536561E+00 0.557343E+00 0.559186E+00 0.545780E+00 0.539216E+00 0.518067E+00 0.509088E+00 0.482276E+00 0.459301E+00 0.455844E+00 0.451585E+00 0.445176E+00 0.436631E+00 0.424503E+00 -0.900000E+01 -0.900000E+01 + 0.435913E+00 0.473490E+00 0.520540E+00 0.549834E+00 0.555449E+00 0.543713E+00 0.543754E+00 0.529754E+00 0.508254E+00 0.479756E+00 0.454397E+00 0.448657E+00 0.442023E+00 0.435248E+00 0.427415E+00 0.389913E+00 -0.900000E+01 -0.900000E+01 + 0.431093E+00 0.462888E+00 0.502892E+00 0.538518E+00 0.550666E+00 0.541597E+00 0.541180E+00 0.527737E+00 0.506637E+00 0.477199E+00 0.448462E+00 0.437243E+00 0.428532E+00 0.423141E+00 0.415113E+00 0.185518E+00 -0.900000E+01 -0.900000E+01 + 0.426703E+00 0.455437E+00 0.490071E+00 0.523787E+00 0.542976E+00 0.538032E+00 0.537851E+00 0.524921E+00 0.504986E+00 0.475059E+00 0.442747E+00 0.411461E+00 0.391623E+00 0.384697E+00 0.371851E+00 0.960184E-02 -0.900000E+01 -0.900000E+01 + 0.421169E+00 0.449518E+00 0.481069E+00 0.508567E+00 0.527562E+00 0.530898E+00 0.528864E+00 0.514483E+00 0.502517E+00 0.472864E+00 0.439163E+00 0.375377E+00 0.326672E+00 0.311964E+00 0.273766E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.412477E+00 0.444610E+00 0.473352E+00 0.494102E+00 0.506396E+00 0.518659E+00 0.513715E+00 0.496452E+00 0.494804E+00 0.466951E+00 0.433213E+00 0.369680E+00 0.321872E+00 0.305627E+00 0.202352E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402556E+00 0.440762E+00 0.465690E+00 0.482545E+00 0.492198E+00 0.502960E+00 0.500897E+00 0.485532E+00 0.482396E+00 0.455597E+00 0.422186E+00 0.361758E+00 0.317281E+00 0.301125E+00 0.201262E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390816E+00 0.438292E+00 0.457894E+00 0.469146E+00 0.479243E+00 0.485860E+00 0.479843E+00 0.471630E+00 0.460814E+00 0.433333E+00 0.393452E+00 0.338802E+00 0.309096E+00 0.295292E+00 0.201776E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.381286E+00 0.437130E+00 0.451079E+00 0.455756E+00 0.467485E+00 0.469573E+00 0.457207E+00 0.455276E+00 0.437260E+00 0.409947E+00 0.360081E+00 0.311683E+00 0.297787E+00 0.282498E+00 0.205069E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368825E+00 0.432427E+00 0.446286E+00 0.447330E+00 0.456979E+00 0.457544E+00 0.442923E+00 0.434830E+00 0.412998E+00 0.396717E+00 0.348013E+00 0.303176E+00 0.290780E+00 0.254871E+00 0.221724E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360120E+00 0.419821E+00 0.439862E+00 0.440755E+00 0.444700E+00 0.439288E+00 0.430529E+00 0.416639E+00 0.390293E+00 0.381424E+00 0.336363E+00 0.296864E+00 0.285265E+00 0.277393E+00 0.268682E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354820E+00 0.401832E+00 0.433229E+00 0.435312E+00 0.435116E+00 0.423243E+00 0.419296E+00 0.405573E+00 0.379872E+00 0.353613E+00 0.310051E+00 0.288089E+00 0.279155E+00 0.272718E+00 0.264538E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346938E+00 0.382130E+00 0.425100E+00 0.430041E+00 0.420830E+00 0.414821E+00 0.404480E+00 0.384031E+00 0.371757E+00 0.332389E+00 0.289753E+00 0.279336E+00 0.272604E+00 0.267855E+00 0.258568E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.335864E+00 0.367426E+00 0.410443E+00 0.426548E+00 0.410619E+00 0.407820E+00 0.394679E+00 0.368880E+00 0.364049E+00 0.325927E+00 0.285956E+00 0.275877E+00 0.269614E+00 0.264823E+00 0.240735E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326637E+00 0.358162E+00 0.390588E+00 0.417834E+00 0.407390E+00 0.398155E+00 0.374343E+00 0.364438E+00 0.339953E+00 0.297224E+00 0.278902E+00 0.271859E+00 0.266273E+00 0.261406E+00 0.363528E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.319383E+00 0.351700E+00 0.371358E+00 0.390061E+00 0.399799E+00 0.392996E+00 0.363393E+00 0.360295E+00 0.326949E+00 0.282826E+00 0.273438E+00 0.267494E+00 0.261564E+00 0.256167E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308302E+00 0.343913E+00 0.357588E+00 0.362733E+00 0.376794E+00 0.379344E+00 0.358107E+00 0.354459E+00 0.320801E+00 0.279623E+00 0.269842E+00 0.263149E+00 0.258182E+00 0.254462E+00 0.246118E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.297273E+00 0.333903E+00 0.342350E+00 0.345161E+00 0.344226E+00 0.339532E+00 0.344817E+00 0.326061E+00 0.283754E+00 0.267536E+00 0.260656E+00 0.255850E+00 0.250811E+00 0.245626E+00 0.237305E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.284931E+00 0.306175E+00 0.331454E+00 0.335437E+00 0.332888E+00 0.319063E+00 0.323883E+00 0.305859E+00 0.263306E+00 0.256098E+00 0.250953E+00 0.246212E+00 0.241356E+00 0.237757E+00 0.220876E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.264087E+00 0.278485E+00 0.313175E+00 0.327457E+00 0.328180E+00 0.312331E+00 0.313334E+00 0.293561E+00 0.255731E+00 0.248178E+00 0.242664E+00 0.238385E+00 0.235191E+00 0.232015E+00 0.306875E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.250902E+00 0.267469E+00 0.279266E+00 0.309974E+00 0.301596E+00 0.304418E+00 0.303909E+00 0.284426E+00 0.248234E+00 0.240210E+00 0.234991E+00 0.232241E+00 0.229520E+00 0.225300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232259E+00 0.243982E+00 0.267766E+00 0.273690E+00 0.275036E+00 0.282419E+00 0.272789E+00 0.237239E+00 0.228280E+00 0.223984E+00 0.216003E+00 0.217344E+00 0.214998E+00 0.212453E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190132E+00 0.203814E+00 0.242713E+00 0.241812E+00 0.239337E+00 0.241261E+00 0.236571E+00 0.209444E+00 0.204010E+00 0.203388E+00 0.513731E-01 0.160425E+00 0.165952E+00 0.168354E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107286E-02 0.917175E-01 0.919777E-01 0.906241E-01 0.891708E-01 0.888167E-01 0.899650E-01 0.937855E-01 0.103739E+00 0.581244E-01 -0.900000E+01 0.993261E-06 0.589937E-01 0.597413E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445054E+00 0.483104E+00 0.507007E+00 0.515878E+00 0.504431E+00 0.496460E+00 0.473821E+00 0.471341E+00 0.450730E+00 0.421830E+00 0.409293E+00 0.346556E+00 0.285786E+00 0.254547E+00 0.228152E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.503667E+00 0.548659E+00 0.572753E+00 0.582190E+00 0.569721E+00 0.561341E+00 0.537352E+00 0.537982E+00 0.522299E+00 0.492341E+00 0.487080E+00 0.415087E+00 0.349015E+00 0.327419E+00 0.310837E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.495039E+00 0.545505E+00 0.568778E+00 0.577351E+00 0.564007E+00 0.555965E+00 0.532964E+00 0.531453E+00 0.518894E+00 0.491504E+00 0.487036E+00 0.416064E+00 0.350674E+00 0.330494E+00 0.315174E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.483951E+00 0.540519E+00 0.564295E+00 0.572807E+00 0.558870E+00 0.556878E+00 0.547333E+00 0.529155E+00 0.517268E+00 0.491198E+00 0.486984E+00 0.417886E+00 0.353406E+00 0.335673E+00 0.321150E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470959E+00 0.532647E+00 0.559222E+00 0.568191E+00 0.556086E+00 0.551843E+00 0.543958E+00 0.526817E+00 0.517262E+00 0.493253E+00 0.486392E+00 0.422070E+00 0.361272E+00 0.347351E+00 0.339142E+00 0.325308E+00 -0.900000E+01 -0.900000E+01 + 0.456264E+00 0.520980E+00 0.552382E+00 0.565064E+00 0.563137E+00 0.548379E+00 0.541482E+00 0.524148E+00 0.528817E+00 0.509730E+00 0.488486E+00 0.440749E+00 0.400999E+00 0.391341E+00 0.383783E+00 0.371469E+00 -0.900000E+01 -0.900000E+01 + 0.442595E+00 0.505958E+00 0.544323E+00 0.560376E+00 0.559066E+00 0.545363E+00 0.539096E+00 0.521516E+00 0.525218E+00 0.506834E+00 0.486777E+00 0.487409E+00 0.483648E+00 0.477054E+00 0.467772E+00 0.453891E+00 -0.900000E+01 -0.900000E+01 + 0.433612E+00 0.491013E+00 0.534537E+00 0.555553E+00 0.555359E+00 0.542645E+00 0.537415E+00 0.519076E+00 0.521424E+00 0.503038E+00 0.482714E+00 0.482673E+00 0.479059E+00 0.473334E+00 0.465380E+00 0.453349E+00 -0.900000E+01 -0.900000E+01 + 0.428183E+00 0.477906E+00 0.523095E+00 0.550896E+00 0.552440E+00 0.540427E+00 0.538763E+00 0.521778E+00 0.517846E+00 0.499263E+00 0.477916E+00 0.475566E+00 0.470125E+00 0.463727E+00 0.454839E+00 0.440045E+00 -0.900000E+01 -0.900000E+01 + 0.423756E+00 0.471098E+00 0.512966E+00 0.546156E+00 0.550524E+00 0.539292E+00 0.544179E+00 0.533620E+00 0.516221E+00 0.495871E+00 0.472508E+00 0.466727E+00 0.459206E+00 0.452344E+00 0.442790E+00 0.406319E+00 -0.900000E+01 -0.900000E+01 + 0.420106E+00 0.465285E+00 0.505330E+00 0.540873E+00 0.548512E+00 0.538667E+00 0.542557E+00 0.531776E+00 0.513625E+00 0.491391E+00 0.465570E+00 0.455005E+00 0.446009E+00 0.439405E+00 0.429307E+00 0.184801E+00 -0.900000E+01 -0.900000E+01 + 0.416854E+00 0.459563E+00 0.498600E+00 0.533723E+00 0.545566E+00 0.538475E+00 0.541180E+00 0.529663E+00 0.511400E+00 0.486124E+00 0.457794E+00 0.428202E+00 0.407179E+00 0.399115E+00 0.387225E+00 0.139074E-01 -0.900000E+01 -0.900000E+01 + 0.412456E+00 0.455073E+00 0.492467E+00 0.525319E+00 0.537177E+00 0.538203E+00 0.536750E+00 0.521518E+00 0.509262E+00 0.481350E+00 0.450892E+00 0.388413E+00 0.336545E+00 0.319659E+00 0.283251E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.405848E+00 0.450778E+00 0.486705E+00 0.516482E+00 0.523136E+00 0.533694E+00 0.529116E+00 0.508395E+00 0.506027E+00 0.476280E+00 0.442363E+00 0.379054E+00 0.329373E+00 0.311277E+00 0.203061E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395052E+00 0.446370E+00 0.480035E+00 0.509073E+00 0.515469E+00 0.525890E+00 0.523359E+00 0.505771E+00 0.501233E+00 0.471013E+00 0.433963E+00 0.372062E+00 0.325667E+00 0.307105E+00 0.202219E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.379391E+00 0.440917E+00 0.472350E+00 0.497317E+00 0.506711E+00 0.512488E+00 0.506787E+00 0.497863E+00 0.483938E+00 0.452246E+00 0.406475E+00 0.350584E+00 0.318436E+00 0.301171E+00 0.202260E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.363460E+00 0.436648E+00 0.465927E+00 0.484325E+00 0.497177E+00 0.498851E+00 0.486636E+00 0.484716E+00 0.462299E+00 0.431107E+00 0.374929E+00 0.323458E+00 0.305634E+00 0.288760E+00 0.206232E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.352231E+00 0.434103E+00 0.460252E+00 0.476506E+00 0.488303E+00 0.488080E+00 0.474445E+00 0.462142E+00 0.437197E+00 0.418261E+00 0.364664E+00 0.315676E+00 0.298528E+00 0.262229E+00 0.222680E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.348666E+00 0.430343E+00 0.451186E+00 0.466788E+00 0.474850E+00 0.467638E+00 0.459093E+00 0.440343E+00 0.411961E+00 0.402329E+00 0.353350E+00 0.308860E+00 0.294903E+00 0.286748E+00 0.277738E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.348021E+00 0.419712E+00 0.443038E+00 0.455798E+00 0.460192E+00 0.446055E+00 0.442739E+00 0.426435E+00 0.398890E+00 0.370295E+00 0.323531E+00 0.298687E+00 0.289550E+00 0.281567E+00 0.271294E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346674E+00 0.403392E+00 0.437675E+00 0.445067E+00 0.439985E+00 0.431790E+00 0.422062E+00 0.400383E+00 0.385641E+00 0.345266E+00 0.299677E+00 0.288212E+00 0.280904E+00 0.273676E+00 0.262930E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339512E+00 0.387062E+00 0.429981E+00 0.436738E+00 0.423244E+00 0.419529E+00 0.405522E+00 0.379650E+00 0.371259E+00 0.333853E+00 0.293231E+00 0.282194E+00 0.275489E+00 0.269222E+00 0.243116E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331318E+00 0.374627E+00 0.416169E+00 0.428549E+00 0.415117E+00 0.404986E+00 0.380546E+00 0.369384E+00 0.343859E+00 0.301625E+00 0.283023E+00 0.276391E+00 0.270735E+00 0.264828E+00 0.475391E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322899E+00 0.364537E+00 0.394301E+00 0.406215E+00 0.407128E+00 0.396415E+00 0.365923E+00 0.361805E+00 0.329495E+00 0.285344E+00 0.276028E+00 0.270863E+00 0.264999E+00 0.258700E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312916E+00 0.355574E+00 0.372718E+00 0.378869E+00 0.389048E+00 0.384661E+00 0.359052E+00 0.353873E+00 0.324025E+00 0.282699E+00 0.272695E+00 0.266528E+00 0.261166E+00 0.256968E+00 0.250311E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303573E+00 0.343491E+00 0.351619E+00 0.351172E+00 0.349396E+00 0.341336E+00 0.342607E+00 0.325674E+00 0.286478E+00 0.270573E+00 0.264034E+00 0.259970E+00 0.255124E+00 0.251055E+00 0.243539E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.283933E+00 0.320545E+00 0.336775E+00 0.337563E+00 0.333994E+00 0.316887E+00 0.320024E+00 0.304927E+00 0.265097E+00 0.258418E+00 0.254234E+00 0.250580E+00 0.245459E+00 0.241640E+00 0.224296E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269421E+00 0.284166E+00 0.309476E+00 0.325954E+00 0.327189E+00 0.311432E+00 0.310658E+00 0.292090E+00 0.256709E+00 0.250454E+00 0.245206E+00 0.241364E+00 0.237997E+00 0.235298E+00 0.381537E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.258164E+00 0.269213E+00 0.277391E+00 0.305251E+00 0.301450E+00 0.304679E+00 0.303335E+00 0.285235E+00 0.250968E+00 0.243564E+00 0.237860E+00 0.234970E+00 0.232853E+00 0.229640E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235789E+00 0.245198E+00 0.267287E+00 0.269480E+00 0.270496E+00 0.280909E+00 0.272705E+00 0.241193E+00 0.233208E+00 0.227836E+00 0.219750E+00 0.221232E+00 0.219550E+00 0.217857E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188076E+00 0.207168E+00 0.240000E+00 0.238917E+00 0.241720E+00 0.242839E+00 0.238225E+00 0.213658E+00 0.208991E+00 0.207254E+00 0.676208E-01 0.166715E+00 0.171807E+00 0.175197E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.987290E-03 0.103376E+00 0.112117E+00 0.116474E+00 0.118650E+00 0.120745E+00 0.122164E+00 0.115024E+00 0.119859E+00 0.654675E-01 -0.900000E+01 0.129266E-04 0.810136E-01 0.765666E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421048E+00 0.467748E+00 0.492117E+00 0.503865E+00 0.491717E+00 0.484470E+00 0.466350E+00 0.468819E+00 0.452082E+00 0.422348E+00 0.408428E+00 0.346288E+00 0.287113E+00 0.256072E+00 0.230909E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.474854E+00 0.535490E+00 0.561121E+00 0.574507E+00 0.559999E+00 0.551604E+00 0.533036E+00 0.541480E+00 0.530197E+00 0.495564E+00 0.489960E+00 0.418247E+00 0.351596E+00 0.329481E+00 0.314464E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.465698E+00 0.530553E+00 0.557463E+00 0.570209E+00 0.555357E+00 0.547878E+00 0.529470E+00 0.535876E+00 0.528794E+00 0.495569E+00 0.490329E+00 0.419371E+00 0.353207E+00 0.332341E+00 0.318314E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454868E+00 0.523315E+00 0.552956E+00 0.565813E+00 0.551056E+00 0.550988E+00 0.543965E+00 0.535422E+00 0.529438E+00 0.496107E+00 0.490596E+00 0.421605E+00 0.356169E+00 0.337467E+00 0.324468E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443041E+00 0.513543E+00 0.547330E+00 0.561667E+00 0.550006E+00 0.547289E+00 0.542368E+00 0.535827E+00 0.531811E+00 0.500854E+00 0.490634E+00 0.426052E+00 0.363832E+00 0.349311E+00 0.342262E+00 0.329607E+00 -0.900000E+01 -0.900000E+01 + 0.430361E+00 0.502777E+00 0.540795E+00 0.558681E+00 0.558665E+00 0.545839E+00 0.541879E+00 0.535796E+00 0.546549E+00 0.525080E+00 0.495602E+00 0.444557E+00 0.403405E+00 0.393944E+00 0.388859E+00 0.379827E+00 -0.900000E+01 -0.900000E+01 + 0.422034E+00 0.491160E+00 0.534476E+00 0.555206E+00 0.555559E+00 0.543972E+00 0.541932E+00 0.535133E+00 0.544000E+00 0.524241E+00 0.495788E+00 0.492655E+00 0.489638E+00 0.485271E+00 0.480290E+00 0.471055E+00 -0.900000E+01 -0.900000E+01 + 0.417531E+00 0.483168E+00 0.528683E+00 0.552466E+00 0.553121E+00 0.542335E+00 0.542563E+00 0.533689E+00 0.540384E+00 0.521129E+00 0.493996E+00 0.491602E+00 0.489668E+00 0.487035E+00 0.483388E+00 0.474476E+00 -0.900000E+01 -0.900000E+01 + 0.413659E+00 0.477935E+00 0.523378E+00 0.550340E+00 0.550848E+00 0.541127E+00 0.544952E+00 0.536235E+00 0.537067E+00 0.517577E+00 0.491752E+00 0.489091E+00 0.486178E+00 0.482898E+00 0.475990E+00 0.462854E+00 -0.900000E+01 -0.900000E+01 + 0.410020E+00 0.473557E+00 0.517947E+00 0.548271E+00 0.549735E+00 0.540525E+00 0.550829E+00 0.547257E+00 0.535646E+00 0.515222E+00 0.489189E+00 0.483423E+00 0.477973E+00 0.472452E+00 0.463833E+00 0.426796E+00 -0.900000E+01 -0.900000E+01 + 0.406573E+00 0.469727E+00 0.512522E+00 0.546507E+00 0.548943E+00 0.540423E+00 0.548835E+00 0.544818E+00 0.533328E+00 0.511845E+00 0.484460E+00 0.473342E+00 0.464373E+00 0.459522E+00 0.451625E+00 0.191342E+00 -0.900000E+01 -0.900000E+01 + 0.402604E+00 0.465639E+00 0.506713E+00 0.544053E+00 0.548806E+00 0.540262E+00 0.546417E+00 0.541492E+00 0.530212E+00 0.507345E+00 0.477684E+00 0.447699E+00 0.427218E+00 0.418802E+00 0.406505E+00 0.211899E-01 -0.900000E+01 -0.900000E+01 + 0.397221E+00 0.462204E+00 0.501255E+00 0.540320E+00 0.544393E+00 0.540483E+00 0.540776E+00 0.531504E+00 0.525697E+00 0.501614E+00 0.470963E+00 0.406444E+00 0.347565E+00 0.327008E+00 0.292144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389016E+00 0.457632E+00 0.495383E+00 0.535357E+00 0.535658E+00 0.541932E+00 0.533473E+00 0.516102E+00 0.518087E+00 0.493605E+00 0.461551E+00 0.396255E+00 0.340328E+00 0.318165E+00 0.204604E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.376557E+00 0.453078E+00 0.488070E+00 0.529555E+00 0.532220E+00 0.539944E+00 0.532530E+00 0.513354E+00 0.511668E+00 0.486449E+00 0.452028E+00 0.388389E+00 0.336960E+00 0.315218E+00 0.203970E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359589E+00 0.448010E+00 0.480789E+00 0.518503E+00 0.527151E+00 0.531462E+00 0.520667E+00 0.510311E+00 0.496585E+00 0.468300E+00 0.424527E+00 0.365833E+00 0.329991E+00 0.310989E+00 0.204312E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341664E+00 0.442616E+00 0.474134E+00 0.504071E+00 0.520133E+00 0.521425E+00 0.504934E+00 0.503039E+00 0.478100E+00 0.446669E+00 0.389689E+00 0.334614E+00 0.316150E+00 0.296759E+00 0.207744E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332298E+00 0.435993E+00 0.466501E+00 0.493820E+00 0.511144E+00 0.511983E+00 0.495834E+00 0.484287E+00 0.456252E+00 0.435161E+00 0.380253E+00 0.328515E+00 0.309653E+00 0.270874E+00 0.222916E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.328190E+00 0.429787E+00 0.454983E+00 0.482584E+00 0.495518E+00 0.489737E+00 0.482437E+00 0.463245E+00 0.432368E+00 0.419954E+00 0.368762E+00 0.321737E+00 0.304912E+00 0.294199E+00 0.284231E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327316E+00 0.425542E+00 0.445233E+00 0.470081E+00 0.480184E+00 0.467893E+00 0.466398E+00 0.449315E+00 0.421071E+00 0.388167E+00 0.338909E+00 0.310578E+00 0.298541E+00 0.289819E+00 0.279950E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329803E+00 0.416309E+00 0.441948E+00 0.455502E+00 0.457734E+00 0.453747E+00 0.443919E+00 0.421945E+00 0.407978E+00 0.362273E+00 0.313177E+00 0.298344E+00 0.289851E+00 0.282214E+00 0.269832E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331889E+00 0.401216E+00 0.436481E+00 0.444664E+00 0.439094E+00 0.440843E+00 0.426446E+00 0.400288E+00 0.391705E+00 0.350157E+00 0.305435E+00 0.292432E+00 0.284548E+00 0.276748E+00 0.249585E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.328969E+00 0.387824E+00 0.427617E+00 0.435709E+00 0.427087E+00 0.419969E+00 0.396397E+00 0.385358E+00 0.358237E+00 0.313573E+00 0.293101E+00 0.284638E+00 0.276779E+00 0.269603E+00 0.637911E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320384E+00 0.371218E+00 0.411491E+00 0.415611E+00 0.415676E+00 0.404956E+00 0.375321E+00 0.369328E+00 0.335063E+00 0.291434E+00 0.281644E+00 0.274902E+00 0.268873E+00 0.262838E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310590E+00 0.357863E+00 0.390774E+00 0.393712E+00 0.399669E+00 0.391686E+00 0.365426E+00 0.357783E+00 0.326829E+00 0.286606E+00 0.277410E+00 0.270461E+00 0.265419E+00 0.260393E+00 0.252248E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296138E+00 0.344662E+00 0.360891E+00 0.367534E+00 0.368297E+00 0.350986E+00 0.347267E+00 0.327742E+00 0.288908E+00 0.274254E+00 0.268295E+00 0.263786E+00 0.260177E+00 0.256291E+00 0.249919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276296E+00 0.321368E+00 0.341795E+00 0.344912E+00 0.338891E+00 0.318900E+00 0.319895E+00 0.304098E+00 0.265397E+00 0.260590E+00 0.257452E+00 0.254462E+00 0.251180E+00 0.247673E+00 0.231883E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268751E+00 0.287560E+00 0.310488E+00 0.326539E+00 0.325361E+00 0.310875E+00 0.309727E+00 0.292144E+00 0.257787E+00 0.253229E+00 0.249626E+00 0.246380E+00 0.242274E+00 0.239439E+00 0.505025E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257157E+00 0.271931E+00 0.281187E+00 0.299977E+00 0.296657E+00 0.301256E+00 0.303062E+00 0.287636E+00 0.253700E+00 0.247796E+00 0.243119E+00 0.240195E+00 0.237328E+00 0.234493E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235089E+00 0.249310E+00 0.271123E+00 0.270856E+00 0.263783E+00 0.276646E+00 0.272814E+00 0.243844E+00 0.237600E+00 0.233294E+00 0.224697E+00 0.225467E+00 0.224103E+00 0.222732E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185064E+00 0.211840E+00 0.247251E+00 0.241986E+00 0.247031E+00 0.249493E+00 0.244582E+00 0.220462E+00 0.217419E+00 0.214670E+00 0.861089E-01 0.178342E+00 0.181091E+00 0.183715E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.677798E-03 0.101936E+00 0.116700E+00 0.127473E+00 0.136852E+00 0.143153E+00 0.144652E+00 0.131953E+00 0.132733E+00 0.747561E-01 -0.900000E+01 0.355089E-03 0.103260E+00 0.809344E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.396616E+00 0.452521E+00 0.483688E+00 0.495070E+00 0.486631E+00 0.480151E+00 0.463751E+00 0.470894E+00 0.453918E+00 0.423259E+00 0.408462E+00 0.347136E+00 0.287034E+00 0.256038E+00 0.233311E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.442073E+00 0.518407E+00 0.554258E+00 0.568629E+00 0.558190E+00 0.548843E+00 0.533205E+00 0.549586E+00 0.535775E+00 0.499374E+00 0.493441E+00 0.422774E+00 0.354340E+00 0.332028E+00 0.317969E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432380E+00 0.511809E+00 0.551238E+00 0.565947E+00 0.555456E+00 0.547355E+00 0.532333E+00 0.546911E+00 0.535913E+00 0.499697E+00 0.493822E+00 0.424552E+00 0.355939E+00 0.335086E+00 0.321977E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421354E+00 0.504093E+00 0.547375E+00 0.563050E+00 0.551831E+00 0.551811E+00 0.549214E+00 0.548805E+00 0.538074E+00 0.501065E+00 0.494026E+00 0.426768E+00 0.358871E+00 0.340201E+00 0.328197E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.409004E+00 0.495340E+00 0.542622E+00 0.559969E+00 0.550789E+00 0.549429E+00 0.549548E+00 0.550960E+00 0.544051E+00 0.506345E+00 0.493436E+00 0.430653E+00 0.366775E+00 0.351999E+00 0.344706E+00 0.331767E+00 -0.900000E+01 -0.900000E+01 + 0.399634E+00 0.487467E+00 0.537469E+00 0.558717E+00 0.560125E+00 0.548727E+00 0.550269E+00 0.552091E+00 0.563518E+00 0.533143E+00 0.498999E+00 0.449151E+00 0.407844E+00 0.397730E+00 0.391795E+00 0.382200E+00 -0.900000E+01 -0.900000E+01 + 0.395493E+00 0.481899E+00 0.532294E+00 0.556033E+00 0.556910E+00 0.547360E+00 0.550793E+00 0.551999E+00 0.562226E+00 0.533473E+00 0.499921E+00 0.497154E+00 0.494088E+00 0.488782E+00 0.483515E+00 0.474814E+00 -0.900000E+01 -0.900000E+01 + 0.391569E+00 0.476625E+00 0.527154E+00 0.553653E+00 0.553547E+00 0.546563E+00 0.551146E+00 0.550582E+00 0.558825E+00 0.532104E+00 0.499197E+00 0.496124E+00 0.494050E+00 0.490408E+00 0.487181E+00 0.480779E+00 -0.900000E+01 -0.900000E+01 + 0.387797E+00 0.472231E+00 0.522299E+00 0.551069E+00 0.551038E+00 0.545391E+00 0.552608E+00 0.553029E+00 0.555303E+00 0.530378E+00 0.498169E+00 0.493096E+00 0.489417E+00 0.486081E+00 0.482893E+00 0.471325E+00 -0.900000E+01 -0.900000E+01 + 0.384618E+00 0.468294E+00 0.516670E+00 0.547655E+00 0.548898E+00 0.543675E+00 0.556986E+00 0.563351E+00 0.554832E+00 0.529730E+00 0.497424E+00 0.488660E+00 0.482124E+00 0.478865E+00 0.472682E+00 0.442218E+00 -0.900000E+01 -0.900000E+01 + 0.381076E+00 0.465208E+00 0.510998E+00 0.545408E+00 0.547345E+00 0.541824E+00 0.553969E+00 0.559919E+00 0.552578E+00 0.527659E+00 0.494979E+00 0.481194E+00 0.471666E+00 0.467647E+00 0.462650E+00 0.200708E+00 -0.900000E+01 -0.900000E+01 + 0.376553E+00 0.462537E+00 0.504875E+00 0.543147E+00 0.545744E+00 0.540217E+00 0.550570E+00 0.555780E+00 0.548957E+00 0.524498E+00 0.490945E+00 0.458698E+00 0.436600E+00 0.429384E+00 0.420340E+00 0.303205E-01 -0.900000E+01 -0.900000E+01 + 0.370346E+00 0.458998E+00 0.498227E+00 0.540713E+00 0.539937E+00 0.538984E+00 0.544070E+00 0.545314E+00 0.544262E+00 0.519893E+00 0.486272E+00 0.418539E+00 0.355052E+00 0.333360E+00 0.301553E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361324E+00 0.454662E+00 0.491885E+00 0.536936E+00 0.530738E+00 0.536587E+00 0.534154E+00 0.527524E+00 0.535764E+00 0.512451E+00 0.478713E+00 0.411913E+00 0.349672E+00 0.324315E+00 0.207813E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349206E+00 0.451455E+00 0.485428E+00 0.533990E+00 0.530175E+00 0.533545E+00 0.530407E+00 0.521721E+00 0.528944E+00 0.506259E+00 0.472619E+00 0.405551E+00 0.346441E+00 0.320383E+00 0.207988E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331899E+00 0.446532E+00 0.478857E+00 0.524958E+00 0.529535E+00 0.528164E+00 0.518124E+00 0.516766E+00 0.513068E+00 0.489033E+00 0.443979E+00 0.380603E+00 0.338531E+00 0.315703E+00 0.208934E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313505E+00 0.441657E+00 0.472097E+00 0.512079E+00 0.527117E+00 0.524381E+00 0.503183E+00 0.506657E+00 0.489983E+00 0.465585E+00 0.406789E+00 0.345568E+00 0.323453E+00 0.301980E+00 0.212632E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306114E+00 0.436436E+00 0.464893E+00 0.503454E+00 0.520123E+00 0.519694E+00 0.499296E+00 0.488806E+00 0.464806E+00 0.450603E+00 0.394601E+00 0.338241E+00 0.317539E+00 0.278141E+00 0.227238E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.300428E+00 0.430786E+00 0.453626E+00 0.489319E+00 0.507467E+00 0.501998E+00 0.495771E+00 0.473311E+00 0.441734E+00 0.432461E+00 0.382974E+00 0.333022E+00 0.313960E+00 0.301794E+00 0.292031E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296879E+00 0.425287E+00 0.444465E+00 0.473016E+00 0.495415E+00 0.484864E+00 0.486121E+00 0.465404E+00 0.433719E+00 0.401310E+00 0.350793E+00 0.321825E+00 0.307339E+00 0.297264E+00 0.288088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296520E+00 0.413282E+00 0.439829E+00 0.458500E+00 0.473485E+00 0.474328E+00 0.466460E+00 0.439737E+00 0.424075E+00 0.376696E+00 0.325571E+00 0.309053E+00 0.298181E+00 0.290612E+00 0.278524E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296377E+00 0.400628E+00 0.434911E+00 0.447909E+00 0.453374E+00 0.462300E+00 0.449817E+00 0.420245E+00 0.411485E+00 0.366287E+00 0.319390E+00 0.303810E+00 0.293492E+00 0.286537E+00 0.260684E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294071E+00 0.387667E+00 0.427097E+00 0.438712E+00 0.437387E+00 0.438953E+00 0.417253E+00 0.406773E+00 0.377107E+00 0.328767E+00 0.305540E+00 0.295350E+00 0.287578E+00 0.281461E+00 0.870356E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.288017E+00 0.367442E+00 0.412503E+00 0.418804E+00 0.422570E+00 0.414740E+00 0.389635E+00 0.385551E+00 0.349340E+00 0.302285E+00 0.291820E+00 0.285135E+00 0.278442E+00 0.272370E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280564E+00 0.353488E+00 0.395427E+00 0.401062E+00 0.406462E+00 0.397209E+00 0.371679E+00 0.364939E+00 0.332817E+00 0.293301E+00 0.284513E+00 0.277911E+00 0.271722E+00 0.266801E+00 0.255786E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268516E+00 0.338390E+00 0.363040E+00 0.378835E+00 0.379046E+00 0.359455E+00 0.355978E+00 0.334883E+00 0.295644E+00 0.280792E+00 0.274275E+00 0.269938E+00 0.266110E+00 0.263172E+00 0.257812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257175E+00 0.315252E+00 0.342645E+00 0.350574E+00 0.347667E+00 0.329331E+00 0.330347E+00 0.310474E+00 0.271456E+00 0.266170E+00 0.263490E+00 0.261211E+00 0.258473E+00 0.257189E+00 0.242683E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.258488E+00 0.284646E+00 0.311034E+00 0.327341E+00 0.327076E+00 0.312697E+00 0.311480E+00 0.293844E+00 0.261163E+00 0.258363E+00 0.256100E+00 0.253409E+00 0.249879E+00 0.247136E+00 0.626322E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.248255E+00 0.274922E+00 0.283956E+00 0.298534E+00 0.296003E+00 0.300497E+00 0.304062E+00 0.289495E+00 0.256966E+00 0.251770E+00 0.248457E+00 0.245074E+00 0.242218E+00 0.239747E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229687E+00 0.256149E+00 0.274180E+00 0.273463E+00 0.266468E+00 0.275283E+00 0.274471E+00 0.246514E+00 0.240855E+00 0.237622E+00 0.230847E+00 0.231872E+00 0.230779E+00 0.229428E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176320E+00 0.217335E+00 0.253745E+00 0.249726E+00 0.254740E+00 0.258011E+00 0.252496E+00 0.227002E+00 0.225270E+00 0.222743E+00 0.947839E-01 0.190746E+00 0.196996E+00 0.199700E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491061E-03 0.127696E+00 0.144705E+00 0.154288E+00 0.161281E+00 0.166875E+00 0.168195E+00 0.156996E+00 0.158876E+00 0.899565E-01 -0.900000E+01 0.383658E-03 0.113932E+00 0.899245E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.370536E+00 0.432851E+00 0.477324E+00 0.491150E+00 0.489247E+00 0.484372E+00 0.466670E+00 0.474144E+00 0.456015E+00 0.424922E+00 0.410948E+00 0.349256E+00 0.287110E+00 0.254908E+00 0.234793E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406219E+00 0.496602E+00 0.548517E+00 0.567011E+00 0.562750E+00 0.554989E+00 0.539941E+00 0.558738E+00 0.540390E+00 0.505605E+00 0.499948E+00 0.429324E+00 0.357233E+00 0.334079E+00 0.321459E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.396367E+00 0.490836E+00 0.545354E+00 0.565790E+00 0.560956E+00 0.553988E+00 0.540756E+00 0.558201E+00 0.541594E+00 0.506800E+00 0.501915E+00 0.431323E+00 0.359161E+00 0.337053E+00 0.325211E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384651E+00 0.485323E+00 0.541041E+00 0.564254E+00 0.557203E+00 0.558249E+00 0.557488E+00 0.561518E+00 0.544707E+00 0.508940E+00 0.502658E+00 0.433304E+00 0.362073E+00 0.342542E+00 0.332124E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372017E+00 0.480319E+00 0.535837E+00 0.561879E+00 0.555986E+00 0.555763E+00 0.558339E+00 0.564556E+00 0.551018E+00 0.514244E+00 0.501865E+00 0.437005E+00 0.369814E+00 0.354634E+00 0.348068E+00 0.335997E+00 -0.900000E+01 -0.900000E+01 + 0.368249E+00 0.475696E+00 0.529976E+00 0.561066E+00 0.564613E+00 0.555275E+00 0.560002E+00 0.565806E+00 0.574983E+00 0.541013E+00 0.507143E+00 0.456954E+00 0.412525E+00 0.401957E+00 0.396647E+00 0.387885E+00 -0.900000E+01 -0.900000E+01 + 0.364598E+00 0.470966E+00 0.523669E+00 0.558150E+00 0.562014E+00 0.554793E+00 0.560904E+00 0.566417E+00 0.575003E+00 0.541767E+00 0.508233E+00 0.504997E+00 0.501606E+00 0.496565E+00 0.491139E+00 0.483298E+00 -0.900000E+01 -0.900000E+01 + 0.361068E+00 0.467050E+00 0.517715E+00 0.555097E+00 0.559936E+00 0.553792E+00 0.561837E+00 0.565627E+00 0.572999E+00 0.540399E+00 0.506595E+00 0.503971E+00 0.503550E+00 0.501995E+00 0.498182E+00 0.489162E+00 -0.900000E+01 -0.900000E+01 + 0.357514E+00 0.463702E+00 0.511749E+00 0.552082E+00 0.557871E+00 0.552768E+00 0.563703E+00 0.568355E+00 0.570523E+00 0.538614E+00 0.504616E+00 0.500251E+00 0.498223E+00 0.494507E+00 0.489155E+00 0.475908E+00 -0.900000E+01 -0.900000E+01 + 0.353298E+00 0.460355E+00 0.505588E+00 0.547268E+00 0.555219E+00 0.551135E+00 0.567645E+00 0.579581E+00 0.569874E+00 0.538096E+00 0.503008E+00 0.495161E+00 0.488709E+00 0.482824E+00 0.475571E+00 0.446390E+00 -0.900000E+01 -0.900000E+01 + 0.348730E+00 0.456461E+00 0.499181E+00 0.544201E+00 0.552789E+00 0.549011E+00 0.564462E+00 0.576394E+00 0.568002E+00 0.537070E+00 0.500903E+00 0.487387E+00 0.476576E+00 0.471631E+00 0.468142E+00 0.212362E+00 -0.900000E+01 -0.900000E+01 + 0.342884E+00 0.453063E+00 0.492816E+00 0.540374E+00 0.550181E+00 0.546810E+00 0.560348E+00 0.571423E+00 0.565297E+00 0.535782E+00 0.498825E+00 0.464142E+00 0.441666E+00 0.434492E+00 0.425571E+00 0.386002E-01 -0.900000E+01 -0.900000E+01 + 0.336186E+00 0.449856E+00 0.486463E+00 0.535760E+00 0.542830E+00 0.544163E+00 0.552435E+00 0.560420E+00 0.562290E+00 0.533902E+00 0.497154E+00 0.425023E+00 0.359198E+00 0.338122E+00 0.309560E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327289E+00 0.446607E+00 0.480783E+00 0.531641E+00 0.532505E+00 0.541234E+00 0.542986E+00 0.543960E+00 0.555032E+00 0.528325E+00 0.491783E+00 0.420163E+00 0.354635E+00 0.329185E+00 0.212070E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314685E+00 0.443230E+00 0.474736E+00 0.528648E+00 0.531658E+00 0.538885E+00 0.539384E+00 0.536255E+00 0.547268E+00 0.521522E+00 0.484776E+00 0.414560E+00 0.351756E+00 0.324577E+00 0.212501E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296960E+00 0.438851E+00 0.469086E+00 0.519406E+00 0.530006E+00 0.532469E+00 0.524819E+00 0.523992E+00 0.524849E+00 0.500480E+00 0.454852E+00 0.388560E+00 0.343532E+00 0.319394E+00 0.213668E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280911E+00 0.434518E+00 0.463972E+00 0.506736E+00 0.525642E+00 0.523318E+00 0.506508E+00 0.508594E+00 0.496042E+00 0.474418E+00 0.416262E+00 0.351673E+00 0.328209E+00 0.305986E+00 0.216301E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276002E+00 0.430422E+00 0.458592E+00 0.497896E+00 0.519275E+00 0.516777E+00 0.498665E+00 0.488928E+00 0.469737E+00 0.460534E+00 0.404162E+00 0.344588E+00 0.322044E+00 0.282922E+00 0.230097E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272221E+00 0.425223E+00 0.450332E+00 0.482612E+00 0.507580E+00 0.499144E+00 0.492618E+00 0.472988E+00 0.445013E+00 0.442140E+00 0.390629E+00 0.337753E+00 0.318280E+00 0.305658E+00 0.295371E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270214E+00 0.418700E+00 0.442254E+00 0.466866E+00 0.495960E+00 0.485116E+00 0.485530E+00 0.464977E+00 0.436240E+00 0.407266E+00 0.356410E+00 0.326404E+00 0.313125E+00 0.303871E+00 0.293965E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269681E+00 0.405373E+00 0.438943E+00 0.454212E+00 0.473227E+00 0.478133E+00 0.470300E+00 0.442285E+00 0.428604E+00 0.382696E+00 0.330449E+00 0.315298E+00 0.305278E+00 0.297402E+00 0.285005E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268245E+00 0.389176E+00 0.432119E+00 0.444529E+00 0.452400E+00 0.466655E+00 0.456536E+00 0.426091E+00 0.418923E+00 0.375049E+00 0.327308E+00 0.311413E+00 0.301092E+00 0.293866E+00 0.269461E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.262860E+00 0.373561E+00 0.420840E+00 0.435417E+00 0.435741E+00 0.442326E+00 0.422365E+00 0.413817E+00 0.386966E+00 0.339383E+00 0.314987E+00 0.303641E+00 0.295846E+00 0.289971E+00 0.969969E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.254960E+00 0.353236E+00 0.402585E+00 0.414813E+00 0.420109E+00 0.415796E+00 0.393379E+00 0.394206E+00 0.358763E+00 0.311851E+00 0.300106E+00 0.293143E+00 0.287581E+00 0.283202E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.247496E+00 0.345697E+00 0.385660E+00 0.396263E+00 0.404196E+00 0.397685E+00 0.374485E+00 0.369002E+00 0.339166E+00 0.299117E+00 0.290824E+00 0.285659E+00 0.280761E+00 0.276121E+00 0.262256E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.234996E+00 0.334292E+00 0.354697E+00 0.372479E+00 0.377439E+00 0.362148E+00 0.360030E+00 0.340651E+00 0.300943E+00 0.287322E+00 0.281539E+00 0.277181E+00 0.273073E+00 0.270502E+00 0.265448E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229410E+00 0.305664E+00 0.338260E+00 0.350104E+00 0.351012E+00 0.337656E+00 0.342149E+00 0.320237E+00 0.280739E+00 0.274574E+00 0.270860E+00 0.268156E+00 0.265724E+00 0.265395E+00 0.253246E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.234955E+00 0.281194E+00 0.310656E+00 0.329895E+00 0.331987E+00 0.317565E+00 0.316038E+00 0.299403E+00 0.265630E+00 0.262926E+00 0.261981E+00 0.261236E+00 0.260334E+00 0.259228E+00 0.723550E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235637E+00 0.272297E+00 0.286995E+00 0.301600E+00 0.301009E+00 0.305314E+00 0.308652E+00 0.294389E+00 0.261380E+00 0.257899E+00 0.256130E+00 0.253867E+00 0.252636E+00 0.250808E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214706E+00 0.255225E+00 0.278453E+00 0.278000E+00 0.272470E+00 0.280714E+00 0.280006E+00 0.253632E+00 0.247230E+00 0.243889E+00 0.237660E+00 0.238329E+00 0.238262E+00 0.237848E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169025E+00 0.214974E+00 0.260193E+00 0.255008E+00 0.260890E+00 0.264701E+00 0.261730E+00 0.234374E+00 0.232608E+00 0.231186E+00 0.109532E+00 0.199869E+00 0.209197E+00 0.212736E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.693553E-03 0.157668E+00 0.179150E+00 0.190622E+00 0.199631E+00 0.206208E+00 0.205785E+00 0.187706E+00 0.188314E+00 0.105973E+00 -0.900000E+01 0.369577E-03 0.140957E+00 0.110281E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.362262E+00 0.425177E+00 0.474641E+00 0.487938E+00 0.485185E+00 0.481488E+00 0.465036E+00 0.472617E+00 0.453698E+00 0.423575E+00 0.410762E+00 0.349907E+00 0.287300E+00 0.253678E+00 0.233760E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.396532E+00 0.488602E+00 0.545941E+00 0.565440E+00 0.561252E+00 0.555254E+00 0.541440E+00 0.560867E+00 0.539846E+00 0.507300E+00 0.505558E+00 0.434019E+00 0.359416E+00 0.334619E+00 0.322024E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386316E+00 0.484710E+00 0.541809E+00 0.563639E+00 0.559984E+00 0.554675E+00 0.542427E+00 0.560080E+00 0.541687E+00 0.510145E+00 0.509155E+00 0.437150E+00 0.361580E+00 0.338113E+00 0.326508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.374450E+00 0.481159E+00 0.535625E+00 0.561247E+00 0.557395E+00 0.559515E+00 0.560094E+00 0.563111E+00 0.544984E+00 0.513111E+00 0.510550E+00 0.439800E+00 0.364811E+00 0.343927E+00 0.333846E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368943E+00 0.477360E+00 0.528983E+00 0.558574E+00 0.557128E+00 0.557245E+00 0.560287E+00 0.565636E+00 0.552021E+00 0.518380E+00 0.509819E+00 0.443671E+00 0.372837E+00 0.356745E+00 0.350043E+00 0.337463E+00 -0.900000E+01 -0.900000E+01 + 0.365234E+00 0.473841E+00 0.521445E+00 0.556768E+00 0.565905E+00 0.556420E+00 0.561694E+00 0.566629E+00 0.575827E+00 0.544180E+00 0.514891E+00 0.464551E+00 0.418781E+00 0.407899E+00 0.402396E+00 0.393113E+00 -0.900000E+01 -0.900000E+01 + 0.361129E+00 0.470448E+00 0.514072E+00 0.553070E+00 0.562869E+00 0.554869E+00 0.562559E+00 0.567192E+00 0.575850E+00 0.545202E+00 0.515712E+00 0.516160E+00 0.515456E+00 0.511656E+00 0.506225E+00 0.498785E+00 -0.900000E+01 -0.900000E+01 + 0.356854E+00 0.466906E+00 0.507132E+00 0.549188E+00 0.559374E+00 0.553172E+00 0.563007E+00 0.567203E+00 0.574406E+00 0.544030E+00 0.513645E+00 0.513642E+00 0.514780E+00 0.514997E+00 0.513008E+00 0.506485E+00 -0.900000E+01 -0.900000E+01 + 0.352130E+00 0.463821E+00 0.501242E+00 0.546560E+00 0.556730E+00 0.552328E+00 0.564808E+00 0.572308E+00 0.573135E+00 0.542228E+00 0.510684E+00 0.508117E+00 0.508070E+00 0.506952E+00 0.503991E+00 0.491719E+00 -0.900000E+01 -0.900000E+01 + 0.346642E+00 0.460360E+00 0.495422E+00 0.543315E+00 0.554524E+00 0.550267E+00 0.568433E+00 0.585192E+00 0.573891E+00 0.541293E+00 0.507702E+00 0.501513E+00 0.497133E+00 0.492585E+00 0.485555E+00 0.457490E+00 -0.900000E+01 -0.900000E+01 + 0.340437E+00 0.456375E+00 0.490795E+00 0.540452E+00 0.552134E+00 0.547680E+00 0.564825E+00 0.581150E+00 0.572209E+00 0.539617E+00 0.504304E+00 0.493152E+00 0.483753E+00 0.478728E+00 0.473080E+00 0.217614E+00 -0.900000E+01 -0.900000E+01 + 0.333464E+00 0.452977E+00 0.485495E+00 0.536994E+00 0.549260E+00 0.544902E+00 0.560322E+00 0.575001E+00 0.569729E+00 0.538011E+00 0.501331E+00 0.469193E+00 0.446975E+00 0.439275E+00 0.429071E+00 0.447986E-01 -0.900000E+01 -0.900000E+01 + 0.325605E+00 0.449843E+00 0.481248E+00 0.533504E+00 0.542319E+00 0.542365E+00 0.552627E+00 0.562488E+00 0.566129E+00 0.535979E+00 0.499354E+00 0.427493E+00 0.360385E+00 0.339743E+00 0.314285E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.316511E+00 0.446547E+00 0.476715E+00 0.529620E+00 0.532181E+00 0.539596E+00 0.541653E+00 0.543268E+00 0.558306E+00 0.529865E+00 0.493322E+00 0.422367E+00 0.355727E+00 0.330453E+00 0.215126E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303901E+00 0.443145E+00 0.471917E+00 0.525106E+00 0.530968E+00 0.539068E+00 0.536863E+00 0.533190E+00 0.546952E+00 0.522587E+00 0.486889E+00 0.416982E+00 0.353308E+00 0.325975E+00 0.215452E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285818E+00 0.438926E+00 0.466405E+00 0.513924E+00 0.529228E+00 0.532768E+00 0.522646E+00 0.520635E+00 0.522276E+00 0.500350E+00 0.456167E+00 0.390341E+00 0.344562E+00 0.320469E+00 0.216334E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.275646E+00 0.434515E+00 0.461337E+00 0.498286E+00 0.523985E+00 0.521986E+00 0.503035E+00 0.505280E+00 0.494322E+00 0.474124E+00 0.418541E+00 0.353703E+00 0.329811E+00 0.307427E+00 0.218720E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270782E+00 0.430638E+00 0.456230E+00 0.485118E+00 0.515076E+00 0.514876E+00 0.496225E+00 0.486567E+00 0.467884E+00 0.460208E+00 0.406756E+00 0.346873E+00 0.324018E+00 0.286070E+00 0.230883E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.266529E+00 0.426107E+00 0.449033E+00 0.470062E+00 0.503505E+00 0.499194E+00 0.491042E+00 0.470676E+00 0.443394E+00 0.441671E+00 0.392892E+00 0.339985E+00 0.320119E+00 0.307382E+00 0.296694E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.262851E+00 0.416650E+00 0.441617E+00 0.457058E+00 0.490345E+00 0.483374E+00 0.484179E+00 0.463708E+00 0.434591E+00 0.407060E+00 0.357414E+00 0.327689E+00 0.314338E+00 0.305265E+00 0.295356E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260659E+00 0.399283E+00 0.437597E+00 0.448148E+00 0.465237E+00 0.474329E+00 0.468145E+00 0.441612E+00 0.427581E+00 0.382550E+00 0.331014E+00 0.316785E+00 0.307850E+00 0.300097E+00 0.287634E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257374E+00 0.379002E+00 0.429393E+00 0.440124E+00 0.440572E+00 0.459946E+00 0.453327E+00 0.425281E+00 0.418691E+00 0.375392E+00 0.328170E+00 0.313825E+00 0.304250E+00 0.296324E+00 0.271564E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.251277E+00 0.359504E+00 0.414274E+00 0.431169E+00 0.426285E+00 0.430696E+00 0.416370E+00 0.412006E+00 0.386925E+00 0.340376E+00 0.316692E+00 0.305773E+00 0.297768E+00 0.291621E+00 0.102871E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244224E+00 0.346821E+00 0.396932E+00 0.410362E+00 0.415013E+00 0.408584E+00 0.386189E+00 0.389143E+00 0.357383E+00 0.311832E+00 0.301112E+00 0.294493E+00 0.289025E+00 0.284453E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.236471E+00 0.341761E+00 0.373467E+00 0.390116E+00 0.400316E+00 0.394904E+00 0.371756E+00 0.367299E+00 0.337464E+00 0.297912E+00 0.291633E+00 0.287828E+00 0.283500E+00 0.279459E+00 0.264985E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223839E+00 0.331141E+00 0.348310E+00 0.365153E+00 0.374079E+00 0.362274E+00 0.360885E+00 0.342552E+00 0.302266E+00 0.289400E+00 0.284608E+00 0.280134E+00 0.276183E+00 0.273686E+00 0.268179E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221346E+00 0.302320E+00 0.335872E+00 0.347098E+00 0.347604E+00 0.338820E+00 0.344774E+00 0.326489E+00 0.286989E+00 0.279989E+00 0.275869E+00 0.272782E+00 0.270112E+00 0.269611E+00 0.258023E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224355E+00 0.279913E+00 0.308323E+00 0.328347E+00 0.334098E+00 0.320585E+00 0.321495E+00 0.307084E+00 0.271992E+00 0.268293E+00 0.266734E+00 0.265425E+00 0.264737E+00 0.264539E+00 0.880545E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221827E+00 0.271681E+00 0.289757E+00 0.304037E+00 0.304078E+00 0.309612E+00 0.313267E+00 0.297085E+00 0.263360E+00 0.260887E+00 0.260066E+00 0.258954E+00 0.259641E+00 0.259450E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.209097E+00 0.253166E+00 0.280057E+00 0.279849E+00 0.278866E+00 0.291033E+00 0.289854E+00 0.261144E+00 0.254746E+00 0.252017E+00 0.246106E+00 0.245969E+00 0.245651E+00 0.244585E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165395E+00 0.217010E+00 0.264288E+00 0.257481E+00 0.261918E+00 0.269468E+00 0.268170E+00 0.242027E+00 0.240413E+00 0.238674E+00 0.116878E+00 0.204625E+00 0.216537E+00 0.220135E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.850258E-03 0.174074E+00 0.199878E+00 0.213980E+00 0.223377E+00 0.229885E+00 0.229395E+00 0.208640E+00 0.208898E+00 0.117956E+00 -0.900000E+01 0.329550E-03 0.157283E+00 0.123466E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346404E+00 0.420692E+00 0.472593E+00 0.483939E+00 0.477129E+00 0.475551E+00 0.458738E+00 0.465001E+00 0.447077E+00 0.417495E+00 0.404743E+00 0.344866E+00 0.283455E+00 0.250722E+00 0.231471E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.376455E+00 0.484395E+00 0.543328E+00 0.563401E+00 0.557335E+00 0.554023E+00 0.536544E+00 0.554158E+00 0.536315E+00 0.502886E+00 0.500682E+00 0.430823E+00 0.358396E+00 0.334072E+00 0.321280E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.366113E+00 0.481682E+00 0.538885E+00 0.561473E+00 0.556009E+00 0.553237E+00 0.536427E+00 0.553556E+00 0.538040E+00 0.505430E+00 0.503930E+00 0.433927E+00 0.360723E+00 0.337762E+00 0.326091E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359868E+00 0.478822E+00 0.532730E+00 0.558705E+00 0.553903E+00 0.557435E+00 0.553071E+00 0.555567E+00 0.540667E+00 0.507895E+00 0.505281E+00 0.436505E+00 0.364113E+00 0.343640E+00 0.333907E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.356824E+00 0.475807E+00 0.526319E+00 0.555602E+00 0.553709E+00 0.554337E+00 0.552513E+00 0.557780E+00 0.547359E+00 0.513406E+00 0.504603E+00 0.440331E+00 0.372235E+00 0.356747E+00 0.350488E+00 0.337830E+00 -0.900000E+01 -0.900000E+01 + 0.353228E+00 0.472686E+00 0.519851E+00 0.553649E+00 0.562721E+00 0.552579E+00 0.553221E+00 0.559151E+00 0.571357E+00 0.539987E+00 0.509855E+00 0.460191E+00 0.417623E+00 0.408365E+00 0.404411E+00 0.396319E+00 -0.900000E+01 -0.900000E+01 + 0.349270E+00 0.469503E+00 0.513347E+00 0.549619E+00 0.560021E+00 0.550529E+00 0.553706E+00 0.560019E+00 0.571630E+00 0.541435E+00 0.510910E+00 0.511664E+00 0.513022E+00 0.512810E+00 0.511110E+00 0.507588E+00 -0.900000E+01 -0.900000E+01 + 0.344846E+00 0.466355E+00 0.506768E+00 0.545606E+00 0.557061E+00 0.548685E+00 0.554603E+00 0.560877E+00 0.570198E+00 0.540688E+00 0.509566E+00 0.509725E+00 0.513239E+00 0.517117E+00 0.519316E+00 0.516779E+00 -0.900000E+01 -0.900000E+01 + 0.339586E+00 0.463396E+00 0.500861E+00 0.542218E+00 0.554143E+00 0.547826E+00 0.557021E+00 0.566022E+00 0.569015E+00 0.539410E+00 0.507605E+00 0.505297E+00 0.505996E+00 0.507279E+00 0.506246E+00 0.499444E+00 -0.900000E+01 -0.900000E+01 + 0.334409E+00 0.460300E+00 0.496055E+00 0.538961E+00 0.551815E+00 0.546184E+00 0.562148E+00 0.578276E+00 0.570126E+00 0.539280E+00 0.505829E+00 0.499593E+00 0.495902E+00 0.492040E+00 0.486880E+00 0.462797E+00 -0.900000E+01 -0.900000E+01 + 0.328364E+00 0.457221E+00 0.492234E+00 0.536447E+00 0.549688E+00 0.544669E+00 0.560416E+00 0.574905E+00 0.569242E+00 0.538474E+00 0.503823E+00 0.492107E+00 0.483780E+00 0.478904E+00 0.474133E+00 0.221584E+00 -0.900000E+01 -0.900000E+01 + 0.321556E+00 0.454372E+00 0.487888E+00 0.533272E+00 0.547941E+00 0.543127E+00 0.557594E+00 0.570491E+00 0.567508E+00 0.537253E+00 0.501634E+00 0.469422E+00 0.447346E+00 0.439707E+00 0.430525E+00 0.448952E-01 -0.900000E+01 -0.900000E+01 + 0.313816E+00 0.451547E+00 0.484183E+00 0.530303E+00 0.541959E+00 0.542055E+00 0.551449E+00 0.560030E+00 0.564996E+00 0.535548E+00 0.499866E+00 0.428243E+00 0.360979E+00 0.340253E+00 0.316475E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304821E+00 0.448525E+00 0.480179E+00 0.525866E+00 0.532447E+00 0.540062E+00 0.541114E+00 0.542028E+00 0.557475E+00 0.529924E+00 0.494047E+00 0.422996E+00 0.356340E+00 0.331274E+00 0.217468E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.291943E+00 0.445027E+00 0.475327E+00 0.520469E+00 0.531610E+00 0.538781E+00 0.535720E+00 0.531625E+00 0.546167E+00 0.522138E+00 0.487120E+00 0.417374E+00 0.353804E+00 0.326547E+00 0.217779E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276651E+00 0.441204E+00 0.469947E+00 0.508581E+00 0.529895E+00 0.533297E+00 0.522302E+00 0.520028E+00 0.521984E+00 0.500547E+00 0.456459E+00 0.391050E+00 0.345167E+00 0.321136E+00 0.218183E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270697E+00 0.437146E+00 0.464461E+00 0.491779E+00 0.523768E+00 0.522840E+00 0.504277E+00 0.506777E+00 0.494999E+00 0.474138E+00 0.419023E+00 0.354282E+00 0.330029E+00 0.308063E+00 0.219245E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265651E+00 0.431987E+00 0.458944E+00 0.478546E+00 0.514677E+00 0.516111E+00 0.497984E+00 0.488053E+00 0.469200E+00 0.460892E+00 0.407587E+00 0.347566E+00 0.324848E+00 0.288200E+00 0.230231E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260059E+00 0.424801E+00 0.450694E+00 0.465804E+00 0.501790E+00 0.499482E+00 0.492003E+00 0.472322E+00 0.444604E+00 0.442383E+00 0.393105E+00 0.340347E+00 0.320729E+00 0.307703E+00 0.297328E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.254526E+00 0.413566E+00 0.442599E+00 0.457261E+00 0.483976E+00 0.482917E+00 0.484976E+00 0.465130E+00 0.435283E+00 0.407671E+00 0.357427E+00 0.327808E+00 0.314927E+00 0.305938E+00 0.295869E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.248924E+00 0.393146E+00 0.437298E+00 0.449054E+00 0.456342E+00 0.471718E+00 0.468015E+00 0.442212E+00 0.427635E+00 0.382693E+00 0.330861E+00 0.316942E+00 0.308425E+00 0.301278E+00 0.288946E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242634E+00 0.373706E+00 0.425492E+00 0.440094E+00 0.435394E+00 0.450714E+00 0.448694E+00 0.423526E+00 0.417098E+00 0.374331E+00 0.327496E+00 0.313655E+00 0.304294E+00 0.296784E+00 0.273335E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235528E+00 0.350827E+00 0.407982E+00 0.429281E+00 0.424798E+00 0.423420E+00 0.409384E+00 0.406448E+00 0.383213E+00 0.338249E+00 0.315006E+00 0.304581E+00 0.297180E+00 0.290792E+00 0.106396E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227193E+00 0.344878E+00 0.390094E+00 0.406173E+00 0.413286E+00 0.405636E+00 0.380937E+00 0.381922E+00 0.351953E+00 0.307934E+00 0.298721E+00 0.293685E+00 0.289219E+00 0.285108E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219006E+00 0.340379E+00 0.362798E+00 0.382012E+00 0.398325E+00 0.394588E+00 0.371096E+00 0.366502E+00 0.335299E+00 0.296123E+00 0.290465E+00 0.287917E+00 0.284672E+00 0.280672E+00 0.264734E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206079E+00 0.324113E+00 0.348511E+00 0.360999E+00 0.374171E+00 0.363785E+00 0.361613E+00 0.342776E+00 0.301572E+00 0.288833E+00 0.285222E+00 0.282048E+00 0.278194E+00 0.275726E+00 0.269783E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207289E+00 0.301355E+00 0.336026E+00 0.347205E+00 0.347746E+00 0.338665E+00 0.344667E+00 0.328230E+00 0.288871E+00 0.283218E+00 0.279831E+00 0.276443E+00 0.273423E+00 0.272346E+00 0.260537E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.209249E+00 0.280582E+00 0.310804E+00 0.330035E+00 0.335689E+00 0.321688E+00 0.323848E+00 0.309159E+00 0.274311E+00 0.270800E+00 0.269537E+00 0.268302E+00 0.267882E+00 0.267493E+00 0.952219E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.208278E+00 0.272311E+00 0.291273E+00 0.307747E+00 0.308900E+00 0.312951E+00 0.315698E+00 0.299088E+00 0.264505E+00 0.262072E+00 0.261547E+00 0.261259E+00 0.262577E+00 0.262889E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203222E+00 0.250657E+00 0.280207E+00 0.280883E+00 0.287501E+00 0.298739E+00 0.296871E+00 0.263466E+00 0.256923E+00 0.255223E+00 0.250900E+00 0.252448E+00 0.254184E+00 0.254221E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166125E+00 0.219483E+00 0.264289E+00 0.259665E+00 0.264729E+00 0.278468E+00 0.277615E+00 0.249824E+00 0.248141E+00 0.245443E+00 0.125606E+00 0.209994E+00 0.222476E+00 0.225943E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.101015E-02 0.182149E+00 0.220407E+00 0.229921E+00 0.237797E+00 0.245120E+00 0.246079E+00 0.221478E+00 0.221143E+00 0.125887E+00 -0.900000E+01 0.379011E-03 0.165730E+00 0.131153E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323810E+00 0.414507E+00 0.469222E+00 0.481895E+00 0.474448E+00 0.472261E+00 0.454720E+00 0.458711E+00 0.441327E+00 0.411992E+00 0.398994E+00 0.340268E+00 0.280027E+00 0.248162E+00 0.229493E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349358E+00 0.478532E+00 0.540108E+00 0.562366E+00 0.557346E+00 0.553141E+00 0.534262E+00 0.548478E+00 0.533828E+00 0.499682E+00 0.495078E+00 0.426797E+00 0.356737E+00 0.333347E+00 0.320864E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344107E+00 0.476148E+00 0.535997E+00 0.560415E+00 0.555922E+00 0.552708E+00 0.534784E+00 0.547013E+00 0.534439E+00 0.501786E+00 0.497949E+00 0.429694E+00 0.359069E+00 0.337177E+00 0.326003E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340776E+00 0.473381E+00 0.530280E+00 0.557667E+00 0.553513E+00 0.556861E+00 0.551308E+00 0.548148E+00 0.536807E+00 0.504062E+00 0.499434E+00 0.432226E+00 0.362421E+00 0.343253E+00 0.334045E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337482E+00 0.470780E+00 0.524382E+00 0.554878E+00 0.553048E+00 0.553656E+00 0.548961E+00 0.550250E+00 0.543336E+00 0.509945E+00 0.499499E+00 0.435646E+00 0.370113E+00 0.355600E+00 0.349907E+00 0.337175E+00 -0.900000E+01 -0.900000E+01 + 0.333759E+00 0.468134E+00 0.518260E+00 0.552702E+00 0.560901E+00 0.551272E+00 0.547799E+00 0.551652E+00 0.567833E+00 0.537180E+00 0.505343E+00 0.454857E+00 0.413421E+00 0.404975E+00 0.401842E+00 0.394413E+00 -0.900000E+01 -0.900000E+01 + 0.329625E+00 0.465389E+00 0.512104E+00 0.548602E+00 0.557505E+00 0.548453E+00 0.547193E+00 0.553243E+00 0.568563E+00 0.538990E+00 0.506855E+00 0.505204E+00 0.505585E+00 0.505837E+00 0.505613E+00 0.503216E+00 -0.900000E+01 -0.900000E+01 + 0.325384E+00 0.462571E+00 0.506221E+00 0.544459E+00 0.553846E+00 0.546029E+00 0.547819E+00 0.554521E+00 0.567680E+00 0.538602E+00 0.506637E+00 0.505193E+00 0.507791E+00 0.511225E+00 0.513802E+00 0.511927E+00 -0.900000E+01 -0.900000E+01 + 0.320169E+00 0.459804E+00 0.500423E+00 0.540654E+00 0.551023E+00 0.544428E+00 0.550354E+00 0.559841E+00 0.566823E+00 0.537969E+00 0.505918E+00 0.502760E+00 0.502584E+00 0.502306E+00 0.500631E+00 0.494053E+00 -0.900000E+01 -0.900000E+01 + 0.315388E+00 0.456713E+00 0.495680E+00 0.537240E+00 0.548536E+00 0.542922E+00 0.556701E+00 0.571771E+00 0.567912E+00 0.538404E+00 0.505245E+00 0.498738E+00 0.494207E+00 0.489369E+00 0.484522E+00 0.461543E+00 -0.900000E+01 -0.900000E+01 + 0.309485E+00 0.454091E+00 0.491184E+00 0.533469E+00 0.546416E+00 0.542169E+00 0.556421E+00 0.570491E+00 0.567379E+00 0.538010E+00 0.504062E+00 0.492219E+00 0.482983E+00 0.478307E+00 0.473911E+00 0.227413E+00 -0.900000E+01 -0.900000E+01 + 0.302648E+00 0.451840E+00 0.487540E+00 0.530556E+00 0.545511E+00 0.541985E+00 0.555356E+00 0.567920E+00 0.566553E+00 0.537338E+00 0.502171E+00 0.469441E+00 0.447620E+00 0.440142E+00 0.431196E+00 0.453819E-01 -0.900000E+01 -0.900000E+01 + 0.294932E+00 0.449361E+00 0.484237E+00 0.526795E+00 0.540144E+00 0.541345E+00 0.550549E+00 0.559414E+00 0.565029E+00 0.536115E+00 0.500131E+00 0.428708E+00 0.361372E+00 0.340741E+00 0.318242E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285922E+00 0.446233E+00 0.480543E+00 0.521527E+00 0.531192E+00 0.540295E+00 0.542278E+00 0.543251E+00 0.558617E+00 0.531075E+00 0.494787E+00 0.424243E+00 0.356978E+00 0.331999E+00 0.218437E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.273007E+00 0.442111E+00 0.475808E+00 0.514858E+00 0.530650E+00 0.538742E+00 0.537425E+00 0.534259E+00 0.549048E+00 0.524152E+00 0.488104E+00 0.418209E+00 0.354341E+00 0.326963E+00 0.218288E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265031E+00 0.438428E+00 0.470854E+00 0.503088E+00 0.528211E+00 0.533007E+00 0.523736E+00 0.522829E+00 0.526510E+00 0.503664E+00 0.458685E+00 0.392210E+00 0.345711E+00 0.321208E+00 0.216942E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259266E+00 0.434174E+00 0.465083E+00 0.487003E+00 0.521592E+00 0.522474E+00 0.505886E+00 0.509867E+00 0.500193E+00 0.478153E+00 0.421896E+00 0.355588E+00 0.330684E+00 0.308693E+00 0.216161E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253953E+00 0.427617E+00 0.458834E+00 0.475824E+00 0.513274E+00 0.516888E+00 0.500708E+00 0.492340E+00 0.474315E+00 0.465054E+00 0.411319E+00 0.349481E+00 0.325984E+00 0.290081E+00 0.228908E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.248092E+00 0.419154E+00 0.449562E+00 0.467145E+00 0.500556E+00 0.500769E+00 0.494600E+00 0.475807E+00 0.449191E+00 0.447584E+00 0.396972E+00 0.342090E+00 0.321720E+00 0.308231E+00 0.298053E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.241468E+00 0.405097E+00 0.440284E+00 0.458608E+00 0.481798E+00 0.484204E+00 0.487296E+00 0.467477E+00 0.438027E+00 0.411387E+00 0.359411E+00 0.328801E+00 0.315693E+00 0.306699E+00 0.297030E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235175E+00 0.388252E+00 0.433301E+00 0.449929E+00 0.456754E+00 0.472004E+00 0.469071E+00 0.443647E+00 0.429002E+00 0.384821E+00 0.331957E+00 0.317583E+00 0.309164E+00 0.302039E+00 0.290157E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.228970E+00 0.366195E+00 0.420728E+00 0.440482E+00 0.437440E+00 0.451335E+00 0.448893E+00 0.423884E+00 0.417746E+00 0.375138E+00 0.327867E+00 0.313834E+00 0.304513E+00 0.296863E+00 0.274000E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221500E+00 0.353065E+00 0.405638E+00 0.429126E+00 0.425983E+00 0.424525E+00 0.410233E+00 0.406382E+00 0.383565E+00 0.338263E+00 0.314590E+00 0.303987E+00 0.296735E+00 0.290626E+00 0.111514E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213765E+00 0.346330E+00 0.381393E+00 0.404863E+00 0.413868E+00 0.407209E+00 0.382925E+00 0.382351E+00 0.352183E+00 0.307399E+00 0.298103E+00 0.293312E+00 0.289218E+00 0.285304E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205825E+00 0.337074E+00 0.362096E+00 0.378736E+00 0.397667E+00 0.397169E+00 0.373123E+00 0.367782E+00 0.336380E+00 0.296388E+00 0.290088E+00 0.287746E+00 0.285197E+00 0.281759E+00 0.264679E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198699E+00 0.317787E+00 0.348118E+00 0.362651E+00 0.375944E+00 0.366739E+00 0.364056E+00 0.343748E+00 0.301645E+00 0.288365E+00 0.284779E+00 0.282433E+00 0.279530E+00 0.277073E+00 0.271066E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197401E+00 0.300967E+00 0.337455E+00 0.350194E+00 0.353365E+00 0.343148E+00 0.348418E+00 0.330226E+00 0.289417E+00 0.283975E+00 0.281120E+00 0.278862E+00 0.276192E+00 0.275065E+00 0.263502E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.194390E+00 0.284067E+00 0.316958E+00 0.335667E+00 0.338604E+00 0.325046E+00 0.328409E+00 0.312780E+00 0.276851E+00 0.273096E+00 0.271245E+00 0.270258E+00 0.269351E+00 0.268794E+00 0.100468E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.189303E+00 0.271516E+00 0.294112E+00 0.311704E+00 0.312595E+00 0.316067E+00 0.318133E+00 0.302414E+00 0.266358E+00 0.263193E+00 0.262305E+00 0.262515E+00 0.263701E+00 0.264125E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179992E+00 0.249566E+00 0.280001E+00 0.284268E+00 0.290234E+00 0.303392E+00 0.299679E+00 0.264826E+00 0.258479E+00 0.257252E+00 0.253101E+00 0.254594E+00 0.256326E+00 0.256618E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150611E+00 0.222110E+00 0.264028E+00 0.262669E+00 0.272332E+00 0.285076E+00 0.284470E+00 0.254486E+00 0.252276E+00 0.248830E+00 0.131356E+00 0.214047E+00 0.224736E+00 0.229486E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.989805E-03 0.193165E+00 0.234809E+00 0.243153E+00 0.251467E+00 0.262680E+00 0.263241E+00 0.232605E+00 0.230489E+00 0.131389E+00 -0.900000E+01 0.348756E-03 0.173146E+00 0.137422E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307379E+00 0.404143E+00 0.460989E+00 0.477940E+00 0.472263E+00 0.469850E+00 0.451775E+00 0.453466E+00 0.437383E+00 0.409217E+00 0.395976E+00 0.337718E+00 0.278223E+00 0.246202E+00 0.228068E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.330914E+00 0.469277E+00 0.532164E+00 0.559792E+00 0.556725E+00 0.552192E+00 0.532159E+00 0.542269E+00 0.533010E+00 0.499124E+00 0.493057E+00 0.425262E+00 0.355967E+00 0.332817E+00 0.320742E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.328025E+00 0.467892E+00 0.528686E+00 0.558036E+00 0.555748E+00 0.551894E+00 0.533017E+00 0.541671E+00 0.533207E+00 0.500948E+00 0.495681E+00 0.428252E+00 0.358314E+00 0.336643E+00 0.325941E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.324491E+00 0.466350E+00 0.524111E+00 0.555251E+00 0.553646E+00 0.556275E+00 0.550227E+00 0.542695E+00 0.534883E+00 0.502889E+00 0.497144E+00 0.430734E+00 0.361575E+00 0.342664E+00 0.333959E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320971E+00 0.464131E+00 0.519029E+00 0.552246E+00 0.552915E+00 0.553024E+00 0.548354E+00 0.543748E+00 0.541013E+00 0.508980E+00 0.497651E+00 0.434574E+00 0.368965E+00 0.354685E+00 0.349342E+00 0.336612E+00 -0.900000E+01 -0.900000E+01 + 0.317817E+00 0.461809E+00 0.513753E+00 0.550044E+00 0.560449E+00 0.550617E+00 0.545607E+00 0.544654E+00 0.565182E+00 0.536297E+00 0.503996E+00 0.453263E+00 0.410724E+00 0.401890E+00 0.398695E+00 0.391600E+00 -0.900000E+01 -0.900000E+01 + 0.313630E+00 0.459367E+00 0.508523E+00 0.546130E+00 0.556709E+00 0.547509E+00 0.543591E+00 0.546185E+00 0.565844E+00 0.537873E+00 0.505674E+00 0.502334E+00 0.500362E+00 0.499009E+00 0.497840E+00 0.496207E+00 -0.900000E+01 -0.900000E+01 + 0.309842E+00 0.457255E+00 0.503147E+00 0.542028E+00 0.552461E+00 0.544172E+00 0.543107E+00 0.547635E+00 0.565173E+00 0.537488E+00 0.505621E+00 0.503044E+00 0.503712E+00 0.505304E+00 0.507003E+00 0.505099E+00 -0.900000E+01 -0.900000E+01 + 0.304412E+00 0.454769E+00 0.498396E+00 0.537825E+00 0.548662E+00 0.541791E+00 0.545578E+00 0.552426E+00 0.564024E+00 0.536825E+00 0.505128E+00 0.501355E+00 0.499968E+00 0.498749E+00 0.496739E+00 0.489937E+00 -0.900000E+01 -0.900000E+01 + 0.299432E+00 0.452188E+00 0.494234E+00 0.533980E+00 0.545395E+00 0.540595E+00 0.552256E+00 0.563917E+00 0.564659E+00 0.537392E+00 0.504889E+00 0.498108E+00 0.492572E+00 0.487911E+00 0.483145E+00 0.460281E+00 -0.900000E+01 -0.900000E+01 + 0.293254E+00 0.449658E+00 0.489904E+00 0.528905E+00 0.543938E+00 0.540547E+00 0.552521E+00 0.563805E+00 0.564946E+00 0.537297E+00 0.503509E+00 0.491532E+00 0.482241E+00 0.477550E+00 0.473590E+00 0.227807E+00 -0.900000E+01 -0.900000E+01 + 0.286001E+00 0.447341E+00 0.485806E+00 0.524552E+00 0.542455E+00 0.540341E+00 0.552212E+00 0.562974E+00 0.564989E+00 0.536605E+00 0.501508E+00 0.468791E+00 0.447333E+00 0.439822E+00 0.430853E+00 0.507882E-01 -0.900000E+01 -0.900000E+01 + 0.277916E+00 0.444899E+00 0.481991E+00 0.518991E+00 0.537024E+00 0.540459E+00 0.547965E+00 0.556375E+00 0.563918E+00 0.535343E+00 0.499434E+00 0.428464E+00 0.361436E+00 0.340915E+00 0.319215E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267860E+00 0.441682E+00 0.478063E+00 0.512420E+00 0.528056E+00 0.539317E+00 0.539981E+00 0.540751E+00 0.557677E+00 0.530642E+00 0.494439E+00 0.424191E+00 0.357198E+00 0.332551E+00 0.218886E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259525E+00 0.437496E+00 0.473435E+00 0.505783E+00 0.527065E+00 0.536591E+00 0.535157E+00 0.532838E+00 0.548569E+00 0.524163E+00 0.487994E+00 0.418557E+00 0.354589E+00 0.327395E+00 0.217691E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252891E+00 0.432811E+00 0.468585E+00 0.495734E+00 0.525323E+00 0.531158E+00 0.522515E+00 0.523105E+00 0.528191E+00 0.504985E+00 0.459943E+00 0.392686E+00 0.345960E+00 0.321260E+00 0.213606E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246187E+00 0.427651E+00 0.463176E+00 0.482468E+00 0.518919E+00 0.521919E+00 0.506823E+00 0.511638E+00 0.503257E+00 0.480783E+00 0.423906E+00 0.356380E+00 0.331324E+00 0.309282E+00 0.213804E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239775E+00 0.419808E+00 0.456260E+00 0.473306E+00 0.511131E+00 0.517094E+00 0.501863E+00 0.494327E+00 0.477486E+00 0.468039E+00 0.413973E+00 0.350988E+00 0.327060E+00 0.291169E+00 0.227718E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233054E+00 0.408354E+00 0.446155E+00 0.464394E+00 0.498613E+00 0.501715E+00 0.496223E+00 0.477694E+00 0.452366E+00 0.451234E+00 0.400375E+00 0.344066E+00 0.323094E+00 0.308829E+00 0.298482E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227369E+00 0.395487E+00 0.435091E+00 0.455986E+00 0.482700E+00 0.484069E+00 0.488324E+00 0.470008E+00 0.441317E+00 0.414561E+00 0.361192E+00 0.329880E+00 0.316443E+00 0.307298E+00 0.297900E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221482E+00 0.377341E+00 0.427866E+00 0.447429E+00 0.457733E+00 0.472096E+00 0.469787E+00 0.445044E+00 0.430101E+00 0.386269E+00 0.332920E+00 0.318236E+00 0.309733E+00 0.302679E+00 0.291508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215983E+00 0.355847E+00 0.415480E+00 0.437255E+00 0.436160E+00 0.452768E+00 0.451176E+00 0.425995E+00 0.419487E+00 0.376470E+00 0.328433E+00 0.314437E+00 0.305362E+00 0.297506E+00 0.275033E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.208464E+00 0.351281E+00 0.402564E+00 0.426595E+00 0.423685E+00 0.425203E+00 0.412839E+00 0.409700E+00 0.386204E+00 0.339685E+00 0.315774E+00 0.304939E+00 0.297595E+00 0.291536E+00 0.114466E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.201349E+00 0.344371E+00 0.377335E+00 0.400980E+00 0.412376E+00 0.407796E+00 0.385593E+00 0.386654E+00 0.355298E+00 0.309420E+00 0.299418E+00 0.294344E+00 0.290335E+00 0.286441E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193898E+00 0.333051E+00 0.361643E+00 0.381198E+00 0.399709E+00 0.399075E+00 0.375212E+00 0.369976E+00 0.338319E+00 0.297262E+00 0.290477E+00 0.288283E+00 0.286292E+00 0.283163E+00 0.265308E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193907E+00 0.317317E+00 0.347855E+00 0.369029E+00 0.382420E+00 0.370841E+00 0.367167E+00 0.346069E+00 0.302850E+00 0.288918E+00 0.285836E+00 0.283988E+00 0.281811E+00 0.279686E+00 0.273571E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.192603E+00 0.302180E+00 0.337767E+00 0.353155E+00 0.361746E+00 0.350568E+00 0.354838E+00 0.334607E+00 0.290504E+00 0.285254E+00 0.283039E+00 0.280690E+00 0.278117E+00 0.276412E+00 0.265701E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187318E+00 0.286150E+00 0.321778E+00 0.340916E+00 0.342520E+00 0.328470E+00 0.335665E+00 0.319744E+00 0.281734E+00 0.277300E+00 0.274700E+00 0.272329E+00 0.270462E+00 0.269676E+00 0.103086E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177763E+00 0.271504E+00 0.299341E+00 0.319379E+00 0.316845E+00 0.318117E+00 0.321009E+00 0.306218E+00 0.269889E+00 0.265950E+00 0.264299E+00 0.263903E+00 0.264509E+00 0.264915E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162420E+00 0.250154E+00 0.279885E+00 0.293963E+00 0.299246E+00 0.309332E+00 0.302937E+00 0.265910E+00 0.259702E+00 0.258440E+00 0.254487E+00 0.255772E+00 0.257423E+00 0.257867E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126197E+00 0.228595E+00 0.268147E+00 0.265364E+00 0.277684E+00 0.292129E+00 0.290874E+00 0.257404E+00 0.254706E+00 0.251683E+00 0.138815E+00 0.217699E+00 0.227460E+00 0.232778E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107399E-02 0.197911E+00 0.240353E+00 0.252043E+00 0.261790E+00 0.275257E+00 0.273320E+00 0.240615E+00 0.238101E+00 0.135898E+00 -0.900000E+01 0.343852E-03 0.177425E+00 0.141435E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.292054E+00 0.390005E+00 0.448638E+00 0.472489E+00 0.468894E+00 0.467267E+00 0.449278E+00 0.448603E+00 0.433446E+00 0.406723E+00 0.394006E+00 0.336436E+00 0.277276E+00 0.244650E+00 0.227338E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313652E+00 0.457004E+00 0.520985E+00 0.555157E+00 0.554935E+00 0.551057E+00 0.529849E+00 0.535754E+00 0.530237E+00 0.498502E+00 0.491838E+00 0.424863E+00 0.355852E+00 0.332229E+00 0.320622E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310982E+00 0.456639E+00 0.518570E+00 0.553378E+00 0.554310E+00 0.551248E+00 0.531185E+00 0.535591E+00 0.531544E+00 0.500513E+00 0.494498E+00 0.427882E+00 0.358283E+00 0.336253E+00 0.325759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308004E+00 0.455383E+00 0.514648E+00 0.550155E+00 0.552002E+00 0.555711E+00 0.548690E+00 0.538037E+00 0.533978E+00 0.502672E+00 0.496336E+00 0.430562E+00 0.361500E+00 0.342339E+00 0.333644E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304731E+00 0.453939E+00 0.510376E+00 0.546658E+00 0.551097E+00 0.552495E+00 0.547014E+00 0.539153E+00 0.539057E+00 0.508377E+00 0.496910E+00 0.434476E+00 0.368691E+00 0.354299E+00 0.349056E+00 0.336552E+00 -0.900000E+01 -0.900000E+01 + 0.301092E+00 0.452426E+00 0.506277E+00 0.544038E+00 0.558699E+00 0.550031E+00 0.544766E+00 0.538484E+00 0.562070E+00 0.534978E+00 0.503399E+00 0.452862E+00 0.409903E+00 0.400966E+00 0.397393E+00 0.390284E+00 -0.900000E+01 -0.900000E+01 + 0.297126E+00 0.451095E+00 0.502279E+00 0.539378E+00 0.555199E+00 0.545840E+00 0.540992E+00 0.538583E+00 0.562361E+00 0.536454E+00 0.505092E+00 0.501256E+00 0.498631E+00 0.496191E+00 0.494262E+00 0.491750E+00 -0.900000E+01 -0.900000E+01 + 0.292706E+00 0.450094E+00 0.498168E+00 0.534469E+00 0.551391E+00 0.541970E+00 0.539726E+00 0.539648E+00 0.561330E+00 0.535900E+00 0.504929E+00 0.501706E+00 0.501910E+00 0.503018E+00 0.504431E+00 0.502615E+00 -0.900000E+01 -0.900000E+01 + 0.287499E+00 0.448332E+00 0.494595E+00 0.529629E+00 0.547949E+00 0.539908E+00 0.542200E+00 0.544254E+00 0.559798E+00 0.535017E+00 0.504361E+00 0.500162E+00 0.498752E+00 0.497940E+00 0.496611E+00 0.489676E+00 -0.900000E+01 -0.900000E+01 + 0.281883E+00 0.446696E+00 0.491311E+00 0.524924E+00 0.544510E+00 0.538680E+00 0.549197E+00 0.557081E+00 0.560772E+00 0.535316E+00 0.504026E+00 0.496905E+00 0.491705E+00 0.487899E+00 0.483312E+00 0.460701E+00 -0.900000E+01 -0.900000E+01 + 0.274940E+00 0.444398E+00 0.487113E+00 0.518576E+00 0.542316E+00 0.538485E+00 0.549357E+00 0.558566E+00 0.562003E+00 0.535599E+00 0.502551E+00 0.490266E+00 0.481742E+00 0.477466E+00 0.473911E+00 0.228485E+00 -0.900000E+01 -0.900000E+01 + 0.266881E+00 0.442249E+00 0.483289E+00 0.512654E+00 0.540379E+00 0.538267E+00 0.548857E+00 0.558551E+00 0.562048E+00 0.534967E+00 0.500489E+00 0.468083E+00 0.447003E+00 0.439279E+00 0.430314E+00 0.602381E-01 -0.900000E+01 -0.900000E+01 + 0.259512E+00 0.439933E+00 0.479192E+00 0.506370E+00 0.534512E+00 0.538298E+00 0.543998E+00 0.551861E+00 0.561130E+00 0.533672E+00 0.498557E+00 0.427913E+00 0.361358E+00 0.341114E+00 0.320091E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252945E+00 0.436281E+00 0.474695E+00 0.500405E+00 0.524984E+00 0.537338E+00 0.537129E+00 0.537619E+00 0.555353E+00 0.528954E+00 0.493514E+00 0.423695E+00 0.357216E+00 0.332990E+00 0.219253E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.245891E+00 0.431829E+00 0.470088E+00 0.495173E+00 0.524076E+00 0.535959E+00 0.534224E+00 0.531521E+00 0.548399E+00 0.524276E+00 0.487950E+00 0.418773E+00 0.354784E+00 0.327986E+00 0.216203E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.238778E+00 0.426129E+00 0.465082E+00 0.486064E+00 0.521858E+00 0.530508E+00 0.522415E+00 0.523420E+00 0.528826E+00 0.505382E+00 0.460150E+00 0.392810E+00 0.346061E+00 0.321560E+00 0.210819E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231513E+00 0.420044E+00 0.459864E+00 0.475022E+00 0.515366E+00 0.522018E+00 0.506762E+00 0.511778E+00 0.504008E+00 0.481238E+00 0.424213E+00 0.356468E+00 0.331466E+00 0.309928E+00 0.212654E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.225094E+00 0.410934E+00 0.452841E+00 0.466881E+00 0.507165E+00 0.517273E+00 0.501514E+00 0.494123E+00 0.477953E+00 0.468365E+00 0.414254E+00 0.351119E+00 0.327351E+00 0.292616E+00 0.226656E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219018E+00 0.400627E+00 0.442169E+00 0.458872E+00 0.492343E+00 0.498324E+00 0.494599E+00 0.478125E+00 0.452346E+00 0.451177E+00 0.400369E+00 0.344245E+00 0.323562E+00 0.309446E+00 0.298866E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213363E+00 0.386143E+00 0.431445E+00 0.450385E+00 0.474472E+00 0.478855E+00 0.486274E+00 0.470391E+00 0.440781E+00 0.413767E+00 0.360824E+00 0.330157E+00 0.316928E+00 0.307717E+00 0.298514E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207134E+00 0.363668E+00 0.422156E+00 0.441454E+00 0.450439E+00 0.466581E+00 0.468130E+00 0.444866E+00 0.429893E+00 0.386255E+00 0.333052E+00 0.318701E+00 0.310466E+00 0.303553E+00 0.293093E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.201227E+00 0.351862E+00 0.411978E+00 0.433362E+00 0.430894E+00 0.447671E+00 0.449712E+00 0.425497E+00 0.419767E+00 0.377345E+00 0.328893E+00 0.315057E+00 0.306386E+00 0.298870E+00 0.276553E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193400E+00 0.348234E+00 0.394663E+00 0.423053E+00 0.419846E+00 0.421641E+00 0.410987E+00 0.408790E+00 0.386708E+00 0.340757E+00 0.316693E+00 0.306188E+00 0.298829E+00 0.293092E+00 0.114488E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185466E+00 0.341805E+00 0.375595E+00 0.397442E+00 0.409417E+00 0.405853E+00 0.383982E+00 0.387150E+00 0.357457E+00 0.311980E+00 0.301083E+00 0.295771E+00 0.291857E+00 0.288145E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183500E+00 0.331573E+00 0.359598E+00 0.379452E+00 0.399557E+00 0.398299E+00 0.374835E+00 0.370307E+00 0.341013E+00 0.299158E+00 0.291863E+00 0.289415E+00 0.287480E+00 0.284671E+00 0.265901E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181895E+00 0.316145E+00 0.344217E+00 0.367778E+00 0.383056E+00 0.371881E+00 0.367057E+00 0.346374E+00 0.304052E+00 0.290014E+00 0.287564E+00 0.286390E+00 0.284618E+00 0.282803E+00 0.276779E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180232E+00 0.301970E+00 0.334695E+00 0.349911E+00 0.361262E+00 0.351118E+00 0.356025E+00 0.336755E+00 0.291726E+00 0.286593E+00 0.285082E+00 0.283277E+00 0.280628E+00 0.278207E+00 0.267506E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177618E+00 0.287631E+00 0.324752E+00 0.340318E+00 0.340922E+00 0.330252E+00 0.340001E+00 0.324688E+00 0.286435E+00 0.281670E+00 0.278771E+00 0.276174E+00 0.273386E+00 0.271016E+00 0.105509E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.170140E+00 0.267170E+00 0.304740E+00 0.324020E+00 0.318518E+00 0.319397E+00 0.324633E+00 0.309817E+00 0.273651E+00 0.269536E+00 0.267210E+00 0.266137E+00 0.266383E+00 0.265985E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150633E+00 0.247066E+00 0.278267E+00 0.300154E+00 0.304579E+00 0.313533E+00 0.305479E+00 0.268517E+00 0.261728E+00 0.260106E+00 0.256337E+00 0.257571E+00 0.259383E+00 0.259812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.120483E+00 0.230575E+00 0.270093E+00 0.271766E+00 0.286377E+00 0.298631E+00 0.295276E+00 0.259402E+00 0.256607E+00 0.254268E+00 0.147090E+00 0.222215E+00 0.232742E+00 0.238435E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.878691E-03 0.211007E+00 0.249794E+00 0.258967E+00 0.271493E+00 0.284218E+00 0.281958E+00 0.245814E+00 0.243004E+00 0.138794E+00 -0.900000E+01 0.379516E-03 0.185099E+00 0.147075E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272668E+00 0.378582E+00 0.441543E+00 0.469998E+00 0.466282E+00 0.463681E+00 0.445031E+00 0.443156E+00 0.427896E+00 0.402589E+00 0.391003E+00 0.334458E+00 0.276040E+00 0.243667E+00 0.226598E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.291837E+00 0.450342E+00 0.514812E+00 0.552782E+00 0.554403E+00 0.549916E+00 0.526168E+00 0.528629E+00 0.523982E+00 0.496033E+00 0.490472E+00 0.423821E+00 0.355631E+00 0.332144E+00 0.320110E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.289513E+00 0.450503E+00 0.513034E+00 0.550254E+00 0.553583E+00 0.549839E+00 0.526910E+00 0.528599E+00 0.525546E+00 0.497983E+00 0.492850E+00 0.426895E+00 0.358086E+00 0.336117E+00 0.325307E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.287072E+00 0.449709E+00 0.510046E+00 0.546165E+00 0.551223E+00 0.554184E+00 0.543585E+00 0.530644E+00 0.529225E+00 0.500550E+00 0.494551E+00 0.429644E+00 0.361332E+00 0.342164E+00 0.333395E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.284183E+00 0.448444E+00 0.506593E+00 0.541236E+00 0.549981E+00 0.550750E+00 0.541928E+00 0.531417E+00 0.534917E+00 0.505920E+00 0.495174E+00 0.433523E+00 0.368408E+00 0.354026E+00 0.348834E+00 0.336433E+00 -0.900000E+01 -0.900000E+01 + 0.280920E+00 0.447299E+00 0.503112E+00 0.536325E+00 0.556921E+00 0.547772E+00 0.539901E+00 0.531012E+00 0.556473E+00 0.532079E+00 0.502171E+00 0.452032E+00 0.409136E+00 0.400116E+00 0.396624E+00 0.389688E+00 -0.900000E+01 -0.900000E+01 + 0.276907E+00 0.445631E+00 0.499244E+00 0.529634E+00 0.553003E+00 0.544154E+00 0.538458E+00 0.531884E+00 0.557938E+00 0.534508E+00 0.504131E+00 0.500089E+00 0.497305E+00 0.494463E+00 0.492535E+00 0.489890E+00 -0.900000E+01 -0.900000E+01 + 0.272294E+00 0.444101E+00 0.495834E+00 0.522835E+00 0.549068E+00 0.541723E+00 0.538092E+00 0.533292E+00 0.557383E+00 0.533882E+00 0.503687E+00 0.500476E+00 0.500865E+00 0.502168E+00 0.503336E+00 0.501957E+00 -0.900000E+01 -0.900000E+01 + 0.267371E+00 0.442933E+00 0.493143E+00 0.516685E+00 0.545568E+00 0.539655E+00 0.539388E+00 0.538134E+00 0.555858E+00 0.532908E+00 0.502835E+00 0.498986E+00 0.497862E+00 0.497135E+00 0.496246E+00 0.489970E+00 -0.900000E+01 -0.900000E+01 + 0.262768E+00 0.441916E+00 0.489939E+00 0.511560E+00 0.542235E+00 0.538462E+00 0.545705E+00 0.552312E+00 0.557228E+00 0.532990E+00 0.502614E+00 0.495911E+00 0.491010E+00 0.487668E+00 0.483047E+00 0.461643E+00 -0.900000E+01 -0.900000E+01 + 0.257650E+00 0.440230E+00 0.485979E+00 0.505169E+00 0.539488E+00 0.538163E+00 0.546234E+00 0.553084E+00 0.558129E+00 0.533235E+00 0.501991E+00 0.489789E+00 0.481186E+00 0.477053E+00 0.473701E+00 0.232228E+00 -0.900000E+01 -0.900000E+01 + 0.252081E+00 0.437853E+00 0.481838E+00 0.499475E+00 0.537051E+00 0.537786E+00 0.546102E+00 0.554000E+00 0.558500E+00 0.532844E+00 0.499870E+00 0.467570E+00 0.446787E+00 0.438947E+00 0.430477E+00 0.681289E-01 -0.900000E+01 -0.900000E+01 + 0.246351E+00 0.435251E+00 0.477277E+00 0.493866E+00 0.530737E+00 0.537299E+00 0.542840E+00 0.548874E+00 0.558662E+00 0.532131E+00 0.498035E+00 0.427450E+00 0.361330E+00 0.341513E+00 0.321037E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239900E+00 0.431747E+00 0.472202E+00 0.488416E+00 0.521204E+00 0.536018E+00 0.535798E+00 0.535414E+00 0.554017E+00 0.528035E+00 0.493298E+00 0.423304E+00 0.357253E+00 0.333538E+00 0.217816E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233020E+00 0.426988E+00 0.466804E+00 0.484842E+00 0.520634E+00 0.535010E+00 0.533443E+00 0.529896E+00 0.546651E+00 0.523672E+00 0.488110E+00 0.418753E+00 0.354937E+00 0.328555E+00 0.213527E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226082E+00 0.421290E+00 0.461607E+00 0.477668E+00 0.517721E+00 0.529460E+00 0.521387E+00 0.521844E+00 0.526937E+00 0.504215E+00 0.459852E+00 0.392728E+00 0.346043E+00 0.321830E+00 0.209920E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219658E+00 0.414379E+00 0.456083E+00 0.467318E+00 0.509790E+00 0.520817E+00 0.505178E+00 0.510400E+00 0.502052E+00 0.479496E+00 0.423277E+00 0.356168E+00 0.331389E+00 0.310388E+00 0.212632E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213200E+00 0.404922E+00 0.449071E+00 0.460807E+00 0.499698E+00 0.513292E+00 0.499426E+00 0.492993E+00 0.476528E+00 0.466817E+00 0.412789E+00 0.350455E+00 0.327190E+00 0.293974E+00 0.226246E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207526E+00 0.391700E+00 0.438929E+00 0.454295E+00 0.482885E+00 0.492971E+00 0.492328E+00 0.476786E+00 0.450443E+00 0.449122E+00 0.398030E+00 0.342959E+00 0.322979E+00 0.309418E+00 0.299658E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202016E+00 0.374419E+00 0.427805E+00 0.447834E+00 0.465234E+00 0.472310E+00 0.483712E+00 0.469072E+00 0.439772E+00 0.411980E+00 0.359934E+00 0.329484E+00 0.316549E+00 0.307782E+00 0.298829E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.195820E+00 0.353064E+00 0.419199E+00 0.440431E+00 0.444639E+00 0.459984E+00 0.464763E+00 0.443332E+00 0.429761E+00 0.385917E+00 0.332936E+00 0.318572E+00 0.310546E+00 0.304169E+00 0.294068E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.189570E+00 0.349515E+00 0.407492E+00 0.432971E+00 0.428753E+00 0.441780E+00 0.446164E+00 0.424152E+00 0.419593E+00 0.377531E+00 0.329153E+00 0.315224E+00 0.307038E+00 0.300208E+00 0.278591E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183375E+00 0.346495E+00 0.389986E+00 0.421993E+00 0.420363E+00 0.420206E+00 0.409882E+00 0.408749E+00 0.386982E+00 0.341203E+00 0.317121E+00 0.307017E+00 0.300048E+00 0.294608E+00 0.114707E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178965E+00 0.341649E+00 0.375511E+00 0.397161E+00 0.410610E+00 0.407187E+00 0.385152E+00 0.388766E+00 0.358955E+00 0.313143E+00 0.302242E+00 0.297116E+00 0.293318E+00 0.289531E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174856E+00 0.333529E+00 0.359317E+00 0.377127E+00 0.398876E+00 0.399446E+00 0.376769E+00 0.371618E+00 0.343494E+00 0.300744E+00 0.293434E+00 0.291081E+00 0.288938E+00 0.285739E+00 0.267415E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.170032E+00 0.313927E+00 0.341340E+00 0.363509E+00 0.380377E+00 0.371049E+00 0.368043E+00 0.348062E+00 0.305344E+00 0.291065E+00 0.288959E+00 0.288170E+00 0.286631E+00 0.284744E+00 0.279426E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167180E+00 0.301885E+00 0.331678E+00 0.346706E+00 0.352952E+00 0.345874E+00 0.355723E+00 0.337839E+00 0.293197E+00 0.287562E+00 0.286430E+00 0.285320E+00 0.283419E+00 0.280805E+00 0.269886E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.163088E+00 0.285412E+00 0.322537E+00 0.338172E+00 0.338299E+00 0.328717E+00 0.340644E+00 0.325779E+00 0.289176E+00 0.284759E+00 0.282854E+00 0.280585E+00 0.277556E+00 0.274284E+00 0.108903E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.157515E+00 0.266067E+00 0.304379E+00 0.324086E+00 0.318512E+00 0.319586E+00 0.326252E+00 0.312453E+00 0.277010E+00 0.272057E+00 0.269570E+00 0.268385E+00 0.268187E+00 0.267110E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.144281E+00 0.247889E+00 0.279832E+00 0.303723E+00 0.308452E+00 0.316393E+00 0.307474E+00 0.270935E+00 0.263953E+00 0.262107E+00 0.258425E+00 0.259496E+00 0.261056E+00 0.261364E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.120618E+00 0.232137E+00 0.270503E+00 0.279510E+00 0.294544E+00 0.306633E+00 0.298940E+00 0.260723E+00 0.258145E+00 0.256165E+00 0.151603E+00 0.228435E+00 0.240482E+00 0.244744E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.890127E-03 0.221102E+00 0.256356E+00 0.263853E+00 0.279102E+00 0.291627E+00 0.288419E+00 0.250076E+00 0.246337E+00 0.140596E+00 -0.900000E+01 0.382486E-03 0.188754E+00 0.150311E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.262571E+00 0.378925E+00 0.443382E+00 0.469369E+00 0.463697E+00 0.457560E+00 0.438023E+00 0.434845E+00 0.419393E+00 0.396272E+00 0.387023E+00 0.331183E+00 0.273497E+00 0.241629E+00 0.224751E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.281509E+00 0.452514E+00 0.516748E+00 0.551756E+00 0.553003E+00 0.547465E+00 0.521593E+00 0.520509E+00 0.514316E+00 0.491732E+00 0.490013E+00 0.421818E+00 0.354186E+00 0.330411E+00 0.317943E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.278950E+00 0.452622E+00 0.515423E+00 0.548647E+00 0.551961E+00 0.547304E+00 0.522342E+00 0.520121E+00 0.517568E+00 0.494563E+00 0.491567E+00 0.424757E+00 0.356731E+00 0.334820E+00 0.323806E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276165E+00 0.451393E+00 0.512441E+00 0.543706E+00 0.549224E+00 0.551428E+00 0.540264E+00 0.522251E+00 0.520840E+00 0.495805E+00 0.491328E+00 0.427088E+00 0.360088E+00 0.340984E+00 0.332087E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.273134E+00 0.449581E+00 0.509000E+00 0.537764E+00 0.547250E+00 0.548351E+00 0.538342E+00 0.523051E+00 0.525154E+00 0.499152E+00 0.490050E+00 0.430432E+00 0.366944E+00 0.352609E+00 0.347449E+00 0.334039E+00 -0.900000E+01 -0.900000E+01 + 0.269692E+00 0.447525E+00 0.505351E+00 0.532118E+00 0.552084E+00 0.545868E+00 0.536159E+00 0.523070E+00 0.544612E+00 0.526370E+00 0.497173E+00 0.448057E+00 0.406670E+00 0.397506E+00 0.393772E+00 0.386229E+00 -0.900000E+01 -0.900000E+01 + 0.265803E+00 0.445381E+00 0.501540E+00 0.524668E+00 0.547606E+00 0.543259E+00 0.534762E+00 0.524568E+00 0.548027E+00 0.529752E+00 0.499554E+00 0.495764E+00 0.493000E+00 0.490085E+00 0.487949E+00 0.484710E+00 -0.900000E+01 -0.900000E+01 + 0.262224E+00 0.443349E+00 0.497823E+00 0.517364E+00 0.543446E+00 0.541071E+00 0.534649E+00 0.525714E+00 0.548738E+00 0.529306E+00 0.499371E+00 0.496047E+00 0.495987E+00 0.496921E+00 0.497367E+00 0.496017E+00 -0.900000E+01 -0.900000E+01 + 0.257475E+00 0.441341E+00 0.494219E+00 0.510255E+00 0.539572E+00 0.539083E+00 0.536823E+00 0.529935E+00 0.547536E+00 0.527748E+00 0.498382E+00 0.494675E+00 0.493445E+00 0.493147E+00 0.492280E+00 0.485976E+00 -0.900000E+01 -0.900000E+01 + 0.252964E+00 0.440266E+00 0.490547E+00 0.503478E+00 0.536161E+00 0.537150E+00 0.543110E+00 0.543578E+00 0.549079E+00 0.528147E+00 0.498326E+00 0.492316E+00 0.487732E+00 0.484215E+00 0.480637E+00 0.460853E+00 -0.900000E+01 -0.900000E+01 + 0.247821E+00 0.437876E+00 0.486093E+00 0.496970E+00 0.533216E+00 0.536721E+00 0.542660E+00 0.544235E+00 0.550377E+00 0.529273E+00 0.497935E+00 0.487282E+00 0.479552E+00 0.476324E+00 0.473119E+00 0.229695E+00 -0.900000E+01 -0.900000E+01 + 0.242299E+00 0.434633E+00 0.481159E+00 0.491800E+00 0.530220E+00 0.535968E+00 0.542078E+00 0.543940E+00 0.550909E+00 0.529393E+00 0.496688E+00 0.465238E+00 0.445057E+00 0.438050E+00 0.429819E+00 0.727743E-01 -0.900000E+01 -0.900000E+01 + 0.236397E+00 0.431046E+00 0.475485E+00 0.486358E+00 0.524884E+00 0.535560E+00 0.537947E+00 0.537383E+00 0.550026E+00 0.528499E+00 0.495284E+00 0.425161E+00 0.360038E+00 0.340187E+00 0.320361E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.230261E+00 0.426962E+00 0.469292E+00 0.481142E+00 0.516063E+00 0.534552E+00 0.530687E+00 0.523282E+00 0.544110E+00 0.524228E+00 0.490548E+00 0.420934E+00 0.355863E+00 0.331815E+00 0.213971E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224031E+00 0.422525E+00 0.463075E+00 0.476739E+00 0.513310E+00 0.533258E+00 0.528719E+00 0.518058E+00 0.533878E+00 0.517156E+00 0.484280E+00 0.416060E+00 0.353012E+00 0.326225E+00 0.209418E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217638E+00 0.417425E+00 0.457737E+00 0.469987E+00 0.509229E+00 0.526159E+00 0.516041E+00 0.511664E+00 0.513324E+00 0.496286E+00 0.455005E+00 0.390090E+00 0.344135E+00 0.319874E+00 0.206966E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.211863E+00 0.410158E+00 0.452236E+00 0.461043E+00 0.500175E+00 0.516650E+00 0.500289E+00 0.503053E+00 0.489604E+00 0.470780E+00 0.417360E+00 0.353330E+00 0.328956E+00 0.308753E+00 0.211789E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205854E+00 0.399415E+00 0.446057E+00 0.454946E+00 0.486910E+00 0.509685E+00 0.495459E+00 0.486727E+00 0.466431E+00 0.458819E+00 0.406126E+00 0.346754E+00 0.323956E+00 0.292466E+00 0.224992E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.200047E+00 0.383238E+00 0.436170E+00 0.450056E+00 0.470558E+00 0.489449E+00 0.489659E+00 0.471564E+00 0.442748E+00 0.440294E+00 0.390684E+00 0.338554E+00 0.319617E+00 0.305901E+00 0.295870E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.194705E+00 0.361606E+00 0.424751E+00 0.444949E+00 0.456360E+00 0.468975E+00 0.481735E+00 0.465891E+00 0.435471E+00 0.406379E+00 0.355425E+00 0.326105E+00 0.313459E+00 0.304570E+00 0.295677E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190931E+00 0.350111E+00 0.415754E+00 0.438433E+00 0.439746E+00 0.455255E+00 0.463087E+00 0.441574E+00 0.427730E+00 0.382561E+00 0.330238E+00 0.315723E+00 0.307350E+00 0.300502E+00 0.290354E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188698E+00 0.345857E+00 0.400984E+00 0.431175E+00 0.426437E+00 0.437659E+00 0.444198E+00 0.423504E+00 0.419131E+00 0.375794E+00 0.327062E+00 0.312348E+00 0.303522E+00 0.296452E+00 0.275757E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185032E+00 0.343291E+00 0.389344E+00 0.419326E+00 0.420585E+00 0.420639E+00 0.410633E+00 0.410866E+00 0.388211E+00 0.340784E+00 0.315588E+00 0.304477E+00 0.297172E+00 0.291741E+00 0.120190E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180832E+00 0.340961E+00 0.374362E+00 0.396212E+00 0.412047E+00 0.408933E+00 0.386775E+00 0.390837E+00 0.360598E+00 0.312974E+00 0.300638E+00 0.294682E+00 0.290765E+00 0.287098E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175389E+00 0.333191E+00 0.359582E+00 0.378073E+00 0.400081E+00 0.401242E+00 0.376938E+00 0.372443E+00 0.343150E+00 0.299452E+00 0.291275E+00 0.288545E+00 0.286642E+00 0.283667E+00 0.262920E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169617E+00 0.313000E+00 0.341730E+00 0.359906E+00 0.379631E+00 0.371024E+00 0.367800E+00 0.347084E+00 0.303604E+00 0.288426E+00 0.285424E+00 0.284398E+00 0.283320E+00 0.281880E+00 0.276184E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.164044E+00 0.301744E+00 0.330250E+00 0.345724E+00 0.347995E+00 0.342526E+00 0.352788E+00 0.335429E+00 0.290710E+00 0.283653E+00 0.281535E+00 0.280186E+00 0.278673E+00 0.276896E+00 0.266287E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154985E+00 0.275864E+00 0.315488E+00 0.336441E+00 0.336869E+00 0.323571E+00 0.336591E+00 0.323461E+00 0.285641E+00 0.280367E+00 0.278167E+00 0.276141E+00 0.274288E+00 0.271208E+00 0.115009E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142022E+00 0.263441E+00 0.302631E+00 0.324064E+00 0.316248E+00 0.316349E+00 0.322171E+00 0.308656E+00 0.273364E+00 0.268760E+00 0.266798E+00 0.265759E+00 0.265225E+00 0.264053E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.129538E+00 0.247040E+00 0.278562E+00 0.307171E+00 0.308300E+00 0.314411E+00 0.303983E+00 0.267485E+00 0.260351E+00 0.259384E+00 0.256413E+00 0.257499E+00 0.258440E+00 0.258536E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.104500E+00 0.227432E+00 0.267889E+00 0.281017E+00 0.296383E+00 0.307250E+00 0.296865E+00 0.258397E+00 0.255239E+00 0.253114E+00 0.154934E+00 0.228742E+00 0.240872E+00 0.245551E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.886158E-03 0.222795E+00 0.259855E+00 0.267879E+00 0.285756E+00 0.298015E+00 0.290401E+00 0.248999E+00 0.245911E+00 0.141110E+00 -0.900000E+01 0.396644E-03 0.189510E+00 0.152093E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253983E+00 0.375782E+00 0.440433E+00 0.465370E+00 0.461263E+00 0.454566E+00 0.434911E+00 0.430069E+00 0.411064E+00 0.389466E+00 0.382440E+00 0.327819E+00 0.271371E+00 0.239889E+00 0.223107E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.273020E+00 0.450767E+00 0.515574E+00 0.547067E+00 0.549338E+00 0.546377E+00 0.521653E+00 0.516668E+00 0.500258E+00 0.485174E+00 0.487272E+00 0.417160E+00 0.351698E+00 0.327841E+00 0.315683E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270116E+00 0.450787E+00 0.514486E+00 0.544520E+00 0.546825E+00 0.545139E+00 0.521079E+00 0.514987E+00 0.501401E+00 0.485375E+00 0.487181E+00 0.419057E+00 0.354013E+00 0.332432E+00 0.321689E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267067E+00 0.449633E+00 0.511819E+00 0.539601E+00 0.543137E+00 0.548328E+00 0.536626E+00 0.513407E+00 0.501621E+00 0.484002E+00 0.485055E+00 0.420560E+00 0.357307E+00 0.338772E+00 0.329900E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263317E+00 0.448141E+00 0.508646E+00 0.534240E+00 0.540482E+00 0.545105E+00 0.534867E+00 0.512080E+00 0.506281E+00 0.487333E+00 0.482920E+00 0.423621E+00 0.364099E+00 0.350030E+00 0.344507E+00 0.329885E+00 -0.900000E+01 -0.900000E+01 + 0.259703E+00 0.446373E+00 0.505071E+00 0.528876E+00 0.543259E+00 0.542705E+00 0.533331E+00 0.511445E+00 0.525045E+00 0.515105E+00 0.490123E+00 0.440541E+00 0.401804E+00 0.392765E+00 0.388812E+00 0.381461E+00 -0.900000E+01 -0.900000E+01 + 0.255927E+00 0.444016E+00 0.500957E+00 0.521721E+00 0.538575E+00 0.540912E+00 0.532174E+00 0.511797E+00 0.528220E+00 0.518441E+00 0.492540E+00 0.490454E+00 0.489079E+00 0.487234E+00 0.484242E+00 0.480298E+00 -0.900000E+01 -0.900000E+01 + 0.252235E+00 0.441201E+00 0.497199E+00 0.514742E+00 0.533755E+00 0.538730E+00 0.531240E+00 0.512532E+00 0.529567E+00 0.518567E+00 0.492001E+00 0.490942E+00 0.491340E+00 0.491585E+00 0.489918E+00 0.485520E+00 -0.900000E+01 -0.900000E+01 + 0.247720E+00 0.438742E+00 0.493421E+00 0.507803E+00 0.529137E+00 0.537012E+00 0.532909E+00 0.517840E+00 0.529226E+00 0.517615E+00 0.491512E+00 0.489458E+00 0.488925E+00 0.487761E+00 0.485379E+00 0.478838E+00 -0.900000E+01 -0.900000E+01 + 0.243471E+00 0.437035E+00 0.489295E+00 0.500972E+00 0.524880E+00 0.535564E+00 0.538506E+00 0.530278E+00 0.529303E+00 0.517604E+00 0.491284E+00 0.486949E+00 0.483727E+00 0.480460E+00 0.476461E+00 0.458209E+00 -0.900000E+01 -0.900000E+01 + 0.238902E+00 0.434773E+00 0.484219E+00 0.494128E+00 0.521515E+00 0.534801E+00 0.537819E+00 0.529198E+00 0.529825E+00 0.518065E+00 0.490625E+00 0.481930E+00 0.475988E+00 0.473527E+00 0.471682E+00 0.227850E+00 -0.900000E+01 -0.900000E+01 + 0.234066E+00 0.431410E+00 0.478630E+00 0.487573E+00 0.518617E+00 0.533988E+00 0.536521E+00 0.527943E+00 0.529645E+00 0.517960E+00 0.489334E+00 0.459982E+00 0.441464E+00 0.435822E+00 0.428554E+00 0.743430E-01 -0.900000E+01 -0.900000E+01 + 0.229019E+00 0.427144E+00 0.472701E+00 0.481636E+00 0.513579E+00 0.532978E+00 0.531924E+00 0.521291E+00 0.528198E+00 0.516771E+00 0.487700E+00 0.419900E+00 0.357437E+00 0.338415E+00 0.319092E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224731E+00 0.422197E+00 0.466412E+00 0.475737E+00 0.504710E+00 0.530551E+00 0.524129E+00 0.508075E+00 0.522891E+00 0.511504E+00 0.482803E+00 0.415827E+00 0.353067E+00 0.329330E+00 0.209679E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219370E+00 0.416966E+00 0.460356E+00 0.470600E+00 0.499812E+00 0.526956E+00 0.521640E+00 0.505140E+00 0.514372E+00 0.502146E+00 0.476276E+00 0.410752E+00 0.350036E+00 0.323606E+00 0.204871E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213807E+00 0.411926E+00 0.454642E+00 0.462884E+00 0.492557E+00 0.519619E+00 0.510018E+00 0.502158E+00 0.496694E+00 0.481819E+00 0.445432E+00 0.384674E+00 0.340706E+00 0.317664E+00 0.203751E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207891E+00 0.404274E+00 0.448631E+00 0.454144E+00 0.481563E+00 0.510575E+00 0.495974E+00 0.496586E+00 0.477065E+00 0.459220E+00 0.408177E+00 0.348320E+00 0.325776E+00 0.306590E+00 0.208633E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202627E+00 0.389098E+00 0.442715E+00 0.449468E+00 0.469918E+00 0.502254E+00 0.492960E+00 0.483095E+00 0.458403E+00 0.448668E+00 0.396649E+00 0.340780E+00 0.320047E+00 0.290436E+00 0.221025E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197391E+00 0.370662E+00 0.433749E+00 0.446109E+00 0.459132E+00 0.482209E+00 0.488120E+00 0.470965E+00 0.439447E+00 0.434534E+00 0.385685E+00 0.334873E+00 0.316181E+00 0.301858E+00 0.290786E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.192747E+00 0.356619E+00 0.423309E+00 0.442277E+00 0.449778E+00 0.462819E+00 0.480512E+00 0.466592E+00 0.434918E+00 0.404473E+00 0.353262E+00 0.323409E+00 0.310188E+00 0.300277E+00 0.290968E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187910E+00 0.349886E+00 0.412760E+00 0.436312E+00 0.435458E+00 0.448400E+00 0.461312E+00 0.441891E+00 0.428312E+00 0.381445E+00 0.328458E+00 0.312932E+00 0.303307E+00 0.295528E+00 0.284757E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183271E+00 0.344645E+00 0.400516E+00 0.428926E+00 0.425952E+00 0.435930E+00 0.444401E+00 0.423632E+00 0.420370E+00 0.375362E+00 0.325187E+00 0.309372E+00 0.299310E+00 0.291425E+00 0.271311E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178682E+00 0.342328E+00 0.392775E+00 0.420509E+00 0.421863E+00 0.422732E+00 0.413772E+00 0.413178E+00 0.389409E+00 0.339464E+00 0.313693E+00 0.301764E+00 0.293611E+00 0.287553E+00 0.130802E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175150E+00 0.339569E+00 0.373937E+00 0.398495E+00 0.414047E+00 0.411739E+00 0.390308E+00 0.394212E+00 0.362748E+00 0.313305E+00 0.299933E+00 0.292562E+00 0.287746E+00 0.283831E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171257E+00 0.327292E+00 0.361300E+00 0.382240E+00 0.403253E+00 0.403297E+00 0.378271E+00 0.373479E+00 0.343064E+00 0.299436E+00 0.290113E+00 0.286110E+00 0.283549E+00 0.280867E+00 0.255818E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167185E+00 0.312529E+00 0.344724E+00 0.362830E+00 0.381240E+00 0.371836E+00 0.368137E+00 0.346560E+00 0.303021E+00 0.287672E+00 0.283172E+00 0.280862E+00 0.279042E+00 0.277599E+00 0.271129E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162752E+00 0.300835E+00 0.335792E+00 0.348855E+00 0.349933E+00 0.343067E+00 0.352205E+00 0.333678E+00 0.289201E+00 0.281109E+00 0.277428E+00 0.274922E+00 0.272525E+00 0.270243E+00 0.259539E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.152046E+00 0.274462E+00 0.314926E+00 0.336711E+00 0.337545E+00 0.321368E+00 0.329141E+00 0.317884E+00 0.280672E+00 0.274929E+00 0.272311E+00 0.269900E+00 0.267792E+00 0.265427E+00 0.121677E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138747E+00 0.261898E+00 0.300635E+00 0.324364E+00 0.315294E+00 0.314348E+00 0.317559E+00 0.304401E+00 0.268195E+00 0.263739E+00 0.261860E+00 0.261197E+00 0.261255E+00 0.260509E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.130108E+00 0.248373E+00 0.278413E+00 0.310733E+00 0.309756E+00 0.314250E+00 0.301657E+00 0.263586E+00 0.256647E+00 0.255305E+00 0.252762E+00 0.254173E+00 0.255176E+00 0.254963E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.104472E+00 0.231681E+00 0.268228E+00 0.281124E+00 0.297416E+00 0.307007E+00 0.294629E+00 0.255408E+00 0.251298E+00 0.249005E+00 0.153818E+00 0.226995E+00 0.239129E+00 0.243242E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.946783E-03 0.222499E+00 0.260446E+00 0.273058E+00 0.292032E+00 0.302944E+00 0.291998E+00 0.247779E+00 0.243159E+00 0.139847E+00 -0.900000E+01 0.411082E-03 0.189490E+00 0.153818E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.234843E+00 0.363218E+00 0.426782E+00 0.454495E+00 0.455617E+00 0.453831E+00 0.434167E+00 0.426445E+00 0.404405E+00 0.382134E+00 0.376343E+00 0.323998E+00 0.269156E+00 0.238680E+00 0.221795E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253211E+00 0.441448E+00 0.505510E+00 0.537208E+00 0.542817E+00 0.544546E+00 0.521410E+00 0.513166E+00 0.490242E+00 0.472637E+00 0.479470E+00 0.411888E+00 0.348246E+00 0.324894E+00 0.313299E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.250560E+00 0.441799E+00 0.504504E+00 0.534148E+00 0.539334E+00 0.542587E+00 0.520465E+00 0.510872E+00 0.488713E+00 0.471679E+00 0.478911E+00 0.413041E+00 0.350329E+00 0.329272E+00 0.318879E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.247863E+00 0.440405E+00 0.501692E+00 0.529430E+00 0.533765E+00 0.543872E+00 0.536291E+00 0.510413E+00 0.488042E+00 0.471946E+00 0.478029E+00 0.414231E+00 0.353401E+00 0.335232E+00 0.326589E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244606E+00 0.438793E+00 0.498333E+00 0.524075E+00 0.528309E+00 0.538944E+00 0.533560E+00 0.508562E+00 0.491357E+00 0.475644E+00 0.476205E+00 0.416645E+00 0.359718E+00 0.345834E+00 0.339990E+00 0.324067E+00 -0.900000E+01 -0.900000E+01 + 0.241928E+00 0.436604E+00 0.494898E+00 0.519322E+00 0.529028E+00 0.535039E+00 0.531097E+00 0.506576E+00 0.507043E+00 0.498486E+00 0.479427E+00 0.432142E+00 0.394853E+00 0.386433E+00 0.382436E+00 0.375350E+00 -0.900000E+01 -0.900000E+01 + 0.238544E+00 0.433954E+00 0.491270E+00 0.513003E+00 0.521992E+00 0.531901E+00 0.529007E+00 0.505099E+00 0.509331E+00 0.501033E+00 0.481423E+00 0.482765E+00 0.483584E+00 0.482595E+00 0.479953E+00 0.477327E+00 -0.900000E+01 -0.900000E+01 + 0.235555E+00 0.432031E+00 0.487201E+00 0.506072E+00 0.516153E+00 0.529188E+00 0.527553E+00 0.503921E+00 0.510291E+00 0.502316E+00 0.482140E+00 0.484003E+00 0.486198E+00 0.486501E+00 0.484843E+00 0.481455E+00 -0.900000E+01 -0.900000E+01 + 0.232311E+00 0.429650E+00 0.482880E+00 0.499482E+00 0.511388E+00 0.527651E+00 0.529242E+00 0.507844E+00 0.509746E+00 0.502003E+00 0.482587E+00 0.483945E+00 0.484886E+00 0.484500E+00 0.482731E+00 0.476116E+00 -0.900000E+01 -0.900000E+01 + 0.229557E+00 0.427051E+00 0.478434E+00 0.492427E+00 0.506196E+00 0.525370E+00 0.534039E+00 0.520960E+00 0.510845E+00 0.502578E+00 0.483574E+00 0.482110E+00 0.480804E+00 0.478965E+00 0.475072E+00 0.457496E+00 -0.900000E+01 -0.900000E+01 + 0.226522E+00 0.424849E+00 0.473833E+00 0.485173E+00 0.500429E+00 0.522906E+00 0.532430E+00 0.520009E+00 0.511167E+00 0.503543E+00 0.483820E+00 0.478571E+00 0.474145E+00 0.472425E+00 0.470392E+00 0.229500E+00 -0.900000E+01 -0.900000E+01 + 0.223230E+00 0.422482E+00 0.467578E+00 0.478417E+00 0.496414E+00 0.522285E+00 0.531732E+00 0.519761E+00 0.511188E+00 0.503084E+00 0.482008E+00 0.456834E+00 0.439338E+00 0.434161E+00 0.426978E+00 0.756850E-01 -0.900000E+01 -0.900000E+01 + 0.221264E+00 0.419902E+00 0.461797E+00 0.472187E+00 0.492012E+00 0.522695E+00 0.527521E+00 0.512330E+00 0.510041E+00 0.501255E+00 0.480231E+00 0.415636E+00 0.355021E+00 0.336765E+00 0.317495E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.218255E+00 0.415705E+00 0.456927E+00 0.466257E+00 0.484625E+00 0.520795E+00 0.518980E+00 0.498482E+00 0.506515E+00 0.495651E+00 0.474329E+00 0.410714E+00 0.350408E+00 0.326904E+00 0.205989E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215485E+00 0.409564E+00 0.452942E+00 0.461156E+00 0.479687E+00 0.516057E+00 0.515865E+00 0.497362E+00 0.499979E+00 0.486116E+00 0.465659E+00 0.404154E+00 0.346505E+00 0.320988E+00 0.202537E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.211753E+00 0.401342E+00 0.449145E+00 0.453777E+00 0.471057E+00 0.506883E+00 0.504828E+00 0.494604E+00 0.484818E+00 0.465390E+00 0.433535E+00 0.377061E+00 0.336725E+00 0.315246E+00 0.204209E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207946E+00 0.388783E+00 0.443770E+00 0.446054E+00 0.462317E+00 0.495952E+00 0.491736E+00 0.491630E+00 0.471776E+00 0.449634E+00 0.399502E+00 0.343477E+00 0.322804E+00 0.304409E+00 0.208247E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203145E+00 0.374225E+00 0.438278E+00 0.443889E+00 0.458310E+00 0.486279E+00 0.489023E+00 0.481523E+00 0.454992E+00 0.442573E+00 0.391654E+00 0.337413E+00 0.317995E+00 0.288789E+00 0.219681E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197233E+00 0.361701E+00 0.430496E+00 0.441711E+00 0.451640E+00 0.470427E+00 0.484545E+00 0.470031E+00 0.437928E+00 0.433326E+00 0.384319E+00 0.333363E+00 0.315056E+00 0.300890E+00 0.289097E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.191198E+00 0.357524E+00 0.420697E+00 0.438900E+00 0.445174E+00 0.454355E+00 0.478401E+00 0.466899E+00 0.435187E+00 0.404645E+00 0.352824E+00 0.322734E+00 0.308881E+00 0.298542E+00 0.288370E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184676E+00 0.352219E+00 0.410261E+00 0.433775E+00 0.433309E+00 0.444494E+00 0.461720E+00 0.443144E+00 0.429097E+00 0.381101E+00 0.327793E+00 0.311770E+00 0.301144E+00 0.292695E+00 0.282822E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178798E+00 0.346094E+00 0.401509E+00 0.427400E+00 0.424834E+00 0.435310E+00 0.445825E+00 0.424965E+00 0.421960E+00 0.375692E+00 0.324485E+00 0.307736E+00 0.296734E+00 0.289529E+00 0.271731E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.173204E+00 0.341869E+00 0.386176E+00 0.420351E+00 0.422077E+00 0.423264E+00 0.415240E+00 0.414832E+00 0.391691E+00 0.339716E+00 0.312670E+00 0.299869E+00 0.292128E+00 0.286249E+00 0.138596E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.168811E+00 0.334610E+00 0.370331E+00 0.400145E+00 0.414909E+00 0.412383E+00 0.391744E+00 0.396941E+00 0.365603E+00 0.314187E+00 0.299595E+00 0.292117E+00 0.286570E+00 0.281615E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.163810E+00 0.322959E+00 0.360233E+00 0.385391E+00 0.406349E+00 0.403902E+00 0.378009E+00 0.374832E+00 0.345485E+00 0.300829E+00 0.290888E+00 0.286063E+00 0.281954E+00 0.278179E+00 0.247295E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158690E+00 0.312113E+00 0.345699E+00 0.367592E+00 0.386828E+00 0.373256E+00 0.368338E+00 0.347281E+00 0.303605E+00 0.288074E+00 0.283461E+00 0.280091E+00 0.276741E+00 0.274720E+00 0.266917E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.152977E+00 0.294952E+00 0.336288E+00 0.353082E+00 0.357356E+00 0.349368E+00 0.356756E+00 0.336273E+00 0.289921E+00 0.281167E+00 0.276947E+00 0.273181E+00 0.269716E+00 0.267525E+00 0.256142E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145640E+00 0.276243E+00 0.319359E+00 0.339752E+00 0.340558E+00 0.324696E+00 0.328654E+00 0.315762E+00 0.277701E+00 0.271414E+00 0.268285E+00 0.265859E+00 0.263526E+00 0.261923E+00 0.128363E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140143E+00 0.262596E+00 0.305485E+00 0.326028E+00 0.316059E+00 0.315721E+00 0.318967E+00 0.305785E+00 0.268198E+00 0.262704E+00 0.260424E+00 0.259362E+00 0.258806E+00 0.257956E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.131775E+00 0.252363E+00 0.280534E+00 0.314716E+00 0.313302E+00 0.317469E+00 0.305644E+00 0.265982E+00 0.257369E+00 0.255178E+00 0.251135E+00 0.251601E+00 0.252840E+00 0.253222E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.108178E+00 0.239377E+00 0.271606E+00 0.283354E+00 0.301782E+00 0.309274E+00 0.295401E+00 0.254723E+00 0.249746E+00 0.246718E+00 0.151856E+00 0.223145E+00 0.236379E+00 0.240997E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.873015E-03 0.225488E+00 0.262004E+00 0.277329E+00 0.297100E+00 0.305240E+00 0.292490E+00 0.247764E+00 0.242189E+00 0.139285E+00 -0.900000E+01 0.421006E-03 0.190359E+00 0.155866E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215334E+00 0.345149E+00 0.409405E+00 0.438728E+00 0.446194E+00 0.450761E+00 0.435716E+00 0.429695E+00 0.406338E+00 0.380441E+00 0.372136E+00 0.321187E+00 0.266862E+00 0.237309E+00 0.220888E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235735E+00 0.428696E+00 0.491137E+00 0.521473E+00 0.532350E+00 0.539444E+00 0.522439E+00 0.517408E+00 0.491253E+00 0.465834E+00 0.470528E+00 0.408178E+00 0.345193E+00 0.322575E+00 0.312719E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233759E+00 0.429753E+00 0.490113E+00 0.518596E+00 0.527806E+00 0.536223E+00 0.521669E+00 0.514808E+00 0.489281E+00 0.464829E+00 0.471559E+00 0.409571E+00 0.347221E+00 0.326566E+00 0.318007E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231905E+00 0.429321E+00 0.488076E+00 0.514014E+00 0.521106E+00 0.535246E+00 0.534893E+00 0.514157E+00 0.487629E+00 0.465223E+00 0.472011E+00 0.411150E+00 0.350360E+00 0.332243E+00 0.324862E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229484E+00 0.428093E+00 0.485327E+00 0.509155E+00 0.514774E+00 0.528652E+00 0.531609E+00 0.511853E+00 0.488087E+00 0.467553E+00 0.471034E+00 0.413928E+00 0.356736E+00 0.342841E+00 0.337302E+00 0.320749E+00 -0.900000E+01 -0.900000E+01 + 0.227885E+00 0.426005E+00 0.482291E+00 0.504621E+00 0.514442E+00 0.523562E+00 0.528958E+00 0.508927E+00 0.504349E+00 0.486940E+00 0.473462E+00 0.429700E+00 0.391947E+00 0.383509E+00 0.379960E+00 0.372891E+00 -0.900000E+01 -0.900000E+01 + 0.226742E+00 0.423367E+00 0.478765E+00 0.498599E+00 0.506509E+00 0.519278E+00 0.526452E+00 0.506234E+00 0.502872E+00 0.488673E+00 0.476183E+00 0.480089E+00 0.480447E+00 0.479010E+00 0.476624E+00 0.473572E+00 -0.900000E+01 -0.900000E+01 + 0.225585E+00 0.421300E+00 0.475345E+00 0.492668E+00 0.498936E+00 0.515506E+00 0.524320E+00 0.504029E+00 0.502407E+00 0.490154E+00 0.477363E+00 0.480839E+00 0.482224E+00 0.482883E+00 0.481950E+00 0.478560E+00 -0.900000E+01 -0.900000E+01 + 0.224294E+00 0.418712E+00 0.471628E+00 0.486502E+00 0.491443E+00 0.511144E+00 0.523606E+00 0.506974E+00 0.501748E+00 0.490545E+00 0.477229E+00 0.480035E+00 0.481932E+00 0.482398E+00 0.480637E+00 0.475167E+00 -0.900000E+01 -0.900000E+01 + 0.223323E+00 0.415572E+00 0.467465E+00 0.480845E+00 0.484958E+00 0.507591E+00 0.526732E+00 0.518673E+00 0.502540E+00 0.491294E+00 0.477123E+00 0.478446E+00 0.478294E+00 0.477580E+00 0.474756E+00 0.458073E+00 -0.900000E+01 -0.900000E+01 + 0.221818E+00 0.412297E+00 0.463696E+00 0.474670E+00 0.478740E+00 0.504419E+00 0.524061E+00 0.516459E+00 0.501081E+00 0.489907E+00 0.475314E+00 0.473782E+00 0.471057E+00 0.470268E+00 0.468706E+00 0.230269E+00 -0.900000E+01 -0.900000E+01 + 0.220240E+00 0.408285E+00 0.459842E+00 0.468806E+00 0.473616E+00 0.502302E+00 0.521726E+00 0.513681E+00 0.498517E+00 0.487254E+00 0.471756E+00 0.451207E+00 0.435903E+00 0.432376E+00 0.424776E+00 0.760819E-01 -0.900000E+01 -0.900000E+01 + 0.218077E+00 0.403076E+00 0.455332E+00 0.462170E+00 0.466574E+00 0.500271E+00 0.516255E+00 0.504066E+00 0.495161E+00 0.483604E+00 0.468492E+00 0.408902E+00 0.351747E+00 0.334760E+00 0.315697E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215424E+00 0.397376E+00 0.450570E+00 0.456300E+00 0.457558E+00 0.497281E+00 0.508314E+00 0.489287E+00 0.491086E+00 0.478252E+00 0.462008E+00 0.402361E+00 0.346142E+00 0.324156E+00 0.204178E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.211722E+00 0.389051E+00 0.446097E+00 0.451775E+00 0.453871E+00 0.492873E+00 0.505627E+00 0.489145E+00 0.486910E+00 0.469762E+00 0.450625E+00 0.393728E+00 0.341213E+00 0.318307E+00 0.201969E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.208171E+00 0.379669E+00 0.441663E+00 0.444589E+00 0.449750E+00 0.485221E+00 0.496220E+00 0.488918E+00 0.477433E+00 0.452930E+00 0.420094E+00 0.367884E+00 0.332611E+00 0.313170E+00 0.203973E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203800E+00 0.371097E+00 0.437068E+00 0.437899E+00 0.447248E+00 0.474313E+00 0.483747E+00 0.487612E+00 0.466183E+00 0.439399E+00 0.390574E+00 0.338479E+00 0.320619E+00 0.303109E+00 0.208430E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198838E+00 0.364266E+00 0.434318E+00 0.437206E+00 0.445820E+00 0.466134E+00 0.480097E+00 0.476794E+00 0.450864E+00 0.436300E+00 0.386277E+00 0.334027E+00 0.316538E+00 0.287384E+00 0.219860E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193280E+00 0.359863E+00 0.426931E+00 0.437290E+00 0.443093E+00 0.455103E+00 0.476842E+00 0.466469E+00 0.435263E+00 0.430463E+00 0.380577E+00 0.331051E+00 0.314175E+00 0.300919E+00 0.289433E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.186977E+00 0.355529E+00 0.417195E+00 0.435512E+00 0.440349E+00 0.444962E+00 0.471465E+00 0.463495E+00 0.433072E+00 0.402623E+00 0.351213E+00 0.322255E+00 0.309093E+00 0.299741E+00 0.288675E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181267E+00 0.350311E+00 0.407763E+00 0.431500E+00 0.430369E+00 0.439710E+00 0.457578E+00 0.442129E+00 0.428482E+00 0.380500E+00 0.327057E+00 0.311621E+00 0.301223E+00 0.293153E+00 0.281397E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175269E+00 0.344885E+00 0.392815E+00 0.425204E+00 0.423469E+00 0.433644E+00 0.442826E+00 0.424933E+00 0.422592E+00 0.376329E+00 0.324322E+00 0.307822E+00 0.296960E+00 0.289479E+00 0.270774E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169723E+00 0.338627E+00 0.375214E+00 0.419338E+00 0.421715E+00 0.421660E+00 0.413185E+00 0.415605E+00 0.392680E+00 0.339870E+00 0.312926E+00 0.300090E+00 0.292260E+00 0.286832E+00 0.138809E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.163682E+00 0.329875E+00 0.365311E+00 0.402214E+00 0.415496E+00 0.410559E+00 0.388910E+00 0.396413E+00 0.366426E+00 0.314347E+00 0.299950E+00 0.291563E+00 0.286950E+00 0.283324E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156638E+00 0.320806E+00 0.357623E+00 0.389040E+00 0.408369E+00 0.402136E+00 0.376354E+00 0.375139E+00 0.347057E+00 0.301499E+00 0.290492E+00 0.285599E+00 0.283180E+00 0.280655E+00 0.243636E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.148586E+00 0.314054E+00 0.347227E+00 0.372073E+00 0.392744E+00 0.375659E+00 0.369296E+00 0.348383E+00 0.303858E+00 0.288676E+00 0.284176E+00 0.281601E+00 0.279442E+00 0.277452E+00 0.267785E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142564E+00 0.289178E+00 0.333999E+00 0.357232E+00 0.367053E+00 0.357695E+00 0.363123E+00 0.340153E+00 0.291354E+00 0.283363E+00 0.279466E+00 0.276633E+00 0.273448E+00 0.270654E+00 0.259047E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.135935E+00 0.278216E+00 0.323641E+00 0.343823E+00 0.344699E+00 0.331070E+00 0.339393E+00 0.325297E+00 0.284393E+00 0.276240E+00 0.272060E+00 0.269060E+00 0.265863E+00 0.264136E+00 0.135540E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126710E+00 0.265632E+00 0.312370E+00 0.329308E+00 0.319001E+00 0.321038E+00 0.328288E+00 0.316118E+00 0.277337E+00 0.269318E+00 0.264749E+00 0.262201E+00 0.260565E+00 0.258960E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116110E+00 0.256402E+00 0.283926E+00 0.318209E+00 0.316810E+00 0.322785E+00 0.315029E+00 0.275278E+00 0.264425E+00 0.259347E+00 0.253284E+00 0.253029E+00 0.253354E+00 0.253498E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.938899E-01 0.243923E+00 0.273564E+00 0.285871E+00 0.305908E+00 0.314590E+00 0.300816E+00 0.258368E+00 0.252065E+00 0.248434E+00 0.154138E+00 0.222469E+00 0.234677E+00 0.239907E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.761253E-03 0.229747E+00 0.263438E+00 0.278238E+00 0.298372E+00 0.306057E+00 0.292120E+00 0.248473E+00 0.241844E+00 0.139467E+00 -0.900000E+01 0.421383E-03 0.189992E+00 0.156899E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203521E+00 0.326791E+00 0.392801E+00 0.426856E+00 0.438051E+00 0.445275E+00 0.433382E+00 0.429538E+00 0.406695E+00 0.380196E+00 0.369120E+00 0.319213E+00 0.265481E+00 0.236477E+00 0.220414E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.225120E+00 0.415013E+00 0.479440E+00 0.511096E+00 0.522017E+00 0.530138E+00 0.516781E+00 0.514631E+00 0.490808E+00 0.464105E+00 0.462287E+00 0.404990E+00 0.343066E+00 0.322353E+00 0.314178E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224440E+00 0.416210E+00 0.478927E+00 0.508223E+00 0.517314E+00 0.526102E+00 0.515796E+00 0.512298E+00 0.489523E+00 0.462327E+00 0.461397E+00 0.405198E+00 0.344520E+00 0.325695E+00 0.318899E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223610E+00 0.415462E+00 0.477050E+00 0.504058E+00 0.510949E+00 0.523993E+00 0.527426E+00 0.511667E+00 0.488773E+00 0.460413E+00 0.461335E+00 0.406180E+00 0.347488E+00 0.330943E+00 0.324766E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.222531E+00 0.413744E+00 0.474483E+00 0.499463E+00 0.505300E+00 0.516258E+00 0.523548E+00 0.510112E+00 0.490399E+00 0.461131E+00 0.461046E+00 0.409163E+00 0.354168E+00 0.340770E+00 0.335853E+00 0.318706E+00 -0.900000E+01 -0.900000E+01 + 0.221502E+00 0.411317E+00 0.471167E+00 0.495205E+00 0.505477E+00 0.509623E+00 0.520336E+00 0.507611E+00 0.505476E+00 0.481088E+00 0.464762E+00 0.424974E+00 0.389425E+00 0.381128E+00 0.377843E+00 0.371357E+00 -0.900000E+01 -0.900000E+01 + 0.220414E+00 0.408375E+00 0.468509E+00 0.489553E+00 0.498341E+00 0.503542E+00 0.517539E+00 0.505758E+00 0.503108E+00 0.481458E+00 0.466273E+00 0.471799E+00 0.474303E+00 0.473107E+00 0.471184E+00 0.469650E+00 -0.900000E+01 -0.900000E+01 + 0.219636E+00 0.404227E+00 0.465622E+00 0.484003E+00 0.491454E+00 0.498543E+00 0.515055E+00 0.503487E+00 0.499910E+00 0.480755E+00 0.466757E+00 0.473049E+00 0.477287E+00 0.478904E+00 0.479104E+00 0.477477E+00 -0.900000E+01 -0.900000E+01 + 0.218413E+00 0.399456E+00 0.462634E+00 0.478945E+00 0.485104E+00 0.494653E+00 0.514802E+00 0.506324E+00 0.498028E+00 0.480098E+00 0.467178E+00 0.472467E+00 0.476624E+00 0.478909E+00 0.479150E+00 0.474719E+00 -0.900000E+01 -0.900000E+01 + 0.216539E+00 0.394285E+00 0.459133E+00 0.474318E+00 0.479072E+00 0.491355E+00 0.516767E+00 0.516051E+00 0.496874E+00 0.480054E+00 0.467325E+00 0.470928E+00 0.473799E+00 0.475682E+00 0.474654E+00 0.457928E+00 -0.900000E+01 -0.900000E+01 + 0.214714E+00 0.389066E+00 0.454955E+00 0.469029E+00 0.473030E+00 0.487805E+00 0.513952E+00 0.513351E+00 0.494293E+00 0.478966E+00 0.465776E+00 0.465524E+00 0.465194E+00 0.466408E+00 0.465559E+00 0.228699E+00 -0.900000E+01 -0.900000E+01 + 0.212521E+00 0.384094E+00 0.450587E+00 0.464068E+00 0.466932E+00 0.484350E+00 0.510540E+00 0.509822E+00 0.489569E+00 0.472168E+00 0.458087E+00 0.441324E+00 0.429337E+00 0.427433E+00 0.420481E+00 0.752916E-01 -0.900000E+01 -0.900000E+01 + 0.209663E+00 0.379769E+00 0.445647E+00 0.458871E+00 0.459189E+00 0.481124E+00 0.504261E+00 0.499806E+00 0.485088E+00 0.468810E+00 0.454293E+00 0.398300E+00 0.346878E+00 0.331757E+00 0.312144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206537E+00 0.374767E+00 0.440379E+00 0.453842E+00 0.449453E+00 0.476750E+00 0.495011E+00 0.484261E+00 0.481830E+00 0.463241E+00 0.446177E+00 0.390291E+00 0.340072E+00 0.321292E+00 0.202257E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202590E+00 0.369997E+00 0.436023E+00 0.449372E+00 0.445342E+00 0.470090E+00 0.489460E+00 0.482402E+00 0.480399E+00 0.454505E+00 0.432907E+00 0.379330E+00 0.334176E+00 0.315373E+00 0.201940E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198674E+00 0.365848E+00 0.433604E+00 0.442985E+00 0.442060E+00 0.460564E+00 0.478520E+00 0.480907E+00 0.470246E+00 0.442812E+00 0.406893E+00 0.356798E+00 0.326974E+00 0.310786E+00 0.204102E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.194225E+00 0.362261E+00 0.430828E+00 0.436330E+00 0.439992E+00 0.452286E+00 0.467353E+00 0.479199E+00 0.457773E+00 0.429223E+00 0.379907E+00 0.332024E+00 0.317052E+00 0.301380E+00 0.208263E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.189340E+00 0.359681E+00 0.428200E+00 0.434628E+00 0.438640E+00 0.447357E+00 0.464499E+00 0.469058E+00 0.443805E+00 0.428571E+00 0.378282E+00 0.329334E+00 0.313455E+00 0.284724E+00 0.218634E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184432E+00 0.356603E+00 0.421341E+00 0.433262E+00 0.436488E+00 0.439935E+00 0.462367E+00 0.459561E+00 0.429733E+00 0.425119E+00 0.375178E+00 0.327676E+00 0.312187E+00 0.300553E+00 0.289841E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180072E+00 0.352499E+00 0.408533E+00 0.431333E+00 0.434665E+00 0.433055E+00 0.457912E+00 0.456768E+00 0.428592E+00 0.399327E+00 0.348151E+00 0.320443E+00 0.307881E+00 0.299057E+00 0.288274E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174862E+00 0.345766E+00 0.394037E+00 0.426959E+00 0.427294E+00 0.431799E+00 0.445380E+00 0.436474E+00 0.425764E+00 0.378978E+00 0.325773E+00 0.310364E+00 0.300461E+00 0.293165E+00 0.281004E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169755E+00 0.340786E+00 0.376475E+00 0.422303E+00 0.421484E+00 0.428405E+00 0.430783E+00 0.420494E+00 0.420908E+00 0.375700E+00 0.323613E+00 0.307499E+00 0.297534E+00 0.290449E+00 0.270833E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165371E+00 0.334982E+00 0.365718E+00 0.417709E+00 0.417795E+00 0.416156E+00 0.404612E+00 0.411593E+00 0.390819E+00 0.339114E+00 0.312628E+00 0.300835E+00 0.292668E+00 0.287093E+00 0.140006E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.159930E+00 0.329599E+00 0.358648E+00 0.402046E+00 0.412520E+00 0.406010E+00 0.384604E+00 0.393066E+00 0.364758E+00 0.313524E+00 0.299930E+00 0.291618E+00 0.286400E+00 0.282491E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.153514E+00 0.320539E+00 0.354119E+00 0.386543E+00 0.406984E+00 0.400299E+00 0.375953E+00 0.376811E+00 0.349047E+00 0.302656E+00 0.291359E+00 0.284976E+00 0.282202E+00 0.281309E+00 0.241165E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.146592E+00 0.312260E+00 0.344503E+00 0.368407E+00 0.392974E+00 0.376681E+00 0.371482E+00 0.351563E+00 0.306610E+00 0.289278E+00 0.283708E+00 0.281572E+00 0.280467E+00 0.279804E+00 0.271283E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.139669E+00 0.286429E+00 0.333700E+00 0.355818E+00 0.372818E+00 0.364505E+00 0.368223E+00 0.343905E+00 0.292845E+00 0.283157E+00 0.279361E+00 0.277866E+00 0.276681E+00 0.275228E+00 0.264335E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.133216E+00 0.278556E+00 0.323254E+00 0.345574E+00 0.350050E+00 0.342877E+00 0.354684E+00 0.336363E+00 0.289836E+00 0.279647E+00 0.275619E+00 0.273829E+00 0.272302E+00 0.270612E+00 0.141674E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.122802E+00 0.268771E+00 0.314917E+00 0.333192E+00 0.324808E+00 0.331558E+00 0.343193E+00 0.328923E+00 0.287071E+00 0.277434E+00 0.272264E+00 0.269315E+00 0.266164E+00 0.262627E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.114483E+00 0.259544E+00 0.287300E+00 0.323590E+00 0.322649E+00 0.330135E+00 0.324062E+00 0.285166E+00 0.273787E+00 0.267614E+00 0.260681E+00 0.258033E+00 0.256396E+00 0.255441E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.939723E-01 0.249672E+00 0.275910E+00 0.290070E+00 0.310075E+00 0.317685E+00 0.307060E+00 0.264159E+00 0.256915E+00 0.252977E+00 0.159502E+00 0.223638E+00 0.235123E+00 0.239901E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.772029E-03 0.231194E+00 0.263073E+00 0.275682E+00 0.296422E+00 0.306255E+00 0.291385E+00 0.248483E+00 0.241493E+00 0.140299E+00 -0.900000E+01 0.405890E-03 0.188684E+00 0.157159E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197626E+00 0.310984E+00 0.384046E+00 0.421749E+00 0.435258E+00 0.442332E+00 0.430684E+00 0.427679E+00 0.404922E+00 0.377419E+00 0.365301E+00 0.316545E+00 0.264168E+00 0.236016E+00 0.220122E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219217E+00 0.397734E+00 0.470649E+00 0.504165E+00 0.515990E+00 0.523377E+00 0.510308E+00 0.508846E+00 0.485378E+00 0.458145E+00 0.453936E+00 0.400548E+00 0.341363E+00 0.322978E+00 0.314985E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.218610E+00 0.396575E+00 0.469071E+00 0.501153E+00 0.512337E+00 0.520204E+00 0.509892E+00 0.507495E+00 0.485073E+00 0.456809E+00 0.452217E+00 0.400961E+00 0.342966E+00 0.326682E+00 0.320037E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217783E+00 0.394738E+00 0.467006E+00 0.497017E+00 0.506938E+00 0.519016E+00 0.520934E+00 0.507472E+00 0.484920E+00 0.455077E+00 0.450321E+00 0.401610E+00 0.345486E+00 0.331383E+00 0.325643E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.216493E+00 0.392029E+00 0.464255E+00 0.492638E+00 0.501948E+00 0.511565E+00 0.516161E+00 0.505524E+00 0.486628E+00 0.455122E+00 0.449561E+00 0.403580E+00 0.351411E+00 0.339443E+00 0.335067E+00 0.318138E+00 -0.900000E+01 -0.900000E+01 + 0.215532E+00 0.389409E+00 0.461299E+00 0.488612E+00 0.502078E+00 0.504249E+00 0.511274E+00 0.502795E+00 0.501427E+00 0.472825E+00 0.452905E+00 0.417355E+00 0.384902E+00 0.377894E+00 0.375612E+00 0.369526E+00 -0.900000E+01 -0.900000E+01 + 0.214117E+00 0.387060E+00 0.458354E+00 0.483073E+00 0.495314E+00 0.497475E+00 0.506913E+00 0.500278E+00 0.498878E+00 0.471814E+00 0.453403E+00 0.458256E+00 0.462694E+00 0.464323E+00 0.465006E+00 0.465096E+00 -0.900000E+01 -0.900000E+01 + 0.212911E+00 0.383979E+00 0.455022E+00 0.477840E+00 0.488506E+00 0.490478E+00 0.503294E+00 0.497910E+00 0.496196E+00 0.471695E+00 0.453905E+00 0.460176E+00 0.466383E+00 0.470142E+00 0.473157E+00 0.473066E+00 -0.900000E+01 -0.900000E+01 + 0.210930E+00 0.380887E+00 0.451410E+00 0.472956E+00 0.482519E+00 0.484499E+00 0.501781E+00 0.500330E+00 0.494423E+00 0.470811E+00 0.454019E+00 0.459688E+00 0.465352E+00 0.470345E+00 0.473553E+00 0.472184E+00 -0.900000E+01 -0.900000E+01 + 0.209107E+00 0.377710E+00 0.447727E+00 0.469225E+00 0.477014E+00 0.478681E+00 0.503330E+00 0.509137E+00 0.493861E+00 0.469561E+00 0.454311E+00 0.457832E+00 0.462247E+00 0.467549E+00 0.469982E+00 0.456564E+00 -0.900000E+01 -0.900000E+01 + 0.206672E+00 0.374217E+00 0.443439E+00 0.464157E+00 0.470831E+00 0.473827E+00 0.499608E+00 0.506682E+00 0.492324E+00 0.466529E+00 0.452560E+00 0.451387E+00 0.452374E+00 0.455695E+00 0.455609E+00 0.226711E+00 -0.900000E+01 -0.900000E+01 + 0.203682E+00 0.371731E+00 0.438650E+00 0.459483E+00 0.465619E+00 0.470650E+00 0.496501E+00 0.503951E+00 0.489503E+00 0.460692E+00 0.445188E+00 0.427764E+00 0.417804E+00 0.416101E+00 0.409029E+00 0.730518E-01 -0.900000E+01 -0.900000E+01 + 0.200610E+00 0.369123E+00 0.433798E+00 0.455016E+00 0.458929E+00 0.466810E+00 0.490976E+00 0.494782E+00 0.485940E+00 0.458076E+00 0.440827E+00 0.386763E+00 0.340778E+00 0.327621E+00 0.307701E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197332E+00 0.366715E+00 0.427582E+00 0.449452E+00 0.449005E+00 0.462690E+00 0.481264E+00 0.479959E+00 0.482155E+00 0.454404E+00 0.433428E+00 0.378760E+00 0.334025E+00 0.318145E+00 0.201602E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193682E+00 0.363990E+00 0.423854E+00 0.445318E+00 0.444107E+00 0.456091E+00 0.473812E+00 0.475448E+00 0.479473E+00 0.452116E+00 0.424088E+00 0.369186E+00 0.328208E+00 0.312200E+00 0.202774E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.189965E+00 0.360851E+00 0.420278E+00 0.438947E+00 0.439977E+00 0.447886E+00 0.462961E+00 0.472344E+00 0.467563E+00 0.439121E+00 0.401014E+00 0.349351E+00 0.322005E+00 0.308000E+00 0.204657E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185775E+00 0.357614E+00 0.416549E+00 0.432145E+00 0.437234E+00 0.439443E+00 0.451171E+00 0.468355E+00 0.453524E+00 0.425361E+00 0.374272E+00 0.327530E+00 0.313959E+00 0.299272E+00 0.207848E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181610E+00 0.356036E+00 0.414417E+00 0.431773E+00 0.435569E+00 0.436292E+00 0.446826E+00 0.457891E+00 0.438419E+00 0.424091E+00 0.373524E+00 0.326039E+00 0.310791E+00 0.282827E+00 0.217146E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177057E+00 0.352998E+00 0.406435E+00 0.431402E+00 0.433240E+00 0.428936E+00 0.443840E+00 0.447500E+00 0.423530E+00 0.420538E+00 0.371404E+00 0.325087E+00 0.309443E+00 0.298301E+00 0.287999E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.172075E+00 0.348438E+00 0.392852E+00 0.429170E+00 0.432120E+00 0.422946E+00 0.438941E+00 0.442339E+00 0.421783E+00 0.396504E+00 0.345470E+00 0.318017E+00 0.305703E+00 0.297555E+00 0.287056E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166397E+00 0.341743E+00 0.377902E+00 0.424331E+00 0.423953E+00 0.421134E+00 0.424853E+00 0.420943E+00 0.418817E+00 0.376075E+00 0.323734E+00 0.309018E+00 0.299721E+00 0.293231E+00 0.281394E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161439E+00 0.337121E+00 0.366024E+00 0.418603E+00 0.416555E+00 0.417611E+00 0.410854E+00 0.403504E+00 0.412264E+00 0.372192E+00 0.321620E+00 0.306920E+00 0.298037E+00 0.291248E+00 0.271737E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156164E+00 0.334134E+00 0.360566E+00 0.411307E+00 0.412967E+00 0.406429E+00 0.388016E+00 0.394903E+00 0.382478E+00 0.335817E+00 0.311350E+00 0.300876E+00 0.293717E+00 0.288143E+00 0.143573E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151791E+00 0.329776E+00 0.355107E+00 0.391494E+00 0.407249E+00 0.398244E+00 0.374073E+00 0.380537E+00 0.357602E+00 0.310250E+00 0.298761E+00 0.291751E+00 0.287012E+00 0.282454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147863E+00 0.324386E+00 0.349691E+00 0.370393E+00 0.400089E+00 0.395741E+00 0.371081E+00 0.373116E+00 0.346515E+00 0.302317E+00 0.291841E+00 0.286237E+00 0.282917E+00 0.280905E+00 0.239932E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143046E+00 0.307707E+00 0.341272E+00 0.355603E+00 0.383804E+00 0.373894E+00 0.370484E+00 0.352741E+00 0.309397E+00 0.291707E+00 0.285584E+00 0.282261E+00 0.280398E+00 0.279986E+00 0.272036E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137831E+00 0.284997E+00 0.333416E+00 0.351655E+00 0.366976E+00 0.364953E+00 0.369901E+00 0.347312E+00 0.295889E+00 0.284774E+00 0.279938E+00 0.277756E+00 0.276964E+00 0.276774E+00 0.266378E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.131515E+00 0.278502E+00 0.323417E+00 0.346271E+00 0.354750E+00 0.354695E+00 0.364599E+00 0.342178E+00 0.292352E+00 0.281051E+00 0.275749E+00 0.273786E+00 0.273294E+00 0.273005E+00 0.143120E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.124209E+00 0.271713E+00 0.315344E+00 0.336423E+00 0.331312E+00 0.343355E+00 0.355019E+00 0.337217E+00 0.291287E+00 0.279901E+00 0.274741E+00 0.272827E+00 0.271141E+00 0.269202E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110936E+00 0.262855E+00 0.286782E+00 0.325163E+00 0.327917E+00 0.338977E+00 0.332064E+00 0.290567E+00 0.278292E+00 0.272448E+00 0.265834E+00 0.264236E+00 0.261310E+00 0.259052E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.937443E-01 0.250502E+00 0.274738E+00 0.292005E+00 0.313138E+00 0.321555E+00 0.312435E+00 0.270285E+00 0.262397E+00 0.257796E+00 0.164571E+00 0.225791E+00 0.236690E+00 0.241642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.624652E-03 0.230236E+00 0.261578E+00 0.270519E+00 0.294560E+00 0.304636E+00 0.290985E+00 0.247581E+00 0.240562E+00 0.140772E+00 -0.900000E+01 0.382633E-03 0.187805E+00 0.157610E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184538E+00 0.285931E+00 0.366474E+00 0.405573E+00 0.419884E+00 0.427278E+00 0.417045E+00 0.415165E+00 0.393247E+00 0.364248E+00 0.351127E+00 0.304784E+00 0.257850E+00 0.233178E+00 0.219374E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205182E+00 0.370575E+00 0.446904E+00 0.480658E+00 0.492789E+00 0.499431E+00 0.488568E+00 0.488311E+00 0.467276E+00 0.437430E+00 0.431199E+00 0.384461E+00 0.336053E+00 0.321910E+00 0.315217E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.204195E+00 0.369163E+00 0.445343E+00 0.478459E+00 0.489686E+00 0.497159E+00 0.488051E+00 0.487101E+00 0.467725E+00 0.437522E+00 0.430565E+00 0.383562E+00 0.337060E+00 0.324697E+00 0.319457E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202462E+00 0.367407E+00 0.443080E+00 0.475362E+00 0.485716E+00 0.496027E+00 0.497559E+00 0.486475E+00 0.468328E+00 0.436974E+00 0.428996E+00 0.383111E+00 0.339208E+00 0.329266E+00 0.324747E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.200239E+00 0.365073E+00 0.440461E+00 0.471748E+00 0.482153E+00 0.490643E+00 0.492635E+00 0.484403E+00 0.470685E+00 0.439060E+00 0.427527E+00 0.385517E+00 0.344780E+00 0.336678E+00 0.333685E+00 0.319041E+00 -0.900000E+01 -0.900000E+01 + 0.198394E+00 0.362261E+00 0.437609E+00 0.468763E+00 0.483434E+00 0.484840E+00 0.487972E+00 0.481562E+00 0.483838E+00 0.458241E+00 0.430817E+00 0.397719E+00 0.372779E+00 0.369238E+00 0.368477E+00 0.363152E+00 -0.900000E+01 -0.900000E+01 + 0.196515E+00 0.359695E+00 0.434001E+00 0.464541E+00 0.477544E+00 0.479202E+00 0.482905E+00 0.479248E+00 0.481958E+00 0.457100E+00 0.431771E+00 0.433382E+00 0.437165E+00 0.440797E+00 0.443497E+00 0.446362E+00 -0.900000E+01 -0.900000E+01 + 0.194738E+00 0.357568E+00 0.430245E+00 0.460352E+00 0.472922E+00 0.474086E+00 0.479027E+00 0.477875E+00 0.480553E+00 0.455976E+00 0.432096E+00 0.435814E+00 0.443317E+00 0.449647E+00 0.455011E+00 0.459049E+00 -0.900000E+01 -0.900000E+01 + 0.192825E+00 0.355751E+00 0.425993E+00 0.456741E+00 0.468984E+00 0.469496E+00 0.477312E+00 0.479889E+00 0.479307E+00 0.454900E+00 0.432012E+00 0.436676E+00 0.443249E+00 0.449497E+00 0.455336E+00 0.457349E+00 -0.900000E+01 -0.900000E+01 + 0.190818E+00 0.354685E+00 0.420801E+00 0.451668E+00 0.463870E+00 0.463824E+00 0.477414E+00 0.486210E+00 0.478683E+00 0.454037E+00 0.432503E+00 0.435380E+00 0.439671E+00 0.446079E+00 0.451554E+00 0.439786E+00 -0.900000E+01 -0.900000E+01 + 0.188823E+00 0.353188E+00 0.415290E+00 0.446408E+00 0.458538E+00 0.458766E+00 0.474218E+00 0.484200E+00 0.477463E+00 0.453028E+00 0.431618E+00 0.429142E+00 0.428882E+00 0.433684E+00 0.436326E+00 0.222083E+00 -0.900000E+01 -0.900000E+01 + 0.185635E+00 0.351973E+00 0.409803E+00 0.441770E+00 0.453818E+00 0.454219E+00 0.471336E+00 0.482410E+00 0.476748E+00 0.452018E+00 0.429330E+00 0.408982E+00 0.397747E+00 0.394865E+00 0.387759E+00 0.707251E-01 -0.900000E+01 -0.900000E+01 + 0.182919E+00 0.350775E+00 0.403859E+00 0.436676E+00 0.447490E+00 0.449956E+00 0.467668E+00 0.476445E+00 0.475588E+00 0.451291E+00 0.426033E+00 0.375261E+00 0.332234E+00 0.319793E+00 0.296585E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180197E+00 0.349857E+00 0.399253E+00 0.431805E+00 0.439252E+00 0.446177E+00 0.462112E+00 0.466426E+00 0.473445E+00 0.450139E+00 0.421908E+00 0.369132E+00 0.326064E+00 0.311305E+00 0.196782E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177021E+00 0.348367E+00 0.395876E+00 0.428046E+00 0.435174E+00 0.441504E+00 0.457174E+00 0.463470E+00 0.470305E+00 0.448170E+00 0.418310E+00 0.362627E+00 0.320417E+00 0.304712E+00 0.198759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.173330E+00 0.346108E+00 0.393822E+00 0.423735E+00 0.432221E+00 0.434565E+00 0.446225E+00 0.458470E+00 0.458642E+00 0.434576E+00 0.396634E+00 0.344889E+00 0.315840E+00 0.301117E+00 0.201432E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169907E+00 0.344036E+00 0.390368E+00 0.417934E+00 0.430004E+00 0.429953E+00 0.435161E+00 0.453547E+00 0.444684E+00 0.418866E+00 0.369841E+00 0.322160E+00 0.308306E+00 0.293850E+00 0.205645E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165974E+00 0.342193E+00 0.387470E+00 0.416450E+00 0.428828E+00 0.428590E+00 0.431241E+00 0.442884E+00 0.429137E+00 0.416045E+00 0.368432E+00 0.320748E+00 0.305227E+00 0.278518E+00 0.214457E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161944E+00 0.340140E+00 0.381275E+00 0.413783E+00 0.426246E+00 0.419937E+00 0.426924E+00 0.432277E+00 0.413383E+00 0.411195E+00 0.365681E+00 0.319777E+00 0.304969E+00 0.294161E+00 0.284512E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.157633E+00 0.338593E+00 0.371109E+00 0.411351E+00 0.423535E+00 0.412921E+00 0.421112E+00 0.424358E+00 0.409827E+00 0.387832E+00 0.340272E+00 0.313480E+00 0.302099E+00 0.294720E+00 0.284908E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.153970E+00 0.334595E+00 0.360552E+00 0.405962E+00 0.413112E+00 0.409933E+00 0.407574E+00 0.400187E+00 0.402651E+00 0.368027E+00 0.319108E+00 0.305211E+00 0.297432E+00 0.291286E+00 0.280430E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150388E+00 0.331401E+00 0.354935E+00 0.397733E+00 0.403667E+00 0.405620E+00 0.393169E+00 0.379884E+00 0.392026E+00 0.362142E+00 0.316589E+00 0.302919E+00 0.295488E+00 0.289665E+00 0.269585E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145111E+00 0.328099E+00 0.349799E+00 0.387718E+00 0.398656E+00 0.395033E+00 0.370921E+00 0.369906E+00 0.363712E+00 0.325405E+00 0.304908E+00 0.296722E+00 0.292080E+00 0.287558E+00 0.148824E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140404E+00 0.324526E+00 0.343285E+00 0.365638E+00 0.390430E+00 0.388190E+00 0.360041E+00 0.359777E+00 0.340241E+00 0.299194E+00 0.292106E+00 0.289106E+00 0.286667E+00 0.282567E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.135123E+00 0.316521E+00 0.340007E+00 0.346603E+00 0.379564E+00 0.385043E+00 0.360339E+00 0.359851E+00 0.333778E+00 0.294944E+00 0.287894E+00 0.285059E+00 0.282699E+00 0.279744E+00 0.241476E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.129194E+00 0.293100E+00 0.333789E+00 0.338753E+00 0.360253E+00 0.361510E+00 0.361224E+00 0.344650E+00 0.303714E+00 0.290932E+00 0.286032E+00 0.282599E+00 0.279497E+00 0.277444E+00 0.269071E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.124153E+00 0.277538E+00 0.327552E+00 0.339086E+00 0.345395E+00 0.352963E+00 0.363500E+00 0.341892E+00 0.293834E+00 0.285246E+00 0.280196E+00 0.277252E+00 0.275263E+00 0.275278E+00 0.262925E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121784E+00 0.269295E+00 0.321296E+00 0.338959E+00 0.343932E+00 0.348868E+00 0.361527E+00 0.338589E+00 0.290477E+00 0.280391E+00 0.275224E+00 0.272140E+00 0.270300E+00 0.270466E+00 0.143630E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118394E+00 0.264040E+00 0.311435E+00 0.332774E+00 0.324415E+00 0.341306E+00 0.354279E+00 0.331896E+00 0.286590E+00 0.277266E+00 0.271795E+00 0.269175E+00 0.267187E+00 0.265552E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.104243E+00 0.256130E+00 0.275779E+00 0.315380E+00 0.318268E+00 0.333551E+00 0.330373E+00 0.286022E+00 0.272703E+00 0.265780E+00 0.259447E+00 0.258953E+00 0.258235E+00 0.256398E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.829898E-01 0.239626E+00 0.265156E+00 0.278240E+00 0.305857E+00 0.314724E+00 0.306893E+00 0.265797E+00 0.258387E+00 0.255053E+00 0.167038E+00 0.223362E+00 0.233109E+00 0.238540E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.594086E-03 0.221888E+00 0.251875E+00 0.261459E+00 0.289306E+00 0.299968E+00 0.286955E+00 0.243184E+00 0.236404E+00 0.139525E+00 -0.900000E+01 0.344909E-03 0.180844E+00 0.154645E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.168157E+00 0.262293E+00 0.342652E+00 0.380027E+00 0.391940E+00 0.399770E+00 0.393394E+00 0.394581E+00 0.376646E+00 0.350661E+00 0.338517E+00 0.290243E+00 0.246989E+00 0.225140E+00 0.213226E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.186951E+00 0.340309E+00 0.415290E+00 0.446646E+00 0.456303E+00 0.463866E+00 0.458116E+00 0.461130E+00 0.444959E+00 0.418759E+00 0.412057E+00 0.359950E+00 0.321092E+00 0.309969E+00 0.304174E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185552E+00 0.338171E+00 0.413489E+00 0.445821E+00 0.454881E+00 0.462152E+00 0.456884E+00 0.458754E+00 0.444858E+00 0.419074E+00 0.412348E+00 0.359436E+00 0.321636E+00 0.312149E+00 0.307539E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183054E+00 0.335607E+00 0.411412E+00 0.444246E+00 0.453034E+00 0.462595E+00 0.464030E+00 0.456972E+00 0.445010E+00 0.419134E+00 0.411819E+00 0.360133E+00 0.324064E+00 0.316189E+00 0.312688E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180486E+00 0.332961E+00 0.408104E+00 0.441800E+00 0.451685E+00 0.459285E+00 0.460878E+00 0.454383E+00 0.446777E+00 0.421724E+00 0.411217E+00 0.362676E+00 0.329774E+00 0.323852E+00 0.322018E+00 0.311669E+00 -0.900000E+01 -0.900000E+01 + 0.178187E+00 0.330269E+00 0.404253E+00 0.439867E+00 0.454104E+00 0.455892E+00 0.457713E+00 0.451700E+00 0.457256E+00 0.438671E+00 0.414205E+00 0.376482E+00 0.353521E+00 0.351340E+00 0.351561E+00 0.349813E+00 -0.900000E+01 -0.900000E+01 + 0.176624E+00 0.327396E+00 0.399795E+00 0.436347E+00 0.450701E+00 0.452860E+00 0.454255E+00 0.449203E+00 0.454917E+00 0.437811E+00 0.414081E+00 0.413772E+00 0.415957E+00 0.418749E+00 0.420891E+00 0.423932E+00 -0.900000E+01 -0.900000E+01 + 0.174284E+00 0.325684E+00 0.395362E+00 0.432407E+00 0.447406E+00 0.449731E+00 0.451038E+00 0.447953E+00 0.453480E+00 0.437311E+00 0.413723E+00 0.415058E+00 0.421797E+00 0.428901E+00 0.433559E+00 0.437234E+00 -0.900000E+01 -0.900000E+01 + 0.171709E+00 0.323803E+00 0.390714E+00 0.427837E+00 0.443730E+00 0.446393E+00 0.449221E+00 0.449821E+00 0.453025E+00 0.436927E+00 0.413543E+00 0.415228E+00 0.422112E+00 0.428046E+00 0.432300E+00 0.434606E+00 -0.900000E+01 -0.900000E+01 + 0.169598E+00 0.322610E+00 0.386425E+00 0.423567E+00 0.439661E+00 0.442624E+00 0.449119E+00 0.455001E+00 0.453010E+00 0.436268E+00 0.412680E+00 0.414037E+00 0.417696E+00 0.421301E+00 0.426667E+00 0.413361E+00 -0.900000E+01 -0.900000E+01 + 0.167580E+00 0.323177E+00 0.382456E+00 0.418557E+00 0.435850E+00 0.439087E+00 0.446641E+00 0.454097E+00 0.452930E+00 0.436402E+00 0.411540E+00 0.407599E+00 0.405406E+00 0.406885E+00 0.408609E+00 0.217205E+00 -0.900000E+01 -0.900000E+01 + 0.164671E+00 0.322861E+00 0.378754E+00 0.414105E+00 0.432749E+00 0.435585E+00 0.444198E+00 0.453066E+00 0.452380E+00 0.436176E+00 0.410839E+00 0.390558E+00 0.376490E+00 0.372462E+00 0.364967E+00 0.668380E-01 -0.900000E+01 -0.900000E+01 + 0.161670E+00 0.323402E+00 0.375864E+00 0.410356E+00 0.428144E+00 0.432611E+00 0.440474E+00 0.448692E+00 0.451379E+00 0.435409E+00 0.410069E+00 0.357802E+00 0.318771E+00 0.308324E+00 0.286695E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.159220E+00 0.322950E+00 0.372234E+00 0.406807E+00 0.421864E+00 0.429614E+00 0.435631E+00 0.441883E+00 0.449994E+00 0.434428E+00 0.408800E+00 0.355524E+00 0.315139E+00 0.302728E+00 0.193720E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156853E+00 0.321758E+00 0.367830E+00 0.404082E+00 0.420163E+00 0.427191E+00 0.432902E+00 0.440196E+00 0.447049E+00 0.431493E+00 0.406575E+00 0.353249E+00 0.313653E+00 0.299482E+00 0.195973E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.153571E+00 0.319491E+00 0.364811E+00 0.400595E+00 0.418291E+00 0.423500E+00 0.425192E+00 0.436541E+00 0.438093E+00 0.420003E+00 0.385588E+00 0.336771E+00 0.309561E+00 0.296700E+00 0.198406E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149858E+00 0.318019E+00 0.361043E+00 0.395581E+00 0.416147E+00 0.419748E+00 0.417651E+00 0.431852E+00 0.426425E+00 0.406684E+00 0.359281E+00 0.315449E+00 0.302737E+00 0.289869E+00 0.202308E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.148530E+00 0.317893E+00 0.358648E+00 0.393894E+00 0.414213E+00 0.418078E+00 0.413435E+00 0.423211E+00 0.412738E+00 0.403377E+00 0.358529E+00 0.314596E+00 0.301111E+00 0.275892E+00 0.207556E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147396E+00 0.318730E+00 0.353848E+00 0.391610E+00 0.411179E+00 0.410630E+00 0.411577E+00 0.414224E+00 0.399281E+00 0.397688E+00 0.356101E+00 0.313991E+00 0.300413E+00 0.290968E+00 0.283079E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145293E+00 0.319230E+00 0.346749E+00 0.388941E+00 0.407568E+00 0.402923E+00 0.408088E+00 0.408611E+00 0.396008E+00 0.375974E+00 0.332930E+00 0.308150E+00 0.297331E+00 0.291857E+00 0.283855E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142776E+00 0.318658E+00 0.341134E+00 0.382486E+00 0.397499E+00 0.400205E+00 0.396087E+00 0.387065E+00 0.387715E+00 0.356650E+00 0.312492E+00 0.300561E+00 0.293321E+00 0.289233E+00 0.280041E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.139642E+00 0.317279E+00 0.338045E+00 0.373129E+00 0.388541E+00 0.396650E+00 0.387569E+00 0.368874E+00 0.375174E+00 0.348004E+00 0.308301E+00 0.297826E+00 0.291423E+00 0.287266E+00 0.269758E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.135584E+00 0.316807E+00 0.336413E+00 0.363278E+00 0.382434E+00 0.386985E+00 0.367126E+00 0.358793E+00 0.345476E+00 0.311890E+00 0.296607E+00 0.291682E+00 0.288617E+00 0.286004E+00 0.139300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.130465E+00 0.310007E+00 0.334507E+00 0.345868E+00 0.373314E+00 0.378901E+00 0.355650E+00 0.354010E+00 0.324907E+00 0.286877E+00 0.283048E+00 0.281226E+00 0.279693E+00 0.278165E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.124077E+00 0.292994E+00 0.331095E+00 0.332102E+00 0.360741E+00 0.370780E+00 0.354490E+00 0.353113E+00 0.322569E+00 0.283386E+00 0.278642E+00 0.276184E+00 0.275376E+00 0.275594E+00 0.244927E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116906E+00 0.272567E+00 0.318124E+00 0.327909E+00 0.338833E+00 0.343280E+00 0.349094E+00 0.332949E+00 0.291096E+00 0.278959E+00 0.275368E+00 0.274076E+00 0.273590E+00 0.274524E+00 0.267757E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.114228E+00 0.268886E+00 0.309668E+00 0.325108E+00 0.323256E+00 0.325993E+00 0.342946E+00 0.327497E+00 0.282684E+00 0.275496E+00 0.271586E+00 0.270360E+00 0.270025E+00 0.269332E+00 0.257644E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113245E+00 0.262998E+00 0.305078E+00 0.326508E+00 0.324248E+00 0.322895E+00 0.341998E+00 0.325408E+00 0.279586E+00 0.270407E+00 0.266792E+00 0.264760E+00 0.262253E+00 0.261044E+00 0.138104E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110909E+00 0.258128E+00 0.303358E+00 0.324598E+00 0.309679E+00 0.320383E+00 0.336802E+00 0.322247E+00 0.277060E+00 0.267647E+00 0.261167E+00 0.258180E+00 0.256862E+00 0.254981E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.997091E-01 0.250517E+00 0.268581E+00 0.302987E+00 0.303911E+00 0.314598E+00 0.314444E+00 0.274827E+00 0.264031E+00 0.258080E+00 0.252946E+00 0.252390E+00 0.250940E+00 0.250064E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.862632E-01 0.233084E+00 0.259099E+00 0.261120E+00 0.293333E+00 0.302854E+00 0.293141E+00 0.254377E+00 0.249892E+00 0.247266E+00 0.164498E+00 0.218093E+00 0.229612E+00 0.234277E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.493069E-03 0.214666E+00 0.243532E+00 0.248024E+00 0.274929E+00 0.292247E+00 0.280160E+00 0.239547E+00 0.231497E+00 0.136976E+00 -0.900000E+01 0.267611E-03 0.172520E+00 0.150492E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158005E+00 0.243719E+00 0.312287E+00 0.349649E+00 0.362333E+00 0.369145E+00 0.364079E+00 0.366203E+00 0.352420E+00 0.332348E+00 0.323176E+00 0.277397E+00 0.235465E+00 0.215438E+00 0.204770E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174721E+00 0.309050E+00 0.373695E+00 0.407864E+00 0.419606E+00 0.425992E+00 0.421701E+00 0.425037E+00 0.413591E+00 0.395001E+00 0.390761E+00 0.342579E+00 0.303972E+00 0.293165E+00 0.287377E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.172068E+00 0.306848E+00 0.371965E+00 0.406563E+00 0.418830E+00 0.425306E+00 0.420762E+00 0.422460E+00 0.412999E+00 0.394916E+00 0.390852E+00 0.343298E+00 0.305185E+00 0.295475E+00 0.290333E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169762E+00 0.304910E+00 0.369731E+00 0.404651E+00 0.417299E+00 0.426739E+00 0.426724E+00 0.420653E+00 0.412920E+00 0.395169E+00 0.390796E+00 0.344301E+00 0.307550E+00 0.299058E+00 0.294948E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167748E+00 0.302283E+00 0.367124E+00 0.402173E+00 0.416625E+00 0.424936E+00 0.425345E+00 0.418191E+00 0.414458E+00 0.397969E+00 0.390599E+00 0.346439E+00 0.312166E+00 0.305322E+00 0.303203E+00 0.295003E+00 -0.900000E+01 -0.900000E+01 + 0.164554E+00 0.299949E+00 0.364064E+00 0.399883E+00 0.418617E+00 0.423105E+00 0.424072E+00 0.416402E+00 0.421354E+00 0.410478E+00 0.393578E+00 0.358463E+00 0.333575E+00 0.329496E+00 0.329130E+00 0.328620E+00 -0.900000E+01 -0.900000E+01 + 0.162177E+00 0.297735E+00 0.360972E+00 0.396462E+00 0.415814E+00 0.421145E+00 0.422329E+00 0.415212E+00 0.420463E+00 0.409841E+00 0.393818E+00 0.392360E+00 0.392656E+00 0.394146E+00 0.395372E+00 0.398026E+00 -0.900000E+01 -0.900000E+01 + 0.159351E+00 0.295450E+00 0.358009E+00 0.392634E+00 0.412625E+00 0.418648E+00 0.420643E+00 0.415189E+00 0.421066E+00 0.410232E+00 0.394228E+00 0.392986E+00 0.397468E+00 0.403377E+00 0.407819E+00 0.409458E+00 -0.900000E+01 -0.900000E+01 + 0.156806E+00 0.293934E+00 0.355227E+00 0.389071E+00 0.409521E+00 0.415939E+00 0.419675E+00 0.418372E+00 0.421654E+00 0.411631E+00 0.394707E+00 0.392555E+00 0.396348E+00 0.401944E+00 0.404052E+00 0.402772E+00 -0.900000E+01 -0.900000E+01 + 0.154158E+00 0.291896E+00 0.352581E+00 0.384923E+00 0.405865E+00 0.413318E+00 0.420352E+00 0.423666E+00 0.422549E+00 0.412656E+00 0.394838E+00 0.390230E+00 0.390814E+00 0.392486E+00 0.394818E+00 0.376550E+00 -0.900000E+01 -0.900000E+01 + 0.152232E+00 0.290616E+00 0.350127E+00 0.381121E+00 0.402501E+00 0.410832E+00 0.417942E+00 0.422597E+00 0.423520E+00 0.413023E+00 0.394409E+00 0.386222E+00 0.380321E+00 0.376113E+00 0.374964E+00 0.208746E+00 -0.900000E+01 -0.900000E+01 + 0.149702E+00 0.289761E+00 0.348356E+00 0.378069E+00 0.400034E+00 0.408936E+00 0.415394E+00 0.421627E+00 0.424165E+00 0.413210E+00 0.394011E+00 0.372208E+00 0.357444E+00 0.351719E+00 0.344057E+00 0.604817E-01 -0.900000E+01 -0.900000E+01 + 0.146437E+00 0.289627E+00 0.346680E+00 0.375316E+00 0.396867E+00 0.407722E+00 0.412301E+00 0.418824E+00 0.424234E+00 0.412409E+00 0.393529E+00 0.342541E+00 0.305565E+00 0.296121E+00 0.273103E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142811E+00 0.290248E+00 0.345340E+00 0.373802E+00 0.393888E+00 0.406660E+00 0.408476E+00 0.414325E+00 0.422484E+00 0.410681E+00 0.391222E+00 0.341010E+00 0.304099E+00 0.292868E+00 0.191908E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140489E+00 0.289848E+00 0.343680E+00 0.373498E+00 0.393801E+00 0.405356E+00 0.405833E+00 0.413366E+00 0.419098E+00 0.407169E+00 0.386957E+00 0.339594E+00 0.303845E+00 0.292506E+00 0.194111E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138474E+00 0.290163E+00 0.341768E+00 0.371813E+00 0.393839E+00 0.403253E+00 0.400597E+00 0.409802E+00 0.409810E+00 0.396969E+00 0.368394E+00 0.323833E+00 0.299911E+00 0.290621E+00 0.196094E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.136784E+00 0.290912E+00 0.339514E+00 0.369634E+00 0.392814E+00 0.400520E+00 0.393856E+00 0.404845E+00 0.400431E+00 0.386426E+00 0.345861E+00 0.305828E+00 0.293908E+00 0.284277E+00 0.196987E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134944E+00 0.293133E+00 0.337889E+00 0.369124E+00 0.391654E+00 0.398984E+00 0.393084E+00 0.397705E+00 0.390567E+00 0.383480E+00 0.345213E+00 0.305100E+00 0.293466E+00 0.271160E+00 0.206062E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.133450E+00 0.295211E+00 0.335686E+00 0.367753E+00 0.388557E+00 0.392967E+00 0.392011E+00 0.392093E+00 0.380895E+00 0.377919E+00 0.342078E+00 0.304275E+00 0.293649E+00 0.286878E+00 0.281813E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.131934E+00 0.297327E+00 0.333600E+00 0.365826E+00 0.385917E+00 0.387133E+00 0.389998E+00 0.386763E+00 0.377984E+00 0.360086E+00 0.319643E+00 0.298310E+00 0.291198E+00 0.286830E+00 0.281552E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.129369E+00 0.297971E+00 0.332738E+00 0.361312E+00 0.378812E+00 0.384589E+00 0.382078E+00 0.369064E+00 0.369194E+00 0.342235E+00 0.301879E+00 0.291060E+00 0.286138E+00 0.283621E+00 0.277515E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126988E+00 0.297594E+00 0.330784E+00 0.352862E+00 0.371231E+00 0.380980E+00 0.375571E+00 0.354669E+00 0.356701E+00 0.331911E+00 0.295824E+00 0.286365E+00 0.282615E+00 0.281616E+00 0.265726E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.124193E+00 0.295152E+00 0.328291E+00 0.343844E+00 0.365540E+00 0.372039E+00 0.358437E+00 0.351068E+00 0.332506E+00 0.297019E+00 0.282093E+00 0.278007E+00 0.278059E+00 0.277721E+00 0.115230E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.120003E+00 0.285614E+00 0.322595E+00 0.330157E+00 0.356243E+00 0.362602E+00 0.347103E+00 0.347336E+00 0.319158E+00 0.277260E+00 0.269969E+00 0.268352E+00 0.269181E+00 0.269222E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.114887E+00 0.264321E+00 0.310594E+00 0.322389E+00 0.343037E+00 0.351318E+00 0.341979E+00 0.342469E+00 0.316209E+00 0.275794E+00 0.267488E+00 0.265923E+00 0.266253E+00 0.266787E+00 0.245144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.112465E+00 0.257281E+00 0.297265E+00 0.316102E+00 0.323500E+00 0.325043E+00 0.332775E+00 0.322124E+00 0.282768E+00 0.268713E+00 0.265736E+00 0.264176E+00 0.263551E+00 0.263806E+00 0.258875E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.108481E+00 0.256998E+00 0.287134E+00 0.310043E+00 0.314764E+00 0.307276E+00 0.322639E+00 0.311814E+00 0.271265E+00 0.264887E+00 0.261634E+00 0.260700E+00 0.260367E+00 0.260958E+00 0.251660E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.102714E+00 0.254421E+00 0.278302E+00 0.309660E+00 0.311605E+00 0.299298E+00 0.314790E+00 0.306335E+00 0.267187E+00 0.262670E+00 0.258885E+00 0.256850E+00 0.255523E+00 0.255221E+00 0.130667E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.981747E-01 0.250625E+00 0.277301E+00 0.306429E+00 0.296314E+00 0.298807E+00 0.312771E+00 0.304427E+00 0.267215E+00 0.261360E+00 0.257404E+00 0.255879E+00 0.253293E+00 0.250850E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.905061E-01 0.245196E+00 0.256664E+00 0.275899E+00 0.288094E+00 0.299367E+00 0.297547E+00 0.262450E+00 0.257277E+00 0.256443E+00 0.249937E+00 0.249541E+00 0.248639E+00 0.248028E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.829657E-01 0.233476E+00 0.257926E+00 0.254271E+00 0.272789E+00 0.288816E+00 0.280109E+00 0.243221E+00 0.240811E+00 0.236718E+00 0.156912E+00 0.210336E+00 0.222415E+00 0.229360E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.411110E-03 0.207270E+00 0.240461E+00 0.243146E+00 0.264465E+00 0.283024E+00 0.275077E+00 0.234848E+00 0.229917E+00 0.134886E+00 -0.900000E+01 0.199287E-03 0.167163E+00 0.147405E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150564E+00 0.228656E+00 0.285436E+00 0.316064E+00 0.330583E+00 0.339571E+00 0.335415E+00 0.337274E+00 0.325966E+00 0.309383E+00 0.302162E+00 0.261129E+00 0.222444E+00 0.204060E+00 0.193656E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.164194E+00 0.281483E+00 0.336595E+00 0.364968E+00 0.379975E+00 0.388841E+00 0.385231E+00 0.388399E+00 0.380260E+00 0.365897E+00 0.362163E+00 0.322540E+00 0.286844E+00 0.274876E+00 0.267132E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162134E+00 0.279415E+00 0.335394E+00 0.363769E+00 0.378589E+00 0.388399E+00 0.385646E+00 0.387009E+00 0.379252E+00 0.365672E+00 0.362104E+00 0.323101E+00 0.288367E+00 0.277558E+00 0.270887E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.159644E+00 0.277970E+00 0.333591E+00 0.362002E+00 0.377231E+00 0.389357E+00 0.392401E+00 0.386377E+00 0.378778E+00 0.365839E+00 0.362374E+00 0.324377E+00 0.291005E+00 0.281951E+00 0.275878E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.157132E+00 0.276570E+00 0.331944E+00 0.360309E+00 0.375911E+00 0.387336E+00 0.391146E+00 0.385679E+00 0.379021E+00 0.368614E+00 0.362946E+00 0.327733E+00 0.296308E+00 0.288500E+00 0.284545E+00 0.275257E+00 -0.900000E+01 -0.900000E+01 + 0.154837E+00 0.274883E+00 0.330118E+00 0.358416E+00 0.376132E+00 0.385493E+00 0.390001E+00 0.384648E+00 0.386257E+00 0.377572E+00 0.365097E+00 0.339375E+00 0.315824E+00 0.310078E+00 0.307694E+00 0.305203E+00 -0.900000E+01 -0.900000E+01 + 0.152221E+00 0.273443E+00 0.328257E+00 0.356205E+00 0.373622E+00 0.383269E+00 0.388357E+00 0.383605E+00 0.386409E+00 0.378367E+00 0.366142E+00 0.365917E+00 0.365135E+00 0.364277E+00 0.363422E+00 0.365321E+00 -0.900000E+01 -0.900000E+01 + 0.149132E+00 0.271916E+00 0.326306E+00 0.354060E+00 0.371259E+00 0.381175E+00 0.386857E+00 0.382641E+00 0.387721E+00 0.379897E+00 0.368183E+00 0.367601E+00 0.367724E+00 0.370653E+00 0.373558E+00 0.374005E+00 -0.900000E+01 -0.900000E+01 + 0.146430E+00 0.270402E+00 0.324358E+00 0.351872E+00 0.368161E+00 0.378713E+00 0.386083E+00 0.383971E+00 0.389020E+00 0.381422E+00 0.369720E+00 0.368065E+00 0.366587E+00 0.366987E+00 0.367603E+00 0.363175E+00 -0.900000E+01 -0.900000E+01 + 0.143165E+00 0.269175E+00 0.322479E+00 0.349173E+00 0.365435E+00 0.376352E+00 0.386391E+00 0.388503E+00 0.389927E+00 0.383624E+00 0.370861E+00 0.366624E+00 0.362088E+00 0.360483E+00 0.358505E+00 0.335890E+00 -0.900000E+01 -0.900000E+01 + 0.139539E+00 0.267897E+00 0.320300E+00 0.347594E+00 0.363278E+00 0.374775E+00 0.384883E+00 0.387896E+00 0.390365E+00 0.385042E+00 0.371314E+00 0.362731E+00 0.354142E+00 0.347287E+00 0.340324E+00 0.193138E+00 -0.900000E+01 -0.900000E+01 + 0.137113E+00 0.266627E+00 0.318782E+00 0.345280E+00 0.361224E+00 0.373730E+00 0.383889E+00 0.387793E+00 0.391852E+00 0.386092E+00 0.371031E+00 0.351239E+00 0.335312E+00 0.327147E+00 0.317372E+00 0.494959E-01 -0.900000E+01 -0.900000E+01 + 0.134952E+00 0.265116E+00 0.317242E+00 0.343440E+00 0.359628E+00 0.373264E+00 0.382126E+00 0.385244E+00 0.392556E+00 0.385792E+00 0.370511E+00 0.328030E+00 0.292081E+00 0.280032E+00 0.252024E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132745E+00 0.264010E+00 0.316521E+00 0.341996E+00 0.358524E+00 0.373675E+00 0.380324E+00 0.381827E+00 0.392041E+00 0.383474E+00 0.368273E+00 0.325997E+00 0.290083E+00 0.276050E+00 0.189439E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.131165E+00 0.262908E+00 0.315669E+00 0.341067E+00 0.359183E+00 0.373951E+00 0.379906E+00 0.381123E+00 0.388162E+00 0.379038E+00 0.362838E+00 0.323047E+00 0.288881E+00 0.274454E+00 0.190454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.128503E+00 0.262024E+00 0.314886E+00 0.339099E+00 0.359985E+00 0.373042E+00 0.376130E+00 0.379614E+00 0.381144E+00 0.371781E+00 0.347115E+00 0.308248E+00 0.284255E+00 0.271368E+00 0.190829E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126090E+00 0.261693E+00 0.314279E+00 0.337324E+00 0.359982E+00 0.371275E+00 0.370573E+00 0.377367E+00 0.373713E+00 0.364112E+00 0.329924E+00 0.291429E+00 0.277293E+00 0.264723E+00 0.193019E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123524E+00 0.261794E+00 0.314105E+00 0.337943E+00 0.359563E+00 0.370032E+00 0.369567E+00 0.371574E+00 0.365931E+00 0.360825E+00 0.329053E+00 0.290889E+00 0.276417E+00 0.249910E+00 0.201546E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.120992E+00 0.263223E+00 0.313459E+00 0.338185E+00 0.357320E+00 0.365243E+00 0.368296E+00 0.365629E+00 0.358387E+00 0.353980E+00 0.324093E+00 0.288357E+00 0.275022E+00 0.268071E+00 0.260326E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.117123E+00 0.264668E+00 0.312710E+00 0.337537E+00 0.356190E+00 0.361318E+00 0.366237E+00 0.359842E+00 0.354725E+00 0.338795E+00 0.302796E+00 0.280860E+00 0.271187E+00 0.264125E+00 0.258017E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.114488E+00 0.264846E+00 0.311778E+00 0.333531E+00 0.350966E+00 0.359087E+00 0.358987E+00 0.346734E+00 0.344451E+00 0.322577E+00 0.284680E+00 0.272506E+00 0.267248E+00 0.261565E+00 0.254205E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110394E+00 0.265392E+00 0.309217E+00 0.325170E+00 0.345237E+00 0.355320E+00 0.352570E+00 0.337683E+00 0.335053E+00 0.312678E+00 0.279081E+00 0.268526E+00 0.263064E+00 0.258804E+00 0.242459E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107199E+00 0.264025E+00 0.304946E+00 0.318188E+00 0.339634E+00 0.347728E+00 0.338163E+00 0.333844E+00 0.316507E+00 0.280443E+00 0.265245E+00 0.259135E+00 0.256127E+00 0.255338E+00 0.888463E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.104461E+00 0.253935E+00 0.296391E+00 0.310249E+00 0.330406E+00 0.338898E+00 0.327948E+00 0.328567E+00 0.306123E+00 0.266208E+00 0.258341E+00 0.255221E+00 0.253100E+00 0.251779E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.102573E+00 0.241324E+00 0.285693E+00 0.304403E+00 0.319310E+00 0.327865E+00 0.322821E+00 0.322839E+00 0.301000E+00 0.264925E+00 0.257791E+00 0.254378E+00 0.252709E+00 0.252389E+00 0.235752E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.101406E+00 0.240825E+00 0.277259E+00 0.299812E+00 0.307711E+00 0.305184E+00 0.314072E+00 0.305171E+00 0.270862E+00 0.258323E+00 0.254881E+00 0.253277E+00 0.252931E+00 0.252396E+00 0.246980E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.987144E-01 0.239936E+00 0.268494E+00 0.289456E+00 0.299813E+00 0.289735E+00 0.304638E+00 0.297232E+00 0.260734E+00 0.255958E+00 0.255497E+00 0.254457E+00 0.252813E+00 0.252470E+00 0.242371E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.941165E-01 0.238095E+00 0.256672E+00 0.289171E+00 0.298544E+00 0.288335E+00 0.302370E+00 0.293714E+00 0.258490E+00 0.255563E+00 0.255369E+00 0.255073E+00 0.253314E+00 0.250313E+00 0.111154E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.862553E-01 0.233323E+00 0.260884E+00 0.287806E+00 0.286126E+00 0.288302E+00 0.297164E+00 0.288743E+00 0.256970E+00 0.254895E+00 0.253828E+00 0.253038E+00 0.251888E+00 0.250569E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.748713E-01 0.221318E+00 0.245978E+00 0.261430E+00 0.269117E+00 0.282771E+00 0.282905E+00 0.252060E+00 0.249228E+00 0.249935E+00 0.245983E+00 0.247112E+00 0.247543E+00 0.247620E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.609196E-01 0.212971E+00 0.244767E+00 0.244945E+00 0.251961E+00 0.270059E+00 0.266142E+00 0.233463E+00 0.231254E+00 0.226708E+00 0.144803E+00 0.201964E+00 0.217429E+00 0.222767E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.287847E-03 0.194834E+00 0.224164E+00 0.229431E+00 0.246664E+00 0.266059E+00 0.261248E+00 0.228475E+00 0.225450E+00 0.131554E+00 -0.900000E+01 0.190275E-03 0.164235E+00 0.143128E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142245E+00 0.211070E+00 0.260526E+00 0.286933E+00 0.298602E+00 0.307452E+00 0.306850E+00 0.308986E+00 0.298233E+00 0.283829E+00 0.277769E+00 0.241616E+00 0.206622E+00 0.189717E+00 0.179130E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.153770E+00 0.253850E+00 0.302428E+00 0.327675E+00 0.339785E+00 0.348872E+00 0.349509E+00 0.351985E+00 0.343272E+00 0.331923E+00 0.329094E+00 0.297450E+00 0.264781E+00 0.251618E+00 0.242646E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151316E+00 0.251782E+00 0.301016E+00 0.326887E+00 0.338857E+00 0.348549E+00 0.350041E+00 0.351521E+00 0.343793E+00 0.331632E+00 0.329223E+00 0.298445E+00 0.266605E+00 0.254960E+00 0.246968E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.148756E+00 0.250770E+00 0.299673E+00 0.325751E+00 0.337905E+00 0.348666E+00 0.354012E+00 0.351326E+00 0.344774E+00 0.332009E+00 0.330018E+00 0.300561E+00 0.270187E+00 0.260302E+00 0.253129E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145699E+00 0.249117E+00 0.298207E+00 0.324462E+00 0.337026E+00 0.347123E+00 0.352708E+00 0.350597E+00 0.346564E+00 0.334367E+00 0.331640E+00 0.304962E+00 0.277521E+00 0.268358E+00 0.263017E+00 0.251876E+00 -0.900000E+01 -0.900000E+01 + 0.142515E+00 0.247128E+00 0.296453E+00 0.322920E+00 0.337386E+00 0.345132E+00 0.350947E+00 0.349422E+00 0.352102E+00 0.343424E+00 0.335128E+00 0.316104E+00 0.295928E+00 0.288995E+00 0.284521E+00 0.278872E+00 -0.900000E+01 -0.900000E+01 + 0.140495E+00 0.245078E+00 0.294750E+00 0.321221E+00 0.335720E+00 0.343344E+00 0.349252E+00 0.348124E+00 0.351201E+00 0.344423E+00 0.336359E+00 0.336609E+00 0.335642E+00 0.333398E+00 0.330438E+00 0.326961E+00 -0.900000E+01 -0.900000E+01 + 0.138414E+00 0.244116E+00 0.293082E+00 0.319340E+00 0.334015E+00 0.341226E+00 0.347596E+00 0.347093E+00 0.350491E+00 0.345792E+00 0.337708E+00 0.338371E+00 0.338259E+00 0.337197E+00 0.334775E+00 0.331892E+00 -0.900000E+01 -0.900000E+01 + 0.135157E+00 0.242967E+00 0.291249E+00 0.317437E+00 0.331930E+00 0.339165E+00 0.346246E+00 0.347976E+00 0.350292E+00 0.347044E+00 0.339851E+00 0.338884E+00 0.336839E+00 0.333639E+00 0.329534E+00 0.321574E+00 -0.900000E+01 -0.900000E+01 + 0.132940E+00 0.240636E+00 0.289337E+00 0.315359E+00 0.330161E+00 0.337926E+00 0.346240E+00 0.351142E+00 0.351096E+00 0.347983E+00 0.341659E+00 0.337416E+00 0.331830E+00 0.325870E+00 0.319281E+00 0.292622E+00 -0.900000E+01 -0.900000E+01 + 0.131576E+00 0.240060E+00 0.287679E+00 0.313618E+00 0.328876E+00 0.336655E+00 0.345713E+00 0.351158E+00 0.351452E+00 0.350090E+00 0.342418E+00 0.333461E+00 0.323137E+00 0.314820E+00 0.306897E+00 0.164583E+00 -0.900000E+01 -0.900000E+01 + 0.128605E+00 0.239131E+00 0.286138E+00 0.311736E+00 0.327252E+00 0.335811E+00 0.345867E+00 0.351448E+00 0.351929E+00 0.351685E+00 0.342007E+00 0.323261E+00 0.307622E+00 0.298181E+00 0.286116E+00 0.354922E-01 -0.900000E+01 -0.900000E+01 + 0.126143E+00 0.238118E+00 0.284971E+00 0.310584E+00 0.325220E+00 0.335757E+00 0.346106E+00 0.349901E+00 0.352410E+00 0.351908E+00 0.340418E+00 0.306830E+00 0.273453E+00 0.258580E+00 0.227393E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123423E+00 0.236172E+00 0.283706E+00 0.309051E+00 0.323134E+00 0.336364E+00 0.345568E+00 0.346774E+00 0.352864E+00 0.349980E+00 0.338307E+00 0.305342E+00 0.271099E+00 0.254237E+00 0.186053E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121631E+00 0.235253E+00 0.282170E+00 0.307848E+00 0.322480E+00 0.337576E+00 0.345609E+00 0.346814E+00 0.352570E+00 0.347150E+00 0.333098E+00 0.300684E+00 0.269624E+00 0.251852E+00 0.187249E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118739E+00 0.234377E+00 0.281491E+00 0.305734E+00 0.322716E+00 0.337879E+00 0.343660E+00 0.346223E+00 0.348001E+00 0.340123E+00 0.320358E+00 0.287883E+00 0.263548E+00 0.247685E+00 0.185953E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116338E+00 0.233373E+00 0.280396E+00 0.304083E+00 0.323727E+00 0.337355E+00 0.340359E+00 0.344227E+00 0.341288E+00 0.334745E+00 0.307059E+00 0.272716E+00 0.256066E+00 0.239100E+00 0.181359E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113209E+00 0.233125E+00 0.280044E+00 0.303568E+00 0.323950E+00 0.336042E+00 0.339802E+00 0.339706E+00 0.333951E+00 0.330933E+00 0.306071E+00 0.272119E+00 0.254488E+00 0.222894E+00 0.177743E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110633E+00 0.233152E+00 0.280421E+00 0.302930E+00 0.323213E+00 0.332769E+00 0.338183E+00 0.334602E+00 0.328119E+00 0.324031E+00 0.299988E+00 0.268665E+00 0.252452E+00 0.241433E+00 0.232633E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107031E+00 0.233236E+00 0.280070E+00 0.302016E+00 0.320770E+00 0.329325E+00 0.335387E+00 0.331495E+00 0.322838E+00 0.309657E+00 0.281162E+00 0.259558E+00 0.246854E+00 0.237705E+00 0.228451E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.102778E+00 0.232392E+00 0.279250E+00 0.298442E+00 0.315040E+00 0.326413E+00 0.329206E+00 0.321193E+00 0.315376E+00 0.297827E+00 0.265442E+00 0.250676E+00 0.241434E+00 0.234241E+00 0.225083E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.991763E-01 0.231753E+00 0.276815E+00 0.294249E+00 0.309602E+00 0.322165E+00 0.323051E+00 0.313305E+00 0.309620E+00 0.285755E+00 0.259014E+00 0.246116E+00 0.238340E+00 0.231103E+00 0.213722E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.972357E-01 0.230337E+00 0.271890E+00 0.288992E+00 0.303326E+00 0.315629E+00 0.311476E+00 0.308664E+00 0.294879E+00 0.262933E+00 0.246355E+00 0.238219E+00 0.232509E+00 0.229410E+00 0.716452E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.963056E-01 0.222178E+00 0.264356E+00 0.282933E+00 0.298220E+00 0.308541E+00 0.303303E+00 0.302831E+00 0.285310E+00 0.251864E+00 0.242164E+00 0.236759E+00 0.232613E+00 0.228990E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.946988E-01 0.216979E+00 0.256678E+00 0.279694E+00 0.292397E+00 0.296885E+00 0.296099E+00 0.296317E+00 0.278495E+00 0.249567E+00 0.240596E+00 0.235343E+00 0.231137E+00 0.229371E+00 0.215682E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.933942E-01 0.215092E+00 0.251054E+00 0.276520E+00 0.285205E+00 0.278953E+00 0.283939E+00 0.280877E+00 0.254059E+00 0.241529E+00 0.235903E+00 0.232336E+00 0.230990E+00 0.229773E+00 0.223952E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.928843E-01 0.213238E+00 0.243937E+00 0.265348E+00 0.275548E+00 0.270062E+00 0.278355E+00 0.276164E+00 0.247534E+00 0.240837E+00 0.238092E+00 0.235736E+00 0.232170E+00 0.229028E+00 0.216286E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.913225E-01 0.210301E+00 0.238517E+00 0.263838E+00 0.276207E+00 0.272376E+00 0.281186E+00 0.276422E+00 0.247615E+00 0.240936E+00 0.237467E+00 0.234715E+00 0.232609E+00 0.228897E+00 0.876113E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.876049E-01 0.205020E+00 0.236935E+00 0.267936E+00 0.268922E+00 0.272909E+00 0.280558E+00 0.273275E+00 0.246464E+00 0.237809E+00 0.233577E+00 0.232296E+00 0.231227E+00 0.230391E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.826091E-01 0.189745E+00 0.224295E+00 0.242511E+00 0.254747E+00 0.263349E+00 0.263756E+00 0.239848E+00 0.232168E+00 0.230697E+00 0.226497E+00 0.228158E+00 0.228809E+00 0.229455E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.633684E-01 0.172641E+00 0.212203E+00 0.223589E+00 0.229153E+00 0.245473E+00 0.247299E+00 0.220808E+00 0.216248E+00 0.210200E+00 0.124923E+00 0.186105E+00 0.204187E+00 0.211170E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.489350E-03 0.169196E+00 0.199221E+00 0.210328E+00 0.227117E+00 0.247695E+00 0.247801E+00 0.219179E+00 0.214278E+00 0.125306E+00 -0.900000E+01 0.278568E-03 0.153016E+00 0.132626E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.133699E+00 0.189713E+00 0.229693E+00 0.253988E+00 0.266652E+00 0.274742E+00 0.275503E+00 0.278062E+00 0.270598E+00 0.257791E+00 0.251862E+00 0.219239E+00 0.187570E+00 0.172343E+00 0.161824E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143185E+00 0.222855E+00 0.263513E+00 0.286791E+00 0.299829E+00 0.308178E+00 0.309930E+00 0.313065E+00 0.308166E+00 0.297023E+00 0.293446E+00 0.266729E+00 0.237708E+00 0.224287E+00 0.214511E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140781E+00 0.221495E+00 0.262303E+00 0.286086E+00 0.299193E+00 0.308216E+00 0.310240E+00 0.312773E+00 0.308360E+00 0.297678E+00 0.294207E+00 0.268737E+00 0.240339E+00 0.228205E+00 0.219085E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138644E+00 0.220190E+00 0.261116E+00 0.284806E+00 0.298613E+00 0.307927E+00 0.312698E+00 0.311591E+00 0.308746E+00 0.298847E+00 0.295249E+00 0.271852E+00 0.244643E+00 0.234064E+00 0.226180E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.136498E+00 0.218517E+00 0.259967E+00 0.283622E+00 0.297418E+00 0.307105E+00 0.311658E+00 0.310977E+00 0.310093E+00 0.301252E+00 0.296586E+00 0.277220E+00 0.252704E+00 0.243235E+00 0.236684E+00 0.225463E+00 -0.900000E+01 -0.900000E+01 + 0.133414E+00 0.216829E+00 0.258299E+00 0.282366E+00 0.297697E+00 0.305888E+00 0.310760E+00 0.310067E+00 0.313584E+00 0.307288E+00 0.299580E+00 0.287625E+00 0.270430E+00 0.262301E+00 0.256650E+00 0.251191E+00 -0.900000E+01 -0.900000E+01 + 0.131439E+00 0.215319E+00 0.257056E+00 0.280670E+00 0.296379E+00 0.304763E+00 0.309841E+00 0.309163E+00 0.312685E+00 0.306710E+00 0.300723E+00 0.300777E+00 0.299445E+00 0.296774E+00 0.292815E+00 0.288155E+00 -0.900000E+01 -0.900000E+01 + 0.129302E+00 0.213999E+00 0.255797E+00 0.279181E+00 0.294630E+00 0.303608E+00 0.308841E+00 0.308449E+00 0.312133E+00 0.307175E+00 0.302369E+00 0.301708E+00 0.300496E+00 0.298905E+00 0.295982E+00 0.290490E+00 -0.900000E+01 -0.900000E+01 + 0.127400E+00 0.212221E+00 0.255087E+00 0.277518E+00 0.293077E+00 0.301709E+00 0.308476E+00 0.309451E+00 0.312392E+00 0.308267E+00 0.303206E+00 0.301124E+00 0.298791E+00 0.295633E+00 0.290839E+00 0.278839E+00 -0.900000E+01 -0.900000E+01 + 0.124594E+00 0.210542E+00 0.253815E+00 0.275709E+00 0.291768E+00 0.300688E+00 0.308473E+00 0.312149E+00 0.314042E+00 0.309306E+00 0.304153E+00 0.300181E+00 0.294637E+00 0.287905E+00 0.280563E+00 0.253033E+00 -0.900000E+01 -0.900000E+01 + 0.122161E+00 0.209318E+00 0.252752E+00 0.274880E+00 0.290393E+00 0.299751E+00 0.307540E+00 0.312224E+00 0.314856E+00 0.310202E+00 0.305241E+00 0.297010E+00 0.286937E+00 0.278785E+00 0.269911E+00 0.131933E+00 -0.900000E+01 -0.900000E+01 + 0.119448E+00 0.208021E+00 0.251744E+00 0.273403E+00 0.289065E+00 0.299075E+00 0.307131E+00 0.312471E+00 0.316190E+00 0.311687E+00 0.306330E+00 0.289687E+00 0.274269E+00 0.264436E+00 0.251269E+00 0.247192E-01 -0.900000E+01 -0.900000E+01 + 0.116383E+00 0.206348E+00 0.250095E+00 0.272284E+00 0.287596E+00 0.297967E+00 0.305848E+00 0.312204E+00 0.316534E+00 0.313005E+00 0.306515E+00 0.279048E+00 0.247762E+00 0.231660E+00 0.198702E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113242E+00 0.204885E+00 0.248353E+00 0.270790E+00 0.285238E+00 0.296946E+00 0.305225E+00 0.310834E+00 0.315393E+00 0.312554E+00 0.303093E+00 0.277549E+00 0.245541E+00 0.227311E+00 0.171675E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110559E+00 0.203802E+00 0.247308E+00 0.269838E+00 0.284515E+00 0.296182E+00 0.306435E+00 0.311224E+00 0.313465E+00 0.308999E+00 0.294572E+00 0.269797E+00 0.241300E+00 0.223307E+00 0.169227E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107612E+00 0.203126E+00 0.246452E+00 0.268934E+00 0.284002E+00 0.295537E+00 0.305164E+00 0.310162E+00 0.309058E+00 0.301804E+00 0.285383E+00 0.258014E+00 0.234652E+00 0.218068E+00 0.164455E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.104705E+00 0.201934E+00 0.245200E+00 0.267953E+00 0.283326E+00 0.294501E+00 0.302418E+00 0.307317E+00 0.303744E+00 0.295660E+00 0.276190E+00 0.245648E+00 0.228377E+00 0.210554E+00 0.157601E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.103122E+00 0.201239E+00 0.244796E+00 0.267688E+00 0.282207E+00 0.293192E+00 0.300785E+00 0.303091E+00 0.297711E+00 0.292304E+00 0.273784E+00 0.244938E+00 0.227062E+00 0.194150E+00 0.154383E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.100981E+00 0.200243E+00 0.244205E+00 0.267428E+00 0.280371E+00 0.290275E+00 0.298002E+00 0.298884E+00 0.291314E+00 0.286278E+00 0.267507E+00 0.241443E+00 0.224048E+00 0.211460E+00 0.201559E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.985838E-01 0.200112E+00 0.243637E+00 0.266173E+00 0.278034E+00 0.286952E+00 0.294232E+00 0.295780E+00 0.289102E+00 0.277043E+00 0.252647E+00 0.231655E+00 0.217953E+00 0.207978E+00 0.198549E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.965799E-01 0.199011E+00 0.242597E+00 0.263356E+00 0.273217E+00 0.284162E+00 0.290047E+00 0.288533E+00 0.284581E+00 0.266004E+00 0.239336E+00 0.223626E+00 0.212583E+00 0.204232E+00 0.193232E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.945755E-01 0.198329E+00 0.239660E+00 0.258509E+00 0.269109E+00 0.281307E+00 0.285990E+00 0.283025E+00 0.279304E+00 0.258550E+00 0.232757E+00 0.218854E+00 0.209433E+00 0.201861E+00 0.181105E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.918249E-01 0.196793E+00 0.235042E+00 0.253105E+00 0.265544E+00 0.277166E+00 0.279129E+00 0.278594E+00 0.267143E+00 0.240361E+00 0.223843E+00 0.213898E+00 0.205328E+00 0.198840E+00 0.543321E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.886747E-01 0.192569E+00 0.228085E+00 0.249204E+00 0.263986E+00 0.272308E+00 0.272354E+00 0.271589E+00 0.257128E+00 0.231124E+00 0.218906E+00 0.211625E+00 0.204734E+00 0.198888E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.845312E-01 0.190383E+00 0.224443E+00 0.246315E+00 0.261886E+00 0.266241E+00 0.262902E+00 0.262454E+00 0.248485E+00 0.227403E+00 0.216697E+00 0.209591E+00 0.202576E+00 0.198221E+00 0.188653E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.811881E-01 0.188094E+00 0.220324E+00 0.243078E+00 0.254940E+00 0.253721E+00 0.254011E+00 0.250978E+00 0.229278E+00 0.217672E+00 0.211110E+00 0.205327E+00 0.200769E+00 0.198813E+00 0.192236E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.776443E-01 0.184739E+00 0.216748E+00 0.233262E+00 0.242699E+00 0.244039E+00 0.247179E+00 0.247130E+00 0.226328E+00 0.218451E+00 0.213759E+00 0.209876E+00 0.204578E+00 0.199329E+00 0.183535E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.753732E-01 0.180216E+00 0.212237E+00 0.236070E+00 0.247565E+00 0.247117E+00 0.252555E+00 0.251693E+00 0.230556E+00 0.220900E+00 0.214147E+00 0.209088E+00 0.204437E+00 0.199793E+00 0.670455E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.796203E-01 0.173841E+00 0.203207E+00 0.239668E+00 0.244932E+00 0.249720E+00 0.252845E+00 0.245350E+00 0.227682E+00 0.216638E+00 0.207662E+00 0.203234E+00 0.201447E+00 0.199924E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.849253E-01 0.159560E+00 0.189794E+00 0.208903E+00 0.228982E+00 0.237842E+00 0.237210E+00 0.218245E+00 0.209804E+00 0.202864E+00 0.196966E+00 0.197758E+00 0.197598E+00 0.197873E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.774620E-01 0.143146E+00 0.176823E+00 0.191923E+00 0.202502E+00 0.213298E+00 0.220406E+00 0.204894E+00 0.197466E+00 0.187402E+00 0.107054E+00 0.162726E+00 0.181687E+00 0.188145E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.520882E-03 0.140908E+00 0.172133E+00 0.188691E+00 0.204275E+00 0.223464E+00 0.227958E+00 0.204373E+00 0.197688E+00 0.115668E+00 -0.900000E+01 0.184939E-03 0.137693E+00 0.118212E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166692E+00 0.219460E+00 0.253185E+00 0.271506E+00 0.280788E+00 0.285945E+00 0.283005E+00 0.282343E+00 0.271394E+00 0.256715E+00 0.249935E+00 0.216032E+00 0.185513E+00 0.174223E+00 0.165869E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184726E+00 0.253825E+00 0.287562E+00 0.305231E+00 0.314360E+00 0.319860E+00 0.317558E+00 0.317499E+00 0.307954E+00 0.294160E+00 0.289648E+00 0.258908E+00 0.232504E+00 0.224662E+00 0.218235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182210E+00 0.252294E+00 0.286121E+00 0.304003E+00 0.313329E+00 0.319170E+00 0.317925E+00 0.317250E+00 0.308263E+00 0.294096E+00 0.289766E+00 0.260100E+00 0.234099E+00 0.227155E+00 0.221717E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179562E+00 0.251006E+00 0.285142E+00 0.302481E+00 0.311808E+00 0.319425E+00 0.321876E+00 0.317040E+00 0.308709E+00 0.294649E+00 0.290167E+00 0.262408E+00 0.237610E+00 0.231252E+00 0.225635E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176867E+00 0.249196E+00 0.283695E+00 0.301151E+00 0.310441E+00 0.317925E+00 0.320768E+00 0.316659E+00 0.310299E+00 0.297166E+00 0.290993E+00 0.267849E+00 0.244185E+00 0.237349E+00 0.232299E+00 0.225110E+00 -0.900000E+01 -0.900000E+01 + 0.173136E+00 0.248065E+00 0.282001E+00 0.299529E+00 0.310079E+00 0.316471E+00 0.319436E+00 0.316091E+00 0.315675E+00 0.304193E+00 0.292524E+00 0.278674E+00 0.260581E+00 0.253143E+00 0.248233E+00 0.243866E+00 -0.900000E+01 -0.900000E+01 + 0.169980E+00 0.246250E+00 0.280470E+00 0.297771E+00 0.308017E+00 0.314490E+00 0.318293E+00 0.315289E+00 0.314861E+00 0.303695E+00 0.292709E+00 0.291796E+00 0.290148E+00 0.287680E+00 0.284778E+00 0.280565E+00 -0.900000E+01 -0.900000E+01 + 0.167216E+00 0.244552E+00 0.279374E+00 0.295664E+00 0.305497E+00 0.312426E+00 0.316872E+00 0.314280E+00 0.313893E+00 0.303328E+00 0.293495E+00 0.291877E+00 0.290363E+00 0.288512E+00 0.285768E+00 0.280572E+00 -0.900000E+01 -0.900000E+01 + 0.164399E+00 0.242718E+00 0.277587E+00 0.293544E+00 0.303221E+00 0.310193E+00 0.315792E+00 0.314657E+00 0.312901E+00 0.303287E+00 0.293838E+00 0.291487E+00 0.288774E+00 0.286067E+00 0.282230E+00 0.271461E+00 -0.900000E+01 -0.900000E+01 + 0.161007E+00 0.240566E+00 0.275168E+00 0.291181E+00 0.301253E+00 0.308498E+00 0.314880E+00 0.316241E+00 0.312479E+00 0.303784E+00 0.294119E+00 0.290043E+00 0.285605E+00 0.281380E+00 0.276137E+00 0.247221E+00 -0.900000E+01 -0.900000E+01 + 0.156723E+00 0.238418E+00 0.273322E+00 0.289310E+00 0.299086E+00 0.305930E+00 0.312594E+00 0.314276E+00 0.311409E+00 0.304096E+00 0.293859E+00 0.287227E+00 0.280289E+00 0.274362E+00 0.267470E+00 0.120497E+00 -0.900000E+01 -0.900000E+01 + 0.152877E+00 0.236461E+00 0.270925E+00 0.287462E+00 0.296698E+00 0.303756E+00 0.310046E+00 0.312043E+00 0.310100E+00 0.303639E+00 0.293778E+00 0.279434E+00 0.266912E+00 0.260095E+00 0.248823E+00 0.128525E-01 -0.900000E+01 -0.900000E+01 + 0.148877E+00 0.233985E+00 0.268124E+00 0.284714E+00 0.293878E+00 0.300559E+00 0.306360E+00 0.308037E+00 0.308534E+00 0.302334E+00 0.292581E+00 0.265539E+00 0.237730E+00 0.226570E+00 0.195080E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145976E+00 0.231480E+00 0.265126E+00 0.281477E+00 0.289946E+00 0.297521E+00 0.302360E+00 0.302774E+00 0.305983E+00 0.299819E+00 0.288689E+00 0.264571E+00 0.236557E+00 0.223575E+00 0.169904E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143203E+00 0.228872E+00 0.262698E+00 0.279164E+00 0.287598E+00 0.294444E+00 0.299301E+00 0.300429E+00 0.302994E+00 0.296203E+00 0.283764E+00 0.258031E+00 0.232330E+00 0.219923E+00 0.167564E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140225E+00 0.226531E+00 0.260037E+00 0.276457E+00 0.285332E+00 0.291418E+00 0.294360E+00 0.297320E+00 0.297360E+00 0.289383E+00 0.273274E+00 0.246429E+00 0.227588E+00 0.215588E+00 0.163221E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137671E+00 0.224144E+00 0.257701E+00 0.273929E+00 0.283011E+00 0.287747E+00 0.288713E+00 0.293344E+00 0.290741E+00 0.283415E+00 0.263259E+00 0.235891E+00 0.223696E+00 0.209223E+00 0.158542E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.135690E+00 0.221661E+00 0.254666E+00 0.271695E+00 0.280500E+00 0.284253E+00 0.285612E+00 0.287726E+00 0.283731E+00 0.279488E+00 0.260928E+00 0.233876E+00 0.221054E+00 0.191399E+00 0.159792E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132853E+00 0.219137E+00 0.250783E+00 0.269172E+00 0.277130E+00 0.279211E+00 0.282301E+00 0.282604E+00 0.277773E+00 0.274361E+00 0.252527E+00 0.228755E+00 0.217540E+00 0.209000E+00 0.201124E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.129788E+00 0.216681E+00 0.246433E+00 0.265408E+00 0.272254E+00 0.273980E+00 0.278873E+00 0.278898E+00 0.274675E+00 0.262600E+00 0.237271E+00 0.220944E+00 0.212594E+00 0.205709E+00 0.198149E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126232E+00 0.214237E+00 0.242086E+00 0.259635E+00 0.266357E+00 0.271192E+00 0.274336E+00 0.272196E+00 0.270422E+00 0.252081E+00 0.225692E+00 0.215882E+00 0.208704E+00 0.202740E+00 0.193186E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.122577E+00 0.211183E+00 0.236927E+00 0.252221E+00 0.260959E+00 0.268686E+00 0.269997E+00 0.267205E+00 0.265066E+00 0.246103E+00 0.222236E+00 0.212655E+00 0.205962E+00 0.200622E+00 0.179191E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118233E+00 0.208035E+00 0.231714E+00 0.246302E+00 0.257448E+00 0.265132E+00 0.262491E+00 0.263124E+00 0.253714E+00 0.229391E+00 0.215646E+00 0.208471E+00 0.202901E+00 0.198143E+00 0.397756E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.111512E+00 0.203983E+00 0.227015E+00 0.239217E+00 0.253885E+00 0.260826E+00 0.256862E+00 0.257502E+00 0.244163E+00 0.219259E+00 0.211707E+00 0.206669E+00 0.201598E+00 0.196316E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.103505E+00 0.198039E+00 0.222391E+00 0.233917E+00 0.248756E+00 0.255559E+00 0.252994E+00 0.252538E+00 0.237670E+00 0.217022E+00 0.209743E+00 0.204189E+00 0.199340E+00 0.194424E+00 0.186137E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.970979E-01 0.190531E+00 0.215604E+00 0.229733E+00 0.241566E+00 0.243569E+00 0.246445E+00 0.240591E+00 0.220077E+00 0.209953E+00 0.204735E+00 0.200244E+00 0.195515E+00 0.191063E+00 0.184470E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.915513E-01 0.182367E+00 0.208543E+00 0.225608E+00 0.233653E+00 0.233511E+00 0.237677E+00 0.235729E+00 0.216610E+00 0.210497E+00 0.206383E+00 0.201766E+00 0.195805E+00 0.190618E+00 0.175123E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.897311E-01 0.173661E+00 0.198824E+00 0.221412E+00 0.236551E+00 0.238830E+00 0.242181E+00 0.240270E+00 0.221409E+00 0.213311E+00 0.206512E+00 0.199834E+00 0.194102E+00 0.189595E+00 0.461843E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.893946E-01 0.165228E+00 0.187483E+00 0.222656E+00 0.233362E+00 0.240030E+00 0.242870E+00 0.233119E+00 0.217887E+00 0.207777E+00 0.198717E+00 0.191687E+00 0.188210E+00 0.186945E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.881828E-01 0.151034E+00 0.175609E+00 0.190703E+00 0.210496E+00 0.222607E+00 0.223923E+00 0.205092E+00 0.197449E+00 0.191920E+00 0.183892E+00 0.185051E+00 0.185079E+00 0.185149E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.857475E-01 0.126593E+00 0.161833E+00 0.174873E+00 0.181583E+00 0.190037E+00 0.197565E+00 0.189287E+00 0.184312E+00 0.175856E+00 0.860993E-01 0.144025E+00 0.164005E+00 0.171102E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.749855E-03 0.116923E+00 0.148499E+00 0.167146E+00 0.179524E+00 0.197348E+00 0.206983E+00 0.190508E+00 0.181026E+00 0.105086E+00 -0.900000E+01 0.184256E-03 0.122030E+00 0.102860E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224077E+00 0.271445E+00 0.296383E+00 0.310618E+00 0.312962E+00 0.311983E+00 0.303182E+00 0.300202E+00 0.286312E+00 0.268714E+00 0.260938E+00 0.223684E+00 0.191974E+00 0.181946E+00 0.173521E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249242E+00 0.305609E+00 0.330275E+00 0.344822E+00 0.347123E+00 0.345862E+00 0.337366E+00 0.334303E+00 0.321583E+00 0.305281E+00 0.299886E+00 0.264056E+00 0.236224E+00 0.229953E+00 0.223759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246942E+00 0.303933E+00 0.328732E+00 0.343247E+00 0.346017E+00 0.344973E+00 0.337218E+00 0.333467E+00 0.321576E+00 0.305061E+00 0.299746E+00 0.264058E+00 0.236398E+00 0.230429E+00 0.225082E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244680E+00 0.302185E+00 0.326587E+00 0.341108E+00 0.344642E+00 0.345240E+00 0.341639E+00 0.332953E+00 0.321892E+00 0.304845E+00 0.299551E+00 0.264716E+00 0.237028E+00 0.231952E+00 0.226425E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242390E+00 0.300317E+00 0.324178E+00 0.339078E+00 0.343431E+00 0.343802E+00 0.340415E+00 0.332062E+00 0.322989E+00 0.306550E+00 0.299432E+00 0.266369E+00 0.239934E+00 0.235073E+00 0.231993E+00 0.226234E+00 -0.900000E+01 -0.900000E+01 + 0.239343E+00 0.298279E+00 0.321932E+00 0.337005E+00 0.343529E+00 0.342137E+00 0.338877E+00 0.330628E+00 0.328034E+00 0.314835E+00 0.300339E+00 0.275007E+00 0.255606E+00 0.250992E+00 0.247709E+00 0.242859E+00 -0.900000E+01 -0.900000E+01 + 0.236488E+00 0.296145E+00 0.319716E+00 0.334050E+00 0.340997E+00 0.340268E+00 0.337310E+00 0.329239E+00 0.326784E+00 0.313955E+00 0.299659E+00 0.296904E+00 0.294377E+00 0.291697E+00 0.289146E+00 0.283627E+00 -0.900000E+01 -0.900000E+01 + 0.232795E+00 0.293712E+00 0.318281E+00 0.331009E+00 0.338000E+00 0.338271E+00 0.335900E+00 0.327976E+00 0.325482E+00 0.312703E+00 0.298831E+00 0.295778E+00 0.293673E+00 0.291355E+00 0.288889E+00 0.282828E+00 -0.900000E+01 -0.900000E+01 + 0.229232E+00 0.290831E+00 0.315399E+00 0.327760E+00 0.334690E+00 0.335843E+00 0.334828E+00 0.328040E+00 0.324020E+00 0.311677E+00 0.297661E+00 0.294617E+00 0.292016E+00 0.288875E+00 0.284945E+00 0.273369E+00 -0.900000E+01 -0.900000E+01 + 0.225378E+00 0.287968E+00 0.312401E+00 0.324406E+00 0.331188E+00 0.333232E+00 0.334308E+00 0.330256E+00 0.323111E+00 0.310995E+00 0.296623E+00 0.292361E+00 0.288128E+00 0.283956E+00 0.278587E+00 0.247239E+00 -0.900000E+01 -0.900000E+01 + 0.220736E+00 0.284777E+00 0.309714E+00 0.321110E+00 0.327338E+00 0.329941E+00 0.331557E+00 0.327825E+00 0.321652E+00 0.309553E+00 0.295192E+00 0.288208E+00 0.281406E+00 0.276478E+00 0.269425E+00 0.118730E+00 -0.900000E+01 -0.900000E+01 + 0.216384E+00 0.281441E+00 0.306653E+00 0.317575E+00 0.323224E+00 0.326079E+00 0.327929E+00 0.324990E+00 0.319365E+00 0.307691E+00 0.292890E+00 0.276872E+00 0.265099E+00 0.259999E+00 0.248897E+00 0.749293E-02 -0.900000E+01 -0.900000E+01 + 0.211636E+00 0.277688E+00 0.302879E+00 0.312846E+00 0.317898E+00 0.320866E+00 0.322168E+00 0.319465E+00 0.315803E+00 0.304656E+00 0.290330E+00 0.258230E+00 0.232514E+00 0.224625E+00 0.192751E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207542E+00 0.273661E+00 0.298782E+00 0.307519E+00 0.310584E+00 0.315248E+00 0.315347E+00 0.311444E+00 0.310495E+00 0.299838E+00 0.285748E+00 0.255842E+00 0.230126E+00 0.220995E+00 0.174588E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202860E+00 0.269720E+00 0.295002E+00 0.302792E+00 0.305391E+00 0.309241E+00 0.309227E+00 0.305782E+00 0.304032E+00 0.293822E+00 0.279833E+00 0.251045E+00 0.227027E+00 0.217808E+00 0.172470E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198272E+00 0.265576E+00 0.291140E+00 0.297713E+00 0.300011E+00 0.302139E+00 0.300863E+00 0.299230E+00 0.295002E+00 0.284593E+00 0.266762E+00 0.239052E+00 0.222787E+00 0.213759E+00 0.168506E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193683E+00 0.261067E+00 0.286960E+00 0.292641E+00 0.294807E+00 0.295429E+00 0.292577E+00 0.292371E+00 0.285306E+00 0.274766E+00 0.251283E+00 0.225163E+00 0.217401E+00 0.206642E+00 0.164079E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.189643E+00 0.256516E+00 0.282243E+00 0.288137E+00 0.289965E+00 0.289921E+00 0.287090E+00 0.284608E+00 0.276052E+00 0.269214E+00 0.246937E+00 0.221780E+00 0.214100E+00 0.186943E+00 0.171463E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184742E+00 0.252053E+00 0.276861E+00 0.284337E+00 0.285237E+00 0.283302E+00 0.282127E+00 0.277539E+00 0.267459E+00 0.263359E+00 0.240640E+00 0.216765E+00 0.210622E+00 0.206165E+00 0.200924E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179115E+00 0.246894E+00 0.270714E+00 0.279932E+00 0.280631E+00 0.277496E+00 0.277264E+00 0.272927E+00 0.263606E+00 0.251296E+00 0.226344E+00 0.213105E+00 0.208211E+00 0.204527E+00 0.199064E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.173081E+00 0.241585E+00 0.264522E+00 0.275258E+00 0.274733E+00 0.273274E+00 0.271191E+00 0.264754E+00 0.259934E+00 0.241123E+00 0.215463E+00 0.209511E+00 0.205884E+00 0.202814E+00 0.194320E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166420E+00 0.235705E+00 0.257706E+00 0.269210E+00 0.269099E+00 0.269581E+00 0.266652E+00 0.258319E+00 0.255940E+00 0.236809E+00 0.212433E+00 0.207225E+00 0.203906E+00 0.201433E+00 0.179438E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.159808E+00 0.230259E+00 0.250678E+00 0.261871E+00 0.264350E+00 0.264057E+00 0.257956E+00 0.255068E+00 0.244009E+00 0.219545E+00 0.209002E+00 0.204933E+00 0.201989E+00 0.199148E+00 0.251386E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.152023E+00 0.224487E+00 0.242854E+00 0.251341E+00 0.257030E+00 0.258104E+00 0.251853E+00 0.250983E+00 0.236026E+00 0.209553E+00 0.205501E+00 0.202319E+00 0.199709E+00 0.195786E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.144482E+00 0.217943E+00 0.235972E+00 0.241836E+00 0.247635E+00 0.250523E+00 0.246274E+00 0.245828E+00 0.231221E+00 0.207217E+00 0.203192E+00 0.200258E+00 0.197549E+00 0.194498E+00 0.187981E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138157E+00 0.207462E+00 0.227878E+00 0.233781E+00 0.237425E+00 0.237403E+00 0.239839E+00 0.233753E+00 0.211792E+00 0.203600E+00 0.200566E+00 0.197631E+00 0.194181E+00 0.190753E+00 0.184495E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132488E+00 0.192285E+00 0.219198E+00 0.227004E+00 0.230617E+00 0.229429E+00 0.233416E+00 0.227176E+00 0.207990E+00 0.202695E+00 0.198315E+00 0.194294E+00 0.190276E+00 0.186769E+00 0.171844E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.128268E+00 0.177972E+00 0.205549E+00 0.218758E+00 0.227115E+00 0.229066E+00 0.232512E+00 0.227755E+00 0.210699E+00 0.202191E+00 0.196303E+00 0.191543E+00 0.186917E+00 0.183358E+00 0.281722E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.122527E+00 0.167939E+00 0.187953E+00 0.214552E+00 0.224147E+00 0.230389E+00 0.233539E+00 0.224397E+00 0.205691E+00 0.197786E+00 0.190207E+00 0.185784E+00 0.180989E+00 0.177065E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.114586E+00 0.154837E+00 0.174030E+00 0.186359E+00 0.199768E+00 0.212234E+00 0.214970E+00 0.195823E+00 0.188271E+00 0.182900E+00 0.174406E+00 0.175450E+00 0.174150E+00 0.172567E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.102856E+00 0.121509E+00 0.157346E+00 0.169418E+00 0.174599E+00 0.180627E+00 0.182469E+00 0.173622E+00 0.169729E+00 0.163848E+00 0.602369E-01 0.131355E+00 0.148540E+00 0.157079E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.875284E-03 0.898106E-01 0.117888E+00 0.135159E+00 0.144833E+00 0.163909E+00 0.176512E+00 0.166043E+00 0.154305E+00 0.891558E-01 -0.900000E+01 0.131345E-03 0.981652E-01 0.836721E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.277708E+00 0.317989E+00 0.335242E+00 0.343232E+00 0.342316E+00 0.340015E+00 0.328535E+00 0.323744E+00 0.307055E+00 0.286888E+00 0.277583E+00 0.236990E+00 0.203477E+00 0.192488E+00 0.181434E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307542E+00 0.355086E+00 0.371476E+00 0.378707E+00 0.377522E+00 0.375025E+00 0.363849E+00 0.359387E+00 0.343511E+00 0.323609E+00 0.316540E+00 0.277082E+00 0.246791E+00 0.239038E+00 0.230573E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304510E+00 0.352477E+00 0.369395E+00 0.376786E+00 0.375508E+00 0.372669E+00 0.362406E+00 0.356771E+00 0.342504E+00 0.322545E+00 0.315594E+00 0.276691E+00 0.246829E+00 0.239523E+00 0.231253E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.301185E+00 0.349809E+00 0.367172E+00 0.374395E+00 0.372849E+00 0.371850E+00 0.365877E+00 0.354705E+00 0.341818E+00 0.321886E+00 0.314791E+00 0.276740E+00 0.247238E+00 0.240211E+00 0.231823E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.297716E+00 0.347094E+00 0.364995E+00 0.371557E+00 0.370588E+00 0.368660E+00 0.363152E+00 0.352715E+00 0.341643E+00 0.322452E+00 0.313760E+00 0.278118E+00 0.249210E+00 0.243016E+00 0.238535E+00 0.230568E+00 -0.900000E+01 -0.900000E+01 + 0.294466E+00 0.343964E+00 0.362242E+00 0.369198E+00 0.370068E+00 0.365438E+00 0.360146E+00 0.350017E+00 0.345994E+00 0.330134E+00 0.314134E+00 0.286621E+00 0.264653E+00 0.259080E+00 0.254957E+00 0.247639E+00 -0.900000E+01 -0.900000E+01 + 0.290811E+00 0.341708E+00 0.359575E+00 0.365976E+00 0.366607E+00 0.362145E+00 0.357338E+00 0.347470E+00 0.343135E+00 0.328315E+00 0.312995E+00 0.309421E+00 0.305311E+00 0.301398E+00 0.297490E+00 0.290751E+00 -0.900000E+01 -0.900000E+01 + 0.286943E+00 0.338579E+00 0.357370E+00 0.362752E+00 0.363173E+00 0.358856E+00 0.354085E+00 0.344725E+00 0.340419E+00 0.326433E+00 0.311310E+00 0.307433E+00 0.303823E+00 0.300874E+00 0.297066E+00 0.288812E+00 -0.900000E+01 -0.900000E+01 + 0.283708E+00 0.334864E+00 0.353977E+00 0.359354E+00 0.359712E+00 0.355491E+00 0.351883E+00 0.343805E+00 0.337760E+00 0.324779E+00 0.309577E+00 0.305185E+00 0.301568E+00 0.298039E+00 0.293014E+00 0.278540E+00 -0.900000E+01 -0.900000E+01 + 0.280571E+00 0.331185E+00 0.350244E+00 0.355953E+00 0.356100E+00 0.352187E+00 0.350417E+00 0.344645E+00 0.335870E+00 0.323140E+00 0.307714E+00 0.302499E+00 0.297727E+00 0.292860E+00 0.286045E+00 0.248655E+00 -0.900000E+01 -0.900000E+01 + 0.276629E+00 0.327740E+00 0.346213E+00 0.352599E+00 0.352614E+00 0.348736E+00 0.346956E+00 0.341518E+00 0.333882E+00 0.321161E+00 0.305432E+00 0.297749E+00 0.290763E+00 0.285091E+00 0.275788E+00 0.120362E+00 -0.900000E+01 -0.900000E+01 + 0.272482E+00 0.324227E+00 0.341992E+00 0.348977E+00 0.349187E+00 0.345576E+00 0.343602E+00 0.338520E+00 0.331307E+00 0.319091E+00 0.303045E+00 0.285695E+00 0.273119E+00 0.266580E+00 0.252644E+00 0.675485E-02 -0.900000E+01 -0.900000E+01 + 0.268456E+00 0.320209E+00 0.336952E+00 0.343951E+00 0.344455E+00 0.341956E+00 0.339330E+00 0.334003E+00 0.328874E+00 0.317007E+00 0.300453E+00 0.265682E+00 0.238164E+00 0.229087E+00 0.192710E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.264053E+00 0.316061E+00 0.331944E+00 0.339395E+00 0.338890E+00 0.338803E+00 0.334864E+00 0.327781E+00 0.325614E+00 0.313395E+00 0.296648E+00 0.263051E+00 0.235565E+00 0.225088E+00 0.175949E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259586E+00 0.311840E+00 0.327326E+00 0.334291E+00 0.334383E+00 0.334680E+00 0.331251E+00 0.324382E+00 0.321089E+00 0.308344E+00 0.291077E+00 0.258400E+00 0.232173E+00 0.221504E+00 0.174362E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.254312E+00 0.307231E+00 0.322890E+00 0.328274E+00 0.328759E+00 0.328076E+00 0.323826E+00 0.319117E+00 0.311957E+00 0.298189E+00 0.276443E+00 0.244957E+00 0.226729E+00 0.216609E+00 0.171696E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.248726E+00 0.302199E+00 0.317581E+00 0.321438E+00 0.322567E+00 0.320615E+00 0.314070E+00 0.310990E+00 0.300921E+00 0.287031E+00 0.258634E+00 0.229034E+00 0.220093E+00 0.208467E+00 0.170642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.243792E+00 0.296943E+00 0.312158E+00 0.314781E+00 0.315082E+00 0.313098E+00 0.306413E+00 0.300645E+00 0.289375E+00 0.279591E+00 0.252433E+00 0.223742E+00 0.215921E+00 0.186777E+00 0.180392E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.237938E+00 0.290824E+00 0.305833E+00 0.307903E+00 0.306799E+00 0.303505E+00 0.298669E+00 0.291214E+00 0.278088E+00 0.271918E+00 0.246001E+00 0.219378E+00 0.212494E+00 0.207498E+00 0.201421E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231648E+00 0.284571E+00 0.299007E+00 0.301298E+00 0.298841E+00 0.293321E+00 0.290511E+00 0.284343E+00 0.272301E+00 0.257395E+00 0.229355E+00 0.214821E+00 0.209634E+00 0.205627E+00 0.199538E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224797E+00 0.277317E+00 0.293459E+00 0.294542E+00 0.290245E+00 0.286829E+00 0.282053E+00 0.273573E+00 0.266879E+00 0.245178E+00 0.216128E+00 0.210710E+00 0.206977E+00 0.204079E+00 0.195235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217294E+00 0.269818E+00 0.287407E+00 0.288367E+00 0.282772E+00 0.281141E+00 0.275907E+00 0.265204E+00 0.261481E+00 0.240126E+00 0.213326E+00 0.208514E+00 0.205048E+00 0.202108E+00 0.178885E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.208120E+00 0.262909E+00 0.280533E+00 0.282918E+00 0.278174E+00 0.274578E+00 0.265640E+00 0.260524E+00 0.247576E+00 0.221095E+00 0.209475E+00 0.205760E+00 0.202856E+00 0.199160E+00 0.150501E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197174E+00 0.254408E+00 0.271439E+00 0.274766E+00 0.273760E+00 0.270142E+00 0.258924E+00 0.256259E+00 0.239181E+00 0.210604E+00 0.206483E+00 0.203228E+00 0.200176E+00 0.194109E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185891E+00 0.244755E+00 0.261826E+00 0.265845E+00 0.267288E+00 0.264605E+00 0.254664E+00 0.251564E+00 0.234979E+00 0.209010E+00 0.204191E+00 0.200188E+00 0.196374E+00 0.192297E+00 0.185317E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175836E+00 0.232757E+00 0.249906E+00 0.255073E+00 0.255577E+00 0.248526E+00 0.247385E+00 0.237533E+00 0.213226E+00 0.204425E+00 0.199609E+00 0.195568E+00 0.191499E+00 0.187276E+00 0.180614E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167497E+00 0.215056E+00 0.238419E+00 0.243491E+00 0.243142E+00 0.236939E+00 0.238437E+00 0.228467E+00 0.204692E+00 0.199771E+00 0.195087E+00 0.190647E+00 0.186727E+00 0.183262E+00 0.168754E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.159447E+00 0.190768E+00 0.224316E+00 0.232567E+00 0.233087E+00 0.229679E+00 0.231285E+00 0.222203E+00 0.203160E+00 0.196829E+00 0.190623E+00 0.186825E+00 0.183350E+00 0.179857E+00 0.164060E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149708E+00 0.174017E+00 0.201641E+00 0.221296E+00 0.226083E+00 0.229968E+00 0.231344E+00 0.221347E+00 0.198691E+00 0.191523E+00 0.185541E+00 0.182485E+00 0.178752E+00 0.174217E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132495E+00 0.164954E+00 0.180127E+00 0.190123E+00 0.194416E+00 0.204536E+00 0.207691E+00 0.188737E+00 0.182216E+00 0.177072E+00 0.166431E+00 0.166885E+00 0.165003E+00 0.162805E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.108021E+00 0.136604E+00 0.164734E+00 0.165483E+00 0.167891E+00 0.172265E+00 0.173163E+00 0.158293E+00 0.155701E+00 0.152932E+00 0.379417E-01 0.122248E+00 0.143194E+00 0.150930E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.458710E-03 0.563788E-01 0.855174E-01 0.103526E+00 0.106212E+00 0.122831E+00 0.135752E+00 0.133545E+00 0.121392E+00 0.709373E-01 -0.900000E+01 0.334042E-04 0.712212E-01 0.648010E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326953E+00 0.353436E+00 0.369430E+00 0.376213E+00 0.372816E+00 0.368488E+00 0.354880E+00 0.350632E+00 0.330927E+00 0.308576E+00 0.297736E+00 0.253458E+00 0.216994E+00 0.203958E+00 0.189446E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.365814E+00 0.393111E+00 0.407965E+00 0.414266E+00 0.410349E+00 0.406359E+00 0.392663E+00 0.388459E+00 0.369574E+00 0.347267E+00 0.338721E+00 0.295081E+00 0.261446E+00 0.251094E+00 0.238376E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.363077E+00 0.390857E+00 0.405761E+00 0.412340E+00 0.408614E+00 0.405072E+00 0.392197E+00 0.386466E+00 0.368555E+00 0.346110E+00 0.337599E+00 0.294827E+00 0.261515E+00 0.251783E+00 0.238964E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360053E+00 0.387963E+00 0.403116E+00 0.409832E+00 0.406182E+00 0.405416E+00 0.398181E+00 0.384747E+00 0.368103E+00 0.345321E+00 0.336336E+00 0.294675E+00 0.262013E+00 0.252693E+00 0.239088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.356669E+00 0.385374E+00 0.399974E+00 0.406451E+00 0.404073E+00 0.402218E+00 0.395437E+00 0.382339E+00 0.368025E+00 0.345618E+00 0.335013E+00 0.295864E+00 0.264917E+00 0.256068E+00 0.248604E+00 0.236838E+00 -0.900000E+01 -0.900000E+01 + 0.352853E+00 0.382174E+00 0.396641E+00 0.403223E+00 0.404206E+00 0.398426E+00 0.391940E+00 0.378912E+00 0.372801E+00 0.353473E+00 0.334738E+00 0.304415E+00 0.280468E+00 0.272316E+00 0.265560E+00 0.254644E+00 -0.900000E+01 -0.900000E+01 + 0.348500E+00 0.379190E+00 0.392665E+00 0.398581E+00 0.399333E+00 0.393839E+00 0.387463E+00 0.374730E+00 0.368831E+00 0.350220E+00 0.332293E+00 0.327182E+00 0.321472E+00 0.315508E+00 0.309312E+00 0.298875E+00 -0.900000E+01 -0.900000E+01 + 0.343800E+00 0.375846E+00 0.388576E+00 0.393642E+00 0.393879E+00 0.388812E+00 0.382466E+00 0.370465E+00 0.364364E+00 0.346605E+00 0.329212E+00 0.323877E+00 0.318543E+00 0.313264E+00 0.307504E+00 0.296091E+00 -0.900000E+01 -0.900000E+01 + 0.338814E+00 0.372033E+00 0.384086E+00 0.388019E+00 0.388083E+00 0.383158E+00 0.377956E+00 0.367902E+00 0.360060E+00 0.343615E+00 0.326121E+00 0.320428E+00 0.314879E+00 0.309134E+00 0.302344E+00 0.284770E+00 -0.900000E+01 -0.900000E+01 + 0.334050E+00 0.367952E+00 0.379092E+00 0.382289E+00 0.382019E+00 0.377101E+00 0.374519E+00 0.367254E+00 0.356228E+00 0.340240E+00 0.322903E+00 0.315892E+00 0.309841E+00 0.303284E+00 0.294510E+00 0.252922E+00 -0.900000E+01 -0.900000E+01 + 0.328830E+00 0.364500E+00 0.374512E+00 0.376691E+00 0.375818E+00 0.371125E+00 0.368640E+00 0.362210E+00 0.351935E+00 0.336498E+00 0.318937E+00 0.309859E+00 0.301564E+00 0.294196E+00 0.283085E+00 0.136613E+00 -0.900000E+01 -0.900000E+01 + 0.323617E+00 0.360778E+00 0.369305E+00 0.371284E+00 0.369640E+00 0.365394E+00 0.362892E+00 0.356740E+00 0.347842E+00 0.332879E+00 0.315447E+00 0.296216E+00 0.282155E+00 0.274300E+00 0.257285E+00 0.671025E-02 -0.900000E+01 -0.900000E+01 + 0.318420E+00 0.356477E+00 0.364259E+00 0.365509E+00 0.362624E+00 0.359303E+00 0.356215E+00 0.350307E+00 0.343703E+00 0.329160E+00 0.311699E+00 0.274811E+00 0.245492E+00 0.235996E+00 0.192530E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313559E+00 0.351485E+00 0.359417E+00 0.359852E+00 0.355717E+00 0.354688E+00 0.350201E+00 0.342335E+00 0.339169E+00 0.324936E+00 0.307706E+00 0.271881E+00 0.242769E+00 0.232105E+00 0.180773E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308550E+00 0.346622E+00 0.355796E+00 0.355635E+00 0.351711E+00 0.350619E+00 0.346305E+00 0.338450E+00 0.334663E+00 0.320566E+00 0.302427E+00 0.267934E+00 0.239777E+00 0.228456E+00 0.177628E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.302796E+00 0.341734E+00 0.352966E+00 0.351213E+00 0.348272E+00 0.346171E+00 0.340098E+00 0.334751E+00 0.327087E+00 0.312173E+00 0.288033E+00 0.254598E+00 0.234941E+00 0.222905E+00 0.178446E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.297237E+00 0.336585E+00 0.348284E+00 0.346311E+00 0.344907E+00 0.341909E+00 0.333729E+00 0.330223E+00 0.318368E+00 0.302516E+00 0.270492E+00 0.238873E+00 0.228108E+00 0.213707E+00 0.182160E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.291849E+00 0.331062E+00 0.343027E+00 0.342082E+00 0.341035E+00 0.337850E+00 0.329884E+00 0.321981E+00 0.308003E+00 0.296075E+00 0.265292E+00 0.233770E+00 0.223011E+00 0.188425E+00 0.187850E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285943E+00 0.325600E+00 0.335569E+00 0.336673E+00 0.334606E+00 0.328684E+00 0.323351E+00 0.312404E+00 0.296009E+00 0.287495E+00 0.257628E+00 0.228205E+00 0.218889E+00 0.211861E+00 0.203595E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.278712E+00 0.318639E+00 0.327896E+00 0.329778E+00 0.326833E+00 0.318540E+00 0.314376E+00 0.303916E+00 0.288823E+00 0.270883E+00 0.239639E+00 0.222095E+00 0.214633E+00 0.209077E+00 0.202122E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269474E+00 0.310098E+00 0.320529E+00 0.321187E+00 0.315165E+00 0.309349E+00 0.302352E+00 0.289719E+00 0.280912E+00 0.256231E+00 0.224489E+00 0.216718E+00 0.211311E+00 0.207010E+00 0.197409E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.258250E+00 0.300915E+00 0.311882E+00 0.312057E+00 0.303804E+00 0.299566E+00 0.291978E+00 0.278338E+00 0.273103E+00 0.249091E+00 0.220045E+00 0.213671E+00 0.209257E+00 0.205359E+00 0.179329E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246608E+00 0.292185E+00 0.302961E+00 0.301767E+00 0.294584E+00 0.289211E+00 0.277965E+00 0.271632E+00 0.257387E+00 0.228355E+00 0.215309E+00 0.210790E+00 0.207420E+00 0.202369E+00 0.103016E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235712E+00 0.283343E+00 0.293991E+00 0.290178E+00 0.287025E+00 0.281743E+00 0.268484E+00 0.266085E+00 0.247355E+00 0.216499E+00 0.211772E+00 0.207969E+00 0.203954E+00 0.195869E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224956E+00 0.272479E+00 0.285551E+00 0.282559E+00 0.280759E+00 0.276072E+00 0.264360E+00 0.260629E+00 0.241992E+00 0.214190E+00 0.208979E+00 0.203870E+00 0.198541E+00 0.192906E+00 0.184178E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.210866E+00 0.257707E+00 0.272658E+00 0.275099E+00 0.272595E+00 0.262886E+00 0.259042E+00 0.245958E+00 0.218479E+00 0.208477E+00 0.202418E+00 0.196300E+00 0.190586E+00 0.185524E+00 0.178808E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.195789E+00 0.239276E+00 0.258669E+00 0.263179E+00 0.261473E+00 0.251469E+00 0.249540E+00 0.234787E+00 0.206172E+00 0.199724E+00 0.193441E+00 0.188529E+00 0.184639E+00 0.181517E+00 0.168436E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181008E+00 0.215110E+00 0.242185E+00 0.246493E+00 0.245559E+00 0.237370E+00 0.235340E+00 0.222319E+00 0.195666E+00 0.190864E+00 0.186904E+00 0.184675E+00 0.182461E+00 0.180059E+00 0.132138E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.164131E+00 0.194913E+00 0.222053E+00 0.229076E+00 0.228410E+00 0.228825E+00 0.227043E+00 0.215466E+00 0.193217E+00 0.188224E+00 0.183193E+00 0.181428E+00 0.178237E+00 0.175720E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.144608E+00 0.180528E+00 0.199880E+00 0.206877E+00 0.206118E+00 0.208720E+00 0.206550E+00 0.185872E+00 0.179898E+00 0.175093E+00 0.163967E+00 0.163572E+00 0.161423E+00 0.159849E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121512E+00 0.154455E+00 0.171304E+00 0.173924E+00 0.176952E+00 0.178399E+00 0.175735E+00 0.160352E+00 0.157325E+00 0.154853E+00 0.335406E-01 0.124222E+00 0.144077E+00 0.147363E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.679728E-03 0.314355E-01 0.538931E-01 0.690957E-01 0.734013E-01 0.806455E-01 0.920224E-01 0.103666E+00 0.917154E-01 0.542970E-01 -0.900000E+01 0.290034E-05 0.483191E-01 0.456756E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361760E+00 0.383821E+00 0.392317E+00 0.395891E+00 0.388897E+00 0.383584E+00 0.369213E+00 0.364375E+00 0.345465E+00 0.322552E+00 0.312116E+00 0.265407E+00 0.227547E+00 0.213202E+00 0.194919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.407016E+00 0.427512E+00 0.434557E+00 0.437212E+00 0.429274E+00 0.423658E+00 0.409648E+00 0.404914E+00 0.386885E+00 0.363873E+00 0.355007E+00 0.308705E+00 0.273666E+00 0.261779E+00 0.245540E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404570E+00 0.425244E+00 0.432971E+00 0.435727E+00 0.428106E+00 0.423101E+00 0.410075E+00 0.403779E+00 0.386521E+00 0.363480E+00 0.354517E+00 0.309051E+00 0.274060E+00 0.262754E+00 0.245796E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402010E+00 0.422835E+00 0.431276E+00 0.433794E+00 0.426620E+00 0.425110E+00 0.418430E+00 0.403732E+00 0.387256E+00 0.363458E+00 0.353500E+00 0.309713E+00 0.275266E+00 0.264553E+00 0.246439E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399220E+00 0.420245E+00 0.429655E+00 0.431937E+00 0.426054E+00 0.423667E+00 0.417359E+00 0.402993E+00 0.389222E+00 0.365124E+00 0.353263E+00 0.311814E+00 0.278624E+00 0.269317E+00 0.259969E+00 0.244529E+00 -0.900000E+01 -0.900000E+01 + 0.396147E+00 0.417508E+00 0.427488E+00 0.430565E+00 0.428946E+00 0.422233E+00 0.415801E+00 0.401581E+00 0.396733E+00 0.374827E+00 0.354098E+00 0.321403E+00 0.295206E+00 0.286245E+00 0.277869E+00 0.262564E+00 -0.900000E+01 -0.900000E+01 + 0.392612E+00 0.414319E+00 0.425174E+00 0.428293E+00 0.426913E+00 0.420378E+00 0.413401E+00 0.399218E+00 0.393482E+00 0.372414E+00 0.352426E+00 0.346058E+00 0.338137E+00 0.329683E+00 0.321394E+00 0.306414E+00 -0.900000E+01 -0.900000E+01 + 0.389131E+00 0.410758E+00 0.422343E+00 0.425527E+00 0.423895E+00 0.417448E+00 0.410232E+00 0.396233E+00 0.389587E+00 0.368794E+00 0.348993E+00 0.341909E+00 0.334221E+00 0.326172E+00 0.317748E+00 0.302415E+00 -0.900000E+01 -0.900000E+01 + 0.385247E+00 0.406104E+00 0.418283E+00 0.421249E+00 0.419738E+00 0.413237E+00 0.406965E+00 0.394467E+00 0.385257E+00 0.365331E+00 0.345447E+00 0.337425E+00 0.329160E+00 0.320863E+00 0.311973E+00 0.289008E+00 -0.900000E+01 -0.900000E+01 + 0.381224E+00 0.401416E+00 0.413310E+00 0.416194E+00 0.414288E+00 0.407447E+00 0.403328E+00 0.394594E+00 0.380766E+00 0.361177E+00 0.341016E+00 0.331749E+00 0.322741E+00 0.313671E+00 0.302965E+00 0.254978E+00 -0.900000E+01 -0.900000E+01 + 0.376816E+00 0.396626E+00 0.407221E+00 0.409715E+00 0.406961E+00 0.400563E+00 0.396344E+00 0.388179E+00 0.375080E+00 0.356241E+00 0.335725E+00 0.323664E+00 0.312935E+00 0.303509E+00 0.289724E+00 0.148272E+00 -0.900000E+01 -0.900000E+01 + 0.371737E+00 0.390947E+00 0.400142E+00 0.402022E+00 0.398689E+00 0.392524E+00 0.388959E+00 0.380997E+00 0.369033E+00 0.351066E+00 0.330149E+00 0.307927E+00 0.291009E+00 0.281794E+00 0.260414E+00 0.483701E-02 -0.900000E+01 -0.900000E+01 + 0.365913E+00 0.385134E+00 0.392664E+00 0.393063E+00 0.388787E+00 0.384132E+00 0.379946E+00 0.371722E+00 0.362723E+00 0.345449E+00 0.325018E+00 0.284399E+00 0.252159E+00 0.240912E+00 0.192886E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359944E+00 0.378831E+00 0.385084E+00 0.384630E+00 0.378441E+00 0.376731E+00 0.371156E+00 0.360966E+00 0.356303E+00 0.339360E+00 0.319394E+00 0.280289E+00 0.248760E+00 0.236796E+00 0.188301E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353740E+00 0.373469E+00 0.378717E+00 0.377949E+00 0.372070E+00 0.370477E+00 0.364894E+00 0.355311E+00 0.350282E+00 0.333818E+00 0.313333E+00 0.275561E+00 0.245976E+00 0.232531E+00 0.186630E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.347500E+00 0.368033E+00 0.373163E+00 0.370761E+00 0.366947E+00 0.363898E+00 0.356506E+00 0.350050E+00 0.341006E+00 0.323699E+00 0.297820E+00 0.262050E+00 0.241827E+00 0.226576E+00 0.187343E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341242E+00 0.363106E+00 0.367330E+00 0.362728E+00 0.361496E+00 0.357478E+00 0.347903E+00 0.344801E+00 0.331324E+00 0.313683E+00 0.279476E+00 0.246469E+00 0.235450E+00 0.218031E+00 0.189910E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334787E+00 0.358845E+00 0.362462E+00 0.358247E+00 0.356933E+00 0.352759E+00 0.343960E+00 0.336790E+00 0.320658E+00 0.308575E+00 0.275142E+00 0.242333E+00 0.230273E+00 0.191758E+00 0.195205E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.328611E+00 0.354389E+00 0.357230E+00 0.353998E+00 0.352002E+00 0.345232E+00 0.339754E+00 0.328805E+00 0.309639E+00 0.300983E+00 0.268254E+00 0.236969E+00 0.224811E+00 0.215349E+00 0.208460E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.321935E+00 0.348780E+00 0.351600E+00 0.349959E+00 0.346927E+00 0.337879E+00 0.334513E+00 0.322397E+00 0.304422E+00 0.283779E+00 0.249134E+00 0.229465E+00 0.219105E+00 0.212648E+00 0.206773E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313395E+00 0.340082E+00 0.346674E+00 0.344968E+00 0.337998E+00 0.331959E+00 0.323629E+00 0.308037E+00 0.296385E+00 0.267558E+00 0.232414E+00 0.222168E+00 0.214648E+00 0.210045E+00 0.202841E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.301374E+00 0.330116E+00 0.339874E+00 0.338273E+00 0.328157E+00 0.322201E+00 0.312169E+00 0.295005E+00 0.286261E+00 0.257679E+00 0.225627E+00 0.217063E+00 0.211645E+00 0.208123E+00 0.182774E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.286528E+00 0.319140E+00 0.330983E+00 0.327650E+00 0.317511E+00 0.308596E+00 0.294792E+00 0.285502E+00 0.266558E+00 0.233442E+00 0.218431E+00 0.212972E+00 0.209247E+00 0.206080E+00 0.949803E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270318E+00 0.306592E+00 0.317783E+00 0.310884E+00 0.305021E+00 0.296896E+00 0.281503E+00 0.276435E+00 0.253797E+00 0.219474E+00 0.213838E+00 0.210492E+00 0.207040E+00 0.200985E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.255143E+00 0.294173E+00 0.303738E+00 0.297601E+00 0.293985E+00 0.287321E+00 0.273847E+00 0.268811E+00 0.246458E+00 0.215982E+00 0.211579E+00 0.207433E+00 0.202530E+00 0.197372E+00 0.188554E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.238513E+00 0.279851E+00 0.289452E+00 0.288467E+00 0.283510E+00 0.271434E+00 0.266950E+00 0.252230E+00 0.221066E+00 0.211266E+00 0.205958E+00 0.199990E+00 0.194648E+00 0.190757E+00 0.182609E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.220252E+00 0.261037E+00 0.276634E+00 0.278655E+00 0.274245E+00 0.261515E+00 0.258854E+00 0.240136E+00 0.208922E+00 0.202949E+00 0.196368E+00 0.192069E+00 0.188502E+00 0.186452E+00 0.170060E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202656E+00 0.239901E+00 0.259848E+00 0.263119E+00 0.259918E+00 0.248963E+00 0.243236E+00 0.224974E+00 0.197008E+00 0.192538E+00 0.188888E+00 0.186865E+00 0.184184E+00 0.182456E+00 0.105841E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185463E+00 0.219094E+00 0.241662E+00 0.242622E+00 0.235792E+00 0.232620E+00 0.226376E+00 0.211510E+00 0.189842E+00 0.186752E+00 0.183361E+00 0.181832E+00 0.179338E+00 0.177291E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165267E+00 0.198856E+00 0.220300E+00 0.224660E+00 0.218215E+00 0.216534E+00 0.208530E+00 0.185010E+00 0.180806E+00 0.178218E+00 0.166969E+00 0.166526E+00 0.164610E+00 0.162842E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138837E+00 0.165366E+00 0.185284E+00 0.186276E+00 0.186067E+00 0.184457E+00 0.176983E+00 0.159290E+00 0.155745E+00 0.152828E+00 0.244979E-01 0.125634E+00 0.142029E+00 0.144185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.958979E-03 0.129610E-01 0.325574E-01 0.416196E-01 0.476959E-01 0.504110E-01 0.580408E-01 0.756000E-01 0.649418E-01 0.385401E-01 -0.900000E+01 0.238487E-05 0.294166E-01 0.279313E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388506E+00 0.404598E+00 0.411368E+00 0.413517E+00 0.405678E+00 0.399967E+00 0.384997E+00 0.379232E+00 0.358210E+00 0.333344E+00 0.322328E+00 0.272770E+00 0.233075E+00 0.218617E+00 0.199586E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439275E+00 0.450872E+00 0.455440E+00 0.456761E+00 0.448561E+00 0.442410E+00 0.427019E+00 0.421508E+00 0.400928E+00 0.376400E+00 0.367024E+00 0.317907E+00 0.280614E+00 0.269568E+00 0.253436E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.436935E+00 0.448867E+00 0.453470E+00 0.454957E+00 0.446932E+00 0.441316E+00 0.426727E+00 0.420081E+00 0.400677E+00 0.376212E+00 0.366645E+00 0.318154E+00 0.281362E+00 0.271038E+00 0.254626E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.433967E+00 0.446851E+00 0.451193E+00 0.452508E+00 0.445154E+00 0.442718E+00 0.434744E+00 0.419446E+00 0.401286E+00 0.376388E+00 0.366424E+00 0.318659E+00 0.283013E+00 0.273308E+00 0.254553E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431101E+00 0.444867E+00 0.449274E+00 0.449956E+00 0.443863E+00 0.440217E+00 0.432919E+00 0.418529E+00 0.403359E+00 0.378867E+00 0.366204E+00 0.321110E+00 0.287206E+00 0.278982E+00 0.270328E+00 0.253283E+00 -0.900000E+01 -0.900000E+01 + 0.428471E+00 0.442664E+00 0.446592E+00 0.448161E+00 0.446272E+00 0.437948E+00 0.431151E+00 0.417052E+00 0.412109E+00 0.389806E+00 0.367295E+00 0.332215E+00 0.305570E+00 0.297203E+00 0.288665E+00 0.270757E+00 -0.900000E+01 -0.900000E+01 + 0.425236E+00 0.440759E+00 0.444196E+00 0.445097E+00 0.443237E+00 0.435505E+00 0.429124E+00 0.414768E+00 0.409716E+00 0.387872E+00 0.366704E+00 0.359882E+00 0.351557E+00 0.341650E+00 0.331820E+00 0.312822E+00 -0.900000E+01 -0.900000E+01 + 0.422307E+00 0.438369E+00 0.441629E+00 0.442353E+00 0.440618E+00 0.433191E+00 0.427279E+00 0.412900E+00 0.407136E+00 0.385626E+00 0.364061E+00 0.356278E+00 0.347249E+00 0.337323E+00 0.327334E+00 0.306521E+00 -0.900000E+01 -0.900000E+01 + 0.418899E+00 0.435292E+00 0.439194E+00 0.439623E+00 0.437988E+00 0.430843E+00 0.426282E+00 0.413395E+00 0.404148E+00 0.382955E+00 0.361038E+00 0.351555E+00 0.341753E+00 0.331316E+00 0.319792E+00 0.290801E+00 -0.900000E+01 -0.900000E+01 + 0.415487E+00 0.431477E+00 0.436619E+00 0.436964E+00 0.435178E+00 0.428236E+00 0.426226E+00 0.416166E+00 0.401001E+00 0.379523E+00 0.356987E+00 0.345636E+00 0.333716E+00 0.323280E+00 0.309752E+00 0.254720E+00 -0.900000E+01 -0.900000E+01 + 0.411799E+00 0.427605E+00 0.433902E+00 0.434184E+00 0.431727E+00 0.424815E+00 0.421580E+00 0.411384E+00 0.396942E+00 0.374856E+00 0.351659E+00 0.336674E+00 0.322964E+00 0.312613E+00 0.295285E+00 0.156780E+00 -0.900000E+01 -0.900000E+01 + 0.407395E+00 0.423393E+00 0.430461E+00 0.430160E+00 0.426647E+00 0.419676E+00 0.414850E+00 0.405140E+00 0.390822E+00 0.369181E+00 0.345531E+00 0.319712E+00 0.298963E+00 0.288731E+00 0.263480E+00 0.293437E-02 -0.900000E+01 -0.900000E+01 + 0.402614E+00 0.418106E+00 0.424524E+00 0.423258E+00 0.417849E+00 0.412295E+00 0.405822E+00 0.394985E+00 0.383825E+00 0.362977E+00 0.339098E+00 0.294188E+00 0.257274E+00 0.245637E+00 0.196334E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.397713E+00 0.412042E+00 0.417162E+00 0.414987E+00 0.407293E+00 0.404727E+00 0.395998E+00 0.383022E+00 0.376182E+00 0.355591E+00 0.332051E+00 0.288715E+00 0.253286E+00 0.241720E+00 0.194112E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391930E+00 0.405669E+00 0.409207E+00 0.406289E+00 0.399592E+00 0.396463E+00 0.387916E+00 0.375625E+00 0.367750E+00 0.348140E+00 0.324321E+00 0.282695E+00 0.250496E+00 0.237443E+00 0.194475E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385683E+00 0.398139E+00 0.400016E+00 0.395760E+00 0.391192E+00 0.386706E+00 0.377069E+00 0.367330E+00 0.356053E+00 0.336218E+00 0.306987E+00 0.267412E+00 0.246636E+00 0.230899E+00 0.195285E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378969E+00 0.389403E+00 0.390710E+00 0.384465E+00 0.382750E+00 0.377158E+00 0.365466E+00 0.360018E+00 0.344319E+00 0.324221E+00 0.287659E+00 0.250375E+00 0.241044E+00 0.220768E+00 0.196259E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.371422E+00 0.381713E+00 0.382996E+00 0.376800E+00 0.374717E+00 0.370146E+00 0.359489E+00 0.350130E+00 0.332464E+00 0.318163E+00 0.282618E+00 0.246816E+00 0.236306E+00 0.194147E+00 0.199243E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.364166E+00 0.374708E+00 0.374516E+00 0.370086E+00 0.367071E+00 0.360064E+00 0.353708E+00 0.340671E+00 0.320946E+00 0.310306E+00 0.275163E+00 0.242781E+00 0.231047E+00 0.221798E+00 0.212185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.356971E+00 0.368805E+00 0.366833E+00 0.364209E+00 0.360429E+00 0.351475E+00 0.347593E+00 0.334604E+00 0.315432E+00 0.292022E+00 0.254971E+00 0.235432E+00 0.224951E+00 0.217991E+00 0.209472E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349479E+00 0.361711E+00 0.361906E+00 0.358363E+00 0.351256E+00 0.346223E+00 0.337867E+00 0.320534E+00 0.306773E+00 0.274424E+00 0.237567E+00 0.227293E+00 0.219387E+00 0.214308E+00 0.204753E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339427E+00 0.355118E+00 0.357158E+00 0.353601E+00 0.343357E+00 0.339892E+00 0.327806E+00 0.307431E+00 0.294268E+00 0.262479E+00 0.229838E+00 0.221033E+00 0.215422E+00 0.211865E+00 0.184876E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326922E+00 0.346646E+00 0.352023E+00 0.348046E+00 0.336963E+00 0.327190E+00 0.308429E+00 0.295237E+00 0.271302E+00 0.236637E+00 0.221702E+00 0.215906E+00 0.212078E+00 0.209189E+00 0.792092E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310239E+00 0.333407E+00 0.342164E+00 0.333353E+00 0.324654E+00 0.311769E+00 0.291431E+00 0.281985E+00 0.255463E+00 0.221803E+00 0.216452E+00 0.212827E+00 0.209723E+00 0.204858E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.290785E+00 0.317026E+00 0.326403E+00 0.316550E+00 0.308070E+00 0.296819E+00 0.279471E+00 0.270544E+00 0.246723E+00 0.217929E+00 0.213328E+00 0.210587E+00 0.208036E+00 0.205143E+00 0.195881E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270611E+00 0.300286E+00 0.304125E+00 0.299793E+00 0.291846E+00 0.276150E+00 0.270122E+00 0.253363E+00 0.223255E+00 0.213850E+00 0.210247E+00 0.207132E+00 0.202797E+00 0.199203E+00 0.189262E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.251835E+00 0.283340E+00 0.288763E+00 0.287376E+00 0.280967E+00 0.266093E+00 0.263957E+00 0.245281E+00 0.213203E+00 0.209554E+00 0.204227E+00 0.199975E+00 0.195638E+00 0.192912E+00 0.171303E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233167E+00 0.260136E+00 0.275655E+00 0.276224E+00 0.270967E+00 0.259392E+00 0.254780E+00 0.235120E+00 0.205039E+00 0.199665E+00 0.194504E+00 0.191260E+00 0.187486E+00 0.185566E+00 0.763006E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213077E+00 0.239170E+00 0.257102E+00 0.257739E+00 0.248171E+00 0.244523E+00 0.237993E+00 0.217103E+00 0.192316E+00 0.188733E+00 0.184960E+00 0.184311E+00 0.181755E+00 0.178385E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.191044E+00 0.216003E+00 0.235117E+00 0.234856E+00 0.224319E+00 0.220151E+00 0.210753E+00 0.185952E+00 0.181554E+00 0.178635E+00 0.170453E+00 0.173292E+00 0.171138E+00 0.167118E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161202E+00 0.176058E+00 0.198633E+00 0.196689E+00 0.195291E+00 0.194000E+00 0.184121E+00 0.163896E+00 0.158504E+00 0.151660E+00 0.142667E-01 0.129165E+00 0.141809E+00 0.142763E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183627E-02 0.174189E-02 0.742310E-02 0.238575E-01 0.238118E-01 0.243680E-01 0.307192E-01 0.468855E-01 0.385964E-01 0.230179E-01 -0.900000E+01 0.564742E-04 0.117662E-01 0.119860E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.414362E+00 0.433987E+00 0.443186E+00 0.444421E+00 0.436189E+00 0.429501E+00 0.411278E+00 0.404626E+00 0.381369E+00 0.353747E+00 0.342795E+00 0.287634E+00 0.242618E+00 0.226141E+00 0.210133E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.467303E+00 0.482914E+00 0.490594E+00 0.490977E+00 0.482102E+00 0.475533E+00 0.457289E+00 0.450998E+00 0.428218E+00 0.400862E+00 0.392127E+00 0.336365E+00 0.295353E+00 0.282988E+00 0.269884E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464239E+00 0.479590E+00 0.487071E+00 0.487224E+00 0.478810E+00 0.473092E+00 0.456337E+00 0.448481E+00 0.427411E+00 0.399911E+00 0.391074E+00 0.335942E+00 0.296010E+00 0.283995E+00 0.270148E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.460753E+00 0.475815E+00 0.483231E+00 0.483173E+00 0.475572E+00 0.473610E+00 0.464792E+00 0.446866E+00 0.427395E+00 0.399357E+00 0.389686E+00 0.335927E+00 0.297181E+00 0.286027E+00 0.268612E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.457116E+00 0.471863E+00 0.479102E+00 0.479291E+00 0.473073E+00 0.469519E+00 0.461558E+00 0.444976E+00 0.428852E+00 0.401134E+00 0.388223E+00 0.337575E+00 0.301319E+00 0.292145E+00 0.283165E+00 0.268703E+00 -0.900000E+01 -0.900000E+01 + 0.453875E+00 0.467387E+00 0.474732E+00 0.476627E+00 0.474950E+00 0.465675E+00 0.458260E+00 0.442432E+00 0.437782E+00 0.413516E+00 0.388030E+00 0.349238E+00 0.321808E+00 0.313597E+00 0.304871E+00 0.288412E+00 -0.900000E+01 -0.900000E+01 + 0.450311E+00 0.463433E+00 0.470468E+00 0.472607E+00 0.470809E+00 0.461752E+00 0.454594E+00 0.438880E+00 0.434096E+00 0.410993E+00 0.387014E+00 0.381331E+00 0.374045E+00 0.365204E+00 0.354938E+00 0.336267E+00 -0.900000E+01 -0.900000E+01 + 0.446924E+00 0.459910E+00 0.466575E+00 0.468753E+00 0.466732E+00 0.457858E+00 0.451252E+00 0.435793E+00 0.430580E+00 0.408071E+00 0.384602E+00 0.378590E+00 0.370647E+00 0.361176E+00 0.350627E+00 0.331753E+00 -0.900000E+01 -0.900000E+01 + 0.443246E+00 0.456375E+00 0.462477E+00 0.464992E+00 0.462454E+00 0.453941E+00 0.448948E+00 0.435758E+00 0.427374E+00 0.405558E+00 0.382450E+00 0.374757E+00 0.365835E+00 0.355305E+00 0.343693E+00 0.317448E+00 -0.900000E+01 -0.900000E+01 + 0.439982E+00 0.452537E+00 0.458219E+00 0.460622E+00 0.458362E+00 0.450160E+00 0.448479E+00 0.439499E+00 0.424948E+00 0.403366E+00 0.379590E+00 0.369820E+00 0.358913E+00 0.347061E+00 0.334000E+00 0.277728E+00 -0.900000E+01 -0.900000E+01 + 0.436639E+00 0.449095E+00 0.453915E+00 0.455971E+00 0.454307E+00 0.446529E+00 0.444660E+00 0.435826E+00 0.422342E+00 0.400194E+00 0.375483E+00 0.362116E+00 0.348441E+00 0.335751E+00 0.319343E+00 0.169800E+00 -0.900000E+01 -0.900000E+01 + 0.433196E+00 0.446396E+00 0.449989E+00 0.451751E+00 0.450246E+00 0.442982E+00 0.440641E+00 0.432236E+00 0.418844E+00 0.396033E+00 0.370612E+00 0.343037E+00 0.321677E+00 0.309399E+00 0.285888E+00 0.219697E-02 -0.900000E+01 -0.900000E+01 + 0.429207E+00 0.442802E+00 0.446453E+00 0.447312E+00 0.444315E+00 0.439764E+00 0.435056E+00 0.424184E+00 0.413814E+00 0.390411E+00 0.364591E+00 0.314416E+00 0.275872E+00 0.261721E+00 0.212271E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.425089E+00 0.439560E+00 0.442960E+00 0.443113E+00 0.436267E+00 0.435528E+00 0.427387E+00 0.412707E+00 0.406875E+00 0.383548E+00 0.357304E+00 0.307923E+00 0.270852E+00 0.256474E+00 0.201114E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420481E+00 0.435148E+00 0.439324E+00 0.438729E+00 0.431820E+00 0.429328E+00 0.421208E+00 0.406295E+00 0.398847E+00 0.375861E+00 0.349086E+00 0.300918E+00 0.266290E+00 0.252979E+00 0.201858E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.415196E+00 0.429628E+00 0.433286E+00 0.430190E+00 0.424951E+00 0.420334E+00 0.409710E+00 0.398466E+00 0.385150E+00 0.361923E+00 0.328647E+00 0.284356E+00 0.260873E+00 0.247437E+00 0.203693E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.408564E+00 0.421658E+00 0.424929E+00 0.418277E+00 0.416686E+00 0.410666E+00 0.396791E+00 0.389535E+00 0.370644E+00 0.347661E+00 0.305057E+00 0.265562E+00 0.254384E+00 0.234304E+00 0.205448E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.400689E+00 0.412418E+00 0.415158E+00 0.408656E+00 0.407223E+00 0.401411E+00 0.388468E+00 0.376142E+00 0.355077E+00 0.339589E+00 0.298041E+00 0.259780E+00 0.250240E+00 0.204634E+00 0.210149E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391847E+00 0.401330E+00 0.402474E+00 0.397688E+00 0.395568E+00 0.386629E+00 0.378801E+00 0.363319E+00 0.339527E+00 0.329629E+00 0.289460E+00 0.255091E+00 0.247217E+00 0.237860E+00 0.223938E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.381998E+00 0.391216E+00 0.389399E+00 0.386913E+00 0.383411E+00 0.372387E+00 0.368524E+00 0.354140E+00 0.332189E+00 0.308970E+00 0.268754E+00 0.250087E+00 0.240779E+00 0.232430E+00 0.218744E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.370872E+00 0.378602E+00 0.380350E+00 0.376464E+00 0.368653E+00 0.363788E+00 0.355948E+00 0.337749E+00 0.324676E+00 0.291132E+00 0.251927E+00 0.242850E+00 0.233543E+00 0.226895E+00 0.211508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.357831E+00 0.368748E+00 0.372477E+00 0.367589E+00 0.357385E+00 0.356200E+00 0.345440E+00 0.324740E+00 0.313562E+00 0.279394E+00 0.245096E+00 0.234507E+00 0.227011E+00 0.221796E+00 0.192333E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345009E+00 0.361430E+00 0.365221E+00 0.360831E+00 0.351414E+00 0.345280E+00 0.326462E+00 0.313918E+00 0.288150E+00 0.251063E+00 0.234279E+00 0.226399E+00 0.220820E+00 0.216775E+00 0.719054E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331376E+00 0.351798E+00 0.357271E+00 0.348414E+00 0.343124E+00 0.331416E+00 0.310379E+00 0.298490E+00 0.268860E+00 0.232867E+00 0.225722E+00 0.220460E+00 0.215989E+00 0.210740E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313305E+00 0.336415E+00 0.344940E+00 0.335390E+00 0.327954E+00 0.315254E+00 0.296721E+00 0.283450E+00 0.257319E+00 0.226220E+00 0.220661E+00 0.216338E+00 0.213192E+00 0.210736E+00 0.204508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294540E+00 0.317236E+00 0.322363E+00 0.317305E+00 0.307334E+00 0.291349E+00 0.283740E+00 0.263205E+00 0.230646E+00 0.220467E+00 0.216131E+00 0.212315E+00 0.209237E+00 0.206860E+00 0.198507E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.274384E+00 0.297623E+00 0.302369E+00 0.300031E+00 0.291000E+00 0.276659E+00 0.273750E+00 0.252800E+00 0.219299E+00 0.215713E+00 0.211333E+00 0.207555E+00 0.204374E+00 0.201550E+00 0.181869E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.254560E+00 0.277345E+00 0.287098E+00 0.285245E+00 0.278663E+00 0.268566E+00 0.266967E+00 0.246902E+00 0.213513E+00 0.209806E+00 0.204768E+00 0.200227E+00 0.196867E+00 0.194525E+00 0.647402E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.238010E+00 0.257949E+00 0.274656E+00 0.274413E+00 0.262963E+00 0.260360E+00 0.255098E+00 0.231500E+00 0.203711E+00 0.200602E+00 0.194188E+00 0.189559E+00 0.186053E+00 0.182877E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213847E+00 0.231472E+00 0.252297E+00 0.252359E+00 0.240421E+00 0.236095E+00 0.221537E+00 0.192867E+00 0.189272E+00 0.185713E+00 0.175148E+00 0.176702E+00 0.173865E+00 0.170402E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178916E+00 0.197152E+00 0.206652E+00 0.202552E+00 0.202382E+00 0.202741E+00 0.194752E+00 0.169990E+00 0.169086E+00 0.163304E+00 0.112046E-01 0.140017E+00 0.146543E+00 0.149535E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235118E-02 0.149004E-02 0.228245E-02 0.396157E-02 0.545988E-02 0.677942E-02 0.763874E-02 0.164323E-01 0.142167E-01 0.892276E-02 -0.900000E+01 0.150333E-03 0.241176E-02 0.345286E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445852E+00 0.467219E+00 0.477787E+00 0.479290E+00 0.467927E+00 0.459650E+00 0.438103E+00 0.431246E+00 0.405842E+00 0.375677E+00 0.364115E+00 0.304242E+00 0.256896E+00 0.238169E+00 0.220094E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.502458E+00 0.520279E+00 0.530116E+00 0.531141E+00 0.519434E+00 0.511047E+00 0.489421E+00 0.482318E+00 0.457622E+00 0.426733E+00 0.418143E+00 0.358102E+00 0.313542E+00 0.300906E+00 0.285302E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.499470E+00 0.516983E+00 0.527032E+00 0.528407E+00 0.517304E+00 0.509741E+00 0.489467E+00 0.480497E+00 0.457264E+00 0.426015E+00 0.417087E+00 0.358137E+00 0.313906E+00 0.302565E+00 0.286883E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.495730E+00 0.512852E+00 0.523358E+00 0.525125E+00 0.514648E+00 0.512451E+00 0.501857E+00 0.479912E+00 0.457860E+00 0.425419E+00 0.415675E+00 0.358546E+00 0.315401E+00 0.305010E+00 0.287275E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491902E+00 0.508570E+00 0.519153E+00 0.521195E+00 0.512678E+00 0.508890E+00 0.499279E+00 0.478600E+00 0.460090E+00 0.427082E+00 0.413994E+00 0.360229E+00 0.319622E+00 0.310584E+00 0.300960E+00 0.284772E+00 -0.900000E+01 -0.900000E+01 + 0.487900E+00 0.503565E+00 0.514507E+00 0.518315E+00 0.516224E+00 0.505041E+00 0.496139E+00 0.476078E+00 0.471331E+00 0.441827E+00 0.414151E+00 0.371826E+00 0.341368E+00 0.333150E+00 0.324257E+00 0.307880E+00 -0.900000E+01 -0.900000E+01 + 0.483440E+00 0.498591E+00 0.509334E+00 0.513132E+00 0.510674E+00 0.500498E+00 0.491853E+00 0.472295E+00 0.467007E+00 0.438802E+00 0.412094E+00 0.405879E+00 0.398705E+00 0.391200E+00 0.382284E+00 0.363222E+00 -0.900000E+01 -0.900000E+01 + 0.478839E+00 0.493412E+00 0.503675E+00 0.507450E+00 0.504718E+00 0.495297E+00 0.487203E+00 0.468010E+00 0.461721E+00 0.434930E+00 0.408936E+00 0.402621E+00 0.396180E+00 0.388731E+00 0.378848E+00 0.359544E+00 -0.900000E+01 -0.900000E+01 + 0.474128E+00 0.487732E+00 0.498005E+00 0.500897E+00 0.498183E+00 0.489564E+00 0.482906E+00 0.466363E+00 0.456486E+00 0.431357E+00 0.405824E+00 0.399778E+00 0.392298E+00 0.383010E+00 0.371383E+00 0.345983E+00 -0.900000E+01 -0.900000E+01 + 0.468868E+00 0.482579E+00 0.492047E+00 0.494338E+00 0.491655E+00 0.483146E+00 0.480280E+00 0.468968E+00 0.452010E+00 0.427924E+00 0.402907E+00 0.395338E+00 0.385436E+00 0.374929E+00 0.360633E+00 0.304912E+00 -0.900000E+01 -0.900000E+01 + 0.463686E+00 0.477077E+00 0.485831E+00 0.487640E+00 0.484461E+00 0.476166E+00 0.473310E+00 0.463028E+00 0.447722E+00 0.424467E+00 0.399395E+00 0.386803E+00 0.374010E+00 0.362093E+00 0.344092E+00 0.179831E+00 -0.900000E+01 -0.900000E+01 + 0.458037E+00 0.471167E+00 0.479167E+00 0.480488E+00 0.477538E+00 0.469569E+00 0.466763E+00 0.457396E+00 0.443392E+00 0.420904E+00 0.394772E+00 0.365483E+00 0.343356E+00 0.331386E+00 0.308817E+00 0.251455E-02 -0.900000E+01 -0.900000E+01 + 0.451971E+00 0.465012E+00 0.472742E+00 0.473496E+00 0.468559E+00 0.463253E+00 0.458772E+00 0.447744E+00 0.438541E+00 0.416485E+00 0.389660E+00 0.334093E+00 0.293288E+00 0.281329E+00 0.229392E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.446352E+00 0.459963E+00 0.466613E+00 0.466986E+00 0.458320E+00 0.457703E+00 0.450077E+00 0.436031E+00 0.432928E+00 0.410328E+00 0.383194E+00 0.328907E+00 0.289201E+00 0.274939E+00 0.204972E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440705E+00 0.455107E+00 0.461686E+00 0.461379E+00 0.453793E+00 0.452335E+00 0.445351E+00 0.431657E+00 0.427356E+00 0.403627E+00 0.374744E+00 0.322583E+00 0.285901E+00 0.269860E+00 0.206106E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434056E+00 0.450290E+00 0.456222E+00 0.453362E+00 0.448997E+00 0.445534E+00 0.434933E+00 0.425986E+00 0.414269E+00 0.389085E+00 0.352312E+00 0.305428E+00 0.281396E+00 0.261697E+00 0.208619E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.426237E+00 0.445143E+00 0.450623E+00 0.443778E+00 0.443566E+00 0.438008E+00 0.422893E+00 0.418736E+00 0.399099E+00 0.373208E+00 0.326753E+00 0.284234E+00 0.272542E+00 0.247263E+00 0.212507E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416925E+00 0.437798E+00 0.443378E+00 0.437638E+00 0.436813E+00 0.431028E+00 0.415829E+00 0.404366E+00 0.381433E+00 0.362829E+00 0.318224E+00 0.277467E+00 0.264049E+00 0.217710E+00 0.219295E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.405559E+00 0.425987E+00 0.430011E+00 0.427734E+00 0.425565E+00 0.415386E+00 0.406240E+00 0.388347E+00 0.361368E+00 0.347300E+00 0.305837E+00 0.269278E+00 0.256110E+00 0.246759E+00 0.237789E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389491E+00 0.409428E+00 0.414017E+00 0.415575E+00 0.411626E+00 0.397634E+00 0.391299E+00 0.372507E+00 0.346248E+00 0.319796E+00 0.279829E+00 0.258557E+00 0.249261E+00 0.242121E+00 0.232163E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372052E+00 0.386475E+00 0.397388E+00 0.398319E+00 0.389738E+00 0.381454E+00 0.369127E+00 0.346971E+00 0.331967E+00 0.297748E+00 0.259087E+00 0.250384E+00 0.243984E+00 0.237527E+00 0.222062E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.357199E+00 0.368907E+00 0.380669E+00 0.381575E+00 0.369861E+00 0.365595E+00 0.351316E+00 0.328819E+00 0.321802E+00 0.288302E+00 0.253082E+00 0.246052E+00 0.239488E+00 0.233099E+00 0.199294E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345390E+00 0.357243E+00 0.366990E+00 0.368018E+00 0.357919E+00 0.350302E+00 0.330593E+00 0.321533E+00 0.299734E+00 0.261782E+00 0.247109E+00 0.240483E+00 0.233750E+00 0.227715E+00 0.896646E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334676E+00 0.349935E+00 0.356327E+00 0.352549E+00 0.349875E+00 0.341166E+00 0.319497E+00 0.311852E+00 0.283702E+00 0.245722E+00 0.240658E+00 0.233879E+00 0.228269E+00 0.220605E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322337E+00 0.344724E+00 0.350346E+00 0.344161E+00 0.341459E+00 0.332009E+00 0.312244E+00 0.300820E+00 0.273384E+00 0.239854E+00 0.233629E+00 0.227732E+00 0.222639E+00 0.218405E+00 0.209998E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308759E+00 0.333422E+00 0.335401E+00 0.333438E+00 0.326474E+00 0.309165E+00 0.302080E+00 0.278654E+00 0.243040E+00 0.231619E+00 0.225718E+00 0.219756E+00 0.215010E+00 0.211510E+00 0.203638E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.292484E+00 0.312849E+00 0.317429E+00 0.316673E+00 0.309709E+00 0.293939E+00 0.288751E+00 0.264520E+00 0.227724E+00 0.222359E+00 0.217180E+00 0.213090E+00 0.209602E+00 0.206485E+00 0.188271E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.271812E+00 0.284961E+00 0.299504E+00 0.296143E+00 0.290327E+00 0.279483E+00 0.272858E+00 0.252499E+00 0.219204E+00 0.215080E+00 0.210920E+00 0.207246E+00 0.203849E+00 0.200556E+00 0.704111E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.254541E+00 0.269966E+00 0.279198E+00 0.278453E+00 0.266465E+00 0.263928E+00 0.259269E+00 0.240854E+00 0.211639E+00 0.207692E+00 0.201912E+00 0.197915E+00 0.194072E+00 0.189806E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232635E+00 0.249403E+00 0.263737E+00 0.264341E+00 0.252006E+00 0.250239E+00 0.235605E+00 0.202463E+00 0.196837E+00 0.193516E+00 0.180797E+00 0.179285E+00 0.176233E+00 0.173686E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190756E+00 0.203670E+00 0.216682E+00 0.207645E+00 0.206309E+00 0.206075E+00 0.198347E+00 0.174295E+00 0.171189E+00 0.168741E+00 0.115826E-01 0.141035E+00 0.147883E+00 0.153064E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.194412E-02 0.145689E-02 0.247287E-02 0.318513E-02 0.372540E-02 0.427309E-02 0.473047E-02 0.462277E-02 0.456324E-02 0.419602E-02 -0.900000E+01 0.109075E-03 0.221427E-02 0.306367E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469919E+00 0.492081E+00 0.500951E+00 0.502158E+00 0.487242E+00 0.477550E+00 0.453175E+00 0.447660E+00 0.420904E+00 0.389838E+00 0.380323E+00 0.317789E+00 0.266388E+00 0.244660E+00 0.226364E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.531058E+00 0.551609E+00 0.559848E+00 0.560150E+00 0.544241E+00 0.534839E+00 0.509664E+00 0.504654E+00 0.477968E+00 0.446643E+00 0.441098E+00 0.376840E+00 0.326209E+00 0.311868E+00 0.296716E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528236E+00 0.549666E+00 0.558088E+00 0.558490E+00 0.543025E+00 0.534277E+00 0.510634E+00 0.503151E+00 0.477755E+00 0.446698E+00 0.440786E+00 0.376964E+00 0.327288E+00 0.313489E+00 0.298508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524951E+00 0.546808E+00 0.555878E+00 0.556421E+00 0.541923E+00 0.539013E+00 0.526358E+00 0.503060E+00 0.478768E+00 0.447645E+00 0.440335E+00 0.377992E+00 0.329700E+00 0.316704E+00 0.300118E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.521524E+00 0.543096E+00 0.553241E+00 0.554226E+00 0.542180E+00 0.536518E+00 0.524889E+00 0.502737E+00 0.482631E+00 0.450668E+00 0.439688E+00 0.380743E+00 0.336367E+00 0.325204E+00 0.315530E+00 0.300113E+00 -0.900000E+01 -0.900000E+01 + 0.517304E+00 0.538301E+00 0.550447E+00 0.552957E+00 0.549803E+00 0.534491E+00 0.523555E+00 0.501568E+00 0.498494E+00 0.467993E+00 0.440949E+00 0.395182E+00 0.363876E+00 0.353911E+00 0.343531E+00 0.326568E+00 -0.900000E+01 -0.900000E+01 + 0.512458E+00 0.532767E+00 0.546492E+00 0.549176E+00 0.545811E+00 0.531924E+00 0.521424E+00 0.499264E+00 0.496039E+00 0.466027E+00 0.439909E+00 0.435142E+00 0.427544E+00 0.418381E+00 0.407766E+00 0.392469E+00 -0.900000E+01 -0.900000E+01 + 0.507036E+00 0.526909E+00 0.541519E+00 0.544496E+00 0.541587E+00 0.528989E+00 0.519181E+00 0.497294E+00 0.492924E+00 0.463096E+00 0.437403E+00 0.432095E+00 0.424775E+00 0.415982E+00 0.406110E+00 0.390110E+00 -0.900000E+01 -0.900000E+01 + 0.501175E+00 0.519698E+00 0.535398E+00 0.539217E+00 0.536397E+00 0.525096E+00 0.517574E+00 0.498956E+00 0.488718E+00 0.460307E+00 0.434289E+00 0.427839E+00 0.419331E+00 0.410008E+00 0.399617E+00 0.377124E+00 -0.900000E+01 -0.900000E+01 + 0.494850E+00 0.512025E+00 0.527841E+00 0.532619E+00 0.530208E+00 0.519626E+00 0.517325E+00 0.505295E+00 0.484354E+00 0.457511E+00 0.430537E+00 0.422325E+00 0.412076E+00 0.401913E+00 0.389176E+00 0.336847E+00 -0.900000E+01 -0.900000E+01 + 0.484679E+00 0.503356E+00 0.518764E+00 0.524968E+00 0.523018E+00 0.512444E+00 0.510148E+00 0.499522E+00 0.480104E+00 0.453157E+00 0.425525E+00 0.413142E+00 0.399682E+00 0.388371E+00 0.371801E+00 0.181998E+00 -0.900000E+01 -0.900000E+01 + 0.472829E+00 0.492257E+00 0.509012E+00 0.516001E+00 0.513788E+00 0.504448E+00 0.501966E+00 0.491931E+00 0.474318E+00 0.447938E+00 0.419717E+00 0.390050E+00 0.366696E+00 0.353868E+00 0.331910E+00 0.374792E-02 -0.900000E+01 -0.900000E+01 + 0.461960E+00 0.480271E+00 0.499190E+00 0.505119E+00 0.500677E+00 0.495062E+00 0.490511E+00 0.478721E+00 0.467042E+00 0.440882E+00 0.412640E+00 0.355355E+00 0.311954E+00 0.296509E+00 0.245603E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452831E+00 0.469486E+00 0.487217E+00 0.492658E+00 0.485659E+00 0.485386E+00 0.477078E+00 0.461186E+00 0.457628E+00 0.432507E+00 0.403421E+00 0.348297E+00 0.305888E+00 0.288000E+00 0.204546E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.444567E+00 0.460287E+00 0.477113E+00 0.482541E+00 0.476555E+00 0.475881E+00 0.467800E+00 0.452597E+00 0.447507E+00 0.422631E+00 0.391926E+00 0.339040E+00 0.300394E+00 0.282239E+00 0.206069E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.436396E+00 0.452790E+00 0.468034E+00 0.470080E+00 0.467883E+00 0.464868E+00 0.453475E+00 0.443458E+00 0.430904E+00 0.404952E+00 0.367046E+00 0.319052E+00 0.293131E+00 0.273778E+00 0.207621E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.428335E+00 0.447126E+00 0.460366E+00 0.458714E+00 0.460254E+00 0.455116E+00 0.438621E+00 0.434589E+00 0.414250E+00 0.387277E+00 0.338609E+00 0.296283E+00 0.283358E+00 0.259740E+00 0.211040E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418797E+00 0.441232E+00 0.453514E+00 0.452608E+00 0.453724E+00 0.448489E+00 0.432113E+00 0.421453E+00 0.396213E+00 0.379221E+00 0.330855E+00 0.289561E+00 0.275915E+00 0.228935E+00 0.219506E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406262E+00 0.432868E+00 0.442294E+00 0.445205E+00 0.444588E+00 0.434565E+00 0.424692E+00 0.408284E+00 0.378474E+00 0.367173E+00 0.320949E+00 0.282373E+00 0.269160E+00 0.256710E+00 0.243965E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.392408E+00 0.418305E+00 0.429906E+00 0.435415E+00 0.433612E+00 0.419450E+00 0.413405E+00 0.396315E+00 0.367010E+00 0.337624E+00 0.293680E+00 0.271516E+00 0.258647E+00 0.248290E+00 0.236986E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375257E+00 0.397227E+00 0.415121E+00 0.420429E+00 0.413006E+00 0.405386E+00 0.391846E+00 0.368484E+00 0.350558E+00 0.311095E+00 0.269725E+00 0.258536E+00 0.249081E+00 0.242162E+00 0.228207E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361579E+00 0.380767E+00 0.397816E+00 0.403258E+00 0.392610E+00 0.387628E+00 0.370337E+00 0.345410E+00 0.333841E+00 0.296510E+00 0.259386E+00 0.250562E+00 0.244023E+00 0.237809E+00 0.206828E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.351316E+00 0.369261E+00 0.382688E+00 0.387165E+00 0.376717E+00 0.365459E+00 0.342959E+00 0.330754E+00 0.306316E+00 0.266910E+00 0.250681E+00 0.245017E+00 0.239390E+00 0.233975E+00 0.108848E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344406E+00 0.359477E+00 0.368609E+00 0.366063E+00 0.361711E+00 0.349298E+00 0.324607E+00 0.320559E+00 0.290552E+00 0.250760E+00 0.244980E+00 0.240294E+00 0.236079E+00 0.228578E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334152E+00 0.351417E+00 0.356418E+00 0.351534E+00 0.349721E+00 0.338927E+00 0.317232E+00 0.312376E+00 0.282000E+00 0.246226E+00 0.240634E+00 0.236701E+00 0.232571E+00 0.227623E+00 0.218630E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322172E+00 0.344362E+00 0.342515E+00 0.343070E+00 0.339136E+00 0.318538E+00 0.311527E+00 0.290345E+00 0.251532E+00 0.238680E+00 0.234641E+00 0.230519E+00 0.224802E+00 0.219588E+00 0.208472E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307339E+00 0.333867E+00 0.334427E+00 0.335465E+00 0.329074E+00 0.308926E+00 0.304435E+00 0.277601E+00 0.236796E+00 0.230544E+00 0.226117E+00 0.220720E+00 0.214597E+00 0.210491E+00 0.190484E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.287859E+00 0.303783E+00 0.318508E+00 0.317816E+00 0.310288E+00 0.295495E+00 0.288353E+00 0.263034E+00 0.227296E+00 0.219650E+00 0.215227E+00 0.210580E+00 0.206527E+00 0.203932E+00 0.733077E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270479E+00 0.278496E+00 0.291636E+00 0.289728E+00 0.274723E+00 0.269278E+00 0.262628E+00 0.244812E+00 0.214586E+00 0.209129E+00 0.206210E+00 0.201944E+00 0.197507E+00 0.194160E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246360E+00 0.257141E+00 0.269579E+00 0.268933E+00 0.256756E+00 0.254409E+00 0.239149E+00 0.206710E+00 0.198485E+00 0.194753E+00 0.187047E+00 0.186021E+00 0.180780E+00 0.178072E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.199463E+00 0.210496E+00 0.233079E+00 0.224172E+00 0.219652E+00 0.215051E+00 0.203174E+00 0.178384E+00 0.172743E+00 0.171821E+00 0.128751E-01 0.141193E+00 0.148044E+00 0.156901E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.163593E-02 0.135273E-02 0.283389E-02 0.383988E-02 0.466898E-02 0.537819E-02 0.577335E-02 0.542626E-02 0.513983E-02 0.467208E-02 -0.900000E+01 0.224969E-04 0.232706E-02 0.303938E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.488901E+00 0.512505E+00 0.523188E+00 0.528488E+00 0.510723E+00 0.499438E+00 0.473536E+00 0.467870E+00 0.439143E+00 0.408781E+00 0.397475E+00 0.334209E+00 0.278513E+00 0.253110E+00 0.233740E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.553303E+00 0.575665E+00 0.585892E+00 0.590701E+00 0.571991E+00 0.560263E+00 0.533307E+00 0.528607E+00 0.500039E+00 0.471681E+00 0.466067E+00 0.397563E+00 0.339478E+00 0.322764E+00 0.309284E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.548243E+00 0.571759E+00 0.583705E+00 0.586831E+00 0.568963E+00 0.558193E+00 0.533110E+00 0.525362E+00 0.498594E+00 0.470240E+00 0.465163E+00 0.397608E+00 0.340587E+00 0.324557E+00 0.310862E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.542975E+00 0.567371E+00 0.579875E+00 0.582659E+00 0.566172E+00 0.561870E+00 0.548806E+00 0.524304E+00 0.499332E+00 0.469523E+00 0.463843E+00 0.398411E+00 0.342699E+00 0.327565E+00 0.312454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.537948E+00 0.562980E+00 0.576116E+00 0.578928E+00 0.565324E+00 0.558249E+00 0.546093E+00 0.522879E+00 0.503801E+00 0.471928E+00 0.461570E+00 0.400814E+00 0.349047E+00 0.337117E+00 0.329048E+00 0.314863E+00 -0.900000E+01 -0.900000E+01 + 0.532540E+00 0.558332E+00 0.571927E+00 0.577146E+00 0.572960E+00 0.555474E+00 0.544381E+00 0.521229E+00 0.520464E+00 0.490521E+00 0.461723E+00 0.415555E+00 0.380413E+00 0.370857E+00 0.362621E+00 0.349296E+00 -0.900000E+01 -0.900000E+01 + 0.527017E+00 0.553205E+00 0.567912E+00 0.573228E+00 0.569245E+00 0.553485E+00 0.542388E+00 0.519593E+00 0.518219E+00 0.489079E+00 0.459924E+00 0.455738E+00 0.449868E+00 0.442538E+00 0.433570E+00 0.420944E+00 -0.900000E+01 -0.900000E+01 + 0.520431E+00 0.547023E+00 0.562992E+00 0.569277E+00 0.565729E+00 0.551170E+00 0.541051E+00 0.518321E+00 0.515015E+00 0.486713E+00 0.456201E+00 0.452511E+00 0.447609E+00 0.441535E+00 0.433563E+00 0.419362E+00 -0.900000E+01 -0.900000E+01 + 0.510309E+00 0.537901E+00 0.557291E+00 0.565105E+00 0.562053E+00 0.548374E+00 0.541843E+00 0.521930E+00 0.512318E+00 0.483476E+00 0.452659E+00 0.448376E+00 0.443233E+00 0.435555E+00 0.425219E+00 0.403973E+00 -0.900000E+01 -0.900000E+01 + 0.494824E+00 0.526357E+00 0.550344E+00 0.559993E+00 0.557764E+00 0.545345E+00 0.545235E+00 0.532027E+00 0.510445E+00 0.480897E+00 0.449530E+00 0.443127E+00 0.436061E+00 0.425738E+00 0.412726E+00 0.363860E+00 -0.900000E+01 -0.900000E+01 + 0.478641E+00 0.510690E+00 0.541482E+00 0.553497E+00 0.552654E+00 0.540576E+00 0.540934E+00 0.528159E+00 0.507349E+00 0.477863E+00 0.445759E+00 0.434107E+00 0.422313E+00 0.410408E+00 0.395206E+00 0.182858E+00 -0.900000E+01 -0.900000E+01 + 0.465857E+00 0.492694E+00 0.530678E+00 0.544876E+00 0.545755E+00 0.534467E+00 0.534468E+00 0.522552E+00 0.502967E+00 0.473940E+00 0.441076E+00 0.408864E+00 0.386327E+00 0.373221E+00 0.353748E+00 0.455242E-02 -0.900000E+01 -0.900000E+01 + 0.455962E+00 0.477168E+00 0.514969E+00 0.533399E+00 0.532352E+00 0.526815E+00 0.523431E+00 0.509944E+00 0.497226E+00 0.468059E+00 0.435476E+00 0.372257E+00 0.324255E+00 0.308148E+00 0.260222E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.447652E+00 0.465006E+00 0.499052E+00 0.519021E+00 0.514760E+00 0.517226E+00 0.509020E+00 0.491342E+00 0.487618E+00 0.458927E+00 0.426711E+00 0.365693E+00 0.318449E+00 0.300313E+00 0.204280E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441189E+00 0.455615E+00 0.486220E+00 0.506447E+00 0.504070E+00 0.506234E+00 0.498525E+00 0.481325E+00 0.475626E+00 0.447834E+00 0.414716E+00 0.356878E+00 0.313356E+00 0.294537E+00 0.205537E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.435493E+00 0.448403E+00 0.474947E+00 0.489879E+00 0.492652E+00 0.491651E+00 0.480605E+00 0.469113E+00 0.455214E+00 0.427637E+00 0.386106E+00 0.333656E+00 0.305048E+00 0.285164E+00 0.207176E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.429601E+00 0.444130E+00 0.465584E+00 0.473811E+00 0.480890E+00 0.477381E+00 0.460522E+00 0.455796E+00 0.433920E+00 0.404905E+00 0.353933E+00 0.307114E+00 0.292523E+00 0.268940E+00 0.211300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.422135E+00 0.442188E+00 0.459771E+00 0.464929E+00 0.469887E+00 0.466492E+00 0.449757E+00 0.437124E+00 0.411785E+00 0.391923E+00 0.342672E+00 0.298256E+00 0.283538E+00 0.237873E+00 0.222959E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413011E+00 0.441424E+00 0.451575E+00 0.457913E+00 0.458853E+00 0.448779E+00 0.439686E+00 0.419472E+00 0.389638E+00 0.377145E+00 0.330386E+00 0.289974E+00 0.276513E+00 0.266067E+00 0.254525E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402065E+00 0.437283E+00 0.443094E+00 0.451146E+00 0.450771E+00 0.434137E+00 0.430744E+00 0.409263E+00 0.379378E+00 0.348859E+00 0.302959E+00 0.279646E+00 0.268225E+00 0.259624E+00 0.246461E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386899E+00 0.423272E+00 0.437446E+00 0.441019E+00 0.433263E+00 0.426643E+00 0.414358E+00 0.387999E+00 0.369705E+00 0.326868E+00 0.281398E+00 0.268760E+00 0.259880E+00 0.251853E+00 0.235404E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372432E+00 0.408908E+00 0.426681E+00 0.428702E+00 0.416727E+00 0.413552E+00 0.397683E+00 0.368361E+00 0.355377E+00 0.314954E+00 0.272768E+00 0.261177E+00 0.252212E+00 0.244220E+00 0.212124E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360147E+00 0.395717E+00 0.411832E+00 0.414325E+00 0.403421E+00 0.393657E+00 0.369714E+00 0.354077E+00 0.325767E+00 0.282080E+00 0.262074E+00 0.252375E+00 0.244531E+00 0.238362E+00 0.136797E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353157E+00 0.381310E+00 0.395562E+00 0.391785E+00 0.387834E+00 0.374927E+00 0.348392E+00 0.339241E+00 0.306051E+00 0.262552E+00 0.251997E+00 0.244431E+00 0.238609E+00 0.231919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346212E+00 0.366242E+00 0.379036E+00 0.373862E+00 0.371833E+00 0.359875E+00 0.335680E+00 0.325828E+00 0.293245E+00 0.254889E+00 0.245701E+00 0.239352E+00 0.234371E+00 0.230737E+00 0.224612E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337702E+00 0.353724E+00 0.353663E+00 0.356816E+00 0.352611E+00 0.331223E+00 0.321059E+00 0.300275E+00 0.260636E+00 0.245639E+00 0.238547E+00 0.233104E+00 0.228902E+00 0.225367E+00 0.216766E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322835E+00 0.342841E+00 0.340345E+00 0.341762E+00 0.337309E+00 0.314443E+00 0.311577E+00 0.286983E+00 0.246052E+00 0.237220E+00 0.230995E+00 0.226254E+00 0.222038E+00 0.217485E+00 0.195808E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.302498E+00 0.320966E+00 0.330835E+00 0.332481E+00 0.326289E+00 0.306407E+00 0.300906E+00 0.274486E+00 0.236323E+00 0.228432E+00 0.222488E+00 0.216957E+00 0.213011E+00 0.210267E+00 0.906743E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.281875E+00 0.291266E+00 0.310508E+00 0.310008E+00 0.292297E+00 0.287301E+00 0.277521E+00 0.256180E+00 0.225342E+00 0.216920E+00 0.210285E+00 0.207493E+00 0.204806E+00 0.200892E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257914E+00 0.268286E+00 0.273523E+00 0.271186E+00 0.259877E+00 0.259145E+00 0.247380E+00 0.217127E+00 0.208422E+00 0.202171E+00 0.190798E+00 0.192513E+00 0.190574E+00 0.187231E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214203E+00 0.227896E+00 0.234781E+00 0.231454E+00 0.233606E+00 0.234059E+00 0.219984E+00 0.190197E+00 0.183423E+00 0.179466E+00 0.174494E-01 0.145749E+00 0.150485E+00 0.159758E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.131792E-02 0.196261E-02 0.372276E-02 0.531762E-02 0.676050E-02 0.805332E-02 0.907376E-02 0.891367E-02 0.858353E-02 0.693686E-02 -0.900000E+01 0.290656E-05 0.301407E-02 0.350388E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.483699E+00 0.505998E+00 0.529661E+00 0.544834E+00 0.532819E+00 0.525499E+00 0.501466E+00 0.496226E+00 0.467920E+00 0.432825E+00 0.417861E+00 0.350411E+00 0.289103E+00 0.258415E+00 0.235739E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.552164E+00 0.569754E+00 0.593136E+00 0.609888E+00 0.596495E+00 0.589462E+00 0.564837E+00 0.560616E+00 0.533870E+00 0.498896E+00 0.492279E+00 0.416821E+00 0.349723E+00 0.327427E+00 0.311765E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.546128E+00 0.562972E+00 0.584563E+00 0.601448E+00 0.589379E+00 0.585095E+00 0.562152E+00 0.555738E+00 0.532428E+00 0.497745E+00 0.491499E+00 0.417248E+00 0.350751E+00 0.329813E+00 0.314212E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.540250E+00 0.557217E+00 0.576795E+00 0.593357E+00 0.582229E+00 0.585658E+00 0.575672E+00 0.553057E+00 0.531639E+00 0.496793E+00 0.489814E+00 0.418705E+00 0.353354E+00 0.334632E+00 0.319141E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.534266E+00 0.552467E+00 0.569747E+00 0.586033E+00 0.577719E+00 0.578439E+00 0.570451E+00 0.550316E+00 0.532849E+00 0.498361E+00 0.487277E+00 0.422757E+00 0.360969E+00 0.345959E+00 0.336741E+00 0.324047E+00 -0.900000E+01 -0.900000E+01 + 0.527867E+00 0.549040E+00 0.563809E+00 0.581801E+00 0.583893E+00 0.572706E+00 0.565788E+00 0.545612E+00 0.546272E+00 0.516832E+00 0.488410E+00 0.439938E+00 0.398945E+00 0.386599E+00 0.376222E+00 0.362981E+00 -0.900000E+01 -0.900000E+01 + 0.520668E+00 0.547230E+00 0.558923E+00 0.575887E+00 0.578431E+00 0.567495E+00 0.560228E+00 0.539451E+00 0.539974E+00 0.513097E+00 0.486270E+00 0.480528E+00 0.472283E+00 0.461976E+00 0.449817E+00 0.436836E+00 -0.900000E+01 -0.900000E+01 + 0.512361E+00 0.544480E+00 0.555489E+00 0.570978E+00 0.573433E+00 0.562511E+00 0.555176E+00 0.533548E+00 0.532834E+00 0.506833E+00 0.480001E+00 0.473380E+00 0.466254E+00 0.458085E+00 0.447362E+00 0.435338E+00 -0.900000E+01 -0.900000E+01 + 0.502331E+00 0.539598E+00 0.552736E+00 0.566751E+00 0.568989E+00 0.557890E+00 0.553680E+00 0.532675E+00 0.525722E+00 0.500002E+00 0.472276E+00 0.464689E+00 0.457708E+00 0.448697E+00 0.437866E+00 0.421925E+00 -0.900000E+01 -0.900000E+01 + 0.486275E+00 0.533244E+00 0.549664E+00 0.562230E+00 0.565098E+00 0.554243E+00 0.556398E+00 0.541372E+00 0.519746E+00 0.493336E+00 0.463686E+00 0.454247E+00 0.446342E+00 0.437281E+00 0.427539E+00 0.381715E+00 -0.900000E+01 -0.900000E+01 + 0.473463E+00 0.521397E+00 0.545920E+00 0.557809E+00 0.561702E+00 0.551395E+00 0.551237E+00 0.536236E+00 0.514347E+00 0.485453E+00 0.454115E+00 0.441545E+00 0.432402E+00 0.424738E+00 0.414167E+00 0.184962E+00 -0.900000E+01 -0.900000E+01 + 0.464162E+00 0.508255E+00 0.540536E+00 0.553075E+00 0.557629E+00 0.548438E+00 0.546523E+00 0.531805E+00 0.510166E+00 0.478018E+00 0.446212E+00 0.414143E+00 0.394393E+00 0.384441E+00 0.367978E+00 0.558828E-02 -0.900000E+01 -0.900000E+01 + 0.457288E+00 0.497571E+00 0.532498E+00 0.547105E+00 0.548094E+00 0.544632E+00 0.538569E+00 0.521016E+00 0.506637E+00 0.472022E+00 0.439981E+00 0.376392E+00 0.329885E+00 0.314607E+00 0.270438E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.451732E+00 0.488449E+00 0.522272E+00 0.538801E+00 0.534277E+00 0.538858E+00 0.527959E+00 0.504908E+00 0.501422E+00 0.467498E+00 0.434030E+00 0.371107E+00 0.325762E+00 0.308495E+00 0.207440E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.447526E+00 0.480699E+00 0.512134E+00 0.530437E+00 0.528141E+00 0.531039E+00 0.521588E+00 0.499922E+00 0.494447E+00 0.462118E+00 0.426794E+00 0.366345E+00 0.322303E+00 0.304698E+00 0.208968E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443877E+00 0.472406E+00 0.501263E+00 0.515453E+00 0.519011E+00 0.517900E+00 0.505831E+00 0.492402E+00 0.477315E+00 0.445411E+00 0.400141E+00 0.345801E+00 0.315428E+00 0.297740E+00 0.210716E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.438904E+00 0.464040E+00 0.490969E+00 0.497845E+00 0.507105E+00 0.503848E+00 0.487095E+00 0.481929E+00 0.456994E+00 0.426305E+00 0.369452E+00 0.319995E+00 0.304331E+00 0.282712E+00 0.215252E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432310E+00 0.455434E+00 0.481928E+00 0.487281E+00 0.495186E+00 0.493508E+00 0.477645E+00 0.463262E+00 0.434489E+00 0.414944E+00 0.360060E+00 0.312305E+00 0.297139E+00 0.251437E+00 0.228964E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.423685E+00 0.447851E+00 0.468174E+00 0.477023E+00 0.482208E+00 0.474677E+00 0.466112E+00 0.442628E+00 0.411173E+00 0.398846E+00 0.348547E+00 0.305420E+00 0.291383E+00 0.279249E+00 0.266368E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413367E+00 0.443185E+00 0.454622E+00 0.466269E+00 0.468883E+00 0.455072E+00 0.450587E+00 0.428217E+00 0.398361E+00 0.366600E+00 0.319829E+00 0.294978E+00 0.281698E+00 0.271877E+00 0.259504E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398863E+00 0.434405E+00 0.445691E+00 0.450069E+00 0.444464E+00 0.439352E+00 0.426551E+00 0.400056E+00 0.383109E+00 0.340351E+00 0.295590E+00 0.281974E+00 0.271671E+00 0.264659E+00 0.249261E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.383770E+00 0.426787E+00 0.438756E+00 0.437882E+00 0.424347E+00 0.423733E+00 0.407250E+00 0.378904E+00 0.368574E+00 0.327622E+00 0.286702E+00 0.274588E+00 0.265786E+00 0.258130E+00 0.226041E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.369572E+00 0.418085E+00 0.432831E+00 0.432008E+00 0.416528E+00 0.408431E+00 0.382178E+00 0.369907E+00 0.340991E+00 0.297600E+00 0.276464E+00 0.267264E+00 0.259136E+00 0.251900E+00 0.179543E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358978E+00 0.404479E+00 0.420859E+00 0.414119E+00 0.409282E+00 0.397150E+00 0.366846E+00 0.360120E+00 0.322694E+00 0.277771E+00 0.267046E+00 0.259974E+00 0.251984E+00 0.242527E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.352835E+00 0.384386E+00 0.404065E+00 0.398528E+00 0.396949E+00 0.384352E+00 0.356990E+00 0.346993E+00 0.311748E+00 0.270178E+00 0.260652E+00 0.253030E+00 0.245530E+00 0.239687E+00 0.233053E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.347494E+00 0.362485E+00 0.368608E+00 0.380080E+00 0.373853E+00 0.351715E+00 0.340770E+00 0.315541E+00 0.273281E+00 0.258962E+00 0.250407E+00 0.243694E+00 0.238165E+00 0.234420E+00 0.227198E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337798E+00 0.349806E+00 0.346446E+00 0.349625E+00 0.342993E+00 0.321253E+00 0.317103E+00 0.295040E+00 0.254903E+00 0.247607E+00 0.240593E+00 0.235957E+00 0.231712E+00 0.228655E+00 0.208077E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317713E+00 0.330358E+00 0.334870E+00 0.334838E+00 0.329578E+00 0.310370E+00 0.306157E+00 0.284693E+00 0.246734E+00 0.238262E+00 0.232291E+00 0.228522E+00 0.224430E+00 0.220750E+00 0.107720E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.293322E+00 0.305550E+00 0.314482E+00 0.312225E+00 0.296348E+00 0.293712E+00 0.289657E+00 0.269508E+00 0.235427E+00 0.228202E+00 0.221812E+00 0.217759E+00 0.213561E+00 0.207770E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263826E+00 0.270223E+00 0.277069E+00 0.273963E+00 0.261625E+00 0.259883E+00 0.249897E+00 0.222922E+00 0.217032E+00 0.211978E+00 0.199774E+00 0.201042E+00 0.200586E+00 0.194917E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.222730E+00 0.229926E+00 0.236387E+00 0.229331E+00 0.231902E+00 0.234529E+00 0.223630E+00 0.198846E+00 0.193850E+00 0.191729E+00 0.248492E-01 0.155741E+00 0.164225E+00 0.165285E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.109627E-02 0.322881E-02 0.589174E-02 0.880352E-02 0.123387E-01 0.163183E-01 0.188596E-01 0.195340E-01 0.197120E-01 0.135912E-01 -0.900000E+01 0.520757E-06 0.429586E-02 0.470743E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.471709E+00 0.493915E+00 0.515969E+00 0.536918E+00 0.544228E+00 0.544539E+00 0.517391E+00 0.512387E+00 0.478967E+00 0.438524E+00 0.421710E+00 0.354712E+00 0.293190E+00 0.261518E+00 0.238394E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.544173E+00 0.560075E+00 0.580354E+00 0.604535E+00 0.613539E+00 0.614602E+00 0.585031E+00 0.582683E+00 0.549329E+00 0.507581E+00 0.500362E+00 0.425899E+00 0.355304E+00 0.332377E+00 0.316667E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.539790E+00 0.554232E+00 0.572163E+00 0.596613E+00 0.605740E+00 0.611220E+00 0.584382E+00 0.580280E+00 0.549180E+00 0.506958E+00 0.499329E+00 0.425707E+00 0.356044E+00 0.334662E+00 0.319767E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.535396E+00 0.548931E+00 0.565982E+00 0.589758E+00 0.597799E+00 0.612913E+00 0.603641E+00 0.580052E+00 0.551153E+00 0.507939E+00 0.498281E+00 0.427011E+00 0.358479E+00 0.339288E+00 0.326087E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.530966E+00 0.544539E+00 0.560868E+00 0.584147E+00 0.592203E+00 0.605496E+00 0.600085E+00 0.578794E+00 0.556621E+00 0.514034E+00 0.498031E+00 0.430422E+00 0.366081E+00 0.351696E+00 0.344251E+00 0.333563E+00 -0.900000E+01 -0.900000E+01 + 0.525684E+00 0.541312E+00 0.555939E+00 0.580406E+00 0.597650E+00 0.599033E+00 0.596039E+00 0.575183E+00 0.575858E+00 0.537412E+00 0.501885E+00 0.449589E+00 0.406372E+00 0.396192E+00 0.389402E+00 0.379308E+00 -0.900000E+01 -0.900000E+01 + 0.519630E+00 0.539138E+00 0.551089E+00 0.574088E+00 0.590006E+00 0.591910E+00 0.590583E+00 0.570091E+00 0.570732E+00 0.535188E+00 0.500759E+00 0.494516E+00 0.487701E+00 0.480375E+00 0.471497E+00 0.460040E+00 -0.900000E+01 -0.900000E+01 + 0.512643E+00 0.537654E+00 0.548389E+00 0.567671E+00 0.582303E+00 0.584318E+00 0.583980E+00 0.563701E+00 0.562198E+00 0.529757E+00 0.496150E+00 0.490242E+00 0.485081E+00 0.478856E+00 0.469936E+00 0.457584E+00 -0.900000E+01 -0.900000E+01 + 0.504158E+00 0.536112E+00 0.547080E+00 0.561429E+00 0.574780E+00 0.576682E+00 0.579145E+00 0.561049E+00 0.552572E+00 0.523651E+00 0.491088E+00 0.484287E+00 0.477297E+00 0.468956E+00 0.459017E+00 0.439881E+00 -0.900000E+01 -0.900000E+01 + 0.490595E+00 0.535637E+00 0.546444E+00 0.556446E+00 0.567861E+00 0.568924E+00 0.576956E+00 0.566623E+00 0.544353E+00 0.516602E+00 0.484173E+00 0.474152E+00 0.464563E+00 0.455059E+00 0.443519E+00 0.399798E+00 -0.900000E+01 -0.900000E+01 + 0.480023E+00 0.532893E+00 0.547664E+00 0.552662E+00 0.562313E+00 0.560937E+00 0.567491E+00 0.558086E+00 0.535419E+00 0.507342E+00 0.474282E+00 0.458510E+00 0.446915E+00 0.439060E+00 0.428708E+00 0.189915E+00 -0.900000E+01 -0.900000E+01 + 0.472171E+00 0.527331E+00 0.547015E+00 0.550798E+00 0.557234E+00 0.552985E+00 0.558034E+00 0.547967E+00 0.525464E+00 0.496882E+00 0.462375E+00 0.428461E+00 0.406159E+00 0.395900E+00 0.379929E+00 0.661528E-02 -0.900000E+01 -0.900000E+01 + 0.465201E+00 0.521156E+00 0.545424E+00 0.549668E+00 0.547499E+00 0.545312E+00 0.545394E+00 0.530715E+00 0.515564E+00 0.485554E+00 0.450613E+00 0.387927E+00 0.336352E+00 0.318484E+00 0.274295E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.458866E+00 0.515661E+00 0.542127E+00 0.545773E+00 0.534729E+00 0.538542E+00 0.531525E+00 0.509071E+00 0.505044E+00 0.474563E+00 0.439589E+00 0.377965E+00 0.330214E+00 0.312389E+00 0.211697E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.453844E+00 0.510013E+00 0.537961E+00 0.542945E+00 0.534237E+00 0.535758E+00 0.525308E+00 0.501693E+00 0.497160E+00 0.465722E+00 0.430903E+00 0.370367E+00 0.326596E+00 0.308810E+00 0.212039E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.449444E+00 0.502571E+00 0.531731E+00 0.533735E+00 0.530575E+00 0.528844E+00 0.510839E+00 0.495978E+00 0.481553E+00 0.448868E+00 0.404965E+00 0.350745E+00 0.320214E+00 0.303014E+00 0.215233E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445071E+00 0.492157E+00 0.524902E+00 0.521661E+00 0.524029E+00 0.519627E+00 0.495220E+00 0.490806E+00 0.463675E+00 0.432216E+00 0.376797E+00 0.326623E+00 0.309967E+00 0.289348E+00 0.221004E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440387E+00 0.479780E+00 0.515559E+00 0.513542E+00 0.516179E+00 0.513606E+00 0.493625E+00 0.477424E+00 0.445457E+00 0.425039E+00 0.371252E+00 0.322115E+00 0.304867E+00 0.259730E+00 0.235634E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434466E+00 0.466928E+00 0.498271E+00 0.502957E+00 0.505468E+00 0.497206E+00 0.487871E+00 0.463147E+00 0.427010E+00 0.413612E+00 0.362655E+00 0.317052E+00 0.300530E+00 0.290000E+00 0.278927E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.426086E+00 0.455356E+00 0.480683E+00 0.491232E+00 0.493071E+00 0.478911E+00 0.475737E+00 0.452177E+00 0.417750E+00 0.384679E+00 0.334037E+00 0.306801E+00 0.293534E+00 0.284199E+00 0.271485E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.411653E+00 0.441843E+00 0.464885E+00 0.473941E+00 0.467827E+00 0.463392E+00 0.450690E+00 0.422144E+00 0.403934E+00 0.357861E+00 0.308903E+00 0.294778E+00 0.284642E+00 0.276155E+00 0.260253E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.396277E+00 0.433146E+00 0.449344E+00 0.452378E+00 0.441154E+00 0.440347E+00 0.423598E+00 0.395401E+00 0.383467E+00 0.342921E+00 0.300203E+00 0.287233E+00 0.277725E+00 0.269928E+00 0.236365E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.381367E+00 0.427124E+00 0.438046E+00 0.437106E+00 0.422695E+00 0.414259E+00 0.389718E+00 0.377296E+00 0.350765E+00 0.307927E+00 0.288240E+00 0.278348E+00 0.270939E+00 0.264076E+00 0.219281E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.366653E+00 0.416579E+00 0.428281E+00 0.418148E+00 0.412136E+00 0.401259E+00 0.372839E+00 0.365722E+00 0.332240E+00 0.289414E+00 0.278897E+00 0.270958E+00 0.264731E+00 0.256266E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.356811E+00 0.400786E+00 0.414471E+00 0.404660E+00 0.403577E+00 0.392222E+00 0.364471E+00 0.354473E+00 0.321897E+00 0.282615E+00 0.272807E+00 0.265148E+00 0.259380E+00 0.253195E+00 0.245293E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.351444E+00 0.374943E+00 0.384679E+00 0.388828E+00 0.384237E+00 0.359686E+00 0.348669E+00 0.325607E+00 0.284105E+00 0.270495E+00 0.263360E+00 0.256873E+00 0.251237E+00 0.245176E+00 0.237363E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345921E+00 0.355671E+00 0.355107E+00 0.359819E+00 0.352232E+00 0.330634E+00 0.326074E+00 0.304379E+00 0.263355E+00 0.258454E+00 0.252295E+00 0.246646E+00 0.242144E+00 0.237464E+00 0.218153E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.330014E+00 0.333045E+00 0.339629E+00 0.338221E+00 0.332965E+00 0.313035E+00 0.309350E+00 0.290439E+00 0.254471E+00 0.247940E+00 0.242196E+00 0.238671E+00 0.234470E+00 0.230484E+00 0.135880E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303693E+00 0.307817E+00 0.320362E+00 0.318148E+00 0.300295E+00 0.295236E+00 0.292058E+00 0.275920E+00 0.243473E+00 0.237562E+00 0.231987E+00 0.228892E+00 0.224827E+00 0.218963E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267067E+00 0.272547E+00 0.289482E+00 0.284488E+00 0.269275E+00 0.265178E+00 0.255732E+00 0.228980E+00 0.223957E+00 0.219938E+00 0.208697E+00 0.210768E+00 0.207945E+00 0.203832E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226156E+00 0.235264E+00 0.241118E+00 0.233821E+00 0.233954E+00 0.235894E+00 0.229266E+00 0.206157E+00 0.202415E+00 0.200092E+00 0.317772E-01 0.167653E+00 0.172296E+00 0.171186E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.908856E-03 0.578449E-02 0.136294E-01 0.201459E-01 0.249343E-01 0.284351E-01 0.310872E-01 0.317939E-01 0.321245E-01 0.211222E-01 -0.900000E+01 0.154347E-06 0.608634E-02 0.653718E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470210E+00 0.499639E+00 0.526344E+00 0.555869E+00 0.555344E+00 0.549042E+00 0.514591E+00 0.508447E+00 0.479945E+00 0.445135E+00 0.427992E+00 0.360050E+00 0.295920E+00 0.261967E+00 0.237437E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.543658E+00 0.566899E+00 0.593694E+00 0.627909E+00 0.627462E+00 0.621402E+00 0.583963E+00 0.580476E+00 0.552077E+00 0.517068E+00 0.508763E+00 0.432849E+00 0.358189E+00 0.333157E+00 0.316650E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.539313E+00 0.562705E+00 0.587791E+00 0.621353E+00 0.622043E+00 0.620721E+00 0.588631E+00 0.579557E+00 0.550370E+00 0.514121E+00 0.505543E+00 0.431630E+00 0.358403E+00 0.335379E+00 0.319848E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.534712E+00 0.557941E+00 0.581973E+00 0.613983E+00 0.615440E+00 0.626306E+00 0.612427E+00 0.581407E+00 0.551163E+00 0.512480E+00 0.502347E+00 0.432007E+00 0.360175E+00 0.339827E+00 0.325883E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.529504E+00 0.553003E+00 0.575918E+00 0.607077E+00 0.610762E+00 0.620290E+00 0.610264E+00 0.581689E+00 0.556831E+00 0.515605E+00 0.500284E+00 0.434604E+00 0.367308E+00 0.351811E+00 0.344087E+00 0.333798E+00 -0.900000E+01 -0.900000E+01 + 0.523281E+00 0.547045E+00 0.569864E+00 0.601806E+00 0.617299E+00 0.615131E+00 0.607895E+00 0.581432E+00 0.580641E+00 0.540116E+00 0.503518E+00 0.452615E+00 0.407980E+00 0.396752E+00 0.390142E+00 0.381975E+00 -0.900000E+01 -0.900000E+01 + 0.515489E+00 0.540922E+00 0.563792E+00 0.592369E+00 0.609732E+00 0.609088E+00 0.604173E+00 0.580012E+00 0.579350E+00 0.540064E+00 0.502877E+00 0.496633E+00 0.490159E+00 0.482931E+00 0.476268E+00 0.467074E+00 -0.900000E+01 -0.900000E+01 + 0.507937E+00 0.535857E+00 0.558158E+00 0.583202E+00 0.602020E+00 0.601816E+00 0.599511E+00 0.577268E+00 0.576067E+00 0.538396E+00 0.500240E+00 0.492800E+00 0.487144E+00 0.481928E+00 0.477010E+00 0.468726E+00 -0.900000E+01 -0.900000E+01 + 0.499872E+00 0.532299E+00 0.552817E+00 0.574969E+00 0.593333E+00 0.593838E+00 0.596320E+00 0.577985E+00 0.571408E+00 0.535600E+00 0.497207E+00 0.487960E+00 0.481517E+00 0.476969E+00 0.471284E+00 0.457673E+00 -0.900000E+01 -0.900000E+01 + 0.486744E+00 0.530727E+00 0.548266E+00 0.567118E+00 0.582582E+00 0.584990E+00 0.595894E+00 0.587197E+00 0.567442E+00 0.532643E+00 0.494069E+00 0.481487E+00 0.473531E+00 0.468677E+00 0.461303E+00 0.417332E+00 -0.900000E+01 -0.900000E+01 + 0.476874E+00 0.530561E+00 0.545006E+00 0.560141E+00 0.572668E+00 0.575997E+00 0.586936E+00 0.579928E+00 0.561211E+00 0.526878E+00 0.488660E+00 0.471455E+00 0.461304E+00 0.455115E+00 0.444101E+00 0.192892E+00 -0.900000E+01 -0.900000E+01 + 0.469643E+00 0.530470E+00 0.542528E+00 0.553694E+00 0.563326E+00 0.564666E+00 0.576295E+00 0.569795E+00 0.551714E+00 0.517573E+00 0.479844E+00 0.444687E+00 0.421048E+00 0.409101E+00 0.390763E+00 0.845657E-02 -0.900000E+01 -0.900000E+01 + 0.463057E+00 0.529651E+00 0.541018E+00 0.547422E+00 0.550036E+00 0.552003E+00 0.560932E+00 0.551733E+00 0.539523E+00 0.505748E+00 0.469496E+00 0.401794E+00 0.344650E+00 0.325769E+00 0.282720E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454531E+00 0.527993E+00 0.539562E+00 0.542352E+00 0.534057E+00 0.540237E+00 0.542642E+00 0.527440E+00 0.522699E+00 0.489982E+00 0.455325E+00 0.390138E+00 0.337649E+00 0.319532E+00 0.214289E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.449247E+00 0.526273E+00 0.538375E+00 0.541062E+00 0.529763E+00 0.532641E+00 0.532221E+00 0.514781E+00 0.506550E+00 0.474398E+00 0.439888E+00 0.379184E+00 0.332535E+00 0.315569E+00 0.214297E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445432E+00 0.522209E+00 0.536055E+00 0.534478E+00 0.526953E+00 0.523755E+00 0.514780E+00 0.504108E+00 0.485772E+00 0.454206E+00 0.409717E+00 0.355287E+00 0.325055E+00 0.309130E+00 0.216487E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443024E+00 0.514946E+00 0.534345E+00 0.524881E+00 0.523356E+00 0.516143E+00 0.496800E+00 0.494390E+00 0.466434E+00 0.435743E+00 0.379117E+00 0.328691E+00 0.314893E+00 0.295433E+00 0.221401E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441595E+00 0.501626E+00 0.530912E+00 0.522654E+00 0.520211E+00 0.512688E+00 0.491877E+00 0.478255E+00 0.447373E+00 0.428301E+00 0.374278E+00 0.325386E+00 0.310691E+00 0.268262E+00 0.237221E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.438856E+00 0.483777E+00 0.516048E+00 0.518118E+00 0.514044E+00 0.498500E+00 0.488848E+00 0.464900E+00 0.429946E+00 0.419036E+00 0.368142E+00 0.322484E+00 0.308172E+00 0.298165E+00 0.287330E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.433454E+00 0.465323E+00 0.498817E+00 0.510840E+00 0.506791E+00 0.485305E+00 0.482727E+00 0.458598E+00 0.424467E+00 0.391624E+00 0.341653E+00 0.314727E+00 0.303067E+00 0.294303E+00 0.281145E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420835E+00 0.447603E+00 0.481815E+00 0.495159E+00 0.483522E+00 0.476673E+00 0.463497E+00 0.433043E+00 0.414927E+00 0.368783E+00 0.318255E+00 0.304213E+00 0.295442E+00 0.286512E+00 0.269868E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406207E+00 0.436037E+00 0.458337E+00 0.467625E+00 0.455361E+00 0.455747E+00 0.439653E+00 0.408267E+00 0.398031E+00 0.353941E+00 0.309741E+00 0.297038E+00 0.287852E+00 0.278791E+00 0.246224E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388883E+00 0.429752E+00 0.442626E+00 0.443548E+00 0.428091E+00 0.418555E+00 0.394710E+00 0.383739E+00 0.357159E+00 0.313282E+00 0.294886E+00 0.285908E+00 0.278198E+00 0.270739E+00 0.278833E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372002E+00 0.421606E+00 0.431360E+00 0.420128E+00 0.413411E+00 0.401781E+00 0.373555E+00 0.368261E+00 0.336334E+00 0.293632E+00 0.284536E+00 0.276990E+00 0.271074E+00 0.263802E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.356396E+00 0.406594E+00 0.418528E+00 0.406229E+00 0.404772E+00 0.392741E+00 0.366312E+00 0.358888E+00 0.328503E+00 0.289592E+00 0.279383E+00 0.272241E+00 0.267351E+00 0.262236E+00 0.255245E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.350386E+00 0.380844E+00 0.388775E+00 0.392696E+00 0.386837E+00 0.363207E+00 0.354888E+00 0.332639E+00 0.292086E+00 0.277595E+00 0.270154E+00 0.265179E+00 0.261071E+00 0.254674E+00 0.246093E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345854E+00 0.356814E+00 0.359266E+00 0.368174E+00 0.361949E+00 0.338074E+00 0.335479E+00 0.312145E+00 0.269613E+00 0.264622E+00 0.259535E+00 0.255411E+00 0.250487E+00 0.244238E+00 0.224174E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332932E+00 0.333970E+00 0.343147E+00 0.342518E+00 0.335349E+00 0.315891E+00 0.313718E+00 0.295683E+00 0.259159E+00 0.255244E+00 0.250277E+00 0.245704E+00 0.240052E+00 0.236433E+00 0.161088E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307701E+00 0.307754E+00 0.325586E+00 0.325191E+00 0.308556E+00 0.305034E+00 0.302346E+00 0.285667E+00 0.251755E+00 0.245671E+00 0.238634E+00 0.236714E+00 0.232338E+00 0.228151E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263443E+00 0.272764E+00 0.295426E+00 0.298717E+00 0.282473E+00 0.280583E+00 0.269229E+00 0.237804E+00 0.230815E+00 0.227414E+00 0.216851E+00 0.219135E+00 0.215136E+00 0.210756E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226584E+00 0.237091E+00 0.245591E+00 0.235751E+00 0.235081E+00 0.237716E+00 0.234314E+00 0.212214E+00 0.208918E+00 0.206469E+00 0.422070E-01 0.172608E+00 0.175759E+00 0.173194E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.823503E-03 0.157295E-01 0.254875E-01 0.324891E-01 0.385078E-01 0.430561E-01 0.465131E-01 0.473361E-01 0.478528E-01 0.305878E-01 -0.900000E+01 0.158166E-06 0.953449E-02 0.983852E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469611E+00 0.504275E+00 0.529060E+00 0.563946E+00 0.559262E+00 0.548585E+00 0.516472E+00 0.513147E+00 0.488621E+00 0.456816E+00 0.441114E+00 0.370663E+00 0.301228E+00 0.263469E+00 0.237018E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.542352E+00 0.571363E+00 0.597769E+00 0.640399E+00 0.635077E+00 0.622274E+00 0.587686E+00 0.588555E+00 0.564609E+00 0.532723E+00 0.525816E+00 0.443495E+00 0.362051E+00 0.334156E+00 0.317111E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.540573E+00 0.568554E+00 0.593851E+00 0.635642E+00 0.632657E+00 0.623994E+00 0.589977E+00 0.585397E+00 0.561272E+00 0.528204E+00 0.520989E+00 0.441384E+00 0.361910E+00 0.336284E+00 0.320384E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.537455E+00 0.566182E+00 0.589745E+00 0.628726E+00 0.628375E+00 0.632221E+00 0.616119E+00 0.585669E+00 0.559978E+00 0.524852E+00 0.516224E+00 0.440775E+00 0.363224E+00 0.340975E+00 0.326578E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.532109E+00 0.562843E+00 0.585580E+00 0.620518E+00 0.625348E+00 0.629034E+00 0.615792E+00 0.585243E+00 0.562969E+00 0.525731E+00 0.511225E+00 0.442490E+00 0.370058E+00 0.353426E+00 0.345396E+00 0.334612E+00 -0.900000E+01 -0.900000E+01 + 0.525982E+00 0.559169E+00 0.581222E+00 0.613309E+00 0.634854E+00 0.626861E+00 0.615858E+00 0.584516E+00 0.583269E+00 0.547104E+00 0.512195E+00 0.460742E+00 0.412103E+00 0.399955E+00 0.392643E+00 0.383441E+00 -0.900000E+01 -0.900000E+01 + 0.518698E+00 0.553971E+00 0.576226E+00 0.603452E+00 0.628868E+00 0.623696E+00 0.614608E+00 0.584284E+00 0.580910E+00 0.544641E+00 0.508891E+00 0.501837E+00 0.495072E+00 0.488318E+00 0.480231E+00 0.470928E+00 -0.900000E+01 -0.900000E+01 + 0.511984E+00 0.548578E+00 0.571166E+00 0.594462E+00 0.621592E+00 0.619398E+00 0.612298E+00 0.584861E+00 0.579008E+00 0.541871E+00 0.504384E+00 0.496772E+00 0.491759E+00 0.487311E+00 0.482037E+00 0.474710E+00 -0.900000E+01 -0.900000E+01 + 0.503663E+00 0.542893E+00 0.565651E+00 0.586674E+00 0.610822E+00 0.614305E+00 0.611969E+00 0.590399E+00 0.577972E+00 0.539625E+00 0.500873E+00 0.491625E+00 0.486098E+00 0.481674E+00 0.477219E+00 0.465144E+00 -0.900000E+01 -0.900000E+01 + 0.489691E+00 0.537683E+00 0.560833E+00 0.579567E+00 0.600686E+00 0.607978E+00 0.615412E+00 0.604725E+00 0.577594E+00 0.538156E+00 0.498105E+00 0.485859E+00 0.478432E+00 0.474455E+00 0.469169E+00 0.431242E+00 -0.900000E+01 -0.900000E+01 + 0.479557E+00 0.534154E+00 0.556086E+00 0.573084E+00 0.591641E+00 0.600527E+00 0.609648E+00 0.599568E+00 0.574509E+00 0.535786E+00 0.495081E+00 0.476817E+00 0.465777E+00 0.462001E+00 0.455219E+00 0.194780E+00 -0.900000E+01 -0.900000E+01 + 0.467366E+00 0.531486E+00 0.552102E+00 0.567184E+00 0.583488E+00 0.590691E+00 0.599078E+00 0.591274E+00 0.569239E+00 0.531353E+00 0.490668E+00 0.452914E+00 0.429033E+00 0.418999E+00 0.402335E+00 0.107799E-01 -0.900000E+01 -0.900000E+01 + 0.455218E+00 0.529766E+00 0.548781E+00 0.561516E+00 0.571483E+00 0.578186E+00 0.583571E+00 0.573800E+00 0.559627E+00 0.523828E+00 0.484233E+00 0.413717E+00 0.351191E+00 0.330035E+00 0.289915E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.448174E+00 0.529330E+00 0.546249E+00 0.556680E+00 0.554998E+00 0.564311E+00 0.562787E+00 0.546791E+00 0.542822E+00 0.509836E+00 0.472528E+00 0.404809E+00 0.344953E+00 0.322452E+00 0.212433E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.444162E+00 0.528809E+00 0.544447E+00 0.553975E+00 0.548762E+00 0.550582E+00 0.547326E+00 0.530102E+00 0.522848E+00 0.491824E+00 0.455679E+00 0.392702E+00 0.339455E+00 0.318286E+00 0.212825E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441346E+00 0.526988E+00 0.541981E+00 0.544434E+00 0.542484E+00 0.535811E+00 0.525749E+00 0.514715E+00 0.497712E+00 0.467157E+00 0.421716E+00 0.365333E+00 0.330063E+00 0.311284E+00 0.215140E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439003E+00 0.522955E+00 0.539708E+00 0.533234E+00 0.535353E+00 0.524145E+00 0.505104E+00 0.500894E+00 0.473620E+00 0.442760E+00 0.386183E+00 0.333513E+00 0.317143E+00 0.296725E+00 0.220122E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437050E+00 0.512949E+00 0.536438E+00 0.528461E+00 0.528739E+00 0.518561E+00 0.498781E+00 0.482609E+00 0.450992E+00 0.431383E+00 0.377382E+00 0.328003E+00 0.311988E+00 0.270395E+00 0.235794E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434331E+00 0.489831E+00 0.521194E+00 0.522379E+00 0.520282E+00 0.502626E+00 0.492259E+00 0.467934E+00 0.431559E+00 0.419843E+00 0.370321E+00 0.324608E+00 0.309646E+00 0.300080E+00 0.289744E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430415E+00 0.469105E+00 0.504297E+00 0.516285E+00 0.510777E+00 0.487950E+00 0.485426E+00 0.460854E+00 0.427056E+00 0.393285E+00 0.343353E+00 0.316642E+00 0.304967E+00 0.296888E+00 0.284860E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.419852E+00 0.451519E+00 0.487642E+00 0.501693E+00 0.489170E+00 0.481792E+00 0.468561E+00 0.437104E+00 0.418871E+00 0.372684E+00 0.321958E+00 0.307858E+00 0.298261E+00 0.290299E+00 0.275027E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.403972E+00 0.438692E+00 0.462298E+00 0.478347E+00 0.465618E+00 0.466781E+00 0.448122E+00 0.415235E+00 0.403926E+00 0.362241E+00 0.316098E+00 0.301290E+00 0.292278E+00 0.284370E+00 0.251775E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388725E+00 0.432327E+00 0.446283E+00 0.450158E+00 0.440048E+00 0.431641E+00 0.404911E+00 0.391880E+00 0.364854E+00 0.318396E+00 0.298157E+00 0.289160E+00 0.283038E+00 0.276347E+00 0.358567E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.367430E+00 0.423922E+00 0.434754E+00 0.426079E+00 0.419876E+00 0.405246E+00 0.374536E+00 0.369724E+00 0.339040E+00 0.295151E+00 0.286559E+00 0.280473E+00 0.275590E+00 0.268550E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353693E+00 0.406693E+00 0.421920E+00 0.412150E+00 0.407593E+00 0.393100E+00 0.366461E+00 0.361548E+00 0.331593E+00 0.291857E+00 0.282963E+00 0.277082E+00 0.272371E+00 0.266412E+00 0.260028E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.348955E+00 0.379336E+00 0.391179E+00 0.398180E+00 0.389956E+00 0.364802E+00 0.357378E+00 0.338023E+00 0.296301E+00 0.282495E+00 0.275939E+00 0.270889E+00 0.266494E+00 0.260249E+00 0.253570E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344481E+00 0.356295E+00 0.362896E+00 0.373655E+00 0.369194E+00 0.342983E+00 0.338867E+00 0.316580E+00 0.274204E+00 0.269193E+00 0.264436E+00 0.260485E+00 0.256819E+00 0.251461E+00 0.232116E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332321E+00 0.334172E+00 0.343899E+00 0.344589E+00 0.335584E+00 0.317320E+00 0.316250E+00 0.297586E+00 0.260833E+00 0.258437E+00 0.254432E+00 0.251201E+00 0.245734E+00 0.242158E+00 0.236894E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306563E+00 0.308770E+00 0.326984E+00 0.322680E+00 0.306351E+00 0.305301E+00 0.305521E+00 0.288674E+00 0.255597E+00 0.251134E+00 0.244160E+00 0.242650E+00 0.238255E+00 0.233954E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260782E+00 0.275434E+00 0.298202E+00 0.296725E+00 0.283383E+00 0.283965E+00 0.275462E+00 0.244543E+00 0.237396E+00 0.234547E+00 0.224055E+00 0.226246E+00 0.222207E+00 0.217961E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227969E+00 0.240600E+00 0.253256E+00 0.240062E+00 0.238975E+00 0.242704E+00 0.241088E+00 0.217819E+00 0.214183E+00 0.211922E+00 0.541519E-01 0.176174E+00 0.179943E+00 0.177837E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.707270E-03 0.286545E-01 0.408606E-01 0.490978E-01 0.563080E-01 0.636220E-01 0.695191E-01 0.707815E-01 0.721671E-01 0.438642E-01 -0.900000E+01 0.176768E-06 0.211822E-01 0.201211E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.462679E+00 0.504951E+00 0.526146E+00 0.558728E+00 0.555352E+00 0.545162E+00 0.519469E+00 0.519688E+00 0.498677E+00 0.468372E+00 0.452728E+00 0.381780E+00 0.307013E+00 0.265899E+00 0.237490E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.530512E+00 0.572725E+00 0.594414E+00 0.636457E+00 0.632355E+00 0.620217E+00 0.594089E+00 0.599488E+00 0.580891E+00 0.549445E+00 0.542431E+00 0.454581E+00 0.365531E+00 0.336149E+00 0.317933E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.529445E+00 0.570847E+00 0.591960E+00 0.632437E+00 0.632899E+00 0.622906E+00 0.594498E+00 0.595325E+00 0.577015E+00 0.546344E+00 0.539819E+00 0.453632E+00 0.365830E+00 0.338556E+00 0.322132E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528725E+00 0.568326E+00 0.589539E+00 0.627382E+00 0.633241E+00 0.634142E+00 0.616940E+00 0.594891E+00 0.575989E+00 0.543800E+00 0.536172E+00 0.453428E+00 0.367418E+00 0.343364E+00 0.328719E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528224E+00 0.565791E+00 0.587065E+00 0.621861E+00 0.635585E+00 0.633177E+00 0.616465E+00 0.594432E+00 0.578510E+00 0.544287E+00 0.530460E+00 0.455244E+00 0.374688E+00 0.356026E+00 0.347565E+00 0.336707E+00 -0.900000E+01 -0.900000E+01 + 0.526677E+00 0.563188E+00 0.584064E+00 0.617229E+00 0.647112E+00 0.632260E+00 0.616781E+00 0.593140E+00 0.596882E+00 0.564155E+00 0.530870E+00 0.475366E+00 0.420408E+00 0.406260E+00 0.398016E+00 0.387452E+00 -0.900000E+01 -0.900000E+01 + 0.522883E+00 0.559824E+00 0.580311E+00 0.610168E+00 0.642234E+00 0.630866E+00 0.616421E+00 0.590613E+00 0.593067E+00 0.560221E+00 0.526073E+00 0.519178E+00 0.511055E+00 0.501533E+00 0.490201E+00 0.477403E+00 -0.900000E+01 -0.900000E+01 + 0.516241E+00 0.556177E+00 0.576487E+00 0.603080E+00 0.635860E+00 0.629391E+00 0.617319E+00 0.587862E+00 0.587968E+00 0.554087E+00 0.518382E+00 0.510955E+00 0.504660E+00 0.497860E+00 0.490309E+00 0.481121E+00 -0.900000E+01 -0.900000E+01 + 0.505538E+00 0.552181E+00 0.572774E+00 0.595897E+00 0.628467E+00 0.627786E+00 0.621874E+00 0.593427E+00 0.583378E+00 0.547680E+00 0.510485E+00 0.501833E+00 0.494890E+00 0.488735E+00 0.482543E+00 0.470946E+00 -0.900000E+01 -0.900000E+01 + 0.490112E+00 0.546978E+00 0.568985E+00 0.589869E+00 0.620329E+00 0.624399E+00 0.630091E+00 0.610571E+00 0.581803E+00 0.542697E+00 0.504168E+00 0.492659E+00 0.483361E+00 0.478120E+00 0.473300E+00 0.438947E+00 -0.900000E+01 -0.900000E+01 + 0.473494E+00 0.542216E+00 0.564606E+00 0.584469E+00 0.611646E+00 0.619793E+00 0.626193E+00 0.608267E+00 0.580373E+00 0.539228E+00 0.499076E+00 0.481846E+00 0.470506E+00 0.466324E+00 0.460874E+00 0.198893E+00 -0.900000E+01 -0.900000E+01 + 0.458676E+00 0.538252E+00 0.560794E+00 0.580352E+00 0.603584E+00 0.613256E+00 0.619136E+00 0.604168E+00 0.579230E+00 0.537843E+00 0.496339E+00 0.457776E+00 0.433914E+00 0.423902E+00 0.409432E+00 0.141494E-01 -0.900000E+01 -0.900000E+01 + 0.449491E+00 0.535614E+00 0.557321E+00 0.575287E+00 0.590666E+00 0.603142E+00 0.605710E+00 0.591164E+00 0.576365E+00 0.535294E+00 0.493479E+00 0.419650E+00 0.354283E+00 0.331548E+00 0.293575E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.442730E+00 0.533141E+00 0.554523E+00 0.568436E+00 0.574538E+00 0.591296E+00 0.586107E+00 0.568692E+00 0.565892E+00 0.527743E+00 0.486190E+00 0.414722E+00 0.350258E+00 0.324957E+00 0.208315E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437663E+00 0.529642E+00 0.551541E+00 0.562932E+00 0.565252E+00 0.576572E+00 0.571231E+00 0.555692E+00 0.549395E+00 0.514376E+00 0.473642E+00 0.405987E+00 0.346625E+00 0.321692E+00 0.209256E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434486E+00 0.525129E+00 0.547425E+00 0.551293E+00 0.554207E+00 0.555608E+00 0.544984E+00 0.538329E+00 0.521494E+00 0.487896E+00 0.440392E+00 0.377648E+00 0.336814E+00 0.314862E+00 0.211975E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432599E+00 0.517426E+00 0.543081E+00 0.537830E+00 0.543128E+00 0.536391E+00 0.517382E+00 0.517601E+00 0.490595E+00 0.459016E+00 0.401319E+00 0.341894E+00 0.321346E+00 0.299707E+00 0.217350E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431734E+00 0.502638E+00 0.537141E+00 0.531985E+00 0.533185E+00 0.524607E+00 0.504834E+00 0.492643E+00 0.460550E+00 0.439898E+00 0.386847E+00 0.333770E+00 0.314974E+00 0.273720E+00 0.232574E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430477E+00 0.477424E+00 0.519940E+00 0.525353E+00 0.521379E+00 0.505091E+00 0.495309E+00 0.473205E+00 0.435973E+00 0.423709E+00 0.374546E+00 0.328516E+00 0.311253E+00 0.300618E+00 0.290102E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.427279E+00 0.460843E+00 0.502693E+00 0.517674E+00 0.511698E+00 0.489823E+00 0.487151E+00 0.463331E+00 0.428649E+00 0.396551E+00 0.346169E+00 0.319108E+00 0.305819E+00 0.297587E+00 0.286538E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417265E+00 0.447185E+00 0.485018E+00 0.502186E+00 0.490973E+00 0.484616E+00 0.472309E+00 0.439594E+00 0.421179E+00 0.375677E+00 0.325261E+00 0.309849E+00 0.300037E+00 0.292964E+00 0.278361E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399838E+00 0.436905E+00 0.460704E+00 0.482657E+00 0.471702E+00 0.474534E+00 0.456860E+00 0.421281E+00 0.409862E+00 0.367977E+00 0.321354E+00 0.306138E+00 0.296966E+00 0.289429E+00 0.258576E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382048E+00 0.430950E+00 0.447150E+00 0.458008E+00 0.453065E+00 0.447215E+00 0.417635E+00 0.401401E+00 0.374053E+00 0.326811E+00 0.305014E+00 0.294913E+00 0.288224E+00 0.280836E+00 0.468921E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353288E+00 0.421360E+00 0.437353E+00 0.433749E+00 0.428517E+00 0.414490E+00 0.383398E+00 0.377373E+00 0.344471E+00 0.299447E+00 0.290549E+00 0.284631E+00 0.278953E+00 0.271254E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345587E+00 0.402836E+00 0.425287E+00 0.418894E+00 0.413164E+00 0.398587E+00 0.370098E+00 0.364673E+00 0.333502E+00 0.294003E+00 0.286298E+00 0.280275E+00 0.275066E+00 0.268887E+00 0.262425E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.342963E+00 0.378298E+00 0.395357E+00 0.402433E+00 0.392433E+00 0.369343E+00 0.360939E+00 0.340813E+00 0.299262E+00 0.285642E+00 0.279193E+00 0.273890E+00 0.269672E+00 0.264508E+00 0.258654E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339897E+00 0.356453E+00 0.370080E+00 0.376566E+00 0.370584E+00 0.344835E+00 0.341975E+00 0.319429E+00 0.276681E+00 0.271204E+00 0.267604E+00 0.264540E+00 0.261386E+00 0.256368E+00 0.238624E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329688E+00 0.335026E+00 0.347048E+00 0.346772E+00 0.336912E+00 0.317832E+00 0.317159E+00 0.298762E+00 0.261628E+00 0.259554E+00 0.257411E+00 0.255125E+00 0.249678E+00 0.245748E+00 0.341205E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306950E+00 0.308384E+00 0.327078E+00 0.321077E+00 0.306324E+00 0.303717E+00 0.305382E+00 0.290716E+00 0.257116E+00 0.254050E+00 0.248443E+00 0.247231E+00 0.241914E+00 0.237642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.261741E+00 0.275257E+00 0.296836E+00 0.296470E+00 0.283888E+00 0.287288E+00 0.280309E+00 0.248528E+00 0.241464E+00 0.238753E+00 0.229296E+00 0.232754E+00 0.229290E+00 0.226456E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.228339E+00 0.244928E+00 0.260168E+00 0.248262E+00 0.246904E+00 0.251582E+00 0.248034E+00 0.222131E+00 0.218663E+00 0.216124E+00 0.664079E-01 0.179285E+00 0.184002E+00 0.183148E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.637442E-03 0.450157E-01 0.607511E-01 0.740505E-01 0.855090E-01 0.958257E-01 0.102941E+00 0.102425E+00 0.103939E+00 0.592409E-01 -0.900000E+01 0.198220E-06 0.362474E-01 0.338790E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.462934E+00 0.505392E+00 0.523526E+00 0.546458E+00 0.549830E+00 0.541229E+00 0.516818E+00 0.519490E+00 0.500054E+00 0.469262E+00 0.453803E+00 0.384238E+00 0.308870E+00 0.267264E+00 0.237254E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.526585E+00 0.572471E+00 0.590940E+00 0.621423E+00 0.628953E+00 0.618479E+00 0.591941E+00 0.602440E+00 0.586133E+00 0.553641E+00 0.548311E+00 0.458870E+00 0.367545E+00 0.337679E+00 0.318602E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.523885E+00 0.571117E+00 0.589161E+00 0.617224E+00 0.628761E+00 0.621219E+00 0.594939E+00 0.600437E+00 0.584314E+00 0.552343E+00 0.547319E+00 0.459220E+00 0.368396E+00 0.340363E+00 0.323006E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.521004E+00 0.569431E+00 0.587722E+00 0.612752E+00 0.628372E+00 0.631670E+00 0.619743E+00 0.601908E+00 0.584604E+00 0.551993E+00 0.545641E+00 0.460401E+00 0.370529E+00 0.345471E+00 0.330244E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.518298E+00 0.566896E+00 0.585544E+00 0.608683E+00 0.630634E+00 0.631902E+00 0.620699E+00 0.602739E+00 0.587488E+00 0.554533E+00 0.542822E+00 0.464009E+00 0.378702E+00 0.359200E+00 0.350348E+00 0.338112E+00 -0.900000E+01 -0.900000E+01 + 0.514919E+00 0.564955E+00 0.583430E+00 0.605869E+00 0.642498E+00 0.633074E+00 0.621382E+00 0.601614E+00 0.605263E+00 0.576782E+00 0.545265E+00 0.487362E+00 0.428625E+00 0.414220E+00 0.405698E+00 0.393254E+00 -0.900000E+01 -0.900000E+01 + 0.509860E+00 0.562460E+00 0.581183E+00 0.601791E+00 0.638883E+00 0.632545E+00 0.621087E+00 0.599490E+00 0.601667E+00 0.572570E+00 0.541744E+00 0.536525E+00 0.529602E+00 0.520072E+00 0.507761E+00 0.492600E+00 -0.900000E+01 -0.900000E+01 + 0.501795E+00 0.559578E+00 0.579386E+00 0.598315E+00 0.634389E+00 0.631554E+00 0.620460E+00 0.596312E+00 0.596294E+00 0.565962E+00 0.534665E+00 0.527367E+00 0.520390E+00 0.514549E+00 0.506167E+00 0.495014E+00 -0.900000E+01 -0.900000E+01 + 0.489863E+00 0.556614E+00 0.576125E+00 0.594584E+00 0.628701E+00 0.630520E+00 0.623276E+00 0.598219E+00 0.590530E+00 0.558396E+00 0.526147E+00 0.516849E+00 0.508818E+00 0.502496E+00 0.494102E+00 0.481317E+00 -0.900000E+01 -0.900000E+01 + 0.474408E+00 0.552671E+00 0.572710E+00 0.590648E+00 0.621710E+00 0.628840E+00 0.632175E+00 0.612527E+00 0.586847E+00 0.551335E+00 0.516542E+00 0.503542E+00 0.493470E+00 0.486632E+00 0.479970E+00 0.448285E+00 -0.900000E+01 -0.900000E+01 + 0.457310E+00 0.548724E+00 0.568526E+00 0.586191E+00 0.613891E+00 0.627058E+00 0.632431E+00 0.610954E+00 0.583918E+00 0.545768E+00 0.507663E+00 0.488695E+00 0.475753E+00 0.470530E+00 0.465777E+00 0.199397E+00 -0.900000E+01 -0.900000E+01 + 0.443856E+00 0.544432E+00 0.564433E+00 0.581318E+00 0.606176E+00 0.623680E+00 0.630178E+00 0.609065E+00 0.581243E+00 0.541305E+00 0.501096E+00 0.462426E+00 0.437775E+00 0.428100E+00 0.414972E+00 0.183181E-01 -0.900000E+01 -0.900000E+01 + 0.434898E+00 0.539398E+00 0.560324E+00 0.575384E+00 0.593163E+00 0.615859E+00 0.618533E+00 0.596653E+00 0.578844E+00 0.538897E+00 0.496677E+00 0.422620E+00 0.356621E+00 0.333032E+00 0.296434E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.427731E+00 0.534299E+00 0.556900E+00 0.568113E+00 0.575150E+00 0.600374E+00 0.600237E+00 0.574868E+00 0.573080E+00 0.533792E+00 0.490894E+00 0.417533E+00 0.352597E+00 0.326466E+00 0.205752E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.422123E+00 0.528198E+00 0.553368E+00 0.561716E+00 0.565096E+00 0.580976E+00 0.582030E+00 0.562620E+00 0.560907E+00 0.523959E+00 0.481633E+00 0.411734E+00 0.350355E+00 0.324230E+00 0.207061E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418473E+00 0.519200E+00 0.548056E+00 0.549013E+00 0.554217E+00 0.558914E+00 0.551607E+00 0.546901E+00 0.535057E+00 0.499188E+00 0.450355E+00 0.385231E+00 0.341814E+00 0.319522E+00 0.210127E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416670E+00 0.505265E+00 0.541959E+00 0.535549E+00 0.543086E+00 0.539221E+00 0.520210E+00 0.523641E+00 0.502589E+00 0.470310E+00 0.411096E+00 0.348255E+00 0.326176E+00 0.304331E+00 0.216833E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416767E+00 0.484486E+00 0.533903E+00 0.531001E+00 0.534411E+00 0.526523E+00 0.504620E+00 0.495285E+00 0.467819E+00 0.450692E+00 0.395203E+00 0.339284E+00 0.319667E+00 0.279823E+00 0.233559E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417840E+00 0.460998E+00 0.516925E+00 0.525908E+00 0.523807E+00 0.507235E+00 0.493522E+00 0.474527E+00 0.439828E+00 0.429118E+00 0.380432E+00 0.332434E+00 0.316490E+00 0.307342E+00 0.297407E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418915E+00 0.450430E+00 0.499195E+00 0.518235E+00 0.514046E+00 0.491610E+00 0.485752E+00 0.465533E+00 0.431075E+00 0.399493E+00 0.349553E+00 0.322752E+00 0.311350E+00 0.303717E+00 0.293395E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.414675E+00 0.440066E+00 0.479491E+00 0.504103E+00 0.494532E+00 0.486426E+00 0.472828E+00 0.441298E+00 0.423942E+00 0.377694E+00 0.326722E+00 0.312696E+00 0.304007E+00 0.297051E+00 0.284435E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.394094E+00 0.432522E+00 0.460062E+00 0.488078E+00 0.478263E+00 0.478572E+00 0.459776E+00 0.424468E+00 0.414794E+00 0.371903E+00 0.324438E+00 0.310103E+00 0.301208E+00 0.294037E+00 0.266105E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.365788E+00 0.428499E+00 0.448815E+00 0.465140E+00 0.463588E+00 0.456859E+00 0.425912E+00 0.411856E+00 0.383110E+00 0.335368E+00 0.311032E+00 0.300088E+00 0.293892E+00 0.287337E+00 0.610862E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339777E+00 0.419331E+00 0.438562E+00 0.439385E+00 0.439261E+00 0.426745E+00 0.395128E+00 0.389331E+00 0.353822E+00 0.306569E+00 0.294669E+00 0.288653E+00 0.284340E+00 0.277563E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337500E+00 0.402519E+00 0.426038E+00 0.422176E+00 0.417815E+00 0.403043E+00 0.374446E+00 0.367639E+00 0.337306E+00 0.297179E+00 0.288414E+00 0.282596E+00 0.278356E+00 0.273097E+00 0.265661E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.336886E+00 0.380672E+00 0.397669E+00 0.403163E+00 0.394295E+00 0.370564E+00 0.361628E+00 0.341989E+00 0.300876E+00 0.287069E+00 0.281314E+00 0.276816E+00 0.273320E+00 0.268531E+00 0.262838E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.336973E+00 0.358955E+00 0.372328E+00 0.377046E+00 0.370368E+00 0.347663E+00 0.343486E+00 0.323395E+00 0.281110E+00 0.275801E+00 0.271003E+00 0.267233E+00 0.263899E+00 0.260342E+00 0.244001E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329238E+00 0.336945E+00 0.350088E+00 0.347086E+00 0.338174E+00 0.320095E+00 0.319726E+00 0.301349E+00 0.263169E+00 0.261459E+00 0.258836E+00 0.256903E+00 0.252707E+00 0.250670E+00 0.445977E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307614E+00 0.305100E+00 0.325839E+00 0.319352E+00 0.306370E+00 0.306236E+00 0.308651E+00 0.293110E+00 0.258314E+00 0.255730E+00 0.250684E+00 0.249397E+00 0.245145E+00 0.241955E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.258648E+00 0.275278E+00 0.294820E+00 0.296059E+00 0.284588E+00 0.291013E+00 0.283586E+00 0.252919E+00 0.246464E+00 0.244562E+00 0.234866E+00 0.236288E+00 0.232847E+00 0.229878E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.228357E+00 0.247958E+00 0.260518E+00 0.252144E+00 0.250872E+00 0.255005E+00 0.250416E+00 0.224274E+00 0.222086E+00 0.220616E+00 0.815700E-01 0.185294E+00 0.192112E+00 0.193280E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524582E-03 0.687290E-01 0.916228E-01 0.108357E+00 0.119571E+00 0.127665E+00 0.131619E+00 0.125961E+00 0.126572E+00 0.704163E-01 -0.900000E+01 0.114447E-05 0.524697E-01 0.483743E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.453827E+00 0.498202E+00 0.519088E+00 0.532979E+00 0.542431E+00 0.536965E+00 0.512688E+00 0.513740E+00 0.494686E+00 0.464709E+00 0.450098E+00 0.382880E+00 0.308282E+00 0.266783E+00 0.237213E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.514581E+00 0.565633E+00 0.587188E+00 0.605235E+00 0.622150E+00 0.614650E+00 0.587706E+00 0.595906E+00 0.582937E+00 0.551985E+00 0.547624E+00 0.459966E+00 0.368611E+00 0.338537E+00 0.319906E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.512806E+00 0.564412E+00 0.585928E+00 0.601986E+00 0.622088E+00 0.617646E+00 0.590920E+00 0.596045E+00 0.583371E+00 0.552334E+00 0.548407E+00 0.460916E+00 0.369559E+00 0.341031E+00 0.324169E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.510234E+00 0.562835E+00 0.584298E+00 0.598407E+00 0.621867E+00 0.628923E+00 0.616231E+00 0.598931E+00 0.585492E+00 0.553159E+00 0.548097E+00 0.462665E+00 0.371809E+00 0.346384E+00 0.331591E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.507111E+00 0.561476E+00 0.582760E+00 0.596512E+00 0.623829E+00 0.629664E+00 0.617297E+00 0.600741E+00 0.589652E+00 0.557630E+00 0.546242E+00 0.467130E+00 0.380304E+00 0.360562E+00 0.351944E+00 0.339501E+00 -0.900000E+01 -0.900000E+01 + 0.502160E+00 0.559707E+00 0.581187E+00 0.597471E+00 0.634319E+00 0.631060E+00 0.618525E+00 0.600754E+00 0.607426E+00 0.584164E+00 0.552501E+00 0.493255E+00 0.431880E+00 0.417657E+00 0.410698E+00 0.399693E+00 -0.900000E+01 -0.900000E+01 + 0.494480E+00 0.557741E+00 0.579199E+00 0.595636E+00 0.630885E+00 0.631582E+00 0.619224E+00 0.599840E+00 0.605422E+00 0.581112E+00 0.550406E+00 0.545462E+00 0.538588E+00 0.530558E+00 0.522115E+00 0.509070E+00 -0.900000E+01 -0.900000E+01 + 0.484089E+00 0.555852E+00 0.577572E+00 0.593475E+00 0.626666E+00 0.631665E+00 0.620375E+00 0.598629E+00 0.600869E+00 0.574376E+00 0.544365E+00 0.539018E+00 0.534097E+00 0.529661E+00 0.523483E+00 0.512491E+00 -0.900000E+01 -0.900000E+01 + 0.471136E+00 0.553893E+00 0.575839E+00 0.591142E+00 0.620609E+00 0.631262E+00 0.624916E+00 0.602960E+00 0.596184E+00 0.566529E+00 0.536805E+00 0.530550E+00 0.524206E+00 0.518817E+00 0.510551E+00 0.494166E+00 -0.900000E+01 -0.900000E+01 + 0.454664E+00 0.551927E+00 0.573818E+00 0.587630E+00 0.613934E+00 0.629934E+00 0.633709E+00 0.618177E+00 0.593744E+00 0.560369E+00 0.527948E+00 0.517585E+00 0.507462E+00 0.499227E+00 0.489686E+00 0.455294E+00 -0.900000E+01 -0.900000E+01 + 0.436069E+00 0.549337E+00 0.570244E+00 0.583842E+00 0.606292E+00 0.626757E+00 0.632525E+00 0.616235E+00 0.589754E+00 0.554393E+00 0.518119E+00 0.499744E+00 0.485796E+00 0.477994E+00 0.472421E+00 0.203423E+00 -0.900000E+01 -0.900000E+01 + 0.423372E+00 0.544696E+00 0.566400E+00 0.579682E+00 0.598794E+00 0.620393E+00 0.628772E+00 0.612448E+00 0.585101E+00 0.548082E+00 0.508571E+00 0.470631E+00 0.445248E+00 0.434937E+00 0.421919E+00 0.245700E-01 -0.900000E+01 -0.900000E+01 + 0.416351E+00 0.539715E+00 0.562018E+00 0.573767E+00 0.586668E+00 0.609800E+00 0.617274E+00 0.598365E+00 0.579667E+00 0.541613E+00 0.500753E+00 0.426593E+00 0.358703E+00 0.335410E+00 0.300662E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.410690E+00 0.533168E+00 0.557478E+00 0.565836E+00 0.569782E+00 0.593946E+00 0.599293E+00 0.575519E+00 0.573226E+00 0.534750E+00 0.492841E+00 0.419529E+00 0.353725E+00 0.328090E+00 0.206158E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.405940E+00 0.524178E+00 0.552326E+00 0.559209E+00 0.561148E+00 0.577448E+00 0.584203E+00 0.567279E+00 0.565521E+00 0.527642E+00 0.484990E+00 0.413916E+00 0.351437E+00 0.325888E+00 0.207100E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402487E+00 0.511448E+00 0.545880E+00 0.546283E+00 0.550960E+00 0.558560E+00 0.557202E+00 0.554710E+00 0.544302E+00 0.506788E+00 0.455827E+00 0.389109E+00 0.344527E+00 0.321774E+00 0.210022E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.400227E+00 0.494265E+00 0.539601E+00 0.533805E+00 0.542913E+00 0.540484E+00 0.528120E+00 0.534029E+00 0.516180E+00 0.481857E+00 0.419506E+00 0.352902E+00 0.329229E+00 0.307875E+00 0.216580E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399357E+00 0.471430E+00 0.533142E+00 0.530621E+00 0.535741E+00 0.530095E+00 0.512938E+00 0.505315E+00 0.482806E+00 0.464103E+00 0.406290E+00 0.345243E+00 0.322710E+00 0.283865E+00 0.233628E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399253E+00 0.454154E+00 0.516533E+00 0.526556E+00 0.526364E+00 0.511842E+00 0.501137E+00 0.482449E+00 0.452349E+00 0.441850E+00 0.390671E+00 0.337764E+00 0.318970E+00 0.307725E+00 0.298058E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.400117E+00 0.448131E+00 0.496333E+00 0.520764E+00 0.517493E+00 0.496128E+00 0.491363E+00 0.471019E+00 0.438363E+00 0.405787E+00 0.355365E+00 0.325531E+00 0.312467E+00 0.303215E+00 0.293351E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398947E+00 0.437918E+00 0.475563E+00 0.506675E+00 0.498874E+00 0.490243E+00 0.476941E+00 0.445746E+00 0.427743E+00 0.381646E+00 0.329355E+00 0.313926E+00 0.304459E+00 0.297222E+00 0.284406E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385599E+00 0.430888E+00 0.460905E+00 0.492549E+00 0.481868E+00 0.482061E+00 0.463802E+00 0.428783E+00 0.417615E+00 0.375397E+00 0.326465E+00 0.310576E+00 0.301102E+00 0.294255E+00 0.266309E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360072E+00 0.426043E+00 0.449770E+00 0.470694E+00 0.468303E+00 0.462937E+00 0.432845E+00 0.417246E+00 0.387931E+00 0.340027E+00 0.314798E+00 0.303258E+00 0.296474E+00 0.289458E+00 0.744659E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339561E+00 0.416809E+00 0.439237E+00 0.442338E+00 0.448030E+00 0.438956E+00 0.404151E+00 0.396063E+00 0.360441E+00 0.312077E+00 0.298845E+00 0.291682E+00 0.286378E+00 0.280006E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337445E+00 0.400329E+00 0.426829E+00 0.423726E+00 0.422559E+00 0.407930E+00 0.379627E+00 0.371120E+00 0.341983E+00 0.300098E+00 0.291021E+00 0.285127E+00 0.280200E+00 0.274292E+00 0.263391E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334938E+00 0.381087E+00 0.398149E+00 0.403849E+00 0.396725E+00 0.373135E+00 0.364510E+00 0.345575E+00 0.303587E+00 0.289373E+00 0.283369E+00 0.278680E+00 0.274864E+00 0.269753E+00 0.264369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332502E+00 0.358983E+00 0.370280E+00 0.376442E+00 0.371274E+00 0.348663E+00 0.347916E+00 0.326774E+00 0.284970E+00 0.278829E+00 0.274602E+00 0.271367E+00 0.268290E+00 0.263835E+00 0.248235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323471E+00 0.334002E+00 0.345580E+00 0.345392E+00 0.338922E+00 0.320451E+00 0.320625E+00 0.303591E+00 0.265570E+00 0.263697E+00 0.262019E+00 0.260524E+00 0.255995E+00 0.253200E+00 0.612560E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304149E+00 0.298828E+00 0.322993E+00 0.318566E+00 0.306619E+00 0.305233E+00 0.308000E+00 0.292760E+00 0.258352E+00 0.257163E+00 0.253210E+00 0.252086E+00 0.247507E+00 0.243967E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253139E+00 0.270815E+00 0.291972E+00 0.295431E+00 0.285543E+00 0.291233E+00 0.286220E+00 0.256135E+00 0.249922E+00 0.247775E+00 0.239195E+00 0.240104E+00 0.236834E+00 0.234254E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219114E+00 0.245279E+00 0.262998E+00 0.256303E+00 0.257674E+00 0.260613E+00 0.255273E+00 0.227853E+00 0.226407E+00 0.225089E+00 0.928384E-01 0.194100E+00 0.203528E+00 0.204120E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.655232E-03 0.101659E+00 0.124480E+00 0.135515E+00 0.143658E+00 0.150853E+00 0.153151E+00 0.142824E+00 0.142354E+00 0.809661E-01 -0.900000E+01 0.690036E-04 0.778543E-01 0.711143E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440009E+00 0.487339E+00 0.513225E+00 0.520222E+00 0.528630E+00 0.531396E+00 0.507013E+00 0.503756E+00 0.481175E+00 0.451317E+00 0.439367E+00 0.376416E+00 0.305007E+00 0.265006E+00 0.237560E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496286E+00 0.556310E+00 0.582429E+00 0.590873E+00 0.608403E+00 0.611241E+00 0.580692E+00 0.583247E+00 0.566913E+00 0.539097E+00 0.538880E+00 0.457603E+00 0.368305E+00 0.338555E+00 0.321239E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.493784E+00 0.554911E+00 0.580370E+00 0.588908E+00 0.607865E+00 0.613999E+00 0.584816E+00 0.583501E+00 0.569018E+00 0.541868E+00 0.541621E+00 0.459226E+00 0.369589E+00 0.341265E+00 0.325337E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.490260E+00 0.553427E+00 0.578832E+00 0.587631E+00 0.607634E+00 0.624545E+00 0.611313E+00 0.587279E+00 0.573542E+00 0.545716E+00 0.543201E+00 0.461810E+00 0.372226E+00 0.346829E+00 0.332673E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.485587E+00 0.551501E+00 0.577582E+00 0.587259E+00 0.608736E+00 0.624193E+00 0.612846E+00 0.590518E+00 0.581465E+00 0.553930E+00 0.544064E+00 0.467200E+00 0.380879E+00 0.361075E+00 0.352418E+00 0.339365E+00 -0.900000E+01 -0.900000E+01 + 0.478734E+00 0.550399E+00 0.576555E+00 0.589044E+00 0.617456E+00 0.625776E+00 0.615455E+00 0.593071E+00 0.604394E+00 0.584840E+00 0.553840E+00 0.494683E+00 0.433020E+00 0.418607E+00 0.411599E+00 0.401219E+00 -0.900000E+01 -0.900000E+01 + 0.469896E+00 0.548846E+00 0.575648E+00 0.588075E+00 0.614004E+00 0.627263E+00 0.617358E+00 0.596047E+00 0.605606E+00 0.585095E+00 0.554132E+00 0.548940E+00 0.542485E+00 0.534784E+00 0.526847E+00 0.516376E+00 -0.900000E+01 -0.900000E+01 + 0.459459E+00 0.547589E+00 0.574272E+00 0.586711E+00 0.609849E+00 0.628360E+00 0.619362E+00 0.599029E+00 0.603312E+00 0.579219E+00 0.549405E+00 0.544157E+00 0.541141E+00 0.537782E+00 0.532753E+00 0.522790E+00 -0.900000E+01 -0.900000E+01 + 0.446617E+00 0.546329E+00 0.572070E+00 0.584388E+00 0.605372E+00 0.628854E+00 0.625456E+00 0.605885E+00 0.599561E+00 0.572038E+00 0.541703E+00 0.536181E+00 0.531877E+00 0.527340E+00 0.520028E+00 0.506155E+00 -0.900000E+01 -0.900000E+01 + 0.429592E+00 0.544619E+00 0.569818E+00 0.582489E+00 0.600930E+00 0.626315E+00 0.635419E+00 0.621966E+00 0.597596E+00 0.565916E+00 0.534766E+00 0.526045E+00 0.518404E+00 0.510273E+00 0.500382E+00 0.465255E+00 -0.900000E+01 -0.900000E+01 + 0.410608E+00 0.541856E+00 0.566707E+00 0.579407E+00 0.596858E+00 0.621409E+00 0.633145E+00 0.619849E+00 0.594267E+00 0.560155E+00 0.525975E+00 0.509722E+00 0.495759E+00 0.487031E+00 0.479586E+00 0.205366E+00 -0.900000E+01 -0.900000E+01 + 0.401524E+00 0.537313E+00 0.563305E+00 0.575641E+00 0.591489E+00 0.614041E+00 0.628476E+00 0.615642E+00 0.590386E+00 0.554210E+00 0.516016E+00 0.478990E+00 0.452729E+00 0.441318E+00 0.428303E+00 0.303323E-01 -0.900000E+01 -0.900000E+01 + 0.395630E+00 0.531673E+00 0.559545E+00 0.569810E+00 0.580366E+00 0.602394E+00 0.615979E+00 0.600896E+00 0.584762E+00 0.548027E+00 0.506838E+00 0.432137E+00 0.360834E+00 0.337659E+00 0.305893E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390944E+00 0.523674E+00 0.554224E+00 0.562705E+00 0.564546E+00 0.587726E+00 0.598675E+00 0.577716E+00 0.575700E+00 0.538767E+00 0.496513E+00 0.423405E+00 0.355392E+00 0.328644E+00 0.206875E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387269E+00 0.511278E+00 0.547955E+00 0.556848E+00 0.556761E+00 0.573159E+00 0.584946E+00 0.569858E+00 0.567774E+00 0.530402E+00 0.487132E+00 0.416027E+00 0.352737E+00 0.325556E+00 0.207720E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384439E+00 0.497392E+00 0.541606E+00 0.544308E+00 0.548274E+00 0.555809E+00 0.559599E+00 0.559967E+00 0.548600E+00 0.510219E+00 0.457358E+00 0.390188E+00 0.344674E+00 0.320897E+00 0.210467E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382452E+00 0.476690E+00 0.535682E+00 0.531743E+00 0.540422E+00 0.540254E+00 0.532494E+00 0.543249E+00 0.523116E+00 0.487272E+00 0.422681E+00 0.354920E+00 0.330593E+00 0.307890E+00 0.216605E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.380654E+00 0.457582E+00 0.529207E+00 0.527892E+00 0.533524E+00 0.529983E+00 0.517082E+00 0.514551E+00 0.491011E+00 0.471687E+00 0.413963E+00 0.349896E+00 0.325779E+00 0.285390E+00 0.233643E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378871E+00 0.450472E+00 0.511941E+00 0.524312E+00 0.525337E+00 0.511716E+00 0.504262E+00 0.488511E+00 0.458635E+00 0.449720E+00 0.398988E+00 0.343337E+00 0.321758E+00 0.308261E+00 0.298585E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375776E+00 0.445999E+00 0.487978E+00 0.517190E+00 0.517195E+00 0.497224E+00 0.494571E+00 0.475129E+00 0.444019E+00 0.412922E+00 0.360528E+00 0.328965E+00 0.314184E+00 0.304488E+00 0.294819E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368420E+00 0.437312E+00 0.465809E+00 0.501895E+00 0.496403E+00 0.490429E+00 0.479738E+00 0.449804E+00 0.431245E+00 0.385830E+00 0.332108E+00 0.316277E+00 0.305614E+00 0.297952E+00 0.285283E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358866E+00 0.428107E+00 0.452668E+00 0.485790E+00 0.478316E+00 0.481752E+00 0.465777E+00 0.431820E+00 0.419749E+00 0.377232E+00 0.328640E+00 0.312767E+00 0.302197E+00 0.294689E+00 0.267943E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334708E+00 0.420861E+00 0.443554E+00 0.464941E+00 0.465664E+00 0.463259E+00 0.435397E+00 0.420330E+00 0.390828E+00 0.342449E+00 0.317322E+00 0.305298E+00 0.297702E+00 0.291075E+00 0.902946E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.321365E+00 0.409998E+00 0.435225E+00 0.437709E+00 0.446030E+00 0.440827E+00 0.408215E+00 0.400726E+00 0.365391E+00 0.317216E+00 0.303492E+00 0.296176E+00 0.289989E+00 0.283915E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323402E+00 0.386536E+00 0.419117E+00 0.419312E+00 0.421077E+00 0.409510E+00 0.384518E+00 0.376426E+00 0.346300E+00 0.304246E+00 0.294456E+00 0.289068E+00 0.284614E+00 0.278621E+00 0.262787E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.325281E+00 0.364434E+00 0.386566E+00 0.398519E+00 0.396179E+00 0.374087E+00 0.366330E+00 0.346349E+00 0.305284E+00 0.291483E+00 0.286824E+00 0.282492E+00 0.278106E+00 0.272172E+00 0.266558E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326326E+00 0.349018E+00 0.360050E+00 0.372297E+00 0.369319E+00 0.348142E+00 0.347560E+00 0.328577E+00 0.287186E+00 0.282025E+00 0.277684E+00 0.274306E+00 0.270882E+00 0.266162E+00 0.252173E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317465E+00 0.325441E+00 0.341434E+00 0.341864E+00 0.336355E+00 0.319315E+00 0.319705E+00 0.303277E+00 0.266152E+00 0.265277E+00 0.264391E+00 0.264084E+00 0.260828E+00 0.258734E+00 0.751084E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.290650E+00 0.294285E+00 0.324813E+00 0.322593E+00 0.308395E+00 0.308484E+00 0.309773E+00 0.294125E+00 0.259383E+00 0.257627E+00 0.255543E+00 0.255951E+00 0.252762E+00 0.250309E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246851E+00 0.270242E+00 0.291085E+00 0.296601E+00 0.289478E+00 0.297153E+00 0.292032E+00 0.258724E+00 0.251998E+00 0.251099E+00 0.243537E+00 0.245827E+00 0.244219E+00 0.241189E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213582E+00 0.247833E+00 0.261253E+00 0.256203E+00 0.259639E+00 0.263998E+00 0.261362E+00 0.233452E+00 0.231221E+00 0.229568E+00 0.982380E-01 0.198151E+00 0.210639E+00 0.212508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.854996E-03 0.129372E+00 0.147532E+00 0.158275E+00 0.168632E+00 0.178568E+00 0.181623E+00 0.169313E+00 0.168897E+00 0.952808E-01 -0.900000E+01 0.433812E-03 0.110454E+00 0.938196E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.444048E+00 0.485695E+00 0.510059E+00 0.516963E+00 0.519237E+00 0.526927E+00 0.504573E+00 0.500587E+00 0.475310E+00 0.444203E+00 0.432237E+00 0.370973E+00 0.301945E+00 0.263489E+00 0.237619E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.503396E+00 0.556215E+00 0.581080E+00 0.588671E+00 0.596407E+00 0.609540E+00 0.580358E+00 0.580426E+00 0.559401E+00 0.532438E+00 0.532581E+00 0.454710E+00 0.367564E+00 0.338342E+00 0.321823E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.499728E+00 0.554747E+00 0.579452E+00 0.586974E+00 0.595320E+00 0.611015E+00 0.585082E+00 0.581914E+00 0.563145E+00 0.535183E+00 0.535194E+00 0.456865E+00 0.369182E+00 0.341292E+00 0.325978E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.494335E+00 0.552990E+00 0.578094E+00 0.585700E+00 0.594329E+00 0.620105E+00 0.611801E+00 0.586621E+00 0.568480E+00 0.538364E+00 0.536919E+00 0.459754E+00 0.372031E+00 0.346935E+00 0.333283E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.486883E+00 0.551039E+00 0.577090E+00 0.584879E+00 0.594010E+00 0.619096E+00 0.613425E+00 0.590197E+00 0.575780E+00 0.545450E+00 0.538508E+00 0.465354E+00 0.380537E+00 0.360776E+00 0.352228E+00 0.338663E+00 -0.900000E+01 -0.900000E+01 + 0.477430E+00 0.549119E+00 0.576074E+00 0.585810E+00 0.599042E+00 0.619102E+00 0.615825E+00 0.592947E+00 0.598383E+00 0.577854E+00 0.549018E+00 0.492533E+00 0.432151E+00 0.417864E+00 0.411007E+00 0.400497E+00 -0.900000E+01 -0.900000E+01 + 0.466645E+00 0.547531E+00 0.574472E+00 0.584370E+00 0.596083E+00 0.619571E+00 0.617688E+00 0.594889E+00 0.601467E+00 0.580136E+00 0.550936E+00 0.546908E+00 0.541691E+00 0.535184E+00 0.528502E+00 0.518685E+00 -0.900000E+01 -0.900000E+01 + 0.455234E+00 0.545990E+00 0.572327E+00 0.582153E+00 0.594180E+00 0.619585E+00 0.619542E+00 0.597490E+00 0.601327E+00 0.576188E+00 0.546297E+00 0.542492E+00 0.540920E+00 0.538909E+00 0.536065E+00 0.526620E+00 -0.900000E+01 -0.900000E+01 + 0.441951E+00 0.543948E+00 0.570146E+00 0.579907E+00 0.592720E+00 0.617740E+00 0.624422E+00 0.604269E+00 0.597862E+00 0.569529E+00 0.538669E+00 0.534285E+00 0.531558E+00 0.528915E+00 0.525187E+00 0.512131E+00 -0.900000E+01 -0.900000E+01 + 0.424724E+00 0.541315E+00 0.567074E+00 0.576948E+00 0.590782E+00 0.615211E+00 0.633203E+00 0.620484E+00 0.595703E+00 0.563835E+00 0.532911E+00 0.524921E+00 0.518338E+00 0.512742E+00 0.506085E+00 0.473009E+00 -0.900000E+01 -0.900000E+01 + 0.409593E+00 0.538305E+00 0.563210E+00 0.573632E+00 0.587899E+00 0.610435E+00 0.629986E+00 0.617793E+00 0.592610E+00 0.559052E+00 0.525413E+00 0.510405E+00 0.498684E+00 0.491060E+00 0.484241E+00 0.209664E+00 -0.900000E+01 -0.900000E+01 + 0.403171E+00 0.533165E+00 0.559449E+00 0.569861E+00 0.583830E+00 0.601933E+00 0.622987E+00 0.612685E+00 0.588822E+00 0.553872E+00 0.515962E+00 0.479724E+00 0.454769E+00 0.443042E+00 0.429423E+00 0.328175E-01 -0.900000E+01 -0.900000E+01 + 0.397620E+00 0.525916E+00 0.555239E+00 0.565196E+00 0.572984E+00 0.590026E+00 0.609034E+00 0.598260E+00 0.584060E+00 0.547168E+00 0.506426E+00 0.432514E+00 0.361304E+00 0.337899E+00 0.307187E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393021E+00 0.515155E+00 0.550430E+00 0.558514E+00 0.557484E+00 0.575498E+00 0.589255E+00 0.575043E+00 0.575443E+00 0.538420E+00 0.495908E+00 0.424120E+00 0.355825E+00 0.329020E+00 0.206588E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389815E+00 0.501968E+00 0.544393E+00 0.552527E+00 0.549377E+00 0.562831E+00 0.574342E+00 0.566593E+00 0.566415E+00 0.529544E+00 0.486374E+00 0.416462E+00 0.353205E+00 0.325695E+00 0.207269E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387707E+00 0.484416E+00 0.538165E+00 0.541125E+00 0.541455E+00 0.547949E+00 0.551254E+00 0.555144E+00 0.546315E+00 0.509211E+00 0.457112E+00 0.390475E+00 0.344991E+00 0.321060E+00 0.209743E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386510E+00 0.464735E+00 0.532019E+00 0.529006E+00 0.535686E+00 0.534361E+00 0.525758E+00 0.538590E+00 0.519816E+00 0.485793E+00 0.422507E+00 0.355059E+00 0.330529E+00 0.307988E+00 0.215648E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385233E+00 0.451462E+00 0.523081E+00 0.527059E+00 0.531627E+00 0.526313E+00 0.512304E+00 0.510231E+00 0.488386E+00 0.471275E+00 0.414106E+00 0.350248E+00 0.325989E+00 0.287298E+00 0.232646E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.383055E+00 0.448627E+00 0.500220E+00 0.522973E+00 0.524310E+00 0.510374E+00 0.502538E+00 0.486740E+00 0.458442E+00 0.450478E+00 0.399860E+00 0.343947E+00 0.322278E+00 0.308467E+00 0.298983E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378369E+00 0.445186E+00 0.471906E+00 0.512760E+00 0.516305E+00 0.497126E+00 0.495759E+00 0.476850E+00 0.446947E+00 0.414345E+00 0.361635E+00 0.329515E+00 0.314486E+00 0.304972E+00 0.296114E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.369402E+00 0.437096E+00 0.457510E+00 0.496170E+00 0.494005E+00 0.490202E+00 0.481032E+00 0.452209E+00 0.434493E+00 0.387010E+00 0.332620E+00 0.316274E+00 0.305566E+00 0.298350E+00 0.286871E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.355066E+00 0.428108E+00 0.448168E+00 0.475621E+00 0.473592E+00 0.480924E+00 0.467249E+00 0.434075E+00 0.421794E+00 0.377593E+00 0.328615E+00 0.312664E+00 0.302217E+00 0.295206E+00 0.271579E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327580E+00 0.417972E+00 0.441340E+00 0.454631E+00 0.457972E+00 0.460957E+00 0.435267E+00 0.421817E+00 0.391490E+00 0.342672E+00 0.317418E+00 0.305457E+00 0.297781E+00 0.291991E+00 0.984220E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317939E+00 0.402288E+00 0.429814E+00 0.430934E+00 0.436734E+00 0.434257E+00 0.405805E+00 0.401000E+00 0.365692E+00 0.317778E+00 0.304373E+00 0.296837E+00 0.291524E+00 0.286292E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.318230E+00 0.376929E+00 0.409817E+00 0.410351E+00 0.415296E+00 0.405997E+00 0.382680E+00 0.375684E+00 0.345690E+00 0.304652E+00 0.294907E+00 0.290362E+00 0.287334E+00 0.283686E+00 0.264136E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320695E+00 0.352506E+00 0.375471E+00 0.387799E+00 0.390697E+00 0.372825E+00 0.366512E+00 0.346478E+00 0.305298E+00 0.292114E+00 0.287853E+00 0.285037E+00 0.282292E+00 0.276954E+00 0.271222E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323252E+00 0.343578E+00 0.349450E+00 0.361228E+00 0.364823E+00 0.346890E+00 0.346761E+00 0.329178E+00 0.288192E+00 0.283237E+00 0.280440E+00 0.278015E+00 0.275006E+00 0.270195E+00 0.256801E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313671E+00 0.322304E+00 0.341987E+00 0.341972E+00 0.336195E+00 0.318433E+00 0.318908E+00 0.301543E+00 0.265393E+00 0.265006E+00 0.265304E+00 0.265638E+00 0.263419E+00 0.262254E+00 0.853927E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285252E+00 0.291086E+00 0.323868E+00 0.324550E+00 0.309152E+00 0.309536E+00 0.311335E+00 0.295093E+00 0.260037E+00 0.258849E+00 0.257226E+00 0.257763E+00 0.255152E+00 0.252680E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.243996E+00 0.268908E+00 0.288427E+00 0.296667E+00 0.294460E+00 0.303942E+00 0.296206E+00 0.260115E+00 0.253247E+00 0.252299E+00 0.245134E+00 0.247612E+00 0.247036E+00 0.243550E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.211522E+00 0.250208E+00 0.261795E+00 0.255700E+00 0.260531E+00 0.267315E+00 0.265966E+00 0.238743E+00 0.236719E+00 0.235464E+00 0.107445E+00 0.204054E+00 0.215410E+00 0.217530E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.815529E-03 0.141368E+00 0.167051E+00 0.180985E+00 0.193865E+00 0.203707E+00 0.204653E+00 0.185920E+00 0.186182E+00 0.105776E+00 -0.900000E+01 0.595400E-03 0.131252E+00 0.104642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443164E+00 0.482888E+00 0.508579E+00 0.517504E+00 0.511271E+00 0.521640E+00 0.504033E+00 0.501149E+00 0.475575E+00 0.443888E+00 0.431487E+00 0.370186E+00 0.300939E+00 0.262744E+00 0.237126E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.502075E+00 0.553338E+00 0.579670E+00 0.589970E+00 0.584615E+00 0.605430E+00 0.583312E+00 0.582816E+00 0.560314E+00 0.532515E+00 0.531951E+00 0.454201E+00 0.367251E+00 0.338342E+00 0.322049E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496681E+00 0.551442E+00 0.578268E+00 0.588132E+00 0.583602E+00 0.606157E+00 0.587537E+00 0.584949E+00 0.564938E+00 0.536138E+00 0.535082E+00 0.456515E+00 0.369115E+00 0.341357E+00 0.326224E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.489181E+00 0.549382E+00 0.576940E+00 0.586388E+00 0.580822E+00 0.612306E+00 0.613112E+00 0.590134E+00 0.570834E+00 0.539818E+00 0.536876E+00 0.459654E+00 0.372047E+00 0.347008E+00 0.333487E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.480009E+00 0.547312E+00 0.575923E+00 0.584469E+00 0.579766E+00 0.609371E+00 0.614563E+00 0.593816E+00 0.578569E+00 0.547154E+00 0.538694E+00 0.465195E+00 0.380465E+00 0.360607E+00 0.351991E+00 0.338120E+00 -0.900000E+01 -0.900000E+01 + 0.469535E+00 0.545890E+00 0.574689E+00 0.584201E+00 0.589371E+00 0.610097E+00 0.616446E+00 0.596358E+00 0.601890E+00 0.579126E+00 0.549335E+00 0.492104E+00 0.431675E+00 0.417386E+00 0.410512E+00 0.399755E+00 -0.900000E+01 -0.900000E+01 + 0.458493E+00 0.544460E+00 0.572618E+00 0.581546E+00 0.588613E+00 0.610908E+00 0.618157E+00 0.597997E+00 0.603837E+00 0.580655E+00 0.550794E+00 0.546420E+00 0.541094E+00 0.534719E+00 0.528148E+00 0.518159E+00 -0.900000E+01 -0.900000E+01 + 0.447190E+00 0.542821E+00 0.569764E+00 0.578434E+00 0.587966E+00 0.611241E+00 0.619086E+00 0.598951E+00 0.601512E+00 0.575982E+00 0.545164E+00 0.541623E+00 0.539760E+00 0.538366E+00 0.535806E+00 0.527458E+00 -0.900000E+01 -0.900000E+01 + 0.433906E+00 0.540402E+00 0.566362E+00 0.575522E+00 0.586842E+00 0.609445E+00 0.622344E+00 0.604162E+00 0.597117E+00 0.568794E+00 0.537814E+00 0.533192E+00 0.530111E+00 0.527813E+00 0.524311E+00 0.512066E+00 -0.900000E+01 -0.900000E+01 + 0.417204E+00 0.536896E+00 0.562288E+00 0.572119E+00 0.584701E+00 0.606661E+00 0.629710E+00 0.619271E+00 0.595002E+00 0.563243E+00 0.531709E+00 0.523046E+00 0.516156E+00 0.510887E+00 0.504365E+00 0.472403E+00 -0.900000E+01 -0.900000E+01 + 0.410591E+00 0.533130E+00 0.558373E+00 0.568918E+00 0.582042E+00 0.601282E+00 0.624881E+00 0.615266E+00 0.591171E+00 0.558117E+00 0.523094E+00 0.507321E+00 0.495885E+00 0.488825E+00 0.482428E+00 0.213567E+00 -0.900000E+01 -0.900000E+01 + 0.404947E+00 0.525935E+00 0.554771E+00 0.564979E+00 0.577916E+00 0.593007E+00 0.616737E+00 0.609139E+00 0.586813E+00 0.552170E+00 0.513323E+00 0.477015E+00 0.452550E+00 0.441376E+00 0.428232E+00 0.341579E-01 -0.900000E+01 -0.900000E+01 + 0.399821E+00 0.516940E+00 0.550754E+00 0.559740E+00 0.567039E+00 0.582062E+00 0.602872E+00 0.594422E+00 0.581256E+00 0.544866E+00 0.503614E+00 0.430589E+00 0.360754E+00 0.337747E+00 0.307448E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395381E+00 0.504658E+00 0.545807E+00 0.552881E+00 0.550665E+00 0.569427E+00 0.583343E+00 0.571340E+00 0.572586E+00 0.535477E+00 0.493513E+00 0.422444E+00 0.355358E+00 0.328947E+00 0.206296E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391815E+00 0.489477E+00 0.540261E+00 0.547447E+00 0.543537E+00 0.558692E+00 0.569456E+00 0.563407E+00 0.564470E+00 0.527722E+00 0.485071E+00 0.415683E+00 0.352952E+00 0.325591E+00 0.206998E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388763E+00 0.472042E+00 0.534280E+00 0.538365E+00 0.538785E+00 0.544993E+00 0.546804E+00 0.551878E+00 0.544309E+00 0.507983E+00 0.456079E+00 0.390189E+00 0.344815E+00 0.320879E+00 0.209424E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386184E+00 0.454603E+00 0.526164E+00 0.528003E+00 0.534810E+00 0.532666E+00 0.521875E+00 0.533703E+00 0.516873E+00 0.484259E+00 0.421665E+00 0.354794E+00 0.330444E+00 0.308144E+00 0.215172E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.383072E+00 0.450672E+00 0.511552E+00 0.526003E+00 0.531125E+00 0.526012E+00 0.510481E+00 0.506454E+00 0.485897E+00 0.470209E+00 0.413135E+00 0.349685E+00 0.325747E+00 0.287652E+00 0.231796E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378266E+00 0.447888E+00 0.485042E+00 0.520290E+00 0.525208E+00 0.510665E+00 0.503320E+00 0.487754E+00 0.459342E+00 0.450733E+00 0.398988E+00 0.343116E+00 0.321755E+00 0.308065E+00 0.298136E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.370336E+00 0.444422E+00 0.463518E+00 0.508114E+00 0.514526E+00 0.496658E+00 0.497213E+00 0.478297E+00 0.447681E+00 0.414245E+00 0.360604E+00 0.328743E+00 0.313904E+00 0.304566E+00 0.295881E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358607E+00 0.435825E+00 0.454596E+00 0.490223E+00 0.490744E+00 0.489466E+00 0.481125E+00 0.451680E+00 0.433822E+00 0.386013E+00 0.331931E+00 0.315864E+00 0.305106E+00 0.298054E+00 0.287303E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344158E+00 0.425597E+00 0.445808E+00 0.466761E+00 0.467942E+00 0.478713E+00 0.466189E+00 0.433326E+00 0.421351E+00 0.377157E+00 0.328210E+00 0.312315E+00 0.301857E+00 0.295044E+00 0.272666E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.316611E+00 0.414123E+00 0.437748E+00 0.449295E+00 0.451905E+00 0.455505E+00 0.431914E+00 0.419767E+00 0.391111E+00 0.342174E+00 0.316969E+00 0.305154E+00 0.297492E+00 0.291954E+00 0.100673E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313870E+00 0.392017E+00 0.423883E+00 0.426892E+00 0.430252E+00 0.424979E+00 0.400284E+00 0.396840E+00 0.362039E+00 0.314834E+00 0.302737E+00 0.295719E+00 0.290772E+00 0.286095E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314625E+00 0.368223E+00 0.402948E+00 0.407088E+00 0.411791E+00 0.402430E+00 0.378674E+00 0.371964E+00 0.341068E+00 0.301437E+00 0.293279E+00 0.289678E+00 0.287120E+00 0.284184E+00 0.264641E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317380E+00 0.349561E+00 0.370542E+00 0.384254E+00 0.385082E+00 0.369410E+00 0.364904E+00 0.346296E+00 0.304704E+00 0.291818E+00 0.287667E+00 0.284939E+00 0.282297E+00 0.277898E+00 0.273033E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320178E+00 0.342051E+00 0.348793E+00 0.355287E+00 0.356554E+00 0.343212E+00 0.344695E+00 0.328667E+00 0.288542E+00 0.283465E+00 0.280754E+00 0.279291E+00 0.277224E+00 0.273110E+00 0.260564E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312148E+00 0.322374E+00 0.340663E+00 0.341305E+00 0.336027E+00 0.319497E+00 0.320960E+00 0.303173E+00 0.266516E+00 0.265678E+00 0.265884E+00 0.266311E+00 0.264287E+00 0.262991E+00 0.891116E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280323E+00 0.289321E+00 0.318103E+00 0.324141E+00 0.311241E+00 0.311641E+00 0.312640E+00 0.295842E+00 0.261130E+00 0.260513E+00 0.259227E+00 0.259466E+00 0.258045E+00 0.255043E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244631E+00 0.267374E+00 0.280345E+00 0.297538E+00 0.296817E+00 0.306785E+00 0.298470E+00 0.261134E+00 0.254374E+00 0.253392E+00 0.246201E+00 0.248346E+00 0.247630E+00 0.244147E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.212482E+00 0.248353E+00 0.258336E+00 0.255791E+00 0.262157E+00 0.270033E+00 0.269941E+00 0.242176E+00 0.240159E+00 0.238011E+00 0.110954E+00 0.206892E+00 0.219226E+00 0.221963E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.738103E-03 0.158754E+00 0.188649E+00 0.201256E+00 0.212788E+00 0.221782E+00 0.220236E+00 0.198612E+00 0.200197E+00 0.113960E+00 -0.900000E+01 0.290138E-03 0.137994E+00 0.111853E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.435656E+00 0.477717E+00 0.505024E+00 0.515308E+00 0.507489E+00 0.516831E+00 0.502911E+00 0.502806E+00 0.478294E+00 0.446194E+00 0.433090E+00 0.370520E+00 0.300804E+00 0.262409E+00 0.236726E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.492830E+00 0.548312E+00 0.576460E+00 0.587333E+00 0.579790E+00 0.599746E+00 0.584315E+00 0.586871E+00 0.564754E+00 0.535308E+00 0.533336E+00 0.454501E+00 0.367229E+00 0.338382E+00 0.322106E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.485551E+00 0.546338E+00 0.575058E+00 0.585610E+00 0.579163E+00 0.599611E+00 0.587973E+00 0.588037E+00 0.569098E+00 0.538960E+00 0.536613E+00 0.456801E+00 0.369066E+00 0.341417E+00 0.326343E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.476531E+00 0.544757E+00 0.573488E+00 0.583421E+00 0.575817E+00 0.605621E+00 0.612980E+00 0.592678E+00 0.574646E+00 0.542894E+00 0.538556E+00 0.459686E+00 0.371888E+00 0.347014E+00 0.333627E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.466959E+00 0.543311E+00 0.572288E+00 0.581054E+00 0.576206E+00 0.605560E+00 0.614328E+00 0.595965E+00 0.582078E+00 0.550502E+00 0.540189E+00 0.464890E+00 0.380178E+00 0.360410E+00 0.351866E+00 0.337915E+00 -0.900000E+01 -0.900000E+01 + 0.456516E+00 0.541258E+00 0.570594E+00 0.580411E+00 0.586873E+00 0.606954E+00 0.615828E+00 0.597646E+00 0.603616E+00 0.579871E+00 0.548784E+00 0.490832E+00 0.430790E+00 0.416760E+00 0.410075E+00 0.399276E+00 -0.900000E+01 -0.900000E+01 + 0.445474E+00 0.539426E+00 0.567928E+00 0.577460E+00 0.585676E+00 0.606961E+00 0.616189E+00 0.597975E+00 0.602380E+00 0.577318E+00 0.546928E+00 0.543429E+00 0.538788E+00 0.533222E+00 0.526971E+00 0.516660E+00 -0.900000E+01 -0.900000E+01 + 0.434043E+00 0.537251E+00 0.564254E+00 0.574110E+00 0.584208E+00 0.606121E+00 0.615679E+00 0.596955E+00 0.598135E+00 0.571024E+00 0.540958E+00 0.538251E+00 0.536772E+00 0.536178E+00 0.533712E+00 0.525177E+00 -0.900000E+01 -0.900000E+01 + 0.420878E+00 0.534518E+00 0.560254E+00 0.570502E+00 0.581378E+00 0.602569E+00 0.617340E+00 0.600396E+00 0.592972E+00 0.563895E+00 0.533803E+00 0.529551E+00 0.526854E+00 0.524947E+00 0.521328E+00 0.508830E+00 -0.900000E+01 -0.900000E+01 + 0.411825E+00 0.530477E+00 0.556152E+00 0.566982E+00 0.577781E+00 0.597589E+00 0.623043E+00 0.614086E+00 0.590080E+00 0.558405E+00 0.526417E+00 0.517920E+00 0.511511E+00 0.506574E+00 0.499775E+00 0.468515E+00 -0.900000E+01 -0.900000E+01 + 0.406367E+00 0.525426E+00 0.552617E+00 0.563606E+00 0.574313E+00 0.591113E+00 0.617992E+00 0.609388E+00 0.585689E+00 0.552675E+00 0.517557E+00 0.501448E+00 0.490515E+00 0.484479E+00 0.478739E+00 0.214137E+00 -0.900000E+01 -0.900000E+01 + 0.401440E+00 0.516718E+00 0.549561E+00 0.559385E+00 0.569062E+00 0.583208E+00 0.610613E+00 0.604014E+00 0.581127E+00 0.546091E+00 0.507081E+00 0.471702E+00 0.448748E+00 0.438715E+00 0.426492E+00 0.352580E-01 -0.900000E+01 -0.900000E+01 + 0.397174E+00 0.505713E+00 0.545716E+00 0.553668E+00 0.558701E+00 0.574574E+00 0.597224E+00 0.590475E+00 0.576757E+00 0.539318E+00 0.498435E+00 0.427198E+00 0.359709E+00 0.337342E+00 0.307291E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393430E+00 0.491588E+00 0.541008E+00 0.547944E+00 0.545004E+00 0.564371E+00 0.578577E+00 0.568931E+00 0.570482E+00 0.532656E+00 0.491043E+00 0.420261E+00 0.354719E+00 0.328669E+00 0.206144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390584E+00 0.476807E+00 0.536452E+00 0.545126E+00 0.540731E+00 0.554870E+00 0.564665E+00 0.560482E+00 0.562802E+00 0.526434E+00 0.484045E+00 0.414660E+00 0.352494E+00 0.325317E+00 0.206889E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387986E+00 0.462439E+00 0.529745E+00 0.537110E+00 0.537170E+00 0.542181E+00 0.541977E+00 0.548144E+00 0.542228E+00 0.507010E+00 0.455235E+00 0.389546E+00 0.344580E+00 0.320814E+00 0.209326E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385292E+00 0.452489E+00 0.518483E+00 0.527122E+00 0.533849E+00 0.530617E+00 0.518383E+00 0.529249E+00 0.515179E+00 0.483891E+00 0.421492E+00 0.354552E+00 0.330321E+00 0.308253E+00 0.214976E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.381098E+00 0.450617E+00 0.501470E+00 0.523001E+00 0.530597E+00 0.525256E+00 0.510178E+00 0.506300E+00 0.486992E+00 0.471067E+00 0.413058E+00 0.349205E+00 0.325475E+00 0.287836E+00 0.231540E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.374030E+00 0.447723E+00 0.477980E+00 0.513506E+00 0.522933E+00 0.510782E+00 0.505177E+00 0.489261E+00 0.460044E+00 0.450865E+00 0.398054E+00 0.342280E+00 0.321207E+00 0.307686E+00 0.297759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.362966E+00 0.443903E+00 0.462661E+00 0.502888E+00 0.511764E+00 0.495720E+00 0.496764E+00 0.477215E+00 0.445194E+00 0.411956E+00 0.358646E+00 0.327616E+00 0.313315E+00 0.304088E+00 0.295588E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349638E+00 0.434396E+00 0.452707E+00 0.485039E+00 0.487974E+00 0.488185E+00 0.480020E+00 0.450312E+00 0.432228E+00 0.384130E+00 0.330803E+00 0.315281E+00 0.304664E+00 0.297647E+00 0.287345E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.335855E+00 0.423049E+00 0.445078E+00 0.464305E+00 0.465928E+00 0.477054E+00 0.464416E+00 0.431953E+00 0.420448E+00 0.376679E+00 0.327846E+00 0.311994E+00 0.301665E+00 0.294927E+00 0.272758E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313546E+00 0.409281E+00 0.436963E+00 0.448343E+00 0.449195E+00 0.452239E+00 0.429169E+00 0.417693E+00 0.389977E+00 0.341259E+00 0.316304E+00 0.304856E+00 0.297226E+00 0.291999E+00 0.100816E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311735E+00 0.386864E+00 0.422986E+00 0.426362E+00 0.428910E+00 0.421215E+00 0.396356E+00 0.393301E+00 0.358610E+00 0.311883E+00 0.301005E+00 0.294655E+00 0.289993E+00 0.285856E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311641E+00 0.362209E+00 0.401880E+00 0.406543E+00 0.411111E+00 0.401796E+00 0.377003E+00 0.370598E+00 0.338709E+00 0.299403E+00 0.292057E+00 0.288922E+00 0.286446E+00 0.283769E+00 0.265370E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313250E+00 0.351203E+00 0.366863E+00 0.381750E+00 0.383663E+00 0.367988E+00 0.363867E+00 0.345855E+00 0.304332E+00 0.291475E+00 0.287555E+00 0.284894E+00 0.282302E+00 0.278058E+00 0.273153E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314313E+00 0.342419E+00 0.349752E+00 0.355015E+00 0.353080E+00 0.339816E+00 0.343379E+00 0.327488E+00 0.288024E+00 0.283091E+00 0.280934E+00 0.279645E+00 0.277564E+00 0.273515E+00 0.260579E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306810E+00 0.321411E+00 0.338941E+00 0.339539E+00 0.335010E+00 0.319728E+00 0.321938E+00 0.305048E+00 0.268090E+00 0.266355E+00 0.266686E+00 0.266837E+00 0.265401E+00 0.263567E+00 0.884418E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.275092E+00 0.288629E+00 0.314725E+00 0.321300E+00 0.310811E+00 0.312617E+00 0.314339E+00 0.297642E+00 0.262199E+00 0.261642E+00 0.260658E+00 0.261139E+00 0.260571E+00 0.257693E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.243919E+00 0.268106E+00 0.277450E+00 0.291476E+00 0.293640E+00 0.305824E+00 0.299404E+00 0.261634E+00 0.255165E+00 0.254341E+00 0.247262E+00 0.249373E+00 0.248428E+00 0.245017E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214621E+00 0.247514E+00 0.257245E+00 0.257815E+00 0.263504E+00 0.271050E+00 0.272634E+00 0.244165E+00 0.241721E+00 0.239247E+00 0.112217E+00 0.207508E+00 0.220118E+00 0.222795E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.709318E-03 0.174289E+00 0.207273E+00 0.216413E+00 0.227515E+00 0.236409E+00 0.233054E+00 0.208306E+00 0.210155E+00 0.119608E+00 -0.900000E+01 0.259605E-03 0.146285E+00 0.117454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.424337E+00 0.470713E+00 0.499772E+00 0.511959E+00 0.504522E+00 0.513684E+00 0.501419E+00 0.503924E+00 0.480992E+00 0.449244E+00 0.435345E+00 0.371066E+00 0.300610E+00 0.262122E+00 0.236428E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.480591E+00 0.542144E+00 0.571726E+00 0.583301E+00 0.576268E+00 0.596180E+00 0.583276E+00 0.589698E+00 0.568998E+00 0.539602E+00 0.536801E+00 0.454826E+00 0.367007E+00 0.338365E+00 0.322098E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.471928E+00 0.540627E+00 0.569958E+00 0.580711E+00 0.573809E+00 0.596067E+00 0.586529E+00 0.589898E+00 0.571325E+00 0.541306E+00 0.538030E+00 0.456385E+00 0.368660E+00 0.341308E+00 0.326286E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.462354E+00 0.538998E+00 0.567970E+00 0.577968E+00 0.571103E+00 0.602410E+00 0.611522E+00 0.593583E+00 0.574475E+00 0.542957E+00 0.538008E+00 0.458417E+00 0.371333E+00 0.346838E+00 0.333632E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452673E+00 0.537252E+00 0.566108E+00 0.575568E+00 0.572555E+00 0.602279E+00 0.612404E+00 0.595154E+00 0.579358E+00 0.547304E+00 0.537371E+00 0.462724E+00 0.379431E+00 0.360079E+00 0.351721E+00 0.337771E+00 -0.900000E+01 -0.900000E+01 + 0.442099E+00 0.535041E+00 0.563688E+00 0.574970E+00 0.583283E+00 0.602959E+00 0.612990E+00 0.594526E+00 0.598953E+00 0.572402E+00 0.543010E+00 0.487043E+00 0.429261E+00 0.415939E+00 0.409562E+00 0.398680E+00 -0.900000E+01 -0.900000E+01 + 0.431608E+00 0.532765E+00 0.560471E+00 0.571576E+00 0.581398E+00 0.602046E+00 0.612218E+00 0.592311E+00 0.595893E+00 0.568974E+00 0.540330E+00 0.538681E+00 0.535333E+00 0.530774E+00 0.525098E+00 0.514155E+00 -0.900000E+01 -0.900000E+01 + 0.420985E+00 0.530326E+00 0.556714E+00 0.567944E+00 0.578840E+00 0.599859E+00 0.611060E+00 0.589547E+00 0.590657E+00 0.562526E+00 0.534263E+00 0.532721E+00 0.532021E+00 0.532193E+00 0.529636E+00 0.520732E+00 -0.900000E+01 -0.900000E+01 + 0.413568E+00 0.527304E+00 0.553317E+00 0.564471E+00 0.575831E+00 0.595669E+00 0.612389E+00 0.592817E+00 0.584740E+00 0.555098E+00 0.525792E+00 0.522583E+00 0.520632E+00 0.519234E+00 0.515303E+00 0.502616E+00 -0.900000E+01 -0.900000E+01 + 0.408779E+00 0.522172E+00 0.550135E+00 0.560581E+00 0.571665E+00 0.589765E+00 0.617594E+00 0.607379E+00 0.581652E+00 0.548804E+00 0.517094E+00 0.509313E+00 0.503449E+00 0.498744E+00 0.491931E+00 0.461966E+00 -0.900000E+01 -0.900000E+01 + 0.404372E+00 0.514592E+00 0.547434E+00 0.556758E+00 0.567665E+00 0.582855E+00 0.612530E+00 0.604390E+00 0.578457E+00 0.543454E+00 0.508163E+00 0.493894E+00 0.484223E+00 0.479369E+00 0.474665E+00 0.214542E+00 -0.900000E+01 -0.900000E+01 + 0.400373E+00 0.502964E+00 0.544600E+00 0.552271E+00 0.562440E+00 0.575388E+00 0.604587E+00 0.600507E+00 0.576378E+00 0.539136E+00 0.499946E+00 0.466041E+00 0.444540E+00 0.435917E+00 0.424500E+00 0.359311E-01 -0.900000E+01 -0.900000E+01 + 0.396863E+00 0.490386E+00 0.541020E+00 0.548053E+00 0.552708E+00 0.567355E+00 0.590598E+00 0.587154E+00 0.574006E+00 0.535809E+00 0.495107E+00 0.424384E+00 0.358698E+00 0.336813E+00 0.306975E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393777E+00 0.477759E+00 0.537596E+00 0.543564E+00 0.539690E+00 0.558144E+00 0.571803E+00 0.564868E+00 0.568082E+00 0.531039E+00 0.489820E+00 0.418907E+00 0.354191E+00 0.328267E+00 0.206065E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391347E+00 0.465805E+00 0.533792E+00 0.541360E+00 0.536274E+00 0.549366E+00 0.557700E+00 0.555949E+00 0.560233E+00 0.525225E+00 0.483549E+00 0.414024E+00 0.352207E+00 0.325051E+00 0.206866E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388737E+00 0.455213E+00 0.527107E+00 0.533555E+00 0.533441E+00 0.537635E+00 0.535618E+00 0.542365E+00 0.539967E+00 0.506794E+00 0.455441E+00 0.389340E+00 0.344474E+00 0.320829E+00 0.209254E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385202E+00 0.452188E+00 0.515263E+00 0.524222E+00 0.531648E+00 0.527181E+00 0.515123E+00 0.525795E+00 0.515254E+00 0.485360E+00 0.422054E+00 0.354361E+00 0.330209E+00 0.308318E+00 0.214853E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.379026E+00 0.449981E+00 0.496513E+00 0.518681E+00 0.528616E+00 0.524584E+00 0.511136E+00 0.507716E+00 0.487513E+00 0.471412E+00 0.412807E+00 0.348593E+00 0.325084E+00 0.287788E+00 0.231404E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368738E+00 0.446417E+00 0.477176E+00 0.510297E+00 0.521000E+00 0.509955E+00 0.504877E+00 0.487594E+00 0.457785E+00 0.448413E+00 0.396080E+00 0.341182E+00 0.320550E+00 0.307362E+00 0.297642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354757E+00 0.441884E+00 0.460772E+00 0.500392E+00 0.510425E+00 0.495024E+00 0.495960E+00 0.476123E+00 0.443630E+00 0.410156E+00 0.357215E+00 0.326803E+00 0.312860E+00 0.303884E+00 0.295475E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341013E+00 0.431484E+00 0.451353E+00 0.484724E+00 0.488116E+00 0.488154E+00 0.479429E+00 0.449735E+00 0.431685E+00 0.383504E+00 0.330368E+00 0.315059E+00 0.304532E+00 0.297583E+00 0.287294E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327327E+00 0.420392E+00 0.444285E+00 0.465315E+00 0.466883E+00 0.477587E+00 0.464354E+00 0.431825E+00 0.420601E+00 0.376795E+00 0.327901E+00 0.312041E+00 0.301910E+00 0.295328E+00 0.272995E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311885E+00 0.407056E+00 0.437290E+00 0.449581E+00 0.451612E+00 0.454112E+00 0.430048E+00 0.418634E+00 0.390862E+00 0.341519E+00 0.316615E+00 0.305165E+00 0.297499E+00 0.292315E+00 0.100184E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310058E+00 0.388913E+00 0.424790E+00 0.428444E+00 0.431601E+00 0.424690E+00 0.398455E+00 0.394982E+00 0.359787E+00 0.312453E+00 0.301902E+00 0.294977E+00 0.290053E+00 0.286100E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309772E+00 0.365570E+00 0.403406E+00 0.409175E+00 0.414226E+00 0.404930E+00 0.378629E+00 0.371909E+00 0.339768E+00 0.299988E+00 0.292305E+00 0.289189E+00 0.286522E+00 0.283555E+00 0.265476E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311101E+00 0.353509E+00 0.373527E+00 0.386416E+00 0.388246E+00 0.369862E+00 0.364874E+00 0.346416E+00 0.304671E+00 0.291560E+00 0.287518E+00 0.285084E+00 0.282451E+00 0.278180E+00 0.273391E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311209E+00 0.344079E+00 0.352379E+00 0.358963E+00 0.356462E+00 0.341293E+00 0.345070E+00 0.327450E+00 0.287635E+00 0.282385E+00 0.280485E+00 0.279383E+00 0.277558E+00 0.273730E+00 0.260383E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.301146E+00 0.317623E+00 0.337788E+00 0.339787E+00 0.334187E+00 0.320043E+00 0.322762E+00 0.306035E+00 0.268943E+00 0.266872E+00 0.267221E+00 0.267415E+00 0.266560E+00 0.264372E+00 0.850579E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270615E+00 0.289344E+00 0.313622E+00 0.320138E+00 0.310760E+00 0.314121E+00 0.316191E+00 0.299199E+00 0.263389E+00 0.262723E+00 0.261606E+00 0.261918E+00 0.261289E+00 0.258802E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242793E+00 0.268568E+00 0.278444E+00 0.285864E+00 0.289349E+00 0.304144E+00 0.299263E+00 0.261734E+00 0.255451E+00 0.254710E+00 0.247568E+00 0.249881E+00 0.248976E+00 0.245691E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214380E+00 0.249174E+00 0.261623E+00 0.261057E+00 0.263397E+00 0.270953E+00 0.271975E+00 0.244335E+00 0.241970E+00 0.239516E+00 0.112756E+00 0.207925E+00 0.220614E+00 0.223188E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.717604E-03 0.187473E+00 0.221203E+00 0.230480E+00 0.240673E+00 0.246658E+00 0.242213E+00 0.217682E+00 0.217739E+00 0.123602E+00 -0.900000E+01 0.186696E-03 0.151427E+00 0.120874E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413270E+00 0.464341E+00 0.494292E+00 0.508113E+00 0.500483E+00 0.509546E+00 0.499014E+00 0.502270E+00 0.478900E+00 0.447379E+00 0.434077E+00 0.369900E+00 0.299736E+00 0.261697E+00 0.236227E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469096E+00 0.537096E+00 0.566299E+00 0.578613E+00 0.571280E+00 0.591367E+00 0.580970E+00 0.587928E+00 0.565775E+00 0.537280E+00 0.535819E+00 0.453688E+00 0.366522E+00 0.338218E+00 0.322084E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.460207E+00 0.535412E+00 0.564003E+00 0.575092E+00 0.567627E+00 0.591689E+00 0.584194E+00 0.587347E+00 0.567056E+00 0.537939E+00 0.536025E+00 0.454751E+00 0.368023E+00 0.341098E+00 0.326239E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.450876E+00 0.533609E+00 0.561600E+00 0.571777E+00 0.566774E+00 0.598266E+00 0.609064E+00 0.589709E+00 0.569032E+00 0.538162E+00 0.535767E+00 0.456398E+00 0.370567E+00 0.346590E+00 0.333636E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441371E+00 0.531785E+00 0.559226E+00 0.569028E+00 0.568385E+00 0.597511E+00 0.609551E+00 0.590071E+00 0.572999E+00 0.540767E+00 0.533286E+00 0.459754E+00 0.378504E+00 0.359724E+00 0.351660E+00 0.337776E+00 -0.900000E+01 -0.900000E+01 + 0.431400E+00 0.529603E+00 0.557043E+00 0.568483E+00 0.578790E+00 0.597306E+00 0.609667E+00 0.588787E+00 0.591877E+00 0.562788E+00 0.535859E+00 0.482034E+00 0.427357E+00 0.414909E+00 0.409022E+00 0.398174E+00 -0.900000E+01 -0.900000E+01 + 0.421848E+00 0.527009E+00 0.554317E+00 0.565430E+00 0.576652E+00 0.595505E+00 0.608734E+00 0.586646E+00 0.587311E+00 0.557436E+00 0.530849E+00 0.531346E+00 0.529948E+00 0.526655E+00 0.522293E+00 0.511082E+00 -0.900000E+01 -0.900000E+01 + 0.416595E+00 0.523212E+00 0.551351E+00 0.562195E+00 0.573675E+00 0.592442E+00 0.607305E+00 0.584597E+00 0.581735E+00 0.550105E+00 0.522059E+00 0.522580E+00 0.524113E+00 0.525447E+00 0.523389E+00 0.514417E+00 -0.900000E+01 -0.900000E+01 + 0.412202E+00 0.517346E+00 0.549010E+00 0.558498E+00 0.570318E+00 0.587771E+00 0.608343E+00 0.588908E+00 0.577614E+00 0.544667E+00 0.514043E+00 0.511753E+00 0.511273E+00 0.510487E+00 0.506581E+00 0.493896E+00 -0.900000E+01 -0.900000E+01 + 0.407732E+00 0.508711E+00 0.546014E+00 0.554959E+00 0.566401E+00 0.582022E+00 0.612895E+00 0.604627E+00 0.576647E+00 0.541349E+00 0.507552E+00 0.500982E+00 0.495184E+00 0.490602E+00 0.484298E+00 0.455853E+00 -0.900000E+01 -0.900000E+01 + 0.403585E+00 0.498554E+00 0.543856E+00 0.552217E+00 0.562721E+00 0.575506E+00 0.607175E+00 0.602468E+00 0.575763E+00 0.538792E+00 0.502059E+00 0.488742E+00 0.479739E+00 0.475680E+00 0.471849E+00 0.214664E+00 -0.900000E+01 -0.900000E+01 + 0.399881E+00 0.487305E+00 0.541094E+00 0.548505E+00 0.558076E+00 0.568926E+00 0.598461E+00 0.598091E+00 0.574787E+00 0.536589E+00 0.496916E+00 0.463129E+00 0.442073E+00 0.434164E+00 0.423239E+00 0.359782E-01 -0.900000E+01 -0.900000E+01 + 0.396712E+00 0.477016E+00 0.538153E+00 0.544521E+00 0.548613E+00 0.561762E+00 0.583973E+00 0.584210E+00 0.572333E+00 0.533974E+00 0.493587E+00 0.422769E+00 0.358024E+00 0.336391E+00 0.306813E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393889E+00 0.467102E+00 0.535159E+00 0.541262E+00 0.536996E+00 0.554255E+00 0.565493E+00 0.561154E+00 0.565736E+00 0.529625E+00 0.488997E+00 0.418060E+00 0.353814E+00 0.327890E+00 0.206034E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391504E+00 0.458399E+00 0.531298E+00 0.540473E+00 0.534569E+00 0.546155E+00 0.551498E+00 0.550956E+00 0.557932E+00 0.524467E+00 0.483434E+00 0.413716E+00 0.351967E+00 0.324818E+00 0.206887E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388419E+00 0.455265E+00 0.524026E+00 0.533464E+00 0.532552E+00 0.535079E+00 0.530398E+00 0.537484E+00 0.538897E+00 0.508011E+00 0.456118E+00 0.389321E+00 0.344308E+00 0.320765E+00 0.209185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.383583E+00 0.452030E+00 0.510973E+00 0.522912E+00 0.530925E+00 0.525812E+00 0.514321E+00 0.524789E+00 0.515409E+00 0.486206E+00 0.422551E+00 0.354177E+00 0.330070E+00 0.308353E+00 0.214769E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.374863E+00 0.449655E+00 0.495831E+00 0.518526E+00 0.528866E+00 0.525826E+00 0.510954E+00 0.504606E+00 0.484992E+00 0.468777E+00 0.411067E+00 0.347740E+00 0.324616E+00 0.287755E+00 0.231297E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361689E+00 0.445179E+00 0.475926E+00 0.510130E+00 0.520250E+00 0.509222E+00 0.503649E+00 0.485497E+00 0.455727E+00 0.446058E+00 0.394635E+00 0.340398E+00 0.320090E+00 0.307155E+00 0.297605E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346621E+00 0.440273E+00 0.459645E+00 0.499816E+00 0.510011E+00 0.494390E+00 0.494943E+00 0.475250E+00 0.442666E+00 0.409300E+00 0.356588E+00 0.326415E+00 0.312669E+00 0.303851E+00 0.295538E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.333167E+00 0.430112E+00 0.450585E+00 0.485227E+00 0.488122E+00 0.487912E+00 0.478704E+00 0.449240E+00 0.431488E+00 0.383592E+00 0.330438E+00 0.315096E+00 0.304683E+00 0.297818E+00 0.287482E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320108E+00 0.419120E+00 0.443598E+00 0.466151E+00 0.468036E+00 0.477904E+00 0.464698E+00 0.431858E+00 0.420958E+00 0.376991E+00 0.328002E+00 0.312215E+00 0.302178E+00 0.295754E+00 0.273347E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311958E+00 0.405695E+00 0.437217E+00 0.450411E+00 0.454200E+00 0.455995E+00 0.431399E+00 0.419966E+00 0.392124E+00 0.342170E+00 0.317397E+00 0.305860E+00 0.298252E+00 0.293307E+00 0.100875E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309844E+00 0.387231E+00 0.424319E+00 0.429496E+00 0.433813E+00 0.428295E+00 0.400940E+00 0.397728E+00 0.362784E+00 0.314686E+00 0.303803E+00 0.296238E+00 0.290895E+00 0.286872E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309052E+00 0.370786E+00 0.405722E+00 0.411832E+00 0.416716E+00 0.406166E+00 0.379856E+00 0.373482E+00 0.342073E+00 0.301666E+00 0.293554E+00 0.290100E+00 0.287152E+00 0.284165E+00 0.266019E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309366E+00 0.356023E+00 0.379352E+00 0.391632E+00 0.392825E+00 0.372713E+00 0.366632E+00 0.347746E+00 0.305598E+00 0.292288E+00 0.288124E+00 0.285741E+00 0.282755E+00 0.278682E+00 0.273857E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307366E+00 0.344360E+00 0.355138E+00 0.364719E+00 0.363703E+00 0.346966E+00 0.349213E+00 0.331187E+00 0.289970E+00 0.284175E+00 0.281622E+00 0.280198E+00 0.277916E+00 0.274182E+00 0.260252E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.295140E+00 0.315614E+00 0.336797E+00 0.340189E+00 0.335405E+00 0.322495E+00 0.325546E+00 0.308436E+00 0.270859E+00 0.268231E+00 0.268186E+00 0.268075E+00 0.267145E+00 0.265406E+00 0.860471E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267414E+00 0.291654E+00 0.312510E+00 0.321050E+00 0.313215E+00 0.316502E+00 0.318219E+00 0.300951E+00 0.265017E+00 0.263950E+00 0.262591E+00 0.262722E+00 0.261939E+00 0.259925E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244492E+00 0.270488E+00 0.278889E+00 0.285881E+00 0.288375E+00 0.304166E+00 0.299672E+00 0.262127E+00 0.256003E+00 0.255284E+00 0.247916E+00 0.250291E+00 0.249417E+00 0.246333E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.218029E+00 0.255007E+00 0.267541E+00 0.262031E+00 0.264590E+00 0.272805E+00 0.274246E+00 0.246143E+00 0.243086E+00 0.240241E+00 0.113101E+00 0.208236E+00 0.220874E+00 0.223475E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.715096E-03 0.197065E+00 0.230746E+00 0.238686E+00 0.248383E+00 0.254241E+00 0.248693E+00 0.221844E+00 0.221769E+00 0.125499E+00 -0.900000E+01 0.148743E-03 0.158828E+00 0.124966E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 diff --git a/cases/breakwaters/ob2_upd/results/PDIR_ob_example.dat b/cases/breakwaters/ob2_upd/results/PDIR_ob_example.dat new file mode 100644 index 000000000..5cac2f8c0 --- /dev/null +++ b/cases/breakwaters/ob2_upd/results/PDIR_ob_example.dat @@ -0,0 +1,1536 @@ + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.185000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.185000E+03 0.205000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.175000E+03 0.245000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.195000E+03 0.205000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.195000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.245000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.245000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.225000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.150000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.265000E+03 0.275000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.255000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.285000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.295000E+03 0.295000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.295000E+03 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.225000E+03 0.225000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.285000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.255000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.275000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.295000E+03 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.225000E+03 0.225000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.255000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.295000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.235000E+03 0.205000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 0.500000E+01 0.295000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.145000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.145000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.145000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.245000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.235000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.185000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.155000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.185000E+03 0.185000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.185000E+03 0.185000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.275000E+03 0.185000E+03 0.195000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.185000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.155000E+03 0.155000E+03 0.155000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.275000E+03 0.195000E+03 0.195000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.850000E+02 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.225000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.155000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.225000E+03 0.255000E+03 0.275000E+03 0.195000E+03 0.195000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.205000E+03 0.205000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.225000E+03 0.265000E+03 0.275000E+03 0.195000E+03 0.205000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.195000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.205000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.185000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.215000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.215000E+03 0.215000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.165000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.175000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.275000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.205000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.215000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.265000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.225000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 0.500000E+01 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 diff --git a/cases/breakwaters/ob2_upd/results/RTP_ob_example.dat b/cases/breakwaters/ob2_upd/results/RTP_ob_example.dat new file mode 100644 index 000000000..f3c2562aa --- /dev/null +++ b/cases/breakwaters/ob2_upd/results/RTP_ob_example.dat @@ -0,0 +1,1536 @@ + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.231360E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 0.112730E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.143259E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 0.112730E+01 0.112730E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.205233E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.127081E+01 0.143259E+01 0.143259E+01 0.143259E+01 0.161497E+01 0.143259E+01 0.143259E+01 0.143259E+01 0.143259E+01 -0.900000E+01 0.127081E+01 0.112730E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.143259E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.143259E+01 0.182056E+01 -0.900000E+01 0.127081E+01 0.112730E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.161497E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 0.127081E+01 0.143259E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.143259E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.143259E+01 0.143259E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.112730E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 0.260813E+01 0.205233E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.112730E+01 0.143259E+01 0.161497E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.112730E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.231360E+01 0.182056E+01 0.161497E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.231360E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.999999E+00 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.231360E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.999999E+00 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.143259E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.127081E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.999999E+00 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.127081E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.127081E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.127081E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 0.127081E+01 0.127081E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.143259E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.127081E+01 0.127081E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 0.127081E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.205233E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.112730E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.143259E+01 0.143259E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.143259E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.999999E+00 0.999999E+00 0.999999E+00 0.999999E+00 0.112730E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.999999E+00 -0.900000E+01 0.331445E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.999999E+00 0.999999E+00 0.112730E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.112730E+01 -0.900000E+01 0.331445E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.205233E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.999999E+00 0.112730E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.112730E+01 -0.900000E+01 0.331445E+01 0.999999E+00 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.999999E+00 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 -0.900000E+01 0.331445E+01 0.999999E+00 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.127081E+01 0.127081E+01 0.143259E+01 0.143259E+01 0.143259E+01 0.143259E+01 0.143259E+01 0.143259E+01 0.143259E+01 -0.900000E+01 0.112730E+01 0.999999E+00 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.127081E+01 0.143259E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.205233E+01 -0.900000E+01 0.112730E+01 0.112730E+01 0.112730E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.161497E+01 0.161497E+01 0.205233E+01 -0.900000E+01 0.112730E+01 0.127081E+01 0.127081E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.127081E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.331445E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.127081E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.143259E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.373640E+01 0.373640E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 0.143259E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 diff --git a/cases/breakwaters/ob2_upd/results_old(crashed)/HSig_ob_example.dat b/cases/breakwaters/ob2_upd/results_old(crashed)/HSig_ob_example.dat new file mode 100644 index 000000000..466fffa56 --- /dev/null +++ b/cases/breakwaters/ob2_upd/results_old(crashed)/HSig_ob_example.dat @@ -0,0 +1,1536 @@ + 0.466570E+00 0.498728E+00 0.507953E+00 0.507395E+00 0.492782E+00 0.484994E+00 0.459422E+00 0.451748E+00 0.423708E+00 0.389031E+00 0.375011E+00 0.315916E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.527604E+00 0.559925E+00 0.568091E+00 0.566632E+00 0.551165E+00 0.543681E+00 0.517740E+00 0.509899E+00 0.482605E+00 0.446952E+00 0.438169E+00 0.376325E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.523938E+00 0.557096E+00 0.565879E+00 0.565049E+00 0.549408E+00 0.548058E+00 0.534833E+00 0.509641E+00 0.483389E+00 0.447288E+00 0.437530E+00 0.375282E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.525095E+00 0.553961E+00 0.563704E+00 0.563338E+00 0.549261E+00 0.544832E+00 0.532908E+00 0.508605E+00 0.486473E+00 0.450734E+00 0.437070E+00 0.374024E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.520861E+00 0.549876E+00 0.560846E+00 0.563155E+00 0.558602E+00 0.542715E+00 0.531453E+00 0.507806E+00 0.503141E+00 0.471443E+00 0.439418E+00 0.375741E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.515202E+00 0.545065E+00 0.558842E+00 0.560726E+00 0.556221E+00 0.539932E+00 0.531677E+00 0.510043E+00 0.500825E+00 0.470468E+00 0.440032E+00 0.388597E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.507634E+00 0.538249E+00 0.555074E+00 0.557804E+00 0.553608E+00 0.537444E+00 0.537053E+00 0.522374E+00 0.499579E+00 0.469886E+00 0.439497E+00 0.429688E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496958E+00 0.529923E+00 0.550520E+00 0.554215E+00 0.550379E+00 0.534721E+00 0.534364E+00 0.519197E+00 0.496984E+00 0.468013E+00 0.438043E+00 0.428414E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.483714E+00 0.518624E+00 0.544156E+00 0.548997E+00 0.545569E+00 0.530935E+00 0.529895E+00 0.514608E+00 0.493536E+00 0.465557E+00 0.435858E+00 0.425678E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470875E+00 0.502409E+00 0.534780E+00 0.541859E+00 0.539619E+00 0.526041E+00 0.523034E+00 0.508992E+00 0.489070E+00 0.462207E+00 0.432567E+00 0.421039E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.459423E+00 0.486924E+00 0.519871E+00 0.531797E+00 0.531036E+00 0.518097E+00 0.514150E+00 0.501439E+00 0.483618E+00 0.457383E+00 0.427146E+00 0.410783E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.447489E+00 0.473324E+00 0.503273E+00 0.517208E+00 0.518303E+00 0.506260E+00 0.502553E+00 0.491644E+00 0.475710E+00 0.449633E+00 0.418530E+00 0.383361E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434765E+00 0.461768E+00 0.488103E+00 0.500867E+00 0.500263E+00 0.492086E+00 0.486587E+00 0.475564E+00 0.464281E+00 0.438238E+00 0.408082E+00 0.350558E+00 0.183138E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420798E+00 0.453343E+00 0.475194E+00 0.485660E+00 0.480663E+00 0.478040E+00 0.469274E+00 0.455086E+00 0.450501E+00 0.424149E+00 0.395146E+00 0.340923E+00 0.111471E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.407181E+00 0.446554E+00 0.464806E+00 0.473661E+00 0.469474E+00 0.464104E+00 0.452211E+00 0.444529E+00 0.431137E+00 0.403832E+00 0.381939E+00 0.330828E+00 0.110302E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391300E+00 0.437410E+00 0.456391E+00 0.460000E+00 0.459952E+00 0.452612E+00 0.435768E+00 0.434578E+00 0.410981E+00 0.382373E+00 0.356415E+00 0.308600E+00 0.107466E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.376673E+00 0.418152E+00 0.449180E+00 0.447316E+00 0.451733E+00 0.445145E+00 0.429392E+00 0.425084E+00 0.402073E+00 0.375169E+00 0.330461E+00 0.267403E+00 0.244100E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.362931E+00 0.395749E+00 0.437970E+00 0.442014E+00 0.442631E+00 0.430875E+00 0.422692E+00 0.410842E+00 0.384706E+00 0.369556E+00 0.325425E+00 0.270552E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.350083E+00 0.376427E+00 0.422273E+00 0.437949E+00 0.435867E+00 0.418985E+00 0.418189E+00 0.400134E+00 0.370799E+00 0.362838E+00 0.316992E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337935E+00 0.362017E+00 0.405674E+00 0.430293E+00 0.430306E+00 0.415792E+00 0.413256E+00 0.396223E+00 0.368786E+00 0.341213E+00 0.298169E+00 0.160374E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.319821E+00 0.350405E+00 0.387099E+00 0.415912E+00 0.413465E+00 0.408106E+00 0.400103E+00 0.377461E+00 0.363819E+00 0.323622E+00 0.280993E+00 0.250032E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306899E+00 0.344978E+00 0.371668E+00 0.399787E+00 0.397035E+00 0.396185E+00 0.386625E+00 0.362517E+00 0.354414E+00 0.316201E+00 0.273984E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.297524E+00 0.341513E+00 0.360687E+00 0.384525E+00 0.383800E+00 0.377659E+00 0.362698E+00 0.353568E+00 0.329322E+00 0.286198E+00 0.262097E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.288804E+00 0.334675E+00 0.352002E+00 0.361152E+00 0.367259E+00 0.361820E+00 0.346213E+00 0.343421E+00 0.312215E+00 0.268194E+00 0.235409E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.278683E+00 0.322276E+00 0.346904E+00 0.346605E+00 0.351927E+00 0.349680E+00 0.337257E+00 0.330957E+00 0.300472E+00 0.261887E+00 0.276922E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267603E+00 0.297403E+00 0.335673E+00 0.340195E+00 0.340136E+00 0.327808E+00 0.326810E+00 0.306472E+00 0.265945E+00 0.250767E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.256884E+00 0.277757E+00 0.326978E+00 0.336782E+00 0.335228E+00 0.317510E+00 0.318089E+00 0.295292E+00 0.252315E+00 0.243196E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244699E+00 0.269523E+00 0.304131E+00 0.327939E+00 0.328731E+00 0.312310E+00 0.311501E+00 0.289425E+00 0.247159E+00 0.237699E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233232E+00 0.260208E+00 0.279381E+00 0.295406E+00 0.294810E+00 0.297456E+00 0.297872E+00 0.276998E+00 0.237289E+00 0.228557E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214856E+00 0.229012E+00 0.264041E+00 0.272310E+00 0.266070E+00 0.268632E+00 0.269994E+00 0.256008E+00 0.223738E+00 0.217726E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183929E+00 0.202966E+00 0.222834E+00 0.231736E+00 0.235509E+00 0.239039E+00 0.242375E+00 0.231930E+00 0.204501E+00 0.197750E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.101785E-02 0.701803E-01 0.664021E-01 0.586804E-01 0.564976E-01 0.590487E-01 0.629694E-01 0.788542E-01 0.867816E-01 0.731754E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470073E+00 0.505704E+00 0.518310E+00 0.519307E+00 0.505909E+00 0.498000E+00 0.472558E+00 0.463418E+00 0.435049E+00 0.404878E+00 0.390865E+00 0.332176E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.531519E+00 0.567674E+00 0.579422E+00 0.580190E+00 0.565958E+00 0.558300E+00 0.532748E+00 0.523646E+00 0.496202E+00 0.468507E+00 0.460848E+00 0.396459E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.526377E+00 0.564577E+00 0.576042E+00 0.576808E+00 0.562646E+00 0.561790E+00 0.549072E+00 0.522651E+00 0.496166E+00 0.465993E+00 0.458153E+00 0.394759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.525454E+00 0.561399E+00 0.573165E+00 0.574028E+00 0.561126E+00 0.557963E+00 0.546903E+00 0.521512E+00 0.498604E+00 0.465668E+00 0.454376E+00 0.392189E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.518759E+00 0.556982E+00 0.569778E+00 0.572947E+00 0.569490E+00 0.555142E+00 0.544991E+00 0.520050E+00 0.515214E+00 0.482901E+00 0.454249E+00 0.392991E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.510025E+00 0.550945E+00 0.566114E+00 0.569891E+00 0.566066E+00 0.551771E+00 0.544437E+00 0.521505E+00 0.512538E+00 0.481355E+00 0.453356E+00 0.404226E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.495001E+00 0.541769E+00 0.561714E+00 0.566685E+00 0.562581E+00 0.548363E+00 0.548740E+00 0.534050E+00 0.511591E+00 0.480137E+00 0.450699E+00 0.439903E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.478436E+00 0.526890E+00 0.555960E+00 0.563077E+00 0.558605E+00 0.545036E+00 0.545555E+00 0.531391E+00 0.509798E+00 0.478487E+00 0.447891E+00 0.436230E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464688E+00 0.508338E+00 0.546790E+00 0.558671E+00 0.555068E+00 0.541501E+00 0.542624E+00 0.528694E+00 0.507334E+00 0.476803E+00 0.444618E+00 0.432856E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454367E+00 0.489561E+00 0.532890E+00 0.552365E+00 0.551356E+00 0.539011E+00 0.539430E+00 0.525400E+00 0.504471E+00 0.475079E+00 0.441263E+00 0.429925E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.446251E+00 0.473431E+00 0.514741E+00 0.541638E+00 0.545334E+00 0.534554E+00 0.534396E+00 0.520922E+00 0.501592E+00 0.472645E+00 0.438102E+00 0.423188E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439347E+00 0.460963E+00 0.495730E+00 0.525478E+00 0.534642E+00 0.526629E+00 0.525619E+00 0.514040E+00 0.496467E+00 0.468147E+00 0.433864E+00 0.397295E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430297E+00 0.451629E+00 0.480418E+00 0.506145E+00 0.515417E+00 0.513525E+00 0.510513E+00 0.498678E+00 0.486960E+00 0.459379E+00 0.426703E+00 0.363377E+00 0.186453E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418919E+00 0.444691E+00 0.468662E+00 0.487710E+00 0.491962E+00 0.496469E+00 0.491160E+00 0.476421E+00 0.472172E+00 0.445110E+00 0.414236E+00 0.355367E+00 0.113741E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.408122E+00 0.440593E+00 0.459239E+00 0.473903E+00 0.476111E+00 0.478457E+00 0.471821E+00 0.462723E+00 0.450228E+00 0.421758E+00 0.398460E+00 0.343929E+00 0.112316E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395471E+00 0.438024E+00 0.451551E+00 0.458735E+00 0.463317E+00 0.464639E+00 0.452700E+00 0.448286E+00 0.426258E+00 0.397202E+00 0.368401E+00 0.318491E+00 0.109189E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384672E+00 0.432536E+00 0.445421E+00 0.445607E+00 0.454925E+00 0.454617E+00 0.440044E+00 0.434148E+00 0.412743E+00 0.385919E+00 0.338643E+00 0.275278E+00 0.289540E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375923E+00 0.419545E+00 0.438251E+00 0.438975E+00 0.444395E+00 0.437426E+00 0.428848E+00 0.415628E+00 0.392488E+00 0.376967E+00 0.330165E+00 0.338275E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.365303E+00 0.397284E+00 0.429955E+00 0.434248E+00 0.435165E+00 0.421525E+00 0.418939E+00 0.400353E+00 0.375459E+00 0.367154E+00 0.320256E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353116E+00 0.377745E+00 0.422234E+00 0.432161E+00 0.430187E+00 0.415941E+00 0.412568E+00 0.395177E+00 0.369918E+00 0.343402E+00 0.300685E+00 0.161956E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337445E+00 0.361420E+00 0.407264E+00 0.426386E+00 0.420151E+00 0.413880E+00 0.403233E+00 0.378276E+00 0.365115E+00 0.325813E+00 0.283205E+00 0.274052E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323566E+00 0.349881E+00 0.387571E+00 0.416464E+00 0.410598E+00 0.410421E+00 0.395928E+00 0.367480E+00 0.360082E+00 0.320550E+00 0.278919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312076E+00 0.344802E+00 0.369097E+00 0.402802E+00 0.402439E+00 0.397173E+00 0.376527E+00 0.364293E+00 0.336678E+00 0.293555E+00 0.268564E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.302839E+00 0.340694E+00 0.357154E+00 0.376198E+00 0.387043E+00 0.383409E+00 0.363032E+00 0.358395E+00 0.322610E+00 0.276962E+00 0.243705E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294852E+00 0.335673E+00 0.349751E+00 0.353142E+00 0.366363E+00 0.368180E+00 0.354318E+00 0.348166E+00 0.314130E+00 0.271442E+00 0.335040E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.284126E+00 0.320089E+00 0.338144E+00 0.343017E+00 0.345914E+00 0.337650E+00 0.340543E+00 0.320075E+00 0.275836E+00 0.259494E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272301E+00 0.287294E+00 0.330410E+00 0.337988E+00 0.336454E+00 0.321637E+00 0.323435E+00 0.301224E+00 0.258332E+00 0.250689E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.255944E+00 0.273340E+00 0.317645E+00 0.332983E+00 0.331437E+00 0.315291E+00 0.315207E+00 0.293381E+00 0.252299E+00 0.243829E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.241699E+00 0.264718E+00 0.283286E+00 0.311376E+00 0.301536E+00 0.303728E+00 0.305398E+00 0.285402E+00 0.244797E+00 0.235025E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224110E+00 0.246582E+00 0.271485E+00 0.277999E+00 0.273529E+00 0.279388E+00 0.282305E+00 0.266053E+00 0.229372E+00 0.221973E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.186994E+00 0.205341E+00 0.239816E+00 0.237868E+00 0.238267E+00 0.240959E+00 0.245580E+00 0.236218E+00 0.208847E+00 0.203058E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118888E-02 0.864073E-01 0.815590E-01 0.736562E-01 0.681781E-01 0.657397E-01 0.667344E-01 0.788968E-01 0.883549E-01 0.745897E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.458657E+00 0.500775E+00 0.519712E+00 0.523869E+00 0.512952E+00 0.505407E+00 0.479067E+00 0.470134E+00 0.446379E+00 0.419219E+00 0.405798E+00 0.342979E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.518357E+00 0.563633E+00 0.582390E+00 0.586535E+00 0.575260E+00 0.567855E+00 0.540971E+00 0.533155E+00 0.512919E+00 0.487416E+00 0.480697E+00 0.408982E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.512788E+00 0.559929E+00 0.578192E+00 0.581371E+00 0.570502E+00 0.569858E+00 0.556143E+00 0.530803E+00 0.510590E+00 0.484868E+00 0.478030E+00 0.407972E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.510224E+00 0.555562E+00 0.574117E+00 0.577497E+00 0.567807E+00 0.564513E+00 0.553316E+00 0.528385E+00 0.509401E+00 0.482447E+00 0.473831E+00 0.406537E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.497413E+00 0.549351E+00 0.569728E+00 0.575259E+00 0.575262E+00 0.560791E+00 0.551218E+00 0.525643E+00 0.522288E+00 0.495858E+00 0.473693E+00 0.408765E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.481949E+00 0.539955E+00 0.563859E+00 0.570666E+00 0.570902E+00 0.557025E+00 0.549786E+00 0.526189E+00 0.518397E+00 0.492613E+00 0.472894E+00 0.423152E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.465190E+00 0.525203E+00 0.556760E+00 0.566174E+00 0.566637E+00 0.552750E+00 0.553794E+00 0.538615E+00 0.516512E+00 0.490531E+00 0.468988E+00 0.459876E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.450213E+00 0.507384E+00 0.547390E+00 0.561381E+00 0.562266E+00 0.548996E+00 0.550231E+00 0.535769E+00 0.514090E+00 0.487366E+00 0.463450E+00 0.453215E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441145E+00 0.488694E+00 0.534244E+00 0.555589E+00 0.557848E+00 0.545345E+00 0.546852E+00 0.532872E+00 0.511492E+00 0.483674E+00 0.457603E+00 0.446324E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434646E+00 0.472370E+00 0.517699E+00 0.547572E+00 0.553897E+00 0.542580E+00 0.543496E+00 0.529885E+00 0.509143E+00 0.479680E+00 0.451098E+00 0.439092E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430090E+00 0.462130E+00 0.500922E+00 0.535992E+00 0.548354E+00 0.539394E+00 0.540110E+00 0.526964E+00 0.506358E+00 0.475770E+00 0.443937E+00 0.428074E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.426499E+00 0.454304E+00 0.488580E+00 0.521172E+00 0.539319E+00 0.534645E+00 0.535884E+00 0.523783E+00 0.503919E+00 0.473040E+00 0.438070E+00 0.401018E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421341E+00 0.448573E+00 0.479713E+00 0.506511E+00 0.523430E+00 0.526296E+00 0.526529E+00 0.513317E+00 0.500744E+00 0.470093E+00 0.433938E+00 0.368504E+00 0.188130E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.411963E+00 0.444095E+00 0.471818E+00 0.494306E+00 0.503485E+00 0.514191E+00 0.511790E+00 0.494800E+00 0.492267E+00 0.463073E+00 0.428591E+00 0.365091E+00 0.115594E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.401962E+00 0.440709E+00 0.464586E+00 0.484620E+00 0.491311E+00 0.498592E+00 0.493675E+00 0.484104E+00 0.472957E+00 0.443466E+00 0.417003E+00 0.357321E+00 0.114451E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390355E+00 0.438022E+00 0.457640E+00 0.473101E+00 0.480715E+00 0.482458E+00 0.471423E+00 0.469711E+00 0.449353E+00 0.418055E+00 0.386755E+00 0.332365E+00 0.111360E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.380976E+00 0.436864E+00 0.451578E+00 0.460109E+00 0.468782E+00 0.469495E+00 0.457432E+00 0.454070E+00 0.435288E+00 0.405796E+00 0.355842E+00 0.288534E+00 0.382782E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.369406E+00 0.432040E+00 0.443230E+00 0.449805E+00 0.455366E+00 0.450430E+00 0.443140E+00 0.433861E+00 0.411212E+00 0.392873E+00 0.345816E+00 0.469387E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360317E+00 0.418470E+00 0.436205E+00 0.441252E+00 0.443087E+00 0.432261E+00 0.429926E+00 0.415229E+00 0.388261E+00 0.377490E+00 0.331046E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354754E+00 0.400730E+00 0.432229E+00 0.435191E+00 0.435221E+00 0.423018E+00 0.418724E+00 0.404374E+00 0.377301E+00 0.350580E+00 0.307290E+00 0.164259E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346206E+00 0.381628E+00 0.424562E+00 0.429895E+00 0.420992E+00 0.414592E+00 0.404017E+00 0.382657E+00 0.368577E+00 0.329752E+00 0.288054E+00 0.352708E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.335922E+00 0.366437E+00 0.410473E+00 0.426457E+00 0.410679E+00 0.407775E+00 0.394476E+00 0.367490E+00 0.360705E+00 0.323317E+00 0.282734E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326793E+00 0.357065E+00 0.390917E+00 0.417776E+00 0.407669E+00 0.398501E+00 0.374302E+00 0.362682E+00 0.337532E+00 0.294926E+00 0.272672E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.319306E+00 0.350214E+00 0.371828E+00 0.391044E+00 0.400453E+00 0.393645E+00 0.363119E+00 0.358526E+00 0.325075E+00 0.280728E+00 0.248877E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308123E+00 0.343126E+00 0.357821E+00 0.363596E+00 0.377756E+00 0.379678E+00 0.358049E+00 0.353513E+00 0.319446E+00 0.277883E+00 0.436217E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296949E+00 0.332706E+00 0.342240E+00 0.345587E+00 0.344914E+00 0.339814E+00 0.344742E+00 0.325789E+00 0.282174E+00 0.265401E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.284662E+00 0.300773E+00 0.331527E+00 0.335778E+00 0.333330E+00 0.318964E+00 0.324675E+00 0.306833E+00 0.262989E+00 0.255141E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263353E+00 0.278098E+00 0.313426E+00 0.328107E+00 0.328721E+00 0.312941E+00 0.314749E+00 0.295302E+00 0.256376E+00 0.248218E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.250789E+00 0.267613E+00 0.279988E+00 0.310663E+00 0.302468E+00 0.305795E+00 0.307327E+00 0.287898E+00 0.249376E+00 0.239593E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231765E+00 0.244295E+00 0.267621E+00 0.274252E+00 0.276082E+00 0.283772E+00 0.286964E+00 0.270082E+00 0.234051E+00 0.225842E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.189914E+00 0.204115E+00 0.242676E+00 0.242208E+00 0.240453E+00 0.241485E+00 0.245370E+00 0.236550E+00 0.209798E+00 0.204625E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.108836E-02 0.100298E+00 0.102904E+00 0.102497E+00 0.102301E+00 0.101738E+00 0.100834E+00 0.992424E-01 0.107104E+00 0.828073E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443126E+00 0.487710E+00 0.508039E+00 0.514934E+00 0.504611E+00 0.498450E+00 0.476841E+00 0.471897E+00 0.451950E+00 0.422076E+00 0.408025E+00 0.345736E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.501265E+00 0.553403E+00 0.573374E+00 0.580691E+00 0.569499E+00 0.563273E+00 0.541251E+00 0.539266E+00 0.523663E+00 0.492537E+00 0.486338E+00 0.413505E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491006E+00 0.549528E+00 0.568836E+00 0.575100E+00 0.563853E+00 0.563958E+00 0.554847E+00 0.535593E+00 0.521588E+00 0.491884E+00 0.485870E+00 0.414032E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.481445E+00 0.544009E+00 0.564351E+00 0.570816E+00 0.560350E+00 0.557986E+00 0.550652E+00 0.531931E+00 0.519861E+00 0.492817E+00 0.484921E+00 0.414225E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.467807E+00 0.534537E+00 0.559137E+00 0.568237E+00 0.567847E+00 0.553740E+00 0.547776E+00 0.528441E+00 0.529957E+00 0.510279E+00 0.486739E+00 0.417752E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454119E+00 0.521406E+00 0.551347E+00 0.563478E+00 0.563073E+00 0.549929E+00 0.546734E+00 0.528284E+00 0.525012E+00 0.506640E+00 0.486738E+00 0.434661E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440719E+00 0.506265E+00 0.543035E+00 0.559197E+00 0.558862E+00 0.546322E+00 0.551645E+00 0.541112E+00 0.523115E+00 0.504429E+00 0.484668E+00 0.479855E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432347E+00 0.490762E+00 0.532542E+00 0.554592E+00 0.555191E+00 0.543186E+00 0.548579E+00 0.538294E+00 0.521167E+00 0.501666E+00 0.481260E+00 0.474682E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.426635E+00 0.478355E+00 0.521169E+00 0.550006E+00 0.552229E+00 0.540567E+00 0.545965E+00 0.535654E+00 0.518338E+00 0.498230E+00 0.476676E+00 0.467503E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.422593E+00 0.471165E+00 0.511544E+00 0.545774E+00 0.550467E+00 0.539005E+00 0.543608E+00 0.533501E+00 0.515593E+00 0.494116E+00 0.470453E+00 0.458803E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.419112E+00 0.465043E+00 0.504600E+00 0.541055E+00 0.548505E+00 0.538069E+00 0.541515E+00 0.530856E+00 0.512429E+00 0.489370E+00 0.462778E+00 0.446521E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416326E+00 0.459585E+00 0.498169E+00 0.534948E+00 0.545528E+00 0.538416E+00 0.539967E+00 0.528683E+00 0.509681E+00 0.484387E+00 0.454581E+00 0.416550E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.412930E+00 0.455038E+00 0.491662E+00 0.526930E+00 0.537286E+00 0.537918E+00 0.535469E+00 0.520130E+00 0.507129E+00 0.478903E+00 0.446892E+00 0.381946E+00 0.191061E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406075E+00 0.450358E+00 0.485030E+00 0.518422E+00 0.523874E+00 0.533027E+00 0.527292E+00 0.507076E+00 0.503493E+00 0.473422E+00 0.438954E+00 0.375017E+00 0.117560E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395040E+00 0.445197E+00 0.478619E+00 0.511014E+00 0.515908E+00 0.522593E+00 0.515223E+00 0.504365E+00 0.490768E+00 0.457223E+00 0.429276E+00 0.368920E+00 0.116596E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.379069E+00 0.440012E+00 0.471793E+00 0.499334E+00 0.506640E+00 0.508529E+00 0.495663E+00 0.495807E+00 0.471314E+00 0.435769E+00 0.400028E+00 0.344691E+00 0.113572E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.363158E+00 0.435660E+00 0.465035E+00 0.486089E+00 0.496926E+00 0.496943E+00 0.483775E+00 0.482857E+00 0.459951E+00 0.427443E+00 0.371014E+00 0.301179E+00 0.480598E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.351922E+00 0.433692E+00 0.455456E+00 0.476945E+00 0.484572E+00 0.476836E+00 0.471072E+00 0.460003E+00 0.434723E+00 0.414939E+00 0.361952E+00 0.589130E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.348750E+00 0.429664E+00 0.446108E+00 0.465930E+00 0.471047E+00 0.456448E+00 0.456006E+00 0.437948E+00 0.408978E+00 0.398909E+00 0.347394E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.348003E+00 0.419264E+00 0.442246E+00 0.455368E+00 0.456806E+00 0.443148E+00 0.440609E+00 0.424714E+00 0.396619E+00 0.367548E+00 0.320932E+00 0.167247E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346480E+00 0.401885E+00 0.437119E+00 0.444848E+00 0.437057E+00 0.430053E+00 0.420471E+00 0.398978E+00 0.383368E+00 0.342842E+00 0.298467E+00 0.453446E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340099E+00 0.385089E+00 0.430198E+00 0.437448E+00 0.421781E+00 0.418241E+00 0.404434E+00 0.378185E+00 0.369023E+00 0.331582E+00 0.290291E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331617E+00 0.372712E+00 0.415905E+00 0.429962E+00 0.414539E+00 0.404031E+00 0.379921E+00 0.368499E+00 0.341806E+00 0.299976E+00 0.276753E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322601E+00 0.362909E+00 0.392988E+00 0.407292E+00 0.407112E+00 0.396205E+00 0.366525E+00 0.361173E+00 0.327796E+00 0.284541E+00 0.252300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312951E+00 0.354193E+00 0.371058E+00 0.378576E+00 0.388389E+00 0.384618E+00 0.359588E+00 0.353311E+00 0.322252E+00 0.281962E+00 0.544118E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303492E+00 0.341173E+00 0.349966E+00 0.349869E+00 0.348755E+00 0.341232E+00 0.342896E+00 0.325057E+00 0.284829E+00 0.269274E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.283800E+00 0.312079E+00 0.335410E+00 0.336992E+00 0.334087E+00 0.317234E+00 0.321012E+00 0.305174E+00 0.264582E+00 0.258206E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269140E+00 0.282755E+00 0.309411E+00 0.326681E+00 0.327935E+00 0.312297E+00 0.312569E+00 0.293909E+00 0.257287E+00 0.251626E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257575E+00 0.269521E+00 0.277373E+00 0.305782E+00 0.302449E+00 0.306206E+00 0.306897E+00 0.288451E+00 0.252119E+00 0.243736E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235882E+00 0.245908E+00 0.267520E+00 0.270332E+00 0.271410E+00 0.282749E+00 0.287612E+00 0.271838E+00 0.238488E+00 0.230645E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188015E+00 0.207617E+00 0.240208E+00 0.240294E+00 0.242616E+00 0.243334E+00 0.246219E+00 0.238958E+00 0.213853E+00 0.208954E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.695725E-03 0.103515E+00 0.115901E+00 0.121910E+00 0.125201E+00 0.127915E+00 0.129610E+00 0.121210E+00 0.123544E+00 0.922733E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420467E+00 0.473077E+00 0.493301E+00 0.502361E+00 0.491128E+00 0.485826E+00 0.468784E+00 0.469197E+00 0.453387E+00 0.422615E+00 0.407856E+00 0.347670E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.473166E+00 0.539314E+00 0.561952E+00 0.572131E+00 0.559008E+00 0.553326E+00 0.536077E+00 0.542160E+00 0.531435E+00 0.495820E+00 0.490013E+00 0.418855E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.462426E+00 0.533879E+00 0.558408E+00 0.567344E+00 0.554963E+00 0.556341E+00 0.550515E+00 0.540041E+00 0.531622E+00 0.496302E+00 0.489844E+00 0.419292E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452715E+00 0.525977E+00 0.554015E+00 0.563493E+00 0.553137E+00 0.552141E+00 0.548356E+00 0.539376E+00 0.532640E+00 0.499737E+00 0.489489E+00 0.419937E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440837E+00 0.516211E+00 0.547331E+00 0.561323E+00 0.562041E+00 0.549467E+00 0.547035E+00 0.538092E+00 0.546352E+00 0.525062E+00 0.493597E+00 0.423879E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.428070E+00 0.504576E+00 0.539908E+00 0.557694E+00 0.558558E+00 0.546746E+00 0.547160E+00 0.539083E+00 0.542490E+00 0.524314E+00 0.495366E+00 0.440921E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421117E+00 0.493081E+00 0.533258E+00 0.554619E+00 0.555600E+00 0.544230E+00 0.553306E+00 0.551494E+00 0.541359E+00 0.523217E+00 0.494838E+00 0.488085E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416039E+00 0.485595E+00 0.527742E+00 0.552245E+00 0.552973E+00 0.541874E+00 0.551521E+00 0.550382E+00 0.540047E+00 0.521370E+00 0.494000E+00 0.486741E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.411577E+00 0.479874E+00 0.522391E+00 0.550149E+00 0.550794E+00 0.539995E+00 0.549520E+00 0.548707E+00 0.537920E+00 0.518582E+00 0.492398E+00 0.484467E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.407914E+00 0.474640E+00 0.516782E+00 0.548613E+00 0.550088E+00 0.539028E+00 0.547509E+00 0.546532E+00 0.535283E+00 0.514829E+00 0.488597E+00 0.478520E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404284E+00 0.470015E+00 0.511668E+00 0.547079E+00 0.549917E+00 0.539145E+00 0.545642E+00 0.543143E+00 0.531997E+00 0.510061E+00 0.482827E+00 0.467517E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.401359E+00 0.465689E+00 0.505714E+00 0.545143E+00 0.550052E+00 0.540295E+00 0.544423E+00 0.539607E+00 0.528533E+00 0.505440E+00 0.476183E+00 0.436900E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.397397E+00 0.461528E+00 0.499304E+00 0.541703E+00 0.546285E+00 0.541262E+00 0.539260E+00 0.530332E+00 0.523814E+00 0.499980E+00 0.469714E+00 0.401204E+00 0.194926E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389272E+00 0.456825E+00 0.493188E+00 0.536471E+00 0.536492E+00 0.541587E+00 0.531842E+00 0.515871E+00 0.516953E+00 0.492692E+00 0.461112E+00 0.393014E+00 0.120113E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.376721E+00 0.452042E+00 0.487006E+00 0.531299E+00 0.533275E+00 0.536219E+00 0.522011E+00 0.512222E+00 0.502021E+00 0.474789E+00 0.449813E+00 0.385236E+00 0.119166E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359926E+00 0.447150E+00 0.479922E+00 0.519391E+00 0.527377E+00 0.526493E+00 0.508804E+00 0.507950E+00 0.483791E+00 0.452017E+00 0.418895E+00 0.360162E+00 0.116051E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341307E+00 0.441627E+00 0.472148E+00 0.504183E+00 0.518969E+00 0.517820E+00 0.503648E+00 0.501730E+00 0.476467E+00 0.443727E+00 0.385884E+00 0.314824E+00 0.589034E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331372E+00 0.435217E+00 0.460259E+00 0.493902E+00 0.506646E+00 0.500042E+00 0.494425E+00 0.483096E+00 0.454495E+00 0.432540E+00 0.378023E+00 0.707638E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327859E+00 0.429930E+00 0.450318E+00 0.483416E+00 0.491963E+00 0.479756E+00 0.481482E+00 0.461725E+00 0.430891E+00 0.417752E+00 0.363180E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327815E+00 0.425593E+00 0.446512E+00 0.472178E+00 0.480581E+00 0.468040E+00 0.466591E+00 0.448654E+00 0.419960E+00 0.386805E+00 0.336718E+00 0.170214E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329996E+00 0.415347E+00 0.442059E+00 0.457890E+00 0.459385E+00 0.454998E+00 0.444963E+00 0.421736E+00 0.406984E+00 0.360605E+00 0.312412E+00 0.577795E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332302E+00 0.399773E+00 0.435726E+00 0.447041E+00 0.441725E+00 0.441691E+00 0.426831E+00 0.400446E+00 0.390807E+00 0.348779E+00 0.303191E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329428E+00 0.385887E+00 0.426065E+00 0.437899E+00 0.429323E+00 0.420894E+00 0.397136E+00 0.385614E+00 0.357728E+00 0.312755E+00 0.288359E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320506E+00 0.368844E+00 0.409617E+00 0.416343E+00 0.417353E+00 0.405483E+00 0.375948E+00 0.369648E+00 0.334709E+00 0.290889E+00 0.261428E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310862E+00 0.356472E+00 0.387831E+00 0.392268E+00 0.399448E+00 0.392023E+00 0.366039E+00 0.358479E+00 0.326422E+00 0.285874E+00 0.697379E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296462E+00 0.343143E+00 0.359408E+00 0.365662E+00 0.367538E+00 0.351473E+00 0.348042E+00 0.327651E+00 0.287960E+00 0.273181E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276690E+00 0.314005E+00 0.340151E+00 0.344167E+00 0.339433E+00 0.320160E+00 0.320977E+00 0.304222E+00 0.265209E+00 0.261028E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268854E+00 0.286164E+00 0.309649E+00 0.326650E+00 0.326409E+00 0.311655E+00 0.311096E+00 0.292396E+00 0.257583E+00 0.254201E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.256687E+00 0.272159E+00 0.281254E+00 0.300642E+00 0.297408E+00 0.302318E+00 0.305376E+00 0.288331E+00 0.253875E+00 0.247610E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235054E+00 0.249871E+00 0.271736E+00 0.271843E+00 0.264670E+00 0.277316E+00 0.288099E+00 0.275130E+00 0.243027E+00 0.236409E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184452E+00 0.212117E+00 0.247047E+00 0.244829E+00 0.247050E+00 0.249601E+00 0.251369E+00 0.243620E+00 0.218692E+00 0.214534E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.619329E-03 0.104741E+00 0.122161E+00 0.131926E+00 0.140242E+00 0.146019E+00 0.146653E+00 0.137121E+00 0.137081E+00 0.105639E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395946E+00 0.458375E+00 0.486318E+00 0.493907E+00 0.484933E+00 0.481298E+00 0.466320E+00 0.471817E+00 0.455538E+00 0.424033E+00 0.408646E+00 0.349892E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439804E+00 0.522989E+00 0.556955E+00 0.566994E+00 0.554894E+00 0.551022E+00 0.536922E+00 0.550654E+00 0.536707E+00 0.499257E+00 0.492632E+00 0.424036E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.428140E+00 0.516038E+00 0.553445E+00 0.562661E+00 0.552379E+00 0.555891E+00 0.553832E+00 0.551594E+00 0.538618E+00 0.500520E+00 0.492858E+00 0.424877E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417148E+00 0.507997E+00 0.549074E+00 0.560267E+00 0.551800E+00 0.552802E+00 0.553144E+00 0.553154E+00 0.543638E+00 0.505236E+00 0.491801E+00 0.425299E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404621E+00 0.499166E+00 0.543345E+00 0.559957E+00 0.562501E+00 0.551550E+00 0.553659E+00 0.552795E+00 0.563084E+00 0.533114E+00 0.497964E+00 0.429329E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.397024E+00 0.491836E+00 0.537214E+00 0.557712E+00 0.560068E+00 0.550212E+00 0.555185E+00 0.554046E+00 0.560392E+00 0.532684E+00 0.500204E+00 0.446921E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.392638E+00 0.485334E+00 0.532223E+00 0.555150E+00 0.558033E+00 0.548830E+00 0.561848E+00 0.567106E+00 0.560329E+00 0.533093E+00 0.500516E+00 0.494407E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388480E+00 0.479521E+00 0.527231E+00 0.553682E+00 0.556223E+00 0.547701E+00 0.560868E+00 0.566486E+00 0.559781E+00 0.533482E+00 0.501142E+00 0.493685E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384693E+00 0.473588E+00 0.521533E+00 0.550949E+00 0.554275E+00 0.546487E+00 0.559633E+00 0.564668E+00 0.557766E+00 0.532478E+00 0.500337E+00 0.491024E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.381714E+00 0.468882E+00 0.515375E+00 0.548686E+00 0.552847E+00 0.545666E+00 0.557594E+00 0.562110E+00 0.555150E+00 0.530332E+00 0.498227E+00 0.486492E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378628E+00 0.465103E+00 0.509077E+00 0.546315E+00 0.552014E+00 0.546135E+00 0.554847E+00 0.558703E+00 0.551115E+00 0.526949E+00 0.495066E+00 0.478362E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375368E+00 0.461410E+00 0.502913E+00 0.544122E+00 0.549795E+00 0.545297E+00 0.553213E+00 0.555355E+00 0.547513E+00 0.523435E+00 0.491315E+00 0.449903E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.370218E+00 0.458110E+00 0.496704E+00 0.541104E+00 0.542938E+00 0.542660E+00 0.547038E+00 0.546466E+00 0.543943E+00 0.519273E+00 0.487099E+00 0.414962E+00 0.197524E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361385E+00 0.455014E+00 0.490743E+00 0.537635E+00 0.532009E+00 0.538742E+00 0.537067E+00 0.530998E+00 0.537425E+00 0.513009E+00 0.480906E+00 0.409464E+00 0.122421E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.348767E+00 0.451280E+00 0.484816E+00 0.534947E+00 0.531133E+00 0.531739E+00 0.524626E+00 0.523398E+00 0.521231E+00 0.494688E+00 0.471734E+00 0.402047E+00 0.121483E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.330913E+00 0.446074E+00 0.477835E+00 0.525374E+00 0.529919E+00 0.523658E+00 0.507540E+00 0.513831E+00 0.498466E+00 0.468793E+00 0.437345E+00 0.374280E+00 0.118243E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312383E+00 0.440634E+00 0.470467E+00 0.512267E+00 0.526371E+00 0.520988E+00 0.501028E+00 0.502910E+00 0.485367E+00 0.459579E+00 0.402042E+00 0.326513E+00 0.706655E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.305412E+00 0.435362E+00 0.459849E+00 0.503285E+00 0.516817E+00 0.507522E+00 0.497734E+00 0.486983E+00 0.462076E+00 0.447547E+00 0.392401E+00 0.858037E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.300129E+00 0.429928E+00 0.449965E+00 0.491043E+00 0.506152E+00 0.492498E+00 0.494795E+00 0.472369E+00 0.440413E+00 0.430146E+00 0.377069E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296822E+00 0.424708E+00 0.444661E+00 0.475060E+00 0.497393E+00 0.485098E+00 0.486046E+00 0.465258E+00 0.433115E+00 0.399687E+00 0.348750E+00 0.172236E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296448E+00 0.412671E+00 0.439681E+00 0.459555E+00 0.475155E+00 0.475254E+00 0.467198E+00 0.439997E+00 0.423699E+00 0.375517E+00 0.324615E+00 0.703679E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296273E+00 0.399726E+00 0.435196E+00 0.448463E+00 0.454550E+00 0.463059E+00 0.450300E+00 0.420605E+00 0.410856E+00 0.365309E+00 0.316738E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.293899E+00 0.385781E+00 0.426844E+00 0.439365E+00 0.438012E+00 0.439422E+00 0.418549E+00 0.407154E+00 0.376657E+00 0.328087E+00 0.300177E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.287072E+00 0.365011E+00 0.411825E+00 0.419019E+00 0.422659E+00 0.415028E+00 0.390126E+00 0.385586E+00 0.349487E+00 0.301843E+00 0.270788E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.279548E+00 0.351860E+00 0.394649E+00 0.400392E+00 0.406293E+00 0.397537E+00 0.372145E+00 0.365488E+00 0.332911E+00 0.292570E+00 0.878915E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268176E+00 0.336721E+00 0.361960E+00 0.377793E+00 0.378604E+00 0.359322E+00 0.355561E+00 0.334741E+00 0.295005E+00 0.279555E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257105E+00 0.308204E+00 0.341852E+00 0.348893E+00 0.346908E+00 0.329374E+00 0.330466E+00 0.310416E+00 0.270621E+00 0.265424E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.258525E+00 0.284193E+00 0.310430E+00 0.327205E+00 0.327144E+00 0.312646E+00 0.312546E+00 0.294146E+00 0.259520E+00 0.258051E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.248823E+00 0.275749E+00 0.284960E+00 0.299496E+00 0.296776E+00 0.300019E+00 0.305259E+00 0.290413E+00 0.256437E+00 0.252304E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.230117E+00 0.257945E+00 0.275476E+00 0.275258E+00 0.267541E+00 0.273681E+00 0.286298E+00 0.277102E+00 0.247092E+00 0.242843E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177047E+00 0.218661E+00 0.253700E+00 0.251588E+00 0.254481E+00 0.258206E+00 0.260119E+00 0.251499E+00 0.224923E+00 0.222371E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.540987E-03 0.130075E+00 0.148477E+00 0.158090E+00 0.167096E+00 0.173520E+00 0.173980E+00 0.163124E+00 0.164629E+00 0.125971E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368493E+00 0.439332E+00 0.479261E+00 0.490192E+00 0.486063E+00 0.484062E+00 0.468803E+00 0.475301E+00 0.457754E+00 0.426097E+00 0.411810E+00 0.353071E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402908E+00 0.502724E+00 0.550424E+00 0.565989E+00 0.556584E+00 0.555350E+00 0.543590E+00 0.560345E+00 0.541955E+00 0.506158E+00 0.500399E+00 0.430852E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391104E+00 0.496760E+00 0.546916E+00 0.563105E+00 0.556787E+00 0.562393E+00 0.562501E+00 0.564647E+00 0.546558E+00 0.509709E+00 0.502582E+00 0.432293E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.379393E+00 0.491359E+00 0.542174E+00 0.561534E+00 0.558838E+00 0.562104E+00 0.564301E+00 0.568059E+00 0.553497E+00 0.515495E+00 0.502253E+00 0.432568E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.369369E+00 0.485257E+00 0.536575E+00 0.561666E+00 0.570831E+00 0.563850E+00 0.568329E+00 0.570387E+00 0.577352E+00 0.543537E+00 0.509049E+00 0.437751E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.365680E+00 0.479494E+00 0.530555E+00 0.559617E+00 0.569669E+00 0.564479E+00 0.572104E+00 0.573713E+00 0.576926E+00 0.545079E+00 0.512570E+00 0.458376E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.362042E+00 0.474825E+00 0.524386E+00 0.557087E+00 0.567597E+00 0.563600E+00 0.579499E+00 0.588330E+00 0.577133E+00 0.545075E+00 0.511843E+00 0.506966E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358165E+00 0.469911E+00 0.517570E+00 0.553993E+00 0.565240E+00 0.561813E+00 0.578367E+00 0.587953E+00 0.576485E+00 0.544207E+00 0.510641E+00 0.505322E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354444E+00 0.465606E+00 0.510630E+00 0.550847E+00 0.562588E+00 0.560292E+00 0.576367E+00 0.585838E+00 0.574476E+00 0.542799E+00 0.508656E+00 0.501839E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.350614E+00 0.461016E+00 0.503754E+00 0.548202E+00 0.559579E+00 0.557873E+00 0.573555E+00 0.582970E+00 0.572372E+00 0.541326E+00 0.506087E+00 0.497283E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346117E+00 0.456874E+00 0.497159E+00 0.544782E+00 0.557146E+00 0.555720E+00 0.570531E+00 0.579565E+00 0.570261E+00 0.539541E+00 0.503537E+00 0.487386E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341466E+00 0.453040E+00 0.490999E+00 0.541282E+00 0.554292E+00 0.553053E+00 0.566279E+00 0.574945E+00 0.568226E+00 0.537553E+00 0.500626E+00 0.457939E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.335408E+00 0.449234E+00 0.485245E+00 0.537219E+00 0.547041E+00 0.549345E+00 0.557767E+00 0.564210E+00 0.564003E+00 0.533503E+00 0.497504E+00 0.421170E+00 0.198710E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326721E+00 0.446295E+00 0.478700E+00 0.532293E+00 0.535415E+00 0.544216E+00 0.545823E+00 0.545722E+00 0.555223E+00 0.526374E+00 0.491738E+00 0.417587E+00 0.123951E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314677E+00 0.442401E+00 0.472815E+00 0.528510E+00 0.532159E+00 0.535902E+00 0.530011E+00 0.534552E+00 0.535426E+00 0.506948E+00 0.481852E+00 0.411493E+00 0.123189E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296720E+00 0.437856E+00 0.467194E+00 0.518490E+00 0.528078E+00 0.525480E+00 0.511340E+00 0.520256E+00 0.509155E+00 0.480321E+00 0.449454E+00 0.383975E+00 0.119969E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280831E+00 0.433935E+00 0.462227E+00 0.505887E+00 0.523506E+00 0.519231E+00 0.504879E+00 0.507634E+00 0.495294E+00 0.470722E+00 0.413601E+00 0.335725E+00 0.794091E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.275647E+00 0.429822E+00 0.454576E+00 0.497706E+00 0.514749E+00 0.503466E+00 0.497998E+00 0.489092E+00 0.469408E+00 0.459610E+00 0.403895E+00 0.102867E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272373E+00 0.425170E+00 0.446266E+00 0.482729E+00 0.504298E+00 0.489410E+00 0.491908E+00 0.472612E+00 0.444447E+00 0.440589E+00 0.385747E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270313E+00 0.418541E+00 0.441606E+00 0.466365E+00 0.495142E+00 0.484923E+00 0.485737E+00 0.465122E+00 0.435927E+00 0.406021E+00 0.355360E+00 0.173352E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269703E+00 0.404638E+00 0.436966E+00 0.452728E+00 0.471914E+00 0.477594E+00 0.470468E+00 0.442648E+00 0.428082E+00 0.382039E+00 0.330325E+00 0.771824E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268010E+00 0.386546E+00 0.429815E+00 0.442942E+00 0.450542E+00 0.466254E+00 0.456415E+00 0.426063E+00 0.418252E+00 0.374568E+00 0.325379E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.262313E+00 0.370812E+00 0.418303E+00 0.433221E+00 0.433255E+00 0.441321E+00 0.421985E+00 0.413626E+00 0.386220E+00 0.338838E+00 0.309815E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253873E+00 0.351484E+00 0.400719E+00 0.412556E+00 0.418024E+00 0.414687E+00 0.392788E+00 0.393776E+00 0.357831E+00 0.310955E+00 0.279530E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.247079E+00 0.344897E+00 0.384116E+00 0.394442E+00 0.403221E+00 0.396927E+00 0.374084E+00 0.368843E+00 0.338752E+00 0.298508E+00 0.994109E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235128E+00 0.332550E+00 0.353563E+00 0.370650E+00 0.376213E+00 0.360741E+00 0.359104E+00 0.340054E+00 0.300476E+00 0.286465E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229822E+00 0.299964E+00 0.337564E+00 0.348128E+00 0.349267E+00 0.336065E+00 0.341074E+00 0.319311E+00 0.279487E+00 0.273689E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235366E+00 0.280619E+00 0.311134E+00 0.330144E+00 0.330957E+00 0.316603E+00 0.315989E+00 0.300063E+00 0.264067E+00 0.262402E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235688E+00 0.273504E+00 0.288719E+00 0.303303E+00 0.301430E+00 0.304435E+00 0.308344E+00 0.295166E+00 0.260664E+00 0.258440E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215646E+00 0.257002E+00 0.279767E+00 0.279783E+00 0.272953E+00 0.280272E+00 0.291481E+00 0.283183E+00 0.254912E+00 0.251700E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169830E+00 0.218395E+00 0.260272E+00 0.257578E+00 0.259966E+00 0.264697E+00 0.269703E+00 0.262595E+00 0.234060E+00 0.230749E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.644821E-03 0.159519E+00 0.182218E+00 0.193597E+00 0.203087E+00 0.209632E+00 0.208887E+00 0.192569E+00 0.192686E+00 0.144445E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360510E+00 0.430613E+00 0.476633E+00 0.487392E+00 0.484081E+00 0.483028E+00 0.468028E+00 0.473962E+00 0.455411E+00 0.424534E+00 0.411598E+00 0.354438E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.394303E+00 0.493336E+00 0.548041E+00 0.565094E+00 0.558183E+00 0.556566E+00 0.544737E+00 0.561875E+00 0.542177E+00 0.508082E+00 0.506992E+00 0.436057E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382183E+00 0.489373E+00 0.542771E+00 0.561841E+00 0.558336E+00 0.564597E+00 0.565970E+00 0.567922E+00 0.548480E+00 0.514074E+00 0.511184E+00 0.438567E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.370656E+00 0.484988E+00 0.536359E+00 0.559622E+00 0.559681E+00 0.565048E+00 0.569524E+00 0.572733E+00 0.556090E+00 0.521002E+00 0.511679E+00 0.438993E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.366885E+00 0.479940E+00 0.528770E+00 0.558731E+00 0.569624E+00 0.564597E+00 0.571378E+00 0.574547E+00 0.580549E+00 0.549373E+00 0.518476E+00 0.444625E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.363441E+00 0.475947E+00 0.520921E+00 0.556036E+00 0.566960E+00 0.563114E+00 0.573153E+00 0.578835E+00 0.580532E+00 0.550672E+00 0.521700E+00 0.466895E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359365E+00 0.472017E+00 0.513629E+00 0.552983E+00 0.564153E+00 0.561034E+00 0.579647E+00 0.596305E+00 0.583397E+00 0.551827E+00 0.521637E+00 0.520212E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354723E+00 0.467577E+00 0.506465E+00 0.549710E+00 0.562059E+00 0.559285E+00 0.578756E+00 0.596484E+00 0.584471E+00 0.551951E+00 0.520231E+00 0.517515E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349564E+00 0.463524E+00 0.499833E+00 0.546646E+00 0.559910E+00 0.557580E+00 0.576941E+00 0.594496E+00 0.583039E+00 0.550463E+00 0.517317E+00 0.512371E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344254E+00 0.459455E+00 0.493993E+00 0.543738E+00 0.557575E+00 0.555384E+00 0.573982E+00 0.591043E+00 0.580873E+00 0.548244E+00 0.513622E+00 0.506052E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.338219E+00 0.456103E+00 0.488529E+00 0.540761E+00 0.555229E+00 0.553211E+00 0.570395E+00 0.586024E+00 0.578101E+00 0.545366E+00 0.509407E+00 0.495355E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332148E+00 0.452811E+00 0.483472E+00 0.537935E+00 0.552773E+00 0.550690E+00 0.566142E+00 0.579868E+00 0.574854E+00 0.542455E+00 0.505056E+00 0.464995E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.325087E+00 0.449488E+00 0.478302E+00 0.534713E+00 0.546270E+00 0.547914E+00 0.557573E+00 0.566546E+00 0.568807E+00 0.537015E+00 0.500273E+00 0.424669E+00 0.198791E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.316568E+00 0.446268E+00 0.473675E+00 0.530090E+00 0.535489E+00 0.543745E+00 0.543523E+00 0.543960E+00 0.557065E+00 0.529071E+00 0.493919E+00 0.420930E+00 0.124554E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303696E+00 0.441840E+00 0.469681E+00 0.525264E+00 0.532357E+00 0.534662E+00 0.526309E+00 0.532317E+00 0.535748E+00 0.508303E+00 0.485160E+00 0.414787E+00 0.123822E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285184E+00 0.437606E+00 0.464605E+00 0.513326E+00 0.528066E+00 0.523878E+00 0.508912E+00 0.518383E+00 0.508454E+00 0.480878E+00 0.450615E+00 0.385491E+00 0.120389E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.275166E+00 0.433614E+00 0.459487E+00 0.497869E+00 0.521854E+00 0.518408E+00 0.502762E+00 0.505120E+00 0.493997E+00 0.470850E+00 0.416013E+00 0.338329E+00 0.868405E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270380E+00 0.430082E+00 0.452101E+00 0.484897E+00 0.511559E+00 0.503407E+00 0.496139E+00 0.486654E+00 0.468129E+00 0.459067E+00 0.405939E+00 0.117349E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.266361E+00 0.425135E+00 0.445011E+00 0.469792E+00 0.500442E+00 0.488307E+00 0.489793E+00 0.470606E+00 0.443626E+00 0.440614E+00 0.388571E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263661E+00 0.415464E+00 0.440700E+00 0.456190E+00 0.489384E+00 0.482226E+00 0.483714E+00 0.463864E+00 0.434833E+00 0.406337E+00 0.356475E+00 0.173360E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.261311E+00 0.396901E+00 0.434579E+00 0.445172E+00 0.461578E+00 0.472589E+00 0.467774E+00 0.441866E+00 0.427648E+00 0.382518E+00 0.331082E+00 0.855351E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257498E+00 0.376655E+00 0.425990E+00 0.436973E+00 0.436489E+00 0.457151E+00 0.452672E+00 0.425225E+00 0.418036E+00 0.375163E+00 0.326521E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.251469E+00 0.355744E+00 0.411214E+00 0.427739E+00 0.422447E+00 0.427005E+00 0.414518E+00 0.411122E+00 0.385982E+00 0.339889E+00 0.311769E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.243626E+00 0.345475E+00 0.393655E+00 0.407382E+00 0.411837E+00 0.406139E+00 0.384504E+00 0.387886E+00 0.356226E+00 0.310837E+00 0.281936E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.236671E+00 0.340650E+00 0.370413E+00 0.387033E+00 0.398998E+00 0.394056E+00 0.371158E+00 0.366863E+00 0.337034E+00 0.297672E+00 0.112328E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224041E+00 0.328449E+00 0.346409E+00 0.361809E+00 0.371376E+00 0.360402E+00 0.359923E+00 0.342050E+00 0.301714E+00 0.288921E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221207E+00 0.296046E+00 0.334011E+00 0.345377E+00 0.344535E+00 0.336043E+00 0.343065E+00 0.325368E+00 0.285807E+00 0.279117E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224537E+00 0.278326E+00 0.308285E+00 0.330099E+00 0.332493E+00 0.317719E+00 0.319483E+00 0.307552E+00 0.270134E+00 0.266783E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.222672E+00 0.271886E+00 0.290820E+00 0.307575E+00 0.306119E+00 0.309620E+00 0.313419E+00 0.300079E+00 0.263100E+00 0.260972E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.210369E+00 0.254100E+00 0.281409E+00 0.282227E+00 0.280409E+00 0.292799E+00 0.301926E+00 0.292557E+00 0.259828E+00 0.257220E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166001E+00 0.216944E+00 0.263292E+00 0.259139E+00 0.263326E+00 0.270664E+00 0.282018E+00 0.274227E+00 0.244406E+00 0.240303E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.869786E-03 0.177311E+00 0.206179E+00 0.218070E+00 0.226409E+00 0.232671E+00 0.231959E+00 0.212871E+00 0.212496E+00 0.159668E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.343532E+00 0.426235E+00 0.475324E+00 0.483857E+00 0.476075E+00 0.475088E+00 0.460295E+00 0.465127E+00 0.448311E+00 0.418485E+00 0.405874E+00 0.349851E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372720E+00 0.489119E+00 0.545609E+00 0.562947E+00 0.554040E+00 0.551793E+00 0.538494E+00 0.555363E+00 0.538277E+00 0.504437E+00 0.502137E+00 0.432918E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360377E+00 0.485901E+00 0.540529E+00 0.560432E+00 0.554363E+00 0.560509E+00 0.560419E+00 0.561268E+00 0.544456E+00 0.510147E+00 0.506482E+00 0.435597E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.357192E+00 0.482454E+00 0.534517E+00 0.558182E+00 0.554320E+00 0.558328E+00 0.560778E+00 0.564546E+00 0.551435E+00 0.516734E+00 0.506984E+00 0.435874E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354300E+00 0.478839E+00 0.527222E+00 0.556905E+00 0.564071E+00 0.557795E+00 0.562108E+00 0.566357E+00 0.576660E+00 0.545782E+00 0.514117E+00 0.441699E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.350606E+00 0.475675E+00 0.520432E+00 0.553439E+00 0.562426E+00 0.556971E+00 0.563939E+00 0.571059E+00 0.576986E+00 0.547801E+00 0.517335E+00 0.463425E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346467E+00 0.471582E+00 0.513558E+00 0.549503E+00 0.560365E+00 0.555597E+00 0.570958E+00 0.587931E+00 0.579745E+00 0.548979E+00 0.517924E+00 0.516482E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341825E+00 0.467721E+00 0.506778E+00 0.545766E+00 0.558193E+00 0.554647E+00 0.570895E+00 0.588529E+00 0.580732E+00 0.549322E+00 0.517086E+00 0.514242E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337033E+00 0.464118E+00 0.500205E+00 0.542523E+00 0.556128E+00 0.553352E+00 0.570297E+00 0.587301E+00 0.579525E+00 0.548372E+00 0.515019E+00 0.509914E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331876E+00 0.460677E+00 0.494206E+00 0.539589E+00 0.554124E+00 0.551849E+00 0.568726E+00 0.584652E+00 0.577741E+00 0.546788E+00 0.512364E+00 0.504144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326165E+00 0.457425E+00 0.489807E+00 0.537622E+00 0.552455E+00 0.550537E+00 0.566540E+00 0.580866E+00 0.575430E+00 0.544605E+00 0.508888E+00 0.494642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320177E+00 0.454591E+00 0.485342E+00 0.535071E+00 0.551279E+00 0.549250E+00 0.563785E+00 0.575617E+00 0.572522E+00 0.541188E+00 0.504474E+00 0.465359E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312684E+00 0.451358E+00 0.480896E+00 0.531460E+00 0.545837E+00 0.547625E+00 0.556423E+00 0.563214E+00 0.566318E+00 0.535659E+00 0.500081E+00 0.425676E+00 0.198640E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304132E+00 0.447685E+00 0.476835E+00 0.526535E+00 0.535869E+00 0.544522E+00 0.543487E+00 0.542791E+00 0.556039E+00 0.528381E+00 0.494084E+00 0.421363E+00 0.124834E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.290936E+00 0.443893E+00 0.472470E+00 0.520697E+00 0.533044E+00 0.536430E+00 0.527690E+00 0.531316E+00 0.535387E+00 0.508807E+00 0.485748E+00 0.416114E+00 0.124103E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.275594E+00 0.440030E+00 0.467638E+00 0.507532E+00 0.528661E+00 0.526295E+00 0.510687E+00 0.518247E+00 0.508330E+00 0.481552E+00 0.451371E+00 0.386161E+00 0.120508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269953E+00 0.435639E+00 0.461914E+00 0.490852E+00 0.521572E+00 0.521012E+00 0.504575E+00 0.506288E+00 0.494655E+00 0.471546E+00 0.417006E+00 0.339635E+00 0.901063E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.264814E+00 0.430005E+00 0.453743E+00 0.477506E+00 0.510177E+00 0.504935E+00 0.497935E+00 0.488432E+00 0.469184E+00 0.459760E+00 0.407075E+00 0.123795E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259507E+00 0.422965E+00 0.445166E+00 0.464451E+00 0.497901E+00 0.489090E+00 0.491066E+00 0.472138E+00 0.444494E+00 0.440976E+00 0.389075E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253987E+00 0.411628E+00 0.440623E+00 0.455396E+00 0.481630E+00 0.481046E+00 0.483943E+00 0.464995E+00 0.435328E+00 0.406820E+00 0.356456E+00 0.173165E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.248379E+00 0.390818E+00 0.433920E+00 0.445664E+00 0.451387E+00 0.467673E+00 0.466153E+00 0.441479E+00 0.427261E+00 0.382034E+00 0.330805E+00 0.886749E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.241657E+00 0.370657E+00 0.422469E+00 0.436302E+00 0.430164E+00 0.444408E+00 0.445259E+00 0.421755E+00 0.416094E+00 0.373880E+00 0.325929E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.234590E+00 0.348876E+00 0.404348E+00 0.425706E+00 0.419457E+00 0.417935E+00 0.405241E+00 0.403799E+00 0.381424E+00 0.337086E+00 0.310208E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226844E+00 0.343312E+00 0.386471E+00 0.402722E+00 0.409383E+00 0.402596E+00 0.378297E+00 0.379206E+00 0.349909E+00 0.306468E+00 0.280986E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.218978E+00 0.338139E+00 0.359432E+00 0.378741E+00 0.394905E+00 0.392550E+00 0.369749E+00 0.365621E+00 0.334235E+00 0.295749E+00 0.118598E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206243E+00 0.318736E+00 0.346126E+00 0.355594E+00 0.368256E+00 0.359695E+00 0.359959E+00 0.341995E+00 0.301145E+00 0.288506E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206707E+00 0.292981E+00 0.332231E+00 0.343998E+00 0.342381E+00 0.333436E+00 0.342567E+00 0.326167E+00 0.287789E+00 0.282263E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.208248E+00 0.278246E+00 0.309759E+00 0.329879E+00 0.333902E+00 0.317971E+00 0.320308E+00 0.308479E+00 0.272557E+00 0.268966E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207000E+00 0.272335E+00 0.291044E+00 0.308682E+00 0.309100E+00 0.311901E+00 0.315059E+00 0.301788E+00 0.265105E+00 0.262772E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202191E+00 0.251176E+00 0.281006E+00 0.282504E+00 0.287719E+00 0.299534E+00 0.308116E+00 0.295899E+00 0.260360E+00 0.258261E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165754E+00 0.219506E+00 0.262932E+00 0.259713E+00 0.265372E+00 0.278894E+00 0.290402E+00 0.281426E+00 0.251186E+00 0.247344E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.103138E-02 0.182648E+00 0.221180E+00 0.230156E+00 0.238661E+00 0.246980E+00 0.247982E+00 0.224888E+00 0.223379E+00 0.169647E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320342E+00 0.420069E+00 0.472129E+00 0.481684E+00 0.472911E+00 0.471596E+00 0.456472E+00 0.459662E+00 0.443485E+00 0.414122E+00 0.400915E+00 0.345376E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344978E+00 0.483279E+00 0.542253E+00 0.562198E+00 0.553192E+00 0.550386E+00 0.535234E+00 0.548774E+00 0.536635E+00 0.502167E+00 0.497277E+00 0.429220E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340325E+00 0.480417E+00 0.537779E+00 0.559701E+00 0.553077E+00 0.558417E+00 0.555222E+00 0.553169E+00 0.541507E+00 0.507219E+00 0.501190E+00 0.431590E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.338566E+00 0.477331E+00 0.532344E+00 0.557469E+00 0.553428E+00 0.556090E+00 0.554766E+00 0.556206E+00 0.547699E+00 0.513552E+00 0.501996E+00 0.432150E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334938E+00 0.474432E+00 0.525766E+00 0.556490E+00 0.563115E+00 0.555316E+00 0.555371E+00 0.557623E+00 0.572476E+00 0.542526E+00 0.509365E+00 0.437678E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331122E+00 0.471390E+00 0.519179E+00 0.552905E+00 0.560868E+00 0.553271E+00 0.556684E+00 0.561199E+00 0.572345E+00 0.544037E+00 0.512180E+00 0.458540E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326809E+00 0.467274E+00 0.512719E+00 0.549216E+00 0.558024E+00 0.551270E+00 0.563538E+00 0.576630E+00 0.574892E+00 0.545474E+00 0.513184E+00 0.510174E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322482E+00 0.464030E+00 0.506136E+00 0.545363E+00 0.555140E+00 0.549618E+00 0.563081E+00 0.578040E+00 0.576108E+00 0.546371E+00 0.513130E+00 0.509262E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317640E+00 0.460896E+00 0.499747E+00 0.541504E+00 0.552762E+00 0.547917E+00 0.562699E+00 0.578115E+00 0.575403E+00 0.545992E+00 0.512031E+00 0.506592E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312745E+00 0.457916E+00 0.493311E+00 0.537816E+00 0.550367E+00 0.546488E+00 0.562385E+00 0.577341E+00 0.574557E+00 0.545121E+00 0.510304E+00 0.502089E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307168E+00 0.454960E+00 0.489056E+00 0.534878E+00 0.548589E+00 0.545692E+00 0.561988E+00 0.575554E+00 0.572968E+00 0.543174E+00 0.507030E+00 0.493805E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.301530E+00 0.452031E+00 0.484794E+00 0.531817E+00 0.547086E+00 0.545396E+00 0.560600E+00 0.572423E+00 0.571039E+00 0.540276E+00 0.503491E+00 0.465370E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294071E+00 0.448773E+00 0.480562E+00 0.527663E+00 0.542095E+00 0.544535E+00 0.554657E+00 0.562809E+00 0.566394E+00 0.535559E+00 0.499350E+00 0.425948E+00 0.198463E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285230E+00 0.445015E+00 0.476587E+00 0.521972E+00 0.533160E+00 0.542802E+00 0.543895E+00 0.543963E+00 0.557063E+00 0.529479E+00 0.494326E+00 0.422008E+00 0.125049E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272005E+00 0.441124E+00 0.472362E+00 0.514694E+00 0.531947E+00 0.536845E+00 0.529075E+00 0.533243E+00 0.536824E+00 0.510261E+00 0.486604E+00 0.417084E+00 0.124408E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263802E+00 0.437332E+00 0.467475E+00 0.501486E+00 0.527256E+00 0.526331E+00 0.511445E+00 0.520889E+00 0.510875E+00 0.483618E+00 0.453027E+00 0.387286E+00 0.120736E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.258369E+00 0.432314E+00 0.462069E+00 0.485501E+00 0.519106E+00 0.520908E+00 0.505883E+00 0.509427E+00 0.498944E+00 0.474845E+00 0.419742E+00 0.341516E+00 0.926448E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252434E+00 0.426175E+00 0.453023E+00 0.474661E+00 0.508906E+00 0.505296E+00 0.499760E+00 0.491957E+00 0.473847E+00 0.463490E+00 0.410511E+00 0.129283E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.247009E+00 0.417284E+00 0.444448E+00 0.465377E+00 0.496244E+00 0.489497E+00 0.492700E+00 0.475072E+00 0.448482E+00 0.445573E+00 0.392827E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.241263E+00 0.403403E+00 0.439412E+00 0.456586E+00 0.477907E+00 0.480661E+00 0.485207E+00 0.466657E+00 0.437393E+00 0.410073E+00 0.358155E+00 0.173072E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235222E+00 0.386589E+00 0.431464E+00 0.446398E+00 0.450898E+00 0.465985E+00 0.465516E+00 0.441730E+00 0.427828E+00 0.383495E+00 0.331533E+00 0.924120E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.228343E+00 0.363403E+00 0.417142E+00 0.436471E+00 0.431418E+00 0.443948E+00 0.444556E+00 0.421098E+00 0.416188E+00 0.374355E+00 0.326184E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221329E+00 0.351637E+00 0.400949E+00 0.425410E+00 0.421157E+00 0.419555E+00 0.406111E+00 0.402941E+00 0.381080E+00 0.336532E+00 0.309443E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213589E+00 0.345621E+00 0.377444E+00 0.401934E+00 0.410548E+00 0.404267E+00 0.379652E+00 0.378636E+00 0.349433E+00 0.305432E+00 0.281699E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206316E+00 0.336101E+00 0.360239E+00 0.376179E+00 0.394207E+00 0.394460E+00 0.371018E+00 0.366300E+00 0.334725E+00 0.295704E+00 0.122185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.199355E+00 0.315633E+00 0.346416E+00 0.356116E+00 0.368349E+00 0.360875E+00 0.361008E+00 0.342462E+00 0.301277E+00 0.288096E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198217E+00 0.295221E+00 0.334232E+00 0.345534E+00 0.345094E+00 0.334833E+00 0.343720E+00 0.328135E+00 0.288325E+00 0.282363E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.195056E+00 0.281013E+00 0.315400E+00 0.334261E+00 0.336277E+00 0.320480E+00 0.323274E+00 0.310879E+00 0.274435E+00 0.270919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188769E+00 0.271202E+00 0.293164E+00 0.311617E+00 0.312013E+00 0.314737E+00 0.317441E+00 0.304587E+00 0.266960E+00 0.263872E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177539E+00 0.250421E+00 0.280873E+00 0.285157E+00 0.289510E+00 0.302616E+00 0.311607E+00 0.299005E+00 0.262119E+00 0.259318E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147535E+00 0.223313E+00 0.264070E+00 0.261845E+00 0.271862E+00 0.285070E+00 0.296515E+00 0.286950E+00 0.254580E+00 0.251091E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.102098E-02 0.193887E+00 0.235397E+00 0.243893E+00 0.252899E+00 0.264678E+00 0.265342E+00 0.236493E+00 0.233732E+00 0.177924E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.305318E+00 0.409717E+00 0.463932E+00 0.478283E+00 0.470884E+00 0.469700E+00 0.453907E+00 0.454417E+00 0.438707E+00 0.410668E+00 0.397460E+00 0.342702E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.328539E+00 0.473484E+00 0.534613E+00 0.559760E+00 0.553574E+00 0.551507E+00 0.534051E+00 0.542073E+00 0.533803E+00 0.500899E+00 0.494924E+00 0.427930E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.324438E+00 0.471626E+00 0.530864E+00 0.557895E+00 0.553809E+00 0.558348E+00 0.553362E+00 0.545510E+00 0.538544E+00 0.506051E+00 0.499008E+00 0.430821E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322107E+00 0.469312E+00 0.525956E+00 0.555552E+00 0.554430E+00 0.556129E+00 0.552788E+00 0.548074E+00 0.544287E+00 0.512559E+00 0.500122E+00 0.431568E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.318523E+00 0.467564E+00 0.520143E+00 0.553803E+00 0.563748E+00 0.554377E+00 0.552527E+00 0.548888E+00 0.568010E+00 0.540376E+00 0.507331E+00 0.436397E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314675E+00 0.464473E+00 0.514767E+00 0.550785E+00 0.561783E+00 0.552575E+00 0.553548E+00 0.551936E+00 0.567696E+00 0.541719E+00 0.509874E+00 0.456232E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310198E+00 0.461044E+00 0.509101E+00 0.546713E+00 0.559263E+00 0.550547E+00 0.560244E+00 0.566758E+00 0.569977E+00 0.543169E+00 0.510970E+00 0.506847E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306095E+00 0.458221E+00 0.502953E+00 0.542643E+00 0.556668E+00 0.548430E+00 0.559227E+00 0.568319E+00 0.571446E+00 0.544254E+00 0.511758E+00 0.506961E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.301056E+00 0.455319E+00 0.497272E+00 0.538063E+00 0.554045E+00 0.546657E+00 0.558509E+00 0.569237E+00 0.571382E+00 0.544260E+00 0.511445E+00 0.504656E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296048E+00 0.452688E+00 0.491420E+00 0.533667E+00 0.551683E+00 0.545376E+00 0.557956E+00 0.569379E+00 0.571273E+00 0.543867E+00 0.510070E+00 0.501423E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.290541E+00 0.449912E+00 0.486637E+00 0.529381E+00 0.549724E+00 0.544452E+00 0.557266E+00 0.568788E+00 0.570377E+00 0.542581E+00 0.507242E+00 0.493719E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.284678E+00 0.446720E+00 0.482184E+00 0.524738E+00 0.547795E+00 0.543953E+00 0.556176E+00 0.567515E+00 0.569614E+00 0.540537E+00 0.503481E+00 0.465542E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.277271E+00 0.444077E+00 0.478465E+00 0.518860E+00 0.541987E+00 0.543230E+00 0.550852E+00 0.559998E+00 0.566219E+00 0.536470E+00 0.499578E+00 0.425965E+00 0.198267E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267934E+00 0.440784E+00 0.474587E+00 0.511756E+00 0.532206E+00 0.541757E+00 0.541950E+00 0.542998E+00 0.558059E+00 0.530227E+00 0.494588E+00 0.422454E+00 0.125194E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259319E+00 0.436762E+00 0.470270E+00 0.504664E+00 0.529117E+00 0.535893E+00 0.528223E+00 0.533009E+00 0.537147E+00 0.510562E+00 0.486724E+00 0.417386E+00 0.124651E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252742E+00 0.432310E+00 0.465662E+00 0.493428E+00 0.523919E+00 0.525314E+00 0.510815E+00 0.521497E+00 0.512130E+00 0.484646E+00 0.454220E+00 0.388158E+00 0.120974E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246043E+00 0.426340E+00 0.460389E+00 0.480713E+00 0.516341E+00 0.520329E+00 0.506104E+00 0.511162E+00 0.501566E+00 0.477475E+00 0.421818E+00 0.343213E+00 0.952825E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239645E+00 0.418494E+00 0.451253E+00 0.472477E+00 0.506989E+00 0.505513E+00 0.500580E+00 0.494359E+00 0.476935E+00 0.466784E+00 0.413429E+00 0.134573E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.233458E+00 0.406719E+00 0.441723E+00 0.463674E+00 0.494217E+00 0.489637E+00 0.493813E+00 0.476965E+00 0.451620E+00 0.449725E+00 0.396474E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227254E+00 0.393954E+00 0.435278E+00 0.455050E+00 0.478657E+00 0.479936E+00 0.485060E+00 0.468326E+00 0.440098E+00 0.413228E+00 0.360282E+00 0.173047E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221383E+00 0.374862E+00 0.426339E+00 0.445026E+00 0.452559E+00 0.466347E+00 0.465807E+00 0.442625E+00 0.428843E+00 0.385397E+00 0.332561E+00 0.966699E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214306E+00 0.354972E+00 0.413597E+00 0.436034E+00 0.432485E+00 0.447692E+00 0.447421E+00 0.423491E+00 0.418341E+00 0.375765E+00 0.326785E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207619E+00 0.350596E+00 0.400060E+00 0.426016E+00 0.421648E+00 0.421658E+00 0.409602E+00 0.406851E+00 0.384265E+00 0.338400E+00 0.311088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.199266E+00 0.344012E+00 0.373232E+00 0.398783E+00 0.409921E+00 0.404960E+00 0.382981E+00 0.383268E+00 0.352896E+00 0.307764E+00 0.283734E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.192668E+00 0.331983E+00 0.360005E+00 0.376069E+00 0.395401E+00 0.396217E+00 0.373281E+00 0.368809E+00 0.337247E+00 0.296958E+00 0.126231E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193164E+00 0.316024E+00 0.346822E+00 0.361135E+00 0.373125E+00 0.365029E+00 0.364687E+00 0.345059E+00 0.302566E+00 0.288935E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.192719E+00 0.295866E+00 0.335686E+00 0.348138E+00 0.350283E+00 0.341320E+00 0.348923E+00 0.331574E+00 0.289716E+00 0.284020E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188786E+00 0.283190E+00 0.319882E+00 0.339389E+00 0.339101E+00 0.323530E+00 0.329044E+00 0.315574E+00 0.277819E+00 0.274185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179577E+00 0.272122E+00 0.297332E+00 0.317429E+00 0.314389E+00 0.315985E+00 0.319750E+00 0.307117E+00 0.269190E+00 0.265691E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165845E+00 0.252613E+00 0.280775E+00 0.293893E+00 0.298041E+00 0.308310E+00 0.313884E+00 0.300629E+00 0.263882E+00 0.260683E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126644E+00 0.230800E+00 0.269634E+00 0.266640E+00 0.279859E+00 0.293969E+00 0.302826E+00 0.290548E+00 0.255612E+00 0.251898E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.997025E-03 0.197714E+00 0.241495E+00 0.252567E+00 0.262821E+00 0.277235E+00 0.276041E+00 0.244359E+00 0.240842E+00 0.183597E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.289179E+00 0.396348E+00 0.452686E+00 0.473652E+00 0.468114E+00 0.467732E+00 0.451597E+00 0.449115E+00 0.433909E+00 0.407648E+00 0.394531E+00 0.341052E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310082E+00 0.461714E+00 0.523507E+00 0.555295E+00 0.552866E+00 0.551362E+00 0.532063E+00 0.535146E+00 0.530269E+00 0.499582E+00 0.493206E+00 0.427494E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306213E+00 0.460707E+00 0.521502E+00 0.553922E+00 0.552979E+00 0.557821E+00 0.551642E+00 0.538550E+00 0.535315E+00 0.505478E+00 0.498364E+00 0.430959E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304166E+00 0.459219E+00 0.517038E+00 0.550663E+00 0.552987E+00 0.555541E+00 0.550766E+00 0.540673E+00 0.540169E+00 0.511110E+00 0.500135E+00 0.431968E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.300762E+00 0.457452E+00 0.511668E+00 0.548304E+00 0.561933E+00 0.553968E+00 0.550402E+00 0.541198E+00 0.562632E+00 0.538527E+00 0.507461E+00 0.436673E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296766E+00 0.455391E+00 0.507948E+00 0.544957E+00 0.559870E+00 0.552452E+00 0.551166E+00 0.544093E+00 0.562480E+00 0.540039E+00 0.510144E+00 0.456214E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.292666E+00 0.453014E+00 0.503184E+00 0.540085E+00 0.557016E+00 0.550602E+00 0.557324E+00 0.559185E+00 0.565039E+00 0.541811E+00 0.511178E+00 0.506070E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.288407E+00 0.450922E+00 0.498370E+00 0.535002E+00 0.554170E+00 0.548828E+00 0.556066E+00 0.560859E+00 0.567056E+00 0.542952E+00 0.511898E+00 0.506327E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.283214E+00 0.448736E+00 0.493547E+00 0.529438E+00 0.551417E+00 0.547075E+00 0.555139E+00 0.562027E+00 0.567555E+00 0.543011E+00 0.511338E+00 0.504243E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.278004E+00 0.446470E+00 0.488238E+00 0.523509E+00 0.548659E+00 0.545850E+00 0.554320E+00 0.562539E+00 0.567660E+00 0.542491E+00 0.510034E+00 0.501046E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272080E+00 0.444172E+00 0.483920E+00 0.517444E+00 0.546082E+00 0.544939E+00 0.553588E+00 0.562598E+00 0.566906E+00 0.541143E+00 0.507343E+00 0.493492E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265652E+00 0.441461E+00 0.479791E+00 0.511256E+00 0.543529E+00 0.544216E+00 0.553421E+00 0.561964E+00 0.565656E+00 0.539364E+00 0.503738E+00 0.465806E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259687E+00 0.438604E+00 0.475699E+00 0.504389E+00 0.536748E+00 0.542884E+00 0.549243E+00 0.555497E+00 0.563511E+00 0.535765E+00 0.499884E+00 0.425755E+00 0.197978E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252589E+00 0.434989E+00 0.471528E+00 0.497577E+00 0.526217E+00 0.540107E+00 0.540599E+00 0.540774E+00 0.556042E+00 0.529895E+00 0.494584E+00 0.422378E+00 0.125273E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.245589E+00 0.430234E+00 0.467197E+00 0.492067E+00 0.523544E+00 0.533263E+00 0.527036E+00 0.531703E+00 0.536705E+00 0.510961E+00 0.486847E+00 0.417635E+00 0.124825E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.238635E+00 0.424962E+00 0.462752E+00 0.483603E+00 0.519532E+00 0.524496E+00 0.510275E+00 0.520994E+00 0.512067E+00 0.484872E+00 0.454273E+00 0.388286E+00 0.121139E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231768E+00 0.418977E+00 0.457718E+00 0.473074E+00 0.513786E+00 0.520601E+00 0.505538E+00 0.510751E+00 0.501647E+00 0.477583E+00 0.421960E+00 0.344163E+00 0.979548E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.225297E+00 0.409979E+00 0.448133E+00 0.466428E+00 0.503287E+00 0.505306E+00 0.500302E+00 0.493592E+00 0.476684E+00 0.466631E+00 0.413297E+00 0.139749E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219200E+00 0.399205E+00 0.437730E+00 0.458209E+00 0.488871E+00 0.486253E+00 0.492474E+00 0.476534E+00 0.450918E+00 0.449431E+00 0.396358E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213239E+00 0.384151E+00 0.430569E+00 0.450113E+00 0.471859E+00 0.475708E+00 0.483388E+00 0.468024E+00 0.439234E+00 0.412327E+00 0.360032E+00 0.172712E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207390E+00 0.360705E+00 0.420710E+00 0.441221E+00 0.446458E+00 0.461976E+00 0.464599E+00 0.442574E+00 0.428491E+00 0.385261E+00 0.332718E+00 0.100047E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.200238E+00 0.351189E+00 0.411152E+00 0.433285E+00 0.428596E+00 0.444052E+00 0.446744E+00 0.423358E+00 0.418402E+00 0.376553E+00 0.327305E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.192667E+00 0.347238E+00 0.392692E+00 0.422848E+00 0.418898E+00 0.419425E+00 0.408979E+00 0.406924E+00 0.385287E+00 0.339977E+00 0.312528E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183950E+00 0.340231E+00 0.371534E+00 0.395690E+00 0.408366E+00 0.405027E+00 0.382707E+00 0.385422E+00 0.356062E+00 0.310948E+00 0.286070E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181053E+00 0.329414E+00 0.358423E+00 0.376135E+00 0.395594E+00 0.395741E+00 0.373337E+00 0.369940E+00 0.340553E+00 0.299063E+00 0.129422E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178749E+00 0.312481E+00 0.344277E+00 0.362759E+00 0.376429E+00 0.367401E+00 0.365462E+00 0.346548E+00 0.303983E+00 0.290351E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176596E+00 0.295365E+00 0.333036E+00 0.346787E+00 0.354305E+00 0.346292E+00 0.353771E+00 0.335884E+00 0.291917E+00 0.286166E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174058E+00 0.284910E+00 0.322317E+00 0.339255E+00 0.339033E+00 0.325559E+00 0.337162E+00 0.323345E+00 0.285042E+00 0.279868E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.168581E+00 0.268331E+00 0.303425E+00 0.321506E+00 0.315537E+00 0.317429E+00 0.322541E+00 0.310048E+00 0.273633E+00 0.269459E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.153736E+00 0.247913E+00 0.279394E+00 0.300627E+00 0.304313E+00 0.313150E+00 0.318048E+00 0.304577E+00 0.267275E+00 0.263057E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125662E+00 0.231444E+00 0.269474E+00 0.272016E+00 0.287976E+00 0.298975E+00 0.306476E+00 0.292449E+00 0.256870E+00 0.253185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.893601E-03 0.211823E+00 0.250918E+00 0.259378E+00 0.272810E+00 0.285595E+00 0.284729E+00 0.248654E+00 0.245024E+00 0.187174E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269453E+00 0.382513E+00 0.444895E+00 0.471195E+00 0.465106E+00 0.464125E+00 0.446822E+00 0.443312E+00 0.427951E+00 0.403550E+00 0.392139E+00 0.339333E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.288648E+00 0.452398E+00 0.517297E+00 0.552575E+00 0.551343E+00 0.549653E+00 0.527793E+00 0.528366E+00 0.524148E+00 0.497414E+00 0.492752E+00 0.426843E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285135E+00 0.452913E+00 0.516112E+00 0.551169E+00 0.551848E+00 0.555923E+00 0.546408E+00 0.531486E+00 0.529381E+00 0.502487E+00 0.497172E+00 0.430148E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.283375E+00 0.452471E+00 0.512249E+00 0.547039E+00 0.551901E+00 0.553716E+00 0.545846E+00 0.533038E+00 0.534106E+00 0.507494E+00 0.498109E+00 0.431044E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280448E+00 0.450815E+00 0.508006E+00 0.543038E+00 0.560376E+00 0.552497E+00 0.545296E+00 0.533340E+00 0.554296E+00 0.534281E+00 0.505751E+00 0.435884E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276696E+00 0.448823E+00 0.504826E+00 0.537047E+00 0.557285E+00 0.550449E+00 0.545949E+00 0.536083E+00 0.555711E+00 0.536733E+00 0.508749E+00 0.455287E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.273066E+00 0.446786E+00 0.500760E+00 0.530071E+00 0.553618E+00 0.548371E+00 0.552522E+00 0.552109E+00 0.559251E+00 0.539205E+00 0.509694E+00 0.504984E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.269610E+00 0.444970E+00 0.496462E+00 0.522750E+00 0.549905E+00 0.546615E+00 0.552107E+00 0.554344E+00 0.561934E+00 0.540637E+00 0.510270E+00 0.505249E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265425E+00 0.443075E+00 0.492357E+00 0.515349E+00 0.546472E+00 0.544899E+00 0.552419E+00 0.556532E+00 0.562926E+00 0.540487E+00 0.509917E+00 0.503442E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.261610E+00 0.441196E+00 0.487882E+00 0.508260E+00 0.543012E+00 0.543624E+00 0.552283E+00 0.557907E+00 0.563070E+00 0.539858E+00 0.508491E+00 0.500105E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257238E+00 0.439299E+00 0.483909E+00 0.501984E+00 0.539804E+00 0.542810E+00 0.551751E+00 0.558593E+00 0.562691E+00 0.538720E+00 0.506064E+00 0.492984E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252226E+00 0.436517E+00 0.479544E+00 0.496239E+00 0.536910E+00 0.542096E+00 0.551263E+00 0.558950E+00 0.563640E+00 0.538297E+00 0.503598E+00 0.465843E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246496E+00 0.433794E+00 0.474985E+00 0.490761E+00 0.530329E+00 0.540619E+00 0.546639E+00 0.552737E+00 0.561887E+00 0.535166E+00 0.500033E+00 0.425596E+00 0.197677E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239572E+00 0.430505E+00 0.470087E+00 0.485777E+00 0.519796E+00 0.537272E+00 0.538072E+00 0.537492E+00 0.554201E+00 0.529505E+00 0.494848E+00 0.422274E+00 0.125369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232938E+00 0.425680E+00 0.464807E+00 0.481591E+00 0.518342E+00 0.531482E+00 0.525225E+00 0.529513E+00 0.536212E+00 0.511581E+00 0.487826E+00 0.418068E+00 0.124976E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226181E+00 0.420402E+00 0.459467E+00 0.474547E+00 0.515589E+00 0.524291E+00 0.509853E+00 0.520208E+00 0.511798E+00 0.484762E+00 0.454502E+00 0.388555E+00 0.121284E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219446E+00 0.414230E+00 0.453983E+00 0.465288E+00 0.507485E+00 0.519387E+00 0.504771E+00 0.509709E+00 0.500639E+00 0.476506E+00 0.421115E+00 0.344411E+00 0.100620E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213393E+00 0.404468E+00 0.445345E+00 0.459861E+00 0.495580E+00 0.501508E+00 0.498768E+00 0.492594E+00 0.474932E+00 0.464839E+00 0.411246E+00 0.144135E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207524E+00 0.390358E+00 0.434722E+00 0.453355E+00 0.478837E+00 0.481452E+00 0.489837E+00 0.474967E+00 0.448487E+00 0.446900E+00 0.393817E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202253E+00 0.372062E+00 0.426576E+00 0.447118E+00 0.462781E+00 0.470029E+00 0.481413E+00 0.467073E+00 0.437724E+00 0.410381E+00 0.358663E+00 0.172338E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197282E+00 0.352700E+00 0.417599E+00 0.439933E+00 0.442479E+00 0.457402E+00 0.463350E+00 0.442258E+00 0.428389E+00 0.385036E+00 0.332637E+00 0.102585E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190930E+00 0.349124E+00 0.405730E+00 0.432949E+00 0.427372E+00 0.439242E+00 0.444345E+00 0.422445E+00 0.418253E+00 0.376834E+00 0.327600E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185447E+00 0.345796E+00 0.388247E+00 0.421008E+00 0.418718E+00 0.418497E+00 0.407991E+00 0.406726E+00 0.385406E+00 0.340411E+00 0.313378E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181151E+00 0.340798E+00 0.371590E+00 0.393575E+00 0.407925E+00 0.405409E+00 0.383037E+00 0.386281E+00 0.357526E+00 0.312764E+00 0.287998E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176014E+00 0.332350E+00 0.358943E+00 0.374643E+00 0.394551E+00 0.395913E+00 0.373763E+00 0.370650E+00 0.343107E+00 0.300976E+00 0.133589E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171065E+00 0.312618E+00 0.342045E+00 0.359570E+00 0.376089E+00 0.367772E+00 0.365766E+00 0.347367E+00 0.304839E+00 0.291142E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165501E+00 0.295469E+00 0.330758E+00 0.343993E+00 0.350785E+00 0.343281E+00 0.353078E+00 0.336349E+00 0.293052E+00 0.287327E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.160140E+00 0.283624E+00 0.322279E+00 0.336749E+00 0.337389E+00 0.325411E+00 0.337019E+00 0.323476E+00 0.287628E+00 0.283491E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151339E+00 0.266796E+00 0.305532E+00 0.323151E+00 0.316337E+00 0.318031E+00 0.324456E+00 0.311875E+00 0.276669E+00 0.272553E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137845E+00 0.248198E+00 0.279685E+00 0.302439E+00 0.307556E+00 0.315996E+00 0.319627E+00 0.306558E+00 0.270030E+00 0.265567E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.112380E+00 0.232153E+00 0.268717E+00 0.279064E+00 0.295130E+00 0.306683E+00 0.312245E+00 0.296301E+00 0.259511E+00 0.255863E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.839542E-03 0.221906E+00 0.257000E+00 0.264067E+00 0.279832E+00 0.292472E+00 0.290372E+00 0.251690E+00 0.246874E+00 0.188947E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259858E+00 0.380827E+00 0.445141E+00 0.469885E+00 0.462503E+00 0.457343E+00 0.438999E+00 0.434612E+00 0.418751E+00 0.396770E+00 0.387113E+00 0.335350E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.279108E+00 0.452546E+00 0.518282E+00 0.551023E+00 0.550345E+00 0.545790E+00 0.522096E+00 0.519426E+00 0.513665E+00 0.492377E+00 0.490911E+00 0.424035E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276398E+00 0.452922E+00 0.517471E+00 0.549083E+00 0.550438E+00 0.552140E+00 0.542700E+00 0.522746E+00 0.518635E+00 0.496314E+00 0.493612E+00 0.426849E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.274920E+00 0.452095E+00 0.514012E+00 0.544187E+00 0.549362E+00 0.550283E+00 0.542233E+00 0.523848E+00 0.522782E+00 0.500403E+00 0.493306E+00 0.427627E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.271893E+00 0.450378E+00 0.509249E+00 0.538818E+00 0.555663E+00 0.549356E+00 0.541799E+00 0.524098E+00 0.539635E+00 0.527962E+00 0.500442E+00 0.432829E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268605E+00 0.448429E+00 0.506007E+00 0.532452E+00 0.551978E+00 0.547303E+00 0.542593E+00 0.527417E+00 0.541515E+00 0.529968E+00 0.503432E+00 0.451323E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265159E+00 0.445772E+00 0.501529E+00 0.524385E+00 0.547403E+00 0.545015E+00 0.549318E+00 0.543967E+00 0.545665E+00 0.531507E+00 0.504185E+00 0.499827E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.261756E+00 0.443650E+00 0.497254E+00 0.516165E+00 0.542948E+00 0.543196E+00 0.548497E+00 0.546482E+00 0.550525E+00 0.533943E+00 0.505047E+00 0.500203E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257939E+00 0.441338E+00 0.493145E+00 0.508688E+00 0.539001E+00 0.541663E+00 0.547730E+00 0.547529E+00 0.552820E+00 0.534054E+00 0.504784E+00 0.498423E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253499E+00 0.439349E+00 0.488885E+00 0.501336E+00 0.535532E+00 0.540234E+00 0.547241E+00 0.548432E+00 0.553943E+00 0.533672E+00 0.503456E+00 0.495708E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249004E+00 0.437042E+00 0.484269E+00 0.494841E+00 0.532246E+00 0.539034E+00 0.546663E+00 0.548694E+00 0.554113E+00 0.533400E+00 0.501700E+00 0.489818E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.243984E+00 0.434092E+00 0.479026E+00 0.489024E+00 0.528940E+00 0.537832E+00 0.545320E+00 0.547596E+00 0.553472E+00 0.532684E+00 0.499486E+00 0.462758E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.238560E+00 0.430273E+00 0.473650E+00 0.483811E+00 0.522868E+00 0.535981E+00 0.539556E+00 0.539246E+00 0.549824E+00 0.528764E+00 0.495662E+00 0.422710E+00 0.196769E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232157E+00 0.426485E+00 0.468075E+00 0.478951E+00 0.514042E+00 0.533592E+00 0.530628E+00 0.522093E+00 0.541440E+00 0.523167E+00 0.491095E+00 0.419717E+00 0.124986E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226043E+00 0.422181E+00 0.462358E+00 0.475023E+00 0.511457E+00 0.529349E+00 0.520192E+00 0.517399E+00 0.525232E+00 0.505877E+00 0.485152E+00 0.415672E+00 0.124620E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219950E+00 0.417490E+00 0.457041E+00 0.468180E+00 0.506358E+00 0.522040E+00 0.504989E+00 0.510438E+00 0.502591E+00 0.479046E+00 0.451097E+00 0.386439E+00 0.120954E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213346E+00 0.410280E+00 0.451115E+00 0.459235E+00 0.496483E+00 0.515460E+00 0.501078E+00 0.502916E+00 0.489696E+00 0.469375E+00 0.415813E+00 0.341828E+00 0.102595E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207192E+00 0.399347E+00 0.442091E+00 0.454555E+00 0.481624E+00 0.497437E+00 0.495620E+00 0.487425E+00 0.465703E+00 0.457753E+00 0.405026E+00 0.145675E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.200793E+00 0.380853E+00 0.431665E+00 0.449506E+00 0.466314E+00 0.476706E+00 0.488213E+00 0.472188E+00 0.442508E+00 0.439132E+00 0.387235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.194886E+00 0.359651E+00 0.424115E+00 0.444826E+00 0.454781E+00 0.466881E+00 0.481521E+00 0.466297E+00 0.435372E+00 0.405642E+00 0.354172E+00 0.171020E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.191021E+00 0.350265E+00 0.415132E+00 0.439110E+00 0.438175E+00 0.452931E+00 0.462375E+00 0.441125E+00 0.427061E+00 0.382053E+00 0.329937E+00 0.103504E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187460E+00 0.345913E+00 0.400425E+00 0.430792E+00 0.424755E+00 0.435269E+00 0.442295E+00 0.421591E+00 0.417865E+00 0.375233E+00 0.325501E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183768E+00 0.342931E+00 0.388080E+00 0.418274E+00 0.418380E+00 0.418832E+00 0.408436E+00 0.407732E+00 0.386125E+00 0.339794E+00 0.311999E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179725E+00 0.339725E+00 0.370858E+00 0.392784E+00 0.408212E+00 0.406357E+00 0.384063E+00 0.386878E+00 0.357962E+00 0.312179E+00 0.287534E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175303E+00 0.329564E+00 0.357595E+00 0.374989E+00 0.396511E+00 0.397706E+00 0.373884E+00 0.370153E+00 0.341918E+00 0.299235E+00 0.139908E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171026E+00 0.312182E+00 0.341167E+00 0.356266E+00 0.375710E+00 0.367553E+00 0.365233E+00 0.346059E+00 0.302844E+00 0.288513E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166065E+00 0.294215E+00 0.327705E+00 0.342756E+00 0.346807E+00 0.341687E+00 0.351395E+00 0.334872E+00 0.290833E+00 0.283723E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.159305E+00 0.275617E+00 0.314633E+00 0.334230E+00 0.336232E+00 0.323346E+00 0.335395E+00 0.323195E+00 0.285430E+00 0.280249E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.146044E+00 0.265091E+00 0.303087E+00 0.323371E+00 0.316057E+00 0.316606E+00 0.322994E+00 0.311268E+00 0.274821E+00 0.270509E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134385E+00 0.247736E+00 0.278097E+00 0.305812E+00 0.308401E+00 0.314528E+00 0.317952E+00 0.304318E+00 0.267659E+00 0.263352E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.106065E+00 0.227222E+00 0.267578E+00 0.281338E+00 0.296597E+00 0.307387E+00 0.312058E+00 0.294864E+00 0.258758E+00 0.254692E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.844346E-03 0.223467E+00 0.260027E+00 0.267753E+00 0.285848E+00 0.298395E+00 0.291564E+00 0.249935E+00 0.245421E+00 0.189779E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249359E+00 0.374858E+00 0.438626E+00 0.463454E+00 0.459027E+00 0.453747E+00 0.434119E+00 0.428178E+00 0.410074E+00 0.389400E+00 0.382448E+00 0.332132E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.268290E+00 0.448728E+00 0.514807E+00 0.545167E+00 0.546081E+00 0.543336E+00 0.519235E+00 0.513877E+00 0.498519E+00 0.484354E+00 0.487204E+00 0.419176E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265223E+00 0.449243E+00 0.513958E+00 0.542762E+00 0.544155E+00 0.548668E+00 0.537901E+00 0.515288E+00 0.501151E+00 0.486892E+00 0.488679E+00 0.421144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263314E+00 0.448622E+00 0.510652E+00 0.537920E+00 0.541375E+00 0.546256E+00 0.536487E+00 0.514661E+00 0.503800E+00 0.488822E+00 0.486392E+00 0.421133E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260093E+00 0.446983E+00 0.507576E+00 0.533940E+00 0.546293E+00 0.544645E+00 0.535729E+00 0.514031E+00 0.519742E+00 0.512209E+00 0.490975E+00 0.425274E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.256564E+00 0.444658E+00 0.503346E+00 0.526886E+00 0.541855E+00 0.542467E+00 0.535868E+00 0.515959E+00 0.522206E+00 0.516106E+00 0.494661E+00 0.442757E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.252836E+00 0.441847E+00 0.499427E+00 0.519645E+00 0.537271E+00 0.540475E+00 0.541762E+00 0.530434E+00 0.526009E+00 0.518621E+00 0.495267E+00 0.492800E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249412E+00 0.439472E+00 0.495919E+00 0.512340E+00 0.532639E+00 0.538198E+00 0.540019E+00 0.530323E+00 0.529248E+00 0.520896E+00 0.496090E+00 0.493141E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.245708E+00 0.437512E+00 0.492021E+00 0.505147E+00 0.527539E+00 0.536023E+00 0.538952E+00 0.530431E+00 0.530963E+00 0.522123E+00 0.496159E+00 0.492287E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.241425E+00 0.435859E+00 0.487600E+00 0.498705E+00 0.523084E+00 0.534529E+00 0.538110E+00 0.530031E+00 0.531203E+00 0.522278E+00 0.495446E+00 0.490150E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.237370E+00 0.433641E+00 0.482559E+00 0.492570E+00 0.519304E+00 0.533770E+00 0.537252E+00 0.529018E+00 0.529467E+00 0.520617E+00 0.493347E+00 0.484273E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232949E+00 0.430343E+00 0.476559E+00 0.485980E+00 0.515941E+00 0.533066E+00 0.536227E+00 0.527507E+00 0.527609E+00 0.518283E+00 0.489993E+00 0.456634E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.228431E+00 0.425858E+00 0.470516E+00 0.479567E+00 0.510391E+00 0.531876E+00 0.531395E+00 0.520392E+00 0.525218E+00 0.514701E+00 0.486998E+00 0.417010E+00 0.195839E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223447E+00 0.421130E+00 0.464346E+00 0.473749E+00 0.501559E+00 0.529259E+00 0.523912E+00 0.507419E+00 0.520664E+00 0.509946E+00 0.483798E+00 0.414776E+00 0.124405E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.218449E+00 0.416098E+00 0.458725E+00 0.469437E+00 0.496662E+00 0.522996E+00 0.513677E+00 0.505593E+00 0.506956E+00 0.493164E+00 0.477702E+00 0.410842E+00 0.124088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213406E+00 0.412378E+00 0.453407E+00 0.462004E+00 0.489092E+00 0.514827E+00 0.499054E+00 0.501871E+00 0.487671E+00 0.468339E+00 0.443886E+00 0.381758E+00 0.120339E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207556E+00 0.403972E+00 0.447728E+00 0.453628E+00 0.477603E+00 0.507781E+00 0.496039E+00 0.496823E+00 0.477367E+00 0.458340E+00 0.406182E+00 0.336370E+00 0.102245E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202579E+00 0.387144E+00 0.438382E+00 0.448820E+00 0.465923E+00 0.489840E+00 0.492235E+00 0.483743E+00 0.457860E+00 0.447354E+00 0.395400E+00 0.142942E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197658E+00 0.368599E+00 0.429068E+00 0.445402E+00 0.455966E+00 0.471172E+00 0.486579E+00 0.470800E+00 0.439494E+00 0.434245E+00 0.383079E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.192339E+00 0.356194E+00 0.422239E+00 0.442897E+00 0.449596E+00 0.460978E+00 0.479773E+00 0.466085E+00 0.434982E+00 0.404281E+00 0.351925E+00 0.170038E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187189E+00 0.348905E+00 0.411860E+00 0.436114E+00 0.434780E+00 0.446034E+00 0.460395E+00 0.441129E+00 0.427726E+00 0.380840E+00 0.327887E+00 0.102898E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182061E+00 0.343794E+00 0.398792E+00 0.428511E+00 0.424672E+00 0.434126E+00 0.442281E+00 0.421912E+00 0.418838E+00 0.374537E+00 0.323351E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176593E+00 0.341388E+00 0.388666E+00 0.418442E+00 0.420004E+00 0.420551E+00 0.411229E+00 0.410263E+00 0.387234E+00 0.338569E+00 0.310101E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171524E+00 0.338523E+00 0.370427E+00 0.395450E+00 0.410714E+00 0.409054E+00 0.387002E+00 0.389666E+00 0.359397E+00 0.312084E+00 0.287906E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166636E+00 0.324168E+00 0.358449E+00 0.379174E+00 0.400641E+00 0.400350E+00 0.374932E+00 0.370487E+00 0.341104E+00 0.298646E+00 0.143267E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162207E+00 0.312876E+00 0.343821E+00 0.359673E+00 0.378313E+00 0.369202E+00 0.366189E+00 0.345918E+00 0.302514E+00 0.287664E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.157803E+00 0.291548E+00 0.331146E+00 0.345991E+00 0.347968E+00 0.341731E+00 0.351349E+00 0.333793E+00 0.289629E+00 0.281493E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151864E+00 0.273894E+00 0.313557E+00 0.334258E+00 0.336193E+00 0.321322E+00 0.329362E+00 0.318842E+00 0.281707E+00 0.276011E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143064E+00 0.263219E+00 0.300883E+00 0.323511E+00 0.315532E+00 0.314568E+00 0.317841E+00 0.307085E+00 0.270621E+00 0.266508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134468E+00 0.248776E+00 0.277623E+00 0.309969E+00 0.309898E+00 0.314289E+00 0.316843E+00 0.301482E+00 0.264157E+00 0.260267E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.105476E+00 0.231428E+00 0.268418E+00 0.281190E+00 0.297808E+00 0.307212E+00 0.311031E+00 0.292297E+00 0.255856E+00 0.251456E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.789285E-03 0.223715E+00 0.260932E+00 0.271315E+00 0.290285E+00 0.302231E+00 0.293018E+00 0.249481E+00 0.243194E+00 0.188966E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231174E+00 0.359790E+00 0.420768E+00 0.449216E+00 0.452338E+00 0.452635E+00 0.433776E+00 0.425482E+00 0.403449E+00 0.381345E+00 0.375880E+00 0.327619E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249902E+00 0.436170E+00 0.500138E+00 0.531989E+00 0.538589E+00 0.540450E+00 0.517815E+00 0.509875E+00 0.488378E+00 0.471060E+00 0.478369E+00 0.413138E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246907E+00 0.437423E+00 0.499200E+00 0.529770E+00 0.535945E+00 0.545013E+00 0.537108E+00 0.511758E+00 0.489764E+00 0.472685E+00 0.479570E+00 0.414761E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244908E+00 0.436510E+00 0.497980E+00 0.525903E+00 0.532267E+00 0.542320E+00 0.537078E+00 0.511456E+00 0.489895E+00 0.473611E+00 0.477685E+00 0.414264E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242036E+00 0.434661E+00 0.494557E+00 0.521879E+00 0.534293E+00 0.539574E+00 0.536275E+00 0.509957E+00 0.504948E+00 0.494406E+00 0.480353E+00 0.417203E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239079E+00 0.432832E+00 0.491733E+00 0.515593E+00 0.526669E+00 0.535089E+00 0.534384E+00 0.509876E+00 0.503506E+00 0.495588E+00 0.482600E+00 0.433367E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235851E+00 0.431225E+00 0.488376E+00 0.509708E+00 0.519747E+00 0.531209E+00 0.539031E+00 0.523248E+00 0.505852E+00 0.498283E+00 0.483148E+00 0.485036E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232679E+00 0.429733E+00 0.484951E+00 0.503180E+00 0.513980E+00 0.528459E+00 0.536863E+00 0.522190E+00 0.507759E+00 0.500069E+00 0.483529E+00 0.484325E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229545E+00 0.428196E+00 0.481090E+00 0.496701E+00 0.509341E+00 0.526250E+00 0.535481E+00 0.521409E+00 0.509224E+00 0.501431E+00 0.483467E+00 0.482835E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226540E+00 0.426597E+00 0.476856E+00 0.490373E+00 0.504303E+00 0.524148E+00 0.534026E+00 0.520533E+00 0.510329E+00 0.501990E+00 0.483128E+00 0.481064E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223248E+00 0.424322E+00 0.472105E+00 0.483848E+00 0.498898E+00 0.522048E+00 0.532618E+00 0.520053E+00 0.510505E+00 0.502539E+00 0.482417E+00 0.477144E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.220641E+00 0.421910E+00 0.466006E+00 0.477129E+00 0.494785E+00 0.520819E+00 0.531390E+00 0.519765E+00 0.510637E+00 0.502456E+00 0.481104E+00 0.451671E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.218560E+00 0.419008E+00 0.460715E+00 0.470920E+00 0.489520E+00 0.520508E+00 0.527108E+00 0.512854E+00 0.509210E+00 0.499785E+00 0.479456E+00 0.412696E+00 0.195075E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215790E+00 0.414916E+00 0.456029E+00 0.465122E+00 0.481013E+00 0.518238E+00 0.519650E+00 0.500111E+00 0.505039E+00 0.494105E+00 0.475076E+00 0.409543E+00 0.123812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.212803E+00 0.408420E+00 0.452351E+00 0.460878E+00 0.476079E+00 0.512008E+00 0.509557E+00 0.498708E+00 0.491829E+00 0.476681E+00 0.467434E+00 0.403953E+00 0.123369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.209684E+00 0.399910E+00 0.448441E+00 0.454933E+00 0.468344E+00 0.502261E+00 0.495129E+00 0.495747E+00 0.475420E+00 0.455250E+00 0.435278E+00 0.375310E+00 0.119589E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206315E+00 0.387264E+00 0.443813E+00 0.448114E+00 0.461764E+00 0.493570E+00 0.492465E+00 0.493059E+00 0.472060E+00 0.448850E+00 0.398232E+00 0.330653E+00 0.100499E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.201760E+00 0.372962E+00 0.434038E+00 0.444347E+00 0.456198E+00 0.477876E+00 0.489716E+00 0.482813E+00 0.455867E+00 0.442243E+00 0.391460E+00 0.136910E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.196620E+00 0.361384E+00 0.426179E+00 0.441766E+00 0.449750E+00 0.462923E+00 0.484875E+00 0.471796E+00 0.439355E+00 0.433610E+00 0.382349E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.191145E+00 0.357383E+00 0.420692E+00 0.439616E+00 0.445031E+00 0.453111E+00 0.477512E+00 0.466873E+00 0.434902E+00 0.403967E+00 0.351474E+00 0.169390E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185021E+00 0.351589E+00 0.409920E+00 0.435130E+00 0.433187E+00 0.442684E+00 0.459617E+00 0.441840E+00 0.428236E+00 0.380491E+00 0.326929E+00 0.102232E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179461E+00 0.345383E+00 0.400264E+00 0.427543E+00 0.424457E+00 0.433320E+00 0.443018E+00 0.423535E+00 0.421106E+00 0.375107E+00 0.322235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174215E+00 0.341190E+00 0.382680E+00 0.418106E+00 0.420498E+00 0.421131E+00 0.413195E+00 0.413187E+00 0.390268E+00 0.339248E+00 0.308760E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169040E+00 0.333140E+00 0.368681E+00 0.398139E+00 0.412994E+00 0.410133E+00 0.389101E+00 0.393841E+00 0.363525E+00 0.313504E+00 0.287541E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.163574E+00 0.320516E+00 0.358700E+00 0.384260E+00 0.404830E+00 0.401580E+00 0.375707E+00 0.372958E+00 0.343949E+00 0.300334E+00 0.142579E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.157389E+00 0.313007E+00 0.346298E+00 0.367248E+00 0.385895E+00 0.372352E+00 0.367260E+00 0.346762E+00 0.303341E+00 0.288193E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150189E+00 0.288158E+00 0.333483E+00 0.351424E+00 0.355810E+00 0.348150E+00 0.355483E+00 0.335996E+00 0.290527E+00 0.282234E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.141407E+00 0.277396E+00 0.318551E+00 0.338984E+00 0.339167E+00 0.324504E+00 0.329403E+00 0.317812E+00 0.280715E+00 0.274582E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134000E+00 0.264114E+00 0.304700E+00 0.325547E+00 0.316084E+00 0.315557E+00 0.320504E+00 0.311280E+00 0.273274E+00 0.267906E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.122280E+00 0.252989E+00 0.280035E+00 0.314727E+00 0.313703E+00 0.317485E+00 0.321169E+00 0.307087E+00 0.267780E+00 0.262051E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.973068E-01 0.239251E+00 0.271531E+00 0.282551E+00 0.301319E+00 0.309052E+00 0.312547E+00 0.292549E+00 0.255429E+00 0.250952E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.758079E-03 0.227851E+00 0.263705E+00 0.276178E+00 0.296248E+00 0.304848E+00 0.293126E+00 0.249060E+00 0.242382E+00 0.188306E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.216457E+00 0.344106E+00 0.401434E+00 0.434100E+00 0.443882E+00 0.450519E+00 0.436755E+00 0.429894E+00 0.406388E+00 0.380216E+00 0.371173E+00 0.324238E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.236761E+00 0.421495E+00 0.485182E+00 0.518908E+00 0.528870E+00 0.536795E+00 0.520436E+00 0.514663E+00 0.490279E+00 0.464912E+00 0.467909E+00 0.408005E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.234078E+00 0.422424E+00 0.485271E+00 0.517082E+00 0.526553E+00 0.539800E+00 0.538241E+00 0.516975E+00 0.490900E+00 0.463537E+00 0.467782E+00 0.408045E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232806E+00 0.421939E+00 0.482987E+00 0.512809E+00 0.521240E+00 0.534945E+00 0.536805E+00 0.516541E+00 0.490897E+00 0.463493E+00 0.465753E+00 0.407193E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231110E+00 0.421757E+00 0.480882E+00 0.508506E+00 0.521161E+00 0.529371E+00 0.534174E+00 0.513520E+00 0.506878E+00 0.483726E+00 0.469396E+00 0.410707E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229293E+00 0.420860E+00 0.478702E+00 0.502848E+00 0.513174E+00 0.523699E+00 0.531786E+00 0.513327E+00 0.503788E+00 0.484534E+00 0.472964E+00 0.427757E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227578E+00 0.419961E+00 0.476272E+00 0.496759E+00 0.504754E+00 0.518660E+00 0.535092E+00 0.525953E+00 0.503560E+00 0.486770E+00 0.474915E+00 0.478571E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.226149E+00 0.418428E+00 0.473344E+00 0.490779E+00 0.496941E+00 0.514287E+00 0.531864E+00 0.523340E+00 0.502712E+00 0.489137E+00 0.476751E+00 0.478955E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224685E+00 0.417193E+00 0.469858E+00 0.484562E+00 0.489178E+00 0.509875E+00 0.528726E+00 0.520934E+00 0.502733E+00 0.490720E+00 0.477282E+00 0.478627E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223417E+00 0.414658E+00 0.465923E+00 0.478524E+00 0.482512E+00 0.505942E+00 0.525639E+00 0.518706E+00 0.502476E+00 0.491158E+00 0.476933E+00 0.477554E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221982E+00 0.411273E+00 0.461798E+00 0.472597E+00 0.476511E+00 0.502556E+00 0.522815E+00 0.516595E+00 0.501014E+00 0.490309E+00 0.475142E+00 0.473042E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.220017E+00 0.407227E+00 0.457715E+00 0.466863E+00 0.471485E+00 0.499998E+00 0.520476E+00 0.514381E+00 0.499149E+00 0.488785E+00 0.472647E+00 0.446894E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217892E+00 0.402136E+00 0.453472E+00 0.460930E+00 0.464333E+00 0.497696E+00 0.515334E+00 0.506039E+00 0.496606E+00 0.483698E+00 0.467710E+00 0.405282E+00 0.193876E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214516E+00 0.395665E+00 0.449377E+00 0.455388E+00 0.455190E+00 0.494529E+00 0.508048E+00 0.492272E+00 0.491251E+00 0.477001E+00 0.461269E+00 0.400574E+00 0.122919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.210578E+00 0.386995E+00 0.444606E+00 0.451475E+00 0.451840E+00 0.488096E+00 0.498755E+00 0.490876E+00 0.479809E+00 0.460164E+00 0.451510E+00 0.393838E+00 0.122317E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206371E+00 0.377507E+00 0.440426E+00 0.445403E+00 0.449369E+00 0.479912E+00 0.486408E+00 0.489745E+00 0.467488E+00 0.441095E+00 0.421624E+00 0.366572E+00 0.118628E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.201706E+00 0.370441E+00 0.436975E+00 0.439204E+00 0.447422E+00 0.470984E+00 0.483137E+00 0.488275E+00 0.466579E+00 0.439536E+00 0.390730E+00 0.326330E+00 0.985387E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.196360E+00 0.363724E+00 0.430947E+00 0.438119E+00 0.443930E+00 0.459091E+00 0.479915E+00 0.477920E+00 0.451941E+00 0.436996E+00 0.387616E+00 0.130516E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190267E+00 0.360185E+00 0.423195E+00 0.437539E+00 0.442017E+00 0.448508E+00 0.475864E+00 0.466474E+00 0.434913E+00 0.429524E+00 0.377886E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184194E+00 0.355903E+00 0.417011E+00 0.438064E+00 0.442748E+00 0.444266E+00 0.470116E+00 0.462272E+00 0.431696E+00 0.401060E+00 0.349566E+00 0.168794E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178529E+00 0.350197E+00 0.406508E+00 0.433435E+00 0.432111E+00 0.438561E+00 0.454424E+00 0.439603E+00 0.426692E+00 0.379188E+00 0.326132E+00 0.101571E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.172964E+00 0.343739E+00 0.388754E+00 0.424696E+00 0.423508E+00 0.431955E+00 0.439257E+00 0.422771E+00 0.421302E+00 0.376046E+00 0.322230E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.168435E+00 0.336938E+00 0.372609E+00 0.416873E+00 0.419222E+00 0.419193E+00 0.410625E+00 0.414426E+00 0.391911E+00 0.339955E+00 0.308539E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.164625E+00 0.329394E+00 0.363972E+00 0.399619E+00 0.413162E+00 0.408209E+00 0.387023E+00 0.395473E+00 0.365614E+00 0.314379E+00 0.287030E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.160373E+00 0.319922E+00 0.357164E+00 0.387467E+00 0.406867E+00 0.401396E+00 0.375425E+00 0.375423E+00 0.347926E+00 0.302084E+00 0.140480E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154204E+00 0.313063E+00 0.347190E+00 0.373442E+00 0.392847E+00 0.375849E+00 0.369920E+00 0.349152E+00 0.305082E+00 0.288927E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.148150E+00 0.286064E+00 0.333960E+00 0.356661E+00 0.368063E+00 0.358067E+00 0.363877E+00 0.341030E+00 0.292311E+00 0.283419E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140837E+00 0.279175E+00 0.324227E+00 0.344304E+00 0.344996E+00 0.332237E+00 0.342489E+00 0.329339E+00 0.287643E+00 0.278883E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132303E+00 0.266973E+00 0.312294E+00 0.329603E+00 0.319118E+00 0.321719E+00 0.332474E+00 0.322564E+00 0.282228E+00 0.274228E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.117622E+00 0.257342E+00 0.284242E+00 0.318627E+00 0.317274E+00 0.323385E+00 0.330387E+00 0.316867E+00 0.275448E+00 0.268022E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.101788E+00 0.243895E+00 0.273823E+00 0.285346E+00 0.305303E+00 0.313883E+00 0.317265E+00 0.298567E+00 0.258870E+00 0.252808E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.787671E-03 0.231452E+00 0.264126E+00 0.277548E+00 0.297614E+00 0.305922E+00 0.293293E+00 0.249878E+00 0.242221E+00 0.188154E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202854E+00 0.325033E+00 0.389270E+00 0.424246E+00 0.437146E+00 0.446025E+00 0.435512E+00 0.430556E+00 0.407697E+00 0.380841E+00 0.369075E+00 0.323324E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224287E+00 0.406205E+00 0.475810E+00 0.509379E+00 0.520521E+00 0.529736E+00 0.517179E+00 0.513298E+00 0.491017E+00 0.464424E+00 0.460877E+00 0.405771E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223342E+00 0.406597E+00 0.476072E+00 0.507138E+00 0.517347E+00 0.530997E+00 0.532654E+00 0.515588E+00 0.491711E+00 0.462134E+00 0.458625E+00 0.405043E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.223010E+00 0.405397E+00 0.474404E+00 0.503226E+00 0.510592E+00 0.523291E+00 0.530107E+00 0.514691E+00 0.492382E+00 0.459769E+00 0.456471E+00 0.402906E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.222319E+00 0.404596E+00 0.472154E+00 0.499449E+00 0.511507E+00 0.516280E+00 0.525652E+00 0.511359E+00 0.507002E+00 0.478139E+00 0.459552E+00 0.405874E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221178E+00 0.403707E+00 0.469247E+00 0.493847E+00 0.504309E+00 0.509628E+00 0.523127E+00 0.511927E+00 0.504438E+00 0.477886E+00 0.462518E+00 0.422501E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.220067E+00 0.402115E+00 0.466153E+00 0.487871E+00 0.497155E+00 0.503056E+00 0.524981E+00 0.523307E+00 0.503390E+00 0.478738E+00 0.464376E+00 0.469964E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219184E+00 0.399808E+00 0.463280E+00 0.482048E+00 0.490192E+00 0.498119E+00 0.522413E+00 0.521565E+00 0.501232E+00 0.479152E+00 0.465740E+00 0.471328E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217663E+00 0.396676E+00 0.460350E+00 0.476336E+00 0.483016E+00 0.493482E+00 0.518709E+00 0.518802E+00 0.498910E+00 0.479492E+00 0.466644E+00 0.471608E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.216207E+00 0.392383E+00 0.456709E+00 0.471219E+00 0.476242E+00 0.489390E+00 0.515549E+00 0.515935E+00 0.496519E+00 0.479429E+00 0.466443E+00 0.470548E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214888E+00 0.387565E+00 0.452388E+00 0.466190E+00 0.470037E+00 0.485184E+00 0.511915E+00 0.512829E+00 0.494406E+00 0.478648E+00 0.465064E+00 0.466015E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.212587E+00 0.383066E+00 0.447618E+00 0.461144E+00 0.464030E+00 0.480957E+00 0.508022E+00 0.509884E+00 0.492676E+00 0.477198E+00 0.462229E+00 0.440319E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.209701E+00 0.378793E+00 0.442669E+00 0.455793E+00 0.456131E+00 0.477306E+00 0.501381E+00 0.500735E+00 0.489936E+00 0.472371E+00 0.455206E+00 0.395329E+00 0.192094E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.206213E+00 0.373350E+00 0.437795E+00 0.451426E+00 0.447355E+00 0.473141E+00 0.492599E+00 0.486258E+00 0.484814E+00 0.461500E+00 0.444876E+00 0.388398E+00 0.121597E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202420E+00 0.368355E+00 0.434911E+00 0.448403E+00 0.445046E+00 0.466279E+00 0.482690E+00 0.483818E+00 0.473354E+00 0.445057E+00 0.433528E+00 0.379876E+00 0.120740E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198141E+00 0.365144E+00 0.432943E+00 0.443411E+00 0.442980E+00 0.457746E+00 0.470307E+00 0.481772E+00 0.460713E+00 0.430869E+00 0.407011E+00 0.354588E+00 0.117198E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193697E+00 0.362255E+00 0.430548E+00 0.436878E+00 0.440683E+00 0.451819E+00 0.467384E+00 0.479967E+00 0.460530E+00 0.431824E+00 0.381212E+00 0.319591E+00 0.945115E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188838E+00 0.359368E+00 0.425383E+00 0.435606E+00 0.438623E+00 0.442985E+00 0.465870E+00 0.470358E+00 0.446096E+00 0.429551E+00 0.378193E+00 0.124030E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184198E+00 0.356287E+00 0.418276E+00 0.435805E+00 0.438267E+00 0.436796E+00 0.463838E+00 0.460385E+00 0.430328E+00 0.424354E+00 0.371278E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178937E+00 0.352108E+00 0.406874E+00 0.435187E+00 0.438446E+00 0.435804E+00 0.458717E+00 0.456125E+00 0.427919E+00 0.397841E+00 0.346438E+00 0.167922E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.173409E+00 0.345184E+00 0.391204E+00 0.427844E+00 0.429169E+00 0.432817E+00 0.442581E+00 0.433367E+00 0.423867E+00 0.377281E+00 0.324551E+00 0.102680E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.166786E+00 0.339594E+00 0.373097E+00 0.420481E+00 0.419302E+00 0.426006E+00 0.426308E+00 0.416168E+00 0.418057E+00 0.374071E+00 0.320811E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.160716E+00 0.333938E+00 0.364281E+00 0.415520E+00 0.414597E+00 0.412323E+00 0.399928E+00 0.407047E+00 0.387984E+00 0.338325E+00 0.307290E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154727E+00 0.328159E+00 0.357870E+00 0.399524E+00 0.409643E+00 0.402984E+00 0.380889E+00 0.389586E+00 0.362986E+00 0.313318E+00 0.285640E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149660E+00 0.319599E+00 0.353232E+00 0.385956E+00 0.405061E+00 0.399221E+00 0.374796E+00 0.376006E+00 0.349754E+00 0.303590E+00 0.137295E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.146343E+00 0.308221E+00 0.343349E+00 0.369408E+00 0.393397E+00 0.376411E+00 0.371766E+00 0.353034E+00 0.308183E+00 0.289781E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140337E+00 0.284215E+00 0.332326E+00 0.357020E+00 0.374580E+00 0.365053E+00 0.369171E+00 0.345625E+00 0.294516E+00 0.283945E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.133603E+00 0.279515E+00 0.323769E+00 0.345477E+00 0.349854E+00 0.343711E+00 0.357573E+00 0.341397E+00 0.293129E+00 0.281992E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123347E+00 0.270106E+00 0.314810E+00 0.332838E+00 0.324689E+00 0.332313E+00 0.346828E+00 0.336049E+00 0.290797E+00 0.279800E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110906E+00 0.260089E+00 0.287551E+00 0.323842E+00 0.323058E+00 0.330762E+00 0.341316E+00 0.327747E+00 0.284030E+00 0.273613E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.931812E-01 0.249808E+00 0.276261E+00 0.289811E+00 0.310026E+00 0.317611E+00 0.322384E+00 0.307458E+00 0.266858E+00 0.258461E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.695273E-03 0.231260E+00 0.263720E+00 0.275249E+00 0.296263E+00 0.306586E+00 0.292819E+00 0.249905E+00 0.242702E+00 0.188987E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.195671E+00 0.307784E+00 0.381498E+00 0.419265E+00 0.433728E+00 0.442781E+00 0.432659E+00 0.428256E+00 0.405434E+00 0.377834E+00 0.365353E+00 0.320708E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217623E+00 0.392585E+00 0.467591E+00 0.502094E+00 0.514337E+00 0.523093E+00 0.511134E+00 0.507946E+00 0.485657E+00 0.458576E+00 0.453460E+00 0.400934E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.216844E+00 0.391901E+00 0.466437E+00 0.499945E+00 0.511709E+00 0.525036E+00 0.525885E+00 0.510078E+00 0.486960E+00 0.457125E+00 0.450540E+00 0.399631E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.216189E+00 0.389843E+00 0.464161E+00 0.496213E+00 0.506611E+00 0.517374E+00 0.522096E+00 0.508945E+00 0.487796E+00 0.456227E+00 0.447099E+00 0.398020E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215673E+00 0.387357E+00 0.461338E+00 0.492620E+00 0.507730E+00 0.510980E+00 0.517940E+00 0.506902E+00 0.503221E+00 0.473590E+00 0.448434E+00 0.400102E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214718E+00 0.384932E+00 0.458035E+00 0.486874E+00 0.500443E+00 0.503572E+00 0.513559E+00 0.506610E+00 0.500247E+00 0.471501E+00 0.449081E+00 0.413852E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213250E+00 0.382301E+00 0.454750E+00 0.481522E+00 0.493418E+00 0.495797E+00 0.512608E+00 0.515318E+00 0.498949E+00 0.470235E+00 0.450601E+00 0.457094E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.212217E+00 0.380251E+00 0.451903E+00 0.476267E+00 0.486405E+00 0.488171E+00 0.507518E+00 0.512354E+00 0.497065E+00 0.469185E+00 0.452071E+00 0.458222E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.210000E+00 0.378273E+00 0.448394E+00 0.471163E+00 0.480678E+00 0.482185E+00 0.504416E+00 0.510447E+00 0.495482E+00 0.469382E+00 0.453415E+00 0.458725E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207560E+00 0.375819E+00 0.444329E+00 0.466403E+00 0.475009E+00 0.476452E+00 0.501107E+00 0.508215E+00 0.494123E+00 0.469157E+00 0.453825E+00 0.457641E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205279E+00 0.373060E+00 0.440094E+00 0.461206E+00 0.468790E+00 0.471478E+00 0.497526E+00 0.505455E+00 0.492191E+00 0.468031E+00 0.452720E+00 0.452953E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202209E+00 0.370486E+00 0.435416E+00 0.456586E+00 0.463682E+00 0.467945E+00 0.493791E+00 0.502346E+00 0.490588E+00 0.465510E+00 0.449678E+00 0.428762E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198766E+00 0.368412E+00 0.430261E+00 0.451629E+00 0.456584E+00 0.463561E+00 0.487033E+00 0.493764E+00 0.487974E+00 0.461018E+00 0.443445E+00 0.385627E+00 0.190220E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.194719E+00 0.365848E+00 0.425063E+00 0.447258E+00 0.446837E+00 0.459283E+00 0.478591E+00 0.480562E+00 0.483236E+00 0.453702E+00 0.430760E+00 0.375447E+00 0.120115E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.191169E+00 0.363119E+00 0.421857E+00 0.444274E+00 0.443008E+00 0.451752E+00 0.467550E+00 0.476728E+00 0.471049E+00 0.441184E+00 0.422539E+00 0.368057E+00 0.119167E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187567E+00 0.360537E+00 0.418790E+00 0.439174E+00 0.439557E+00 0.442647E+00 0.454195E+00 0.471903E+00 0.456373E+00 0.426856E+00 0.400449E+00 0.346128E+00 0.115975E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184135E+00 0.358095E+00 0.415775E+00 0.433740E+00 0.437217E+00 0.437685E+00 0.450824E+00 0.468641E+00 0.454297E+00 0.427028E+00 0.374625E+00 0.314449E+00 0.929732E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.179465E+00 0.355589E+00 0.411266E+00 0.432955E+00 0.434199E+00 0.430928E+00 0.448972E+00 0.459320E+00 0.439290E+00 0.423735E+00 0.371975E+00 0.120816E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175613E+00 0.352501E+00 0.401880E+00 0.431536E+00 0.432653E+00 0.425221E+00 0.446480E+00 0.448935E+00 0.424614E+00 0.419413E+00 0.366940E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171430E+00 0.348096E+00 0.389688E+00 0.428794E+00 0.432781E+00 0.424850E+00 0.439821E+00 0.442448E+00 0.421644E+00 0.394743E+00 0.343443E+00 0.166950E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167512E+00 0.341140E+00 0.375157E+00 0.423550E+00 0.423689E+00 0.421985E+00 0.424421E+00 0.419903E+00 0.417325E+00 0.373779E+00 0.322028E+00 0.101340E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161872E+00 0.336249E+00 0.364540E+00 0.417002E+00 0.415316E+00 0.416680E+00 0.409456E+00 0.401337E+00 0.409491E+00 0.369705E+00 0.318303E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158338E+00 0.333460E+00 0.359517E+00 0.410530E+00 0.412442E+00 0.406115E+00 0.386334E+00 0.390505E+00 0.378867E+00 0.334231E+00 0.305619E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154507E+00 0.328572E+00 0.354130E+00 0.391329E+00 0.407146E+00 0.398543E+00 0.372907E+00 0.378591E+00 0.356908E+00 0.310428E+00 0.283186E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149159E+00 0.323805E+00 0.348671E+00 0.371203E+00 0.399787E+00 0.395076E+00 0.371250E+00 0.374256E+00 0.349023E+00 0.304413E+00 0.130162E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143101E+00 0.304129E+00 0.340629E+00 0.357056E+00 0.384946E+00 0.375527E+00 0.372022E+00 0.356265E+00 0.312398E+00 0.292712E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.135914E+00 0.282770E+00 0.332941E+00 0.352995E+00 0.369935E+00 0.366553E+00 0.371555E+00 0.350424E+00 0.298728E+00 0.286133E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.126625E+00 0.279125E+00 0.323694E+00 0.346281E+00 0.354222E+00 0.355481E+00 0.366426E+00 0.346540E+00 0.295166E+00 0.283431E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116384E+00 0.272578E+00 0.315323E+00 0.336267E+00 0.331109E+00 0.344034E+00 0.357542E+00 0.342264E+00 0.293236E+00 0.281166E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.106165E+00 0.263272E+00 0.286714E+00 0.325073E+00 0.327068E+00 0.339067E+00 0.350207E+00 0.334994E+00 0.288849E+00 0.277066E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.889789E-01 0.250334E+00 0.274545E+00 0.292220E+00 0.313389E+00 0.321775E+00 0.329134E+00 0.315893E+00 0.274670E+00 0.264617E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.583305E-03 0.230196E+00 0.261989E+00 0.270060E+00 0.294844E+00 0.304999E+00 0.292471E+00 0.248886E+00 0.242072E+00 0.189484E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182995E+00 0.282771E+00 0.366199E+00 0.405797E+00 0.419821E+00 0.428568E+00 0.419269E+00 0.416068E+00 0.394304E+00 0.364689E+00 0.350502E+00 0.308145E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.204145E+00 0.367121E+00 0.446170E+00 0.481279E+00 0.492877E+00 0.501003E+00 0.491385E+00 0.489739E+00 0.468779E+00 0.437838E+00 0.430810E+00 0.384323E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203075E+00 0.366944E+00 0.444305E+00 0.478960E+00 0.490602E+00 0.502542E+00 0.503873E+00 0.490576E+00 0.470067E+00 0.438038E+00 0.429545E+00 0.382134E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.202343E+00 0.365023E+00 0.441503E+00 0.475669E+00 0.487021E+00 0.496128E+00 0.499586E+00 0.488640E+00 0.471465E+00 0.439236E+00 0.427292E+00 0.380191E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.201338E+00 0.363031E+00 0.438352E+00 0.472339E+00 0.487674E+00 0.490579E+00 0.495086E+00 0.485707E+00 0.485014E+00 0.459060E+00 0.429676E+00 0.381535E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.199820E+00 0.360745E+00 0.434908E+00 0.467416E+00 0.482818E+00 0.485439E+00 0.490991E+00 0.484773E+00 0.482578E+00 0.457859E+00 0.429594E+00 0.393479E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197816E+00 0.358679E+00 0.431662E+00 0.463115E+00 0.476593E+00 0.479021E+00 0.489167E+00 0.491694E+00 0.481824E+00 0.457169E+00 0.429375E+00 0.432047E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.195683E+00 0.356850E+00 0.427444E+00 0.458395E+00 0.471557E+00 0.472710E+00 0.483039E+00 0.488599E+00 0.480849E+00 0.456178E+00 0.430293E+00 0.434535E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193278E+00 0.355298E+00 0.422894E+00 0.453647E+00 0.465769E+00 0.466359E+00 0.478706E+00 0.486954E+00 0.479999E+00 0.455262E+00 0.431421E+00 0.435614E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190815E+00 0.353982E+00 0.417602E+00 0.448500E+00 0.460340E+00 0.461024E+00 0.475323E+00 0.484898E+00 0.478638E+00 0.454220E+00 0.432114E+00 0.435157E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.188068E+00 0.352755E+00 0.412692E+00 0.443194E+00 0.454903E+00 0.455868E+00 0.472235E+00 0.483476E+00 0.477628E+00 0.452972E+00 0.430861E+00 0.429786E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.185035E+00 0.351020E+00 0.407765E+00 0.438551E+00 0.450487E+00 0.451395E+00 0.469593E+00 0.481417E+00 0.476564E+00 0.452031E+00 0.428059E+00 0.406756E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181535E+00 0.350139E+00 0.401652E+00 0.434307E+00 0.444799E+00 0.447392E+00 0.465541E+00 0.475100E+00 0.474436E+00 0.450230E+00 0.424328E+00 0.370781E+00 0.187019E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.177896E+00 0.348665E+00 0.396706E+00 0.430072E+00 0.437503E+00 0.443508E+00 0.458838E+00 0.464773E+00 0.470758E+00 0.447534E+00 0.419588E+00 0.366051E+00 0.118347E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174459E+00 0.347214E+00 0.393875E+00 0.428096E+00 0.435542E+00 0.439073E+00 0.450831E+00 0.461140E+00 0.460103E+00 0.434829E+00 0.414712E+00 0.359225E+00 0.117375E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171014E+00 0.345552E+00 0.391592E+00 0.423475E+00 0.432719E+00 0.432727E+00 0.439002E+00 0.456289E+00 0.446232E+00 0.418162E+00 0.392274E+00 0.338105E+00 0.114396E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167594E+00 0.343862E+00 0.388740E+00 0.418071E+00 0.429994E+00 0.430241E+00 0.435414E+00 0.452575E+00 0.443734E+00 0.417764E+00 0.367761E+00 0.307709E+00 0.914254E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162896E+00 0.341502E+00 0.384322E+00 0.417112E+00 0.427659E+00 0.422317E+00 0.431778E+00 0.442714E+00 0.428683E+00 0.415072E+00 0.366444E+00 0.114254E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158964E+00 0.339510E+00 0.378076E+00 0.414253E+00 0.425421E+00 0.413964E+00 0.427464E+00 0.431942E+00 0.412913E+00 0.410199E+00 0.361866E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.155450E+00 0.338375E+00 0.369350E+00 0.411302E+00 0.423335E+00 0.412635E+00 0.420548E+00 0.423071E+00 0.408737E+00 0.387078E+00 0.337981E+00 0.165106E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.153432E+00 0.333621E+00 0.358826E+00 0.405630E+00 0.412748E+00 0.409373E+00 0.406381E+00 0.398443E+00 0.400905E+00 0.366763E+00 0.317582E+00 0.979873E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150435E+00 0.329961E+00 0.354081E+00 0.397298E+00 0.402963E+00 0.405051E+00 0.392234E+00 0.378298E+00 0.390455E+00 0.361015E+00 0.313236E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147360E+00 0.326773E+00 0.348904E+00 0.387195E+00 0.398056E+00 0.394220E+00 0.370234E+00 0.368342E+00 0.362500E+00 0.324551E+00 0.299239E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143621E+00 0.323562E+00 0.342401E+00 0.366024E+00 0.390301E+00 0.387748E+00 0.359484E+00 0.359907E+00 0.340392E+00 0.299877E+00 0.276563E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138589E+00 0.314202E+00 0.340338E+00 0.348827E+00 0.380829E+00 0.385466E+00 0.360453E+00 0.360746E+00 0.335571E+00 0.297095E+00 0.117292E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132639E+00 0.288673E+00 0.333454E+00 0.339371E+00 0.362190E+00 0.362569E+00 0.362295E+00 0.347215E+00 0.307424E+00 0.292587E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125860E+00 0.274962E+00 0.328365E+00 0.340905E+00 0.348627E+00 0.355251E+00 0.365116E+00 0.345179E+00 0.296694E+00 0.286482E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118536E+00 0.269515E+00 0.322056E+00 0.339467E+00 0.344582E+00 0.350242E+00 0.363514E+00 0.341806E+00 0.292645E+00 0.282065E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.108831E+00 0.265244E+00 0.311560E+00 0.332926E+00 0.324546E+00 0.342086E+00 0.357069E+00 0.335897E+00 0.287938E+00 0.277400E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.981487E-01 0.256399E+00 0.275868E+00 0.315390E+00 0.318157E+00 0.333657E+00 0.348197E+00 0.330215E+00 0.282663E+00 0.271481E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.853646E-01 0.239792E+00 0.265182E+00 0.279139E+00 0.306096E+00 0.315277E+00 0.323274E+00 0.313168E+00 0.272444E+00 0.262199E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.587611E-03 0.222656E+00 0.252627E+00 0.260963E+00 0.288832E+00 0.299914E+00 0.287957E+00 0.244597E+00 0.237137E+00 0.187034E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167517E+00 0.259617E+00 0.341837E+00 0.380475E+00 0.392563E+00 0.400879E+00 0.395093E+00 0.395193E+00 0.377796E+00 0.351401E+00 0.338388E+00 0.293621E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.186842E+00 0.337543E+00 0.413943E+00 0.447447E+00 0.456632E+00 0.464464E+00 0.460313E+00 0.462142E+00 0.446681E+00 0.419674E+00 0.412586E+00 0.361426E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.184893E+00 0.337156E+00 0.411700E+00 0.446133E+00 0.455504E+00 0.465847E+00 0.468963E+00 0.461742E+00 0.447720E+00 0.420625E+00 0.412342E+00 0.360352E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183115E+00 0.335362E+00 0.409099E+00 0.443854E+00 0.453652E+00 0.462471E+00 0.466223E+00 0.459369E+00 0.448382E+00 0.422058E+00 0.411094E+00 0.359154E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181203E+00 0.332668E+00 0.405952E+00 0.441931E+00 0.456260E+00 0.459382E+00 0.463332E+00 0.456060E+00 0.458380E+00 0.439164E+00 0.413917E+00 0.361077E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178756E+00 0.330061E+00 0.402504E+00 0.438770E+00 0.453065E+00 0.456386E+00 0.460632E+00 0.454372E+00 0.455498E+00 0.438002E+00 0.414344E+00 0.372349E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176325E+00 0.327303E+00 0.398613E+00 0.434965E+00 0.449657E+00 0.452696E+00 0.459973E+00 0.459847E+00 0.454596E+00 0.437730E+00 0.414020E+00 0.411865E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174152E+00 0.325225E+00 0.393940E+00 0.431100E+00 0.446065E+00 0.448995E+00 0.455810E+00 0.457404E+00 0.453508E+00 0.437543E+00 0.413635E+00 0.413341E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171583E+00 0.323316E+00 0.389614E+00 0.426924E+00 0.442467E+00 0.444932E+00 0.451716E+00 0.455789E+00 0.453558E+00 0.437106E+00 0.412952E+00 0.414795E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.168985E+00 0.321836E+00 0.385063E+00 0.422186E+00 0.438461E+00 0.441211E+00 0.447687E+00 0.454306E+00 0.452884E+00 0.436625E+00 0.412261E+00 0.414249E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165806E+00 0.321100E+00 0.380735E+00 0.417174E+00 0.434620E+00 0.437674E+00 0.445151E+00 0.453511E+00 0.452479E+00 0.435959E+00 0.411147E+00 0.408759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162983E+00 0.321468E+00 0.376870E+00 0.412365E+00 0.431044E+00 0.434149E+00 0.442621E+00 0.452051E+00 0.451049E+00 0.435387E+00 0.410529E+00 0.388761E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.160213E+00 0.321398E+00 0.373680E+00 0.408486E+00 0.426155E+00 0.431318E+00 0.437832E+00 0.446707E+00 0.449467E+00 0.433938E+00 0.409333E+00 0.354051E+00 0.183761E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.157560E+00 0.321213E+00 0.370115E+00 0.404832E+00 0.420626E+00 0.427996E+00 0.432413E+00 0.439406E+00 0.446506E+00 0.430904E+00 0.407562E+00 0.352157E+00 0.116159E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154720E+00 0.320898E+00 0.365861E+00 0.401813E+00 0.418166E+00 0.424021E+00 0.426214E+00 0.437366E+00 0.438662E+00 0.420579E+00 0.404084E+00 0.349507E+00 0.115656E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151794E+00 0.318852E+00 0.362650E+00 0.398208E+00 0.416455E+00 0.419463E+00 0.418368E+00 0.434159E+00 0.428477E+00 0.406799E+00 0.382245E+00 0.331660E+00 0.113135E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149237E+00 0.317712E+00 0.360072E+00 0.394092E+00 0.414529E+00 0.418586E+00 0.416750E+00 0.430992E+00 0.426207E+00 0.406370E+00 0.358615E+00 0.301995E+00 0.840396E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.148113E+00 0.318198E+00 0.356232E+00 0.393005E+00 0.411977E+00 0.411489E+00 0.413116E+00 0.422630E+00 0.412417E+00 0.403061E+00 0.357998E+00 0.105971E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147101E+00 0.319125E+00 0.351456E+00 0.391026E+00 0.409103E+00 0.403853E+00 0.410332E+00 0.414119E+00 0.399268E+00 0.397652E+00 0.353866E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145821E+00 0.319433E+00 0.346132E+00 0.388310E+00 0.407035E+00 0.402728E+00 0.406704E+00 0.407178E+00 0.394732E+00 0.375406E+00 0.331608E+00 0.163904E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.144007E+00 0.318269E+00 0.340949E+00 0.381863E+00 0.397137E+00 0.399897E+00 0.394654E+00 0.385566E+00 0.386456E+00 0.355790E+00 0.311386E+00 0.906730E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140730E+00 0.317002E+00 0.338326E+00 0.373231E+00 0.388014E+00 0.396086E+00 0.386856E+00 0.367508E+00 0.373397E+00 0.347115E+00 0.305646E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137426E+00 0.316256E+00 0.336575E+00 0.364138E+00 0.382665E+00 0.386741E+00 0.366659E+00 0.357801E+00 0.344175E+00 0.310870E+00 0.291401E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132174E+00 0.308203E+00 0.334559E+00 0.348448E+00 0.374518E+00 0.379365E+00 0.355624E+00 0.354102E+00 0.325007E+00 0.287483E+00 0.265963E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125656E+00 0.289928E+00 0.330017E+00 0.334899E+00 0.362580E+00 0.371580E+00 0.354353E+00 0.353233E+00 0.322861E+00 0.285015E+00 0.102614E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118877E+00 0.272879E+00 0.316970E+00 0.327746E+00 0.340092E+00 0.344429E+00 0.349544E+00 0.333400E+00 0.293062E+00 0.280271E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.112133E+00 0.266863E+00 0.309382E+00 0.325962E+00 0.322894E+00 0.327140E+00 0.344567E+00 0.328564E+00 0.285057E+00 0.277446E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107454E+00 0.262798E+00 0.307001E+00 0.327223E+00 0.325226E+00 0.323794E+00 0.343836E+00 0.327254E+00 0.281963E+00 0.272103E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.100377E+00 0.258455E+00 0.303829E+00 0.324905E+00 0.309681E+00 0.320798E+00 0.339936E+00 0.325466E+00 0.277421E+00 0.267300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.925519E-01 0.250757E+00 0.268713E+00 0.303075E+00 0.303739E+00 0.314798E+00 0.331544E+00 0.319119E+00 0.273270E+00 0.261950E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.829930E-01 0.233652E+00 0.259260E+00 0.261354E+00 0.293135E+00 0.302550E+00 0.307708E+00 0.297576E+00 0.260759E+00 0.253922E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.479406E-03 0.215038E+00 0.243249E+00 0.247001E+00 0.273921E+00 0.292408E+00 0.280899E+00 0.240941E+00 0.232300E+00 0.183874E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156363E+00 0.242058E+00 0.311244E+00 0.349079E+00 0.362091E+00 0.369608E+00 0.365653E+00 0.366797E+00 0.353248E+00 0.332876E+00 0.323090E+00 0.280624E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.173293E+00 0.306959E+00 0.372773E+00 0.406956E+00 0.418842E+00 0.426260E+00 0.423660E+00 0.425824E+00 0.415064E+00 0.396082E+00 0.390896E+00 0.343306E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.171450E+00 0.305800E+00 0.371202E+00 0.405798E+00 0.418248E+00 0.428254E+00 0.430092E+00 0.424524E+00 0.415213E+00 0.396427E+00 0.391097E+00 0.343563E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169845E+00 0.303933E+00 0.369107E+00 0.403728E+00 0.417407E+00 0.426500E+00 0.428304E+00 0.422220E+00 0.415647E+00 0.397865E+00 0.390362E+00 0.343464E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167320E+00 0.301317E+00 0.366609E+00 0.401830E+00 0.419870E+00 0.424982E+00 0.427249E+00 0.419263E+00 0.422051E+00 0.410493E+00 0.392784E+00 0.345580E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.164348E+00 0.299057E+00 0.363756E+00 0.398480E+00 0.417256E+00 0.422781E+00 0.426118E+00 0.418452E+00 0.419528E+00 0.409014E+00 0.393250E+00 0.357239E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162291E+00 0.296831E+00 0.361208E+00 0.395410E+00 0.414558E+00 0.420576E+00 0.427086E+00 0.424250E+00 0.420191E+00 0.409154E+00 0.393424E+00 0.391768E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158868E+00 0.295009E+00 0.357860E+00 0.391962E+00 0.411400E+00 0.417956E+00 0.424352E+00 0.422830E+00 0.420216E+00 0.410062E+00 0.393943E+00 0.392174E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156276E+00 0.293567E+00 0.355225E+00 0.388339E+00 0.408146E+00 0.414730E+00 0.421605E+00 0.422344E+00 0.420579E+00 0.410890E+00 0.394050E+00 0.391716E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154151E+00 0.292040E+00 0.352559E+00 0.384296E+00 0.404146E+00 0.411389E+00 0.418900E+00 0.421835E+00 0.421512E+00 0.411484E+00 0.393892E+00 0.390131E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151042E+00 0.291144E+00 0.350306E+00 0.380830E+00 0.401195E+00 0.409275E+00 0.416532E+00 0.421453E+00 0.422619E+00 0.411834E+00 0.393374E+00 0.386682E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147966E+00 0.289913E+00 0.348639E+00 0.377832E+00 0.398615E+00 0.407551E+00 0.414351E+00 0.419806E+00 0.422673E+00 0.411396E+00 0.392680E+00 0.368787E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145166E+00 0.289738E+00 0.346990E+00 0.374976E+00 0.395427E+00 0.406188E+00 0.410654E+00 0.416738E+00 0.421859E+00 0.410142E+00 0.391708E+00 0.339716E+00 0.180013E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142026E+00 0.290167E+00 0.344919E+00 0.373110E+00 0.392310E+00 0.404826E+00 0.406348E+00 0.412187E+00 0.418771E+00 0.407089E+00 0.389200E+00 0.339340E+00 0.113829E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140275E+00 0.290848E+00 0.342813E+00 0.371989E+00 0.391745E+00 0.402213E+00 0.400967E+00 0.411311E+00 0.412091E+00 0.398417E+00 0.384622E+00 0.337783E+00 0.113606E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.139404E+00 0.290727E+00 0.340579E+00 0.369784E+00 0.391237E+00 0.399620E+00 0.394084E+00 0.408733E+00 0.404055E+00 0.387577E+00 0.366532E+00 0.320981E+00 0.111483E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137837E+00 0.292279E+00 0.339174E+00 0.368207E+00 0.391089E+00 0.399032E+00 0.393237E+00 0.404093E+00 0.400670E+00 0.386660E+00 0.345467E+00 0.292575E+00 0.720696E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.135891E+00 0.294500E+00 0.337403E+00 0.368297E+00 0.389975E+00 0.393941E+00 0.392674E+00 0.397379E+00 0.390017E+00 0.382920E+00 0.344996E+00 0.947799E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134885E+00 0.295992E+00 0.335091E+00 0.368416E+00 0.388417E+00 0.388395E+00 0.391532E+00 0.391351E+00 0.380077E+00 0.376949E+00 0.339650E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132870E+00 0.297402E+00 0.334333E+00 0.366994E+00 0.387248E+00 0.387263E+00 0.389969E+00 0.385406E+00 0.376316E+00 0.358809E+00 0.319009E+00 0.161756E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.130373E+00 0.297531E+00 0.332834E+00 0.361922E+00 0.378815E+00 0.384574E+00 0.381967E+00 0.367152E+00 0.367401E+00 0.340991E+00 0.301434E+00 0.800420E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127089E+00 0.297524E+00 0.331080E+00 0.353625E+00 0.371488E+00 0.380692E+00 0.375198E+00 0.353617E+00 0.355247E+00 0.330556E+00 0.293710E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.124332E+00 0.293713E+00 0.327885E+00 0.345064E+00 0.365731E+00 0.372233E+00 0.358318E+00 0.350758E+00 0.331600E+00 0.295637E+00 0.277704E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.120080E+00 0.283499E+00 0.321631E+00 0.331340E+00 0.357590E+00 0.363622E+00 0.347090E+00 0.347161E+00 0.318926E+00 0.277524E+00 0.256364E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113208E+00 0.263063E+00 0.310409E+00 0.322631E+00 0.345109E+00 0.352806E+00 0.342904E+00 0.342914E+00 0.315968E+00 0.275858E+00 0.935310E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107629E+00 0.257916E+00 0.295648E+00 0.315940E+00 0.324411E+00 0.326179E+00 0.333147E+00 0.322071E+00 0.282829E+00 0.268982E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.103767E+00 0.256119E+00 0.285284E+00 0.311546E+00 0.314880E+00 0.307529E+00 0.323694E+00 0.312742E+00 0.272099E+00 0.265723E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.994489E-01 0.254451E+00 0.280130E+00 0.310925E+00 0.312244E+00 0.299497E+00 0.316922E+00 0.308008E+00 0.268133E+00 0.262678E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.917095E-01 0.250734E+00 0.278070E+00 0.307280E+00 0.296247E+00 0.299117E+00 0.315940E+00 0.309622E+00 0.266881E+00 0.260637E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.857731E-01 0.245674E+00 0.256630E+00 0.276065E+00 0.288299E+00 0.299462E+00 0.311591E+00 0.303952E+00 0.263650E+00 0.256526E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.748130E-01 0.233508E+00 0.257853E+00 0.254093E+00 0.273042E+00 0.289264E+00 0.294042E+00 0.281834E+00 0.249323E+00 0.247036E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331327E-03 0.207475E+00 0.240830E+00 0.243044E+00 0.263481E+00 0.282526E+00 0.275220E+00 0.235955E+00 0.230329E+00 0.181956E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149657E+00 0.227612E+00 0.285840E+00 0.316364E+00 0.330975E+00 0.340145E+00 0.336958E+00 0.337890E+00 0.327208E+00 0.310504E+00 0.302419E+00 0.264811E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.163634E+00 0.280506E+00 0.336401E+00 0.365183E+00 0.379956E+00 0.389084E+00 0.386873E+00 0.388740E+00 0.381034E+00 0.366698E+00 0.362643E+00 0.323219E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.160673E+00 0.279624E+00 0.335700E+00 0.363871E+00 0.378742E+00 0.390295E+00 0.393894E+00 0.388303E+00 0.380995E+00 0.367281E+00 0.362628E+00 0.323302E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158106E+00 0.277722E+00 0.334004E+00 0.362069E+00 0.377572E+00 0.388731E+00 0.393368E+00 0.387502E+00 0.381090E+00 0.368973E+00 0.362313E+00 0.323695E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156191E+00 0.276621E+00 0.332064E+00 0.360399E+00 0.378542E+00 0.387004E+00 0.392609E+00 0.386697E+00 0.386127E+00 0.377543E+00 0.364049E+00 0.326194E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.152349E+00 0.274892E+00 0.330415E+00 0.358357E+00 0.376035E+00 0.384979E+00 0.391687E+00 0.386852E+00 0.385515E+00 0.376881E+00 0.364563E+00 0.336983E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149285E+00 0.273658E+00 0.328464E+00 0.356397E+00 0.373269E+00 0.382770E+00 0.392121E+00 0.391476E+00 0.386090E+00 0.377993E+00 0.366044E+00 0.365793E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147576E+00 0.272466E+00 0.326485E+00 0.354171E+00 0.370334E+00 0.380003E+00 0.389776E+00 0.390103E+00 0.387115E+00 0.379085E+00 0.367590E+00 0.366881E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143893E+00 0.271077E+00 0.324500E+00 0.351796E+00 0.367622E+00 0.377439E+00 0.387429E+00 0.388769E+00 0.387795E+00 0.380926E+00 0.368997E+00 0.367360E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.141369E+00 0.269262E+00 0.322520E+00 0.349732E+00 0.365175E+00 0.375196E+00 0.385334E+00 0.387396E+00 0.388331E+00 0.382451E+00 0.369897E+00 0.366613E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138695E+00 0.268053E+00 0.320729E+00 0.347934E+00 0.362842E+00 0.373250E+00 0.383697E+00 0.386431E+00 0.388517E+00 0.383632E+00 0.369763E+00 0.362440E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.136077E+00 0.266746E+00 0.319006E+00 0.345737E+00 0.361110E+00 0.372418E+00 0.382335E+00 0.385529E+00 0.389697E+00 0.383763E+00 0.368970E+00 0.346763E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134568E+00 0.265952E+00 0.317113E+00 0.343093E+00 0.358757E+00 0.371606E+00 0.380459E+00 0.382929E+00 0.389472E+00 0.382437E+00 0.368253E+00 0.324144E+00 0.176450E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132367E+00 0.265042E+00 0.316228E+00 0.341430E+00 0.357061E+00 0.371571E+00 0.378197E+00 0.378499E+00 0.387718E+00 0.378775E+00 0.365455E+00 0.324342E+00 0.111261E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.130280E+00 0.264057E+00 0.314733E+00 0.340333E+00 0.357386E+00 0.370619E+00 0.374885E+00 0.378532E+00 0.381947E+00 0.371245E+00 0.360184E+00 0.321913E+00 0.110997E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127810E+00 0.263365E+00 0.314236E+00 0.338263E+00 0.358152E+00 0.369930E+00 0.370636E+00 0.378181E+00 0.375544E+00 0.364165E+00 0.345461E+00 0.305800E+00 0.108988E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125597E+00 0.262828E+00 0.314566E+00 0.337156E+00 0.358505E+00 0.369345E+00 0.370226E+00 0.376898E+00 0.373865E+00 0.364572E+00 0.329090E+00 0.276877E+00 0.624566E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123010E+00 0.263233E+00 0.314057E+00 0.338309E+00 0.358389E+00 0.366332E+00 0.369604E+00 0.371593E+00 0.365581E+00 0.360537E+00 0.329072E+00 0.835494E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121226E+00 0.263758E+00 0.313354E+00 0.339136E+00 0.357558E+00 0.362192E+00 0.368273E+00 0.365721E+00 0.357901E+00 0.353321E+00 0.321271E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.119180E+00 0.265114E+00 0.313285E+00 0.338189E+00 0.356726E+00 0.361564E+00 0.366002E+00 0.358906E+00 0.353216E+00 0.337570E+00 0.302282E+00 0.158382E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116915E+00 0.265915E+00 0.312283E+00 0.333624E+00 0.351041E+00 0.359250E+00 0.359211E+00 0.346173E+00 0.343084E+00 0.321174E+00 0.284633E+00 0.684991E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113008E+00 0.266028E+00 0.309418E+00 0.325745E+00 0.345855E+00 0.355894E+00 0.352885E+00 0.337171E+00 0.334005E+00 0.311691E+00 0.277650E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.109393E+00 0.263319E+00 0.304405E+00 0.318741E+00 0.340930E+00 0.348902E+00 0.338949E+00 0.333521E+00 0.315894E+00 0.279239E+00 0.261402E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.103705E+00 0.251040E+00 0.296813E+00 0.311000E+00 0.332747E+00 0.340615E+00 0.328555E+00 0.328318E+00 0.305886E+00 0.265874E+00 0.244458E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.992745E-01 0.240870E+00 0.286296E+00 0.304857E+00 0.321053E+00 0.329492E+00 0.323891E+00 0.323637E+00 0.301333E+00 0.265251E+00 0.843157E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.954064E-01 0.241234E+00 0.274857E+00 0.298578E+00 0.307236E+00 0.305970E+00 0.314981E+00 0.306458E+00 0.271358E+00 0.257709E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.919441E-01 0.239410E+00 0.266765E+00 0.291152E+00 0.300748E+00 0.290651E+00 0.306253E+00 0.298800E+00 0.261251E+00 0.254790E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.892990E-01 0.238219E+00 0.258883E+00 0.291330E+00 0.300178E+00 0.289496E+00 0.304640E+00 0.297272E+00 0.259335E+00 0.254865E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.881818E-01 0.233891E+00 0.261706E+00 0.289278E+00 0.287098E+00 0.289101E+00 0.302213E+00 0.295592E+00 0.258703E+00 0.254800E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.911074E-01 0.222029E+00 0.246338E+00 0.261661E+00 0.269697E+00 0.283634E+00 0.296272E+00 0.291610E+00 0.256458E+00 0.251936E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.849049E-01 0.212938E+00 0.245041E+00 0.244864E+00 0.252238E+00 0.269840E+00 0.276686E+00 0.265027E+00 0.237352E+00 0.236252E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387544E-03 0.195298E+00 0.224436E+00 0.229639E+00 0.245311E+00 0.265409E+00 0.261084E+00 0.228477E+00 0.225894E+00 0.177799E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.141332E+00 0.210515E+00 0.261116E+00 0.287633E+00 0.299635E+00 0.308671E+00 0.308428E+00 0.309721E+00 0.299335E+00 0.285102E+00 0.278094E+00 0.245001E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.152301E+00 0.253054E+00 0.302560E+00 0.327967E+00 0.340135E+00 0.349779E+00 0.350417E+00 0.351966E+00 0.343824E+00 0.332731E+00 0.329502E+00 0.298621E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.149839E+00 0.252382E+00 0.301711E+00 0.327218E+00 0.339317E+00 0.350418E+00 0.355819E+00 0.352234E+00 0.344991E+00 0.332986E+00 0.329643E+00 0.298939E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147949E+00 0.250674E+00 0.300039E+00 0.326041E+00 0.338607E+00 0.349026E+00 0.354669E+00 0.351956E+00 0.346358E+00 0.334198E+00 0.330136E+00 0.299898E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.145364E+00 0.249474E+00 0.298418E+00 0.324717E+00 0.338695E+00 0.347242E+00 0.353319E+00 0.351285E+00 0.352553E+00 0.342480E+00 0.332969E+00 0.303032E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143499E+00 0.247658E+00 0.296740E+00 0.323191E+00 0.337341E+00 0.345335E+00 0.352143E+00 0.351201E+00 0.351233E+00 0.342667E+00 0.334302E+00 0.313806E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.140645E+00 0.246060E+00 0.295051E+00 0.321691E+00 0.335634E+00 0.343074E+00 0.351690E+00 0.353694E+00 0.350709E+00 0.343944E+00 0.335333E+00 0.335713E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.138360E+00 0.243888E+00 0.293097E+00 0.319962E+00 0.333762E+00 0.340880E+00 0.349186E+00 0.352303E+00 0.350225E+00 0.344676E+00 0.337257E+00 0.337467E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.136674E+00 0.243203E+00 0.291681E+00 0.318001E+00 0.331876E+00 0.338788E+00 0.347081E+00 0.351234E+00 0.349849E+00 0.345644E+00 0.339276E+00 0.338140E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134401E+00 0.241608E+00 0.289849E+00 0.316243E+00 0.330282E+00 0.337219E+00 0.345544E+00 0.350641E+00 0.349959E+00 0.347261E+00 0.341035E+00 0.337956E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.131501E+00 0.240420E+00 0.288178E+00 0.314305E+00 0.328428E+00 0.335812E+00 0.344881E+00 0.350732E+00 0.350441E+00 0.349123E+00 0.341637E+00 0.333759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.128683E+00 0.239302E+00 0.286673E+00 0.312082E+00 0.326835E+00 0.334584E+00 0.345033E+00 0.350351E+00 0.350561E+00 0.349688E+00 0.340320E+00 0.319457E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125615E+00 0.238455E+00 0.284538E+00 0.310313E+00 0.324717E+00 0.334117E+00 0.344660E+00 0.349130E+00 0.351356E+00 0.349699E+00 0.339476E+00 0.303914E+00 0.172250E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123616E+00 0.237389E+00 0.283636E+00 0.308728E+00 0.322484E+00 0.335112E+00 0.344304E+00 0.346046E+00 0.351813E+00 0.348361E+00 0.338050E+00 0.304347E+00 0.108155E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121816E+00 0.236385E+00 0.282700E+00 0.307979E+00 0.322021E+00 0.335723E+00 0.342894E+00 0.346465E+00 0.350246E+00 0.343177E+00 0.332404E+00 0.301202E+00 0.107841E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.118680E+00 0.234590E+00 0.281915E+00 0.306748E+00 0.322407E+00 0.336032E+00 0.340403E+00 0.345681E+00 0.346179E+00 0.337610E+00 0.321365E+00 0.285828E+00 0.105843E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116515E+00 0.233893E+00 0.281551E+00 0.305405E+00 0.323053E+00 0.335972E+00 0.340047E+00 0.344411E+00 0.342910E+00 0.336889E+00 0.308668E+00 0.256010E+00 0.542346E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113677E+00 0.233205E+00 0.281559E+00 0.305193E+00 0.323722E+00 0.333520E+00 0.339445E+00 0.339677E+00 0.334445E+00 0.331616E+00 0.307429E+00 0.740848E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.110772E+00 0.232863E+00 0.281014E+00 0.304352E+00 0.323120E+00 0.330563E+00 0.338366E+00 0.334431E+00 0.328154E+00 0.324105E+00 0.296762E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107086E+00 0.232260E+00 0.280763E+00 0.302352E+00 0.321003E+00 0.329754E+00 0.335850E+00 0.331538E+00 0.322294E+00 0.309305E+00 0.281067E+00 0.154648E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.102671E+00 0.232089E+00 0.279662E+00 0.298490E+00 0.315512E+00 0.327061E+00 0.329742E+00 0.321247E+00 0.314926E+00 0.297067E+00 0.266013E+00 0.592518E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.980063E-01 0.231452E+00 0.277324E+00 0.293920E+00 0.310690E+00 0.323358E+00 0.324182E+00 0.313608E+00 0.309306E+00 0.284661E+00 0.257178E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.951868E-01 0.229310E+00 0.271729E+00 0.289446E+00 0.305276E+00 0.316361E+00 0.312203E+00 0.309133E+00 0.294513E+00 0.262977E+00 0.243201E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.921851E-01 0.219712E+00 0.264284E+00 0.283448E+00 0.298149E+00 0.308354E+00 0.303020E+00 0.302437E+00 0.284938E+00 0.251696E+00 0.226657E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.885546E-01 0.217767E+00 0.257017E+00 0.279360E+00 0.291688E+00 0.296543E+00 0.295907E+00 0.295828E+00 0.278424E+00 0.249531E+00 0.745122E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.840429E-01 0.215744E+00 0.248713E+00 0.273955E+00 0.283374E+00 0.277923E+00 0.284368E+00 0.281640E+00 0.254596E+00 0.242310E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.778449E-01 0.212843E+00 0.242783E+00 0.263427E+00 0.275997E+00 0.270884E+00 0.280239E+00 0.278643E+00 0.248342E+00 0.240643E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.721640E-01 0.210770E+00 0.238972E+00 0.265166E+00 0.277461E+00 0.273463E+00 0.283798E+00 0.281409E+00 0.249359E+00 0.241280E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.718483E-01 0.205452E+00 0.237146E+00 0.268806E+00 0.269415E+00 0.273041E+00 0.284332E+00 0.280539E+00 0.249122E+00 0.240150E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.713171E-01 0.190292E+00 0.224197E+00 0.242042E+00 0.254489E+00 0.263240E+00 0.275425E+00 0.275091E+00 0.247241E+00 0.238069E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.628161E-01 0.172634E+00 0.211805E+00 0.223386E+00 0.229119E+00 0.245131E+00 0.253890E+00 0.248055E+00 0.222531E+00 0.218390E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.498941E-03 0.169331E+00 0.199309E+00 0.210161E+00 0.226224E+00 0.247333E+00 0.248280E+00 0.219864E+00 0.214905E+00 0.169593E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134002E+00 0.189380E+00 0.230634E+00 0.254496E+00 0.267346E+00 0.275520E+00 0.277007E+00 0.279028E+00 0.271236E+00 0.258528E+00 0.251753E+00 0.222307E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143599E+00 0.222937E+00 0.264212E+00 0.287640E+00 0.300718E+00 0.309197E+00 0.311896E+00 0.314246E+00 0.308457E+00 0.297432E+00 0.293180E+00 0.268798E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.141369E+00 0.221344E+00 0.262955E+00 0.286683E+00 0.299941E+00 0.309365E+00 0.314985E+00 0.314022E+00 0.309654E+00 0.298606E+00 0.294261E+00 0.269382E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.139499E+00 0.220035E+00 0.261823E+00 0.285588E+00 0.299244E+00 0.308145E+00 0.314197E+00 0.313586E+00 0.310595E+00 0.300563E+00 0.295146E+00 0.271437E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137071E+00 0.218557E+00 0.260334E+00 0.284107E+00 0.299266E+00 0.307250E+00 0.313055E+00 0.312736E+00 0.314019E+00 0.307141E+00 0.297690E+00 0.275485E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.134967E+00 0.217003E+00 0.259291E+00 0.282751E+00 0.298257E+00 0.305957E+00 0.311939E+00 0.311846E+00 0.312390E+00 0.306378E+00 0.298634E+00 0.284531E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.132675E+00 0.215378E+00 0.257829E+00 0.281324E+00 0.296643E+00 0.304707E+00 0.311874E+00 0.313066E+00 0.311932E+00 0.306368E+00 0.299818E+00 0.299441E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.130412E+00 0.213840E+00 0.255913E+00 0.279486E+00 0.295208E+00 0.303453E+00 0.310418E+00 0.312197E+00 0.311733E+00 0.307048E+00 0.300707E+00 0.299954E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.128465E+00 0.212187E+00 0.255075E+00 0.278269E+00 0.293532E+00 0.301814E+00 0.309308E+00 0.311634E+00 0.312054E+00 0.307811E+00 0.301511E+00 0.300518E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125844E+00 0.210502E+00 0.253600E+00 0.276337E+00 0.292071E+00 0.300715E+00 0.307933E+00 0.311419E+00 0.313050E+00 0.308822E+00 0.303055E+00 0.300059E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123007E+00 0.209207E+00 0.252455E+00 0.275320E+00 0.290175E+00 0.299610E+00 0.307172E+00 0.311521E+00 0.314043E+00 0.309849E+00 0.304704E+00 0.297235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.120114E+00 0.207932E+00 0.251077E+00 0.273821E+00 0.288874E+00 0.298370E+00 0.306132E+00 0.311852E+00 0.315232E+00 0.311293E+00 0.306092E+00 0.286665E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116648E+00 0.206498E+00 0.249910E+00 0.272364E+00 0.287141E+00 0.297190E+00 0.305339E+00 0.311818E+00 0.315360E+00 0.312366E+00 0.305679E+00 0.275765E+00 0.164047E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113985E+00 0.205125E+00 0.249154E+00 0.271178E+00 0.285595E+00 0.296413E+00 0.304308E+00 0.310358E+00 0.314192E+00 0.310221E+00 0.301688E+00 0.274338E+00 0.103927E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.111381E+00 0.204315E+00 0.248327E+00 0.270945E+00 0.284990E+00 0.295783E+00 0.304451E+00 0.310963E+00 0.311320E+00 0.306369E+00 0.295555E+00 0.270323E+00 0.103525E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.108463E+00 0.202932E+00 0.247151E+00 0.269774E+00 0.284331E+00 0.294696E+00 0.303271E+00 0.310121E+00 0.307371E+00 0.301962E+00 0.287362E+00 0.255867E+00 0.101339E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.105720E+00 0.201609E+00 0.246398E+00 0.268929E+00 0.283749E+00 0.294373E+00 0.303250E+00 0.308133E+00 0.304654E+00 0.299349E+00 0.278856E+00 0.226113E+00 0.448158E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.101726E+00 0.200807E+00 0.245222E+00 0.269133E+00 0.282408E+00 0.293071E+00 0.301868E+00 0.303933E+00 0.298367E+00 0.293064E+00 0.275345E+00 0.626944E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.980764E-01 0.200275E+00 0.244311E+00 0.268244E+00 0.280694E+00 0.291075E+00 0.299222E+00 0.299734E+00 0.291799E+00 0.286658E+00 0.264594E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.954564E-01 0.199481E+00 0.243785E+00 0.266388E+00 0.278307E+00 0.288667E+00 0.295183E+00 0.296217E+00 0.289308E+00 0.276907E+00 0.253068E+00 0.147404E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.927992E-01 0.198430E+00 0.242392E+00 0.263384E+00 0.273423E+00 0.284580E+00 0.290615E+00 0.288504E+00 0.284537E+00 0.265927E+00 0.239984E+00 0.490550E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.901526E-01 0.197124E+00 0.239551E+00 0.258147E+00 0.268932E+00 0.280966E+00 0.286104E+00 0.283049E+00 0.279235E+00 0.258361E+00 0.230504E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.879043E-01 0.196048E+00 0.233877E+00 0.253048E+00 0.265916E+00 0.277547E+00 0.279005E+00 0.278572E+00 0.266293E+00 0.240623E+00 0.219738E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.864023E-01 0.192262E+00 0.228256E+00 0.249130E+00 0.263959E+00 0.272542E+00 0.272020E+00 0.271562E+00 0.256136E+00 0.230964E+00 0.201845E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.848275E-01 0.190496E+00 0.225141E+00 0.246177E+00 0.260962E+00 0.265368E+00 0.262338E+00 0.262353E+00 0.248386E+00 0.227494E+00 0.623776E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.828363E-01 0.188956E+00 0.221244E+00 0.242246E+00 0.253349E+00 0.252626E+00 0.253191E+00 0.251214E+00 0.229357E+00 0.217663E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.803087E-01 0.185212E+00 0.217685E+00 0.232271E+00 0.243782E+00 0.245206E+00 0.248623E+00 0.249548E+00 0.226508E+00 0.218369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.792058E-01 0.180769E+00 0.213259E+00 0.237011E+00 0.248232E+00 0.247998E+00 0.254281E+00 0.255381E+00 0.231372E+00 0.221414E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.730886E-01 0.174986E+00 0.203024E+00 0.239628E+00 0.245379E+00 0.249944E+00 0.257094E+00 0.256881E+00 0.234761E+00 0.222613E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.676766E-01 0.159744E+00 0.189080E+00 0.208894E+00 0.229003E+00 0.237457E+00 0.245298E+00 0.246884E+00 0.229014E+00 0.217259E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.506812E-01 0.143672E+00 0.177383E+00 0.191953E+00 0.202379E+00 0.213662E+00 0.223359E+00 0.222322E+00 0.204276E+00 0.196035E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524291E-03 0.141041E+00 0.172306E+00 0.188549E+00 0.202700E+00 0.223080E+00 0.228414E+00 0.204764E+00 0.198097E+00 0.156249E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.167426E+00 0.219928E+00 0.253536E+00 0.271357E+00 0.281113E+00 0.286627E+00 0.284065E+00 0.282596E+00 0.272000E+00 0.256884E+00 0.249600E+00 0.217923E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.186064E+00 0.254441E+00 0.288165E+00 0.305350E+00 0.315052E+00 0.320692E+00 0.319243E+00 0.318061E+00 0.308522E+00 0.294390E+00 0.289541E+00 0.260242E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.183333E+00 0.253075E+00 0.287036E+00 0.304112E+00 0.313752E+00 0.320716E+00 0.323172E+00 0.317916E+00 0.309306E+00 0.295050E+00 0.289921E+00 0.261166E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180999E+00 0.251408E+00 0.285727E+00 0.302510E+00 0.312242E+00 0.319522E+00 0.322723E+00 0.317841E+00 0.310573E+00 0.296572E+00 0.290069E+00 0.262442E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.178401E+00 0.249828E+00 0.284450E+00 0.300949E+00 0.311811E+00 0.317928E+00 0.321832E+00 0.317594E+00 0.315963E+00 0.304552E+00 0.291627E+00 0.265897E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175450E+00 0.247959E+00 0.282943E+00 0.299382E+00 0.309879E+00 0.316277E+00 0.320763E+00 0.317419E+00 0.315151E+00 0.304075E+00 0.292591E+00 0.274502E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.172277E+00 0.246367E+00 0.281393E+00 0.297685E+00 0.307722E+00 0.314387E+00 0.320465E+00 0.319994E+00 0.314507E+00 0.303705E+00 0.292795E+00 0.291001E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.169161E+00 0.244582E+00 0.279241E+00 0.295767E+00 0.305903E+00 0.312419E+00 0.318418E+00 0.318598E+00 0.313691E+00 0.303454E+00 0.293339E+00 0.291287E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165845E+00 0.242621E+00 0.277782E+00 0.293691E+00 0.303554E+00 0.310139E+00 0.316436E+00 0.317145E+00 0.312889E+00 0.303316E+00 0.293724E+00 0.290945E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162105E+00 0.240311E+00 0.275535E+00 0.291466E+00 0.301109E+00 0.307540E+00 0.314234E+00 0.315877E+00 0.312029E+00 0.303697E+00 0.294084E+00 0.289795E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.158120E+00 0.238285E+00 0.272938E+00 0.289207E+00 0.298509E+00 0.305134E+00 0.311690E+00 0.313616E+00 0.310711E+00 0.303598E+00 0.293406E+00 0.286375E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154177E+00 0.236324E+00 0.270832E+00 0.287220E+00 0.296209E+00 0.302701E+00 0.308774E+00 0.311303E+00 0.309211E+00 0.302854E+00 0.293245E+00 0.275646E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.150682E+00 0.233931E+00 0.268598E+00 0.284896E+00 0.293317E+00 0.299823E+00 0.305509E+00 0.307422E+00 0.307137E+00 0.301506E+00 0.291897E+00 0.261808E+00 0.160137E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.147486E+00 0.232008E+00 0.266788E+00 0.282736E+00 0.290001E+00 0.297020E+00 0.301800E+00 0.302111E+00 0.304909E+00 0.299013E+00 0.287851E+00 0.261538E+00 0.101351E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.144385E+00 0.229308E+00 0.264371E+00 0.280250E+00 0.287805E+00 0.294014E+00 0.297585E+00 0.299524E+00 0.300363E+00 0.292879E+00 0.283373E+00 0.255529E+00 0.100654E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.141032E+00 0.226893E+00 0.261880E+00 0.277489E+00 0.285109E+00 0.290585E+00 0.292062E+00 0.297030E+00 0.294568E+00 0.285948E+00 0.273331E+00 0.241177E+00 0.982546E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137686E+00 0.224469E+00 0.258937E+00 0.274674E+00 0.282690E+00 0.287747E+00 0.288949E+00 0.293528E+00 0.291091E+00 0.283674E+00 0.264366E+00 0.214443E+00 0.355779E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.133323E+00 0.222115E+00 0.255226E+00 0.272161E+00 0.279845E+00 0.282636E+00 0.285728E+00 0.288346E+00 0.283899E+00 0.279323E+00 0.261501E+00 0.484517E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.129456E+00 0.219718E+00 0.251196E+00 0.269264E+00 0.276257E+00 0.277492E+00 0.282428E+00 0.283316E+00 0.277783E+00 0.274120E+00 0.251613E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.125824E+00 0.217516E+00 0.247001E+00 0.265368E+00 0.271945E+00 0.273974E+00 0.278994E+00 0.279447E+00 0.274753E+00 0.262974E+00 0.237559E+00 0.142702E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121142E+00 0.214143E+00 0.242379E+00 0.259254E+00 0.266140E+00 0.271184E+00 0.274556E+00 0.272017E+00 0.270348E+00 0.252215E+00 0.226237E+00 0.371664E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.116424E+00 0.211012E+00 0.237145E+00 0.252460E+00 0.260818E+00 0.268521E+00 0.269739E+00 0.266693E+00 0.265056E+00 0.246041E+00 0.220186E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113323E+00 0.207673E+00 0.231785E+00 0.246357E+00 0.257378E+00 0.264576E+00 0.261958E+00 0.262344E+00 0.253130E+00 0.228412E+00 0.211184E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.111037E+00 0.203564E+00 0.227641E+00 0.238943E+00 0.252897E+00 0.259834E+00 0.256564E+00 0.257293E+00 0.243565E+00 0.219093E+00 0.194306E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.109679E+00 0.198454E+00 0.223001E+00 0.233721E+00 0.247685E+00 0.254403E+00 0.252698E+00 0.252375E+00 0.237495E+00 0.216397E+00 0.465590E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107752E+00 0.190986E+00 0.216899E+00 0.230195E+00 0.241186E+00 0.243259E+00 0.246442E+00 0.240562E+00 0.220064E+00 0.209484E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.105122E+00 0.182179E+00 0.209760E+00 0.226088E+00 0.234157E+00 0.234186E+00 0.238994E+00 0.237508E+00 0.216582E+00 0.210403E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.103099E+00 0.173975E+00 0.199955E+00 0.222840E+00 0.237632E+00 0.240144E+00 0.244229E+00 0.244355E+00 0.222255E+00 0.213812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.970068E-01 0.165703E+00 0.187852E+00 0.223351E+00 0.234112E+00 0.240421E+00 0.244949E+00 0.246189E+00 0.226344E+00 0.214503E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.849511E-01 0.151211E+00 0.175780E+00 0.190958E+00 0.210963E+00 0.222722E+00 0.230482E+00 0.231033E+00 0.216387E+00 0.206114E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.673737E-01 0.126817E+00 0.162690E+00 0.174610E+00 0.182099E+00 0.189854E+00 0.200461E+00 0.202718E+00 0.189901E+00 0.183558E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469625E-03 0.116339E+00 0.147521E+00 0.167045E+00 0.177501E+00 0.196220E+00 0.206347E+00 0.190299E+00 0.181964E+00 0.143054E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.224396E+00 0.272171E+00 0.297733E+00 0.310962E+00 0.313574E+00 0.312894E+00 0.304629E+00 0.300540E+00 0.287047E+00 0.269352E+00 0.260952E+00 0.224691E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249413E+00 0.306582E+00 0.331853E+00 0.345537E+00 0.347839E+00 0.347005E+00 0.339131E+00 0.335238E+00 0.322966E+00 0.306053E+00 0.300109E+00 0.263898E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.247314E+00 0.305007E+00 0.329916E+00 0.343768E+00 0.346544E+00 0.347259E+00 0.344022E+00 0.334618E+00 0.323046E+00 0.305913E+00 0.299760E+00 0.263722E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244929E+00 0.303271E+00 0.327896E+00 0.341641E+00 0.345465E+00 0.345900E+00 0.342855E+00 0.333675E+00 0.323650E+00 0.306848E+00 0.299332E+00 0.263268E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242383E+00 0.301024E+00 0.325672E+00 0.339419E+00 0.345799E+00 0.344194E+00 0.341561E+00 0.332740E+00 0.329212E+00 0.315785E+00 0.300432E+00 0.264790E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239448E+00 0.298830E+00 0.323433E+00 0.336910E+00 0.343702E+00 0.342451E+00 0.340449E+00 0.332443E+00 0.327802E+00 0.314920E+00 0.300416E+00 0.272653E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.236340E+00 0.296254E+00 0.320890E+00 0.334244E+00 0.341063E+00 0.340466E+00 0.340410E+00 0.335122E+00 0.326627E+00 0.314151E+00 0.299494E+00 0.295369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232959E+00 0.293499E+00 0.317829E+00 0.331473E+00 0.338060E+00 0.338503E+00 0.338480E+00 0.333539E+00 0.325377E+00 0.313134E+00 0.298635E+00 0.294487E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229344E+00 0.291094E+00 0.315563E+00 0.328394E+00 0.334790E+00 0.335906E+00 0.336232E+00 0.331594E+00 0.324085E+00 0.312022E+00 0.297740E+00 0.293049E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.225375E+00 0.287736E+00 0.312704E+00 0.325089E+00 0.331141E+00 0.332922E+00 0.333871E+00 0.330148E+00 0.322843E+00 0.310805E+00 0.296515E+00 0.290728E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221355E+00 0.284567E+00 0.309610E+00 0.321602E+00 0.327237E+00 0.329654E+00 0.330948E+00 0.327579E+00 0.320777E+00 0.309106E+00 0.294725E+00 0.286087E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217375E+00 0.281830E+00 0.306608E+00 0.317816E+00 0.323080E+00 0.325704E+00 0.327473E+00 0.324401E+00 0.318474E+00 0.306735E+00 0.292367E+00 0.272219E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.212825E+00 0.278028E+00 0.303482E+00 0.313478E+00 0.317681E+00 0.321056E+00 0.322007E+00 0.318700E+00 0.314161E+00 0.303173E+00 0.289251E+00 0.254293E+00 0.155952E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207851E+00 0.274462E+00 0.300012E+00 0.308837E+00 0.311592E+00 0.315586E+00 0.315085E+00 0.310518E+00 0.308614E+00 0.298030E+00 0.284818E+00 0.251355E+00 0.990378E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203557E+00 0.270073E+00 0.296324E+00 0.304354E+00 0.306339E+00 0.309069E+00 0.307344E+00 0.304832E+00 0.300324E+00 0.289389E+00 0.278843E+00 0.246119E+00 0.982663E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198664E+00 0.265987E+00 0.292260E+00 0.299172E+00 0.300759E+00 0.302018E+00 0.299015E+00 0.298440E+00 0.290877E+00 0.279217E+00 0.265195E+00 0.232088E+00 0.956844E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193039E+00 0.261268E+00 0.287745E+00 0.293500E+00 0.295587E+00 0.296102E+00 0.293298E+00 0.292090E+00 0.285118E+00 0.274529E+00 0.250961E+00 0.204132E+00 0.257044E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187358E+00 0.256662E+00 0.282459E+00 0.288968E+00 0.290222E+00 0.288653E+00 0.287460E+00 0.284076E+00 0.275687E+00 0.269130E+00 0.246711E+00 0.323263E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181714E+00 0.251647E+00 0.276797E+00 0.284727E+00 0.285066E+00 0.281838E+00 0.282157E+00 0.277057E+00 0.266988E+00 0.263441E+00 0.238194E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175560E+00 0.246397E+00 0.271302E+00 0.280200E+00 0.280691E+00 0.277464E+00 0.277297E+00 0.273159E+00 0.263522E+00 0.251114E+00 0.225375E+00 0.136857E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.168994E+00 0.240054E+00 0.264790E+00 0.274993E+00 0.274801E+00 0.273527E+00 0.271197E+00 0.264417E+00 0.259439E+00 0.240266E+00 0.214295E+00 0.250119E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.162308E+00 0.234497E+00 0.257841E+00 0.268948E+00 0.269553E+00 0.269717E+00 0.266522E+00 0.258326E+00 0.255702E+00 0.236254E+00 0.210083E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.156221E+00 0.229359E+00 0.250516E+00 0.261344E+00 0.264276E+00 0.264143E+00 0.257757E+00 0.254602E+00 0.243965E+00 0.219589E+00 0.204474E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.151290E+00 0.223857E+00 0.243506E+00 0.251484E+00 0.257012E+00 0.258008E+00 0.251598E+00 0.250984E+00 0.236524E+00 0.209999E+00 0.187466E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.146800E+00 0.217775E+00 0.236542E+00 0.242039E+00 0.247637E+00 0.251133E+00 0.246626E+00 0.246491E+00 0.232031E+00 0.207563E+00 0.314853E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.142517E+00 0.207182E+00 0.228455E+00 0.234201E+00 0.238043E+00 0.238310E+00 0.240803E+00 0.235051E+00 0.212982E+00 0.203804E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137638E+00 0.191545E+00 0.219819E+00 0.227617E+00 0.231554E+00 0.230358E+00 0.234787E+00 0.229626E+00 0.210293E+00 0.204223E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.133241E+00 0.178018E+00 0.206258E+00 0.218975E+00 0.228720E+00 0.230785E+00 0.234877E+00 0.233021E+00 0.214160E+00 0.205280E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127828E+00 0.168222E+00 0.188894E+00 0.215709E+00 0.224510E+00 0.230892E+00 0.235304E+00 0.233634E+00 0.214112E+00 0.203151E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.113720E+00 0.155378E+00 0.174791E+00 0.187182E+00 0.200302E+00 0.212370E+00 0.220878E+00 0.218500E+00 0.204194E+00 0.194789E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.912066E-01 0.121619E+00 0.157666E+00 0.169319E+00 0.174484E+00 0.180498E+00 0.186760E+00 0.188447E+00 0.176062E+00 0.170320E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.526026E-03 0.903793E-01 0.119341E+00 0.136596E+00 0.145281E+00 0.162964E+00 0.175444E+00 0.165335E+00 0.154416E+00 0.122075E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.277660E+00 0.318941E+00 0.336800E+00 0.344090E+00 0.343470E+00 0.341364E+00 0.330367E+00 0.324976E+00 0.308539E+00 0.288103E+00 0.277670E+00 0.237013E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308035E+00 0.356153E+00 0.373265E+00 0.379726E+00 0.378695E+00 0.376627E+00 0.366223E+00 0.360684E+00 0.345271E+00 0.325509E+00 0.317249E+00 0.276155E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304785E+00 0.353905E+00 0.370972E+00 0.377485E+00 0.376240E+00 0.375742E+00 0.370378E+00 0.358851E+00 0.344631E+00 0.324473E+00 0.316192E+00 0.275369E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.302345E+00 0.351198E+00 0.368661E+00 0.374856E+00 0.374047E+00 0.372518E+00 0.367826E+00 0.356557E+00 0.344204E+00 0.324438E+00 0.315107E+00 0.274660E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.298396E+00 0.348178E+00 0.366188E+00 0.372469E+00 0.373910E+00 0.369357E+00 0.365103E+00 0.354331E+00 0.348775E+00 0.332440E+00 0.315244E+00 0.275233E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294896E+00 0.345102E+00 0.363234E+00 0.369440E+00 0.370540E+00 0.366090E+00 0.362163E+00 0.352478E+00 0.345722E+00 0.330475E+00 0.314512E+00 0.282763E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.291431E+00 0.341530E+00 0.360265E+00 0.366337E+00 0.367005E+00 0.362497E+00 0.360830E+00 0.354207E+00 0.343098E+00 0.329096E+00 0.313235E+00 0.305603E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.287675E+00 0.337645E+00 0.356844E+00 0.362972E+00 0.363278E+00 0.359013E+00 0.357216E+00 0.351088E+00 0.340299E+00 0.327204E+00 0.311332E+00 0.304134E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.283960E+00 0.334471E+00 0.353556E+00 0.359503E+00 0.359781E+00 0.355229E+00 0.353553E+00 0.347788E+00 0.337755E+00 0.324926E+00 0.309302E+00 0.302148E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280102E+00 0.330707E+00 0.349467E+00 0.356128E+00 0.356307E+00 0.351683E+00 0.349876E+00 0.344588E+00 0.335203E+00 0.322387E+00 0.307252E+00 0.299118E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.276464E+00 0.327507E+00 0.345475E+00 0.352839E+00 0.352800E+00 0.348308E+00 0.346400E+00 0.341326E+00 0.332851E+00 0.320316E+00 0.304958E+00 0.294088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272431E+00 0.324165E+00 0.341554E+00 0.349695E+00 0.349345E+00 0.345076E+00 0.343280E+00 0.338234E+00 0.330451E+00 0.317985E+00 0.302351E+00 0.279834E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267280E+00 0.320409E+00 0.337545E+00 0.345566E+00 0.345206E+00 0.342325E+00 0.339371E+00 0.333650E+00 0.327742E+00 0.315363E+00 0.299670E+00 0.260736E+00 0.157512E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.261510E+00 0.316727E+00 0.333375E+00 0.340747E+00 0.339786E+00 0.339393E+00 0.335263E+00 0.327629E+00 0.324135E+00 0.311526E+00 0.295938E+00 0.257771E+00 0.990325E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.255828E+00 0.312244E+00 0.328587E+00 0.335458E+00 0.335250E+00 0.334712E+00 0.329975E+00 0.324514E+00 0.317375E+00 0.302943E+00 0.290037E+00 0.252719E+00 0.983667E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249852E+00 0.307280E+00 0.323349E+00 0.328884E+00 0.329361E+00 0.328342E+00 0.321690E+00 0.318976E+00 0.307857E+00 0.292175E+00 0.274856E+00 0.237003E+00 0.956192E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242334E+00 0.301712E+00 0.317704E+00 0.321658E+00 0.322689E+00 0.321155E+00 0.315359E+00 0.311661E+00 0.300893E+00 0.286262E+00 0.257811E+00 0.205463E+00 0.198088E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.234889E+00 0.296387E+00 0.311362E+00 0.315148E+00 0.314568E+00 0.311122E+00 0.307262E+00 0.301329E+00 0.289150E+00 0.278995E+00 0.251090E+00 0.213917E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227516E+00 0.290980E+00 0.304572E+00 0.308326E+00 0.306379E+00 0.301129E+00 0.298781E+00 0.291722E+00 0.277956E+00 0.271204E+00 0.241578E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.221491E+00 0.284440E+00 0.299031E+00 0.301771E+00 0.299538E+00 0.294240E+00 0.291538E+00 0.284824E+00 0.272041E+00 0.256869E+00 0.227449E+00 0.136337E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214576E+00 0.276598E+00 0.293402E+00 0.295009E+00 0.290636E+00 0.287097E+00 0.282615E+00 0.273665E+00 0.266544E+00 0.244456E+00 0.214517E+00 0.169972E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.207237E+00 0.269049E+00 0.287189E+00 0.288762E+00 0.283604E+00 0.281341E+00 0.275748E+00 0.265393E+00 0.261435E+00 0.239466E+00 0.209934E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.199547E+00 0.261700E+00 0.280776E+00 0.283111E+00 0.278624E+00 0.274794E+00 0.265494E+00 0.260789E+00 0.247781E+00 0.220838E+00 0.204455E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193694E+00 0.253560E+00 0.272636E+00 0.275413E+00 0.274436E+00 0.270478E+00 0.259010E+00 0.256957E+00 0.239470E+00 0.209799E+00 0.186976E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.187457E+00 0.244434E+00 0.262799E+00 0.266617E+00 0.268263E+00 0.265520E+00 0.255450E+00 0.252430E+00 0.234977E+00 0.207907E+00 0.203364E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.180851E+00 0.232137E+00 0.250968E+00 0.256593E+00 0.256857E+00 0.250467E+00 0.249297E+00 0.238905E+00 0.214052E+00 0.202673E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.174046E+00 0.213656E+00 0.239036E+00 0.244433E+00 0.244193E+00 0.238275E+00 0.240463E+00 0.230327E+00 0.207007E+00 0.200038E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165595E+00 0.190323E+00 0.224595E+00 0.231846E+00 0.232561E+00 0.230755E+00 0.233453E+00 0.225421E+00 0.206655E+00 0.197436E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.154420E+00 0.174503E+00 0.202461E+00 0.222048E+00 0.226597E+00 0.230467E+00 0.232939E+00 0.226542E+00 0.206807E+00 0.195971E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.136534E+00 0.165115E+00 0.181629E+00 0.191444E+00 0.195858E+00 0.205230E+00 0.213466E+00 0.212695E+00 0.192343E+00 0.183986E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.107375E+00 0.136565E+00 0.165160E+00 0.165226E+00 0.167947E+00 0.172278E+00 0.177240E+00 0.176131E+00 0.162514E+00 0.156849E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.479193E-03 0.556360E-01 0.844995E-01 0.103365E+00 0.105629E+00 0.120217E+00 0.133643E+00 0.132652E+00 0.121153E+00 0.979784E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327521E+00 0.356494E+00 0.371123E+00 0.377142E+00 0.374072E+00 0.369770E+00 0.356486E+00 0.351141E+00 0.332160E+00 0.309485E+00 0.296988E+00 0.251300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.366052E+00 0.396219E+00 0.409978E+00 0.414903E+00 0.411558E+00 0.407561E+00 0.394888E+00 0.389163E+00 0.370946E+00 0.348608E+00 0.338499E+00 0.291889E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.363143E+00 0.393595E+00 0.407361E+00 0.412720E+00 0.409465E+00 0.408619E+00 0.402251E+00 0.388178E+00 0.370423E+00 0.347666E+00 0.337391E+00 0.290981E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361908E+00 0.390560E+00 0.404454E+00 0.410201E+00 0.407531E+00 0.405789E+00 0.400179E+00 0.386592E+00 0.370468E+00 0.347592E+00 0.335584E+00 0.290076E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358319E+00 0.387327E+00 0.401154E+00 0.407523E+00 0.408534E+00 0.402674E+00 0.397261E+00 0.383810E+00 0.375970E+00 0.356147E+00 0.335495E+00 0.290592E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353874E+00 0.383790E+00 0.397437E+00 0.403475E+00 0.404313E+00 0.398815E+00 0.393802E+00 0.381092E+00 0.372025E+00 0.353348E+00 0.334544E+00 0.298048E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349550E+00 0.379396E+00 0.393452E+00 0.399153E+00 0.399807E+00 0.393981E+00 0.391328E+00 0.381920E+00 0.368228E+00 0.350432E+00 0.331928E+00 0.320760E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344709E+00 0.374673E+00 0.388560E+00 0.393946E+00 0.394270E+00 0.388562E+00 0.385569E+00 0.376863E+00 0.364045E+00 0.346974E+00 0.328882E+00 0.317947E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339477E+00 0.371027E+00 0.383716E+00 0.388558E+00 0.388348E+00 0.382650E+00 0.379766E+00 0.371686E+00 0.359579E+00 0.343396E+00 0.325449E+00 0.314424E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334642E+00 0.366900E+00 0.378618E+00 0.383021E+00 0.382152E+00 0.376531E+00 0.373945E+00 0.366516E+00 0.355160E+00 0.339281E+00 0.321934E+00 0.310184E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329044E+00 0.363313E+00 0.373905E+00 0.377682E+00 0.376291E+00 0.370900E+00 0.368370E+00 0.361634E+00 0.350919E+00 0.335665E+00 0.317649E+00 0.304135E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323720E+00 0.359430E+00 0.369304E+00 0.372149E+00 0.370328E+00 0.365471E+00 0.362631E+00 0.356845E+00 0.346953E+00 0.332159E+00 0.313963E+00 0.287701E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317864E+00 0.355383E+00 0.364649E+00 0.366607E+00 0.363946E+00 0.360485E+00 0.356558E+00 0.350148E+00 0.342775E+00 0.328559E+00 0.310619E+00 0.268098E+00 0.158953E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312034E+00 0.350971E+00 0.360777E+00 0.361586E+00 0.357212E+00 0.355426E+00 0.350432E+00 0.342111E+00 0.338399E+00 0.324454E+00 0.306746E+00 0.265003E+00 0.993800E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306351E+00 0.346424E+00 0.356935E+00 0.357459E+00 0.353291E+00 0.350343E+00 0.344191E+00 0.338257E+00 0.331514E+00 0.316449E+00 0.301074E+00 0.259850E+00 0.988136E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.300658E+00 0.341486E+00 0.352737E+00 0.352403E+00 0.349414E+00 0.345459E+00 0.336921E+00 0.334204E+00 0.322877E+00 0.306284E+00 0.286153E+00 0.243768E+00 0.960396E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294631E+00 0.336647E+00 0.347983E+00 0.347169E+00 0.345915E+00 0.341844E+00 0.334059E+00 0.330238E+00 0.318907E+00 0.301804E+00 0.268898E+00 0.209914E+00 0.155552E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.287830E+00 0.331102E+00 0.341496E+00 0.342806E+00 0.340741E+00 0.334786E+00 0.329605E+00 0.322105E+00 0.307817E+00 0.295260E+00 0.262719E+00 0.150303E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280742E+00 0.324982E+00 0.334249E+00 0.337091E+00 0.334246E+00 0.325768E+00 0.323262E+00 0.312428E+00 0.295684E+00 0.286493E+00 0.252510E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.272988E+00 0.317773E+00 0.327881E+00 0.330338E+00 0.327069E+00 0.318518E+00 0.314585E+00 0.304648E+00 0.288702E+00 0.270232E+00 0.236737E+00 0.139087E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265049E+00 0.308760E+00 0.320614E+00 0.321672E+00 0.315591E+00 0.309736E+00 0.302830E+00 0.290210E+00 0.280292E+00 0.255054E+00 0.221360E+00 0.128808E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.255219E+00 0.300200E+00 0.312348E+00 0.312596E+00 0.304118E+00 0.299965E+00 0.292459E+00 0.278391E+00 0.272851E+00 0.247726E+00 0.214964E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.245030E+00 0.291493E+00 0.303401E+00 0.302388E+00 0.294813E+00 0.289536E+00 0.278242E+00 0.271603E+00 0.257165E+00 0.226981E+00 0.208681E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.235071E+00 0.282896E+00 0.294752E+00 0.291168E+00 0.287354E+00 0.281875E+00 0.268929E+00 0.266259E+00 0.247206E+00 0.214624E+00 0.188237E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.225667E+00 0.272154E+00 0.286075E+00 0.282893E+00 0.281030E+00 0.276287E+00 0.264820E+00 0.261009E+00 0.241648E+00 0.211857E+00 0.136211E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215049E+00 0.256874E+00 0.273605E+00 0.275705E+00 0.273084E+00 0.263099E+00 0.260049E+00 0.246780E+00 0.218864E+00 0.205246E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203073E+00 0.237870E+00 0.259607E+00 0.263595E+00 0.261876E+00 0.251879E+00 0.251514E+00 0.236215E+00 0.207697E+00 0.198362E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190985E+00 0.214715E+00 0.243305E+00 0.246234E+00 0.245008E+00 0.237648E+00 0.237209E+00 0.224484E+00 0.199145E+00 0.190599E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.176135E+00 0.194866E+00 0.222721E+00 0.229419E+00 0.228566E+00 0.228950E+00 0.229059E+00 0.220075E+00 0.196128E+00 0.189282E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.155079E+00 0.180339E+00 0.200100E+00 0.207195E+00 0.206064E+00 0.209097E+00 0.212350E+00 0.207186E+00 0.187948E+00 0.181790E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.123765E+00 0.154357E+00 0.171271E+00 0.174280E+00 0.176915E+00 0.178639E+00 0.179880E+00 0.175307E+00 0.160168E+00 0.156080E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.835615E-03 0.304271E-01 0.536443E-01 0.691299E-01 0.732435E-01 0.770047E-01 0.900208E-01 0.102816E+00 0.913839E-01 0.747735E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.362520E+00 0.386361E+00 0.394915E+00 0.396615E+00 0.390056E+00 0.384648E+00 0.370200E+00 0.364704E+00 0.346257E+00 0.322201E+00 0.309560E+00 0.260119E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.407415E+00 0.430192E+00 0.437369E+00 0.437743E+00 0.430346E+00 0.424881E+00 0.411568E+00 0.405360E+00 0.387982E+00 0.364290E+00 0.353551E+00 0.302572E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404879E+00 0.427791E+00 0.435750E+00 0.435971E+00 0.429144E+00 0.427136E+00 0.420617E+00 0.405281E+00 0.388718E+00 0.364432E+00 0.352769E+00 0.301907E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404290E+00 0.425137E+00 0.434133E+00 0.434437E+00 0.428435E+00 0.425633E+00 0.419670E+00 0.404931E+00 0.390150E+00 0.365533E+00 0.351948E+00 0.301322E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.401450E+00 0.422446E+00 0.431858E+00 0.433555E+00 0.432063E+00 0.424537E+00 0.418905E+00 0.403926E+00 0.398537E+00 0.376248E+00 0.352750E+00 0.303051E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398072E+00 0.419016E+00 0.429136E+00 0.431501E+00 0.430411E+00 0.423256E+00 0.418303E+00 0.404019E+00 0.396058E+00 0.374390E+00 0.352169E+00 0.311521E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.394508E+00 0.414882E+00 0.425392E+00 0.429133E+00 0.428364E+00 0.421295E+00 0.418923E+00 0.408301E+00 0.393337E+00 0.371852E+00 0.350311E+00 0.335950E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390591E+00 0.409838E+00 0.421177E+00 0.425774E+00 0.425206E+00 0.418186E+00 0.414889E+00 0.404792E+00 0.389369E+00 0.368410E+00 0.347093E+00 0.332454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386503E+00 0.405250E+00 0.416827E+00 0.421260E+00 0.420496E+00 0.413243E+00 0.409421E+00 0.399769E+00 0.384786E+00 0.364503E+00 0.343004E+00 0.328311E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382007E+00 0.400283E+00 0.412002E+00 0.415935E+00 0.414392E+00 0.406955E+00 0.402740E+00 0.393791E+00 0.379510E+00 0.359930E+00 0.338312E+00 0.323038E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.377134E+00 0.395739E+00 0.406345E+00 0.409494E+00 0.406763E+00 0.399650E+00 0.395330E+00 0.386983E+00 0.373741E+00 0.354617E+00 0.333141E+00 0.314873E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372306E+00 0.390310E+00 0.399983E+00 0.402322E+00 0.398306E+00 0.391808E+00 0.387854E+00 0.380217E+00 0.367971E+00 0.349496E+00 0.327939E+00 0.296055E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.366816E+00 0.385378E+00 0.392928E+00 0.393901E+00 0.388634E+00 0.384387E+00 0.379340E+00 0.371023E+00 0.361654E+00 0.343777E+00 0.323033E+00 0.275438E+00 0.160730E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359785E+00 0.380174E+00 0.386209E+00 0.385716E+00 0.378825E+00 0.377111E+00 0.370790E+00 0.360601E+00 0.354985E+00 0.337989E+00 0.317577E+00 0.270658E+00 0.995717E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353697E+00 0.374244E+00 0.379412E+00 0.378657E+00 0.372604E+00 0.369828E+00 0.362050E+00 0.355006E+00 0.345902E+00 0.327763E+00 0.310556E+00 0.264581E+00 0.988707E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.347536E+00 0.369073E+00 0.373204E+00 0.370789E+00 0.366596E+00 0.362724E+00 0.352702E+00 0.349518E+00 0.336035E+00 0.316411E+00 0.294204E+00 0.247503E+00 0.958960E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.341832E+00 0.364778E+00 0.367510E+00 0.363387E+00 0.361351E+00 0.357057E+00 0.347875E+00 0.344449E+00 0.330962E+00 0.312095E+00 0.276075E+00 0.211141E+00 0.122907E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.336308E+00 0.359759E+00 0.361255E+00 0.358458E+00 0.356107E+00 0.348995E+00 0.343647E+00 0.336323E+00 0.320037E+00 0.306654E+00 0.271119E+00 0.105945E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.330560E+00 0.354615E+00 0.355223E+00 0.354323E+00 0.350916E+00 0.341534E+00 0.339337E+00 0.328244E+00 0.309080E+00 0.298836E+00 0.260444E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323609E+00 0.348525E+00 0.351766E+00 0.350474E+00 0.346821E+00 0.338003E+00 0.334412E+00 0.322140E+00 0.303204E+00 0.281357E+00 0.244058E+00 0.140596E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.315296E+00 0.339013E+00 0.346512E+00 0.345567E+00 0.338371E+00 0.332486E+00 0.323504E+00 0.307597E+00 0.295184E+00 0.264754E+00 0.228454E+00 0.107923E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303579E+00 0.329367E+00 0.340339E+00 0.338594E+00 0.329099E+00 0.323080E+00 0.311931E+00 0.294316E+00 0.284868E+00 0.254747E+00 0.221257E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.289820E+00 0.318918E+00 0.330955E+00 0.328653E+00 0.318733E+00 0.309062E+00 0.294622E+00 0.284864E+00 0.265723E+00 0.231079E+00 0.212519E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.274795E+00 0.306157E+00 0.317921E+00 0.312004E+00 0.306026E+00 0.297128E+00 0.281642E+00 0.276066E+00 0.252748E+00 0.217577E+00 0.190400E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259943E+00 0.294038E+00 0.304092E+00 0.298229E+00 0.294538E+00 0.287001E+00 0.273975E+00 0.268576E+00 0.245114E+00 0.213940E+00 0.102248E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244430E+00 0.279436E+00 0.289884E+00 0.288667E+00 0.283460E+00 0.270917E+00 0.266957E+00 0.252169E+00 0.220036E+00 0.208737E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.229528E+00 0.258153E+00 0.277652E+00 0.278804E+00 0.274112E+00 0.261006E+00 0.259604E+00 0.241076E+00 0.208794E+00 0.201671E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214706E+00 0.239630E+00 0.261624E+00 0.262825E+00 0.259059E+00 0.248511E+00 0.245217E+00 0.227514E+00 0.197687E+00 0.191511E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.197082E+00 0.219143E+00 0.242447E+00 0.243237E+00 0.234983E+00 0.232633E+00 0.229329E+00 0.215557E+00 0.191501E+00 0.186949E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.175596E+00 0.198486E+00 0.220400E+00 0.225117E+00 0.218231E+00 0.216854E+00 0.216269E+00 0.206306E+00 0.185078E+00 0.180620E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143817E+00 0.165365E+00 0.185192E+00 0.186687E+00 0.186408E+00 0.184828E+00 0.183470E+00 0.175216E+00 0.158992E+00 0.155113E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.121226E-02 0.134688E-01 0.306957E-01 0.411454E-01 0.475273E-01 0.500461E-01 0.536436E-01 0.743847E-01 0.633647E-01 0.518472E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389310E+00 0.406933E+00 0.413707E+00 0.415283E+00 0.407780E+00 0.401892E+00 0.386736E+00 0.379124E+00 0.358325E+00 0.333045E+00 0.319423E+00 0.266207E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439798E+00 0.453605E+00 0.457615E+00 0.458381E+00 0.450399E+00 0.444185E+00 0.429361E+00 0.421662E+00 0.401709E+00 0.376556E+00 0.365396E+00 0.310603E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437186E+00 0.450793E+00 0.454978E+00 0.455897E+00 0.448489E+00 0.445784E+00 0.437896E+00 0.421074E+00 0.402373E+00 0.376729E+00 0.364658E+00 0.309693E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437488E+00 0.447442E+00 0.451839E+00 0.453059E+00 0.446786E+00 0.443169E+00 0.435881E+00 0.420246E+00 0.403917E+00 0.378366E+00 0.363886E+00 0.309306E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434106E+00 0.444740E+00 0.448440E+00 0.450747E+00 0.449297E+00 0.440749E+00 0.434155E+00 0.419036E+00 0.412728E+00 0.389906E+00 0.364371E+00 0.311021E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431128E+00 0.441707E+00 0.445790E+00 0.447646E+00 0.446269E+00 0.438107E+00 0.432939E+00 0.419334E+00 0.410579E+00 0.388756E+00 0.364565E+00 0.321004E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.427680E+00 0.438554E+00 0.443140E+00 0.444825E+00 0.443886E+00 0.435901E+00 0.434296E+00 0.424662E+00 0.408951E+00 0.387203E+00 0.363182E+00 0.347086E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.424539E+00 0.436280E+00 0.439876E+00 0.441820E+00 0.440875E+00 0.433513E+00 0.431848E+00 0.422231E+00 0.406692E+00 0.384788E+00 0.360564E+00 0.343625E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421328E+00 0.433878E+00 0.437317E+00 0.439048E+00 0.438099E+00 0.430964E+00 0.429062E+00 0.419098E+00 0.403489E+00 0.381593E+00 0.357167E+00 0.339244E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417735E+00 0.431047E+00 0.435192E+00 0.436795E+00 0.435094E+00 0.428149E+00 0.425867E+00 0.414964E+00 0.399472E+00 0.377715E+00 0.352760E+00 0.333367E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.414220E+00 0.427295E+00 0.432681E+00 0.434142E+00 0.431291E+00 0.424715E+00 0.421032E+00 0.409977E+00 0.394634E+00 0.372709E+00 0.347497E+00 0.324066E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.409960E+00 0.422631E+00 0.429589E+00 0.430178E+00 0.426256E+00 0.419227E+00 0.414258E+00 0.403859E+00 0.388989E+00 0.367486E+00 0.341494E+00 0.303755E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404508E+00 0.417479E+00 0.424607E+00 0.423898E+00 0.418129E+00 0.412059E+00 0.405244E+00 0.393945E+00 0.381826E+00 0.360622E+00 0.335591E+00 0.282299E+00 0.161531E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.397783E+00 0.412245E+00 0.417896E+00 0.415761E+00 0.407168E+00 0.403706E+00 0.394623E+00 0.381893E+00 0.373506E+00 0.352797E+00 0.328960E+00 0.276570E+00 0.997760E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.392166E+00 0.405720E+00 0.409447E+00 0.406705E+00 0.398860E+00 0.393864E+00 0.383868E+00 0.374154E+00 0.362044E+00 0.341030E+00 0.320628E+00 0.269289E+00 0.988101E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386296E+00 0.398602E+00 0.399647E+00 0.395353E+00 0.390179E+00 0.384071E+00 0.371929E+00 0.366865E+00 0.349768E+00 0.328196E+00 0.302691E+00 0.250645E+00 0.953353E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.379902E+00 0.390898E+00 0.390310E+00 0.384210E+00 0.381781E+00 0.376167E+00 0.365093E+00 0.359942E+00 0.343286E+00 0.322513E+00 0.283621E+00 0.211709E+00 0.986551E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372036E+00 0.383229E+00 0.381040E+00 0.376641E+00 0.373184E+00 0.365805E+00 0.358694E+00 0.349609E+00 0.331375E+00 0.315914E+00 0.277781E+00 0.789601E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.364698E+00 0.376394E+00 0.372333E+00 0.369702E+00 0.365836E+00 0.356131E+00 0.352727E+00 0.340323E+00 0.319738E+00 0.307223E+00 0.265630E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.357747E+00 0.369899E+00 0.366576E+00 0.364116E+00 0.360199E+00 0.351297E+00 0.347204E+00 0.334452E+00 0.313911E+00 0.288921E+00 0.248693E+00 0.141189E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349957E+00 0.361234E+00 0.361250E+00 0.357950E+00 0.350942E+00 0.346309E+00 0.337494E+00 0.320294E+00 0.305205E+00 0.271266E+00 0.233717E+00 0.891574E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340325E+00 0.354859E+00 0.356500E+00 0.353554E+00 0.343390E+00 0.340017E+00 0.327390E+00 0.307104E+00 0.292483E+00 0.259649E+00 0.224798E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.328356E+00 0.346184E+00 0.351536E+00 0.348142E+00 0.337116E+00 0.327087E+00 0.308576E+00 0.294777E+00 0.269716E+00 0.235303E+00 0.214492E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312799E+00 0.333387E+00 0.342317E+00 0.333736E+00 0.325264E+00 0.311864E+00 0.291290E+00 0.281661E+00 0.253792E+00 0.220637E+00 0.190943E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294541E+00 0.316747E+00 0.326079E+00 0.316498E+00 0.308312E+00 0.296642E+00 0.279157E+00 0.270298E+00 0.245547E+00 0.216525E+00 0.811264E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.274509E+00 0.299166E+00 0.304432E+00 0.300000E+00 0.291859E+00 0.275928E+00 0.269975E+00 0.253115E+00 0.222070E+00 0.210789E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.255795E+00 0.279108E+00 0.289216E+00 0.287334E+00 0.281055E+00 0.265829E+00 0.263723E+00 0.245454E+00 0.212024E+00 0.206348E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.239867E+00 0.259319E+00 0.276461E+00 0.275763E+00 0.270506E+00 0.258756E+00 0.255608E+00 0.236702E+00 0.204918E+00 0.197941E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.222159E+00 0.239407E+00 0.258183E+00 0.258497E+00 0.248629E+00 0.244547E+00 0.239846E+00 0.222797E+00 0.192670E+00 0.187726E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.198605E+00 0.215936E+00 0.235389E+00 0.235141E+00 0.224800E+00 0.221614E+00 0.218975E+00 0.207701E+00 0.183306E+00 0.178414E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.165096E+00 0.176159E+00 0.198597E+00 0.196773E+00 0.195378E+00 0.194564E+00 0.192467E+00 0.180797E+00 0.160824E+00 0.153883E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.190373E-02 0.186890E-02 0.576892E-02 0.221954E-01 0.222928E-01 0.230680E-01 0.294729E-01 0.448587E-01 0.364432E-01 0.298946E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.415466E+00 0.435159E+00 0.444880E+00 0.446970E+00 0.438381E+00 0.431288E+00 0.413335E+00 0.405081E+00 0.382054E+00 0.353424E+00 0.339714E+00 0.279872E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.468012E+00 0.484061E+00 0.492385E+00 0.493581E+00 0.484289E+00 0.477419E+00 0.459950E+00 0.451944E+00 0.429668E+00 0.401222E+00 0.390262E+00 0.327285E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464559E+00 0.480024E+00 0.488178E+00 0.489376E+00 0.480945E+00 0.478316E+00 0.469553E+00 0.450641E+00 0.429793E+00 0.400697E+00 0.388690E+00 0.325919E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464464E+00 0.475835E+00 0.483765E+00 0.484899E+00 0.477696E+00 0.474461E+00 0.466580E+00 0.448811E+00 0.430434E+00 0.401814E+00 0.386687E+00 0.324450E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.460759E+00 0.471720E+00 0.479264E+00 0.481667E+00 0.479863E+00 0.470551E+00 0.463511E+00 0.446428E+00 0.439825E+00 0.414853E+00 0.386866E+00 0.326109E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.457115E+00 0.467298E+00 0.474456E+00 0.477061E+00 0.475397E+00 0.466454E+00 0.460876E+00 0.445367E+00 0.436230E+00 0.412238E+00 0.386211E+00 0.337812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.453050E+00 0.462938E+00 0.469603E+00 0.472473E+00 0.471112E+00 0.462611E+00 0.461097E+00 0.449966E+00 0.433205E+00 0.410257E+00 0.384712E+00 0.368980E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.449719E+00 0.458824E+00 0.464914E+00 0.467628E+00 0.466408E+00 0.458198E+00 0.456983E+00 0.446186E+00 0.430305E+00 0.408100E+00 0.382498E+00 0.366736E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.446600E+00 0.455178E+00 0.460733E+00 0.463222E+00 0.461903E+00 0.453718E+00 0.452462E+00 0.442306E+00 0.427366E+00 0.405237E+00 0.379740E+00 0.363744E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443161E+00 0.451769E+00 0.456964E+00 0.459127E+00 0.457562E+00 0.449573E+00 0.448103E+00 0.438781E+00 0.424500E+00 0.402319E+00 0.376212E+00 0.359268E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439705E+00 0.448393E+00 0.452985E+00 0.455094E+00 0.453550E+00 0.445665E+00 0.444226E+00 0.435415E+00 0.421590E+00 0.399034E+00 0.372482E+00 0.350957E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.436358E+00 0.444981E+00 0.449291E+00 0.451281E+00 0.449311E+00 0.442022E+00 0.440527E+00 0.431852E+00 0.418216E+00 0.394857E+00 0.367621E+00 0.329235E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431510E+00 0.442450E+00 0.445904E+00 0.447279E+00 0.443248E+00 0.438737E+00 0.434323E+00 0.424221E+00 0.412583E+00 0.388944E+00 0.361992E+00 0.304703E+00 0.169036E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.425330E+00 0.439454E+00 0.443182E+00 0.443153E+00 0.435586E+00 0.434198E+00 0.426225E+00 0.411962E+00 0.404780E+00 0.381265E+00 0.354880E+00 0.299164E+00 0.103426E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420844E+00 0.435514E+00 0.439107E+00 0.438345E+00 0.431035E+00 0.426769E+00 0.416474E+00 0.405635E+00 0.392392E+00 0.367698E+00 0.344815E+00 0.292482E+00 0.102550E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.415683E+00 0.429989E+00 0.432799E+00 0.429372E+00 0.424335E+00 0.417566E+00 0.403475E+00 0.397976E+00 0.378307E+00 0.351755E+00 0.323292E+00 0.272413E+00 0.994715E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.409175E+00 0.422109E+00 0.423899E+00 0.417728E+00 0.416227E+00 0.409197E+00 0.396144E+00 0.389518E+00 0.370131E+00 0.344921E+00 0.301046E+00 0.231694E+00 0.106992E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.401054E+00 0.412474E+00 0.412140E+00 0.408256E+00 0.405462E+00 0.395595E+00 0.387756E+00 0.376507E+00 0.354166E+00 0.336410E+00 0.293971E+00 0.813416E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.392628E+00 0.401874E+00 0.399557E+00 0.397621E+00 0.393992E+00 0.381523E+00 0.378183E+00 0.363244E+00 0.338355E+00 0.326011E+00 0.282352E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382352E+00 0.391040E+00 0.389117E+00 0.386932E+00 0.382388E+00 0.371909E+00 0.368146E+00 0.353543E+00 0.330842E+00 0.305714E+00 0.263738E+00 0.147184E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.371208E+00 0.377656E+00 0.378890E+00 0.375574E+00 0.368041E+00 0.363232E+00 0.355162E+00 0.336357E+00 0.323155E+00 0.287517E+00 0.248397E+00 0.953220E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358209E+00 0.367860E+00 0.370617E+00 0.367127E+00 0.356849E+00 0.356237E+00 0.344492E+00 0.323185E+00 0.311240E+00 0.276178E+00 0.239270E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345459E+00 0.360866E+00 0.363522E+00 0.360311E+00 0.351036E+00 0.344720E+00 0.325622E+00 0.312876E+00 0.285973E+00 0.248709E+00 0.224979E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332805E+00 0.350275E+00 0.356118E+00 0.348346E+00 0.343001E+00 0.330855E+00 0.310001E+00 0.297713E+00 0.266678E+00 0.230791E+00 0.199968E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.315897E+00 0.335266E+00 0.344257E+00 0.334767E+00 0.327378E+00 0.315256E+00 0.296702E+00 0.282776E+00 0.254944E+00 0.223954E+00 0.814151E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.297679E+00 0.315322E+00 0.321995E+00 0.317168E+00 0.307233E+00 0.291071E+00 0.283589E+00 0.262783E+00 0.228535E+00 0.215784E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.278141E+00 0.292520E+00 0.302371E+00 0.299475E+00 0.291060E+00 0.276395E+00 0.273209E+00 0.252823E+00 0.217448E+00 0.210722E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.259201E+00 0.276752E+00 0.288066E+00 0.285119E+00 0.278625E+00 0.267881E+00 0.266349E+00 0.247557E+00 0.211898E+00 0.204872E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.242245E+00 0.258426E+00 0.275190E+00 0.274857E+00 0.263065E+00 0.260397E+00 0.256308E+00 0.236954E+00 0.202421E+00 0.197036E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.220137E+00 0.232137E+00 0.251886E+00 0.252773E+00 0.240883E+00 0.237028E+00 0.233220E+00 0.217293E+00 0.189813E+00 0.186555E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.181457E+00 0.197305E+00 0.206256E+00 0.202601E+00 0.202243E+00 0.202516E+00 0.202884E+00 0.192158E+00 0.169570E+00 0.165556E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.232928E-02 0.147964E-02 0.225895E-02 0.335345E-02 0.446323E-02 0.556238E-02 0.651205E-02 0.150419E-01 0.132664E-01 0.118353E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.446635E+00 0.468702E+00 0.478245E+00 0.480308E+00 0.469255E+00 0.460848E+00 0.439910E+00 0.431848E+00 0.406921E+00 0.375667E+00 0.360699E+00 0.299781E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.502973E+00 0.522101E+00 0.530700E+00 0.532454E+00 0.521089E+00 0.512529E+00 0.492382E+00 0.483916E+00 0.459819E+00 0.427222E+00 0.415741E+00 0.353621E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.499418E+00 0.518589E+00 0.527625E+00 0.529949E+00 0.518799E+00 0.516098E+00 0.506588E+00 0.483498E+00 0.460559E+00 0.426750E+00 0.414363E+00 0.351881E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.500061E+00 0.514673E+00 0.523992E+00 0.526641E+00 0.516901E+00 0.513253E+00 0.504592E+00 0.482217E+00 0.461928E+00 0.427867E+00 0.412113E+00 0.350491E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496022E+00 0.510049E+00 0.519721E+00 0.523879E+00 0.522011E+00 0.510117E+00 0.502192E+00 0.480065E+00 0.473747E+00 0.443735E+00 0.412690E+00 0.350891E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491809E+00 0.504796E+00 0.514972E+00 0.518940E+00 0.516987E+00 0.506381E+00 0.499932E+00 0.479316E+00 0.469667E+00 0.441263E+00 0.411925E+00 0.360088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.486868E+00 0.498823E+00 0.510125E+00 0.513736E+00 0.511476E+00 0.501505E+00 0.500251E+00 0.485384E+00 0.466470E+00 0.438908E+00 0.409536E+00 0.393326E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.482425E+00 0.492809E+00 0.503697E+00 0.507802E+00 0.505277E+00 0.495686E+00 0.493991E+00 0.479969E+00 0.462224E+00 0.435773E+00 0.406435E+00 0.390977E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.477586E+00 0.487480E+00 0.498027E+00 0.501099E+00 0.497977E+00 0.488985E+00 0.486998E+00 0.474007E+00 0.457478E+00 0.432065E+00 0.403059E+00 0.388250E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.472573E+00 0.481486E+00 0.491640E+00 0.493864E+00 0.490640E+00 0.481890E+00 0.479546E+00 0.468159E+00 0.452258E+00 0.427367E+00 0.399494E+00 0.384145E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.466679E+00 0.476207E+00 0.485125E+00 0.486571E+00 0.483755E+00 0.474829E+00 0.472629E+00 0.462710E+00 0.447208E+00 0.423313E+00 0.395919E+00 0.375910E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.461194E+00 0.470042E+00 0.478373E+00 0.479857E+00 0.476657E+00 0.468063E+00 0.465823E+00 0.457243E+00 0.442213E+00 0.419197E+00 0.391194E+00 0.352312E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454360E+00 0.464298E+00 0.471880E+00 0.472893E+00 0.467895E+00 0.462030E+00 0.457657E+00 0.447692E+00 0.437176E+00 0.414112E+00 0.386560E+00 0.325827E+00 0.175680E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.446104E+00 0.459230E+00 0.466065E+00 0.466067E+00 0.457116E+00 0.456005E+00 0.448895E+00 0.435521E+00 0.431312E+00 0.407438E+00 0.379856E+00 0.320984E+00 0.107114E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440282E+00 0.454704E+00 0.460720E+00 0.460222E+00 0.452155E+00 0.449252E+00 0.439548E+00 0.430778E+00 0.419547E+00 0.393888E+00 0.370338E+00 0.314207E+00 0.106335E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434095E+00 0.450566E+00 0.455149E+00 0.452274E+00 0.447676E+00 0.442293E+00 0.427810E+00 0.424851E+00 0.405104E+00 0.377182E+00 0.347207E+00 0.294010E+00 0.103602E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.426482E+00 0.445308E+00 0.449088E+00 0.442854E+00 0.442555E+00 0.436765E+00 0.422766E+00 0.417921E+00 0.397543E+00 0.369740E+00 0.322318E+00 0.251995E+00 0.145998E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416928E+00 0.436836E+00 0.438474E+00 0.436039E+00 0.434134E+00 0.424127E+00 0.415487E+00 0.404158E+00 0.379216E+00 0.358605E+00 0.313527E+00 0.119077E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.405889E+00 0.424950E+00 0.425675E+00 0.426423E+00 0.423892E+00 0.409262E+00 0.405125E+00 0.387837E+00 0.358749E+00 0.342797E+00 0.297075E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389395E+00 0.408507E+00 0.413393E+00 0.414062E+00 0.410729E+00 0.396804E+00 0.390006E+00 0.371574E+00 0.343675E+00 0.315664E+00 0.273407E+00 0.151669E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372146E+00 0.384620E+00 0.396739E+00 0.397111E+00 0.388633E+00 0.380326E+00 0.368117E+00 0.345093E+00 0.329362E+00 0.292764E+00 0.254478E+00 0.115030E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.357507E+00 0.367277E+00 0.379422E+00 0.380715E+00 0.369452E+00 0.364325E+00 0.349984E+00 0.326583E+00 0.318376E+00 0.283378E+00 0.246282E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346451E+00 0.356429E+00 0.366685E+00 0.367448E+00 0.357405E+00 0.349067E+00 0.329061E+00 0.319100E+00 0.295758E+00 0.256760E+00 0.235821E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337025E+00 0.349517E+00 0.356214E+00 0.352402E+00 0.349384E+00 0.340518E+00 0.318383E+00 0.309569E+00 0.279885E+00 0.241632E+00 0.209844E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.325730E+00 0.344090E+00 0.349892E+00 0.344075E+00 0.341349E+00 0.331534E+00 0.311507E+00 0.299008E+00 0.269948E+00 0.236193E+00 0.105181E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312450E+00 0.331947E+00 0.335117E+00 0.333112E+00 0.326336E+00 0.309199E+00 0.302268E+00 0.278417E+00 0.240201E+00 0.226676E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296325E+00 0.307891E+00 0.317469E+00 0.316536E+00 0.309656E+00 0.293831E+00 0.290401E+00 0.265357E+00 0.225968E+00 0.217555E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.277004E+00 0.284378E+00 0.299931E+00 0.296620E+00 0.290175E+00 0.279599E+00 0.277148E+00 0.254246E+00 0.217540E+00 0.210107E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.257838E+00 0.270506E+00 0.279811E+00 0.277999E+00 0.266059E+00 0.264174E+00 0.261948E+00 0.243651E+00 0.209154E+00 0.203221E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.236228E+00 0.250086E+00 0.263498E+00 0.264149E+00 0.251985E+00 0.250807E+00 0.248157E+00 0.229842E+00 0.197633E+00 0.191781E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.193130E+00 0.203586E+00 0.216521E+00 0.207330E+00 0.205819E+00 0.205352E+00 0.204763E+00 0.195406E+00 0.173132E+00 0.168189E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.196439E-02 0.144216E-02 0.242641E-02 0.315426E-02 0.370871E-02 0.424189E-02 0.488918E-02 0.567514E-02 0.576534E-02 0.597571E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470927E+00 0.494811E+00 0.501880E+00 0.502811E+00 0.488444E+00 0.478860E+00 0.454958E+00 0.447844E+00 0.422099E+00 0.389709E+00 0.377386E+00 0.313476E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.531952E+00 0.554771E+00 0.560570E+00 0.560904E+00 0.545563E+00 0.536575E+00 0.512245E+00 0.504963E+00 0.479846E+00 0.447540E+00 0.439416E+00 0.371516E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528609E+00 0.552160E+00 0.558347E+00 0.558833E+00 0.544268E+00 0.541581E+00 0.529318E+00 0.504979E+00 0.480988E+00 0.448078E+00 0.438170E+00 0.370298E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.530483E+00 0.548733E+00 0.556231E+00 0.556549E+00 0.544397E+00 0.539671E+00 0.528341E+00 0.504567E+00 0.483878E+00 0.450576E+00 0.436342E+00 0.369016E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.526542E+00 0.544993E+00 0.553557E+00 0.555682E+00 0.552934E+00 0.537926E+00 0.527620E+00 0.504154E+00 0.499930E+00 0.469135E+00 0.437565E+00 0.371220E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.522184E+00 0.539908E+00 0.550251E+00 0.552643E+00 0.549829E+00 0.535793E+00 0.527879E+00 0.506123E+00 0.497251E+00 0.467690E+00 0.437931E+00 0.383962E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.516935E+00 0.534236E+00 0.546629E+00 0.549297E+00 0.546214E+00 0.533261E+00 0.532050E+00 0.517139E+00 0.495509E+00 0.466126E+00 0.436306E+00 0.423484E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.511535E+00 0.527473E+00 0.541264E+00 0.544442E+00 0.542013E+00 0.529661E+00 0.527799E+00 0.514009E+00 0.492394E+00 0.463479E+00 0.433709E+00 0.421033E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.505467E+00 0.520501E+00 0.534601E+00 0.538611E+00 0.536281E+00 0.524590E+00 0.522729E+00 0.509788E+00 0.488529E+00 0.460002E+00 0.429903E+00 0.417027E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.498763E+00 0.511800E+00 0.526664E+00 0.531606E+00 0.529782E+00 0.518464E+00 0.516137E+00 0.504648E+00 0.483582E+00 0.455527E+00 0.425461E+00 0.411892E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.487172E+00 0.502201E+00 0.516762E+00 0.523277E+00 0.521938E+00 0.511181E+00 0.508622E+00 0.498006E+00 0.478228E+00 0.450664E+00 0.420846E+00 0.402459E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.476131E+00 0.490448E+00 0.506729E+00 0.513942E+00 0.512360E+00 0.502655E+00 0.500067E+00 0.490344E+00 0.472277E+00 0.444904E+00 0.415116E+00 0.376413E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464151E+00 0.478190E+00 0.496126E+00 0.502751E+00 0.498741E+00 0.493466E+00 0.488343E+00 0.477251E+00 0.464486E+00 0.437729E+00 0.408291E+00 0.346495E+00 0.181495E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452230E+00 0.467450E+00 0.484692E+00 0.490318E+00 0.483240E+00 0.483231E+00 0.474984E+00 0.460119E+00 0.454817E+00 0.428154E+00 0.399335E+00 0.340500E+00 0.110389E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443972E+00 0.458686E+00 0.475469E+00 0.480263E+00 0.474786E+00 0.471585E+00 0.460752E+00 0.451328E+00 0.438795E+00 0.410403E+00 0.387000E+00 0.331210E+00 0.109311E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.436132E+00 0.451808E+00 0.466314E+00 0.468582E+00 0.466563E+00 0.460281E+00 0.444404E+00 0.441883E+00 0.420884E+00 0.390876E+00 0.360962E+00 0.307992E+00 0.106354E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.428573E+00 0.445872E+00 0.458468E+00 0.457022E+00 0.458666E+00 0.452803E+00 0.437543E+00 0.433374E+00 0.412154E+00 0.383368E+00 0.333802E+00 0.264351E+00 0.188197E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418705E+00 0.439744E+00 0.447902E+00 0.451234E+00 0.450331E+00 0.439425E+00 0.430803E+00 0.419820E+00 0.393523E+00 0.375043E+00 0.326275E+00 0.177109E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406711E+00 0.431640E+00 0.436885E+00 0.444267E+00 0.441786E+00 0.426584E+00 0.423283E+00 0.406175E+00 0.375469E+00 0.363054E+00 0.312542E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.392385E+00 0.416455E+00 0.428570E+00 0.434731E+00 0.432836E+00 0.418335E+00 0.411987E+00 0.393776E+00 0.363526E+00 0.333652E+00 0.288820E+00 0.157199E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375063E+00 0.395029E+00 0.413795E+00 0.419712E+00 0.412380E+00 0.404245E+00 0.390254E+00 0.365930E+00 0.347196E+00 0.306683E+00 0.265560E+00 0.152781E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361739E+00 0.378876E+00 0.396645E+00 0.402351E+00 0.391970E+00 0.386171E+00 0.368745E+00 0.343133E+00 0.330149E+00 0.291990E+00 0.253758E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.352037E+00 0.367627E+00 0.381546E+00 0.386356E+00 0.376091E+00 0.364572E+00 0.341585E+00 0.328690E+00 0.302506E+00 0.263366E+00 0.240829E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.346231E+00 0.357982E+00 0.367610E+00 0.365476E+00 0.361393E+00 0.348888E+00 0.323581E+00 0.318790E+00 0.286520E+00 0.247510E+00 0.216288E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.336875E+00 0.350230E+00 0.356269E+00 0.351358E+00 0.349645E+00 0.338931E+00 0.315822E+00 0.310792E+00 0.278773E+00 0.243265E+00 0.129961E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.325217E+00 0.343252E+00 0.342390E+00 0.342964E+00 0.339064E+00 0.318265E+00 0.311143E+00 0.290291E+00 0.249844E+00 0.234642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310826E+00 0.327778E+00 0.334744E+00 0.335611E+00 0.329168E+00 0.308759E+00 0.306683E+00 0.278828E+00 0.235831E+00 0.227025E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.291358E+00 0.302761E+00 0.319309E+00 0.318340E+00 0.309965E+00 0.295975E+00 0.293740E+00 0.267650E+00 0.227453E+00 0.217863E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.273272E+00 0.278310E+00 0.291816E+00 0.289755E+00 0.274582E+00 0.269350E+00 0.266172E+00 0.247585E+00 0.214817E+00 0.206346E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.249438E+00 0.257333E+00 0.269501E+00 0.268524E+00 0.255995E+00 0.253806E+00 0.252706E+00 0.233734E+00 0.202429E+00 0.194332E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.203919E+00 0.210493E+00 0.232490E+00 0.223829E+00 0.219332E+00 0.215089E+00 0.211890E+00 0.200395E+00 0.177469E+00 0.171925E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.172777E-02 0.134371E-02 0.278678E-02 0.383276E-02 0.463871E-02 0.531947E-02 0.599852E-02 0.664699E-02 0.660114E-02 0.674984E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.489452E+00 0.517314E+00 0.525492E+00 0.529330E+00 0.512571E+00 0.502047E+00 0.475945E+00 0.467400E+00 0.438873E+00 0.407681E+00 0.393489E+00 0.332337E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.553453E+00 0.579668E+00 0.587095E+00 0.591212E+00 0.573663E+00 0.563191E+00 0.537026E+00 0.528524E+00 0.500694E+00 0.471149E+00 0.462855E+00 0.394728E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.548208E+00 0.575011E+00 0.584017E+00 0.586995E+00 0.570672E+00 0.567285E+00 0.553713E+00 0.527512E+00 0.501199E+00 0.469969E+00 0.460628E+00 0.392952E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.549092E+00 0.570346E+00 0.579984E+00 0.582817E+00 0.569225E+00 0.563469E+00 0.551429E+00 0.526442E+00 0.504380E+00 0.471572E+00 0.457515E+00 0.391074E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.543509E+00 0.565473E+00 0.575577E+00 0.580915E+00 0.577361E+00 0.560402E+00 0.549556E+00 0.525180E+00 0.520729E+00 0.490210E+00 0.457527E+00 0.392753E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.537834E+00 0.560204E+00 0.571478E+00 0.576744E+00 0.573501E+00 0.557218E+00 0.548849E+00 0.527052E+00 0.518043E+00 0.488098E+00 0.456873E+00 0.404877E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.532211E+00 0.554299E+00 0.567675E+00 0.572677E+00 0.569713E+00 0.554277E+00 0.553812E+00 0.539841E+00 0.516622E+00 0.486417E+00 0.454272E+00 0.442553E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.523974E+00 0.547237E+00 0.562356E+00 0.568465E+00 0.565791E+00 0.551462E+00 0.550925E+00 0.537096E+00 0.514527E+00 0.484360E+00 0.450862E+00 0.439324E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.512926E+00 0.537768E+00 0.556476E+00 0.564061E+00 0.561307E+00 0.547913E+00 0.548137E+00 0.534186E+00 0.512090E+00 0.481475E+00 0.447096E+00 0.436050E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496363E+00 0.525600E+00 0.549021E+00 0.558301E+00 0.556189E+00 0.543870E+00 0.544241E+00 0.530947E+00 0.509301E+00 0.477969E+00 0.443548E+00 0.433047E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.480786E+00 0.508174E+00 0.540161E+00 0.551665E+00 0.550075E+00 0.538298E+00 0.539381E+00 0.527023E+00 0.505107E+00 0.474215E+00 0.440039E+00 0.425096E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.468802E+00 0.490011E+00 0.528677E+00 0.542635E+00 0.542389E+00 0.532060E+00 0.532789E+00 0.521586E+00 0.500108E+00 0.470277E+00 0.436202E+00 0.397566E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.457798E+00 0.474914E+00 0.512306E+00 0.530702E+00 0.529210E+00 0.524336E+00 0.521876E+00 0.508510E+00 0.493307E+00 0.464133E+00 0.431488E+00 0.364683E+00 0.186107E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.447057E+00 0.463315E+00 0.496575E+00 0.516664E+00 0.511912E+00 0.514589E+00 0.507728E+00 0.490053E+00 0.482660E+00 0.454921E+00 0.423310E+00 0.359117E+00 0.113547E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440941E+00 0.454558E+00 0.483979E+00 0.504138E+00 0.501732E+00 0.501662E+00 0.491365E+00 0.479470E+00 0.464067E+00 0.436274E+00 0.410565E+00 0.350307E+00 0.112433E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.435642E+00 0.447752E+00 0.473015E+00 0.488804E+00 0.491029E+00 0.487579E+00 0.471198E+00 0.466336E+00 0.442155E+00 0.411671E+00 0.380581E+00 0.324047E+00 0.109141E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.429786E+00 0.443597E+00 0.464594E+00 0.472686E+00 0.479207E+00 0.476185E+00 0.459834E+00 0.453124E+00 0.429994E+00 0.399822E+00 0.348804E+00 0.276340E+00 0.231009E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.422328E+00 0.442327E+00 0.454517E+00 0.464014E+00 0.466719E+00 0.458076E+00 0.449002E+00 0.434195E+00 0.407729E+00 0.387029E+00 0.337500E+00 0.238527E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413384E+00 0.441637E+00 0.446996E+00 0.457353E+00 0.456501E+00 0.441265E+00 0.439021E+00 0.416798E+00 0.385663E+00 0.372676E+00 0.321781E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402142E+00 0.437466E+00 0.443418E+00 0.450878E+00 0.450143E+00 0.434041E+00 0.430247E+00 0.407558E+00 0.376611E+00 0.345364E+00 0.299332E+00 0.161049E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386586E+00 0.422824E+00 0.436984E+00 0.440281E+00 0.432750E+00 0.426126E+00 0.413081E+00 0.385701E+00 0.367345E+00 0.323529E+00 0.279422E+00 0.202465E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372596E+00 0.407594E+00 0.425773E+00 0.428318E+00 0.415835E+00 0.412592E+00 0.396432E+00 0.366363E+00 0.352954E+00 0.311358E+00 0.269237E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361318E+00 0.394295E+00 0.411378E+00 0.413296E+00 0.402183E+00 0.392449E+00 0.368610E+00 0.352321E+00 0.323863E+00 0.279427E+00 0.254696E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354581E+00 0.380004E+00 0.395235E+00 0.390468E+00 0.386927E+00 0.373863E+00 0.347510E+00 0.337516E+00 0.303667E+00 0.260948E+00 0.225977E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.347933E+00 0.365418E+00 0.378433E+00 0.373008E+00 0.371150E+00 0.359262E+00 0.334687E+00 0.324494E+00 0.290861E+00 0.254028E+00 0.175299E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340429E+00 0.352664E+00 0.353515E+00 0.357114E+00 0.351902E+00 0.330938E+00 0.321070E+00 0.300068E+00 0.259340E+00 0.243812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326398E+00 0.336286E+00 0.340061E+00 0.342142E+00 0.337304E+00 0.314803E+00 0.312724E+00 0.287724E+00 0.245671E+00 0.235337E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.306471E+00 0.319201E+00 0.330272E+00 0.333239E+00 0.327282E+00 0.307279E+00 0.304099E+00 0.277341E+00 0.237165E+00 0.227110E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.284892E+00 0.292046E+00 0.310948E+00 0.310975E+00 0.293198E+00 0.288854E+00 0.282165E+00 0.261056E+00 0.226374E+00 0.217022E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260930E+00 0.268906E+00 0.273857E+00 0.271782E+00 0.260082E+00 0.259490E+00 0.258168E+00 0.242492E+00 0.212755E+00 0.204512E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.219058E+00 0.228340E+00 0.235193E+00 0.231233E+00 0.233516E+00 0.233549E+00 0.231722E+00 0.216524E+00 0.189740E+00 0.182668E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.137599E-02 0.198614E-02 0.371181E-02 0.529781E-02 0.670641E-02 0.791484E-02 0.900520E-02 0.996917E-02 0.997626E-02 0.971059E-02 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.482992E+00 0.508694E+00 0.529417E+00 0.545538E+00 0.534239E+00 0.528214E+00 0.503195E+00 0.494886E+00 0.466720E+00 0.430945E+00 0.413750E+00 0.349999E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.551158E+00 0.572042E+00 0.592155E+00 0.609902E+00 0.597546E+00 0.592146E+00 0.567129E+00 0.559757E+00 0.533667E+00 0.497722E+00 0.488702E+00 0.415875E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.545232E+00 0.564332E+00 0.583489E+00 0.600791E+00 0.589635E+00 0.593686E+00 0.583400E+00 0.557450E+00 0.532896E+00 0.496619E+00 0.486418E+00 0.414725E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.544786E+00 0.557911E+00 0.575738E+00 0.592647E+00 0.584011E+00 0.586227E+00 0.578868E+00 0.554482E+00 0.533094E+00 0.497275E+00 0.483025E+00 0.413262E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.538473E+00 0.552704E+00 0.568770E+00 0.587420E+00 0.590149E+00 0.579805E+00 0.574199E+00 0.549860E+00 0.547336E+00 0.516696E+00 0.483787E+00 0.416065E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.531856E+00 0.548646E+00 0.562532E+00 0.580243E+00 0.583416E+00 0.573338E+00 0.570337E+00 0.546810E+00 0.540831E+00 0.513457E+00 0.483247E+00 0.430411E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524582E+00 0.546839E+00 0.557490E+00 0.573891E+00 0.577889E+00 0.566967E+00 0.572035E+00 0.554985E+00 0.535304E+00 0.509239E+00 0.479226E+00 0.467147E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.516390E+00 0.545061E+00 0.554180E+00 0.568664E+00 0.572782E+00 0.561250E+00 0.565642E+00 0.549600E+00 0.529547E+00 0.503402E+00 0.473250E+00 0.460471E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.504241E+00 0.540280E+00 0.551782E+00 0.564801E+00 0.568166E+00 0.556428E+00 0.559755E+00 0.544084E+00 0.522978E+00 0.496128E+00 0.464967E+00 0.452411E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.488706E+00 0.531932E+00 0.548909E+00 0.560891E+00 0.564389E+00 0.552409E+00 0.554410E+00 0.538758E+00 0.516301E+00 0.488060E+00 0.455370E+00 0.442881E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.476787E+00 0.520168E+00 0.544842E+00 0.556802E+00 0.560782E+00 0.549074E+00 0.548889E+00 0.534050E+00 0.510547E+00 0.479949E+00 0.446564E+00 0.431617E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.468490E+00 0.507242E+00 0.539134E+00 0.552252E+00 0.556622E+00 0.545866E+00 0.544093E+00 0.529344E+00 0.506393E+00 0.472779E+00 0.439506E+00 0.402678E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.460461E+00 0.496222E+00 0.530217E+00 0.545956E+00 0.546699E+00 0.541712E+00 0.536107E+00 0.518544E+00 0.502188E+00 0.466975E+00 0.434481E+00 0.370520E+00 0.188273E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452475E+00 0.487379E+00 0.519580E+00 0.537456E+00 0.532686E+00 0.535975E+00 0.525480E+00 0.502608E+00 0.495995E+00 0.461787E+00 0.429449E+00 0.366601E+00 0.115461E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.447770E+00 0.479233E+00 0.509757E+00 0.529183E+00 0.526561E+00 0.525687E+00 0.511919E+00 0.497278E+00 0.480563E+00 0.446185E+00 0.421787E+00 0.361540E+00 0.114660E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443623E+00 0.471029E+00 0.499889E+00 0.514451E+00 0.516938E+00 0.512482E+00 0.493894E+00 0.488924E+00 0.461621E+00 0.427386E+00 0.394189E+00 0.337086E+00 0.111574E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439267E+00 0.462803E+00 0.490046E+00 0.497105E+00 0.505304E+00 0.502420E+00 0.485858E+00 0.478782E+00 0.452579E+00 0.420720E+00 0.365964E+00 0.292100E+00 0.298963E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432436E+00 0.453716E+00 0.476776E+00 0.486354E+00 0.491540E+00 0.483832E+00 0.475945E+00 0.459542E+00 0.429913E+00 0.409670E+00 0.356816E+00 0.339924E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.424059E+00 0.446875E+00 0.463948E+00 0.476399E+00 0.479672E+00 0.465172E+00 0.463994E+00 0.439028E+00 0.406663E+00 0.393480E+00 0.341675E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413023E+00 0.442686E+00 0.455236E+00 0.466302E+00 0.469116E+00 0.454021E+00 0.449068E+00 0.425495E+00 0.394833E+00 0.362465E+00 0.315954E+00 0.165343E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398698E+00 0.433857E+00 0.445952E+00 0.450015E+00 0.444580E+00 0.438805E+00 0.425856E+00 0.398098E+00 0.379755E+00 0.336949E+00 0.293731E+00 0.248929E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385053E+00 0.425936E+00 0.438910E+00 0.437809E+00 0.424554E+00 0.423085E+00 0.406593E+00 0.376728E+00 0.364877E+00 0.324646E+00 0.282869E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.371400E+00 0.416983E+00 0.432851E+00 0.431607E+00 0.416713E+00 0.407847E+00 0.381682E+00 0.367752E+00 0.338121E+00 0.294722E+00 0.269059E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.361092E+00 0.402405E+00 0.420709E+00 0.413585E+00 0.409194E+00 0.397141E+00 0.366518E+00 0.358524E+00 0.320818E+00 0.276100E+00 0.240026E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.355009E+00 0.382264E+00 0.403799E+00 0.397975E+00 0.396644E+00 0.384823E+00 0.357217E+00 0.346663E+00 0.310405E+00 0.269222E+00 0.247610E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349140E+00 0.360930E+00 0.368280E+00 0.379312E+00 0.374057E+00 0.352265E+00 0.341829E+00 0.315674E+00 0.272758E+00 0.256955E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340509E+00 0.342810E+00 0.346638E+00 0.350037E+00 0.343171E+00 0.322021E+00 0.317805E+00 0.294670E+00 0.255454E+00 0.245911E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.321537E+00 0.329275E+00 0.335209E+00 0.335684E+00 0.330538E+00 0.311434E+00 0.308107E+00 0.285458E+00 0.248301E+00 0.237643E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.296801E+00 0.306507E+00 0.315018E+00 0.313243E+00 0.297039E+00 0.294762E+00 0.293217E+00 0.269877E+00 0.235733E+00 0.228292E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.265283E+00 0.271210E+00 0.278579E+00 0.274866E+00 0.262480E+00 0.261053E+00 0.259194E+00 0.246585E+00 0.220732E+00 0.214695E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.222980E+00 0.229715E+00 0.236814E+00 0.229817E+00 0.231714E+00 0.234392E+00 0.234052E+00 0.222727E+00 0.199266E+00 0.193926E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.104341E-02 0.322260E-02 0.594174E-02 0.883294E-02 0.123332E-01 0.161341E-01 0.188727E-01 0.206483E-01 0.212542E-01 0.194078E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.471161E+00 0.494712E+00 0.514348E+00 0.536011E+00 0.544271E+00 0.546536E+00 0.519316E+00 0.511751E+00 0.478242E+00 0.437137E+00 0.418138E+00 0.355871E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.543687E+00 0.560497E+00 0.578320E+00 0.603252E+00 0.613228E+00 0.616327E+00 0.588334E+00 0.582747E+00 0.549583E+00 0.507080E+00 0.496932E+00 0.426427E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.539662E+00 0.553768E+00 0.570092E+00 0.595126E+00 0.605218E+00 0.620056E+00 0.610454E+00 0.583117E+00 0.551688E+00 0.507755E+00 0.495049E+00 0.424328E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.541460E+00 0.547449E+00 0.563710E+00 0.588752E+00 0.598195E+00 0.612958E+00 0.607307E+00 0.582303E+00 0.556374E+00 0.512437E+00 0.493036E+00 0.422267E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.536358E+00 0.542586E+00 0.558351E+00 0.584871E+00 0.603324E+00 0.606280E+00 0.603429E+00 0.579076E+00 0.575849E+00 0.535893E+00 0.495992E+00 0.424395E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.530654E+00 0.538594E+00 0.553594E+00 0.578797E+00 0.595392E+00 0.598814E+00 0.599025E+00 0.577166E+00 0.570312E+00 0.534221E+00 0.496446E+00 0.439759E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524207E+00 0.536329E+00 0.549630E+00 0.573098E+00 0.587926E+00 0.590567E+00 0.600036E+00 0.587367E+00 0.564786E+00 0.531532E+00 0.494054E+00 0.482208E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.517222E+00 0.535647E+00 0.547387E+00 0.567755E+00 0.580731E+00 0.582061E+00 0.591832E+00 0.580130E+00 0.558048E+00 0.526734E+00 0.490162E+00 0.479379E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.506773E+00 0.535188E+00 0.545974E+00 0.562211E+00 0.573949E+00 0.574119E+00 0.583117E+00 0.571902E+00 0.549578E+00 0.519807E+00 0.484343E+00 0.473972E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.493248E+00 0.534874E+00 0.545374E+00 0.557160E+00 0.567886E+00 0.566279E+00 0.573605E+00 0.563446E+00 0.540009E+00 0.511261E+00 0.476961E+00 0.464577E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.483241E+00 0.532192E+00 0.546879E+00 0.553054E+00 0.561858E+00 0.558366E+00 0.564438E+00 0.554592E+00 0.530274E+00 0.501669E+00 0.466720E+00 0.449918E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.475582E+00 0.526469E+00 0.546263E+00 0.551077E+00 0.556426E+00 0.550530E+00 0.555265E+00 0.544241E+00 0.520420E+00 0.491462E+00 0.455441E+00 0.418177E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.467633E+00 0.520370E+00 0.544536E+00 0.549606E+00 0.546776E+00 0.542958E+00 0.542674E+00 0.527483E+00 0.510953E+00 0.480506E+00 0.445109E+00 0.382667E+00 0.191112E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.459213E+00 0.514871E+00 0.540912E+00 0.545834E+00 0.534414E+00 0.536445E+00 0.528892E+00 0.506527E+00 0.500177E+00 0.469344E+00 0.435602E+00 0.374603E+00 0.116984E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454249E+00 0.508876E+00 0.536776E+00 0.542570E+00 0.533593E+00 0.530432E+00 0.514783E+00 0.498917E+00 0.483005E+00 0.450205E+00 0.425960E+00 0.367362E+00 0.116105E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.449579E+00 0.501184E+00 0.531286E+00 0.533099E+00 0.528819E+00 0.523521E+00 0.497759E+00 0.492194E+00 0.465086E+00 0.430554E+00 0.399529E+00 0.344775E+00 0.113162E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445221E+00 0.490475E+00 0.524584E+00 0.520853E+00 0.522031E+00 0.517946E+00 0.493786E+00 0.487129E+00 0.459694E+00 0.426168E+00 0.372916E+00 0.301094E+00 0.346427E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440635E+00 0.477059E+00 0.509836E+00 0.512523E+00 0.511998E+00 0.502614E+00 0.492314E+00 0.473935E+00 0.441715E+00 0.419740E+00 0.368129E+00 0.413127E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434812E+00 0.465119E+00 0.493053E+00 0.502239E+00 0.502195E+00 0.486706E+00 0.486322E+00 0.460072E+00 0.423310E+00 0.408850E+00 0.355706E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.426557E+00 0.454334E+00 0.481135E+00 0.491017E+00 0.492557E+00 0.477613E+00 0.474516E+00 0.450054E+00 0.414702E+00 0.380894E+00 0.331303E+00 0.169384E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.412530E+00 0.441189E+00 0.464265E+00 0.473285E+00 0.467585E+00 0.462558E+00 0.450040E+00 0.420431E+00 0.400906E+00 0.354612E+00 0.307660E+00 0.316900E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398165E+00 0.432248E+00 0.448682E+00 0.451604E+00 0.440643E+00 0.440146E+00 0.423297E+00 0.393766E+00 0.380663E+00 0.340374E+00 0.296820E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.383536E+00 0.425937E+00 0.437613E+00 0.436845E+00 0.422520E+00 0.414073E+00 0.389271E+00 0.375623E+00 0.348219E+00 0.305756E+00 0.280542E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368564E+00 0.414632E+00 0.427538E+00 0.418081E+00 0.412128E+00 0.401098E+00 0.372668E+00 0.364504E+00 0.330127E+00 0.287719E+00 0.251498E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.357644E+00 0.397431E+00 0.413738E+00 0.404711E+00 0.403270E+00 0.392616E+00 0.364860E+00 0.353710E+00 0.320352E+00 0.281369E+00 0.312769E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.352660E+00 0.371864E+00 0.384250E+00 0.389295E+00 0.383720E+00 0.360188E+00 0.349320E+00 0.325262E+00 0.284854E+00 0.268218E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.347796E+00 0.349020E+00 0.355354E+00 0.361397E+00 0.352311E+00 0.331804E+00 0.326870E+00 0.304191E+00 0.264686E+00 0.256091E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331630E+00 0.332889E+00 0.341887E+00 0.341432E+00 0.335005E+00 0.315299E+00 0.310499E+00 0.291309E+00 0.256784E+00 0.247912E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.304894E+00 0.309232E+00 0.322888E+00 0.321123E+00 0.302954E+00 0.299078E+00 0.292879E+00 0.276393E+00 0.244232E+00 0.236980E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267869E+00 0.272676E+00 0.290970E+00 0.286802E+00 0.271975E+00 0.268544E+00 0.265236E+00 0.253536E+00 0.227353E+00 0.222406E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.227791E+00 0.233999E+00 0.240846E+00 0.235979E+00 0.235769E+00 0.235922E+00 0.236257E+00 0.230707E+00 0.207191E+00 0.202855E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.865853E-03 0.576590E-02 0.137380E-01 0.201613E-01 0.249182E-01 0.282363E-01 0.311103E-01 0.331705E-01 0.340524E-01 0.307768E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469716E+00 0.500034E+00 0.524451E+00 0.552944E+00 0.554754E+00 0.550952E+00 0.517835E+00 0.508999E+00 0.480247E+00 0.444505E+00 0.424901E+00 0.361087E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.543450E+00 0.567141E+00 0.591292E+00 0.625213E+00 0.626975E+00 0.623442E+00 0.589145E+00 0.581130E+00 0.553198E+00 0.516800E+00 0.505617E+00 0.432285E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.539196E+00 0.562789E+00 0.585765E+00 0.618714E+00 0.621311E+00 0.631077E+00 0.616323E+00 0.583048E+00 0.552822E+00 0.514049E+00 0.500889E+00 0.429006E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.540129E+00 0.558245E+00 0.579988E+00 0.612374E+00 0.616898E+00 0.626327E+00 0.615494E+00 0.583879E+00 0.556232E+00 0.515089E+00 0.496027E+00 0.425706E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.534784E+00 0.553240E+00 0.573969E+00 0.607646E+00 0.624483E+00 0.621912E+00 0.614411E+00 0.584699E+00 0.579953E+00 0.538782E+00 0.497620E+00 0.426877E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.528671E+00 0.547352E+00 0.568114E+00 0.599964E+00 0.616794E+00 0.616230E+00 0.613759E+00 0.587900E+00 0.578573E+00 0.538041E+00 0.497285E+00 0.440892E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.521861E+00 0.541402E+00 0.562509E+00 0.591597E+00 0.609675E+00 0.608797E+00 0.618367E+00 0.604079E+00 0.577865E+00 0.537684E+00 0.495584E+00 0.482170E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.514858E+00 0.536612E+00 0.557312E+00 0.583415E+00 0.602328E+00 0.600826E+00 0.611007E+00 0.599712E+00 0.575522E+00 0.536316E+00 0.494290E+00 0.481294E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.504861E+00 0.532230E+00 0.552402E+00 0.575967E+00 0.593566E+00 0.592028E+00 0.603125E+00 0.593889E+00 0.571388E+00 0.534199E+00 0.492693E+00 0.479192E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491204E+00 0.529977E+00 0.548407E+00 0.568623E+00 0.582462E+00 0.583360E+00 0.594389E+00 0.586960E+00 0.566013E+00 0.530301E+00 0.489698E+00 0.475545E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.481142E+00 0.530046E+00 0.545246E+00 0.561173E+00 0.572333E+00 0.574611E+00 0.585726E+00 0.579210E+00 0.559202E+00 0.524253E+00 0.483933E+00 0.465722E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.473555E+00 0.530512E+00 0.543012E+00 0.554116E+00 0.563459E+00 0.563520E+00 0.574753E+00 0.568786E+00 0.549355E+00 0.515081E+00 0.475659E+00 0.436129E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464962E+00 0.529527E+00 0.541220E+00 0.547830E+00 0.550715E+00 0.551685E+00 0.560022E+00 0.551138E+00 0.537085E+00 0.503415E+00 0.466758E+00 0.399379E+00 0.194477E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.454176E+00 0.528059E+00 0.539383E+00 0.542193E+00 0.534699E+00 0.541749E+00 0.541766E+00 0.527216E+00 0.520333E+00 0.488059E+00 0.454120E+00 0.390369E+00 0.118864E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.449051E+00 0.526324E+00 0.538156E+00 0.539843E+00 0.529860E+00 0.530883E+00 0.523145E+00 0.513598E+00 0.496688E+00 0.463436E+00 0.437781E+00 0.379032E+00 0.117642E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445376E+00 0.522336E+00 0.536505E+00 0.532988E+00 0.526269E+00 0.520060E+00 0.502835E+00 0.501974E+00 0.474032E+00 0.439057E+00 0.406459E+00 0.352025E+00 0.114466E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.442990E+00 0.513538E+00 0.534694E+00 0.523532E+00 0.521966E+00 0.515544E+00 0.497107E+00 0.492771E+00 0.464363E+00 0.431791E+00 0.376905E+00 0.307476E+00 0.401983E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440983E+00 0.498101E+00 0.523382E+00 0.521323E+00 0.515142E+00 0.500106E+00 0.490946E+00 0.475663E+00 0.444328E+00 0.424092E+00 0.372810E+00 0.467573E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437967E+00 0.479655E+00 0.509563E+00 0.517061E+00 0.509031E+00 0.485522E+00 0.486335E+00 0.461211E+00 0.426045E+00 0.414653E+00 0.363298E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.433029E+00 0.463416E+00 0.498721E+00 0.509601E+00 0.505479E+00 0.483562E+00 0.480610E+00 0.454729E+00 0.421092E+00 0.387811E+00 0.339326E+00 0.170969E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420925E+00 0.446562E+00 0.480740E+00 0.494308E+00 0.482186E+00 0.475749E+00 0.461991E+00 0.429364E+00 0.410831E+00 0.365501E+00 0.316409E+00 0.384401E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406650E+00 0.435645E+00 0.457128E+00 0.465315E+00 0.454530E+00 0.455160E+00 0.437997E+00 0.404797E+00 0.393978E+00 0.351672E+00 0.305127E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390050E+00 0.429263E+00 0.442029E+00 0.443114E+00 0.428266E+00 0.418623E+00 0.393341E+00 0.380786E+00 0.353469E+00 0.311338E+00 0.286096E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.372900E+00 0.420176E+00 0.430436E+00 0.420035E+00 0.413512E+00 0.402425E+00 0.373030E+00 0.366128E+00 0.333540E+00 0.291210E+00 0.257069E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.356595E+00 0.403578E+00 0.416642E+00 0.405269E+00 0.404475E+00 0.394022E+00 0.366482E+00 0.357593E+00 0.326719E+00 0.288043E+00 0.382268E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.351462E+00 0.375948E+00 0.385083E+00 0.391139E+00 0.386480E+00 0.365120E+00 0.355837E+00 0.331890E+00 0.292430E+00 0.276071E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.347266E+00 0.347787E+00 0.357527E+00 0.368958E+00 0.362301E+00 0.340539E+00 0.337055E+00 0.311379E+00 0.270946E+00 0.263433E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334599E+00 0.331867E+00 0.341868E+00 0.342467E+00 0.337067E+00 0.318280E+00 0.315265E+00 0.297031E+00 0.262031E+00 0.255912E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308837E+00 0.307393E+00 0.324495E+00 0.325007E+00 0.311306E+00 0.308968E+00 0.305104E+00 0.288972E+00 0.254439E+00 0.246123E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.264762E+00 0.272987E+00 0.294899E+00 0.299819E+00 0.286537E+00 0.284034E+00 0.282180E+00 0.266384E+00 0.235681E+00 0.229402E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.228957E+00 0.236860E+00 0.244340E+00 0.238767E+00 0.238618E+00 0.238680E+00 0.241520E+00 0.234234E+00 0.211751E+00 0.208458E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.820161E-03 0.158446E-01 0.255805E-01 0.325003E-01 0.384296E-01 0.427920E-01 0.465493E-01 0.489332E-01 0.500406E-01 0.444161E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.467224E+00 0.505871E+00 0.529065E+00 0.563052E+00 0.560128E+00 0.551212E+00 0.519767E+00 0.515180E+00 0.490794E+00 0.458479E+00 0.439773E+00 0.372795E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.538988E+00 0.572326E+00 0.597637E+00 0.640657E+00 0.635435E+00 0.625564E+00 0.592830E+00 0.590760E+00 0.567959E+00 0.535014E+00 0.524319E+00 0.443260E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.536628E+00 0.570163E+00 0.594402E+00 0.635800E+00 0.633171E+00 0.635525E+00 0.618261E+00 0.590093E+00 0.566004E+00 0.530454E+00 0.517374E+00 0.438824E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.537612E+00 0.566975E+00 0.590253E+00 0.629576E+00 0.631958E+00 0.633811E+00 0.618595E+00 0.589131E+00 0.566248E+00 0.528275E+00 0.509415E+00 0.433760E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.534851E+00 0.563888E+00 0.585581E+00 0.623645E+00 0.644118E+00 0.632847E+00 0.619889E+00 0.588274E+00 0.584897E+00 0.547919E+00 0.508679E+00 0.434600E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.529507E+00 0.558919E+00 0.581021E+00 0.614074E+00 0.638937E+00 0.630232E+00 0.622260E+00 0.593276E+00 0.581041E+00 0.544561E+00 0.505956E+00 0.449142E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.522660E+00 0.554059E+00 0.575838E+00 0.605263E+00 0.632973E+00 0.625414E+00 0.630217E+00 0.612820E+00 0.580875E+00 0.542047E+00 0.502130E+00 0.488112E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.516356E+00 0.548981E+00 0.570319E+00 0.596639E+00 0.624647E+00 0.619962E+00 0.626008E+00 0.610855E+00 0.580076E+00 0.540101E+00 0.498898E+00 0.485005E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.506785E+00 0.542644E+00 0.565153E+00 0.588766E+00 0.612593E+00 0.613475E+00 0.620550E+00 0.608094E+00 0.579453E+00 0.538084E+00 0.496068E+00 0.482582E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.493615E+00 0.537439E+00 0.560334E+00 0.581645E+00 0.601037E+00 0.606976E+00 0.614787E+00 0.604480E+00 0.577509E+00 0.536284E+00 0.493532E+00 0.479812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.483565E+00 0.533764E+00 0.555943E+00 0.574201E+00 0.591312E+00 0.598796E+00 0.607852E+00 0.597950E+00 0.573521E+00 0.533881E+00 0.490921E+00 0.472201E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470231E+00 0.531031E+00 0.551889E+00 0.566792E+00 0.582937E+00 0.588230E+00 0.597209E+00 0.589692E+00 0.567681E+00 0.529638E+00 0.487295E+00 0.445001E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.458277E+00 0.529264E+00 0.548555E+00 0.560232E+00 0.570723E+00 0.575082E+00 0.582001E+00 0.572382E+00 0.557661E+00 0.521779E+00 0.482328E+00 0.412178E+00 0.196921E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.448120E+00 0.529203E+00 0.545835E+00 0.554856E+00 0.554059E+00 0.561486E+00 0.561477E+00 0.546155E+00 0.540733E+00 0.507903E+00 0.472047E+00 0.404819E+00 0.120766E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.444429E+00 0.528448E+00 0.544429E+00 0.551997E+00 0.547163E+00 0.544821E+00 0.538919E+00 0.530172E+00 0.514212E+00 0.481603E+00 0.455177E+00 0.393294E+00 0.119415E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.442096E+00 0.526817E+00 0.542351E+00 0.543284E+00 0.540560E+00 0.530102E+00 0.513919E+00 0.513563E+00 0.485966E+00 0.451807E+00 0.418234E+00 0.361103E+00 0.115709E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439562E+00 0.521456E+00 0.539820E+00 0.532328E+00 0.533068E+00 0.521494E+00 0.503435E+00 0.498838E+00 0.470897E+00 0.438432E+00 0.383659E+00 0.312673E+00 0.469906E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.436970E+00 0.508680E+00 0.528528E+00 0.527666E+00 0.523246E+00 0.504349E+00 0.494679E+00 0.478780E+00 0.447158E+00 0.427576E+00 0.376402E+00 0.545520E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434652E+00 0.485319E+00 0.514009E+00 0.521404E+00 0.514373E+00 0.488775E+00 0.487420E+00 0.463073E+00 0.427606E+00 0.416265E+00 0.366520E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430860E+00 0.467778E+00 0.503506E+00 0.515170E+00 0.508403E+00 0.485219E+00 0.481582E+00 0.456677E+00 0.423677E+00 0.391596E+00 0.342285E+00 0.171455E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.420402E+00 0.450513E+00 0.487319E+00 0.500759E+00 0.487184E+00 0.479916E+00 0.465702E+00 0.433511E+00 0.415776E+00 0.372184E+00 0.321422E+00 0.447226E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404371E+00 0.438722E+00 0.462147E+00 0.476262E+00 0.463929E+00 0.465570E+00 0.445983E+00 0.412616E+00 0.401274E+00 0.361551E+00 0.312434E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389095E+00 0.431996E+00 0.446044E+00 0.449183E+00 0.439148E+00 0.430112E+00 0.403288E+00 0.390302E+00 0.362507E+00 0.317346E+00 0.289738E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.367317E+00 0.423476E+00 0.433658E+00 0.425431E+00 0.419762E+00 0.406072E+00 0.374742E+00 0.368802E+00 0.337187E+00 0.293232E+00 0.258960E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353711E+00 0.402261E+00 0.420209E+00 0.410264E+00 0.407535E+00 0.394456E+00 0.367424E+00 0.360902E+00 0.330478E+00 0.290395E+00 0.472500E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349550E+00 0.371781E+00 0.388790E+00 0.395923E+00 0.389773E+00 0.366362E+00 0.359084E+00 0.337160E+00 0.296583E+00 0.281093E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.344414E+00 0.346663E+00 0.360847E+00 0.372307E+00 0.369009E+00 0.343503E+00 0.339844E+00 0.315592E+00 0.275723E+00 0.267933E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.333128E+00 0.331779E+00 0.343029E+00 0.343582E+00 0.335655E+00 0.317284E+00 0.317298E+00 0.299109E+00 0.263777E+00 0.259109E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307129E+00 0.308719E+00 0.325790E+00 0.321358E+00 0.307426E+00 0.307744E+00 0.308337E+00 0.293224E+00 0.259199E+00 0.251842E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.262781E+00 0.275451E+00 0.296664E+00 0.296894E+00 0.286423E+00 0.286939E+00 0.287508E+00 0.273892E+00 0.242349E+00 0.235825E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231263E+00 0.241174E+00 0.251729E+00 0.243165E+00 0.242198E+00 0.244266E+00 0.248389E+00 0.242015E+00 0.216957E+00 0.213781E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.690180E-03 0.288503E-01 0.409946E-01 0.491150E-01 0.562215E-01 0.632465E-01 0.695460E-01 0.727052E-01 0.749025E-01 0.662353E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.461201E+00 0.508687E+00 0.528705E+00 0.559798E+00 0.557155E+00 0.547700E+00 0.521080E+00 0.520536E+00 0.500193E+00 0.469046E+00 0.451166E+00 0.383766E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.527635E+00 0.575874E+00 0.595856E+00 0.637166E+00 0.634332E+00 0.622902E+00 0.596679E+00 0.600482E+00 0.583472E+00 0.550324E+00 0.540723E+00 0.454310E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.523746E+00 0.573210E+00 0.594016E+00 0.633380E+00 0.635882E+00 0.634734E+00 0.620042E+00 0.600600E+00 0.581995E+00 0.547592E+00 0.536390E+00 0.451117E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.524083E+00 0.570907E+00 0.591357E+00 0.628088E+00 0.638813E+00 0.635240E+00 0.619730E+00 0.599335E+00 0.581914E+00 0.546274E+00 0.529439E+00 0.447283E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.522254E+00 0.567866E+00 0.587958E+00 0.624106E+00 0.652220E+00 0.635518E+00 0.620457E+00 0.596340E+00 0.597883E+00 0.564868E+00 0.529163E+00 0.449300E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.520204E+00 0.563715E+00 0.584172E+00 0.616534E+00 0.647574E+00 0.634771E+00 0.623261E+00 0.596830E+00 0.591196E+00 0.559216E+00 0.525352E+00 0.465610E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.517146E+00 0.559620E+00 0.580444E+00 0.609659E+00 0.642066E+00 0.632878E+00 0.633766E+00 0.613780E+00 0.588313E+00 0.554952E+00 0.518922E+00 0.505113E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.511015E+00 0.555302E+00 0.576206E+00 0.602324E+00 0.635138E+00 0.629920E+00 0.633019E+00 0.612672E+00 0.585730E+00 0.550481E+00 0.513218E+00 0.498448E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.499926E+00 0.551081E+00 0.572043E+00 0.595079E+00 0.627492E+00 0.626600E+00 0.631382E+00 0.611422E+00 0.583536E+00 0.545854E+00 0.506668E+00 0.491597E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.484982E+00 0.546636E+00 0.568424E+00 0.588528E+00 0.619245E+00 0.622705E+00 0.628710E+00 0.609679E+00 0.581100E+00 0.541241E+00 0.500345E+00 0.484965E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469698E+00 0.541713E+00 0.565152E+00 0.582612E+00 0.609907E+00 0.617356E+00 0.623530E+00 0.606583E+00 0.579130E+00 0.537379E+00 0.495032E+00 0.475414E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.458422E+00 0.537811E+00 0.561340E+00 0.577291E+00 0.600929E+00 0.609418E+00 0.615573E+00 0.601644E+00 0.577098E+00 0.535156E+00 0.491953E+00 0.448806E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.449963E+00 0.534848E+00 0.557227E+00 0.571308E+00 0.587662E+00 0.598480E+00 0.600474E+00 0.587216E+00 0.572471E+00 0.531233E+00 0.489179E+00 0.415720E+00 0.197910E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.442228E+00 0.532726E+00 0.553384E+00 0.565071E+00 0.570165E+00 0.585172E+00 0.580053E+00 0.564070E+00 0.560729E+00 0.522940E+00 0.482554E+00 0.412036E+00 0.122183E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437603E+00 0.528641E+00 0.550213E+00 0.559777E+00 0.560559E+00 0.566306E+00 0.556654E+00 0.550415E+00 0.535493E+00 0.499032E+00 0.468657E+00 0.403038E+00 0.120993E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.434537E+00 0.524077E+00 0.546482E+00 0.549046E+00 0.549950E+00 0.545427E+00 0.528021E+00 0.531938E+00 0.504491E+00 0.467473E+00 0.432438E+00 0.371745E+00 0.117241E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432839E+00 0.514742E+00 0.541967E+00 0.537557E+00 0.539258E+00 0.530832E+00 0.510978E+00 0.511578E+00 0.484713E+00 0.452084E+00 0.395707E+00 0.322480E+00 0.545272E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431770E+00 0.498497E+00 0.528551E+00 0.532842E+00 0.526898E+00 0.510539E+00 0.499268E+00 0.487496E+00 0.455107E+00 0.434254E+00 0.383300E+00 0.641825E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430839E+00 0.474544E+00 0.513013E+00 0.525923E+00 0.517417E+00 0.492793E+00 0.490095E+00 0.468143E+00 0.430882E+00 0.418722E+00 0.369045E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.427904E+00 0.460979E+00 0.502630E+00 0.518014E+00 0.511580E+00 0.487846E+00 0.483265E+00 0.459346E+00 0.424466E+00 0.393757E+00 0.344829E+00 0.171895E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418129E+00 0.448184E+00 0.483848E+00 0.502367E+00 0.491193E+00 0.483075E+00 0.469057E+00 0.436187E+00 0.418309E+00 0.373700E+00 0.324070E+00 0.516698E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.400446E+00 0.439015E+00 0.459998E+00 0.481694E+00 0.471117E+00 0.472733E+00 0.454326E+00 0.418961E+00 0.407778E+00 0.366678E+00 0.318069E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382353E+00 0.431974E+00 0.446492E+00 0.455791E+00 0.452150E+00 0.445882E+00 0.416122E+00 0.400237E+00 0.371985E+00 0.325619E+00 0.297566E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353342E+00 0.420394E+00 0.436078E+00 0.431478E+00 0.427836E+00 0.413953E+00 0.383217E+00 0.376530E+00 0.342992E+00 0.297447E+00 0.265719E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345958E+00 0.397112E+00 0.423220E+00 0.416359E+00 0.411752E+00 0.397866E+00 0.369958E+00 0.363787E+00 0.332257E+00 0.292010E+00 0.582488E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.343215E+00 0.370464E+00 0.392765E+00 0.399487E+00 0.389778E+00 0.367657E+00 0.359982E+00 0.339218E+00 0.299414E+00 0.284224E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339672E+00 0.348095E+00 0.369085E+00 0.374401E+00 0.367640E+00 0.344136E+00 0.341032E+00 0.317992E+00 0.278533E+00 0.270536E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329824E+00 0.333893E+00 0.347520E+00 0.346309E+00 0.337264E+00 0.317911E+00 0.317002E+00 0.299952E+00 0.264896E+00 0.260344E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307626E+00 0.308938E+00 0.327720E+00 0.319220E+00 0.307416E+00 0.305866E+00 0.307526E+00 0.294117E+00 0.260440E+00 0.254941E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.263244E+00 0.276016E+00 0.295900E+00 0.295627E+00 0.285843E+00 0.288604E+00 0.292056E+00 0.279087E+00 0.247949E+00 0.240929E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.230602E+00 0.245992E+00 0.259136E+00 0.250237E+00 0.249145E+00 0.253038E+00 0.256743E+00 0.246484E+00 0.219866E+00 0.215988E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.627306E-03 0.452112E-01 0.609518E-01 0.741118E-01 0.854319E-01 0.955575E-01 0.103071E+00 0.104625E+00 0.107044E+00 0.838865E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.461654E+00 0.509579E+00 0.524591E+00 0.547775E+00 0.551954E+00 0.544414E+00 0.522357E+00 0.521356E+00 0.501218E+00 0.470249E+00 0.452976E+00 0.387049E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.525118E+00 0.576345E+00 0.591849E+00 0.622336E+00 0.630514E+00 0.621483E+00 0.599889E+00 0.603848E+00 0.587752E+00 0.554505E+00 0.546555E+00 0.459115E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.521245E+00 0.574656E+00 0.590195E+00 0.618020E+00 0.630566E+00 0.633242E+00 0.626037E+00 0.605433E+00 0.587863E+00 0.553875E+00 0.544092E+00 0.457437E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.521342E+00 0.572278E+00 0.587908E+00 0.613931E+00 0.632986E+00 0.633709E+00 0.626232E+00 0.605650E+00 0.589125E+00 0.555054E+00 0.539995E+00 0.455697E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.518756E+00 0.569638E+00 0.585431E+00 0.611011E+00 0.646416E+00 0.634601E+00 0.626079E+00 0.603975E+00 0.605566E+00 0.576866E+00 0.543539E+00 0.460065E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.514580E+00 0.566678E+00 0.582903E+00 0.605314E+00 0.642918E+00 0.633946E+00 0.626661E+00 0.604488E+00 0.599900E+00 0.571612E+00 0.541747E+00 0.480316E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.508238E+00 0.563775E+00 0.580696E+00 0.601291E+00 0.639019E+00 0.632679E+00 0.634750E+00 0.618509E+00 0.596834E+00 0.566858E+00 0.536388E+00 0.523815E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.498605E+00 0.560354E+00 0.578875E+00 0.597373E+00 0.634441E+00 0.631312E+00 0.632820E+00 0.615493E+00 0.593567E+00 0.562260E+00 0.530644E+00 0.516982E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.484829E+00 0.556431E+00 0.576371E+00 0.593379E+00 0.628153E+00 0.629807E+00 0.631641E+00 0.612620E+00 0.589381E+00 0.555905E+00 0.522100E+00 0.507078E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.468765E+00 0.551850E+00 0.573581E+00 0.589273E+00 0.621023E+00 0.627882E+00 0.631040E+00 0.610529E+00 0.584859E+00 0.549050E+00 0.512272E+00 0.495668E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452933E+00 0.547424E+00 0.569494E+00 0.584617E+00 0.612365E+00 0.625133E+00 0.630409E+00 0.608775E+00 0.581311E+00 0.542524E+00 0.502607E+00 0.481892E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.443153E+00 0.542966E+00 0.564300E+00 0.579786E+00 0.603584E+00 0.620156E+00 0.625949E+00 0.606271E+00 0.578229E+00 0.537369E+00 0.495225E+00 0.451830E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.435188E+00 0.538157E+00 0.559559E+00 0.573379E+00 0.590207E+00 0.610647E+00 0.612874E+00 0.593102E+00 0.574546E+00 0.533361E+00 0.490723E+00 0.416782E+00 0.198354E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.427747E+00 0.533109E+00 0.555735E+00 0.566253E+00 0.573115E+00 0.595035E+00 0.593672E+00 0.571405E+00 0.567314E+00 0.527310E+00 0.485424E+00 0.413762E+00 0.123012E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.422760E+00 0.526561E+00 0.551797E+00 0.561206E+00 0.563332E+00 0.573367E+00 0.570186E+00 0.560843E+00 0.546619E+00 0.506962E+00 0.475570E+00 0.409022E+00 0.122198E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.419345E+00 0.516900E+00 0.546422E+00 0.550197E+00 0.552767E+00 0.551712E+00 0.541019E+00 0.545785E+00 0.519759E+00 0.480147E+00 0.442864E+00 0.380386E+00 0.118624E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417348E+00 0.502169E+00 0.539698E+00 0.538484E+00 0.541841E+00 0.536691E+00 0.521244E+00 0.524183E+00 0.501974E+00 0.466723E+00 0.407840E+00 0.330390E+00 0.615872E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.416988E+00 0.478550E+00 0.524755E+00 0.533707E+00 0.530579E+00 0.515926E+00 0.505948E+00 0.495407E+00 0.467268E+00 0.448587E+00 0.394150E+00 0.720281E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417931E+00 0.458526E+00 0.509512E+00 0.527174E+00 0.521086E+00 0.498212E+00 0.494202E+00 0.473549E+00 0.438362E+00 0.426525E+00 0.375997E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.418590E+00 0.451344E+00 0.499117E+00 0.518937E+00 0.514652E+00 0.492208E+00 0.485751E+00 0.463570E+00 0.428750E+00 0.396488E+00 0.348798E+00 0.172730E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.414659E+00 0.441309E+00 0.477214E+00 0.503275E+00 0.494499E+00 0.486333E+00 0.471128E+00 0.438853E+00 0.421218E+00 0.375543E+00 0.325982E+00 0.580526E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.394850E+00 0.434418E+00 0.458795E+00 0.485685E+00 0.476256E+00 0.476685E+00 0.458120E+00 0.422304E+00 0.411999E+00 0.369978E+00 0.321512E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.366019E+00 0.429854E+00 0.447650E+00 0.462290E+00 0.460102E+00 0.453781E+00 0.424535E+00 0.409824E+00 0.380110E+00 0.333681E+00 0.303933E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340075E+00 0.417182E+00 0.437741E+00 0.436828E+00 0.435543E+00 0.423966E+00 0.393859E+00 0.387405E+00 0.351340E+00 0.304242E+00 0.272010E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337705E+00 0.397174E+00 0.426501E+00 0.420300E+00 0.414909E+00 0.400336E+00 0.373006E+00 0.365679E+00 0.335556E+00 0.294973E+00 0.702067E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.337153E+00 0.373839E+00 0.397870E+00 0.401401E+00 0.391263E+00 0.367934E+00 0.359927E+00 0.340249E+00 0.300757E+00 0.285863E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.336797E+00 0.350753E+00 0.373768E+00 0.375714E+00 0.368061E+00 0.344814E+00 0.341906E+00 0.321790E+00 0.282508E+00 0.275007E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.329696E+00 0.335271E+00 0.352442E+00 0.346136E+00 0.337528E+00 0.319001E+00 0.319069E+00 0.302801E+00 0.266287E+00 0.263026E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308971E+00 0.305066E+00 0.326043E+00 0.316646E+00 0.307660E+00 0.308503E+00 0.311458E+00 0.297462E+00 0.261960E+00 0.258031E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260323E+00 0.276149E+00 0.292998E+00 0.294507E+00 0.285788E+00 0.292456E+00 0.297061E+00 0.283962E+00 0.253000E+00 0.247599E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.230222E+00 0.249119E+00 0.259476E+00 0.253742E+00 0.252509E+00 0.256004E+00 0.259465E+00 0.248299E+00 0.221915E+00 0.218790E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.546037E-03 0.689981E-01 0.918530E-01 0.108433E+00 0.119536E+00 0.127462E+00 0.132050E+00 0.128933E+00 0.129966E+00 0.992297E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.455113E+00 0.504795E+00 0.521252E+00 0.533751E+00 0.543909E+00 0.540139E+00 0.518292E+00 0.517815E+00 0.497909E+00 0.466904E+00 0.450276E+00 0.386842E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.514960E+00 0.571938E+00 0.588394E+00 0.605569E+00 0.623423E+00 0.618798E+00 0.596109E+00 0.600960E+00 0.586551E+00 0.553322E+00 0.546372E+00 0.460711E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.510543E+00 0.570498E+00 0.586612E+00 0.602450E+00 0.623325E+00 0.630238E+00 0.621752E+00 0.602407E+00 0.586457E+00 0.552612E+00 0.544086E+00 0.459416E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.509542E+00 0.568541E+00 0.584959E+00 0.599346E+00 0.625120E+00 0.630497E+00 0.620578E+00 0.600715E+00 0.586959E+00 0.554248E+00 0.540200E+00 0.458224E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.505229E+00 0.565658E+00 0.583028E+00 0.598865E+00 0.637284E+00 0.631870E+00 0.620379E+00 0.596848E+00 0.600912E+00 0.578243E+00 0.545725E+00 0.463478E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.498818E+00 0.563190E+00 0.580883E+00 0.597114E+00 0.634281E+00 0.632331E+00 0.623537E+00 0.598843E+00 0.595803E+00 0.574006E+00 0.545471E+00 0.485278E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.490432E+00 0.560275E+00 0.579275E+00 0.595612E+00 0.631354E+00 0.632402E+00 0.633952E+00 0.616731E+00 0.594211E+00 0.570246E+00 0.540959E+00 0.531924E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.479267E+00 0.557086E+00 0.578036E+00 0.593632E+00 0.626743E+00 0.631959E+00 0.633240E+00 0.615984E+00 0.592683E+00 0.566218E+00 0.536515E+00 0.527438E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.465300E+00 0.554491E+00 0.576342E+00 0.591440E+00 0.620473E+00 0.630888E+00 0.633203E+00 0.615046E+00 0.590528E+00 0.560397E+00 0.529561E+00 0.519288E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.448812E+00 0.551634E+00 0.573759E+00 0.588371E+00 0.612867E+00 0.628883E+00 0.632985E+00 0.613968E+00 0.587452E+00 0.553374E+00 0.519476E+00 0.506253E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431994E+00 0.548099E+00 0.570322E+00 0.584542E+00 0.605506E+00 0.624940E+00 0.631035E+00 0.612135E+00 0.582974E+00 0.545681E+00 0.507963E+00 0.489299E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.423153E+00 0.543312E+00 0.565215E+00 0.579085E+00 0.597628E+00 0.617208E+00 0.626224E+00 0.608032E+00 0.578544E+00 0.540079E+00 0.499675E+00 0.457158E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417077E+00 0.538077E+00 0.560621E+00 0.572781E+00 0.584825E+00 0.605674E+00 0.613997E+00 0.594062E+00 0.574672E+00 0.535620E+00 0.493844E+00 0.419331E+00 0.198814E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.410831E+00 0.531084E+00 0.555470E+00 0.565787E+00 0.568682E+00 0.589732E+00 0.595099E+00 0.572797E+00 0.568639E+00 0.530381E+00 0.488656E+00 0.415453E+00 0.123578E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.405943E+00 0.521065E+00 0.550151E+00 0.560448E+00 0.559827E+00 0.571276E+00 0.573122E+00 0.565213E+00 0.551486E+00 0.511230E+00 0.479907E+00 0.411324E+00 0.122926E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402704E+00 0.507624E+00 0.544602E+00 0.549099E+00 0.551261E+00 0.553337E+00 0.546494E+00 0.553484E+00 0.528914E+00 0.487897E+00 0.448966E+00 0.384229E+00 0.119492E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.400196E+00 0.487033E+00 0.537429E+00 0.536746E+00 0.542838E+00 0.540555E+00 0.530443E+00 0.535949E+00 0.515400E+00 0.479257E+00 0.416702E+00 0.335785E+00 0.670288E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399016E+00 0.464958E+00 0.524438E+00 0.532624E+00 0.532303E+00 0.520892E+00 0.514406E+00 0.505761E+00 0.482343E+00 0.462560E+00 0.405226E+00 0.808341E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399145E+00 0.453685E+00 0.508324E+00 0.528245E+00 0.524141E+00 0.502837E+00 0.500856E+00 0.480831E+00 0.450523E+00 0.439678E+00 0.385414E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399981E+00 0.448336E+00 0.495193E+00 0.520963E+00 0.517689E+00 0.496251E+00 0.490381E+00 0.468554E+00 0.436144E+00 0.403086E+00 0.353866E+00 0.173862E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398338E+00 0.438667E+00 0.472719E+00 0.505128E+00 0.497318E+00 0.488561E+00 0.474091E+00 0.443174E+00 0.425108E+00 0.379048E+00 0.328762E+00 0.650269E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384887E+00 0.432446E+00 0.458599E+00 0.489218E+00 0.478548E+00 0.478944E+00 0.460802E+00 0.426202E+00 0.415148E+00 0.373006E+00 0.323793E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.359860E+00 0.426226E+00 0.448755E+00 0.466146E+00 0.464340E+00 0.458459E+00 0.429196E+00 0.414530E+00 0.384835E+00 0.337872E+00 0.307985E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.339541E+00 0.413662E+00 0.439509E+00 0.439736E+00 0.443641E+00 0.433559E+00 0.400651E+00 0.393079E+00 0.356643E+00 0.308990E+00 0.275718E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.336947E+00 0.393698E+00 0.427254E+00 0.421407E+00 0.419889E+00 0.404071E+00 0.376867E+00 0.368044E+00 0.338576E+00 0.297441E+00 0.826043E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.334092E+00 0.372759E+00 0.397936E+00 0.401724E+00 0.393768E+00 0.369014E+00 0.361625E+00 0.343062E+00 0.302682E+00 0.288215E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331409E+00 0.349002E+00 0.370299E+00 0.373348E+00 0.367739E+00 0.345419E+00 0.345095E+00 0.325325E+00 0.285705E+00 0.277835E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.322940E+00 0.332458E+00 0.346935E+00 0.343488E+00 0.336899E+00 0.318689E+00 0.319935E+00 0.305586E+00 0.269084E+00 0.265383E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.303800E+00 0.298631E+00 0.321653E+00 0.315650E+00 0.307885E+00 0.307661E+00 0.310896E+00 0.297376E+00 0.262271E+00 0.259513E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.253355E+00 0.271624E+00 0.290065E+00 0.294037E+00 0.287172E+00 0.293043E+00 0.298536E+00 0.287514E+00 0.256499E+00 0.251691E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.220227E+00 0.246426E+00 0.260654E+00 0.257689E+00 0.259851E+00 0.262826E+00 0.264900E+00 0.254638E+00 0.225916E+00 0.223116E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.627608E-03 0.101943E+00 0.124444E+00 0.135582E+00 0.143581E+00 0.150495E+00 0.153888E+00 0.146300E+00 0.146676E+00 0.113692E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441029E+00 0.494311E+00 0.514618E+00 0.521165E+00 0.530350E+00 0.534391E+00 0.509632E+00 0.504254E+00 0.482002E+00 0.452188E+00 0.438486E+00 0.380350E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496360E+00 0.563407E+00 0.583661E+00 0.592160E+00 0.610433E+00 0.614867E+00 0.584302E+00 0.583427E+00 0.568377E+00 0.538388E+00 0.536526E+00 0.457977E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491281E+00 0.561272E+00 0.581848E+00 0.590449E+00 0.610158E+00 0.625750E+00 0.611995E+00 0.587978E+00 0.572272E+00 0.540502E+00 0.535957E+00 0.457627E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.488730E+00 0.559115E+00 0.579786E+00 0.589108E+00 0.610780E+00 0.625538E+00 0.613547E+00 0.591076E+00 0.576219E+00 0.545050E+00 0.533638E+00 0.457106E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.482488E+00 0.556601E+00 0.578543E+00 0.589869E+00 0.619847E+00 0.626312E+00 0.616059E+00 0.592083E+00 0.595893E+00 0.573657E+00 0.541934E+00 0.463229E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.474187E+00 0.553915E+00 0.576939E+00 0.588879E+00 0.616880E+00 0.627145E+00 0.620747E+00 0.597242E+00 0.593691E+00 0.573192E+00 0.543180E+00 0.485218E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.464299E+00 0.551333E+00 0.575583E+00 0.588010E+00 0.613298E+00 0.627933E+00 0.632878E+00 0.616706E+00 0.594032E+00 0.570795E+00 0.540337E+00 0.533729E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.452390E+00 0.549391E+00 0.573569E+00 0.586322E+00 0.609263E+00 0.628905E+00 0.633725E+00 0.616628E+00 0.593430E+00 0.567214E+00 0.536821E+00 0.530482E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.437909E+00 0.547132E+00 0.571041E+00 0.584209E+00 0.604801E+00 0.627855E+00 0.633892E+00 0.615935E+00 0.590877E+00 0.561638E+00 0.531089E+00 0.524314E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421231E+00 0.543917E+00 0.568266E+00 0.581766E+00 0.600622E+00 0.625147E+00 0.633370E+00 0.614512E+00 0.587575E+00 0.555019E+00 0.523624E+00 0.515360E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.405207E+00 0.540329E+00 0.565680E+00 0.579078E+00 0.596416E+00 0.619704E+00 0.630254E+00 0.612266E+00 0.583804E+00 0.548600E+00 0.513900E+00 0.498522E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399878E+00 0.534989E+00 0.562015E+00 0.575615E+00 0.590662E+00 0.611843E+00 0.625163E+00 0.608305E+00 0.579964E+00 0.543062E+00 0.504548E+00 0.463199E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395459E+00 0.529408E+00 0.558079E+00 0.569578E+00 0.579210E+00 0.600234E+00 0.612874E+00 0.594432E+00 0.576033E+00 0.538561E+00 0.498011E+00 0.423636E+00 0.199504E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390789E+00 0.520251E+00 0.552844E+00 0.562158E+00 0.563547E+00 0.585658E+00 0.595123E+00 0.573443E+00 0.569879E+00 0.533273E+00 0.492139E+00 0.418620E+00 0.124136E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387292E+00 0.507662E+00 0.547507E+00 0.556697E+00 0.556582E+00 0.569474E+00 0.574239E+00 0.567056E+00 0.553638E+00 0.514947E+00 0.483372E+00 0.413481E+00 0.123454E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384675E+00 0.491295E+00 0.541081E+00 0.545409E+00 0.549175E+00 0.552823E+00 0.549149E+00 0.557894E+00 0.532253E+00 0.491677E+00 0.451333E+00 0.385143E+00 0.119959E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382375E+00 0.469527E+00 0.533848E+00 0.534595E+00 0.542810E+00 0.541819E+00 0.536063E+00 0.544888E+00 0.522534E+00 0.485376E+00 0.420408E+00 0.338241E+00 0.732064E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.380427E+00 0.452720E+00 0.520344E+00 0.531657E+00 0.534171E+00 0.522925E+00 0.520021E+00 0.516531E+00 0.491282E+00 0.470503E+00 0.412611E+00 0.905447E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378484E+00 0.450057E+00 0.503487E+00 0.526239E+00 0.526437E+00 0.506064E+00 0.505524E+00 0.488592E+00 0.457685E+00 0.447644E+00 0.393292E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.375303E+00 0.445950E+00 0.485168E+00 0.517243E+00 0.518002E+00 0.498657E+00 0.494513E+00 0.474242E+00 0.442681E+00 0.410557E+00 0.358977E+00 0.174726E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368277E+00 0.437044E+00 0.463213E+00 0.501211E+00 0.495914E+00 0.489972E+00 0.477906E+00 0.448204E+00 0.429197E+00 0.383207E+00 0.331555E+00 0.725069E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358972E+00 0.428269E+00 0.452153E+00 0.483099E+00 0.476217E+00 0.479536E+00 0.463688E+00 0.429938E+00 0.417177E+00 0.374813E+00 0.326195E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.335973E+00 0.420304E+00 0.444831E+00 0.461797E+00 0.462664E+00 0.459848E+00 0.431875E+00 0.417660E+00 0.387443E+00 0.340441E+00 0.311178E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323173E+00 0.406675E+00 0.436743E+00 0.436491E+00 0.443151E+00 0.436682E+00 0.404148E+00 0.397107E+00 0.360784E+00 0.313861E+00 0.281143E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.324922E+00 0.381439E+00 0.420226E+00 0.418380E+00 0.419304E+00 0.406526E+00 0.379491E+00 0.371006E+00 0.340924E+00 0.300277E+00 0.931383E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326435E+00 0.357169E+00 0.385237E+00 0.397126E+00 0.393976E+00 0.369347E+00 0.361906E+00 0.342586E+00 0.303181E+00 0.289704E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327035E+00 0.340945E+00 0.360356E+00 0.370205E+00 0.365785E+00 0.343822E+00 0.344145E+00 0.325619E+00 0.287000E+00 0.280567E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317328E+00 0.323258E+00 0.341003E+00 0.339417E+00 0.333813E+00 0.317220E+00 0.318402E+00 0.304356E+00 0.269187E+00 0.266735E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.291051E+00 0.294175E+00 0.322553E+00 0.320042E+00 0.310214E+00 0.311493E+00 0.313755E+00 0.298473E+00 0.262248E+00 0.260305E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.246077E+00 0.271518E+00 0.289478E+00 0.294993E+00 0.291387E+00 0.299116E+00 0.305888E+00 0.293798E+00 0.259298E+00 0.254576E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.214428E+00 0.249215E+00 0.260467E+00 0.257776E+00 0.261796E+00 0.266194E+00 0.271853E+00 0.261488E+00 0.232211E+00 0.228533E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.859664E-03 0.129571E+00 0.147497E+00 0.158437E+00 0.168567E+00 0.178214E+00 0.182734E+00 0.173089E+00 0.173262E+00 0.131592E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.440657E+00 0.490658E+00 0.511619E+00 0.517286E+00 0.522710E+00 0.532169E+00 0.508758E+00 0.501638E+00 0.476770E+00 0.445717E+00 0.432475E+00 0.375518E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.497832E+00 0.560961E+00 0.581879E+00 0.589039E+00 0.600617E+00 0.615622E+00 0.585896E+00 0.580844E+00 0.561012E+00 0.533109E+00 0.531583E+00 0.455708E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.491502E+00 0.558485E+00 0.580232E+00 0.587517E+00 0.599626E+00 0.625280E+00 0.613893E+00 0.585494E+00 0.565531E+00 0.535844E+00 0.532530E+00 0.455914E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.486907E+00 0.556278E+00 0.578823E+00 0.586383E+00 0.598983E+00 0.624233E+00 0.615157E+00 0.588731E+00 0.571181E+00 0.540952E+00 0.531610E+00 0.455856E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.478797E+00 0.553515E+00 0.577133E+00 0.587236E+00 0.604987E+00 0.623723E+00 0.616992E+00 0.591085E+00 0.592990E+00 0.570478E+00 0.538962E+00 0.461789E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.469172E+00 0.550947E+00 0.575509E+00 0.585671E+00 0.599857E+00 0.622664E+00 0.620744E+00 0.596660E+00 0.591904E+00 0.569714E+00 0.539966E+00 0.483363E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.458598E+00 0.548931E+00 0.573779E+00 0.583676E+00 0.596225E+00 0.621096E+00 0.632054E+00 0.616520E+00 0.592785E+00 0.567552E+00 0.537061E+00 0.531676E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.446892E+00 0.546746E+00 0.571775E+00 0.581831E+00 0.594193E+00 0.620408E+00 0.631985E+00 0.616618E+00 0.592451E+00 0.564449E+00 0.533545E+00 0.528493E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.432699E+00 0.543895E+00 0.569606E+00 0.579366E+00 0.592773E+00 0.617579E+00 0.631500E+00 0.615835E+00 0.590065E+00 0.559265E+00 0.528199E+00 0.522617E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.415557E+00 0.540657E+00 0.566743E+00 0.576740E+00 0.590448E+00 0.614466E+00 0.630162E+00 0.613896E+00 0.586702E+00 0.553395E+00 0.521708E+00 0.514424E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406059E+00 0.536671E+00 0.563090E+00 0.572954E+00 0.586290E+00 0.608635E+00 0.626241E+00 0.610690E+00 0.582820E+00 0.547659E+00 0.513172E+00 0.499629E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.401254E+00 0.530654E+00 0.558914E+00 0.568898E+00 0.581436E+00 0.599847E+00 0.619605E+00 0.606397E+00 0.579177E+00 0.542796E+00 0.504632E+00 0.464456E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.397427E+00 0.521467E+00 0.554088E+00 0.563340E+00 0.571106E+00 0.588380E+00 0.605832E+00 0.592380E+00 0.575755E+00 0.538440E+00 0.498253E+00 0.424300E+00 0.199573E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393427E+00 0.510231E+00 0.548932E+00 0.557198E+00 0.556461E+00 0.575856E+00 0.588284E+00 0.571351E+00 0.569714E+00 0.533168E+00 0.492417E+00 0.419129E+00 0.124274E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390260E+00 0.496261E+00 0.543445E+00 0.552656E+00 0.550537E+00 0.562389E+00 0.568760E+00 0.565591E+00 0.553550E+00 0.515091E+00 0.483977E+00 0.413945E+00 0.123587E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388211E+00 0.477986E+00 0.536741E+00 0.542688E+00 0.545251E+00 0.548565E+00 0.545335E+00 0.555933E+00 0.531000E+00 0.491539E+00 0.452351E+00 0.385500E+00 0.120037E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.386632E+00 0.459310E+00 0.529586E+00 0.533417E+00 0.540428E+00 0.538524E+00 0.531466E+00 0.541859E+00 0.520433E+00 0.485048E+00 0.420770E+00 0.338653E+00 0.760103E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385273E+00 0.450913E+00 0.513943E+00 0.530116E+00 0.532700E+00 0.520256E+00 0.517302E+00 0.513489E+00 0.489826E+00 0.470951E+00 0.413157E+00 0.944282E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.383210E+00 0.448855E+00 0.492158E+00 0.523654E+00 0.523541E+00 0.503256E+00 0.504628E+00 0.487711E+00 0.457679E+00 0.448454E+00 0.394015E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378277E+00 0.445777E+00 0.469649E+00 0.512086E+00 0.515943E+00 0.496290E+00 0.495047E+00 0.474395E+00 0.443309E+00 0.410844E+00 0.359405E+00 0.174684E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.369289E+00 0.437169E+00 0.457158E+00 0.494583E+00 0.492911E+00 0.489354E+00 0.479031E+00 0.448490E+00 0.429882E+00 0.383539E+00 0.331660E+00 0.750884E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.354807E+00 0.428152E+00 0.449258E+00 0.472461E+00 0.471663E+00 0.479555E+00 0.464698E+00 0.430251E+00 0.417703E+00 0.374687E+00 0.326137E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.327759E+00 0.416891E+00 0.443751E+00 0.453586E+00 0.456194E+00 0.458934E+00 0.431787E+00 0.417814E+00 0.387787E+00 0.340954E+00 0.311951E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.318284E+00 0.398625E+00 0.432792E+00 0.430988E+00 0.434566E+00 0.431577E+00 0.402020E+00 0.396606E+00 0.360715E+00 0.314635E+00 0.283944E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.318948E+00 0.373520E+00 0.410852E+00 0.410244E+00 0.412956E+00 0.402908E+00 0.377820E+00 0.369981E+00 0.340448E+00 0.300517E+00 0.960372E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.321425E+00 0.350729E+00 0.373132E+00 0.384942E+00 0.386393E+00 0.366630E+00 0.361654E+00 0.342485E+00 0.302840E+00 0.289061E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.323584E+00 0.337182E+00 0.348738E+00 0.357838E+00 0.359305E+00 0.342072E+00 0.342843E+00 0.326195E+00 0.287564E+00 0.281608E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314279E+00 0.320781E+00 0.340746E+00 0.338133E+00 0.332695E+00 0.316376E+00 0.316779E+00 0.302480E+00 0.268303E+00 0.266698E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.285606E+00 0.291770E+00 0.321366E+00 0.321925E+00 0.311510E+00 0.314185E+00 0.316301E+00 0.299628E+00 0.262726E+00 0.260971E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244555E+00 0.270782E+00 0.286604E+00 0.295495E+00 0.297255E+00 0.307672E+00 0.312936E+00 0.297733E+00 0.260778E+00 0.256939E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.212595E+00 0.251740E+00 0.260068E+00 0.256694E+00 0.262071E+00 0.269026E+00 0.278949E+00 0.269613E+00 0.238999E+00 0.234752E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.786761E-03 0.141330E+00 0.167164E+00 0.181159E+00 0.193570E+00 0.203921E+00 0.205861E+00 0.189868E+00 0.190549E+00 0.145392E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439119E+00 0.485970E+00 0.508650E+00 0.516861E+00 0.512644E+00 0.525654E+00 0.508434E+00 0.503145E+00 0.477383E+00 0.445529E+00 0.431615E+00 0.374288E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.496628E+00 0.556403E+00 0.579166E+00 0.588923E+00 0.585657E+00 0.610072E+00 0.589333E+00 0.584940E+00 0.562605E+00 0.533316E+00 0.531098E+00 0.455240E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.488155E+00 0.553706E+00 0.577808E+00 0.587246E+00 0.584820E+00 0.618510E+00 0.616419E+00 0.589953E+00 0.568099E+00 0.537013E+00 0.532388E+00 0.455659E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.481278E+00 0.551175E+00 0.576502E+00 0.586019E+00 0.584448E+00 0.616665E+00 0.617722E+00 0.593303E+00 0.574470E+00 0.542107E+00 0.531502E+00 0.455564E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.471428E+00 0.548621E+00 0.574876E+00 0.586591E+00 0.595175E+00 0.614904E+00 0.619125E+00 0.594900E+00 0.596069E+00 0.571549E+00 0.538403E+00 0.461104E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.460956E+00 0.546320E+00 0.573281E+00 0.584762E+00 0.591727E+00 0.613098E+00 0.621704E+00 0.599147E+00 0.593974E+00 0.568962E+00 0.538367E+00 0.481839E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.450266E+00 0.544298E+00 0.571240E+00 0.581735E+00 0.588869E+00 0.611894E+00 0.631657E+00 0.617718E+00 0.593664E+00 0.565678E+00 0.534756E+00 0.529577E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.438538E+00 0.542063E+00 0.568765E+00 0.578577E+00 0.588045E+00 0.611430E+00 0.630687E+00 0.616711E+00 0.591605E+00 0.561851E+00 0.530936E+00 0.525956E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.424309E+00 0.538880E+00 0.565800E+00 0.575084E+00 0.586673E+00 0.608794E+00 0.629120E+00 0.614541E+00 0.588337E+00 0.556634E+00 0.525479E+00 0.519838E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.412902E+00 0.534701E+00 0.562163E+00 0.571751E+00 0.584801E+00 0.605118E+00 0.626563E+00 0.611489E+00 0.584790E+00 0.551155E+00 0.518560E+00 0.510934E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.406959E+00 0.529423E+00 0.558281E+00 0.568000E+00 0.581181E+00 0.599460E+00 0.622180E+00 0.608345E+00 0.580553E+00 0.545446E+00 0.509619E+00 0.495623E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402599E+00 0.522465E+00 0.554412E+00 0.564162E+00 0.576563E+00 0.592102E+00 0.615316E+00 0.604320E+00 0.577545E+00 0.540635E+00 0.501656E+00 0.461398E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399108E+00 0.512345E+00 0.549777E+00 0.559322E+00 0.566537E+00 0.583450E+00 0.602619E+00 0.590962E+00 0.574905E+00 0.536583E+00 0.496051E+00 0.422289E+00 0.199152E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.394960E+00 0.499228E+00 0.544891E+00 0.553345E+00 0.551946E+00 0.572579E+00 0.586162E+00 0.570909E+00 0.569855E+00 0.531963E+00 0.491274E+00 0.417827E+00 0.124211E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.391127E+00 0.483898E+00 0.539568E+00 0.549313E+00 0.548092E+00 0.559869E+00 0.567873E+00 0.565259E+00 0.553521E+00 0.514483E+00 0.483352E+00 0.413094E+00 0.123551E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388260E+00 0.466913E+00 0.533158E+00 0.540732E+00 0.544056E+00 0.546873E+00 0.544410E+00 0.555721E+00 0.530796E+00 0.491392E+00 0.452072E+00 0.385228E+00 0.120004E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.385689E+00 0.452630E+00 0.522989E+00 0.532528E+00 0.539730E+00 0.537952E+00 0.530608E+00 0.539856E+00 0.519149E+00 0.484337E+00 0.420168E+00 0.338627E+00 0.768756E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382584E+00 0.450440E+00 0.503245E+00 0.528393E+00 0.531663E+00 0.520404E+00 0.517570E+00 0.511610E+00 0.487731E+00 0.469587E+00 0.411855E+00 0.949646E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.377872E+00 0.447954E+00 0.479226E+00 0.520858E+00 0.523030E+00 0.503004E+00 0.506022E+00 0.487380E+00 0.456070E+00 0.447037E+00 0.392086E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.369738E+00 0.445172E+00 0.465776E+00 0.506883E+00 0.514336E+00 0.497103E+00 0.497387E+00 0.474199E+00 0.441616E+00 0.409253E+00 0.357689E+00 0.174248E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.358073E+00 0.435587E+00 0.456783E+00 0.488916E+00 0.489929E+00 0.489451E+00 0.480723E+00 0.448707E+00 0.429294E+00 0.382515E+00 0.330882E+00 0.753882E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.343952E+00 0.425094E+00 0.449088E+00 0.466344E+00 0.466878E+00 0.478069E+00 0.465388E+00 0.431042E+00 0.417804E+00 0.374539E+00 0.325844E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.316594E+00 0.411460E+00 0.440852E+00 0.449371E+00 0.450456E+00 0.453844E+00 0.429896E+00 0.417180E+00 0.387335E+00 0.340537E+00 0.311738E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314086E+00 0.386619E+00 0.426476E+00 0.427018E+00 0.428407E+00 0.422029E+00 0.396228E+00 0.393526E+00 0.357746E+00 0.312244E+00 0.283496E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.315125E+00 0.362700E+00 0.402164E+00 0.405224E+00 0.407837E+00 0.397498E+00 0.373080E+00 0.366943E+00 0.336691E+00 0.298017E+00 0.944634E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.317838E+00 0.350163E+00 0.369081E+00 0.380860E+00 0.378926E+00 0.362158E+00 0.359107E+00 0.341466E+00 0.301949E+00 0.288579E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.320286E+00 0.336939E+00 0.346871E+00 0.350380E+00 0.350551E+00 0.337249E+00 0.340286E+00 0.325243E+00 0.287134E+00 0.281473E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.312394E+00 0.321905E+00 0.339925E+00 0.337714E+00 0.332989E+00 0.317279E+00 0.318877E+00 0.304898E+00 0.270419E+00 0.267998E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.280608E+00 0.290023E+00 0.316036E+00 0.321637E+00 0.313524E+00 0.315593E+00 0.317848E+00 0.301923E+00 0.264682E+00 0.262200E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.245009E+00 0.269091E+00 0.278655E+00 0.296129E+00 0.299449E+00 0.310528E+00 0.315480E+00 0.299256E+00 0.261715E+00 0.257684E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.213083E+00 0.249893E+00 0.257251E+00 0.257501E+00 0.263817E+00 0.271570E+00 0.280748E+00 0.272843E+00 0.242986E+00 0.238902E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.748439E-03 0.159050E+00 0.188732E+00 0.201240E+00 0.213134E+00 0.221930E+00 0.221103E+00 0.202821E+00 0.203921E+00 0.156032E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.429463E+00 0.479052E+00 0.503878E+00 0.513823E+00 0.508138E+00 0.520072E+00 0.506408E+00 0.502531E+00 0.476736E+00 0.444530E+00 0.430560E+00 0.373439E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.485101E+00 0.550092E+00 0.574976E+00 0.585877E+00 0.580462E+00 0.603902E+00 0.589340E+00 0.585183E+00 0.562028E+00 0.532111E+00 0.529876E+00 0.454595E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.474577E+00 0.547522E+00 0.573421E+00 0.584227E+00 0.580489E+00 0.612150E+00 0.615635E+00 0.588723E+00 0.566200E+00 0.534992E+00 0.530542E+00 0.454725E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.466530E+00 0.545482E+00 0.571740E+00 0.583008E+00 0.581509E+00 0.611265E+00 0.616361E+00 0.590892E+00 0.571586E+00 0.539049E+00 0.529000E+00 0.454122E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.456504E+00 0.542871E+00 0.569838E+00 0.583523E+00 0.592949E+00 0.610507E+00 0.617075E+00 0.591705E+00 0.592851E+00 0.567037E+00 0.534705E+00 0.459165E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.445961E+00 0.540242E+00 0.568092E+00 0.581928E+00 0.588944E+00 0.609595E+00 0.619412E+00 0.595668E+00 0.590294E+00 0.563675E+00 0.534045E+00 0.478848E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.435400E+00 0.537977E+00 0.565555E+00 0.578802E+00 0.585595E+00 0.608135E+00 0.629052E+00 0.614522E+00 0.589599E+00 0.560305E+00 0.530119E+00 0.525729E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.423886E+00 0.535418E+00 0.562690E+00 0.574622E+00 0.583287E+00 0.606192E+00 0.627881E+00 0.613350E+00 0.587852E+00 0.556840E+00 0.526414E+00 0.521969E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413520E+00 0.531894E+00 0.559389E+00 0.570086E+00 0.580270E+00 0.602472E+00 0.626001E+00 0.611395E+00 0.584713E+00 0.552183E+00 0.520869E+00 0.515395E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.407769E+00 0.527257E+00 0.555930E+00 0.565847E+00 0.577591E+00 0.598435E+00 0.624032E+00 0.609178E+00 0.581423E+00 0.547143E+00 0.513407E+00 0.505460E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.402640E+00 0.521312E+00 0.551925E+00 0.562000E+00 0.574132E+00 0.593938E+00 0.621057E+00 0.607136E+00 0.578481E+00 0.542114E+00 0.505096E+00 0.490191E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399120E+00 0.512295E+00 0.548664E+00 0.557651E+00 0.570583E+00 0.587274E+00 0.614508E+00 0.604638E+00 0.577438E+00 0.538507E+00 0.498632E+00 0.458211E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.396397E+00 0.499881E+00 0.544725E+00 0.553039E+00 0.561486E+00 0.578683E+00 0.601519E+00 0.593133E+00 0.577040E+00 0.536265E+00 0.494713E+00 0.420469E+00 0.198712E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393079E+00 0.486679E+00 0.540043E+00 0.547681E+00 0.548019E+00 0.568718E+00 0.584884E+00 0.574209E+00 0.574305E+00 0.534400E+00 0.492209E+00 0.417220E+00 0.124142E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.389937E+00 0.472571E+00 0.535451E+00 0.545204E+00 0.544436E+00 0.556756E+00 0.565488E+00 0.568507E+00 0.558994E+00 0.518571E+00 0.485211E+00 0.413142E+00 0.123528E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387540E+00 0.458007E+00 0.528067E+00 0.537933E+00 0.541636E+00 0.544190E+00 0.540762E+00 0.557179E+00 0.535819E+00 0.495597E+00 0.453937E+00 0.385545E+00 0.120001E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384833E+00 0.452878E+00 0.515394E+00 0.530426E+00 0.537734E+00 0.535897E+00 0.527159E+00 0.539269E+00 0.522649E+00 0.487676E+00 0.421737E+00 0.339017E+00 0.773729E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.380773E+00 0.450307E+00 0.493880E+00 0.525340E+00 0.530289E+00 0.518622E+00 0.515562E+00 0.512173E+00 0.489495E+00 0.470824E+00 0.412209E+00 0.951654E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.373810E+00 0.447833E+00 0.474270E+00 0.514555E+00 0.520588E+00 0.501738E+00 0.505645E+00 0.489684E+00 0.457866E+00 0.446883E+00 0.391364E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.362639E+00 0.444558E+00 0.465108E+00 0.502329E+00 0.511374E+00 0.496020E+00 0.497787E+00 0.477485E+00 0.442503E+00 0.407855E+00 0.355857E+00 0.173794E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.349345E+00 0.433687E+00 0.455974E+00 0.484695E+00 0.487246E+00 0.488193E+00 0.480762E+00 0.450623E+00 0.429474E+00 0.381507E+00 0.329828E+00 0.756860E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.335477E+00 0.422038E+00 0.447764E+00 0.462928E+00 0.464182E+00 0.476112E+00 0.463923E+00 0.431299E+00 0.417593E+00 0.374554E+00 0.325489E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313343E+00 0.407367E+00 0.439113E+00 0.447280E+00 0.446802E+00 0.449891E+00 0.426902E+00 0.415424E+00 0.386356E+00 0.339662E+00 0.311226E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311450E+00 0.384799E+00 0.424060E+00 0.424361E+00 0.425575E+00 0.417223E+00 0.392111E+00 0.389965E+00 0.354649E+00 0.309670E+00 0.282206E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311712E+00 0.361291E+00 0.399336E+00 0.402003E+00 0.405636E+00 0.395464E+00 0.370967E+00 0.365758E+00 0.334922E+00 0.296364E+00 0.931437E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.313273E+00 0.352213E+00 0.363986E+00 0.378015E+00 0.377891E+00 0.361554E+00 0.359192E+00 0.341708E+00 0.301625E+00 0.288271E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.314263E+00 0.338166E+00 0.347842E+00 0.350159E+00 0.347781E+00 0.334529E+00 0.340329E+00 0.324156E+00 0.286189E+00 0.280733E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307015E+00 0.321817E+00 0.338673E+00 0.336285E+00 0.332391E+00 0.317447E+00 0.320201E+00 0.306829E+00 0.272266E+00 0.269406E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.275338E+00 0.290080E+00 0.312681E+00 0.319112E+00 0.313456E+00 0.316285E+00 0.319056E+00 0.304092E+00 0.266585E+00 0.263880E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244363E+00 0.269996E+00 0.275357E+00 0.289921E+00 0.296267E+00 0.309620E+00 0.315917E+00 0.299259E+00 0.261805E+00 0.257960E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215251E+00 0.249096E+00 0.255830E+00 0.259442E+00 0.265102E+00 0.272066E+00 0.281109E+00 0.276423E+00 0.245848E+00 0.240675E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.698232E-03 0.174613E+00 0.206739E+00 0.216447E+00 0.227869E+00 0.236444E+00 0.233911E+00 0.212873E+00 0.214212E+00 0.164171E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.415894E+00 0.471373E+00 0.497634E+00 0.509969E+00 0.505351E+00 0.517782E+00 0.505361E+00 0.500800E+00 0.474084E+00 0.441808E+00 0.428289E+00 0.371577E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.470508E+00 0.543650E+00 0.569238E+00 0.581524E+00 0.577409E+00 0.601379E+00 0.588599E+00 0.582212E+00 0.557876E+00 0.528437E+00 0.527215E+00 0.452922E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.459536E+00 0.541300E+00 0.567263E+00 0.579448E+00 0.577423E+00 0.609554E+00 0.614636E+00 0.585395E+00 0.561616E+00 0.530910E+00 0.527472E+00 0.452740E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.450837E+00 0.539199E+00 0.565248E+00 0.578068E+00 0.578442E+00 0.608473E+00 0.614929E+00 0.587543E+00 0.566766E+00 0.534331E+00 0.525261E+00 0.451605E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.441099E+00 0.536455E+00 0.563090E+00 0.578798E+00 0.589759E+00 0.606998E+00 0.615034E+00 0.588251E+00 0.588515E+00 0.560666E+00 0.529558E+00 0.455747E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.431125E+00 0.533563E+00 0.561112E+00 0.576926E+00 0.585190E+00 0.605057E+00 0.616995E+00 0.592345E+00 0.585893E+00 0.557366E+00 0.528623E+00 0.474723E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.421138E+00 0.531303E+00 0.558730E+00 0.573915E+00 0.580857E+00 0.602527E+00 0.626091E+00 0.611508E+00 0.585427E+00 0.554368E+00 0.524924E+00 0.521310E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.414591E+00 0.528323E+00 0.555973E+00 0.568846E+00 0.578012E+00 0.599525E+00 0.624662E+00 0.610334E+00 0.583510E+00 0.551134E+00 0.520884E+00 0.516967E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.409572E+00 0.524208E+00 0.553118E+00 0.564041E+00 0.574500E+00 0.595380E+00 0.623290E+00 0.608971E+00 0.580948E+00 0.546879E+00 0.514740E+00 0.509132E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404918E+00 0.517585E+00 0.550507E+00 0.558890E+00 0.571413E+00 0.590845E+00 0.620952E+00 0.607863E+00 0.578930E+00 0.542943E+00 0.507717E+00 0.498465E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.400725E+00 0.508727E+00 0.546405E+00 0.554994E+00 0.567659E+00 0.585924E+00 0.617159E+00 0.607695E+00 0.578370E+00 0.539460E+00 0.501211E+00 0.485443E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.398001E+00 0.497526E+00 0.543245E+00 0.551507E+00 0.564410E+00 0.578987E+00 0.608773E+00 0.605727E+00 0.579489E+00 0.538071E+00 0.496861E+00 0.455808E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.396061E+00 0.485738E+00 0.539875E+00 0.547768E+00 0.555793E+00 0.571561E+00 0.595420E+00 0.594191E+00 0.579790E+00 0.538319E+00 0.495394E+00 0.419661E+00 0.198350E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393387E+00 0.474147E+00 0.536257E+00 0.543585E+00 0.543503E+00 0.563441E+00 0.578798E+00 0.573421E+00 0.574612E+00 0.535938E+00 0.493135E+00 0.417054E+00 0.124089E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390639E+00 0.462188E+00 0.532149E+00 0.541304E+00 0.541337E+00 0.552404E+00 0.559495E+00 0.565421E+00 0.557361E+00 0.518812E+00 0.485467E+00 0.413037E+00 0.123499E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.388103E+00 0.454677E+00 0.525214E+00 0.534875E+00 0.539834E+00 0.541216E+00 0.535272E+00 0.551709E+00 0.532953E+00 0.494993E+00 0.453843E+00 0.385293E+00 0.119979E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.384528E+00 0.451911E+00 0.511347E+00 0.526946E+00 0.536576E+00 0.533909E+00 0.522821E+00 0.532974E+00 0.519018E+00 0.486177E+00 0.421056E+00 0.338811E+00 0.778897E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.378362E+00 0.448625E+00 0.489711E+00 0.521279E+00 0.528620E+00 0.517078E+00 0.513450E+00 0.508403E+00 0.487436E+00 0.468969E+00 0.410754E+00 0.955189E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.368050E+00 0.445601E+00 0.473390E+00 0.511944E+00 0.518711E+00 0.500782E+00 0.504422E+00 0.487437E+00 0.456826E+00 0.444552E+00 0.389671E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.353947E+00 0.441044E+00 0.463895E+00 0.500000E+00 0.509948E+00 0.495463E+00 0.496969E+00 0.476324E+00 0.442883E+00 0.406722E+00 0.354467E+00 0.173431E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.340178E+00 0.430245E+00 0.453992E+00 0.483605E+00 0.486653E+00 0.487624E+00 0.479755E+00 0.450029E+00 0.430622E+00 0.381641E+00 0.329465E+00 0.759400E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.326594E+00 0.418276E+00 0.445518E+00 0.462403E+00 0.464449E+00 0.475872E+00 0.463079E+00 0.430980E+00 0.417665E+00 0.374463E+00 0.325388E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311271E+00 0.403223E+00 0.437307E+00 0.446751E+00 0.447906E+00 0.450256E+00 0.426539E+00 0.415993E+00 0.387134E+00 0.339789E+00 0.311428E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309331E+00 0.385311E+00 0.423161E+00 0.424635E+00 0.426344E+00 0.418418E+00 0.392611E+00 0.390801E+00 0.355542E+00 0.310103E+00 0.282649E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309469E+00 0.364481E+00 0.401032E+00 0.404126E+00 0.407167E+00 0.397504E+00 0.372346E+00 0.367171E+00 0.335890E+00 0.296970E+00 0.931301E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.310905E+00 0.353804E+00 0.369788E+00 0.380626E+00 0.381592E+00 0.363959E+00 0.360595E+00 0.342672E+00 0.302177E+00 0.288504E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311083E+00 0.338321E+00 0.350888E+00 0.353923E+00 0.351089E+00 0.336523E+00 0.341613E+00 0.324640E+00 0.286067E+00 0.280095E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.301361E+00 0.317719E+00 0.337329E+00 0.335991E+00 0.331824E+00 0.317428E+00 0.321186E+00 0.307853E+00 0.273091E+00 0.270051E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.270949E+00 0.290561E+00 0.311709E+00 0.317164E+00 0.313148E+00 0.317420E+00 0.320609E+00 0.305862E+00 0.268143E+00 0.264812E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.243220E+00 0.270428E+00 0.275933E+00 0.284310E+00 0.291360E+00 0.306486E+00 0.315509E+00 0.299662E+00 0.261774E+00 0.258133E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.215183E+00 0.250652E+00 0.260153E+00 0.262241E+00 0.265104E+00 0.271161E+00 0.281918E+00 0.279828E+00 0.248026E+00 0.242394E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.706780E-03 0.187108E+00 0.221051E+00 0.230568E+00 0.240841E+00 0.246715E+00 0.242837E+00 0.220947E+00 0.221899E+00 0.169902E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.404978E+00 0.465388E+00 0.491824E+00 0.505795E+00 0.502688E+00 0.515769E+00 0.504598E+00 0.499688E+00 0.472210E+00 0.439613E+00 0.426481E+00 0.369704E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.459457E+00 0.538545E+00 0.563757E+00 0.577084E+00 0.574730E+00 0.599210E+00 0.587921E+00 0.580537E+00 0.554638E+00 0.524890E+00 0.524959E+00 0.451101E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.448579E+00 0.536167E+00 0.561677E+00 0.575224E+00 0.574772E+00 0.606944E+00 0.613782E+00 0.583718E+00 0.557985E+00 0.526857E+00 0.524778E+00 0.450546E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.439706E+00 0.534047E+00 0.559501E+00 0.573843E+00 0.575864E+00 0.605407E+00 0.613617E+00 0.585548E+00 0.562744E+00 0.529738E+00 0.521930E+00 0.448911E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.430452E+00 0.531124E+00 0.557361E+00 0.574606E+00 0.587091E+00 0.603216E+00 0.613441E+00 0.586062E+00 0.584752E+00 0.554611E+00 0.524970E+00 0.452337E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.422748E+00 0.527801E+00 0.555684E+00 0.572766E+00 0.582326E+00 0.600315E+00 0.614985E+00 0.589875E+00 0.582484E+00 0.551990E+00 0.523909E+00 0.470538E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.417863E+00 0.524224E+00 0.553884E+00 0.569679E+00 0.577470E+00 0.596853E+00 0.623432E+00 0.609405E+00 0.582169E+00 0.549330E+00 0.520014E+00 0.517054E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.413013E+00 0.518870E+00 0.551514E+00 0.564084E+00 0.574145E+00 0.592778E+00 0.621898E+00 0.608963E+00 0.580830E+00 0.546598E+00 0.515542E+00 0.511541E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.408414E+00 0.511437E+00 0.548763E+00 0.559231E+00 0.570557E+00 0.587991E+00 0.620484E+00 0.609236E+00 0.579712E+00 0.543924E+00 0.510201E+00 0.503248E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.403897E+00 0.501968E+00 0.546147E+00 0.554157E+00 0.566915E+00 0.584035E+00 0.617743E+00 0.610015E+00 0.580827E+00 0.542486E+00 0.505408E+00 0.494758E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.399870E+00 0.492417E+00 0.542087E+00 0.551006E+00 0.563007E+00 0.579128E+00 0.612356E+00 0.609416E+00 0.582358E+00 0.542672E+00 0.502386E+00 0.485168E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.397364E+00 0.482804E+00 0.539705E+00 0.547621E+00 0.559055E+00 0.572906E+00 0.603149E+00 0.605951E+00 0.582616E+00 0.543145E+00 0.500251E+00 0.457086E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.395690E+00 0.473086E+00 0.537284E+00 0.544165E+00 0.551361E+00 0.567189E+00 0.589585E+00 0.592357E+00 0.580137E+00 0.541293E+00 0.498315E+00 0.420583E+00 0.198185E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.393197E+00 0.463995E+00 0.534183E+00 0.541096E+00 0.541205E+00 0.560380E+00 0.572926E+00 0.570473E+00 0.573246E+00 0.536495E+00 0.494671E+00 0.417617E+00 0.124088E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.390417E+00 0.457423E+00 0.530073E+00 0.540219E+00 0.540690E+00 0.549414E+00 0.553915E+00 0.561114E+00 0.554827E+00 0.518247E+00 0.486044E+00 0.412921E+00 0.123486E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.387389E+00 0.454720E+00 0.522152E+00 0.533398E+00 0.539130E+00 0.538633E+00 0.529887E+00 0.545977E+00 0.529595E+00 0.493809E+00 0.453440E+00 0.384943E+00 0.119953E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.382475E+00 0.451389E+00 0.508765E+00 0.524413E+00 0.535186E+00 0.531458E+00 0.519307E+00 0.527171E+00 0.514725E+00 0.483902E+00 0.419923E+00 0.338401E+00 0.783738E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.373776E+00 0.447323E+00 0.490053E+00 0.519924E+00 0.526933E+00 0.515214E+00 0.510826E+00 0.504464E+00 0.483644E+00 0.466428E+00 0.408627E+00 0.956028E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.360654E+00 0.443722E+00 0.472634E+00 0.510250E+00 0.517303E+00 0.498945E+00 0.502511E+00 0.484691E+00 0.454023E+00 0.441858E+00 0.387690E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.345618E+00 0.438906E+00 0.463001E+00 0.498677E+00 0.508957E+00 0.494325E+00 0.495574E+00 0.474836E+00 0.441536E+00 0.405645E+00 0.353478E+00 0.173204E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.332260E+00 0.428457E+00 0.452237E+00 0.482461E+00 0.486196E+00 0.486748E+00 0.478546E+00 0.449052E+00 0.430482E+00 0.381417E+00 0.329332E+00 0.761604E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.319265E+00 0.416536E+00 0.443717E+00 0.460995E+00 0.463907E+00 0.474787E+00 0.461839E+00 0.430146E+00 0.417445E+00 0.373994E+00 0.325140E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.311337E+00 0.401666E+00 0.435771E+00 0.445720E+00 0.447779E+00 0.450145E+00 0.425834E+00 0.416194E+00 0.387870E+00 0.340093E+00 0.311923E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309257E+00 0.384453E+00 0.422416E+00 0.425068E+00 0.427424E+00 0.420228E+00 0.393608E+00 0.392140E+00 0.357528E+00 0.311786E+00 0.283920E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.308774E+00 0.367823E+00 0.403473E+00 0.406378E+00 0.409644E+00 0.399845E+00 0.373839E+00 0.368618E+00 0.337642E+00 0.298367E+00 0.946733E-01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.309079E+00 0.354584E+00 0.378048E+00 0.386291E+00 0.386543E+00 0.368198E+00 0.362978E+00 0.344080E+00 0.302778E+00 0.289193E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.307143E+00 0.338929E+00 0.354073E+00 0.359459E+00 0.358511E+00 0.342668E+00 0.346004E+00 0.328419E+00 0.288522E+00 0.282136E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.295283E+00 0.315351E+00 0.336457E+00 0.336249E+00 0.332955E+00 0.319783E+00 0.324119E+00 0.310358E+00 0.275078E+00 0.271508E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.267703E+00 0.293036E+00 0.310796E+00 0.318160E+00 0.314970E+00 0.319391E+00 0.322432E+00 0.307277E+00 0.269288E+00 0.265846E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.244701E+00 0.272325E+00 0.276503E+00 0.284226E+00 0.289399E+00 0.305885E+00 0.316793E+00 0.299706E+00 0.261678E+00 0.258365E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.217822E+00 0.256517E+00 0.266073E+00 0.263655E+00 0.265817E+00 0.271416E+00 0.284372E+00 0.282279E+00 0.249229E+00 0.243402E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.711678E-03 0.196803E+00 0.230542E+00 0.238820E+00 0.248361E+00 0.254225E+00 0.248931E+00 0.225128E+00 0.225135E+00 0.172322E+00 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 diff --git a/cases/breakwaters/ob2_upd/results_old(crashed)/PDIR_ob_example.dat b/cases/breakwaters/ob2_upd/results_old(crashed)/PDIR_ob_example.dat new file mode 100644 index 000000000..672c6afa6 --- /dev/null +++ b/cases/breakwaters/ob2_upd/results_old(crashed)/PDIR_ob_example.dat @@ -0,0 +1,608 @@ + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.165000E+03 0.235000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.195000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.165000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.175000E+03 0.245000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.165000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.195000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.245000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.245000E+03 0.245000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.175000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.245000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.165000E+03 0.185000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.165000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.225000E+03 0.255000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.205000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.175000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.175000E+03 0.265000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.175000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.165000E+03 0.175000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.185000E+03 0.245000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.235000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.185000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.185000E+03 0.245000E+03 0.245000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.850000E+02 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.185000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.185000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.185000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.265000E+03 0.265000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.275000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 0.245000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.275000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.265000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.255000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.275000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.285000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.195000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.205000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.185000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.195000E+03 0.255000E+03 0.255000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.185000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.245000E+03 0.255000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.205000E+03 0.205000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.215000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.225000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.235000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.215000E+03 0.225000E+03 0.225000E+03 0.235000E+03 0.255000E+03 0.265000E+03 0.265000E+03 0.265000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.225000E+03 0.225000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.225000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.255000E+03 0.255000E+03 0.255000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.195000E+03 0.195000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.275000E+03 0.265000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.175000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 + 0.500000E+01 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.285000E+03 0.275000E+03 0.275000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 -0.999000E+03 diff --git a/cases/breakwaters/ob2_upd/results_old(crashed)/RTP_ob_example.dat b/cases/breakwaters/ob2_upd/results_old(crashed)/RTP_ob_example.dat new file mode 100644 index 000000000..91b202d5e --- /dev/null +++ b/cases/breakwaters/ob2_upd/results_old(crashed)/RTP_ob_example.dat @@ -0,0 +1,576 @@ + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.182056E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.127081E+01 0.143259E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.112730E+01 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.112730E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.127081E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.112730E+01 0.143259E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.143259E+01 0.143259E+01 0.143259E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.143259E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.231360E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.161497E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.161497E+01 0.161497E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.182056E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.161497E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.331445E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.260813E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.294016E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.331445E+01 0.331445E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.182056E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.205233E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.294016E+01 0.294016E+01 0.294016E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.182056E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.260813E+01 0.260813E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.161497E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.143259E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 + 0.127081E+01 0.205233E+01 0.205233E+01 0.205233E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 0.231360E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 -0.900000E+01 diff --git a/cases/breakwaters/ob2_upd/swan.edt b/cases/breakwaters/ob2_upd/swan.edt new file mode 100644 index 000000000..f01954574 --- /dev/null +++ b/cases/breakwaters/ob2_upd/swan.edt @@ -0,0 +1,296 @@ +! PROJECT 'name' 'nr' +! 'title1' +! 'title2' +! 'title3' +! +! SET [level] [nor] [depmin] [maxmes] & +! [maxerr] [grav] [rho] [cdcap] [uscap] [inrhog] & +! [hsrerr] CARTesian|NAUTical [pwtail] & +! [froudmax] [icewind] [sort] [nsweep] CURV [printf] [prtest] +! +! MODE / STATIONARY \ / TWODimensional +! \ DYNAMIC / \ ONEDimensional +! +! COORDinates / -> CARTesian \ REPeating +! \ SPHErical CCM|QC / +! +! CGRID / REGular [xpc] [ypc] [alpc] [xlenc] [ylenc] [mxc] [myc] \ +! < CURVilinear [mxc] [myc] (EXC [xexc] [yexc]) [alpc] > & +! \ UNSTRUCtured / +! +! / CIRcle \ +! \ SECtor [dir1] [dir2] / [mdc] [flow] [fhig] [msc] +! +! INPgrid & +! BOT | WLEV | CUR | VX | VY | FR | WI | WX | WY | NPLA | TURB | MUDL & +! AICE | HICE & +! +! | REG [xpinp] [ypinp] [alpinp] [mxinp] [myinp] [dxinp] [dyinp] | +! | | +! < CURVilinear [stagrx] [stagry] [mxinp] [myinp] > & +! | | +! | UNSTRUCtured | +! +! (EXCeption [excval]) & +! +! (NONSTATionary [tbeginp] [deltinp] SEC|MIN|HR|DAY [tendinp]) +! +! | -> ADCirc +! READgrid UNSTRUCtured < TRIAngle \ +! | EASYmesh / 'fname' +! +! READinp BOTtom | WLevel | CURrent | FRiction | WInd | COOR | NPLAnts & +! TURB | MUDL | AICE | HICE & +! +! [fac] / 'fname1' \ +! \ SERIES 'fname2' / [idla] [nhedf] ([nhedt]) (nhedvec]) & +! +! FREE | FORMAT 'form' | [idfm] | UNFORMATTED +! +! | WU +! WIND [vel] [dir] DRAG < -> FIT +! | SWELL +! +! | JONswap [gamma] | +! BOUnd SHAPespec | PM | +! < GAUSs [sigfr] > PEAK|MEAN DSPR POWer|DEGRees +! | BIN | +! +! / -> SIDE N|NW|W|SW|S|SE|E|NE | [k] CCW|CLOCKWise \ +! BOUndspec < > & +! \ SEGment / -> XY < [x] [y] > \ / +! \ IJ < [i] [j] > | < [k] > / +! +! / UNIForm / PAR [hs] [per] [dir] [dd] +! < \ FILE 'fname' [seq] +! \ VARiable / PAR < [len] [hs] [per] [dir] [dd] > +! \ FILE < [len] 'fname' [seq] > +! +! BOUndnest1 NEst 'fname' CLOSed|OPEN +! +! BOUndnest2 WAMNest 'fname' / UNFormatted CRAY|WKstat \ +! \ FREE / [xgc] [ygc] [lwdate] +! +! | UNFormatted | | -> CLOS | +! BOUndnest3 WW3 'fname' < > < > [xgc] [ygc] +! | FREe | | OPEN | +! +! | -> DEFault +! | +! INITial < ZERO +! | +! | PAR [hs] [per] [dir] [dd] +! | +! | | -> MULTiple | | -> FREE +! | HOTStart < > 'fname' < +! | | SINGle | | UNFormatted +! +! GEN1 [cf10] [cf20] [cf30] [cf40] [edmlpm] [cdrag] [umin] +! +! GEN2 [cf10] [cf20] [cf30] [cf40] [cf50] [cf60] [edmlpm] [cdrag] [umin] +! +! | JANSsen [cds1] [delta] | +! | | +! | -> KOMen [cds2] [stpm] | +! | | +! | YAN | +! | | +! | WESTHuysen [cds2] [br] [p0] [powst] [powk] | +! | | +! | BABANIN [a1sds] [a2sds] [p1sds] [p2sds] [cdsv] & | +! | | -> UP | | +! GEN3 < [feswell] < > VECTAU TRUE10 > (AGROW [a]) +! | | DOWN | | +! | | +! | ST6 [a1sds] [a2sds] [p1sds] [p2sds] & | +! | | -> UP | | -> HWANG | | +! | < > < FAN > VECTAU|SCATAU & | +! | | DOWN | | ECMWF | | +! | | TRUE10 | | +! | < > DEBias [cdfac] | +! | | -> U10Proxy [windscaling] | | +! +! | ROGers [cdsv] [feswell] +! SSWELL < -> ARDhuin [cdsv] +! | ZIEger [b1] +! +! NEGatinp [rdcoef] +! +! +! | -> KOMen [cds2] [stpm] [powst] [delta] [powk] +! | +! | JANSsen [cds1] [delta] [pwtail] +! | +! | LHIG [cflhig] +! | +! WCAP < BJ [bjstp] [bjalf] +! | +! | KBJ [bjstp] [bjalf] [kconv] +! | +! | AB [cds2] [br] [p0] [powst] [powk] +! +! QUADrupl [iquad] [lambda] [cnl4] [csh1] [csh2] [csh3] +! +! | CNL4 < [cnl4] > | +! MDIA LAMbda < [lambda] > < > +! | CNL4_12 < [cnl4_1] [cnl4_2] > | +! +! | -> CON [alpha] [gamma] | +! | | +! | VAR [alpha] [gammin] [gammax] [gamneg] [coeff1] [coeff2] | +! | | +! BRE < RUE [alpha] [a] [b] > & +! | | +! | BKD [alpha] [gamma0] [a1] [a2] [a3] | +! | | +! | TG [alpha] [gamma] [pown] | +! +! ( DIRectionality [spread] ) & +! +! ( FREQDep [power] [fmin] [fmax] ) +! +! +! | | -> CONstant [cfjon] +! | -> JONswap < +! | | VARiable [cfj1] [cfj2] [dsp1] [dsp2] +! FRICtion < +! | COLLins [cfw] [cfc] +! | +! | MADsen [kn] +! | +! | RIPples [S] [D] +! +! TRIad [itriad] [trfac] [cutfr] [a] [b] [p] [urcrit] [urslim] +! +! VEGEtation < [height] [diamtr] [nstems] [drag] > +! +! TURBulence [ctb] (CURrent [tbcur]) +! +! MUD [layer] [rhom] [viscm] [rhow] [viscw] +! +! IC4M2 [aice] [c0] [c1] [c2] [c3] [c4] [c5] [c6] +! +! LIMiter [ursell] [qb] +! +! | -> TRANSm [trcoef] | +! | TRANS1d < [trcoef] > | +! | TRANS2d < [trcoef] > | +! OBSTacle < > & +! | | -> GODA [hgt] [alpha] [beta] | +! | DAM < | +! | DANGremond [hgt] [slope] [Bk] | +! +! | -> RSPEC | +! ( REFLec [reflc] < > ) & +! | RDIFF [pown] | +! +! ( FREEboard [hgt] [gammat] [gammar] Quay ) & +! +! LINe < [xp] [yp] > +! +! SETUP [supcor] +! +! DIFFRac [idiffr] [smpar] [smnum] [cgmod] +! +! OFF WINDGrowth | QUADrupl | WCAPping | BREaking | REFrac | FSHift | BNDCHK +! +! PROP / BSBT +! \ GSE [waveage] SEC|MIN|HR|DAY +! +! | -> STOPC [dabs] [drel] [curvat] [npnts] [dtabs] [curvt] | +! NUMeric (< > & +! | ACCUR [drel] [dhoval] [dtoval] [npnts] | +! +! | -> STAT [mxitst] [alfa] | +! < > [limiter] ) & +! | NONSTat [mxitns] | +! +! ( DIRimpl [cdd] DEP|WNUM ) & +! +! ( REFRLim [frlim] [power] ) & +! +! | -> SIGIMpl [css] [eps2] [outp] [niter] +! ( < ) & +! | SIGEXpl [css] [cfl] +! +! ( CTheta [cfl] ) & +! +! ( CSigma [cfl] ) & +! +! ( SETUP [eps2] [outp] [niter] ) +! +! FRAME 'sname' [xpfr] [ypfr] [alpfr] [xlenfr] [ylenfr] [mxfr] [myfr] +! +! GROUP 'sname' SUBGRID [ix1] [ix2] [iy1] [iy2] +! +! CURVE 'sname' [xp1] [yp1] < [int] [xp] [yp] > +! +! RAY 'rname' [xp1] [yp1] [xq1] [yq1] & +! < [int] [xp] [yp] [xq] [yq] > +! +! ISOLINE 'sname' 'rname' DEPTH|BOTTOM [dep] +! +! POINTS 'sname' < [xp] [yp] > | FILE 'fname' +! +! | [xpn] [ypn] [alpn] [xlenn] [ylenn] [mxn] [myn] +! NGRID 'sname' < +! | UNSTRUCtured / -> TRIAngle \ +! \ EASYmesh / 'fname' +! +! |...| +! QUANTity < > 'short' 'long' [lexp] [hexp] [excv] & +! |...| +! +! [power] [ref] [fswell] [fmin] [fmax] & +! +! / -> PROBLEMcoord \ +! \ FRAME / +! +! OUTPut OPTIons 'comment' (TABle [field]) (BLOck [ndec] [len]) & +! (SPEC [ndec]) +! +! BLOCK 'sname' HEADER | NOHEADER 'fname' (LAY-OUT [idla]) & +! < HSIGN|HSWELL|DIR|PDIR|TDIR|TM01|RTM01|RTP|TM02|FSPR|DSPR|VEL| & +! FRCOEF|WIND|DISSIP|QB|TRANSP|FORCE|UBOT|URMS|WLEN|STEEPNESS| & +! DHSIGN|DRTM01|LEAK|TSEC|XP|YP|DIST|SETUP|TMM10|RTMM10|DEPTH| & +! TMBOT|QP|BFI|NPLANT|WATLEV|BOTLEV|TPS|DISBOT|DISSURF|DISWCAP| & +! GENE|GENW|REDI|REDQ|REDT|PROPA|PROPX|PROPT|PROPS|RADS|LWAVP| & +! DISTUR|TURB|DISMUD|DISSWELL|AICE|DISICE| & +! PTHSIGN|PTRTP|PTWLEN|PTDIR|PTDSPR|PTWFRAC|PTSTEEP|PARTIT > & +! ([unit]) (OUTPUT [tbegblk] [deltblk] SEC|MIN|HR|DAY) +! +! TABLE 'sname' HEADER | NOHEADER | INDEXED 'fname' & +! < HSIGN|HSWELL|DIR|PDIR|TDIR|TM01|RTM01|RTP|TM02|FSPR|DSPR|VEL| & +! FRCOEF|WIND|DISSIP|QB|TRANSP|FORCE|UBOT|URMS|WLEN|STEEPNESS| & +! DHSIGN|DRTM01|LEAK|TIME|TSEC|XP|YP|DIST|SETUP|TMM10|RTMM10| & +! DEPTH|TMBOT|QP|BFI|WATLEV|BOTLEV|TPS|DISBOT|DISSURF|DISWCAP| & +! GENE|GENW|REDI|REDQ|REDT|PROPA|PROPX|PROPT|PROPS|RADS|LWAVP| & +! DISTUR|TURB|DISMUD|DISSWELL|AICE|DISICE| & +! PTHSIGN|PTRTP|PTWLEN|PTDIR|PTDSPR|PTWFRAC|PTSTEEP > & +! ([unit]) (OUTPUT [tbegtbl] [delttbl] SEC|MIN|HR|DAY) +! +! SPECout 'sname' SPEC1D|SPEC2D ABS|REL 'fname' & +! MONth ESCAle COMPress & +! (OUTput [tbeg] [delt] SEC|MIN|HR|DAY) +! +! NESTout 'sname' 'fname' & +! (OUTput [tbeg] [delt] SEC|MIN|HR|DAY) +! +! / -> IJ < [i] [j] > | < [k] > \ +! TEST [itest] [itrace] POINTS < > & +! \ XY < [x] [y] > / +! +! PAR 'fname' S1D 'fname' S2D 'fname' +! +! | STATionary [time] | +! COMPute ( < > ) +! | | -> Sec | | +! | ([tbegc] [deltc] < MIn > [tendc]) | +! | HR | +! | DAy | +! +! | -> FREE +! HOTFile 'fname' < +! | UNFormatted +! +! STOP diff --git a/cases/breakwaters/ob2_upd/swan.exe b/cases/breakwaters/ob2_upd/swan.exe new file mode 100644 index 0000000000000000000000000000000000000000..bf84b31f3915990e61546f2ca1310fd93eca71f7 GIT binary patch literal 3679744 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 z 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%0AcR0z14VJ_@<4OrZMql(BfMAnf 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 q2Agiqe@^_M5*tN5=U0Ak9?LzaB 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%0Ds#Z{%qy1XsH9 zi002+<(_o5@w^;=stP{}le6I#+CjKgwWmZhuG8NtS3@iGDk_2heqz5XvD#M�j;x?mmtH+UfhJhB!fatPm+;2=X z4D2B_2FpP=RWs0E8OT-!22^5zcjXK;RR*rE#6W>E&`lY@gHr~Y!GL&m!*2A;G`M;o zCsgNe4-0p$C+QJs7%N7ZhVd#C%4@)xylj)IQ zq|vzYF-bCGl7!BAJsKaAng3xoF`htE3W0;&V-NEMGVVlSoiEqY6#Sd{#_)}e0@e*_ z0joEMg{ZD*)9@90v&}@Y<@MP+{>Iq~XEMav>f^cvolLar9ZeDY7mVDyEFqYAh}A~& z2_|gVD<3P+>+uPg1sRz|?nzC6aOPMTF3@W@c?PU%XgjRU9Ep-x*=gnc+P7TjLH2Xy zJiE#tsq#{GzuPRq2#EVL$ex3SgVwK|oS`9?`RHI!MuHsrxrTw(UPgq7YLE;EeTm!s ziC><&37-Qi>draFPmiQRrqsbLNIW-{!DW5Es+)loaRyeyT5xL{YZ`L1`R|iU@64dK z=3O$lT0?%m%wdDZJT7CUHL<;xM2BW81Zu`a6aG-1+Avixu-^H)sK)O#hS zff3IF;IUR?fnnZkt4w00+Gmb+W@Ek^Gr8P8|A&dF=m=JmGjq6Pfukp8?y$R@(;d!j zP3!Yz9F`_$6{8G3>+_gqw>gv|)kTs&^Vc!oMg8(=CC~K$WMVAFy&t0vmA#*`2Zi|t zzK7KN0V3{mO&Mq`C`DX}ubRS62N2U7A5To3f&r=6a~|ajOhv~zFRYI9`-I%- z_G>?>{Aq=z@>80aSZJ{H#VdqU{OAMje%Vy+9aSH5`9>iuJ}=vaPc z#dPv4q6zlxJt=Y6)$mxlS-aoaRO1Kb8-x7gzBT7H2$J*Ws3zbWv7np zab+XL2l5$Ej@1Y@ER~HEW`|CIZ(ED&OG2J&VgSo!Hc-6wd%9Vf?=?rxX`jjR{O9Dg zl~q8%B9kWw&=uaa5_q}^^PMrkIa>y<)x2^zb*HjM${S6$JKRPkRX&);(}wga4yN&( z&imZ|d@zmY_|f!)zj!uHu!Wu8mlNMvveDqeE^4+}bMurW`6KMyV_d(7v%lIXjvC)5Mr$2x9X@SH8T#v_vIKf1`u64ufOUaU! znnR?eV9U8uIGA~4h}|`E{zU(wRpLkvy+mLpiU=lhooXS6P7CNHegczH$yUz!9`Z$L z;vsErfj9gYpzwLf= zJH_LEzU*Kk_qTp$#Ii=k@&GfBrqpW?%Ra=?1wNzhiG6t=w0`39zJy@Lag*`h(}IZ~ z1v5V9&~u5)Der&423Kqemj{QRi!!DrJ;879q^bPYO?t}g$l5yOyRMOX3;c&x8aZ8w z0BXM_Qdq!Gj|B*8EkdgO4zYf35&N82zjqMX8dy0rWJBqt0t`lP!Kj-gfPuGCi3b+& zTQ^V+yET~k$B??EeGr=0?6h+~7EsYqdeN`7)GG>-ZMfe^d5BY(K;p)jK$jra-qf|^ zwAj@1A49%Vkshx?)rE z8FQ+9$Ns;rvzLp4|23U0O%w~B`NsoUXjLHwV62=q$L$Ydygm;mt_>!xG;Mz!-3{$M zHEFTa_S;o#`?wjd9OGv2MGy~<5mSRX9q2oyFYYT3oF?5~!<2>{WwJKq7$=Ky*4S4B z`B@!Cvm(!3Ah6|~m+^Gn>hp+b)6JtTv6daN1* z-b35H+&%6sva9EC|8wMqB)LOlVkusXwbE~W<+V1^R#xO@Y~Ty!*WUcyiNVCZ_)?H{X*-rw@777w(znw|4l#x4_X(cdFsd7ls@2g%NJTqmu`E-G5)3 z8|hZ<7x(?HP4{v2VWbzgau+5_!Y27Cm7kJ zd(Afq?lqfY#UJRte?QygN{l49(z0%71CMOQ;as@7kwSg`kmqSK(aihLL|SsLvyoOz zO6%Qyiz#K1*WGI+;(6Xq8gwBAi4JrhKkn`wrRcSvr+1UCa3(GR;k~mG7go^ibrp1b6VG#Ji)<6WJfiZY zJTDxp&%g1^N}oiQDCBlS%p9fK%V!N6VD5`c&1wZBa+PHnqlHW5r}yvt^!g)LF0IU! zTPul`px&#ISpPNlAI~-rBhh<}B$i-E`<3Lldo(`lZibca%YSu0#&z@w2APda^95kt;TZ|(z`bNMSy)Q4?F6X!RD3e;Z?NWIq zN*4!Ofg>8oJnnwA5BPl|sMpK>IOdUNq+KcHdoZ6&OeHm5+tx|E} z0vU8ddydg1qNTXQ(jywj@CjVTq+sUeAwLE)zjEgn{4A5KMKKidp4W8@*PGeVsyD-5 zwhEXb`=hr4l-u%)(od>dFKj-1$$H@c3$^l^eb<)m)!M963=JBaDTeE&$rOXj6rk=x zvCf?$SD68!sAwVapvB(Fx}g#tX#irU(bw4o_RbvUAo4tuA*+*TI)^K3hki1ny%IU< zB4dp&qNXY5;#b$j7jhmIZ z6A4hMG`fb=(i+yRDa3twt5Btt!zowZ7tERO6i%u)KkIR}mL>Wlqh_&?xPYOHltU(JbKJ-Lk$TT# zg#xLpH=sqhramPL9P8?Wn~33>sE>^U4maiouYlDtjTy=U5t7w0o$UoIcHo%XPOl!r zqI(_~MzJH22_%DD&3>tY2xeG@md=;A83wlc6F-X;+I4#y4p%Rgww1sPzL=hsE0J&X*j8P!NtT_rqhyhKc21>b1gN#!kBdzg(sL`gs(>+1PSIm8`2CD$f z7ahI`)3nRRSbl(8mm+c)vxdU};xEu5w0g$_OO_lG?;<(xw{9N@`iX8+6_+nf(Mb*F z^7|%-W5b=a$o184RQ?^~aJ5R#xMncc&O+K zmA$dl5p-ac>VAg8ppqyR6NooiGw7o|UqS{&Ip6&|MdjMoNqOBZ_lz+F4{@os8I5C%Y=JPOcM3jalM*E>e0Pc;ZI> z0Jv*AKZRuaXmNsT)V)_+fW@2{LIwNaEQXX;=TJ&Y2*RcJ0_&O1ZZ1Urm-1768RuFH zYsoM%Lo&~m?|a&OU$4K9l<&9j9rCQ;Rk8qQjRwd?l?+!B>gQQy8t|DEVAMI_d^xrB zj}Zq28P=&9;?WcY=$pEz0*b;KONuJAzWarng>xJ3p9zs@efU8~wH7*`;P#1PsSvp2 zH$1S??c;RwRBGWTaz^1-gw|0fa>udj2?~?l9wM+~QFEYZW1wh7G=KkjT#(}KuDO|j zeM4heUr}LSU+kJp%ql0Ln6-T7=!zk+ZeL*9J&r@Q{sB`t`wkF#o^IxxY6e&;-VNjC zEJ8Y81putxV$2%P1KMPDFj%}w1p{o9MqyTkSoo+tR))rUM-isSF=qJ4`Z6nIE}o)( z4ghBKq#?0>zZMHx0{_j33|Ny{RVLzKk9WA@!>xUqx{IcMDNTkFU3j;Z=Osqr?mfon z?-3iW+r^*Je7tTCvH)=JdLxtHtcu=MIbvFf*&dw7ow#NIRqrR4X3? zj){HMS)7?@4E(;wthAQ2NUM`gv|AP(Q4wsd4S7`e7}M@nhE3|hRO;qc431Vv(Wzts zzet@bWeIma#tU=KY>*U5OP88QREqg4}?z6i*!EMP|`^0Ts)WEXw0mT zCMnBHnVr$nTX}tmQ2161V?pm^#`t1>rKV_Krf3gH#mHlHU0YzaH{5D~m$)j@XXyfR zF?q%zj^%@W|J$ke3^0boJO@2pvm9z#Yl-{&%6R>164{6}pDzoz(NsS1OJH^`G$IXRYC1)XkzQ|hyOeKVgpjo4zmAuA* z{am`F&GtvSzlP!^oiC|$|34EyX7MBby&Sa0Tyh@=cK16HdrhkMum+6f&SSH)-(9fr ziC$TU21bV)E#X+Vrv^qx<+aF858>4)Txq%kj3hJvul%iZW{`nt(mKclnm>6h@xgKf z^hnZ-EDs&YMe4dyQnW#cJD`lH6VKHbN4NZ1p_iLN?*h;}_9b&qRONs1dbMQIQgs2_ zA5AWqlb~d3$^88*astPac||}inTamcOXdp{#z1M39QIn@U|lU20u8p7bxIVYCo z%qppv?*aXNm`+COMC2RnyNM$sPK;vSEKid$Q(9;?6>li2jWjqyYvk8dpA5c6g-nH#9m7rVM0TNNeR#BOoO?nU)k?7pnA#+~bm zYebE;RQ`M{f7YVRBD&q}n~W9j%`gdJdRKmzYml+M#$5wujy1*}V6->;jA5VntG861 zhDvKMj%V)TcIlS={P<)!Z@%XLcFJnBfZHl?9en0yUM`boN-UlBE4jvc@I(7sJ>TAC zi;)%dtQtRui7t3E(G|{2bio%TWhZ0t%HkR!+ zEzjTkVuLZHxN~h}TT7sPRWXaqUG5cE<4P(v^q>&GhI`&WK>U^ASk_B+|H=Dp@&^ju zzQb7Y&J1$(oI);im~5M+KiK8pb^DB_u|~zNQ|O~Fq4NjGAC+Ap>~~|0PnwLvT6&1i zX(VpoT_{$Dts%0c^vg<~>qRL@f4m*=Y#RTJO@B>r#)r^$BUFLlo4w{rEIEAU(!E=J zo;nOAz%vlbnh}}Qk{RoGnlW@e;h$Sq2O>2sd>86onH?LPS+o!7S;Y))JRUM-3t7yC zLfAUzt$h;y$e!%a3#6ne(gixuh*5o}(r-WM_8dbE1zd&DmJ{xsE>a;g3ZhDF8+5j~6kRrtYw#kH{W8@;s+ z;1%y-M?yL6p!SryUa(AsMG23yoC+&DCW?QYMoD#2yd0E5(K%Ci7dGDul{yMNa+>W686;$ee|S|dEc;*=|%f< zAEJG5B;^LIIBh$`xI(oiMYLqppAqByKW z`8r!Q?(>V%{egaczS?U*FvwIV6oKR$&r&3ZG-ZquXfcMLWB94)Ub_P`mi^?=W-Qt% zXgKEpdkz^?+-pi(Lqn$0Bk)p|O6#3p9!?y|bOhq4P)YyS=rhLpH|r_45cU_cUo(HG zbNXqd{PS10R-G1zDzCQK&SJvxEc?cAd0p`aF*dW#nsO?#WDd}JS5{-p8pyUv_4#rGa_Wg zW?k5n@8ftA^)il?hN^X?4P*}d)XGzE%Qf8X3a(26t|kd*Sxq@0x_<5rCovo+_^3QHZs}K!olKw=n4?AUon($_ot}|;jVQJCdXHwiSSqZc{^+FIVZ4( z-ldoWGIe#cFB+5bkZ;zpV)>0BA9zZNfMy;4z~^xlCVral5&x<3bowV;zDky*U{M{{ zGrwo=+o2^>^7#}Hg|vFbrwZ8>G=ErS4GqYV?w8QSL7JIr|ti{ZSQ4 zRX3PvEUh#v@m5maY`UKU#vHY-Wf9}TR@ut0$YSYt2Syt&4=tbEspaB2-|I>jYfN8_ zUlE359^buh!4To{O0f{xho_?J_-H;U!P{bkGELjHt?TaN6&0`K7K;{<1LdV|K~88m z{A^JJ&LvBAjo{3rwF(aV{*(0m9erf6=uf5~&5?@>iNA-d3-%Wf3Vy3$msO={fA zL3nZX_g|JNtvr{WP#qKhGw)LEX!W8oZqt-MXG8Zo25ftmB6TBIPBf|UF7mG)GF*4I zv*NuWbxe_Zm5^FR|5K!{QA5==1xOjH9%q&P%e!|8xMmPu59*51*+vFelh8fZ@z)ne zCLga!Z3kLAF#(Pu`M;0CT#V@t&%8oDLU7P9XZC&p3s4J|- ztaAy$Y@Aj`8N%0ESFpdBwT~UH&BV;z+#VWMyoJEa!YT1MQrVq0c)m8KKSkkOjDC)1 z#a;tZEZXIO<85UN!)@aFP|;p7!B-jcqX06nMGo*|HL!jcVl77=`YNfpGF-$V&>HN( z{ILfz!;U6&_QH~VW>MHdXy@lMctBeg;HO|J?3>cE1qoAmZ?)%%&C{_OZU79M5nr^3 zorN)L6OYAPls?X1++5u1uikYJAwSgif_n^)grW)+Hh}9?`A@3R80+^ib6VQYWStU< zWld$A3N9$Hni-_9eaX~?*pFt@$1MY<;E&c$@E24 z*|BR|y`C)-&Vf;27(9tGnPyu#q7f2B21F=qCv1{S1K$K3s->+<%q|bBTMX3}Fvhg* z@Q3(qGBxCCgZ=V&dHFFpwX7@sl8~d197NBKptt@Dq`?4j^c*!3Mh|5>{{$Bi9d~3B zLN8~X4x&d0y`1+DD}OAAp0%Z)=m{3~mv))EgJzQmsv?=90pN^>V68eFBvLf>QX2Il zg5vW$tzHpOkxi-D8`*}ailDkp!u28PA*(9!^t6M4*F{Jc=}~<72f82d=4@yyxN67u zb#3HT>q0@W`&PF4!f@nYLb#sE9gaZxLSgr|>ASIDFNac7q%Fk346yN&B`xOuLT-vg zl{*^mqMj7ND48B|Yz!5B*y;)vFjdS@ev99{q{aHVd=z47o)0&kC!&yER4E7y#*q2%kQ9XikGDrnJ`7G zeWwJwh&M6I;ixUArE^rGuB&0MPcnSw?d$f*pBB^oK5%WgNPHoz1GWVY9iakaw_1(i za=c**B^Yy3RI6(sIbmmyLb(Nl&&U{9=gU_7+A<4;BDgQW|6sXV2HKG1F@PaSS=62P zG&sgeF9;?{;uD$-EWjaGp|zw$cHN6*>5-zq=SFfulYn@GfB!nZ8Vl4K${f_KQ{#bs z1WU~1t}S)GR~16>|3Z?;zIK)8MfN!+c1bL>t$Lx2{}#fE@l>_R4^!bAyO@tsaeQLh zJ62}(?)o3=iOE=^YQ`OR0hcz*>#`oE#Ekd}94&e4vL>sC1rVDDp>Rh0H$1S@5+2|) z*R|FZZ=v6W6>7N^$_t$B21j#lu7x%LZn|H}XSL#bmhrH#SIz8fM%tExLM&mlQN@PQ z-0$N-m#^4q4UaxkF*2J07dNZz7Sj#@X4u&ur^XwkKO;;bAd>-yy6$*AkV)wRs)KHyJ z7$_(H>l*raZ?c~?y9_uM3;P-r?eg#-v&$pC=pDms)@u{bb}uunC#*xW=ftw7rh0ri zn3LdGWX*z@uDr^O?Nq;gJ!)=N!<@Nl1Cz;O|$qK5jo21h%u2h+2a$&Tp!u4 zw8xms?J*u=p^4OpsonV9D#S!FJgF}0H?&6tAPF+@P5dt1Y$oMnb|f(dk)7ltuNU_99qWjlV#LUhU`axFr*e= zG#eeA&&+P@U_T;*nBNc_*0V`5w>fjk8>#1R_Js23@5xVsdtddbul_VY`AKrQ)hCWOq^{@e zPaSA+J8M6C2#zonx+?H+v^_8{0RzGugSOV11345w&RVYkb9M2u>I%LZsh8EKGF|)| z$>N3Ne^j5a6lnn88a}Dwm+`|cewAJPcm-HM{|DNs{_j(nkY0V!Un0Q9Ph!W*btREu zdlJih5z_(j2#>Cte9?2*Y^_9Ain^Bo=0n-y^X%sxNuNdP4L{BB81LR%W=KY55BA1# z&oNxy>NnrUvhl}qdNos_^VEa{I z2+&+F7bI;oP6Ca?aljg9QJ$uR-;+S%1@%TzqT*PQs0f#Hoy_&$3`K>x;}cZyMbAc` z1tIX6F=CSSyMiPZyS(OBU-Tjx-bDBKqWR}&ME3YSn92>^YaJz>A~{4 zP&7P=E~$kmm|Q=H{W14Uypj7AIrfAx4~n_^Xe>G>u|O>c3OKPEJ;}-i1z+@dn--jy ze@tzbM&Y@xiWZH2&uU&ag2G?bo1u*f_hzRv6qv-5*xBr3I}Qpn!;TL_MTm47g+@?d zHh{%HTYJg+J@f7qEiOt!#An8)FvhGYrwKmlxA!$YSXY_#DDszpQ`CJD2%u*4;S*>m ze@i>b^U$U67RCkqd&DHh#(srLH&FS63nkvj19(CjvJ_IG6uqFGF?}(+7(GflYozv8 zq>wsK50N!iGxkgALnLjw{O-iWbV&>nQ@v4xBsVcg?CC3A?(G%72s+YUj+o-xjxBpyw4kWAam6dss*+tW5RV{AOaj(5XFZScqom9sH+ zwbOWfepiYfXZxb(GhP#@G+;92eN}f1V|Fup-t}k#qV9*>iYD**JYRqdNy$X@hM$

W%7|!X!n4l%#UnL=x=^|+F07c5|4d09yh1(=$phtQ{%f7Lsitkjw8iT`|6$Y4t>-ZT9*MYbML6j^#liX!K0a;&kIoFcRLmq(z8 z`#OyUU1BdWB_lKzvc!}nD8ek3@gWp}yT8E+bg*c78h0<#IQ&ZEa8WuAbcaS`h2;T_ zBjDiN(m63Y61}osy-}khkielw3I}_cJG@r{x>q*rSG0KL_7p7+nJ+J%e8gUX!4J{M zyr&twOcn#&K?sPs-l(syF>J zE6-~7m#H@a^=4RRWmkKZpZKqYLjEt{G4W4a6lwfJvwtKad$S*(u{SpRf#x@5jcoP@ zGApU6P`$~;SaUkPeN2wqkzJu@UdJw$yYWR2~PBN{z_XX^12_?MUkOMSrdj{E-?f*qV5P4L*@u z2O~1-+Q}Y3v%M{vd^I1D2*6XS`Z^Cxm+XG=#6}q zqzbZu!s?P($G-+0Yl3>7$*k6uU#ly>IIVJ9W?NwmOx3Km7SS`Q=xu-Xr%~r89TQZs zWu=}Us5fa;36{TuRInD}*i`vX$Wa?Es!OBFuEVIp>5)y9<=?7t^RKZfs+^ak$_ncr zU6ND*H=8OTHb^4|IRr71o&z*uNveFxSoz$>3ab1k=y>Nasswc9ebOpttjL~gh1Hvy z87nrcqf3Y*CGs>~vMNVW1yNeMgrwvx^=9Z&E()qmpFLKO+AB*L_d*l}ofs-&F06a& z#XX8Bb8bozg`u)6f!c3QND`&ZQ2B+%D{ZKpsqsn@#TFxfbf^^T%Jb4HPm1?lQ#Btt zR9-sn(4q1#_2z#&R5(7csq(~bMU{tcOi?8@RMuDzbWT#G%}_Z-BbGK)I%&j`R5_NR zlCLXomsWXlsAN*}QHIJ>KRa}&{9e8JUk;TNQL4XDM7gy*MU>P~S!0dulq5=bwjH1{{p|Zx>XdHE@Owg65 zag|$i<^Mabl47;L(s*5zh8Nl$djVQ*c|a}2?L^SsEov_3miCG$2)M%SM9y8W-XQ17 zp*XD0RxPD*m3LFDc8_LhAAhBYvSdtxC{Z<1V6;n*x9f$qUL+Ewh?Sm_8>vJD%F=TE zLj=kKRNE{zoU*Xk;OjV+_3x0QF0t5<4fZ_I5Rs47*PmhEz=++H*G9BFVm#0Ja%hNL zRwfti%6tC9DRx7jB8R;pzl@>p7ZVm3)6Pzdo0xoIZlxJR5#T-)%@miA!Dp_zm#Ge6Lgu>U=h1oA{m zpUx5|%(L2cm4{(GU<*`-C*pu;XI(yB+^eik+*11`Pn`JG^*#fG$H%$YCqtGiO4@;2 zogMkFcaf^lt+RF}Nsr25{m?^wZpV9#|CbdiRA-l{^M0lg;kNtktv8)_^1Jcpps?-Q z1mIE)*eU9~jE|2OFDY7LItTGn9mTn70Ho=iG_Ei61g@umtD=oQbQ@S`#d>vC7Zv(g zEH3Ket=~B32P5*Vn`?8};g|fKVa)vrF7032!DpOf8IR1wIU$}5u5l=%`)ey7X(7vZ z#v?dKw(Ab*x*w-V=rmB*{pX@X>+VF|+zX@vwm`HkUjaH#*6f*Dc%v0$NTqS;_MivK?t_`E5{m!){=NML)dt!w=p!Qe82i3f|2_nnPB-oDJLeryV>bpwUIH=ac|I&d-( za|ij!jk2)$y&lpM7xw}@K680-ng>2ttgOk8c%q@sZ@hdi{ z9BoQtFm+HZiRzY=mt2t{EEVhT1)TJ9#kibjoPmfVswa74)7x*#sbv!v(%AIj2C!b{ z(k{`MJGO#_VqL+=L2MhJl1wI!jxeRLhFpb5D&;5tZ$bPGeH_0;zQ$YwvCh~0;G^3$ zf9fhsuiUk`wGY_fpHhx-sd1t3M!5C!yvH|(xtF6g5D+tsa@QhWayF|f7gWqO3M;97 zi}C~hcPWHxaMEs^@8K#{{enImDAMSv8wKa8o?LRqfskogPhBbaic{);ibLwi@pym} zkcU3T;acP%PPD$0!DH@cISSGzI0)jF(^>q#MI2WZh_|3Gf}V{Na?GqhsPoT_=;}yM5=I()}*K@Z?93!rO zx{go2o69?2PE%6%@wQ8h_~Zak{;^(Goks)(`lj!>*cNR7hj~KnsG3REzeb4HFm=kv z(CMFeeFdb5lvW-T^Q~E{e<2ITX*{rC{FVpme++AWM(FQI(pi3;^N#b*me490R>ob&C?@eb)4%O?)1ZstirXqzz6r$RIZW6>a`vyw3HqykFbGx7|YxD4E#wCaP1 z;_W+m2~XKUV)&f%uJ0o!r9@LJU>xCoa$unxFDIg_k@lxl;>DFn0ImDR3ALvGjyKKv z61-9UFb{gIt)zlPG_4sFuMK!$_dsM=k4;k1w1xu2sc8k&6bqKLh*~9I-mD^OmG%?_ zO9vH+gGC&_0H}>|?4VjYpq2?=y*k@(-i;I1Nd;D3l@co4R7+DkOYLga)P~l@HD)!p zm7!W0^;({M)rsF;MJFnWqSq~n5%_8H-HE(QAAwEip;SBN-m_FvJx$T`WpaS06f8@d zP>-~b9>}n!z1lg$`gn_C2i0eAUahYZOXJ(v+g#p*tHg73xz6i%AipMV@-1GZ+TVc% zoZ1I-o0zCH4_xIwT1mO-B^9+PX{9bHH@&1^P!dhq-d)J1J0<4KA{#f#>VfAzFt}0~ ze!Op*aMW7=Mg9c-)yp7h3jcL76ioshf%noY-PqsCcLos~BWASt(U-XqDg8{%#OV<0 zXl)Cn*RrxrE%j-&jHVV0X!!1Nt|~^fug*MrnHlM2zSE}6hO{z&Mw!0oVgc}Z9xODf zd%-g!rJbe_Wq0zRqx9-?XFwJA)`w)kS6f2;Sm~%U(+sKb`fM9g-6z{bAjGiVm^FtV z7+b2)g-^Mj+*-%sk-qe>4au3Riq9dY3Z)$OMM zV0U}Syt{@z?@Q^(*KTyE%l)1&tDeTfPSC)rMx=zJRJ7&vWJR%R<&8f%e62JhE*q|h zC;+JO*X-*<*DPl7jFhgb`Y}3Am*U-z0RtVIG#wjy9+8f}U}q^aMqN<2E=4tQs->yc zpJrh2f0UM-o@$BR1oOU?VRL+e)dA!=l=pjDsyM3tF=~8PkVcL7sW>$mn$oE8@)caK zFJG(x%AND}!uve?jOs^N9V4ZS@EUgXffbb++||H9kbRmUf9`Qaf)udj)&5X%AYOG- ziXz$2fp*M;R+_6F#+3S`+F{e8&O4V}494r{5wW|#+H*M^0cCq+84hChR=r}=C9+s% zb%rrhoG>1R(DkRKh~)gk)^v_HR~l5;mgAY!#DaFG0LJD>@oWt$zv;soBb?DX>p@#C zS3Il@Z@ouqau1s<#B%nb04zLD><+PFi|4DFWVp1g@PPugJNUHY33NsEIZDDl6*H?k zb=^SVv0Tk2m7kHtGbAx)WvK;X?~quRr+G&Hm@|*=#@QS)-+uPU8;e)TKHsbl8sT?1 zkU*Tncr9q|2^ryofubcC`v)DH!&qfHmIydn<&Q!|b)i_ln3Tuk-pJFlrPe^KizN?`^n$MIq)oyxc8p^~Wl+GOM@v4d1uM^hYUHqv&z|9GJ-`>hz)Gy`J|U`Wb4x zLf%$6{O9g!c7AjnLP_PtY7=;P_dk@M8feubu2E%wdWpjszT* zD1eNxTPfNqo$tzMJX-O+k6!#3U3`-&e&tZ6O1T6ntDeuO2$fIn+Y(fvq!vJ{$YQCG zMbVe7F279Q3;~**?NrOc+BLM2n4;D7d`TPM(K&ha0rK3l-4g92y5rmw*9n>q5Fjc6 zE)FgRiKw$=kI0sDe4uA6a1Q2)md?1Am(iFMhJo89|8%iaU7lH47KkjCL6K2)9=~J> z$f)WqQCN_?17fCwiY(+<+`xN@xoBg96wV9l(@Rc;WiIo1o-U)w#;lImUB;gi%IaKY z{7f!Ci^YeD-VDp&ZPP>YB#2pGd*OqWX(jPGjsnKiz zV_N{6K1m6HwLlzA0Gzr20q~>sS^$)Ya;d&dYawTvCntIjCe?A1Fsb~{P7?um&Y1MJ zwHqe1F$dD0w#)AYCw4^*_;SgI^}RBTm!0cLytO;?Y8&v<^s;*?k0Qj@ZqN4TU<~zg z{(pGm&)MUhdT@yMsw<4@ydFZ^g$)o1Bjj;vFqPg))d(vQV2`pm3{N4PTpTI{xqx{e zS3D~Ukje|K&LH<|=KzYi(D~SXB8qK-Nj5$UD}OYU5Wau-RcEwua#xVbWpl3dmxS!W zr9>{BKx!*HbCpJv%g5t*-A2(W8`;ShqEcWh$n9YEu&720`9CffRcAp^_OM~k8Y42W zskK!(Xp7>ngg4`N$Isyvchnm{LDP`yeG78SOc2!toAfEeWqR}uP(eFm=5AT>-9Q-!^os!>G+j=JxeD5KC_d}?z2$5{m> zTwI_QvD4bi#t6H~q^QRT8$`88dt+qEY1Oro@VoZ~w%pn8Yhe)fZovI8Ie~2g7W90N z;0xngr+0TBo;u+YIPzYUH9HFQ&IC{8U|d#UV6! z3)pzY7m5a5RR(uUP-wu0BE$No*``6q@A_oK&ju_~+H#rbD<16~S9x}vs0PkQDo?TG zSxg@9E3NSy03xLuf3C!pZ!879P(yE5&;0;jm<5EV|mKOgN4 z05jsKf&;Dw@Cxsj_%1udL5jJvxF*$6HUa6c+d;SOb5H^M<1QKTsDWpAf_&vXqb2O94LQQuICf{_kWtwUC84ZYcuvat4SkU{o4Jqa z{<`tI8c#m@x5S05$Y{K7rmtbTqD01Mm#JJYdxRTaK~D{C4bK6(xTdjImPTXxU@UIz zg}d^8rgYG)dgcjk1$h_s0z0ewcj;28zPy$q3>3M6EU5J@cQcSRGfjkf8NZ^7 z46KV)$!bDk+sH7iAcNoRYhAvxOPhu3UpNyUBhNz0^eP;FpFR4`$0qSSX7PilJSCpN+~*&$ag_c%Y-5F`JrvaHKZsQMVi4$1|A{9I4_DU6$N82{@*I@ z$O}TAE#tokdDcwmc(IxFsB$B>se5|wYo|t4AitZz5>*zvjXNH>8AD)op z7@GDY$t$#P?!`oYhzeOd;-#`Ml)Ek;f>5mPIVy$kZbmjPYZE7C2+HEq{nL;U+K%{- zr9R!USi~7f$~==_V(1hwLVHzkqEFPVo}=ub27y>Y=Ym_-#40Re6#X`uI~Wg+!L20$ zO8g=^^6tS&1bXeu>eQc=sf_>J=$tf6bP(2Ae!Y`(d=m0Z%&3|fKVK$g%r&vI8q>S| zGN#X`6l>`2&WUYne7FSCiMfVpAm^YYP%nT`m&i^(ek#i=Kt&oTF9qZTC?&KKUfxZ&$&}AaKB1*lcXh-kceP!zCACzZrvIa$G?zxdW##eKW@ zeFP%{i|=w37F7xhPAxO615KSX;vM*Ul&+3YQlhJs#ta4HNHW437O#`U)~}UcjDD?j z@*Sc(K)RLi+tT$>@BB7x8lc*wq7p{k7Xi(>8FD8lK^k?p{~$+mm%=R&-Nt^Y&_7S3 z|DjKMyPKdtK+q5Hb-?My^mm9+L?Z)hWT)<4ub@OO)QVW{#|g8ues-lkBKe*#DMZ^~ z`4sgWvC%Nh3}#BuY^QcsYaSq8bm=3vOQVA+@%qq4Uqx}U=Tofq5}=v+S9M7?Iz5Wc zmn||VcG}cygVafBNI7qOSIOz6ltRgcl$_jy94@DK$mt528D9t~r=OpT6x=mk`}uiX zY1VJclTLLVN6Ap{j~5G#Q`ECI3{U8(t#=f})HDdTV;RzaH<(#yN({-a%oSR1FY?{D5NSn&e zfA0|G=nHPq1wMC+tqVNji2SchQMpV}c|4$u>!rCzq;i-2{{t$QQ*K)--!$nbseEoK zQ_SgqTT%JcPKwI1x%&|+TOEYTYVC@-I+7DAzf`8F{Ly8a%2kS939i;=Ue!K`b^`9 zw4Tpy4k2nDV`~xM$gVQ5IX2g4)aV{*tG(eS{2ZG~20RDlhbyp}bCOLKfHUcH&Z z^49|>b>&lvF?=bY^*p*e%VQyz7zz*UF_yfYX$)V_>z+#m8W)<}Ji)an4&nF9)0g;w z-z!gSvI@WA$C8pw0JbCNm+igA@Lhgm_;>RC2l35$&}Uq^56C`s1V#qCqws+jk4sWB z=KNco8ljVqS0gm{$4BTOXV;@~((<%ItGm%Ltk1*2K?cig`X{keb)U#mwO9Z$D^G&W zcm0`?1lE-bn?DVB>l^E+OHcc>N}TZ(3iBl{g?R--{72^2%q&@YZn{Z^_K2g=1yrK$ zbAdrU5Y?sk=%`Ac^y74SQ*CmN$eYTg(8RIkdAd+TqdeuuQQqVbcAzFs%yn?NVh5`R zXm;>!SZMV5{LDo{;v-F&J=uwRk!;>1w=t&%t>|p()D8tgv64qFi;q*C)wfNhQcxRhVW)3Jp!*NE5HT8Bi(*F6SW`NAkl{gM z$2v*2BS8Xw84GrYiZ%w#Eu2osF++2x=t0fc>ez%@}h1~h*5kth!7=kVL# zxAkpeIS^?z>h4TdIY;;}#|XD)Ws;e5gfA<*NBw0U=VycU0fMBd1BB0cs%m%cmZJzq zE88cA5dHeVQX#Q>I3y0l7S2->T*f8?$lF(j4yOp5^7g|8Dd|qhZr@%a(w+D^I!;6ENP`e|Z*2g=m$NVF5KN|K^HNGa zNpLE6-M>Xlij?c^t%4TDMxwn(r&q=o%GQ=n3$^CGTQxAUO379qVB_Fm=&VSQ8L!7j$5a3PhW$2qtS(3xn zxV($TMV4EidCP38m3w;ef63HH?yuU^^-pppcwY5LA--OzflMVu7Ll$x@G zD9TXF)YQ_w$Hc4<5OW0wg7f)>ra?L!D#|)3q*X7UmW^4|-IeNa7D=yFZ;;9Syx^2- zq1On#hit#f0e#9hc(wZ}bIv+xT5OJp$pNBC+oWS%zV`N)T5NLIbTBUiL2&_j*+{03 zV3J`Scjt*2)3+GYXYdep{vIY6Sv(hX7}?_MO2xnp#Rg~jV?#2ruf36jCTWvD)}_5! zhnew(-k7)b@x86)eoT?Q=KJ2g9}SM(csh5!KCR3a-B&5l5H`201+9Pir$PLC2%VR6 z_gx~hWc|&vw(9k^q`)%@3aAAE&q5)ZF>4#Do*x;Dj%yQRF-9X&vfQC#@el3PSPal^ z{5p(QW6_b7HWoP%w#VX)U#YQphsu#Q7Kf3SvDjcu$P)*1YLF$h4ugSayp9CM^jg+1 zK+=!4*6mNKbVE^m9>G1+STl-F92YM&X59f;ycqSfD7UUe7c}uWara?7`U+IoyV>j5 z;EUbZsWm>IN3V*G5{eC_d#)4)=t&o(i%A%_V9^O@FsIJPQZ_ku& z3buIh;3fT3o5fVXVaF2brjGM`o=>XYj9)?d6We=nrSs7Gy_+5D{jnQQXl-1fIN_hb zoO3Q`-Qr$2$mE)#Z|D%Z?`7vJ@}jn(kchGcoQyrgV<-oATif%DmtB8SPfG}roXZ*6 zqw1*^M^o9MoTVJDJ)~Z&2&3Yj{(>|v=DMc!bYT>Me!|3+wzuRHIUh_2LWlPID;cWa z>t%$yms~@?>-k_hlz;XaFDgy%;|eORuN#0D|5D@Dp(!ucRljslRsDUjRIM~HuWdyG zvy4!_aQZbDU@XXpmC(3ERz=N^I$N#f=2q77Z_vxhybl+B6C$2W5%DI!37WW^&vlK- zl;~<#WwOZM$wGP^lJ;HB>%hn#8|r`;+*R^h9+ahl_(3N2++tbJ<@XNxvkAx3x9=D4 z$Ub95%M85X55uW3q1GN8V-!l9HGc(vVpFJ{bk1y@KKY_fpROUbtr=`#LIM!0DC+j6 zspsz3SvhTiAy&Gq9n;2aIFbZ-HNDe@?O?DWxXNOU;1S@bm<^%>Ewt|V{zM)m`cvJx zhpfmqT--SWmALx&pR|vPY5Dn>Q?CZyAn1+y_rQC7B=CgN{ff^!gqoGS;zsh><~mkU z6z*Zx_wt%Rteeug;~Td>QHCUJJPuINwwDQ;*8EwiimR>{D_2pp+e_}cUb5t(8t?Z) z$kRGuh+3z742Kal6TpJj+|0A^1|??aIiMB!o};xa zUU<#7#oT;57eET%!3z#v(AWEo6{}=g-}NCAxMB$i5!4C0LI&j4kolh9$nEwP^ZTwP z@@FMs$u?P=_MIy8{@{v0q%Lc0(5R{*>%om;SMqLYupDoJ`?$7+m*@ip zKva!-tc8l)TLfs!S7QenRl^@{89Rs%vs&b7)Ke`1&w=qXgC<_T_tDpH9Q)V0BnK{zGlM z|KFjp+ZSd8JW5hBrupHl5LR`h=4$rfAH#692mi!Z5`(|%m3r_`9+z6@+YJ2u`(@yN zIzkQn8PGov%YTfR;D-q) zcj7Q3_rWoYDq*a-He=1T8EdZ1SaTI)jgQ5hcyUeq2Qp&lAAg+&%i#EmG&wHSD3Rfk z93?V57$pprWimG2*29DWQ^TBF!4OennqX~nYVm`6%{J!N3c=W!09Yn%j3fTLh8{4kRJ*<$LB%aB}t=ZW?zP*)>sdE&NVP_A@@GhT!1 zun%nVzAB|zZ~a{C>|Fb3e#qSIRaIE~KY)}`e?h=pX4@jg@7f~P3>m*rwhz~@Q8L%( z-zi*k6|Tzmp_YuZ;{*8|DgB6BQfM^_HSFseHc!D8NX>H;?9ceD7t1FVUJY{CtuBuc zgLfZ_${H~vn93jDRIwe(mZSeK!>pR8*l@))oKsI#4h&`ajI?A;#*EA^hcYRrMHH!G zlQ2ycMltAQYb1i=G9z;TyILdzRKPBdW=%^guqpm4z9U6661f*q;?sL)H2%?coN*-o z8B@Q^X4zEtNs(Z}MbbrKT$sDw{x6nbi$t+dT!Xl!qCSwS%^>OX!d^(97M@3{R63-w zb^5uwhBRP@WZ||60f8`kwV-I z8r7GmqU!>$^G&(A4QR*v%r!Q=AG|I1rE26H|4ok7m3P^&F=R=g`_e$|*94dgPr|+S zMe61TFV6SAA*){ipSXd9Gk(|OstjCc_v}EO>=2czgHqlObU(-rU;yBGft-C>#b}m( z^RO^y=T{^$TtlY&LwRF5Gsqq?opJqioO*KY;fbO@Qc3LD8dLD@io){6Vw zK=+cll5y$^$}FRM#`EN5D)6ngA92~ zHng^$b`a;kzMK`_sWqbg58ztP>a!6!TJq*J z>RiMo9+V&C{+%WT0uG@UOHZE)Xtd-)VBle8)?YAHq`b>1PuU)%HWH7VE0W5$tcAIu zq8+k2hKd>~u`pD$C+a$j3_9e4EGp9&k#*G~p2)~B=e)!(GmO=Nzo3y&CyV6^&hfzU zNe4Iea13WGIDjrgj8FRFF)&ngAQ2%m7z@4CVm`!d zXZgbc$J#&lQoK`-SFBS;4J(4wknto*$bNY`K(_I%+y}7Rx6O&>jUUj)@ z8aNXo^X5zyB6GkjV|uYb(TG%p%$Z1_gpEQ-z`}NXfgFi+(mKJI!kR~kkZHF`34>v* zF;JvDr>YuQ$ZZXYkXdLImZ%7smvO@sSy2Q)GG|&-|0RT(*xPPhuw4AbzZZ0TV7EHz zyr`~^3Xyp}sS1&Kd|QG{Ee(cKF*5ru=_4^R_tR}!zf~ZJq#HymQ0DZR8(L#E078+42T+S3I*vQh8UH(G}v6ge9@2u$qY`i z3IOJs2bX;M8?!DGJK%rQDCXAZr%Ef_pOV-ihx}`m>4_Ri<~BW^KmHC%P=iflTvE4Z z)Jssz3_;QK7Nm%&;(f7CcwS02FDtYg5Ox3kQiy9`nbiD7RoW5p{^qhsXt~ zveU4)tQ#=)RJKTf7a-_zgP1!dvqqu7v8SD$jEqZEq7vmS*L5msq_pdD><=XPnZbaT z;Ab+h8Da>UYPaOtOKQxLyRg8OKBV(VMopW<|=%sp?a0&h$KQQ)<@z$RTFw?d!+x8v%7l`Fi_ zFxF`!`da_ILC4E1xfR2Fk+A#R#18~%Zd5yWFNIz5lgFK;8%f_KeV24O>2jsu{Vi6p z!fxe;2&}e@q%Sre74XD@aIE7p#I#`q z;6QyLS2%9U*2)I|IE=#zVgF;e@|~+xcXDIn5gP3;-lc3X@X^mLw1@Z6v`}<(Up(|b zil8!vpaCXU&m+wd0YdIc?95?|ZwZlE7KrtWva-y;5&yTDRl{Tp){#9|;THLoh244K zCZ66WZ6Mu7ic7IV!jcu%K$_88c>W7qjdJ*J7uzHsg~et8`oAkS z*t%Ro#CyIlrd`Z}9UT!MhGrjPXg-)rfB?_t3FEa_xrv2h?2QYMVj`E#$gH}C$814^ z|AON-{#){y;F(Ix+;N7WCaq+GWzCY-NfWPohgS{!N5oW_MI)fwElrl9YNDf=x3vLJ zc$_iqI`(FvD4{2rhBFwO>~Hz$x`UsjZad8%!81|tgb|o(S&5Xc-`|HgnrBd8E&o^2 z6{D8QpLe9F?-)8#j+1d~9O8nGL zivxg?LlWy|;CPwqTGOV`0$u1ZyU=Y?Xn}R1E;OfYp(~}(*hpQdBvxmEQz~1j_>lH~ zaFXy5=SE2q+)I08uX7YIHv*>J-gll5*7OuhXR5Kw$OY>P^8Ke`)Xtq9EfAJ78xPQ_(v(gQvy-Q(b5ErLwBT=w1Rd_aPO$?!(iU!D(6VUJR0LLXWFxU6 z8sA8!aQF3ELX~h3DG61gK=^Z(Bt%rRq!8GEnSX&Kb zIagR-Mcq5^=hbB~R^Tf72KyD+bja?ZRTXgf?jf;1NNyTrm*9O}Zw|gbpUs7kA-P9z z_I#5L>wYlos9{UN4sMfdGSqJM@D0L!n95#_0PB@=t1{9GLYR%=-8k!P+1s?0`WFhS zNO4mn(Zc^vNd4pUj#1z!M<$qZG!QPY;p9hlSCA)Ux^AH;s1$%iwKfG6G4*E3CYpsu^z~_*ssUtT zxb&2~rt>_V3{@|k{q?sCNUSeq)6tfKB^d&p+&68W^wayMHNYGr5d+qy)grq&?|%b| zu?yoqB4dpCDoH@Qw`K^IQ=~QI4wrxq1=MFc7oEwCz@o=o_;2`=vP!GIAzu;Oxc6B0 zw%@=0Q+wNyKe@MEtjdtRZSg>AXWf%~DUUdsWhN zj7swFCQ*Caz`Dcxs2d+sebhYhr~Bv&V2-hmMp`9r%Rn#PNgj!U5e?U;~l;S(9%X66?`E82Qww>=N87E(kIvULM^0 z5qFn!gSB6_3&%n|(9x`)TpBdjhs`g-Mem?BAj38Xu{}eMx6#DhlY4Pp*6)~1oWLvz zd)^=4gn08%*5CB~=WXM^Y2>P9Jmh(MLKiLpw+Hyw8koS?Z;x-nXA1r*1D;QeY1hN9 zG1s`FCqi6#A0J7bU+tBHo_CFzB8!Eh`QKF*W(14g<;-qrw4^UEA{azVAC{hp_LP3& zQ%gv@Dh)-Q3k9Cwdx2>Fttu-g$;5%G2|Bp2?%FE^Dyqjb$*vx9qya_U-K7KZD#oeD zNVX|NM<0-<+5NFO7A36;I2wbwnXvHDBcx#Ug^pJ&5gG2aJ7vW<^$HzypbgyR%S{ zgA`CBfxbFO1e5hXe9^>0=Vf9X;PH=}po6M4us^HC6;T0F<)X~WT!^?j;0WhZ<{-23 z)hxNJ=XtQgn0A$PQq*}OwEStMRYmuon%HB0a$@&WWyr+-?Sx~Q*pq=`V&6w%PwX4y zjp>Y%FtIE3(;W5Ws!~bMn^lrOi9}88yWTl`Vt40bYGVH|{--DQH^3a@#2#afS|JnL zIhs5_P1vqy{1jow{Ul+xoGxVuVK?1k`7biWR-dQLjq>|`UOMc8% zqKe8NBuUKuPoRi6)&nKrJN&HO;hwrw)QWhY4Mj`V^UCu5%+2g`jv#|m8j_SBPNbdTfxH^*iy3=Gid5NnP+w zuVSAu?HbreV;36v!Cg>VM@}}Xd!MXGx9xU$w?dW&WBPMK&PCE#Q7WKoDv})CodYC6 zM=G#LuJqIreiAMiWv+Bo4IQ>Wpxu~wiyVd+p_yXcfy$Gl5pUCyxP9w!$J;qb`oJHw72IFk=}CYDVYOGoDBJ+zuk z*{UNcLsT&8DDxa_`h%=e=4R0s{6P%8{=kjHtdQIf4RLCmOMt3J26M%e(;S{2)iFtMKVJK}in%A@p;vq9?HoLR{#1BqS3Q+mJC?z6 zjuh~3FLl~6|EMvCN+jH$qm>F}YnO`qm-8Vt5{5+w{3G-qG5-RK5;6YTg#Kfe>6m}@ zhsOM?a}EL<`Nux*DnaZL5JT;C;6;R(sXJunD(?7dg65~G!U>aH7wFyuPZC9EgACf* z9r~09qm7khg@toI@{e1fZ*q@EuC<9hUgP-;M0L;;n7UN$bqO(O=6^s2wXqGDrI+zL zWaj@z%BXX`MIsEI5A)@XnZI6rcfO{dwx}o9GL_^%uM+p0Bw=$@j{>V7?DkL&KaQ{I z8?D62Pk-M36tC|sd5?+LEAm)f-ja2+WX?E2eXo6nmSQ9j{MQS_Ac;GtHL|zW{@4_a zzs{E9HTK7W*XazUI*`pCgtrvoze?_tP1k5CzdHx)uG{#fj@{^x^C_ARNk3Xk9K`M9 zbnPon*A7D0eK!lidu}6v;9rs0E9!^pgR@B`u1rb>>@kkWD zhxb24;aer|u~As)VEtz?^_RPzJxS#B(m#;|J!_4bVx-Q(cq65$oyoIOEcb~?a2XL( z(0!^TQEUybmr9OxzBd+tXwT>9XZZAI(%n&avr0-oS1F4Rdg;7hB_+3!ggxIG zGcT6T!J*LJdX9MH6vJ2`2R?*5*xn95$idoe?S{sBydge^uyZZ?j#U-~swIQ1lI~H&C=L=-@V2e&8l~ z)kHUMy-|j?2vyU07dF?iRGiGOplqy`UxM*+fJHHclHZI6_HGHVy>hTkb8UQ96b@^H zj+N|bD%O7;bnIn+CEC15M{IFeFiv3%f!=Wi4TW!0{X1(ju+E{>?&8OFmM zWB{@uV~y<}h>kA9^{T2V)@2&j(}D^s_Eg+9C^TZ-A}s8jIrn=w5F79a2MAL{(jt!a zC0UtOA*IE?8cJ`(BTH^pIhye%tkQTPrvyanP$vYd`CTuH^4)uk(cAcO-7Zww*U5px zMh(5(C~Tz6A;~hYlW%(lQ|6feO_{RGcVHj;85>+g27O8(#JV^Z>YN$7tkp9|h&Ew@ z1dZmXO(ZMFh>FPMX<%|~zJ{0*K#;u zk^Xdhb<|<$J!4wgL2S5;PJITrm15u7L#M8OI(2s=MS~T4##Rq*bBS}Q=esCP^P}_` z{q>@Z7lO=^uv%2*5gZd2PtC+HR4N5AKedKuAcHZ+qpsr^)7HX!)&BV9a=nccZ@2$L zEu$A`35p2HI3_d`l(f9ndCU8RV3Wsy6Y9}v7DV~lxSw(Rr5z#>fsuo683)` zg*j^EjNr48u8g?a3quwJu1f_=S6-8H(AQo-b$sYC6`H}wiF^Sdpjl(JWcY#jrJd?Do zFT{Y@+505!mj+trzn%eYk)L!H0=4s|1af1V<9r&nFzr&uDZd<^CUjCUfRVQTChlXfmdY zLJQGf4oe8Q&AGz*FEF7E*g?L<8)71;H}X`@I`LH1Q+5aJ?s6pVw>nYDCe(pM`Cdo= zCZl}Ue$F=FkigngD9&nH1PPJ?x@h$4s^x?HV{s7N>Z-d4Yv*6Hv+z364OD;0s6sp} zdKxq78sZj*a;+mtMURFuTpH)&?p^`q2lURRZOqfqfrwc(|b_#=c z-piL_yv+2h;s<0QNPK-f4#sc&ueJxkF1M z#rSM^C(L$4bo<>wN@Nxc7fwN^QxJ@GISKg%Lnw)d%B}_V&xl-G&cPs46&HO{i!lpj zIc6qn54tjcMYAxXFV%|lgAu=gtGg5|d4iBN<@iO#(x>|te9XROC=Qy zE7S$YHg!!4i#)0ksfN^{4bf(0nhoy$|Y%7woDpR(U9HaV0)3Hq^mC`MsXi&$- z`F&It;=OLm6tw~v^zi4@+Vk4Wg!juVuTi#*X35vjGbc=E2ANoZ;`*txembC@N?J%P z<3(8moVolKWwLJa(jzo^i8NU?GTG$fX5O7I=bUmpu2lvckJB#RU_vIh9occhL zG@BxOh>Y-g+db?^<{(~wh8LOWj)lZXDQhFbW)%yi$uUco5 zYwv&I6G+a=N}1HQTISA!es5bf=h{}zxwh4FuCjv0f#gc&ej5jp=m_JdW0{ZAH@+Q1 zeia-Z>9dB3fJ#*C!X+~NQvtT80Z;vSBE#1hk*~g$$nXzCJd~5lN!&N_&Ah{U8|~l0 ztjU-RH0csJmCSlVig-Lx#IAs6g%Nojk9pB<)68yDl}Nt=hm`YqMF|b8T7j5z8dsmN z5?sAfY~RBLp_p3E17atNvwm5LFdTuC{Uhwk;3h}`w>mNMSybIC!*nj;FZ$$XRWhQV zc9x9bSz#>-y7=P$4PO`p<)iyyq1sQt${(!ozB)`ARCIvaJ5oD_gn?M-WE}gUSjD2B zctm@(*oYfHj{JTh(0Gcob~KAEkE@45)&1FYF+i81tdsx2^{xwqQHf%7t5%HeRHBdh z2?Gf^Nn3y;1?7l{R3YG1l_&I8FrK49ma|Yv2>gWYu>!Rlm@4xf;ApdBnv=>S2nak-7Zodm@{J$E>Y-wscr=maL-|1&kjq+eu+ZU0Dy*#9qU&{k^xpRGa5RE}d? zgJu8=*&kO)$u#}+tbY2vN=oODSo8nM`1+1JNorW_f5IML+w31D4T&Fh{HRlAn5;y2 zdff<}Vy@-isGCbmNNnrz4u7G*e{VoibC$o4CT5}+{n65a(cwl5*0nPSMnidO)j@v5 zg41;0%SB?-wVuCq&U47XGTu7K1e!m2E%CW)sfPj%yL=!v-5zp@P5194gW8FkR=FynSOz7EQ8MC0~sX?VJEdtEnW+}>BlyBN1W zB=aHarxax;s*T$>gAWVcK3U9d)BJj?nrn3NG3!`yQ{*jP-`YBRgo-9ixMQ|nxA!Or zo69+P7DuJTUaOJ?&^-`enffl2_106=$Dy^kox{*NJm9cAJu83CyGLE6xW2hV=EPAz zSUs=dZGnD!sk|LTffC%|%!{o>1eB`c1 z4ndK#y`#OOt{c4+)L!SicTo?(0p7r+HES0b)^(8nZG2y3Fa^*PfX0uH7*DXUz2v>U z2PTY!wcy758cLd?8@@?p20#KKPa)9`cEq^0LN+G~+ zXOjXwPbCXqBw>~8kJv#{rW5gH!4^y0Qn1ex&l7wbqmywusnE$JolMcm44uqYN%dS3 z*(U0j^L6r~P8R8;MkgzEvQ8)UDyeQDA-kntHtA%aPBJvs*(BCmnC(HIm7NlOb~e#r zM0q3r-kY6kS2GtYhc3DRS_KHrR##Idzls_pfFheo>9W4x%9!5dRY2A+|9YAfc$Ip& z*?xJ}lQPOscPxuf#f<+|u{M^zoGc=d>~O3zng7apfy)ajeA~b`gfI_JhMd2j{>KC@M<~plSCUY5 z4Mk9y&{3v<&{0)#DV6Bv|3br`tKpX&1^yJ^MNj{{;3NtXG2Fkl&oCTlqQfs8M@q|a zN%sSlt^~#?{18MNc+ZXKuRoyeA8A-u8L3f70MEiD^l~qnLJ9eu)z>ApIK*4YVFqVK zbMNmZRgSFPV~lL%$0#x6Z-S2S@!i}S!3kc;UR+CxH@qF~jp3i+3r}b(pv%1Gpl*_R z1wQfWu!!$d&!1ka{lpC5$EY~puI^LydlmyU7I*fLPLQrmc0%Kl1bxl|F|hANLet)% zX<%I`JRO=!o+M3QArIQ5hWqfc@)o>H?JCujBTt(U&DzLMN=D!Y*cSXBFL>H4W zMjzcuP=*_Z;lrUUXkIf$+7Adf{G~>&@)NCL9QuujR(HK zGr!El-IIEg>uZN=l<6Is0_U@D3$<%7I?e3RpdN;|TW56oeTQ}GVN|;sqtl-{)ToCW z+r4OX`g?~L)x+)W<{6!y>o89}RJNOKbb6`7Y#ss;t777x*}O#_;V8v)el$abhF^h> zEGqG)pG!-eD|j0)-EXO6wxAT>C|_c(GQ2dtCX}%{w{(KwT$Xe7lXueL*1-dvSmP}3 z-sQrBjOo8%YBf9mutH9gs&}3#_roq<*+*_-zs^H~^R2u$$@%&S2Ug7I^NupC-1U58 zkZt3M(X~}xGP(o-8C^%@eBZAS&e!WC#rgVCPa5YNt&5vRayaKJz+*bic~IAUKS?4^ zoZ_gbFJR=yTw{5!TRUc7Vk-QKcVKyy$~i~S1KB&iLZDkLOhq^({|l`b-b&=?t8?_x zIeO?E9&#jMrzK%KYS^D?*g_3!q{CjBgthPp3MQYCFe!U$*d4pl%IyVgR7JZ%(L3{B zJ>kGAHmJwFa$oNZBQ}>eI6ZxIwtT6U+5~Qzf|K$*?)eI?f;R#;PQExN)5lEBA13z7 zi0pG1)lr%)iV^;=;y=DbzTSdHp8U~jX|30+CD4$R?koB~#GMVCmDBe4PtBYfYMe84 z2n~}aMpMj{A!?XYXL2Uzq^L|xiOLOOR6|jTnW4wyB$vELxLxmb5fw2NO+qh(6qzWV zX_CB6CCvZ3)_%^JnO<&xpWp9)|MU6G+0Wj4?X}l_U3;&+_S)~+N@&o+3QH$MDV>({ zznX*GPHPLYS8*=AOcK;D;&ntb<`)N-wg?lS*1L`T_H8S_gWAdO(2QVJ?@ThsGE!eA zgF*h9_Q-R1b(H5!_%J26V@ku)7QMSK8h1?gGNF__nNax2ruAeC-bY ztV56NWfFTQvGxq5+pdu62zFmJE+dq^SW!SSc>Eo&F*x2)92vETfg?k304LGs5et5j;V#;$K$U|o|L)EesT$Np#9NuD;7Qp@rpw{`Ix z?7MRt^=EEx4x|4zTuY@_KU^#3OVUZeB+}+%w_h++CWeJo63L7Y+XOi-AHmZuV|Yq}Yx1vngO zXg*K5z>!j0kRWPZA$(}}7-0hE!+#c&CO=}GZ}`sz_bdPTg6RLmf8Hei|DOL$1G<6# zOwp|O$A3P$PY4KH3{ahS^i_@d&%r9MO0T^2zsP@*Zc+YIOrBNVbyvFlrzAtUOsAId zIre!TpcNrP@7@}5WFq1oH)6+G8j&Iqw7JK*(L|INZ~|NBJ-YJ1YxcDc-664NzvDh# zvp=bU@ilwt-Bg}gvww&=lQ`!(1itC6*~iWhh-w(bEtm(T>m5TJGx1IM7&hZ2@IajF z>`LKWC5I~Kx}ZG;Ygn^CS)%Bc;q1-1F8>P7WqWTXlEbp4p7Y_2%Co+l#uGH-c>z}H z@JJ}vQJuO?ja~+7aTt9$^llzi-Kai&+nJ&L)OYQ{bz?^GZK+iZ#d6HnGlvjXV>jmW zA9ngB%c>rm+o{hQd`}sC-M|NinFe1E#U8j2eDQ~eFmef|o4|Avm~IL?Ex=?~oT}+k zuOOY}efwGpYE@&2Qpkgs<>Ro5mCeGrK!ogzc<3^<2(%$9HwH9@dvC)DS%KTtNiP=^ zRo+QB@+U^!^yR56-qW!w1Yg0{EcPvJ)r!n%g8;eRVr=FeBNiSZQyT=YX>RZv!Pl0jNC`6-l2 zOY1L{mUcz!sMXgWwN`|>@AgeQm08(zN!lYxZgT0E%f;p>ZFq{99yMKszR`o|M5A|o zt#PAQfE`fLz_9s=Us3ZMI}Rk%M8LJ7-dHi8|Mj8Ycjpq z@Pa~XL)3TPuX_5yE_fJrjo2d8j+QZb<0$922Sp}S$rQYnpoU{ZkrZ=6ksR*OGaNtS zq#`}}9OEeK;Lf2C;H1eMWP2Zy)Tj{<Q}=3F*i$*qOcK<=u2kt^5Q zsG?;8QZ;2QNTuKrYu++-W>w=5u?k22Aa^?so5cG_5w+gfiO*RMV>R_UMern!V;k!A zR>8a{xe^w>WpSlAwvy+}xl1WN!%!@bhV50sVMFoZhGNlabSd^rgf&ZMT_|pgBY#jV z(ikY-1c!s-e0)yZ1jQ=|-6zF@c~6QZ42o04v13A>^XD{qNucBHprOA{l{_kV$o^_T z3S*CCO8tcG!y@(t;jn$~yeML-QH6HfuxK1x195pQD|TmQrGjDGU~qoe?jMfYuVzX) zqjtY#VY_fn)E@7T+W82$us=|?J6W~2N=M2qndH);IG*Iv3vt>em-Z8-S5XR#WUrPR zBhhRwj-Vfvy`(Vv)1ZA&(26{iTwn*23#`y%d<;$rS;Y_Vab4?>HSQtq=`D%ch5o|s zUyfN_^OTY`DFd7)EH2!!RxX@~J}sKcRy|=~kqs&lZBeqt_cJ*b zCVh-)@~BuU9LWswlRKXmT3?_pky2ovfp$m8>d~seo{)Tw)gvjAw1H0^4)4(-lC*?0O{aQdOQQ8*2IEKGvnI!+aGZxFu3(n+P`Lr%!MfV(^SmazYY-FOr-P z1>hTyoR9_JD^5-b1MrPVPDlgrjZRL81MrPYZYmFW0B$|@23?PRFkaSUeIQHa0o8}o zgJP+5ob;O2RlBXa9xLwvU##;keC@!is|8;*UR`yL>FTOL1LLc!Bc@VgW_5+->%{76 z&fnv_$_d;l5Y>=!tsFYX0+qxu;a`D|o`1On9%yy75e|U7@E~1Xy~Q38gmH;zfkAgA z&fcr5luzRl(dH)e3k>w{81W?YT{s8Ke1v8`BSkYmj?5Den!F{+k@e$5twqiokE)bm z4qj8^&u)<#AD29*zBYsMKb(lz_+6Ukl*&5qumvh!d8UIb(_}R^5fJKT0uIcu4Kox} zUb_KlgklsE<6?|{YC(!K%0wO^19UD*APFpAD)>pY@gRQ?JvwXaFv*&Q!Qb&cseccYU~ z=e_0C1NWV`zN83=mHGBNwC^0Gf$_exz9P|gx`H>pG9NcG(RV(#5`70!sOoa!r0?L9 zz9WGL>N~SvmA><73vIrUm^*9KcMdY>PQux{?|ksFuFN-&Ad=TAep3Q=<1`j6E%o$u zmOP^EzKN&>Ev1TIc1&&g;O!*+*d$%mC@B%1rD{f`-YGZ9=Sy-4cgDKOdrQ+;D2t@d zHW&_u6iWXXK1%-xPS;ASA`CmRDkA(Mc+C)|hMU#TxO%dH-<&Kw_)3~*fy6{&FU$hF zT&awCUm4D-$Xe~#tJ@IrLO$Ju(}GD@iZbdTv6uvLt`?ksCu#L@!N74sk`+wBa0Zql zgCd~uIP=%I!!0J{aIYNff9w)!V?w30m11Czqwr^R;~m|5c_>!)IJt*PaTx_F0Vtf8 zR9{{ujFY0iupY@p|E*!n4U-Nuwf20up<2yqLaMbGv{J37V&j`? z-L6IHay+K4;?*iadsJ&JHa#0xt2C!`ne;@NLK{`C&FlPU$Ey4L!uu&_iAUlj$L&gdS0X z6~`mp4Y@2AW_VES;F7~U^PZ82Sn4z})M^mSximQjpiY(79%T)P>2 zxZvyhUeE5W{}C+vL~L)!{ayB5xnnPh@8RMDWf?8u?&9{feTxqNmEBbjl8LUiuP=A5 z;(NFgBvAHnL+$upqYXj(TDk9k4=33>(J~s+_I^54*g6-M=6ecI$qZJp(JUSyP}UI%`DM?xtgPSSBNVV zA#BzYj%kpul0D-ti`t_zOGFuS$CsQxM3Nl#38OPd(e?eI^~r_y#LOJ|j%?sziDGYi zt`*~^P7qfv`kx%NpU<2Jd89XqpU;%qmW1O4qV>s=Q_6vIN@sVAU(iz4R1wiROMGvgsunW={9+e1ira#o&JY9+zlDSr1W*USU^>3)g54te6** z&g}e47MYC{EA=J~5%MRM&nI;D`~OL&j6LVi^1bPl2$xPF5IU>>f6^(#-WjwHIwiuT zQwY>;bFeCu*~U{j;hma0SQDEK;F(4r?R29CCI(-JNJIy%EedrgDfq*J8;-7%>o~Wnq-kF^x$R*I_K2;<0rQt8TgM4 zyx9G9;boPTfKN`qzi8lJGVt^E1Ha}zqehZ<1ZTDI#_!R?@ar`cgvdihyqca)40tuk-VQ5ju`T9My+L!f9?O4F-P*Ew{=`H=c z0FL-r5)^eDpzh#~nGhs^eNbs3b+I>z)J}`{+7bFWB4o}><@GCnu7u+T#08-_Cxzm{ zB53ABRo8s9DU=LY3r$bEVmU$hy*TT0j`fl#>UshSF<1k>M3mM=UZU!<8_E zZ=7Y6hy_49y(MrgXQl(e0MNry7El+b@4WR!q+Vz}k|`2$m<&W`DABL$0&Bo6ak>xQ58Ve6k_)L$9@I~# z%~M-n%XLdSx8Hk8O?xo~?9hcd&iBuj8IBPyo&JS6eEYJ#pvMs+9eb|KKe%cpoU<}% zBUr0RzS~ZE=-~I{XAyZ8 z{U|@xa-HuHsaVzvCA?5%vqE6RZ$s8Ar$xoJQ9^RSzA3)sh-5Dl38_>*fFE%Ea21(; zC&0^P)iFMl^g}dzalKK*@O2V3x(_kgBNNuLLQAwL7Ln*v{Bkli^c`+J$b|Slfg8Y5 zv>2lRX|2+c*EQOPm5kowS;NoGTX4~I{nBxiO;=> z!${u%>=bN(a=EAP&mAp6S#k`PHZilUzHRF_?ZCMGv{}eE;3tVgHCbr*6D+26DAu38 ztRDnN7e6?dVQK|%L}oi*)@BLT#v^F)<`(Grb!h=mbEbif{MT3&x{~r0qs#4go4@D} z-yraJsUmSFhPq!{9R$Ud)Xg#i+~)Ud^Sf(CWy6wjBr~(X8kdPgd}5}*fK!I@Y&lMD zBF#ShT$N_urwyBsW?ymHe_xtCdzebI|GZSB*%SL1X?AUZIjxo;F41mMXI4K(L{$qB zb-U}L#3i!V)pVz>JriN6CQO%6aRX1od1Q@oD9X8%;5OS999$YEt`M z1?$;siEeV$j2XU@xgm8A?HS~tnn_}3i9BS|V~wigAN!uHQvy>pI!mHICz^CEOvJ+) zae_otnuzZW!e=$&IEi@5M659pa~mS2X-+4t)0`f!(wr7(v=VZyM!&FDqi;3QFKM(~ z^K$wTT_aE6&FhYLe;U%4NvZHecgFpCr{1O-zw1drAqJ>3WO}!2$9=AsQfSFjw zC@(1OIXNS{k8gd&idv~ZD3_ln!BaV%y10ZIyQ@EfLrlhCBko%kF-c#!?|k@Px)?R3 zUO5=wX&bR0Hrv_t#4`^*EVC<-<9Xawv@Uwu$pRyl2Pzjv4izn_{2oY2&f`Pj_qruy7Gn~Ju|yCG{xm@3YaS9r0Lr0)+7 zX`6q?B<^63L~h1{9R2C75YtKYs*Bf=%U}mD`VuVRxA8S}DPKi0dl#+ZCvA3H3ML;j z+VPQJUOx_dKO&iwaAdlyOeG>}ZH!n~k>l7b{&Spet9J|Ym0C#CC&g=waft(`{BxC? zl6A&Mmy3z_!yf6vvJiqAuuVLtfe5PQnoUwIN=RcWB6if{yx4$G32BPRPCulki|3Zz zv*;vfn(|8vR!G@+M3%R(ADP8{w%82WXf;tW^pGR(U^+5U_s_tPwkY&XXG!8pWNAik zIsJedO>6F4#1cyIN=?P#Vu5$Qk(GNz7Ptj`t_$vQE`CyG%fR!*yU<#VIRJ_V5029f z5HQY`lQa6@TK-q^&nB#xrPs&40fGBCO!J+*oJRPqz;}*3L_cI_K}G%Kbl-*PcMu2U zY(J^#e7tvg@&~@Mv)R8IHJQ2E=s87Zbud~TQjeQio zRyyp^75o$lNYQd4(zFHTBPJ!t6XCY+PENq3F#fz+IuvLt^>9R6tx4PV_*&Zb+izjd zv5IQilzve3D2AC?{Zz4ekQs<-lf#vs8BvSpA8)+D%oe#n8qAAmy+0Ym@zx_DyQZ{Y z5zXg-(3yY|YC-uXU&Uy*+H^7z;`URcwTCL@e*?dK{47iI=s`5LsN}DauPD8gi z&LXbW0r!ulaI#=co8d9tQyk|(12?8A+#dqBFvY-$<6LLp&Tk6$v%t;u8#r;CLV@EN zclSSi)85`i-=d;qLlD0XX4ZvW*As45hOxZfha^-V;Cv}zHgm&&H5yY9>#`CA=&ZDU zJV&=={XoTS^!Tn2vAU=bZU>G%Ap+cs^4&dR2^+(}n@#~?6BnV7b7OMUKHrb05|0L= zFLPtE1foHepC7njuWvT_HuSKZIE^QTj#g2Wxs^tkh8| z>>i^1b78!&==uyMlnu^6Phrw32`0KIobxzw@aZ|Nqs^0U&kKL`L-^Z)?!B<(f8U&QZ);#jRkh|bFAbegH%ROtMzely`gVI z=nXAmS;UI)Q@-U-_gFQ2Fv9*tSe^IvJhoTJXIKTe7l-3vMZ#nS4sJPwd0^M3Y zIY72n?IB4Og@(~CywI7}jt`Q0x?lPO4l!pVi!IXq%iRddsB zU3+(VLng_<@n6X1Cj(Gt_i$O7?_?Vwbx_GxyuF zR@M%Lk829DG)oVjy^(L_U3?V7JBoF#7tcyOF~N!lF{5%pUf*W=0w-e*BquaM1QE!9f+>eQwgLs7cjCA z-^mG{So4a-W|5bO=X5$WaxSOh8r~P3PfHpzU1GZ+rl%S_R6=zW-m-{9`32UBpjaTQ zPL5c8Fe;>|&XMk4m@wysO_zwZ%$R?Pc36SMm=rl>(UTX7JD?iK+BuIQy&gQU5EIe&5KwDqZsaE0v!A*DGDJpwd^V6Tj`g*7)R@Jz}YT z2p}GO&fQnK-T8Kzx@O1(p~Y!~*wdMll&UvTz2Hr~3pohUD*#T16?&k+W5W=&ZdkNFBgj1{)00 z3&5~y9~eISr|JxiI~QW^TE%2qzl4`rru{)Z={13Kl34z#DwUAkWK)m~a#10&uuNB! z;VjH(L)X1PX7hck9DOm@z?&z%-L1o(Do6L9i^|b+5X$ga{|UpxQsJ+>PFAJ!50Y3~ zSLMoth`4{hDo4YJ)R|vZjs&R_enC}^7QHH%k-=$TSut$es2pv?_EmzN3?Y4Eb`mYx zbL5@DT#mVyHxk@L492S#IW7l9Wij)K*U+#-t)0))rzQRWJOx ztmTK(^+tu*DB~V^h2Uu5pmbkorVZvv4~jEV*1cFr`;8=RVMaM->W{W!iMsFsfwT6{ zU!0cA(V_!WaXFQnU@X#%jj|Q{Uh&La#~y0{%0j$@*VmG+khgdvJHj`>!yXl>g_9 zCTm0^MpL%%dFh(I@~zD7WeffMVgVsYU*CfTJwlAdiTpxg1Mr^M+-g9LSjkMgjdXh- zpJS%cxaeh}z{-KR^Zqvh|=;`E3i_s z*@G#!fqr4_PwWeeTZyd=7Pk_o?*q$<-?bTrQRCmeD5F;kg3-e9q9s9ssFmV8V}SNs z({o8lYr8e=Z$v3I-PXC1;4u1mw>&|0^rTIvH&>W zoZVgWg3dUjSICT$3%O4EK$&r-d?SXdq@T-Q%|V}w!L)TXN7KZdl+`>fssFpi5v2{B zIYU_jB#a|Uko=(rD${IDONjn2QziY&IjRX&668|#fKWB$>;F1c(vh6+5F|M`KmKlfv3{|odKbLlCZV$R`ovTS#fuYA@92J{pBkfhzSn#9s1 zDgoGXzI2(1A0lrlVuUjkrjpvdh5r2@S+!M@@G4Re_W*Gm;*7+{D*ZAEM752Du(8C;m99?r`+@2MU|(#Zd^fCg>XChW6DxGV>9G{6>cMEn@nC3 z@6<1C#leFzM!A9VA@F58|MZp5=A(9qG5K1xTuL99^)#h_Ly%HGuWOjz-UgLm6cezR zoGk>>M#g1##X0f5B(l3l2hg4D)N=^5 z6}_!TC|uQ1IiA(b>W>8PJS2E4YYtRVeg|qqn7{0$>3L; z!MX{dI>u9o1FGfECfQzU`O_s()bgt?j-M4wBIvK36-f5ZYYanr?%9$$7MnuQ{>}>8 z3CLeME7)?9P-)Hzj!6)@hR}TxdZ4ocq0MP&$bDLH@Q@msUKM<*P<;ozT$HME3VF1Y zQ-d^a^dj~y`D*@a;e(L2QUxn2UMmlXIBnx_=X6L%G_NvA5Cl*Om)1VdI$ z*N^HKudb{!B!hP|+ali%S)p|t9*prDiGO4* z2MC9UtO4sdKp2Wdy?AYkUh^H~4|o5349W`wyTt|^-7MDAoFSYha~kicC}LhbN7&wt zw@JgpKZ@{-o8B$vlrx&Wmg~e;>w609{#+(*b5G5mN~*&(lhw`w8S1d^+x~?cu~rva z@AH@uEBBX%a1D4nZUKk(P>eX=JtW}fL0U9>cVVn`A30Qr#(Esi`3e$?7s zn7xV=G~^0o&smU?!&ySNkbM?q;p%XokUcp$Y+vu^dn}>7tsaHZq-7Gy=NN7iOQaZw z{s83xWY>8~KeL1|w}%^wKejtZxPHnikNu#zh=F%B;)dktQNlW*U$X8N<^Td}+6HY8 zhY1CCnA^*(kBT2AJlL7TgmEk^n2jvH8r?yDrN@6? zYwL$I^=KhX)>Yo6neNd-u~A1l^hupqb~C5C%(MDjWu8_x%=1KMpMq2BYAzL1HnG&r zPbl!W3ao7N6@Y6_VeuU2n&*?u<(jXb=W@-!6$FxeG3nqmOVmlN#5o|>EW1&-=Bpnl z*OUucjkxA_os6+LpD7F~dUPHxLDz-JwWE zX2IyPv>18qaV+n#{L;ZPaO6+63jAj|?~f5X8-hs}(GEi~ZdGME7!zl5Tj}Xp9L*J4 zpQ%;Sylp3%OGP&;`>LiDMhJW?aH$fag+)ui-_2!l@?F9~gcx-h#uPS;>8zw1|M|3) zGCJp_g{?fdGIok;h)lQ0(0F-M*6L>J{??X{@8p^cbotp*5dUV-~&`K%V zP#8a0LnB7jVv3TZ%;}=F#G4h<#xXchPFVAp)Ms7=X-#k1u~@tLFF0=N)8H*;Nv|oP zR!g#+KS~<6W<@a@Ak08y8Px!H`cjeTsoP{a^Zs!HbQxQqoUukLK7yUDm5LNyaqbD* z>Fa@z2BNTpj$&mpte+@`7y8ay=gK879;W)%xpM#&>yFNM@H?XR7Crpav1BEY%yX-StrN_GkaG!E{QY^^oj0DbT@6<#TiJIcFsZ{pI+56M7*2 zF0?r(2)QxuJi);$ff1}%MC`oB#S35d_@4$<&}wt6eO_`eE0W8#!QXX29gNYBQ+#*cMyB$L4r^N0myuZd zOII^y;zEW-_(DkR)CYWxVTV4hCb9(oc z{!x&{gmxi*`3qX-WQAEnlrP6qSarK-3d>)eH|H4Tmk;16v^6|zdCPMfvCEcCOm?(v zVzQ%U6O$b+o0#lq*~DZ=%O)l}TJCMKqq3{A%OlCU%6osh%PzYhuAr|c5gM`bem_+l zwJKV3n8d_V(`V|mddS-eMtXlp7-?QU9JeOTEaU(AumUwxAXT^>15lMt>{1gogAJpd zXyAT)OOPp}?E_p*J+c$uu_2FV;01%!0(Wpw@WSvdTc^@mVvjl>)ecDMOO7=5N=*&V z^f*0wN!L$(mk?wA;<=~HZg5qK)P01TM;!m1$$^KN!rB-N={R&3xke6qkZvdpTPJHc zsu1klifVD$LfsAeDlpdVxx@Qihfbazy~iEjBRuZ79s|c6L&o<$s^u+!eZdvW9`bx{2ft&XmK)$c!swzb6 zsZ@P%k?wv|fmomw@W#K=Jl0auHkTkt<2+4JtL^a@p{3uMvTs_b*pI}-o$zaXOyBDz zkh07Cikr31UGS&ZX|Asr1aoj2@6W3$PL+H;Q_gm}81nuBgxQ?8gBG!~aCvKr;l1d% zPM)5Tb3?qQRkK<$#Lh?pH29=ua=8R(IdUXGg%g7aqh2m~TPg2{56YuBiLBo~U>OdT zGAOpTpjja0q!wC(#0ci0smeRQy%N|jWDU!3a(D`is?{``-fBow{boFkf*k}{tL^9^ zpxJMLUvC8bh5}35357Hx_VuQVF_dww?A#Ur*4#r_$ojU<`}Ze1(^<>Q1XeS>wh^8i z5_muZ1pDzmp0r*C_rvnRZuVJ7wd$gqpVqKG}aH0J@>_@o*e z(6YX;s+q8~sMQ}sMuS-cT$AA(K3_*wOY)@JlO^kU(j=xkI_DH=OKpE6-cqMw7Die* z`DjSDQ*X`?W+p^(rt~(JB{KNW;(bEGtu)FO7Y_|0fJRVwZuIYAS-f%@E8XFNU2SF1 zr}q3;XHVpc#o9l4kA#$cVs|!^rAo;9&MIkb&y_)9_46;7Lbg0zCAnKAD5R%8wNNHC zOTt5T;BkB*>+Y%eV4BZu{IqDgZw#w&! z#Gj#_;*&sn=x>oUns_&1JB)0QFz{4ft(?| z^!moo2PJTe8yG$dcA`heW}PjaxXB^;*?`-D&#_xXgWWM-szC-6l`_La!3(RJOP!zr zoT4UKruwAcXcbd!ogS2Afh2Ia10=XmW=^JmBTCAO#MKSMvx^_6?{BjPKsqQ1&@=8yG<7l=H`xNisk-y0-+`#FidW|qutAqU z4$arfypRx}PeP=)|Jp3*{==9zgGqnXJPA5q#Y}!{zNZT2olVZBH|F!zv^P$g;r2!W za#rSRZ(Mbs+Z#1-LH7gn#zlbJfpaMoy)pUq#=TMYfP41F-&!~BjgQ=?y|Drud-ld* zB#v79=#BF_(;FA=*2UN(uf^xw#TfoVcd@sbF?t*=vrwP_=K$-PXHTIqY=uG!l7olb{(#}TpMySbg`cTbioDv&hKRf%K6-z1f7a?42&VWF=1cT&+;w7p1`r^C)WHagt8mmhA(8@G8G?VZs(W(6PC?h=c^++dEOQd5`0s-HBUDtl#k@Sw(%uq zI%4H87f9O3l|BqZTr?i(LkYa?x?yPF-$%5&(%{Vr?#Ttp35j&L2y@;`z?{#P)tK`x zXI3HSkwiCG3XeZ05w_;ZY6(Xd>vrB*nr$Pg!mKG8KSyi8di`m9P{C3N-Y4;PK{ z)%@}d#lI`bqxA1#EBA#H=!fE?SuXuTnnhMnY32TsKKc>`E2y+P{lnBFE2y-4{r%L# z3W}E~{P}pyN(uzCj+Zv~UP>la-r@YxGwSscZeKiMEAQQNfOEHiz2z(^Ga;} zbS>l>6n291jsx1+jGecdi9fT*$$Kzcrk1-pBigkCUGUT|wgMe-t-#IvR(VSgad*ZC z0aBLN>_mnCogJzj_@k47{}tB?e3vEg1#$S#0V&I?ArSl@DEx;m{JRRjQsDz}_-7RU zJp=!U!q0T!XDIwj3coqkrDsB8_|Xb~wF^J85&YaZe4)bs+u*-Q;JtYQ&(@Run3z&LzMg%29|-{kE{@0V1T;Qs{I@}8jZ9pmty0aBKC zqJdwo@GrRVvlZT_@V~Zp%lnkVzeg9NJ|9x}NiKY;!oNgRmG|8^{0$0!w}J03@PVkn z)4l})AGkr`XT;%8Quyl(d^?3tci{sHf1$#UjKlA$6Z+d5_^o*C!1qur_&4KPftCuN z8;5^S;djxiq5l%?G>XJrj^B z@4vWhCv$hrad_iv$d2&l#FD%%mI!(GFipbV8UZM06wDHZJTHpJ6RaxmJSVPIz;VDe zDRCSd;Zg}4YnU*?cJ7CSnbaZcv|#;GUMyD}R&UO+OOfjT%2M|+kWHQ+NApkujdK@B zAY>{b8f!4I5V$@8)0imbNG?&%1%`mgUTM!vq>U3()j}5KE=kT&Cey?AO4uxsuyLls z0OK{`Y&ca*{h5DHg5M>?)J;RCA~A|*I-7))^wGT%-kC_)I8(MY4VhkHGQDiCwEYrk z8#0x3LOjzPlj(_jB|IXLuyLk{<+pu`qikw5GY)44h{!_d4 z&|)AC(I)D9ik9uXsZ!v0yPeVH0PWUI%eMR(En9~sWvkpr*(UtixNJw8vi(k$dzP)O zDH~e>ZMSf|Z28V<$56KJ-yfje=4de}n>NvyziHXV-tLx71BY}zK-r!LhaK4Vw3h9> zryI9hhR)$lMLjeBXk50lZ`XD!*+<#LB-TDR*B7T#v|(E*+JBN8R8+WKQbh#!=V;L$ zxXmq^2Hu)|fTC@rCb<7?iZ)Tyo)W{&zmK9V{=IS0M%<=Fn+=XVn{E33iZ-PkMXTTe za@PG@DFBQom2BOI4nOK7s^DS+VlR2yIZEjjPiZ3@+=S9q%n-=7whP-psJl}IZbvjB zb$*4Cdhk9-okwbBgtcxDbK*U$+F5fnw0_RT5svxuE9!4<*|o0bN@@jNrN6=djqx>O zTdZqcTovqT&_ywq&r$J@g_!=+ZCVtoLtGf=4bwut@*~5)W8d}tLF|+&Hld6EEeFWM zqE#qSdI*UpQD2IpT4S#r5uQpaL*2y*qos?FH~&jQK@k32^R zNMn7lIa4IUdRljW4d=yC>j|^TOFu=ad_^{S&LIgx+wF(Y1DzKOZO#rEg?2|L1q})e zYkf`_)W3(9YvZH1HqO=YekEKZA0M&j7{Z^H{0qx=q2wi!J>DnaYZhOE-~kX=yB6^4 zSzW^=AT+-Qp$atvKi9_B^^LWjE1!isKIer6)SL?J&Y2-=^kUS$MrWetH8B&NEWJiP zl5PHo#RQEcWW*vgzqmR+G9}!7(U|420o)w#S>L_NS9Stfso~M#A4Rb?%99ZVcALy- z_EJ&pD!`H`soPDjk#(Zbx0B3+7Mch@#&3>?t!OvBIsPJ15sS;6lX9Zg4i3K;ar^oY zG}N#mTbQ&YnzR#THy{Rbsy@VTO=^n)VRpa+GbkT=aYORYjfL_U2?bf_#*(i^0Skqz zfmB~XhMZV(?YO}1k%mYiEpJDGl3<^8!uCutAFfO2lYA;eTXVLP>oaNe5ax0yAejl0kHRotX6 zoaZh&qG7LJ`oaHjum9@dOcIv2l)S3EH}EUl`I_U&sVwh=_Fd#S72j zSAQh5%vwDpNXgCs7};2R$s#txFWi+o*wDIHPD`UIecAoEX0j8fiE!q#9->tv2;^PD z@`pB2OFWubez$%k(|&wFWXma<{!LA<`r_YbLgbYu){>lKf!8$lI4QzPiJixig|zSA z+$e2ZiT$_4{vA#9eLrBFAC_b1!0CdOfn^>ro^+ye#>s-r`pFF(1tQlxR{@#D1+9aV z<120Fa+IZQum6t|Rd|qs>k3*Q$>u?{CnjpgN{k9Y4=`@^{hCCA0HD8!T>`!!vl}}b|QzwtzEG+r^n%#5lJ)Olt=-mP?(5yi#TXdjU*^! zSvp_Fyw_I!4+YVKpe1PiY2^*%gVOgE+N!+g;>aIUTWhkg#$zl)L2{qV+5+sxc>*Nrj_FgNrf z%DJ?o&JCB{B!SEg8W_ol&kcfPA8XO0C&{Y$ON2g1h^NhzJ}%u1pD{LG6_k5CU<}R* zTQ_7l_K%5WGe;m@Zql{rhKZyz$b&jja9*{YR8foe?vWp*-7!KwnZw_3ic^@zQq*SJ zkDX)AelI7(xOC^u`V(F80Ma1m#SXIW3p_=jIsE0$1U1NNsCgkvhC=I;vYm(e%AY_~ zQnr($-YfKjqh8VBEZfOZ?+%DB+sRR{n9VKQ$x&~GesI(q(GQM#57Q5hde<>D%XV_q z`?!8^)H_N)IO;uFKRD{GQ!c?#??V0HsJC1{IO;uDKRD_=R6jWCm6c!FPL6tK=?6!> zf7g$_k9xfv^-esv%Il9J02B@vOFifjsnkFVoF?4r#M5++`w5j3Gi|oL)g0}e&dD(8 z21^Hs1=bNCoOdjh<(zX2oaRVkZ>g8Xr7xDscg;-{TQ_BUS%%Cv-D~=I5J~sa{a5o2 z+P#t{NFd!y1HVr{K=)cj7qtVEAJXpicSvgJUZbcAwmMTG1B}7x+Pyme(71c8;Poqt za*y=$J-XLgQth*QZ8?PQ)tS@kvb;kMQ_+wE_mdQyl&og+Jcle@)=MFAF?J1E>zfs}W5LM+}9)};U@UI#8K?;Aq3*SfKA5r*+;_zJ+ z{!s&eyuu&n!XKsZ7)0)Y=~Jw)g~I1WEe;lCx2qk@SF{|^`b4u$_f;n)4_*3V#tzt6x&6#g<7{vw5+ zsPNCm;ZIcfYYhBh3V(_V-$~&IDEy6a`0cD^%kqvl@aynkuhfPAjY3(0)(YPz4*$Bs zf19fGKd$f}0Vm~MuJ9iaRpmV@4nJApUo`Ne6#fYp{vn0GSK+t(2PADV#NK;kI9lw=0}w^ zex0uK<2Pd^koi#qKWuw|`OyOoJ1}&H&W|@kLBsr5r1N77cY2(n(_`wE#?#|VV|99b zr&Q=yF;jy3R_3g(jpQGW?&}!ZGQM3!4#zot8ofhpyp<|C$o4&uI1*B*f zav=8~TWxr}Xxc#ikJh4{f1O)24eW9F0b1=6E!v0w(4w_yQZx}m!LaAKJ+e}p?WXS< zmo43t?YMoEErZniWY}l4q-;0+LfK?VvA-VKt3-+sUyPInC5p%}YELQ=`D*E<1zjtH z^^pE!#YflYS|4F_b0NS8QZc%T#m%IseKC9C&@%4HwhCF1We7DV^m;qQ?hPi=vBm&x+X zxD4`U*sXK$(R8XR@3nl(U!k>7B+LyKacIZ0iR=1aVO539H|&(?k75oiYR#S^pjb#! zXRdC;tvNE`qB3?6sUp@>bJQ2u{Ug2(cL)a8c3Z?!pK3$>%1}&5KP^p>`W`9jyxaKY zmi~1O;?Ife86H;d;^qzF&+A|RABsQcHe(Q2-s{P%$~&H4UFDxZPGxynt@jXrE{m!7 z^F+WHpBLSg5Px3CCpQ36MvM4!TPw48p&Mt=y_! z#Io+5;?HJfh(9;6F<@>exLR@w)J>DQLB*f<_*sG!o1NfYS7~et$b$3QQkzbx#P;G; zEiUXEO@5{ooe9h;wzoqKg=YDDG_EV`JCvp-uP@1jyw+)6Y-xkNyM6W;Lafx1g zlhNcmRibw^J|uc=CGbEJz3yj;f@tUK_D~Q#6-;sA+?p8e(nL5nh}US4j`#rDQ$h5V zl0AfT$I$c$=h~tmT6J1NIJbv_Xa)+R$k0VWblq*jG!inovD>txJ%Y0jncSDfsvvs! zcha>}FB#WZLG%ns;!5N8RuKKzmJu|63eAav=!f_k6huFJ<$oxbd+U3bksMG#^j;uo zqx~s}mJ;1mL3B7F`%(}co<_CV-Vo9M7Yd^3n(YAD`~^lrKHQ$Y*R%WaU?dFSvOR}l48^!!w3&Z&QNPAG}? zc=>-gbKdkjeZ=ziAfqbpS^VnE`TZv{b8c&)Gw1U{k&39Nq3nPl_lH{PNr5lWRdElF zK3BDsycL(r%=s$GSU`|wA2a9f0?Mt(o{==jX+Xxz`K0*vGjmo=lDqxGl$wfaGlO15 zR?tvFvfw;neNO*Y%#n*t?B>5~>|~AA`L(OWo@VCPlTF&`8msebKw?+1OGQ7=yGNlP zL<@pK|F%U7eFKTyLXYDUcJcX0DfHVU+i#&;BnlmpGEbl6% zregWW$~LYiD+=9;WNx904~FpPP3(44tRpp63w@Tvx`jT|q|Me?Ep&#&R;*$nex|n8 zcj2naeEG_*4#z@rM^p}^t{+97vJe*_XX_!l5dVIJ1hNpw z=U77M@sjWrU~29o)_3d_{2tdC$hFk6tr+AOotc3Z8wSj$FffuKw!ApiL36`DhDgDXy z)oi$y+iR8+FG0|1S^Mc8_1)w;@GQ-R>%dWKDZ=$a>jP*V>}UhrO4h-7(g0CwrIXoG znz)+iF`^B`6K6z3Nebt~;BIzD3~hc)Q855Zvl_B&F7Q=^_KyLylFPT3VMJtAa} zZyoZzG~RFLvrIqB@?J8oi>Ee?;4HjV-Uwd#E6aPKtcz#F#OIanXwy4(H#6Mqz$5^| zF^tt%VsplKa)RGuQ=pqXu~BH2f-Q)BjQLP6g2%^O02K~zXCWU?=$fg`1;E`M1ymm;lzRGe7+}S=njyj z-%9{7MY*@jM}e>N26;OOD;>4IslPAY?C_LH#Xlq; zs(3vk?do9yvdLN~o0yPQ6|!b7;|qhOl{nJ*d10Baur+rUj2`)4{;7@yD6|psHHAoR%xGzM#_k(C!91-sgUG`^Z zdhCQ1dq}#lD?5ZPM8K@;^ zX{H9uc6w||!vjQ*gJ0~eNIr%70MXIi^Z_E-Z#LXdMZUnm36YR1)Z{dn8+@r(3sF_j zA}ETyEu_Qf>qB3#$`Yhfhmw+EQmC}58Bu{f(}ndo)o1E3`kUYaRBLx0={UR;$EhS9 zto~zpKW8)l@9XnCzT$6qQ;|o9+9SF(j}EPK-yB+No*e3U1TplEnZi=&;$QIO&^Nxa ze?V@%y!PjxD@B%%g+iw0E1=yMO82|@c*asCAH0AkLrN&%MM3|;{2wNsk)E2d9GAEw z4tx5x_E&2=2#4hJXrs?xn#1?Ve*9cL%+~G=vIi8Wc4dPTT&**~dZ@wbj+ZQX5wg=x z?dEO|7orFMMh};+KJ*WA4hvzl?RNS3ooB;k3g$a4UbM7C(N1B6rgghz*PUcPu|&2* z)OADi(wOrY#&+Pc$*|}cx?QpK&vJQyNCx;xSj&hvGgwZES_3la0>zn(g+sLQ%1P@s zUQym9fC~}4z!WR!=6JYzNEPTLW$ol^62hw44s;|Y{2@!EvXGNW{R1&1A59_|VSKyw z*R^T0-M^q-kieWOTS{37Qkn{~E9EsaSIBcjcRwun! zoxC9$mwLH4R>jjIaIj{~Qzur5L*RBCvyLFjqx1w`oCI;5s1^-)IYQo}Ui zj4A5OoQeZ6)76>zfI9llW5kNhQIHwS)S03)1vVVXLrhpH1eOr7*LIIxjXQgv2E zi8?W@NJ~wvN6d2LO+Z{&9f-?uuAHIhVfVhtkwXjpEqDI88Q;#~rR4#@h)u zE5fwP%&FE$7Dx#RONmK+HI7JFz7J@k%OsI5O~1HQB`m$nTCT5wzTr0t6!V7hF+6jJ z$bROWot-_h@=C1b;uaE~JsL6A9Epjg9+kjbZt$WHb_fY2s~VXAfcb4QdFvW(n1Mlz zw1s}iSn||f1;CdAKt*|+vkkx?L)?diGo9bKTZyZ}2XT)S3vthqUQ+BuTq?vd9KCq} zFvz@lB!(4xAKXQ=#8PiFD9dn~)a}wXT20pyZYY_HdLt|UlpX24z@&1hixQE}5QXla z2>6VEL<{sJ7_!gCkruehpguJLe33zYXqER1R=rXS#+p}cdk72&m^M@yII*7sh}2zB z9u|gu_n6SdbByoK^D-&B9wf}68f@>QfHj$7CtNH<%*+Rs9oVi~6}h{PPpm$zq_A~K z28Rh*&cm{IL-$P+!~`9WPs$}wxS}}Dv)r(mUh`!KZOjR*3QY~&bBXDFGbuq?-kU#l zW=l7%5W33p{*I@aZ(5pqzRuQuUPJo%IWm7@@8OHM?6Thb0nyIu^;D>CF4}`1h^0_W zhZJ2U+Ptj<9!PFi)+vs|GD;-h%0h{EILVB`8WKls)s zdFwR5#PW&U+f`5e-mZG$_jc7YB25fX`E%4WI&GFO?RkF&9&YpwE1eDM6+>lq@!q^% zgf(;dRbfp~DfM1~KWwF5rp{EMwB`hfiKTwSipTV-FX>g*5`xx95OX2rC8*Wfx+N&W zP9sfO-uCUyD9L}v(=B#OW;%&KgT|--Xh<0lKh_}N8vY;)0yI$LJ zEIyi}L;?@gmak{UaV#V;ILvtF5@jn@Zd zC^LU%V4DUBVfk)trotbznK;#?nSR+uGu@nuyyyZAy@b$s6BUBc92L}iLZI->WhS%>0-piLOZ&^6`KH% z^3@&>z>EYyuOGiJiE5KO<&SqLtl`>#8S@{WxiM-j1zAex{b$K zpQ4Y>c`IY+GT(CWv08bZi zvCejH0{mbB-+sz^W1p?m>wL~ISs-PNS}36Y$UDA~?9U?ED2v$*m^7Yuh>nOF}s-sSYX&s~r zIMGjS2|=)|WE{2>$xN;E)8+$YD4ipWLEJ1bd7Kl|5r8ce2;ObIl)2O(SivR|1n=X3 zpr1kT?gjfm;Iva4Re}Mf+4>5B4Ow%=Z>NsUlxKz8pqJ6lcV~o*%XTqkzm`rm!xsu< zq1@G)siovyZ}4N*_^asfZ{?niES;V`p4V3c?}+k4l|H`)o$_wf6YOA$LalhwKCMC) zUu>epDYU{F6u;jwS@J1QNy!?bVKL&I*-Y-m{pLoHS^sdvjsh6?<$T#T`@Ij4Bdd)R z((#DY<3INzpQC;!J52C)<`!VcjyWbnK~2IXBqV_!UjYwJq!^g3O<gRAPicV=)(;j36plS*!V$jvuk8DNWeXW5svip?!ugsNZsWwW4fz?Z@7 zPmrN}%)a$wk>mM_9YiBP`xbXOf|Sh#Zc_{3zT;ozV_@Q$@J?Toh=hZ`Ba<$hkxcpq zt@aJrO6+D|7H>FXIJe7BjdDrafjv|v8Imm_lO+&?1K>C0mHr$En&u@NX>b%R@eO(x zRBMAtU)Bzn0!;ukWYsn)Q$s%cE=puC^hVT25g=PA4aVs!%X{N$9ay^m5gFD@y=pqI z!8BlM?|vfPC6 z_hys(#dY!XS0@$t)jB(m(g(fMM$LX(YuS1wZ{CTaeZST=)2LJ5|kart{Y`q4M4@e2fs07FpjX^#U zkY@}?VFKjl#vrc=$ZZCslYl63#RjCM3Lk5)B!@#2arq{$mD2g#rR_bneTc7vV3RhZ zar}9pukA$qxsuCY*(&?ZeFA-ts)7i!dvJ4<0zeu@5q&H`j5wo$on^$vst$IvX%v{Rd(vRS76v!s*c3zw+&+| z&01~NGeI8g<1vGNE~`LT&7p@o#5 zH?b+Jp$duk;O7fS3`Db2}WL}iofT?Wpi0QoaLR9WEu#( z@O5W+B(~VcKzf0-T6FMM*96~?f^@AcsCdtJ+ueK?4qwLQ+7CI|oBX%3-OVOiWM~vO47ec($4aw=|`_jb`f-5 znMgl+MY161yh1`YqZC+H*}S0pBHyiIGwqyMv8P!NO zSWga??P@mpL>4Fh(U1KuxO+j|V>=CU34Qc;4SH0AHixYDgY}C;mQI*VSCdO=pm+HH z(AjxrJ88`>(>HaNCJ|}|f5=BA9P4N<-Fxr{bu!M6Z^45eo&ec0)v;-an+D#j>E}h4$HwvWA&AgXD z?9_%>=t;YxlK2vdzr@6sG>yNM`Br7k&e_CMpe-(Hia*#PZVG8Z#-pd0Cl z8_IEF+7+vugZ55UL#nBgN}xz_h@=2`t@DN4kBbGoO-YzQy;MvW65k{~WJkxlBmnw# zSQncQ5F4@z9p@n+>Z{7?lYP_vg!fpbC3`VAci{QmLFd;2wE^5XxXX!2Dm~H8z3i*b9y@&izgB4mZvg06s;Ur%D-CVU75-B@81UrM z4mx94OYGdv0zV{6l5DUP*iuGSn`6(^4TDK`oSpvL2Jq+p&M)v)1-fUk6vm)t2=fRj zIW^2Ji#5SgT5J+@=7R!sPwoH2HdGSp)JH~wWS#$4vtNpAuA@-mE}zw(Zz$s z`d{Onai(0D57`4bs8O~|PrUIQ>4`l6q!(t;QRn-!5UY&RUi!WE|gn&}L_W zLt2#Bf>?jn_kQOa?!*ao4Gr7g06owM=q-RE!-vrScge1ZO=Fy{;R9vIQrDY)BwV!O zNS1fJ*uxyz7X9A4Wm*U&{Z5{rO(2{*OQ`$(nEn_6_r|of&OT$-Gf>#-HXKw^ROVWqw)NCCy&%EH1!ZH{x&9l zSySRKC1o~UaqWZIr5RnV*sbvGfk9P|z1J&!JxNo$h|GOP+&y^6I@-%C~2OkMaUZKt}* zCO-N*GSRakH@>v}k`dTybs=iEia*Zf2ZO8Q>c z^=zMnBlvS4ENbtmUrN!vPw~YB|7XOAFJKWxe5;7Ul}|Kc<<$vR?#rriIdzEFmqPZ{ z84-Ko94M0|2LG~C6FrKd?}qHzG8q(Pe~Y&h;e)HC39`x8H{b(6H|n-+O~dx^3)voi z(PVqLj%xhEMfN?0H4qq-cw8P%X9DWphE& z=IHQu7}ZsgBwc+4%O*}`_j7i<346X1Z^C-B`)U83G+$~b!sFW>*9LVOOi$ijL$7Ql zPg8I3-TEwIW6n*a!|XZFM{JcjQT2`tEZfMF%&gDR;*uroT4Jf4*@QBXPQ+=vm}jLp z3!F~J-}G$o5Teb7piOUA5SAoCAoe)TBuHfYzl?|nZA0&{)z5JSZtP!!%b*8rHDF}9 z0!J3Yi+5=jOA?9yO=1x@i-~e0gniDWNU7EnxySJ_Umw~NG*$T-K#42cQIAtmugGpS z32w$|TqT;|dxDBnl`Rq8XTpGdd%v5d#Jm7j;otMFeye5f}zJ41@Rq;_l+IezIO!(G>+X zngmGrCV)Z!(EtKx2ucKnfI!|~b)U%x!ruG8&%O8MA#={@uI{d`?yjz`uCBJaOMWWB zjXJ?pouIo;FpUHaux9`p%AK$kwWu-iM0yC!A`C7+oBf z18s!$N)Knevf{g+5#}1%jD1KlKRx$bm?c;iEn|7gL2Gs zv6)fBllgC;QXk05Ng0iuq%5QEEAwRf^8&|y&+mr_dcsWjTChwSqN1gt2$N6e<9gkF z@2iFXY*N`g-JG2w{S18?4{Oyr6(4Sl|6H;oT9ir@k;8XDw!>ND`qKH! zw4x+ml%T?cPj*-2r3h>2gAkvPEnk96S05e~j#q$Iv^pE>j-CVs@K38Az0z?L@5xaW zHzu?P2roDgA<=OsNXND_1whKwd*bZlJ-6lni-~Ap8wXf}QuqBlgl$BARwMm8J~bP9 zQY9McaKB$)gP)DmH4+0E6Rg3+c&}dWnc_O}`Q-_D+#Ndk&K@xR^@P+Cf*k}QSnaLA z+~h9=sAWGEC?E6go?MGqh1JtK*xyNziy**Wm zu+{@8HKTSF@VH{N)?O?dSx1;LPqkKFNw_V##}~@>B6)ID#$v#nF_&^N>By7f&8Uxu zsqEW4lf!*weCh23*+$UZKbjkv@N>OAX~!>%QwsogA!=G7wXo{nmUpN;apYB+-@VLM z9-Q$d9&8IF&=N3-S9=l|za#8?<^~kX9LZ4(@?o9ep=Jr9O%qsfU#J(B%w+9oOzH|x zu)D=`SEJsZ5|;W+EHT2p>4Jw;T@ptIbpbAwv+KA0MZ@VZRB@?oBoIbQmhwFHwKw0M znU+wlGE1oO=*+5U5_;2Dg(|c4d{Mo%68N8G_5zvdJZ6#jlc^L8Iqxp6H*M9W=R`HQy(LwR-;c_z)4_?(Q6tvjRTzneVbq^oHY zCs`TSwB$`*&=)}WhsXi*q&r4j)|tWyiluWf?Mvt2ViEN*PxwkrlHXh%9O7kJsiecu zQFMEsla)I%DjDx*lYB$gAW%OG+lbZyPr1Vqj~&c6oCS%;+=rGVj%u%z@kP6lY!4vs zU@Y5TWH(H03wIwhZu^c-U%143^>^680&mC#nJ&JMLf#vJO4YWaz=9U%sl zKY-jm1nyn;yN&%wXU^2sfYIr{;!g~N%hn|ljn3Wa`io?Mpo^rpg=Z1ty>JUc@K>Hl zSjY=>(O2ZTSCY9V11%!`UPSsDve;0Omn`#~Kw-h_>};{orLt3UA&P|`yhgu$AlG>{ z(H-2R7ra0VRCeLEMzY;5vM2iHEVMa!Z3rpcZWgwcJhy|%mvm9Zpe3LYmE(bvP&wo{ z^Aq^DK64tuJm&)24p?D5eo2 zJfALs*`u~}Dg!;9%3u!*%Pgjl1`EqUcVknJoyWCm zT%V65Qg zAIiO2m)Syt4%DE78q2KN2)2rbjRochdcx&)zE^yqN06Yd9B4v^(-e zA&=mYw~G{TT8FdODpNZ3Y?wrUY_jmAUpMSXT8zxE`D3rJD5GkPq%7*7pJ}tZfg{4I zJW$HLS*<>2$OExd)_GRHl(RUSBa7@9^H8W*0@*B&^5H&F?q+%%b-vVSEIAu@WxR}v zj+`Pu_d(T^S{{P4HEB2)h^!AVEzD}XwDq~nT!xdMNmIQgV?*SjO1 zIi*c<){ecDEDw)9!(UNBb?R$!VC7xO!~KPf-Cjwby(an8v{wbE=+K&T0XhpHJ5jHs zsR{}gXDq3G9gp~v>ir=MT_&E3WruIbCST4bBYYtv^xGs#kDOx=6&?n<6j0E*NqDko)jaE+vgP+HbiG z>D9wU%T)+?SMr7T&0x}(bY)jMUvdX?QWZErz?OjTADDl1!y9qCl^p6flSBe~-CA;_;hxEJjAGNd6*u$8;WK+DV zv1g^JK1jD!JuLPL4B80)hTnL1f3AR!SQ~x<<`x7z8#{l;b#@PvPSM!$oVm$NV(!RP z)k%Uw-f+sujV+S&S_RRdaXy76!d?xH%u<#L_u?*{etGxRil=77H{1&q$NhdC*6=Z} zj_#?Wb5-=kP}N#PbWO3gXStbR1hSiWAY_Sp2_fspY`#u5h)G9)wMUrPRZI;+{;{c8 zR{X6K!+Y9?WfMd-8Ze9~u)i8leP&Pn`wXIjxKntRRr zs)BOA8Wl`e$Y#WTIaNLV6>cX^KEeMsmhf_b{1u-vp^+A_RRj#1IUr7j6PQ)R`sJ&L zBFYP@I&q>bxl_R`q*RE4<(VeRKY)!BC9jbvXXE%=6J=x>s8?E@X`idUoi%J@x;{KGPA^I3O1X9qR#a}`DY^fCPMT*+zDHqj1bAN2_ z)=U6S$DrPbab470X*}Cf#!~L@>pRIbd>3%yH!~VlrA7W!N3*G-Y$MWW*rHMBMPf$e zH^*iMBDe1gn*H!UtQ0Cia}Y(}-^2RkVO7=)0jCH22TdbvpkCBq__IPIWEAYs2Obb7 zm2uA=;#k#+Bx{r{OT;=QFvK-wsmzLno5k-kbIE4JOr{cN>T3Y2iH40{_{x6SVgL@I zxGdI^h_c+j0MWuI*o&Miv(YwE%@eGd#S6bR`h6|v43{Ds1lr@MRezDRbt2JL7+Kpm zm;^U6l^Gg&z?UeU+3UCzsY>ZCrKm!i78Nf7l`8w2rS`^-<-n2>V~ZxEc-p^cm`GH% zec0`tHcP&8XD(sKGv~1JoXMvr;+V#_J7?K5Py2=lQ>&Gxj|@x?cH97;-@*lqEQ3Bk zQJaLKw!b@cf;A|~NBY=`9od_NBX5w%y2P>9xI;aY*rfGEZ?0#Y1=B-g5=nEBufDA7 za<(hd$!`U)1iBZ=oar(8EU#&)-`$5x>8i-QpI0fi_hBd1lt(ZHvv0aTv`QT-P#p_a z)MRV4VcTj*XGv6?K#z^MCi!JK>&iLYI6}>*=)-r&Hig4SmxS-PvM%Cm5sej=e%LrP zFD563W(qk8^pgUuc7HOHar9BF`<-SLQP(kW1=tC&n5i945|HMWaN9LVx(%`g5WAfk z%Ur5qM2YJ)v#pO*Hqv&DAn$09EIXSQ0hu0~x=ARe$CN#uqH34XdhtYRycosQpMu2y zWscaLY)``xJAwwxqW!yyBTgq*2z~!;LWPVM4>i)e(P&3F;u*AWBS(C;w>~te8Bd&) zn>#8}&ZUAv_t)^Upy|F)Ja9x^rNrChU?!{YtDp;khB-?AQ8UI=V1M1D({$GJ?X2H! z$aa67ixyt$~VB>tZnm~Ip`tx~lzI*I)L2!n|S)LV*e0LAd98N<` zhblOC<2#y~q=cG2Rer|#Kc9}8X}~p7^SWNAqUOJ@Q1r=$GD6J)+)QX{J{VTi{0s4o z)Qt5}&D`ZM858YYNfdeAkcJd5~~6e)yp79ZMlr`+e%m* zINoStY(Ug2WhWihnM=DxTsM0~<*&4d7+z2Ov4Qxo3UbZQ^qGUQtbJd}v7o)2_Yp1@ z`|BQsQVWez{jCjxng^7o$8M5nrSfuuEq%B@Xd#rfR5VGwRyxedyB{ldDTQtqAW2Zw zUC!tHUDYr3Lc-YI_$lY&gvV2v+)9itrN*Rm3Splp?Bu!dF6c|LH!qdqQeOih2;xIy z%c1rxpG2C$Y~FjQU5tv7!4lN5TKr86_Q~#5FjE<=`OPZ#BFW6UA|01D(bS7BldQJ5 zRSDL86+)9*@i_6y?sy$NQd-nydXz5l2EG`lITHAv=@Rn~IU9~kTrfAT6RUSz$>Fa^ z_iTQxb5_RHjhB-@#q37fCjTygv(WhNZ5~aJB5=$ox}fnWf;w@OhtBrbM-euo^0NwN zD^+`Vlz5Miq|P9_LynF7Hb06m8HzL>MfkR3<57gJ!~WNfA{1Vs)K6!CO@-q|ex>WF zdjt=?B|9;x`_)4oIr52xW$OBX(8jTr2MkFRs8A}EKCzIQjugE!`OC5{`oW2oRicx= zi9I0g7){;NK{etmlDZeNQnWr=ji>EFxjqVgZY10FNIWia0te%-xv`JZUQwUb1WElSAjWIAY$0x4YSu@M4U2 zdj!mT^6*_uBf9PLB<@1eQA_qg87Zk~&8*3P(QTU^7QAh z#QA)_+e)7wyEk!;%19p|vj&fP9fe{vOPZ3AXgaP3t#WS<+_VnkO>vWNEa`j_i!qIv znohXS)F;Un6ZPM-bBettH|8iNwDV@ww#!Nt6WYud4YK|c0#9Z_-tCGBeWDY5%%j=< z@wr>$+re`*#GiDQGj*2FkY&U6$kFOJ>=+Gun}!{sVee=Py9U@$?oGvN>)1`3YrJpK z3ESy}Zk_Nqr@}i*1~A6&j4mC1D1ljq=BY`_*?HBcvUS}3M{*u@HS)F7wT5^mjSe56 z`y-(Lm-6$K{y|}VZLVm>yL@FlyMe9}--CVg^>}BGWW2&LOW9d|o~JdkT=X5OVdBa2 ze)8s=91)S!37;WzM;wpwaGQy4)6ZQl?i9MlJ#CPTGRd6YnVmSQ4?4h$>5K1NCX7Gz zbsmH~!1iM2w0bLYpzqxz_TxsQN_|$1@8Pp_-mEa^LJV<>MV4?CY};)mH!vOoW{%{8}uTsem#}U zGfPHVG^4N8*h=VK4Az?JdxA`VMdQC8gGs5}4$8gE-mBYdij6FRY!%#X8ERG8ogD-}pj1TKLBAP7r6+ z=C_b|-Cp1LJ<>ycr9ZS5qwmuFDM=-$4MMvU83O#P<*#*R>F$)!p2WZp!CD~lT?1AUWMfq=Slx>b`V*;yl?vPAG~$F;FINDuYl!(AmW$!d6(1rC zj8c}b%8Io@*}Y0!>?#&S43SmsREKqVrNf>}gmqT2^r9!fL~&H#!kG9jVWIk@QT|Bk z*Z=CI^cb(LudjETE4*E|y4UTsJ8KQK;EzFZwz=3F z^|e6F)Pq7|AL6VIjkgp?!DUEw(-m^c!p?k}_8#s}Dv29g=%brnbDJ-M6XnR$gYzTZ zmU+Y9kG)+#GG!N=9M9N>J#TEr=Fz>Hz!xc54YQYP(Xf+$leMdqs+H z6dZk;LkIPVW3N|v*yjW4m)sid)=E;hT@%lT49KQvZL&NHIDXKO5iYF!^`-96QcfUj zF(%w2!`mD+^rooiLQZu&4cSzsB2Oo9%%ZvRU~D!FH!x%wBv6I{H$~cBE;Z^(`z4O; zEJUYPwDnL{+|EwtOWB_*cs`z20V;uKb}R`g}7G-B7f{FMBMV(S`cn8tv3dx>2+n_MDK_AMGZ_0qxW| z5YCPCiBcI142o8Z2vw-F@YgT)B?bEig{=2OR<3*NEmWlnLp@PnefvWNJ%i-HtnWJ!GvR+49OEra}?RT$H^XTa}H<5>S5#UBP{f>VH4`4OAVV~cX4w=Z0j#V^B|X1&CtEs>%-D1GZ0Po;{`Sy>W3*= zja^@~4SRyYJlP1-22Qll&CxdFZHuBlyo&Hn+jGcv6dn@(IF#{6XS%bHM(RtGLDsBZ zk%9v;=MN!c~^}Vxqr0B{%D(D$R9kPXD6>KH~qb!3OGQn1>MP2e;3L3 zNL9*ARqBt&RIYX@s(bkBO9DxU134wegswC#y75BVR*odxnSN6=kkA6=M1LlNikkxm z)5v`xK;}uKN!j3<-fWw%aN@_9a3#$UyJMA-VjVxvN7lkh1TFcXC047Hc5FyGs^%fl zXH^`4Wn)W7cHa+Y@6XX9BGSwUWxeu>*hj!qKTZN^ z4v3iEJWu4q_hkdvlcP?Mj58RdEcRoY zQ|>oTl=4x@$NEe@%E(}BiEsQ7DdaJZBW8Fg)RQzZVxwh8jo1f+>bg}t^+%)WY{}!H zf3ec1#ckr;wR$>tSEIs^t%L;Y3|1_SE|QTi1DDJYTKN|VK}59li^!Oehbl)Tv4FY3 zYgQtiNxP^+h@~|tUIfzWCu9u-L1#C*@Mz~rnMQ5H;Ejw4TQAx#P7EPL!C z>eV}vJV(}MLrNI@nVy{F35_{NyiRQ;NC!2-si0~PRHSosrLt!5kFSjVWP`hOyQ~tV(cG=q#a9kH2wUHDgx)121%jnEAAd5 z6}!KX@c{g_S_Q4x%95}O+u1XC$qqkkg`;7?);l%35^Z3>{1eROQKsxinQ`2Od=Iuh zfRCO1(7ReOCwp^Pqb5u7F_CverYl03IuDx#m5m?cO=D~wECt<(ez|b z&SoS0C1Sr{PP1+fs&;lB`q<=b0EJgCC zaTiK+yVV2=4{*b;+~XGuYx0U-qn8jqGhp8A4{OPhbKoIwO0HCK zY&%S+z~U`oA*Fj-1aJ+(Wh7>uHRd>?L&OWMmdMDRRz;DV#>(?{{a&cZS0IwwWx-|o zBpC)%s5TZphl)CBjaF*Ii&9$=k5pblVdxS3NlWdL14*fW{qQmvXu-tfo1*t#nHcEk zT1fz~bEq4zeTKAqo@<0Wr^c9Y3uB(MPGTL!N=sKk5dw}Ro&0~9BSBkt>93hm=;NkLNm$aa zv>Eoi5i7&bJMEP`CKsuTmZ#s!YVVQcY5YEuJk=j6O@=3rsPW6)*f+plxCMHW*K9M9 zJ6s4GQ5(CQz^)}V-(aMeJmy~J0}K`Zi7<6cvipbZZH+t+;q{T^Df~W@JXx{~a-U31 zjq8-b!JIFRP=IBfbuCJb{^81SXiiuG9dChegaj4r9;Q`5Gu4gJirV@I9`-Fp_ zKHe89N%rTIjQBo~v)Bl&gsb<8Bv0sNCXW|kJZCZaeMBIB`(JwQ$QW5x0iRtVy^Ol6ZL>T0jhU`R2Ct+qb;2bD6bv9Tm- z(Pg3}jeZD+L)uIN5G$p@e0j{PxLD_1A*h^w5P}klzIG5tg_9KWBRPTdW)-2$?X%4T z2n+^x{fDa)L(<}?yr)6)$Zg$NA0MK~7y*Y_CAXE8A{{u%iAXViQMJfkohuWEn7HX|Rbj70nzK)Gl!2Y4Zc3*W8*j0da z-3s8u8g}XAb^u?rco`^SnR^v@1frcEmZYMwkNyhvt@K|(J&vW@Cuj!D2l~o27xo>Q^M_e1}r~-bk8v zWLb3!(h{aP)|;0nT<_RNXD}uf!h(BVY)tISlNx_a6dmPQcJmsu`cJTO&Qipgco`%P z<+giWjPEB#ImU9DCQ7pF84c%wU4>)MYiwCbgG6VG!9|7R&lGmYUAGn}TVv49Q)rtU zW*LxaZR_eHW43^QO~4P%h_`(TIk2)?{-tXBO36G<)h2DPy^LEAEf%7B+6z(dJWbZW zldN57z|gbanXGc}s&k+7?{lC1q4;vCqheA=Wo}q=c2~BvJ|q`vc?So$h=Im;5CDzm zbZMlqVlyAtTUBj@#3Qe#=g7n#bvz?Li$uCWMtMSpyuHn1t^WBOoSlq(B$T^lmfB>z z9VS*YnEVeutMU&t$zQmE_0-9kUwzulhwIGG4&^>g<}`C#$vnw>b-nvg1>JrJn4E@! z9a8MZ2?uC((CtRqG?H@i?>Ad0r$-4_yO3RG3q(bD7{5X@uShk$BvB+>NC7gg*gF>& zGYB|?)nlH}z$~s5N{ZY4fhl<2S04*z@u&!ksgwM(*&MURa6;JL8L1voiMQ^#ur)p5 z`roP(w6#E=rU&2CN_s;QaIBNtT*-W5_pa!I`BG>_OO#$9GDx4GeP{GJoXe8x*u9ok zzLYE|J%K>;(Q($ZGtUuaPFRp?1Uf?lr4T3cEp05#ol3miOGmo_Q^EMkzIP_T3D!dgrH2_4 zBYZ>_X!^}4B+6}$z*pC9cVqxZ5oQ;u5S*IpmNNU{Idg^(Az=2)<5e1&SG0&ThSGRG zF^DzCW(CYah{FBQRR(EZ%&E2WDBXeJ+gbDaywi&vX@g%Ivo!3!Wa}U}oDw zs)YMNmlEdx`w}YO!}|WZ1}a|F@pM$Yi96ltBjF_&idQHCGA@`?701FUB!w~vj$ENn z_#SDcXAmLuX=r<;;4CBw`v8J{^dLXMIE#$q?4z`^OAZwZ1i~jes-SUenSFg^G@1>h zT6S}D1;#-Qi<|JV`0duB|exErhQ+-Wxs>fUDJglDcaP?*4l!k56 zh0KmdEk9^El6}#c)spHG4nfBiP^wU$l#s_7FWu_$CSsSyP#>C6Dy9j6?gr=tDud>OnO1ox1enM)!58(QKWVKWt%>p8G(j20;+Xbl;T`?M zQh+a_5QUW_pBcK9kP)LpzyOhtjCX zJ|iT(Id7IE)YG>o(zzH2kGZ#5|L;$c459U_WcpScaB&8!WtWCAlt){@BdC)M%$f%q z-(!E5QsUF)tgMqdYK2M!h;${*)?WHSci96@#=PSi&02vrfw6^i#Aj97t4s&>A04$VD&6#uc zSC#sjByuDprjm!%`JK}b2i4NehJ%#dWH@BLCc_~r=qV+MucCy(gno`KhV_6-&t3K# zp=a@YU|1?FXOKL>tDFSv3j`Y<7VirN>vuUVSUj9}hErS|*c2B9R-R@^wMb|_r2bSF z6vr2jU9Q#ypN&;bbI+x8A?0AvUiW!8z>Q4yTXtNWx#zvi@Z#j{alVQauDqnF7hI|V z5fAI1du*lx<H%PaAYLFhU*DGpQy|7gdwRKD9Bm1(J&7V?4XL4TWiB zninIBvZM-*f|XIjw4O=6`U-#jDsczr%lXBa_BK;36;!QZ4-q-QtJ;GDygZvu#QKEH zI9jk-Z+`Yfraj{YpH@uf>g9^bj3aq`;541_`mt`oR(bx%!eq>JHRJsgYAHt3{S3*& zT#z7%tSSpn;Ha+&56c##>G%D2&GbTPK1c|1eNyg09 z4=K#VrpxkSFxH5LonbR%wj7f*-X|iiFV9u-&~@dq1f^WjD&PjjUU`mvJ5E@;r6}kv z(jps=15^yJA{_Zs-jKfm(?ya4(t9@VNH3Q_XgNnosK+dp$&Q^q^T|0Z0?YxkxQNDW zu0}?$ds6PAk!!Jk)$`mG2GxX4WQnY`q!CfHlXLn?d1n8)LGv#9-0!lio(o*i={Ve3 z_DFbZF=_zYb>RKrZyTFV1Rd*Q`~)eN^!bX&u`5ZSL2o)4^bj6_gySc+LSV}G0GJS~ z=ZE~0jPTD22`S^;CJCi`Sj8lCn-x0Sgp*_cMy#iGo%^t&JkIg+WhP6Az0r{2R~Mgz z^suHGesOZ_t<5qtCaz!!Nv48t&FvZqu?vj%V70)!fHaWdjEej`1$Tvpd+cPm1IIND zwkaCq38JUr*e@N`T|GWn-Sh2cS}2@bX>?}%3+}C&<(wwvsAic$If||mds32Uaiu8! z>1G`c(x>Sx?RB|ymMUsOXL)Z4TY_=MGyqZD?j+|?I%ko+Is1%hA#|&9ewh?;5kmFU zrfkt3LRcD%Zjn?K%KhjZk(*d($az9RFA|n9+iZya?T8GMJBLSHe*zk0J`ig_O%k^( zsBI>B;TzbC4pBmQgA7nfW~Y_`@`q{x;Qm5RgbZgTHW(>jI>ZT>lg6pXTa$TM-I=;i zBL=g0yCi>TqYNyC#V7szp;kwj2QD^5*pH-M!+{Sxpc>OQ0~Cm;yqSfhKwqR^U(tRW zVMV%7U9vHCm0)0-tFV=!tW=^B9gO;u{p^i<%@yv$Tihrd-6$NfRbXkj!W-?M>_xXc zHA-?X247tdc{^fau`?++q>`h6o@oC>HasLBQjBhk&wDS&Kgn{a4KF*5@+Fhm3XzOOeeQ{n zWofePy^E@TADWY{>%HcN;E?tC(ZKmQxvVlm%cbgK)7i0-t*;j-A15Bkq9aF<4#bG> zV{fTyl*LU1mlHuR7VaniFv%PJfZr@-&R?Zz6c>OLA@QU=ODbw^>=SLrK>kMNXm4P)nx&ppX zp@ks}&x_}@0N+C(abpXd+Xqpdx-Z1>Mu2S)#*>k|g(T5BgC%7X&XHrSkU^2nI z!$~?QP(!Ew3wrXesPY)=cem}=9%;%dU|XC zM=KWINL}UJe6t&P8QhCWmHrb&i`BURSr5Lftj-^jtiX4r1+hDUHFkSW$k39v zsG?jY7Ye(-UJ_mf%=FlgavB4FgF1R!WAxc7dcBTbAVqR_kBYunQXhO?Qb#$SwD1bP zQ9dP#`K)>0U~EG(u_w>UB-m#TRHwVdwLNu_7Hr%MuJFZAcd;|-UL@IA0p-{})k}E+ z@sX|qpQS8c#5zOR?swAA5Nf`+yBMa_OgY z>DZV{PjabQ0wZUP%FL*G0RvcTO&8KIXuy>G#~UiA`8@O#`_>!@IrSQQX45tHa%Rla z%(XLRq1asIBuK=kTU1V;G3u}dz)u1G#ZYKGPkr^m!xQO#BVn=5giy7oe$1418+X36 z+eKtz-7`%Hw4V`4bdio8ucF&abT1X1u}?+k>gXvdS{4af*0C}a&=}ePgZ9saQ$s4X zvt!N{sxV>)o3n*O<1sN#ySRp~!ZGcU%M%Lvx^JfjoVNhVEEdjg&aQ*7|78W{rcC&=Yh_IfWN~hhZ+aosmd$gDr zHQblpd_P%s5M@6Z*A(SG&KdB@J>K+(b`Pud>d)s%rXuHeE%6P>JvY<|&LmfSjw6Vr z*YT^cT{M+ZrVqOnD>ot|Gn_68{cM(?#>6L3vLhskqmV$yJy_43xx1q{$`p}9g&k&# zKn_i^50J^jXU>qk0};oMy8w*j9^ipt$yW7n?UO)#{Q<@!if-}C1!m0A={Dx;N;-hFvS|s%gUeFii5oLRelnI^-f=MuYoO<2H z>zmVgMdh`H_jz+vu-vPlcAa<@mk@;FLlk5vT4hk-o>`R1n5~%$hO6(5nAncv4Zqr= zm~v&Ei+;@%#_miVb0U+wC@PXf3HO0qyq(srJxHJ_K9@@#+~!(0XD^J2e@87D%6)PS z-EGuaptBvtP|?nqs0-wazZmMFAKk^YmZ-&w6hI9{6#l3{<>w%uX&pX)2yxIT=x`}I z1_|i=J^@4z#Mf6rXD6ZLv{VB2@l&=W@qUjnR<6BB>mJcbyVtOSKfEba(E=|1!{h7{ zA4m7)eB+(3bGivS9AM4*iM0KHB2`fZUzU8yPa&6gcR6HC>X)L>9JHITLFJ*`>5G&Z z#}R_*(szvGoT4%wR_>`TCzMQLW?1&TNKqseOPe=TzG&Va`Z-%Mt7sNqXeI`$hxUkz zqei|Eyrp62ogVA8Dw&)Id807F{b4%7f3LosdGC3={}5+Vo3|k&=1pa zM@G|@%UCx#-A*9(M7TNquqd8+F1q=2~`Sm#SqRAE$Z8;Je{S?bt0kPr+*zD(xVzKv=FG+IvxuMU{AD|uK(Ax4H#S79fZG=NP1rphc_O|0EF zy=IoR=Wzv>-3a%9hO-*spn6)iRjeUfHbUN{A#0mMW?3(4$gev#l-)r?)-{2I1!Y?g z0EyML3?h*I50$``0IUzLwE@$qYDE0+}M5A@04Hk(S5{MWLARP(R zdsr=WF*2-4;n6AnAt{734XK=VF&joBc*a9rF2HN##FI1kn|ivSWVK}7l3ZQM@|{%*=b=B9 zm5G}rj;FbzCKU;`JAYSt|C3qLt z`MWB5B||2OD%!(X#@er}gI9{AE@ekrlEYD)SeZA=@f8?=*{cmj?lbzy?M9tfd$5W1 zm;>7SDte`pi)u~RGX|2zp;n2bu4L{s(j2eHI&uuO7Fh2Zp519EF@B+f4ga&7BU{M`BPgkZaHXg&^QwDA=1(5g0#_*GOvH z1e9#1x;P=%2e8z-oQ_j?9Glm4a`8rs+9T=|X8})@Ed+rl$ck7evD`(@FOzd7(a2H} zr2}LZs3o{p#B;DN8faDT$%z@^i-3@jV{RR^-3YfK2%$-G;5K-O0ABThxIAZy2shYkJiQ4 z5h*H-zo>ZWSa$p%9iKpm#6Lwm9v9hq3FL4`VhQ_Crfbq;qEB)?cNxqiGDBoZUnHu9 zMs>d(9s5jNBn$EJ5hYE8FUeoe!+<5ar#Q(TuZ_mE`&g_JWY6hNHK&Uh7t!-N)<@vP z@W~crBeRus+Hn1XAi<22dieJ;L1i%*(;WMGXF~Cqxy%14I~R4FR~k;@QD+<~L$I2F zyw2uXHt4Zsn8$;WAMUH4N{HlJ36MOMT*%WF3Y|(I{(G`mM_*xW*{-pBIXDP~Q;m9jwpE2k7SUlP_ zZ-6-QRTi;7gDYtQ!Y4*4PWf(%_CD+UEJYm7hH}?EDuU|eaICLjVfFKN zlR^e=LAv!3rW|+vCD*4eMieg_a+ z^b(OI%Mw|r1X$;1TJVA}wERyXQ%#}$@dS=%UxdP+l=wX14w?Yy{&Jxzay1dhi8x_Q zxLzU%`&xb~shqT>YY&SIB(QFjDx%kfwgSbx^ZFU^cSIoGQ~$#I=w$F_#nc74&FM0k zJXFYmQ0}awokUA}18s!^ofwxcz3-3t&qg!hqCTpq$&CR2EdzoMlGK^#3y zu~Pde$)?{W4N^#bwQxhP(`}v*Pj&kqRsh`_0d{MEbn2XzWv$ZjuEzK^IzE$HBUQYs z*6nrjUjE&jvLLEPs6$ zf#vaW2rM*x_uE;KEldQ8K9K8`MH_xY?yD7w;kyI}!A8LkA~7KDJ5z5XoKCZm&Vyri zT(4`->yC>Fmu`a4;95P9zKXE47r^A)?m@0Mm%5guIKkgWc)gGpm^~izNs(E082#i*p;hV>&k=vem9Vqr zZgb*U!jTY)L=;23X%J-&;hskp|4arus*zQqj;%ZlCx?LWAq+4x#%4k)T8Q-GGaX;^ zLE|{vw5NhCr<@b}j>9GRH(nyCO;>S4w9o8|8&3sN3JBdIbz+fBH)`g2TD?{>^V~64 zW}YLl!6_0n~oRMR^G)oi7kokLZK)IA1{OnPf}q zyHsi!RBTGIW;S5C3&-)P4?m$1f>{;U3N4TZs`YbTrGCCyqMx(p>*tI)`Wcl0TuoW{lH;ll5b|e#ki{ z63o$$x%x3*Kg5EO~_{jA%FPKQCm+o*HAEgfG%hS57 zbbE@Yb*b@D#y#qLu^Dbp#W;h?uX}u5e$ai_sB1LgBmxxERP7usDe!b8JF63l&2G(7 zZT(4+`%4TbPnW8yBZTgHt0wflXh?nk>*rS#imAO7QjRA~R^6-I z`}0x8SB0>Pj~r`xlRk|ak^%k1$Bl+4q{ugN+BixSurMF3c)g{lQ zn8vKpP@*}vb&|@Du>Uz5T)?bs2Gc|O zbu>K8hWWFGd9N9aPs1d`LL{Hj8s^1jFohassGZO48s_n4Fhe!W7#rqF4Rd!hm?tz$ zf?d{`z{JuCI}L3vCGn|fqZTJNZDv-eTeXs!l_To{>K&)e`ke}9PgPU;$)ceNZT_iY zRyKo?1qCp1+Dy?f?=^!NtYPA`xnIM)*bHX4hKbXrmxg(~8O%5hBecOPb)1y}5VNrJ zO-aRc<;p_A!qobuNDXq`fivR*LJ%3gL?ZZ_SsQuTi^2iedD54d3k#Lzy891%nCuZ1 zwkSP$!Otic_x~UPY8lYsQ=(CrNKS|rNCC&mtWZ>SWlLJh?@lgwEK7Y4Fp(w7_}j@J zTcupTfDD1o0!=591uxF15S^@WD}#SD$+;hb{dS3#Yh^muh@OV{)mlXp%KZs%U45mL z#fegfRm!n;=U#SUi>c8H{^ZUXi+E9NqJ0r<0*enWjuDkqXRg~R+H7P|^|FiS>p*s9ZIv_uERj&-3uup${j@ZlhT)3b6LHv*$)AYatW z=C<;{EV!7`u9Tf$2>~2!o0c+T93@bYQy!+Azu>y|@?KJqjF!fN{z+mAnqwFA`tQ#{ zmw)I}<}#$Dl3@4{CRKC!Acg3Lf<~WmwE>EMg@vSnb`86TKJ(Q%5~4SYc~tQgFh`;M zQd@|`R}y0VZOs3}7NRP($u8mxBW**=TR|}pnI<`Mra+4FX^Uh!f9FmQqWfZ)rd}v7 z3}j)$JTp4-?GGKnUMoy(FeObfrv5@be9>gFyOP7=zNE#n=<-GLFleeaIH%^Ei+ST$ zKpn0Ml{ibS7SX;bo}2^5)KbDw@yO;6i^tNAm7yK2*mOO-MYQbSyOTC@`Uj^BL4^3C zB@C7;e!!{2m5jpWIM5-<70Xzm$OYNF4_fW6=d)-X?`gLw8!QheOV`Vu`e7W?rzzF3 zSz?rzFviQj$IPjyWj&RA#PRtKcoA3M1|r@RZ}g56@R)};xI>GN%gb_bd6?_ehq0Jn zDenjQ8OB1PeA8s3d^vl?EAF4}G44LV$_dN#Ebh=ABwXqQK30oP#3Ss0K|iw`95YT9 zy}%WnP+y#iElKg`l#W;g#TAy(UWx9Ua^u-|pfNs6I+iKBxE_~DXD;zX`-;DmW87JO zA~>W(>?-h8q;OqN+%bhC-ilHvbJ#}ts+FIkbVtGbFlJzpK;%yNarwr{ak>Z{azEOh ziAZ-h7rpmaH{Vi|rGoe-P_4z(eB^k@TEYqRvJr9vi9(fgjyMEji+93t)tI%kpO>53 z&1FLMoMlF6mvj&AVG+NDD-LgwmX6W1v|@>J`9w3K4k$vhZ4+@v3!EHzmiFah)+=Ds z(!5x)3|dw%JR9W+ZHtp397-%3u`yCVzj^|$F3+U2m zIRH8Ulun?5%IkNDVSmr_y@sn^z1^bT@(H^@%8)!8l7rd5gXhe>G2w1jnehhmm}O?= z;VOzMbw@od>)kmUAM?t3RyB;T<7R0Xp`dCMf0BIL&7npcgH2kaVW_oD46%pOITGXOr*Y1}Bfz9uVW!cjQ_mR{C(jvmM3Wgf zziO$6I@89SktrqNX^1SGs!p$pkZL_N`t)-~wPeuj1do*3WX>4$FfC!9JHr7>L}iIK zcd>B$$V`Ohtmkfj(h59B4v_ruT|g73CEunB zlNTR%XW_hJ2fpDFqwacl^sf4xvd1oxE3a_!!cfAe7Y|&8-6{2NL)S@blNQR|uuBaH zX@W*Us+oK?ZM6)DzXHdAm@kbNb=^9v$$;q5aE#(w+K}FJFDaVzp4+fJRl8SU;+3nl zW>9&%-`m|;_5BBaZ}pq zRQ~ac!wPf6g+Cs1zT@HPb7%pmnj{)AkhF>7e2;-{{*(GPKI(! z6mMq&b1K(Na|!qU54mPiwXlv4!$vJK`w4~A7T@?C&3#qjhC_T+`AT=(*u+a!>E3G> z+JtHE8(*d?zO$$QlJ(+{N(~8r>kZhHb0Rxi7=SrL3Q$DwnbC2)^Oz$KR9OljJXF3a z!ozvUKQYNtV9HI9b?DJw6G^f>6_ExL{y#<}!Op6BNQi_Zw1tA2@KbTfmIB?<>B(G% zX46ekYA;UBL>DWr$b@b-j}RAl*uw$OL#Y~#TWzCHh?uAq+l(w|Ec(A9ZiT19w~LrMsPk zrk?PM#_=26&!u=uI~x)w%$Sq71fpebH}w>QBXOJh|+eMt+`n+3$z2~rRs+C zoA-2sMJ79n*lA$}5 zOP~O_TapSZN4~`Wp?!jhuO<@~j9EHevw7<`lr8!#Te)rCvoK)ZR)Q-#c6%SF#005I zNbWZu%e0Ii+9uRjxO3{qzDog8ZXo)m^cmzMDL3{JosgF4t@MpSLQc~%AC$*irUxnF zEz|cyrN)>|q&>AjCLaKH%WxsRHMLT~jBf@bn>@gbld1tTRKwiY3}&!~k#-RnkB0F# zfw4_4qiT!ax6>D; zl6ps7J)7k{v^jxyu2C?VO<-(OS5%^aT4frbRTBV&a-B(>z^@97A}}6ze@)<$QxN!z zC8s2?OdY2qaMk;0gSsEU8(8QBiymn`sH8aq(G1@-*`GOSBPZhe2MM_KDl;gz z!$ebWrC_^3%|Fet?qFs|U@ca|Lnnr0R{;cFtH>C^@=tTEqM2%|))`i;rvWZa!&M6$ z4A?#2>Iz^@T0BP)1XYrQ#sJyPA5g;1tB5CzaG8J)AoY$pQg?u5spn{&kZ^2{kySx( zk>^OQQQ&xEU8Z=U?NU100mC229Wz-aD)y+vPHG-&g>rNHcET#-Ox+lLE}${+SRn_> zyR&&oHD#tSYXz$W`V0poWs3NBGGwUk>M;+UMwGsAF>UDbZ&9MOFc$jX%TpUfX%J3p zJd?baIS@Jp!5xO-KyN>Fkkgc-ORxc;dtS(WlNV7X9{r3=&I z$LaP=uO!-O6?`HO4Q(k?UsSeY@R=-kT&r>xI`qqe>AXl=&B)|MwoNJPq$w2RvTT*S zSXOj?lWlEHC%w3Bkl;7kvn29cE$}q0r5-b?c?8X+L7ZlqE8VPeJMPB_KhP1|6ldprai&hO_8H@wqz^ zmW~CBR~?HxD(>x3N7bF!K#R`*03ii8)=B5tCc&P=61*Opkvvw%5?qNIrOQgJeY+4a z`h3ne9WaWbLO7!!^+LiVe);1aW*q<4r3<<1Y%6^-!w z&{s4Z=y~>Y!~FoqZFj15(SYui1)azM!z?m5VDv9Pz$I&|$c3=tEW(6Hx&I;;>+}D( zP)u(I)Ps1@9{JfXKO5zzoS**H;NO2K{iFXT`Pn0%74jxOg}VVMtmSRMck**c6f9tp z`UgRPsCDvFDpBj@r=-R!5d5tdsN15l#2(=K2TuTtw#(0Y`H9I-Swp@$v8tzp{S0{z z@mGg)lQ*ZxEj~X*ilyB+C`;a3S@9N$0Z|b~)w_)>JmvS_?M}jAsz1Jlv1%^dQQ>&L z=jD(OGIrT%Oqy^8G%*JK#NRQP1Or7;D3MxNMejf%_I;eY={r=O+=?9aw+rUZ)K(Cc z{FJ_Jt#zA#LbF_Jmx3*-fRh|!ok+7*8I#&cDU6SB3aElUy5-rmbgcQfAYU+_Ftu>O zk?3$$l@ftn;1pODA)hmR^i_Fzvo9|YDJ_}~0ODpH53@LdPzF&QxpLk^)G7cw=gEM? z-cNcss++;m-|?@-12&bZ9%?v8X2{^AUKw3jm`h5>4ZQSZi=4Xw8F#C==mWpfeT41r zbekK^HJ<2$xIV2=T;u&#BF*oSW?Jt){HVw3#*>@~k7(wlUYN=w-i zh;hoiLf$8b)A?mcDipDS;LBz;ros*D7bjuTfgm8eQDlk+Ya>m&7vGc8K61ZoY6zkm z1*?IJ>AkdVM3v#)*(j){UWH%tQ}i_)QD5=O%UVLpa&IS{GWlKElHIP={K+O9hIG&( z^-9%}Y`D?!zh&y!zYdcf_PaRxf&C5pU%xaKf)Y&1ITlDNmbyrB$G~_$uKhoy17UKE zQn;-1j+NSCXG2Rc`-(r=oa07yk{)MQ?TF;MUmUh4%@bOn+g$32-0S3Cl4H2ZKT3NB zO>C%lqXI3*cqb1S`a7ni!rCZnAsILW&SPAeut?5Xj7d30T{jCRQqXMaMW8cJbt{O+ z)?I(Op?(KOfW22h!!ApVNiXVd)Str>{Uuo;M|-+tr0gVm(&G}x=s2+>lP-;U+@$;L z5R2pzLK}Ri4B@_(R9k=>tvt+R{DCPplsjgFvW=Unri1wYTr+|3qR(V5^a6)ksRy|; z7v_W;=0cCzs8*^TqC}32;goI5D)cAic<+D7V_ zZY>+>eYN%KNe~VuO>q|(@O{AY?ib0u4Q}|#ON7pKW~>JLqHI1k5F~k*O~DS zU@%wiZHdkySGwgAEIM&szx*0(@RR}EDh5%9*}#d}+e#TktNGg%nIY^DkWvib5>y{A zTw?U&U~uOWDQ=%)+s+O}QUdeDVtO_w3#!40BDl}O@|wRDd@6-wRJ!A*126$}vx7>; z4B*vn^L8xiik9i43aRJXXf%xF)n4rA1lAuv7JwD3Y<_cMz>WQ#U^3-P+Tc)P;;3v) z=FaA@(9?^Qk=g#4Zj(-lTqhsPz`Md2Ib3N66MA7M8zq{C!+MVSMI%;F~?S-{+HE*Qs)oSBTw zt|KB~o(P(9f~_$1?=-i(yW^~x<1i@)OtVrpW!PgMS_kI)P|s=M)*8ErWvkN z$Kzkf@q$MU;S$NdVPD@K0W2RLS(r(&+Rsj;FBeJ*-U%$y&K#`d+q;Ojq0QoDf-K83 z9@Yg@RQ!#N@gSKNt<)g$unu#8h2Gr0IY@Dp29byLr3N{pIf!z?PeIiJ@;)FO8{yT) zgDkgytcJWrpbWlg3PieGBS^UhskK2K0z{n$s11tE{)gI}IODUW^aPp(+?|dJJ|e0` zuwIw);*+FWmr>MzOwYELUqe8alc`ZSlYPLU7(lgnZ zc0TFt`IxRz1)vOSK}88G@}eXWd5Oy)&bSQXR5A!CiZFu?KuI5wxb%^xq>q0yr_1hF zcpXj6c<6ou=W$u(pQ?X6`%xxDRUS4Yt}9ndU&`G&wqYIswZh%}q-E+`@}A7H)(uqr zC)ZD=jm>cr`Ou<$^~$nPq!PIDSI?>*a(3MRRX@x`ECfGpm8X!;7e7q_{-d-8{;j(amn%IAYfQcW&L-^k2Mn11U$A zW!7JqWg0KvXmZ8DC3yePxG|LCC?3%$Zr2xs9CZthde33qUUt^G8YI@5D<{}MVc+3f zbt%YpE(O`1!aX2zTM+kvh_ijsliRm|$Yp|Dl+b!Z()2()J8>t%KN73FG^=6W}8T$y|B^Bz(O~BNLn6#m@ zuOjZ2X%KFi#^RTx-(a8l`E>GUGk2VNygHeO^(u{b8dnh~yJf0nKJZC5&coBwQ0t|> zFk{zS9O_n!kFdl>rb(v0h$_h!$?xk^_B}rkh$aJnO!Il;x{qQW`evIFe^i_mZ8zNJ za`$0;ES2JjDb^y)et>tmCwd!xnD&l&+H1z-zQK;mgJv05!zB4TZuUfPPQ>@pIpS~0 zycuJXGVyoB-5?{r7uQRdevyeOOVOFQUAl$8JCy6C#Teo!*GubIJv_W4?s{o!-1QO? z$1|SE$|gj7F8Oj+;&Z75ekjyDlU}1^+b~|05@NfWPJn| zN(kdS-AP}Wt~O7J8804_W@|I@)XO?w&YWhOMo&^AdFs~rw%??RmNMI;ag65Cew(cfOF}M(+=`TZ*apXy&AZP>vQ~m zG2hfb-oOW&_)L0$5fgD-NCu6wOe(3FGb~bzTrir;2ap!(-;+Gm^dc4@g9%lez_!mM z!33ynK#^7yh?4etN!!F{QhD=CE+o1UaXa_M{S52w)h;oXp4(9wOTWgW!B~1GAC1P+ zrhGLRORoiUPvqfl%9DT^V!sdq4Su--pAykGWzNCkCGk&CM4c88Viu?H%I)x(n1N?muiPtcF-I(=UB=vc8ja|-f6A_tY%n`k%HI_GVvSzM5a~z z=X1DII_I0Ql?XU$qC318+)=+BqdO6%7g5 zRncd18}4a}_Nk($0Y}mQ+R(IUu|~Cv*4C&!C>lXm=DvoK(OOB#*=|ZsS0&HpD%+kd zM&|WQ8r6=)%iX!6`CAhhlF^?xuerrz?ub2zZx{sH@b7sNiOP!j>s0&!kGUmwGvTDY zh!7OW5!Y{2)NZ%AKGub(|Kpo|W$LxIa$u(MW?u=Cf9M9K7sbl(#`u4Xl}G}Xw;5J( z;Q*|pzsJ)5@3B&{-g}&RX{1$Lv;r#`nX!kt#m5&-{pKAy8)v-MWpY61VrXgkJaR%T z>1U$llF#S5?2)T#{(srfh`w3NfDT5I+Xo|o_I1HXLHpWR%1`z6=;j^StQ7Azx`eY3 zbBsxUp}!ws14X_>)f>*{B^D+$lgG`TN!y^Wk_)3S)7}I9LkG17DtBR8p>Dzs9sq-g<72L*k97ny$p08g zAb(qmwC}KA-b=`DZBch3#qzl)2(T#kUz6)KA#*8)SsCs==Y-N{8Pr8>TMtPAnRMH7ihIQcxF5YxVI2;nL9Es}u6 z$K<5FLUH|?J_x8BTtjtzYdUc?On)`C0{AX3i-QSd!S;Y)a&YUlP>RI5j^r4PS3 z-i#l9TYL#ryQ^z{4OVceI~oAKdqW+5o4A(|QsH=21KnwDJ5RX@KS!4HQo%^EU>G}r zi!_qIO>&BVgGc=AoudECg{t_MBzF}sN#%|MUu9P%Vp+|lq<^Xb;J#)6(oi)HD|@b! z`>PZNM)*mQ<*de_6RKeUo&jGVErXyt>`Vpg|a!A(COUdcu@?KdYXlY%Q>6^(WFObm?IV z%JDusIezX9=BT0!OY7&U`g(?844hE0&=SMpJQ+piQFYZ=23L&*5J4O68he&x$oc<; zyT)Gr)m>u^Y1Lh0DE(y62F-8$<99c=r}UTpAoi60(%nt$DG9tbe$}U399$j-6C4K$ zmBnl@8l4MCaU8frulz4Lfc0um?)?;N%V6t+c!|+$tXT85I5!g(hk2IpFJ@cK)QW|v zS#SG(Z6qjJoXSX0==ncoBzW^=Ybuiw1QO=<|3o0s_%xD629PGr{QrbBkLKwMQ6KPO zQN~q44-9R%6!rgO?pxrhs?xVnJV^!X<}(nbfG(g zT6ED+Jjw2KjA@2qDvB-?(_}GCG*}%2O~J0%m9h)wm>cav*#*<&d*1imd!MtB(heNH=kUez>w`Y$7Lhado zc*C8mW_wo6??!tz|Bslq_z8(@~*{(o}71EH) z2W38+LuZe-2)Q^ssDkACUm?MY|31>D_?NO2Ict)Zl+Kz&``QNZ5!4Jh-jWa8Rli_s zTRFbC@N-H&R{cDIakcmj@3T4!)bB8*)$jfpH%_;E)h)acEU_DA^J7=gmG&zf*h*xd z_0bgj=;<$wz~9*~jisq+Z+3tA$GBJ)hm{Wl%iipdaVH04!sK{33}KaY+V7C^0TvRy z>DcQus}rXHsyHFMnl17d!A15#RF1%{nY0gUOYi*%UO>0RZoo zz5$um?@}rul|zkk??p27CQ8fSt!qXLs!G+hwj*zZb<-(2xqEPj&=xhur){T9Du zw}?2DMaT`nFA|SLRnjlv>v%E@Nx6{4*rp$7cJTC#;h#|v*1>CMBysdk4ynZQQ!$8z zN&@W&=*jm7shu^`n(BaecqoMjI&5Yb{P?*K4|(~qUZM>zGtj@Cy^Ta-~rs&{|gXm?4QD0cw_$nznhKyb%-AKJ(IA<2s07BN{B`b^_U@& zzgS{d{~+-{rve5roX2lfP>SZ1+6=d7H>dwpesZJmXI+{wrauUJ5Fu;9n3X-nxTr@CLAXwT**Mb)$AQe z!a4^f7FW2U#k_MYzQSGW6%{SntS$`NaIoe@soL{I|3=B3h2FJM0~t{Q(Xt9HP? zgC0lY5gR+PdiPrS1_cWRN_OW>H=;#^Tr5HyW5~s3&{jG$-{}8`ht0RAwZjBU&b!*)x zVGLH%A`wHk=0gD3UbLYCES!LIg(wdwk18i3Z~S+Ydh~Oo*W+Kx((TXU`Y3c)U%=Zw zUX{&qlF{w$9$ud94UEWj2d3dfp`teG5T@TV0%nyr+WA=dB08aUbn-AAk(fH;?iT|CzH5bj+N7HzIzr z@S@zO=Y*{n!I2XK7jsUOBAPl&=%isI00Chab?!KmGh_@xhccv@!oVnkbfBZnypjF< zbZ@wyHt{oC_cL1jd>rNnm)^k-)d7IkH=l*HTRilL2LkPF@z7-P&?g=Uv}eS_-QgZ? zu7rFl;#!UTdb8zM+KS|$U(4|;-+2|MRGo=nGFS6=hdH*Paty^5+Aw)>M?hIUr&IhGlszPVw$z4bRfFB|gGdu-3&g`)77vZMMUNtbq=k_t2Lul?Ms`PvrVig9BdsufJXaYi&A z_=1>Ce=+%@b=JDMbd6jieMaT0KjEbEg-2kjZ&k<>KGAU`A#bSFu7PJ-HvFM{1Fpo% z&)!!4j9xkM-GH`$wE0;TWZV&wL5hw?*k0)-d-SSeN!Nw&PU9B!Fk1Z7iWly;2Z=ex zs>6>J$>_xF9rA?4ZlskC}5}>qsJr8y|ijUc%eZu$EPZ1#<+=S zv3<`Y!m^utN)j4&SX?zBCDg#zHsFEG;8Ly`&(@F*+tmnzVMtCn9B33nTQSz+nRi~m zI=w?Hy5(SuBs=Lx{Cfu$XBUt!P9MF{o(T+BE~ur{&<=}E{K5VQ+K3@9v$~+XXx;br zBHD&=0Uj=RhiuaV6$pU=U+rzcZ5fD$2*r9c$-;2Zw(UZS-t3eqvk6D@QG&n#g}}Tz z8YGf|k#83IALJRi!{j!X-|8uwu+8F(S;$@W^bGi>zR;tdi~3Sqibn-E*eU8QE{}Ra zE_`5?>s%Z@uKa*u9IaQO{lUz6_OUhy2uvB~uO)%@g6@G;DnH`54g0daaI_;hrcP6C z`-E+q^qH`2gCpqH`%H(?XEwkY7p*T@iTtU`IjNB>+C126sAsgNhPP~NDlCVvYVsQ-5sABMLBO5zy@vR3VWv+hXM;Z=eL~lEi ze!Lt%!X9X1$9DU~u9ZkEZt`>t!y!yaAT@Is#{bZY0OstJSM5_erj~+oWXaSbk9q^l zuC6S`SiS~M9`#?9{L9j6fOgcRxTE)(xD9V=_-%MlW(?h@mTHIK=t24B_NN{_b0XcE zz3d?*+vEQiNyccM)%mC5F1+2CgW3g0{_0tQ2h2MK05HAU;7#oI2F`-rRNOo8t{RaC zW2d_o!GE5*2Dj}Lr1xURHm_=PqKB@*dmnpGhSB|Zu)*pmP_KuqwXng$C5Ai12J2A_ zh|dVzMmAVC;NMMbgVm8&)xkDcd{EAph7H!|rVUoid++d}VcvUp(6D^E_wF&oOKIOY z9G@X);S&zVQ~9c!ZMWDCjPAXwG@?#7-sP?T8a8Awq`46$F6%I#^%gF>^CoucV@S-r z;eNY)F`e~C(-!MC!xn4uEmPGAH+vIz7i520-h&Y%mHyBy);XwPe52h*rw4FFHr;4P zr&Pa%OYxE*T zVi7jd_-VeFF_puNiC1)K84C7*RbLE;Jp~!VD(Y_7@9OJC>$k!bR%zchDzQz$iV-B^ zzdroK?HO3KioSMX zp4&~a=-`D6N*t!ppowRn}KauZ>Vcg}w3wkFu5`eK*CkkqW zvDUiY4{@C#m*bSIW-2+hOaP8grI7@3>Vaz5KvKcS_*TZaAE^#0_$hV?kSqac41xex zM+Im?0CR9ch9p}s8stIB+Jp2#%9{N!IKh6bRX3hRKcv2Yo(x)o$xjeJnqv%$6dnxqjt0ZV$cTnNb0MjB7v126^GMXsq-cF9 zMeB1|u&&>#EZV}Wk?r4%;^OsfQX&?ahNB>b3fQQw_AisFwxDRO9`!-{78qKiXnia)1mbF9cb z+%x{|Q7Caeh*vKRz`2-Hncs*qzdlx(|Mh5!*cLrvR1N4qy|nc{Pj*yji;<&fIgWk? zjj&iO-FqmR%#25JFxS{S5_i^lVBOX%cTxJp`|sF$2E=JsviC*t+Cmx0YI zK!|y{_^E%`!c+39P93&zk{kBSw6oHk_^La7O;rT~9f}pC7f~n%AoNpj;wBt_nZ7x% z>b42kb~$a;Hd`zGrUWiGEBl<)vFwdno5p~{j}HTfi@u^~;-e7z*A=z40f|tsAuEtl zp1_?b@OF zi9LDiaqVi#<&c7+bSVp?(w4V^+A;0N6CLPTKSL{kjiZNLLQzS{gD0`E`mmC%g+{(Y z>DqP(emmOy?Irv+30G&%-%G1m;z+20wVewhQAerC__c;i*1m;t%xGU9;z-{l36xS; z%K~tU*Akk#<0+Mt?!R;7-Up!PEo4G$uk%}AI=^N91I16y2BE!RICKTOP3Gbi`diWN!yeuf^?*NwX_jR)1T9OZ?3PZp{fbk0r z_%ZOuvha;r+IKJQg8?`;IN?Y8@xR!Y?te0k$gw9BiNr`9r%6s0YKaTx(_ zF~V3G*7G@I5Ym2E2WWcC#cD*N!SK5zUZ9zU#<0mOT=*Kb(u^6L8wY;S1tMi8x0rai@_u z+eY_92z?CRtNJ16Whf-++KCAX*_rR%it7~upWxYVt0ui|_PgGqUu>)RmsNO9&s>RT ze`+WGrmqT28>XhrfL9#Tsisb+Fzf8q$7Lc+%1I97W#Di;qe-nkh}=?-VYhwpOlO(e zpRJ|pjPw7zf&4(i=~a`5qlK7F`cs`0#kIo+R^gUAHFXT$C`i)b@>q zSd2~dcEn+{BNRQ&mxc~;MG`M{ai2c)hOYCtT8+^Fc#WeP&C~`}U_-9iTR#1H19gAxK zB-yRLSjn)sj^Vj#fLE<*0wCHW5yq{)JfRt{+A(IV`*y^RHH(diIJ+V46^J{V9Iv-iDH&nU_s_E@@uJ#@JEre)JCT42Nr`TpDN z$x2m+V~U!;ZG^j|12t;(8GcU!4qX`W9PUL+V82Q9bCP>tjW_$N@&^?E0$5rrIHVaz zHy=Ap@q57q;^mh}`8iV9HU{&Q^>Z&Eiz$5bQ#}2Rly;eS*fiBY@AG~oeLZf|{CtzT|`#j8g_PI;`3Ado?~{Mt|s4)**IcJNq-loLOhq}zikYhCu8dvF2_#Uu@|jo zW{w$2kh344cN1p-4z=5!xBeS1j_hD_Xq?81dACPpyFBUJ*tE*O zoO6TU(5ucb#inzd!>M2(^`rae&pe6WQ?5uxAkpfKG;A2pLlf~y zKk+2?L}t=;MIL`a#@T_%hhwf}I>Mmz>;RWpihsTnhifBpIK{P=n7YCkk9kU_JIEl2 z$nlg+c6j{ri>C!9yfW2)?cvz0KB0B0fBNCbqKVV;)v?T_V^bRO$(g(Bq+~>=M&FHBpM*95Mpw0%7<4eP$%A~B+k$EWX~xrzcW08uRSC?JobZ7IUU702#oV3vCW??(nd-l6Yd^NwA%0tTxf5~T^T&wQ2K=@l7lod9 zr--F*M^v6bys~%Yt0(Rgp3%vV=J}_O+NF-ol6)R*qYOUc7>3kzfLm=YL^l3p`+A!T z14Cae^ebwnk~lHpMfw2~`d_vFfLoFr`HnvO=p~LmN;1ED{;g(4H^!Uqx-Y4v^78kk(dejh#6K-StRkE(2+nOGZ~n7I~!k$vYJXm#t0#Mu@Kv+8j5J@<5Ngh zOLa0uk7X$xd(nsh!*lHEn~TrL^IY0)d?Lmb7`&NcWxJYFo_eqdtg{G2EUW^TLm=3? zlY{ERQCk*E@HHVQ>@tLG*x&sF_PUr|prp`$RXLwyq=6!ke>MrFrH2@)%z|W3;D}RT z;D;?8%}MZzAu|Auvrng-Wd*eQ;8Cw|Y2ze9ds`xuNTD(0MKDAt4a(Vk%t;aA`M(&7 z->#rA%gYd3V?jO`H`8?umj^eEX?j_kS=`A?z)wrj~}Ak|CZFy#hcsD+dudZd(W!$EjPfs0V) z6lHm$%z*$jZ2)ETXi@eB1|(2+s3_~ZiIru*ms6C{BPrAKN&5npxgoVmN#^epq6+$R zEJcbV*1S>BRUEu`I#PGFOZy`$Oud)`A5?Qz&4;oMn|}ap2AryL zKEcLAjQxju63olGF^t{^Khn45$+@T#I9LH~Ji1uvQFr2p%!TwrIu7$UzP4R$`u8|K zxEmljb|Kt(BSoq<1M;SoT(-R*t;%0cJ1XJKlG)pLsfQefSfN|t&wBI^`{4Dgz=$WI z&y%=|%9qqfe38L=3ZG^B7`L=)HylKir#=qxX9e;bDee?R$iSD}TeQ%aMXA8iO#tnB z?8M{4PcoOFnc)jjr=W#5M*XN03gU&dP`iXFDxwkJN+)AXk{3)N=5`zT7g0`Jh(o@; zKts|l{{vgKI77`+fqIN-Ui8v|l(=>bw_lVJW?OnCwM_NhRM3P19H1%og>*{k zMJNTRu-8ByIA}#kJ>hvPT!<->+(#h;wtwJr7AJ>NIq<5AL%V9qAdOfB#o!fgrvkRy zub~*!CQ++l#NbqvKghWSF*pw~C~;}MD3^%A8KD?JY2gEu<-SfShh`i0HMT#53Vpsm zv#%nm(AyvgW)=8Shgcs0OgX=rOl=j{1gQXM-pfSsr}NCDL-FVLv*K=1YzGru0p>w5 zetq}~>Yb#aRedf>nA#JOm9>zkXM!k1COF|!KfaVr+tgy0_8oSLA>G%9)SJv_k>G%B zBp+25V*Xofdx+b89LI8O>EK*XD5x)Fz0sV{7u~}{x}olezjD&G2+nV|X!YCH+!RIm zs=1)hNNjBeD94S-lEHIbT9PPhBu{2TbGIn#kKj4kqAY^hYgmHqG6W52OG3SZk%oLm zQqj_j)jinz26|7kX#KrtP2(^LP9t~k%^ieTn`k}AqSYl@rC^3>9Vc2pDi2TVmO3Uj zOSGDW*~wasj)U6A{cnt-_CAs%)S@(Jfm$?5dLxc9{B$a(@@9*^+eM!u`ph!ieA*zX zJdGvTrXy&G+agINajWmJ;>xQtoFTeXEV>UC-KC;C&0zS%!F0d-M`Fvi>%MT^6{0(e z;TN$)i+p{O!x%%JbqI>)qFS_?46lSeXsEe}C{5R~1RpZNNU??4b4AbD7Cl#qo;uNE zGJ8Js&<#vW{xpT!3nNP-6edeDGegP5IG_olFjV9bI}a80vB$gnaWZ?#h#DiA!$p0o zs6W^s_rsh)lKBKnux+~6Bo|scMJo|y8HCIct+!aTHX|s=?G~*jxtBm|+;L+rOYkY9 zDRtcJ61g%=ywRooIEGVqxJ6H)=+Q)vN$!rxgQQNof%vfN zKSi`|y@nVu(poH9(-0>7`+PLC#^tn`CHP9?aN3x{oZe&6lOTFrqQ~U)Zzm7JX%S1X zz5l0hPO~I+QSIsRqIIH0>!Sz?P8HF5puy>+!L)vVHSuGsvS=+5tx4}oMH3%AN z*{b8DZo?=}U6MuXJ)*Tvv>s+?{T!yAakaj66?1y4MQc+Wt(S||M>&kasUliiMXTgP zUZr*ww8rJMlqL8oMkg3)wep>|xaAQske^qhB@C84yCm;rgbk6} zEh6glxHiy*F+7vw6TM%Q5+_Fbszt9RftrX`=xx@jPaK5SCs~B8%%ZnnM6g9GM6{WD zQ$+7A7QK^2Z;}K0I`YWqiu87A4(N?b>}f2*R~d)c$MUN_j--O@Z|%NUvfvs>c?Eva=e!KCOhwgUtoQSFD`yk1fik=EN)~Vp83~f5i^*wb57-UBBLVbqF0ZkLP zn#RIfI+Kt=`j=yjx#;r21n#(;qGkIGpZXAZ_e6?aOSeTJq6(hECbtiRK+v_8gBo@0 zX_nyA5H!56I|3H1mPy<5e&8~2Y9$IzDH1l4*4q9|%A+O6XFMBGPE-vEt@ zx>5ZF6L^j>&>p^D_IO0qQ*!P0enn=XA3%JJS!jq!vZz@UNnZ&ZbL9icxf`twrZ4 z?9YOx4)S9boi){5bdpe;(CnBWOV3P1$M-S`LLpgrlfL%g!OdGBk|yBZ{|3|gft;s~ zWX8J46?vHd7_B2>4MXX&?ySEvU}cT$}+(AoU&&W3=Tp2#OqZ38_e=)W=!aQxnR;2(3k;^(u?j zEYZqE$ei;+8~1qvYn^D(dXi{WMC%Ac>n1Xprfxb`gZ=%*6w}7K5Knr8y?Me>G=F+C zHW;C~zCrZ80pFpb^VS`l$|BKcH}uVgzPPEphb7n^L(mYnrEyZZV}M3fsaIIEmWkF1 z(TaErw`6}ESL;O4>b7XD7Ohx+vgT-&Xicza9V1%nM61c|QnLCsdts^<3oeeDm|l5N zSYmw*h;nG8k9DQ}L|+5>GOOiNKIXPb^qJfqz^RNgwz+~O*ltHqom;GHw6X-A^k13C zWEpet*SNI0-Ar(%MfFrs-6^Wge*ZzN55*l;?VLlAx4A5;yG1n-EK6B58xF09i`KU} zj8SF2Tfzy}MC%A6TaRR|aoXBimf&mR!kb%%FwCqhTcNL9@hd0qMvI~vQPeMrOlE^e z(MX?WruROY;v0wK6C|M*LP&_?q+nde*NfI$Em~I~D4O|d(Q1-f&RXM?**uouYZX$fqe!)hqQfnUibPSJ zC^AXid$8nb7jT(5){?v?NnRAGcmKkqzRY0^Qh!;*$!is@=Fs5J69yr5v1t7eK|@*D zDO#gQJy5isZ_(NyTDwK7N$Mf2H4drcSc0!jNUco3f7Ha94MFn`PTsGx!pqEQqDT`( zCaKSlA0&CJS%PgWf`*dUFUgarhLzM)MeBVQts5(u)FcdR!pB>G7)sc3bHR+H4u!w0GUKNk^OzD_1}SQMwTMbAg<%P2BOiJmOcV{%%| zdg9dnhgpJc*X`k{QzUg!oPPN;r*5uA>pBEQJuDKfX6@g4*dRH1ifDbpqP0}CMsZpu zT2m}qZxF2&qSfSd9&3$LP~V-&oOZ?GG)eTdurGsCyXdJFJtn8ggQf0PmSFq$!f;OO zBy~}h|DK zoubv`)X7@oaQZAu@O8)G^!Xn-b$_zx*|~sI*DZQXPFt~mE^a40lO@=?5HwT^HA!7m zIsJoZO}A*R7p?uG)%+|teK4)x%^-ekH(InN;X4Qejwnt$ag;Fz%xgG|!RcwDHI2iB zj2z!!lg&7s`dNanCl05@qUSn`p3iS%PFYhi?5T{v^x+qS!Zs*jE zv}j!QdQ46o&{MTGDL;F+-Ix8l1mtms3Tq&HVKJbXaq~P>ij7_PhSP zZUD!)47z8o{#;76uWckHpbWtR9m{>3!VwItuWg3+h$`cXzy(jVIwPBKS2gAE|weVY|qi#@$L4- zXN!Z8rH`_&Q*~bt8orK(gFp4__dwx6IDg+T=>&#vsXrD@--ua^`aDRijT|iUj2p+6)?wIRw2i;5L=~`#{*eb(1l4Y zU6#@@ax56Y!7{L=ycM78FvXucn7}X3rdZiNzlaNX&3+WQV3tK7+B>Vj!yyn&)jv6? z(V{MA2|l`@HhlTx$TYNcITvr>e4mNdLs7Trtwbb05Qj@=1>raC?94LFbVYmUrGmdHF!LNK62Xha5D!6@d_|4QbWp_w!*wY#QKm_{v>c8@H5 zWJ5VlUxYjT2S=CYgwm><_3KeV=9h)?Jt9TVK_a-#Mr4fa2?R^gd?1%Fd!dth3vvlF zf^U9B>98F{o&%}3Q&3Dl!}I>66d$R0q(p4HKCZrVMc=pcDJ-{A$jb`RN3oYuq3fF? z`d%Z?xRX}&)xon<^wA^f(=$t(vp;pnM%Sp6TW)+5`4wsd%FP z>Yvyq8*|~~7y2P`;e+*1?xM zFnJ~XI6RXhS3YVe5&<89_W4+p+=12VAwRu^mMVJ=Rx!@7E`8M6$(H`u=K!d0AEIR1 zmz9Iixbv(*@$^ca!!hF5I3C_rrDQ^(t<0Zp%ofoDl;{DhBA@)GkSZRI8;Xz`j^w{1}x)OreI2(w#Ws|MGiW+ITsCFC?An| z7la~4iyR~b*PkI;IR5xZiq=4fJ9}W^^PqdmzG#@@wP*)%+-)1m!_rw_jkqfvi8SQ2 zF#IOQm7w;UGvV1xZxezdy>*h_BaHN}Cp$}1D~_OOMN1UX_$((uM!xzKs*7o80Fa6+ zU0Sgy`;$dki70ClWz>yuUAzp+jFqGf_GNd%ooZbGqXQhA+Q1CAbc11ZZb~vOIyf?~ zy^t1iLhFrOF`f|CXW=Lf<{VjZQD;P~M}}ez>H{ntx4YqnH<$KzY8=~Uq( zpb2DbYBq&bI}R$q5|g!H-awMf+FA^SvcxpSsi?QQv}Sy8p>a6JqVHtUN9U|SpULg> zFvN^Iemp=@nH)+b79xsR0xvP~F^HDMo=j2weS(4tno(V1$)#mu>l)+R#%@S-a z2&$(Psw+e_5p2==$|g>5rA6yv(ONB9&GNfCWsqz=gC+P%p+VPbOe}LfpDB7=7CncH zo;uNEH;T`N&?75MucN-jrTE_k#FXvp>%!C7B8JF$&U)2#R{zD*6vL z^lyNbW?ZccMe73=t(~G3X}7X_iD*67qP0}Cc8k^#hStkjt1<42D7I-V!B-ZC-5nb_ zb-&~jBSz|yM2{wVOm=^TU1r?WwXp=-r`Lva+Apb#;7s8DFg+lNk|te3yrC{ zNmx3V)(b@IQj69!mM}bu(-hHqoJH$&(drVd_$yjRv(`AA{xF5u@>Rs)v=MW9XbL`H zUk0Z?T*Il$5m+p&)3D{G4WDu9JQl5sMQf92H97q}X^@;8BU&%EXl)g( zQJh{bTEEOAMvSyh6s?`26@P`(t5|ECa{4q&@Kwj*^w&>0b;~Sz-nfc6?G`;Ir^5zI z-E@{qPODjhuO<$sfBS?vz1pIuwUjw^i5`>F#UUr{?m~$%AQq?KI{z+oH8dv_^3n+`wslh{G71 zCW+Qk(JHx*d7X9`amKCtm$3w2T^vqlh@LYndYZ0ePAf!@$>}WC6Q}McOX?ONXo%Bl zNnKPq{rqE2UC$qg5hHbHiq<;OYJL@Lg2iauoP2^M*v4D5Hi_0KPOlQJw^+3HUBPK> z6|E+x*Rj?(fS`SD-aiy8SyJ5Q-m(#_f)o#(+FIq>kgs>JTRkWUO(fY~d%xThITsuro z4`i)zI333ld`-}xr`0l2U5@op^!vLfhnJY!L{FONF**GQEHSHAV|i(leaT01+3#B% zF7-kL$ZK^W5!xrO;f%=M7x8mkBI-Gi?OX&h>7U_58v%U@FHy2^K9o!Lp~GBiABo}( zmM9*=Q7p(nD=}IEWND+xQq=q;iWpO7iP9aHg)7a~n_cKrOnvu%$duSE`qm*FE%{k(%>%Sof>oI?CDdT2{hM}{3KS(Hv9rXYGWs|J#rG1 zl5$3k5w}Y^n}?Ird|U<7_Rpt-h4U<*2|J`FEv;h=umUMTS1ec3oyfZ9VS70 zf7&_-=|{7qW52l+0@dp(lt4il=I#85o1WX|UJ89dAs^8J={rs#?u`up7X^ncKXL$h zj%ihCMih#XnceyRBaX_C`m}F_Akff+FeqjO*iNx!M@YXhDfjw&thmOa_*_w3BZ|#F z;cb{;*7V+t>(Q}5`+XJ{lWcg^>vlp1{rm*Z5e}z44gX-#PLGyt1n<2=3AFVVgN;DyJ0}A=d`ZwK)tw)S)86Ob9vFBL z?qtz#Up5|Zir;qrIuxY#p5d5^&A>z#s{E2pxcp2v2jhY{hpqN!uIEakZ5w`|>b?ms zsORJGYOUw<5wQ z6lEa=T;1)X-Tm4&vZSQl9>ZUt>OLRUy^N}R@>^8hYfZf`!-i3n)USV$}9iaL7|czMl#~sO_ax z%H#q})b<@ehShdb46E@^VM7MRV=RitiDFF@o3(u->?~_~1GEeuNEwkyQBAeMt6tm3 ztfrq2?--;w{*wdQc3p(9#x!F~Hwu%!B_i(?E}rHV1+3RimIyB5kVeH@4FOxn zH|rn>Ebl}4jp%0g|H15LufZd_*~`dpVrKoTv8rEaWwNn>$Ss-oVEnqbFCtItS;_xG z-Meo4kqIi>yhL@jh!yPirS@I%7HS`bdBH61sc%i=Nk^=o4S_gAkMbB@9srdf4H2}|K2(D4H#xWGAeb2)+XECD)1L?yUi&^F z+e$OHan;dFlcQ?iI0(vDmzPqeqxJz%?Qi`)qV}QMUo47$I3Zl|Nusz@6pt|qcL@~N z^j0;~cx&!IWW3dT&C>$|I5~IWS8ji6GkoG`eN`T_enF)^wTC)nEUY_Bu`W1)jP9@%|7F6JIG9C-mH*tkb z-oUGLGmYEM8A*=j?Kjl(e34(lYa85uPXimmwr(0)WBsEhULp?x%$?y0-Ugq zLsfg{p24TKE+=(3r!|ZEEu53vxXYcs8;Wp&{cv~sYC1^wbpPa6aELCB!)<`*4DR*P zyQcV)U&O(=kIKoZA3mFo0uZDzXK&|I$RZU-7~ z+@iAsx6v`V3mnq|laB-@;i7|iIF=TN?9Rc_xhGz)XM&ys++O_rxi=BlyhtYauR~S+ z1sRd#@fW1wfLa`di_ZlAoKhS;T&DQFIN6zVhjQ-Bk`dn&_$OE9tCME}7Z<3LXCafm z!AZJnD4+ZzT5-G3`M?)}vz5e;l*C#}m>2iut@8M19#^Khzv?29pf?kRgyI zkSowi9j97Po8AGP)PF)dzXiL+u}44?pbvTYr0;Y<0?l2i^+^H_fi_eX5+=|EfJ|Ct z#0a5B9BC~OUit)RU5|u;Y!W8m5J&?cxRasLC5{;aSpvBNia?=2kw7s3!Alt$%fzul zpi-b(phlohph2JsfZ)vxjjiI?CeSI+CD1L&`lXsCU~ERz z0U(pk67Z-2Iw1g#P63xdhCr48ZC8gEMS#rW@kS=|fMS7Cfii&#fl2^T#}KFy$2x%q zfhK`wfmVSwflh%gfo_2w0ZpJ!pdSE5G{J-vB>@mKhd`QuQ@|yVA&@1IE1(Dz3KR(x z3zQ0!0idXYAy6rf)dDpFbpj0nO#;mVtpaTVodR6~xsp|iKp_B%iuf&9ERLlDWdaof zl>*fQH3D@44FXL9%>c-3<+os)ICctj33Lne2xtO*0{sGH77TWi1RMa!OyjqpQyg6a z83I`XxdMtnp+J#9u|TOn8GuOUw_v3>RtwY!)Cn{QGzl~dv z3G@l{3(%q*rBA>ikS5?1a0z4pATx{Kg1O?T2owqw2^0&I3X};{2viDG3)BE0vyR__ z4dU1&&@9j@&?e9+&?V3<&?BG;^Z_8VpWlKsKSt>jpviH(r3p9%Tml&aSpvBNia;R% zGK=^vSS*gE0%Zaf0+j;Q0yP440u2I90?h!(Y~{CLn>cm~bP03|^ayAIeFFUgw6&bl zC*S};W*WZ*o#N;c$Pma9$Q4io3I&P;iUmpq$_UyUX(&1zvMbm%SSdeN3)BeI2{Z^a z2{a3|3bYAy3UmP=vzy<7J>sYd^a=C}B*@q|Nx&hHCg2os31k2uGmGDXx#Fk@6bcjx z6bqCJlnGP_R0>oJ)Bqr}j^Ba};@Bk6EYK>@CeSI+CD5&dG<`h+8UQl;7y|v`m@rnd zQ@|mRCg2os31kRl3FHbW0)+xa0>uC*DrE?iiDQL8r9ibnjX<41gFur&vp}mrn?R>P zmq0fFih39VnmG0e^b63@GgMp!90F+qP63xdhCr4;t^jU}r{IMEC@NwI6pLf2K$$>= zK&3#nK#f41K!ZS&K(j!rK$}1(0E)U80^Q=+BcKWN3G@q)%^0Omz#)((;1qBPWC&yl zyxzZ2KNf7kc>KI&K&yMuN`6aNodbxZvYqdM`;G{Sdyf>1xUi_(1p2 zhM!;)D9iWfJnX{FI{r-8zVs2k8k2~}@ly-W*Q+1k+NLzfl9j9CQ3w(-t9+&6#5_@I z^=5NQ5uctAZEm*OYlQ=sVR}C4$9yIUz+^-=hw(MT+tk4HeRmhA4$Tg`Q}RZ8K6G#6 z#9OO)OJQ#s8EWFn;_T1t%dW)iD<*y@rZSl|X+u@cy^WatSa_kE*C0PZP~1)AKnk!S zvJ|rq*s$_`zywHgg5t9fPrt_#&9K8Co-iaMe|W;+1y9%D3Ee!NuEG;K3OrqjCw%4N>2f?d`RVV7 z#CU$%0k;YKbo;~dgveD(9B+n8)j;C>7BcMYf=F&_3asvSM|lP{84Ql^~^Ny_}A$cX1X!AVAQI-MLlv&^v2YJQSHVhbAC>X z_U$tcu(Z6IWq;$A+o;_yn%Z#}H7E1S)7)4#ksF@f?cbb?;?8@a+rI`+Ykk7g_b48? z2hb!)F3t0f-wu{1gIjR)qepEaW#Fg+0FG+-t-ey;ni+fz>=bZ;>ZQ}q2!3ts6F{Kb3{`jUiG(eR2{|9Q>g8Gz!50}M>Ht|juM!TdYPMPbm9$l z&B2brG=TQ_KcYDz5wSR;`JSQVh|;K4{hc|YS*PF1QB4#_cRa919Fa0`)BpfSt^8Im z(_f9|1PccWOEc>^Wqq-=LF1>$`I3i`> zs0aX#%J{9mSl((Fe3k4NtOjVapN-~-M8x8#5bi_C5v5Vf{u^`TWZA!sqlPGs{_xj5 z;)s-iBL@H+x%jO zqBLr6H!?@LEc>_Bwbm$(-l^Rqjz}3e$^d{Ph2QG4f6i3heWsf)_W#C8yfTIMaqrOkxoOq+YpB;l~0Idm4 zW+X=>A{IwIa34yJD2>|E#~k=xO=-R_UG8aq=Xb-f2XRND{jN?t;TvP+pC#QTDevJ4 zAFect_WIU&N>U$y1IF8hkORlpy}ow<@4ko@1@S!3>F$_9?Qw#(8f{)=B57g39W;mY z=Ep=a+zZs#yz1-p-QZrdi9RUs8I#0c5}St6XT;P%{+MCj@o(a*BCmau{yDKa-sc2G zPiuG-QBc=-Vcp`}EguD&?=cd#6HlQ}3nP907K)=+{h8A?{(JYLEgYAy&y8=BrUl0O zC=r-i;FSxU4}+z7SaGa}*~Mv0g}eRRlkqdHVZee7-zXS#0)lMQGehtoae9wEkKgpHx3`F$n)3!WKh$CCrh3`2?ykP24)_Z zm#{qV@R3mZ&yxFV(3(f)ega|?EB9%!YG`wxBC0)#HS>tv-%?{F@mD;>%6*FCp67lR zQ4L<=~`*!UJtmJELZ4oFxQS)2@3$v;D58=1}3NKdS6E*tV}rs!!e zJrtGA31-6fr-YgF2S^GxV*VD2! z%{2f$n=8o=EF2kp4f58>5NMS*THy7l^<4l6Z339td=9nhp-R4l?!=RA1jU%$dl3`r zG-XHC6{nFTpXfvmXD&Dcpx)$EI;Kjqo&1MUIQY#+A^a_5)ovec>%PT>qt3p-Ul7^YdBSjopgn~iu7eKLOW`?}Z*+p8#kxmDZmqp_{WAE3_wOm3Dk)HeeZ zwWS8-3gpt!{KyU0J_O6@#B59#<Mb}G=>pi6UQnvt^j8`)vn5JcD%<}b(^mHXMcN*K z1sz5=UsW5O-EcK#pTIYzY8KLf@C)$)efGB^e>?4jQ}8R}c*jqCtvK>z?LHT)KA15oclN8aGv zk_^pWAKjgk@>m}xMI3nO766Dk?He@eD2NnIx7v+w3;VK_G+6Q1OBz2!+Fj^byz1v@ z$|g;PS8exTY+2Qw1Y6-_@b7AeQnkwI&3?OltCHO@H@QF^ zyF?ji!*lr$rqJ?g@J2BN%M?2>%Te=7)chPZ^vvGG^`7jH?TelG5JQW~iS|pP{hVkJ z!t@NR^(6Kv*+1JCufPGI`bwflUCj$uvZ7d(a|fy%_F0Wh=8wx+KB8$1NbEEEfsyr?5_%4xbabNiV2Zx(O=VrFQtp5*3Ufe{>VoMzTLe^&+EGWIP+5;u{Y7C_Hsc_<>e9 zwGYvLMh=5Xc&vKU3iqM>pr_<%FZ`M64KLYXP3Xrj~b*M?`2 zml^VRB>Yw7Jd73>b08;ky=ZCUFR70)3Zf5dFYS&zL@JJaZ`V?Tpf@ry58(H;!l&E* z>?-iziAQW-=tT{yq3~)q+M;6my{ZQ-R1VN7(n3-Cn4IGHKO#pso}a9`YXtf zT3g8>>Pft!euO5^@1y8yZ(;~Y2OB1ShDObu_>(*PS9{e08#0L6wf9ihD9EG@V2LI9 zbxEune$d`cg>OaeqNX~KJjokKK4GeT^u$GH*hgQx$l^(FQGY=B?SpI!Lkf5X!ky+=EfhOmVb@pX%Pz&O(rKV+4n;Rw~Y6sO> zYBQ?7q~bx%nkO)^7XFZW?zRwCQQuY6x4h~bT<*~8EWARg+L^ZSC`J8Fx{%o)>V*I7 z&faCOdVB!E;p6ttCbe-7vJ;Fhg`-FP9(|r0rzGG=hXV8<_;)qvq#oom>OtO}J4zjK zFQqv9-SQtf4@qSCoe^z3Hj&Zsi6yo>Z#PC*4R{JQ;uyKeS2qvH^$}KBbFZ)Hhc)SB zq!e1l=i(79 zI+;eH>=(;hHAA36-q;ulALn=@!w!fk#iP4ps*^rVwasX7BU^k@7puk3fcsFk_>^|- z)c_A`Qx_Vfr{gIW>GUzQC!{BF>`^(mlhsLgk|TAlOnU2{kWTu*78}H&Q^lK3y4c1w zlHnUjCu=zBRG|Q4)&zz|7XUex2GB_-YdMqjvU{RQCv~w%Z-x6%l1^#Y&c2IDZ@A4M z{RKS5BAq@&_k{Esj(r5_P2^~j-nJ*ClRl8H5Ony80Xpf0cm&Or48AgXt78aM%Ud%5 zff@ih=@oc1N#BW&g~*al>SB?e3-_TUozkv-d?%Bheyc%x9-d;6PBRL7LV6m37^6 zO**NIMLOBk4khW7cI|SNNq^yHgY-A>6pM74&Dj&u8#wk6q_>izNqX0wkWTtQdJ#c~ zuMD7*UW`Z3T*Kh2l(!~^K%Km`0T8Gepp#yWN0ao?%c4mqb+JeY(p?<;2-0)O(ImZlPe|wKH8t1+wcxKGpp&lgAht0LB2m(l7#cGe z0#12T00@)?&`EdT(IovrG^vrz3#p4mdNcOx(TOq2kpT)RMPcSm189NqhCwD=>Sg~x zBW(@WUeBh4NMbfVWbBPGk}P5G(^|`=GyxERiHX7LiW4 z4<(VrhSpofMAGCrD!DOI4y|I9*iM@lO=RDY5Xm$4uo|L?`wky%u+fQ>oi~jMOq7rI z+JM$Hyun)%Kqs=Fe+W9@qP1hrE|N%+AB#xZ<};K;5*u2>Vs1~rD>vHHk#l3Wr?g(Q zC+#Wi^$s-y`WTt^dWYK6ekhKv`mmdr@<)nA$XJ4Bsn`OUv{NfUfK~vYx2`pK1k1GF zoLT{S>t+bh?sNP`JIwL-pPS(yd??!14S$Z2SCO!d+IQ9|USs6K+-B|+cK4Q}U#trf4C+(o$ zL4Xk%K&L+qkDyp#@MXzcF+-qG-YOVsO92p(3oz+ljpi_teo_^S{v-}Kbo3Jo+M~BK z{o6U=ZRp}ExQ-Fc|M#=4%~XHYEy&E5SnfLXg-Or`p|A6ox4!5R_CYRP9VrJzr35f+ z0q6}&86LrM1B0(d-dY&~O#lR{1MocS4NIaqCBd;cEr$D0wkVWJZQ4TOH0PD;Ed{y6 zwu~Iir6M#8bg*F>)-*#6xXfcGVHy&YIfOFVxgi@9X!H<&+#n>9MDURW0A)^ot9Qs- zE`u+F9fMf_Ef*b0WDz70vFJ*G`%uzFDbx;K0J{9kY3VgYM5qOzkyE_=9BBw2R*^9b zJM%he#!-BExD{tVhph7kX$KfM()WDHMzBWO<%O11wtfX^>z6hTeMBTjBqA0^PPh*x zN0dfw=dH{UEr9=4j+{{(9eM2@aU`qlLE2;oj`{%@bIM-3#x&t534o&J0BHS{(HxP8 zSR8e8I)<((qcmzC-ohNwO8#%<$Q8xW7gz5QN2H9}9soFM=C}F=dFx{EwXtKc6QI3^ z);6*nk%(9v)xdoy%Mqnf`{&KfQ8CMo9yJbD*D|6wT6xtTaYV|%Q6T^vmGWDCk-Swi z_$t^jSP9UY(RxO5L?U8wq`-YBIifUbcURB_Yptjxn3ex-BVt{Wva=LPRXfqD@1Upj z4nA#c2eseagP^}Wdv#cwC3XR5wlJo9n8U*A6N{E+>yLp-E<&P}&&4PRau>1Ox4D5I zX!mCS5@tVINWGW(1$5}$XWTDGy$2x4=m7|@mI=_iQ3oE;v}G^^ix>h50KT&TSl@SQ z$D=)t%m7MdtPDti`%q>8k)iE-6AEcb%F-(h&VBS0#yQy?p^6W}c{+!U=9~{b2m}=2 zJcZ@P=9~^h_${1MoWLR-|q^8^U?Ga#(5EI9gOpTT~1-6Ij=-Wl=DL2{IBFIJvQexl;Yn| z&M8jdTp_@OHbCdR5RWM5WemYOhCnp{zAFIC`Bd~5k(`snSe)m=eJD96GPEP-G3O6o zW^i6lPhp&swcX(5dQ#jV=3MtVdk^d{9i7 zMcYcut__XdUL~dAf5UE1D37+=Gwk)W*Z)ZUJRhqQma_j>TRrE0Ej>G7V21S2(L+O+ z9y;FWzmq@dk{&YA9m4b!|JTxU;SHQWWO+P<>7fG|{yX{Ozn;@W2Gv8Do(2;4Uuh3s zx{lLRG_>i-{ja5G+qIOQu2z3>=^6=Xd0T}$gYk=#Omr=;XagI9i>t0xCR`R*wXaWm82Ypr_eV_$l`|fAn-6_ z+UtYPtSayq`hw9Xwu{NpoLSAak{dR`7iMuo`Y1e1F1nHhtOHR_)IXY24Lh!c=%ZT6YX%ex7#aI$ zKm)=xF`Oa8RAbBr7mSk~Bu5Rn05n+Rx5f+r&!--Wwmp(lk{pZE9=H!>K_)7+-KDgN zCr}L81t+XC?cCmiksH~;!7`7Gr(g#cpoGFKu7YBx!YH$`5>GHSgb`gGKW%4|IQsLG zqQ1?BiqBCP9P0{7&J3LB$gd8NMI-DY$)XW9++@)hvZ0$`+R&vn>o#;h;6i45)!Ytv z6C1j9Kp4=?f{R!EPElV|aHx6JDl)-#;a@3Cu-lxl4=ms6$$owAzT07>c;YhmKs(;b zzh@gd5?OvH20Rq2{5vH^eu%O%`6hnkyR&seybxHgiTF>v`0b3m=ON;7Pb?;-?`j zH$BTO+-!a|lAG7z@*n1=AI27u+;qY%j2kjZ5^l&cO1Q}wYHnVA+QQ94t0TEt0+;_V zH)JFf$qgCygmF`cSK+1sPr^+rKMi5IY5Kc`o0+R3xygacf0!Gx<%#5m>~F%jAp;-b z#$|GoJJj6V^^}DhM|&hUKeheGxoL)VgPV-)JJI`ekqrc$@#m|gCm8qRk_zJv4Q%LB zu&qeljt&hb-eFyo@27<~D^bik|3G{NN@#ZtNf02LoB;>}b2ev3k5j0p5_^I;iJf})EQuw{m!U}P(^%uRMyKj0 zOw+_n?ECoPe<`tjJVj1fiY!B3w&9(UhYWTgrF8FzzIRN&9R(Rmt%3UP9%t*SC!#2^BfU@T;~GKZRBK zP7eGL?Xl&j?bz0!;VGtip}%CNE57#f43kXy%I*gld=j^;Lo&=9Ql2}`xV_hopq z48d-L%TP3lNB~F7G6Vxn95LKGlepfUz1qI`i0~?6aOo5KgpcrrXq#EW#Jl zy@(MFh2M7dIq3;Rz_Hi_h7mfgIk{C7k>#`q#pCefQOq#nEyTNrx6E!u{4?;z#RgQ- zT9X^Ql0ZBAX{Y;nl&X#W-tEAl~Rv7G<;k{2tx3r&b^-~mUkNP@x zcgj})?bxF425L(d;v${!5;*CdvjWKz5e@nV(2jbXXk6_{{MnQEtvma3d)3Aj5{_u( zaM*pR7ZGN21%7v{uesIsvjZb0B6i2nrX)Z9Tw6^|FE%BuEC0%q{ee#Cz3zckcq2l? z)GRIvCv>$m?RrHG(n69D*^j4iBKz6MAA3u<`=?H7wDdy7_M3{esR?MfRSlqsq8RYD5ieYn07mkEf6nYK zNw}1LzZ71-KQFTLJTvpmeCEuV+nFOSry4}m;7Fg_;r)5VD*#CSun<&d9!i2%CxZR zqB6MyhsVq1U*X+#J`&Wpzd7QSJ{v3Busz~k{tP!s z&nw|G8hOfJc}Z|m4MuhRWEEbFE`Bn~gC7jnZ|yLCspP?OQVXoEIeX08#nlr}Y1fUZ zSKZ(4owd>X?i4&Lz0ybddm`+W?!x4NSGw3MZ5zU*v|eOKX=b$z#Hu%VO|R#9O)pZLMQ7hn1-z@cmEPrhi1Zkq6Yodf*M#uz^0&fXRhweq z5_=CWz`14ygos+2E;cx*;c#uslU}7V?G9VFTOD7Ih&>8kD}$)7QCq|IEu{7Q#4N*L7}cyN6M-LOAU^^-B_&?FLqX$~6_gIUj=ox1Ly2 z@hA^@H@vT=;;oypQ$I03T-QOxf8uqFEM7!VxTf(@>?olZ{N?i@u2we-JOz{GuV;{ zu~DET3b5Z_lAc8}6lfD8P9`aau9jEyb+VM>>Xm*$`nq!tmeqq6x%k#DSq_)ll26oAA#D227|3g-?^zhClJKbeAEK{=YA2h2T zF00kMIumisezJ0w|B{E+*>f_c6yht^e%sz zxVnu&bks_wB~>MPd5l9R-KoLo&LRdl@A6HGclk!Th?AzPpKyz+MESDuPbPwBk9hfG z-W@*>#xnL__Vo1b`l!p2Jsf3;hUH|JC9BAGmnTyp4i@EF$NKO#><}`|4Ov{u?a&mUnxO|P*@3SeMGNS)Yqr?UbWpD-OO8`zIR4D8u?`W zi(Drh59Z8(xIemtsA~PXJ~|%MiS|r) zba@iv>*I`{n#G}27Y{1F{X6DYHH|&v{>6it16%2g4;$?FLngQcY`l#P5!LqDZ`gYe@ z5})qqK2y?!tRXvHVqz1>_8YEQlEa-NOKqC)$lx2U*?+@L${ruzWjbaz$>Z|dW+sZv zLrOp!nZ6(jBqm+WOqjVoeFSfGwhQ$o=dFn8*On3yn^}6Un{VGHhY<~<1AK%r?={%{miL|nKSS+<`iCP&Y4dP zBiZW0{^fFt|D-og+weKFu}S9CZviA}&edBmhUrMfn?xhsb>>t&t(5#=vc+C79S51o zI+YAdGV-j>-|#7YP%dvYgCk==R(H)!F->`hZhF74sMUuyy7K0CiZPxs;DiN@Y{*m`Of-$G_ z-EH=ooJql<{%mt<=bAHTzBvmPnp3yPoOum6@Sl>3`^@~3%7}hSAm~m7j`k|h%(hh+ zCjKfYbHoC3jH|4*76UFe|lcz|xK0LiMWncxVrm{ZMv@g>L>9160 zYOGLux`?h8OQJLf-3Xs)V@TpMt)!U`)$Ze=WyE{Oz7OqGbUzcL zfv*%J${q6JbxT64gUG^mX;(z-G~yU$51Zx7|NC&Lj{BE{cw!lGaWI%@0@!ap=UXV zFxAWtoKx$Zdm#Jb1fp;C7)p&gx7@pQ2V`$yt{-5wbu1mhJ=u<6;!RYUiomxjkaYrC zz_kYitY*B>8uMT5_kL@%_u214`~9>1*4gj<)O8b$dHZ-waoOm;`R1dOEqt;*QU0t~ z^P(yXr6;R{q%ld#RXE#A=4sWQX?IKDB(*oSyUqBm;g9)so!A<$?VTH}T4aN)AQw~Fl z90n0Z;Z4qLID=iLXW@+00!@=5WeawKHQez?xaM7CKLxZSRwNW7X)_1%&Ng!ia~$!FdId^0ar?gZQ&!Yx|tf&~`{Qn5|-Y z_twr;$#Lhq_qv6+m40giDN<$G%0#F+T(j}G7*5;MiBMBz=uwQR`5Vah#xff}C%4;Z zI@OJl8Rrh?c?TmV=IENnKZz+(;YWV+$wW0uenFA44dPQ^^F|)?CSD%*m)ZRKl;L^a zDUCg=-(uz~o2eqI3QECHB|%#}@{Df6U(5 zY?e-u$?g11ZP%mwy+a;QuBM@4C8D zw^b-}5b_3sRcESRwMp%&IjD)Kd1!cghnA)KP+h=MRBtTQKwT$7*j-!-)H{JV{i2}f zotFfCQ$U?=Jj}QwR%WCT4`)W9%o|+@_E5{Wj(;+hf6LiiYM3l#5r#p|a;Ey9I7@<{ zcQMGh@p}enNd^Gc5`*6N$AWl|c8bvASUicKC@($Zjt{Z0t2mCd!dx}@oxZ7xAw0`2 z;swRIk2ZR?_K6sIW~vQ1I!ESh0Tgv*Vr4b28+ zb^m6NMH@FVls!lPua=0VX^aro%3NigeO5zh?PS7gNQo>dD-;s;|?*6o)VdI2l~PW};#i0!{wi9UM^aYi%)nvw^UQf%A6h>G<~!NDYm+{PcuBqA7zTLaM=M=$=V%~CFl$~U6Y0p{SM~Et$jBCelrMjy~BWu`Hx9K>; zrbVQeF}#{cIs>hp;Idboc62kiGmez^6s4V z`w)M&ydF9OYLaBpnG1M`_!Z|8duje~eia3e9_CR^=%nu+ca`Nnm6y$7m(ejd40A?D znO*V)HKL6Cievc9&wp#MC0dW8FNc=6-1?mPIUX_zcz54ItK*nrG#ENe)xhnL$jLIo zv((TuhvR-sLa==@%R2+Z6%tyJ*=XJ?^?tU`=y373RE}8$(Wxmj5 z4imb}%gJ1lMn@kMGT@nRg??+5VD~Tl*6BF4JK0amkUZ=klki8LR+8{XomQIO7%oDF zbpbV;BX)74eVWXJ6T&|B#W^^U%8z%6@*5YWAQNRJQH%wQXx)%ZB`)<`B*q#R4JuB) zE_Y+EDx8CmrRggS#wY$fhB`Y}HB_8o{JKPR$-R{6BRE-82JUM=Jm1K@t#mq>B6V z;MY$h1-fzlChyX3?M!}aD&9YUQrvK2D*x*556Ww6=4RkvWZp4;?R1jlM&zX29(j^D z*M5XcpNlV1wAE~h&EPc>j72wK2wpwHUgVK*aPhlb3brHvh;VDPiLK!}Us!{a+F%g8m`=OXU|YQ2HHz1Z{F~NnT$0VsF|W0&6NhSY`)>rze47 z^6qShn{1{}-rLFh$p+q|eoH(k-2AAju2vrOM^nC@Yy5G4L`mGQDouZ-!dmtUB4*R8 zTV~Oda?;m*y@-vzwX-P7#BU=H)P|h?iO|!6X~LrH$wU^_=-({k{?A-3b~X;$iwr>5 z2v8<()YD4HVf{IVpsF*10@8xzyH_C- z)sI;@mrS*Cdei3cwaOZe_-inUPLxQh|Bkx{buLdNsP15Yp@hKT3bu9!K1MhMsSLdk z?pPV|=LiGHTJN;PDEAZ|QgbXdAI9%Lj}P`j-6y@#~0#mW{(tCv@X)+DOm!NPgGtX^qX`fFlkODj=M{ZVDvv(dI) zk+OP~G0ffZ+8KI|*;1mqAzJ-ZqHGyAPpRXGhgPt~GM^{zUc<0?r37LrB1ZhRW!obN z=kNXwZ|J0Uc+;lc%Tx8%7z?@NB%UMwvLCf|piC6;xl)51zCcuoyU3J@<4#hA%*$}t z)6sAJ7(!S_6j+2gQFCgy5QMZMjRS~?pKMXwV4b|VG3rz~^VEm30CRm~eFI@k-qm5I zibu?#aTI@n-`n3qzk}Q3hQ6sf}drMQiJ({%n&37K!aW z^^9EgGt+{j!)SX=FgsP z&gA*#OkXI64(n7ob95q>GOWXs99k?asTHG&Nv%*KotPsBI~)e(6~&+3Y|iAgoWO=w z3bw`Gf*+LVbGyQd9L8}LmmExH7u0HIKt@F@#2B|G+uNd6deW!3AEM*YP~8~5(|s0qk40q%q-y50;5-~UE^F=F!A9-Uja#EnS)=bVp-EXE z!APb~AZ48ZX-7g&M?$+Ip;earW$$#*Yj>Xbr0OP3bWgzO>Y`c1q%QNqg;S9`ZL zb4$h@KLn2U#mlxjNk`r%={&a~BSOHT92v0LKf0S7mEFvq%BQFDi36*ZBo~w9I;G#N z40&0j^vUeD=FNr31R1NxpG^)!R!c%Mh}rTI$@4-CIG z=Be=;2*C4tJSRL|5cPKxL4lBWJ$`TUtRh)S){)B9>+np_a5T8N2btb4^lB2nIGwREuLQPr7nN;K#@>)e`i?qoU`Kdnc^yJVvsihgYTtJ05rk>N&? zF)cD~x5G3)5#JzL!xK>zLgh2Rt?sCC$ZCnm3M5YfnF{~Iz15+r$Wr=x3aTnuH6F@# zsuGZAD$Xj6FZQhuDrmjxg)eV=K32YLLQ$&kjPj?v_--_Ocptw7yhT9!hj_>EPJnkZ zJt>;IhWNrEhB(7JfQ5+;#yqRWKi35*hs!fy50QDi+cpSnpKz-8EYzbCTP3gL0N|V8 zfpr#sB11u)t0AW*2S~poXJwd2ZM-w{1%HZN2mEI-Ua=m7%wWiRmpY`m- z40;jS-k^0nUA~c@(Jxf8Sv})NVkUnh6SA>%#w^?lES15n!c1btdCL%dGf>J&Pr2Npy!=pZ zEy#$`>>|iXk0C-T|9dBCak>)^X1vM2l7XR?KEaOsKh|hvHf?Va1|MrhsI2N%gz1(` z{v1SZsp3-(sR;Ld%nON7=|%0-%(0i9&dcch8H|k?qQjtlkn(*I zA>UU@)9;>%k*|6Y3mu>tj#jsQb4UKPsajEg&9Z*+AX!hbtUG>cS&yXzxvW!Pa#^3S zPu4jB<76^7eiN&`+?mUE-2UO##h^JrsJoDBuNbY%8h%H;s4)sik}0vQVPbbRV2~+I zf?qRah%P;j7x-ABrCT7zrKRaDXISmjlR$>dR)H;0hYFOFe)mfj<(GS-aILBfmy>>u z@Ekq=Wc1|J+&mt3Sd13=)>XDgFqkZpnq^LE`vVK zv6h_lxej{A-*crylg)+8Nq<<-D{d)5)a1>W!Mw4i;^GhJC8?7Psp3I|Bv;>7xmTF$ z)t_oTp&b@48PNL%<8}rAPm_XMrqnQ@J;2lD8UvtTgamf|zH@VMPaz8zk zz9EkDmeSz__0Z(S=T4yFgn>g0l>o?t0qBr?UEf!}j6x0Baq z<(CL;BU$^dO{wbZ9ZFbfjN<~@vBOCxii%)AzC=m!J(f=XZt4kn=X!I7_H>CSj<>8% z#$i6ZlD{?Nv4p>s{3*{D_}d%{t%!wIC)kJ#t+4zzB|=Ze%gFyJ%YUsPutXMy>f&M0 zJc=r<_JI9yBcep|$5h32?cU?j5QkYz8W0Wf6}MXQUMG1#)E_rC>Q5RM57mw+5j|}Y z9WPr$xUH`I5tCRcO{SSd{e@Zur$15=f*WVP-&oVlf%6}HADOeYR6X<;Jb`9B1=f}{ zf7=C#?3I2rv^1)7s5&xdYrnE3S!qQX$E_ErQ&r|{H$?sMRLvJ4?G?jx&u`qnCd%@t zid5qM_z}njO2ie+Y4r`8!x}rBR5*Rw&)l|K{|}ugRo#!RyZKme+I^!~N_ii9UeA#P zjVS-Qdo(y{6EijR0iInG@@V;)e4Hm{TvGTnhOS}^dA5%jkV zne__7uQYvXDebJ{0;rZ9c7x)N+ULo^#0mSu(jWVR+WeKp5cY;^cI3~vRlWXK_qOmZ zZToF%FI9X3sM)evRFDIpT!(49CgFdrH2sHC2m8kqrs8fH%WE5DJOd~Zd;Q($T9?__RLANLp#HQPS-G)JMQmB z`HPv_G0`cn96 zz1FhK?2#DoRJd_taj&Oz+jY3tswtZ~I!@UWZroHH?zLJkEge%BAA5=!C5=hH^kMZ{ z^R^)P;1*kq90-DPH3*v`n9!QCDGTA19%SAt)Is9dS*C%R4No8_Yw|7V^;DQGg2aGl zU5=bF-3$uL_>?`-f9z>;(|_UycpfL4%ubrQkkAR=J%@u`S}a9iSA60UP##57`923w9yi7p{qmxLc2G^^a|8 z;lvR+(|4X~q?KXqBTd>J`(iaY8TTk=up-QL)S9PT*3%p4py<qelX23bJVl5&s*J_Fgp zuv>5V7Bn+yOiwz+sJu>M*P}&c0Rgf^zmCcRpMh*)5ZghXF369ZOq;9EHr%~!jxkr^ zu>o(xHqrNI3e?)A-Mt#|-#lQud+z_x?j#b2KU4;X+_2E@MA`K5g8cU!DM!_f^%-;+$N3PW1g?jo?A5N?wNzW${@B%}{zt35iP4cJwpzrQ=??-tmwze|K=WQ+Ols25{c z&0x;-X8=`~ra=spu?LiJXL#`ek7wX95blL1ZXkX)fF{Rhbbw&`r(uD|^n?#t<+p%4 z_COA<*kDO)z%EDB7aYjOFy1+)6e`fs@6wyL78p@qptpU2-gdQ(z`fRFknBYsAFxcY zPT3>Cw0rF;><=!NwPhH9x^ZMn4i*DE{6Sh%4kwEk`NF)DXljW8)MPjQ4f{(Vt2%#j z1nc@Ns~R{B4DfrVP$~wP#*kEI1|c#Y2s}6LW$JoA1>h)(fZ>R+aPKnpUdMF@FJHj- zJAB~t4i&sgsek(iFJOQdRRP~1@E3ld8|CE-_(g2A9VW_a$MBFSuTmZuynq2-R0aH8 zfe-q11212|R~K} z3mD)h4c-;MI}1^lqX2fpM` z!K;)91}|WM7geGBPJ#bXaX0Yt1-zNmKRj%sZS_N98?csZ+XxmoMP^5$7=ReBPmgS1At+Ucdk^ssg@1 z;J3bX!c$M zn7~Wd<&eOulm`YcV1O4@0Y6{hzr`WKF0)Gc0=^#${KEuZT1|%pUZp%RcmV^vs0#R* z0)L;^4ZM5--^^C@VFE98rb7a+QXUw*fB{}q1^hyRf9rkSz{?l#v#G+v1YWjE4+*?V zd0_AY26#~w@QVcgQ{BPK7x22z^)P{#^4%eUS1At+Ucdk^ssg@Lz0J*q-6$_#q2}V| zOj>*)PaKtKNB$2#F5T$lO!C>g^Oq`KbUV8-oy`vY;TN`Bx#d%*qY_!du3OaqK+ONL z+nxLZZ7o&&1HLJ@u!)hHih1u2LULceBmar3B)R{@UI}`abT1=aOX`Y}XwZKa$;bRF zO4E6ySX1G@MH;si)>MokG4{qEJj?2$SsRX86*joFY)fV>%knn2l(p4ix>snuR)Bl& z%dn+l3rpIT0#=JG(BlJ|-Eyhe)Iqf27pU*fCW7R zSYZHm>*gqy9Kn1yedRF*c3hD{0K25qHb~UhHb^u#cg${s?9Gz7 zSOJ?NnGF#XYm_E?B8dUZn9cG}wWWO$n^88f1;&^hYfPW!P-;KAg^h>iZu>XV)`Gr5 zu78|vQo1;frgr^DdR`BZ=L#PkV7`2%kM)nq|8Ox0wp{Ruwb>DMFS%_1er?I&B#6c` zs&Z%J5o>F5FL!>}Lbd7bJpPH^P^|3{_wr$TdDy*7DpAx-svK`ss)KXio#;HGIgcx~ z63k}vfV#G}WJxZxr}JoL?c!3uM14tHa(d3=#}e_k+2)Fi@scFZZMI?IJY<0!4@uRX z$1M^vwwYkvc{E9U)Rs)=V)StylBl{Eqa@~NGoh;U_^npoZ6>I69^16B*Ji>$=TYH2 z3UXzcu5F+;6H>VtYt%y9Oz`78PIew@!_MOy;?cGx?xjg9w>D!>=W&AbkTAn}j1hmd znLNXJERb#$pX3tU&CwA&s&XC|IFGqGj~^6Tj4?TnjZ!gevssi&^kdFrTrS2fy)4G0 zoX0ZC%qJSc+$Y7(BbxL08kmVOGY9=%g7DA^+kMh54Jr6B_esooXc_Bb{7|c_He1O$ zj~6uGhc|Mc40ays=v@q*FC>OKQs=RPxdMhI7Bu67Ti4>;`Uc!+FmFD*9KJFy&A7OGsV;or)j`;?;MTfexLO0+KinHbU9$FC zhQkSh29$%=@re53W2pG?x?rJ2nAc*?oDt%Mvbri9G-F0kP28(^44REE^U3xYry#Mj zMASst7S4M{6<+ovih;xVAm%@c(tSL%jc#t3(g`(_$J4R0=2#ncUXrEwVfS5zKw@QF z2{BKdU_A76qO1jb|0p0n-8v|bt2O9ZCMn_2TR<4j6JmhLI9SoF!r|EL7;}PQR?6g9 z-q0^$wVyHcf-MiOEnBtQ!)q4>Cvi%~ zET~`=4Lt=R;Z8kHa4ByRQ{E)4OzB~T%kCZM$OCcBF3vS9=L!7)GvgLa9MUryLJR9< zFS!F-kxf)Qo!oEuZQD@ORMhweoAFx`!PtUC`J>)lGw`qUU!j^KWqY{grWckXIWhHo zWvD$--I3gJ<4IA!$*ld<^~A7`^ajtza*T|GZ5jW{g~7zhJ?YeFeR&fH$OhBop7z^U zHkOh-?YA$-Wyoyl_~$pD?xMKBP7ymr;Veu?qI}nc)3BZX5N5#_IRoXHTv0g3a*fX4 z5C=1}GDovJ8cM2OP=v)ExGKP#y58)88+}O++Q>i+3^ClC{nQd{DY|EBD%SBxBJ|H# zXghWdy{QorOS#(aV&bOtR5gt1;@7^Q}-6wxYrt~ zee_!ER2KH9^`Qw`dhl*fa~tIz9jJ*118#Qa#z?CvTk8)vN(e&rMsdvk9yx@XuBT`0 zGK9)Khfo3frzruCts8e6LUo`=7NM3A>DP7|Lgk)Am|b6hPz#IJk2!>;j3-AHq2!_I z3mrn`oUvtq^%gA7D6X(Kaw<*_&w_RKAj4-?H0zz%BwBE~^WDsh~bz~7rmYgne2$lO@8fJvdq9Kp1?Qa{x$wwTa zq%7&%-ZC00_Z-5k_yvTLyR^m}LQQOsEDa^NNDk+ihRQvMFe`Tjp#-k2gB`*#M;xIf z*6AHv4WV++AyhzST$T*G^*h^)hI5ZNLTv)1M>>ScJ%=#6I{*!}Ezr7Rt0Am9;s~{` zlK%4+qoH!oA)bv%iIF8gZr%QxVRVW|M;4=0q0(`O(KNEMYrL$E6fH!WP_3VJ7>jIua%3?| z*DO7Mv(Zuc=QvOSuC7giuhrjdbSyXu7^TdY?&&Zp{~X4wmLGJKE??^tuNp?Dn|NgD zC~e8~m{*OC%0Guu0U0_8EYg&ztJC6cJ z>HDVpIgH9bhcT-NOkGRex3w;97@hj^k)@*)s?!tGMn~nJ!>E7^9i>m*n&&WTham1B zS&S{h*!+rNRQ@@P3dmsGDU27rVszYc6fo*YK>7@aQTgXEX3q+!e zow-O)f7$4${Bsx;kfEcFT(oX{$uKq?1&lh>l78_e!>Igo7_+Bc)ISoZ^$dq`*-^l# zQ$y+D4x{qVVN^hdjyg2ddee(W$LU7_V}mgM^hKki^3P#ZKnCMFVO;!zVQfAM7)vBK z-uZ%IRQ@@P3dms8x!2Z0hf$lNN4oEsEQ})^M&+NwsDKQ{*}_=Gi9W24VG+$u9L-<= zm;7L_TsuK*&6>rB7w8ByA^j-9sdZZVjHj}AojSfl7fjTKKx6|5IPE)UfH6WekD`W-A;$L);=`P?}BY6BTz&&~B;B?YEJ?nXadnp61+u`rlFyLTN zDR-EzOQXY>Q5aer_8ShUFtk_qh*pwOQqSrQ#rJ;z+^H*fx3eM33h7rj7z-MZ>eqruQG9+$JJ6I~jj z*P_7Zp-OONNz}ioG`*IlkSZR0@PywTX9-{964rItB;0=NK@)XsqmV(Y5OYk_XZk1DKkZQP;rM!Ew(vTcc!XsBB zl`SP2CbR3!IJUbdA>sdRGE5cor%uO7e`)J6d|ao!U((P9t4w;ZM~Lc#HsVm7u#;Nu z3?E86c4Cgh7f5A5BWVZQbP^~af76?u zab1{wFh?R46h!mP2_zT*y4HpOv;*0xdaZB(s6~WyJIpa7B}|gE8b_~23tkNe%B{X|b3|oAq)! zNZ>POJe+|HQIIhefM&-fV@AoDr9!95W>WqfH(9b_3q>V$b*yY3XsF2{p`8$z^dzX#S6OXB|5OVfW{?{Sjo#N~rHjdaeA{PPFvG}4g0>2&FU zTCbHIv6UCfgmdRa{#%J;E_ezyNnZ>zYF_ff|H0bSoe_Rphw?*Hp4nhcdAT`5|18H{ zL8jY1WYbNYm2CE~1LveQG?~2)B zu$#~jilp*iq#6B#yf75qz!jL>)Zw26@wf&c?o~FR)Pr&7MGD`MKS=?p!mr_Qh32o( z9~{zwDr{(Zs`xjgQnQ$kM=6e1Sv!o>qifz6vOKP@94}iN zt#05l$$0e&ifApRY#H`D^XD(+V(gAauJcti-;_WxUW|I$a6E`nc;hXn(3YFvd!>}{ zA1-h9?h2zF7*AE4OD=K0EuK1au=3-IV07=^jkP@=P4$1Dd_wO;+tx=z+`w5Y4u>}z zlt^&S{eJCm^}K%FZ2V)vNk4bTOsO^^P-h|_6=tNSJ&CxfT2%u;R4H^Dsv_F2RakY; zQvf@1O1pPf^NkmHrK`Nsr@hjRUTJH`V$7gkIr6)*B7Ehj8gs7V)3SP3)2JIp?uoLe z)Q%qXJX?qi4YKqe}zY^48!YZZlnPw%5?s5 zF1hKSSmaVz5(UH()dv@L;7H$ZK`BwV`ED@pn06OG(Lrhuq5Be8s!*v=p^i|-s$6u6 zAGgC7zO;CdrBgRpk+`>*bnJ?}1*I;BqBA#4a`%f5T*X7ge@d*mO`UtH;_pR8XeoopOl6FstNb~Ih=WG{a2%|E@oNd6O2V<4cTnwI zLDfKQeH0BweE`)?w$onlxbCyhjwK;4`Fq0K)^pJ(_k0GoaMk7W-d#V$k86NXe2ic& zGw3;(3n-7Hey`{mZri|h^_8Kw{pYEfHQ2)+fNp2e#6{?KE~Tz7-$t9MdP7g!^|U8m z-ZB2USoH?4X?>p8v>LJ~GMC-IqsZ8p-c#vSJ!Zb#HMq1uzI^wJVi2-cG4viSe`ov> zGgduheK@#{i`P4127(GNUm33T+u!`R!WyUg;A6U7>oe^p0QU9dEB*)h2wl zdZo`+dQDs3_L`o3n{K1(vF%>f3jnHmRH&9$dS@-WF@}=!YFOe~2=@6^M0kaV%b%n; z8|j;#;brtjf?tC>s>mHb9&5+y5e?W;+@6VZ?VstUGBL8D+^u<)yIb?BKeu;a5p|9@ zyS!d)-4_;Bl zH|0u0T&-0P*8G`Isqwl#t7|8~rKIr~ri`IBy< zyYTMKAB!7J4gI_vI>cxy|5!biNt;|rMT6cmFRVVh2g7;A{phgkrk%U3-86;&M(fK9 zuX=+k5K@KSjRQ4*N)?{ZLnR8)l@|vm1w`Of$olZ#*u-X@{`C3fSM}?8!+XvxzqMaM zr5AZs@4el7k=}KM0heXRxOU-*NHFsF9^v5Jj&OOygp;jzu3k-#%{QysZzx=(B+o5B zXB9VmaYaL|8$gqqk5E6lbQQvK>8f{D{$CzqTJhZrneQ-sin*de@k7)fR1|+vU1P*% zVLsy?a7bPF>3`7g2j|=;zsuUOD!)){PHSC9@aS#&iM2EEjpI9fTWBkjlx|HUzBYTJ z8I0PhpHU#8c|WhDZsoRdM%7U`5pUGUld9pzWrkhhc+fp1k^zQNS7oWuMYbWc+ zBHqaUx5|s0SLkOQfunByt0g4%r!95x)8|&MH}^*EBL2WQ@x751l{h5vn!ZY7F@3in z&{WbV&G8sOn_@LfxwxVDPjFY<-<3WV-$<`5VRr;)Vi5?9rjDAM-`DAVBKb0>dJSTQ zy|b2#KaaP<-?+C&C%jK#KXq>pkN=3?nt1chS~~uNL|^VA-0mVYjX$;{DYg%1&Ja!e z9o)4esn*hC;%A*{fjqPXQ$xST+eW#0ZY1b$V zCc7wd(qDH`hINfHXS$0bCmnH7`ge^|H`7ItlRni&Ii_orV77}QC%s3y%t7%ha7z|0 z7MJI`7;@6j5~Im#B+uADtg0f>$mn)EmXz0PvgggX2fg-e_iEjg>sK?qB9mM<8En$! zWaV4D8J{FR=@b?ALKp&@RCsdn$aagFzSX)#*TZ)0S|h2#=I?xzzOndGoN#DGIJC*L;`>Tu?Xx$FHa*o?me(A?a(r`CdDVqoFEQaSmSF zy+KPkqA*mCVQMPi;dqsGT1DF$8vgw%sfKGF=JWR}j-UU}n_>F=75qlL%6VE+ z$JV@o^>%6iNxF{n+;z7}umWedzILIYV-TN`soB#EzOo3Wt$rd}t;JZB53_R>I{J?z z2jSW+B?sYD7{*!^JLa=J)C9?Q>VChw?l)p3tLR=X3{INDZCN{wZVUS1gPG4FbAmB) zkX(^7y@-g(EKa0FARIFy61a@pP}WnX#J72l2de{-M;yK8VDo2st>zc_px)~{5|pVZMWS^eJW2f6Er4W1`7e610qp+8ffDWeZ05ba_JC;VU`D-|xC`U~U{X|t0hmb_~; z34(JhtJ+0c(fEM`WgLoQVVfv>CKg&*>Aw&u+Yl?`5=+@@NfWGp8f5E?k@8O`V=Zm` zx+<%iIeDs2KUgFp`j#ntrUGTEk1j1=e8MG&^NAy>WIJFtF9lSCeVj}yoR0e9YplaQ z^ITj?E|AoSLq10(q~wB@;Q^@XcwlFxzY88{Fdldx^DA? z;RMolbziSaPgGAVYPa?1{i<~DySJ&FwobA2=ri0a#JuMv{#Fjz5!FKUQTko@NCanf ztc9qk5%Gg&SFUB|)V0V7P8${t)vLfPQbmxcuY2xQ^h`xUk9GEDx7XNt#bR~rHM?1m z{)5`!DyvVimEt8=vkG0zD)e`Fwmnm`xTx{fV}c7=g|71Ms>Lt63f+ca=xkesvdlhd z_TFVE>m`<vmeZ@LRo9QOhvH@<>`$$XZ<$Bs@G;$q4c6>r?kZEvc zwdvyVMYgtN=FEx9YwOxKf66O;(kp#Vv1|pqj3=humEPx9t0!5dFQ3vkBl!l8XY}Ey zy7q8KBhr(Zk@7%|&6|2Ti_es?HZ8Gh1Ie@uSkU;~^)T?J>slDx-u9-hVfD$##Mon< z$`I5Qo~A?%^uu&;xn9K@F+0hLvL-sEc+k5CJ;D|mk^Ws0^u3Sfo=0O!1ieFgWq&@_ z_H-VLdzm$kAWMFUZM@739U*anYqu$Cn#YE!8dB1M6w@ml>GYQU;USxpA}wl zwYC3>(Q@H|Y=7Yz+O2bVjv_ojqoOO@ zF{Fdl=XV2Mz@$XzKfj;pAub9=)hY{ppXqJl)mMGn`iD`!pnrJ!#v<7BJg+J;SDsZP zf7?!kTMin55rGl?o<#Zf@qf<1KQD-XvPY&2nPDNgyrX=MC^caSErt4WyDuTzmbkDw zKFdZXMxQJQ1U(TOlBz~()L9%auN7&%sqfVy*$pz8%FQrD*Xgcb{N4$g+7|xdCpOcW z^mR@2^5>k$ND~zP3hhl$kCegdQ{3#_{E2*~_i?!Co5s9XNi8CbNz=z& zQWv_UF2zZIi3p5kl3p+wF1*_kDat>~5-BP!Gk3Hm!*o)8^1q(RtQwbVYk^^tiC^fj zzPn;H=I?}8+}OgsI(jzQNoM-Md;%#+k$8=JO0+X1&YH6>^HATMd8k{Kd05bpd6>6| z2S}w%A)L18I8+<i8WErpgNwSP6@*aZJgs8RKX^)IaJLxkuF}rmEgE$=@C&TB`I~5IYza%*07f{iJ z2BQ-aTxc964kOwe&7)!gzR-h5;*EM*KcAM!^V(mwBTA^~@iivXUTFtjqptlG6R6Rj z#{0}yziOg|w>8X4Lh%gm%BSML#+hJi^uQ`TT;PqK_$$(1P)hpgd3Q6Oli08I3t$uVPI9|~`4&g}cBx$PuSLMT)A>a$oL5b4^v?cthtSzmpR z9%D!TuYRo!qiIQA>`uQq>x>C4+r6u;RB>-Ur{Pop!>=8yuFAi>gd65Y7N1V)BLHr< z`;CBkGV3nv9Vo5zj~`+=!!EFuBd`cT@w?Tw?rI@IBo%G1^b69zbXw0MI_tAcyyslJ zH1W<)#phbYZ@Y-9lD!fC?jmmK9B~8@ZK;;riFZ6G{$^h-4lV7yWusJg@Nu`*B2rZf zNn;(Be)=D_9=k@7+{aX3pSnC9`v{V9(l1LJIw-!RYm_+!E{dG=5*Ov{u2B{gxhQhd zbBQ9}oc>2ifF5_UpZj@166EATk2$}eJHLk|4^k(Vu>>>i+p5x}x`muLNOVjMz4*+1 z#6f?7TeX*4yyN(;;-FVq2ud9ELB2`l|N3}aE-RUCYuy`303lF|29sc5OP|xZP;%sP zdvtS^*|A~5b^=#wm&A1!RV|68^1r?}F{o8x2_(}b5Dq3DYx1BuQil$T2NBen)>|x- zq@484E{fMR%DkN}ik$RiF3MZ9v}`IYp!1-MDhww*)WuL+%*LQj>kC{IIqBnx(qzQU z+dKdUR;!|S&NQdKXSn91ky1_Xmzh>|y0xmrFRWF4fEOn#aMiH1Y@ccv0|F}H8$~9z zSP1$I^~8EPk-?Y#Ze%I%3U|&TS7tfsYAI<4#U)*%)Hk>&a?-U?vINReD- z@r!@qd4u(ik>KW}L<6kS;qW_Q{Tb zeX=89pX?~vCp${^u`y9gwFgJ-Z;IA+Vu4^oLuXL<=W7_e>$Ie$u>G%8HRgZPv+2d> zaC+p=B0`U$ckrA3WEJxR$-9^&G$3lY5l?2ygW6LS)p|sL#_Q#~Qu%-Xs7Y}~?{v4s z)$F9FF5&ds-g-+79Xr3PBy0;9=*23*kQ!P|0wxLjO`)-r0=xBX>Er&U);N%4GR#j2 zJS#zRC($Jd>x&*Z`y5@OyfxZ7?L5|^in0|IXJ>GBKfOaUabc$dty_mhgNi45=NL*? z#o3K*lOHffSzu9(mzY%)X$K-m%1PfXCF-E~2YVxk+3NebD00%*5(Uqq{=fPyQm+Lw zJ32J^AF?{Lq-P1xx|IXz)YqS8*+lRX5_2LiCdgXk#+|e#{mb8bnjmbEmy@;=k8a3!C3X1hqc@ z9llOBqgcwtxebg*VgDFiFd6jsH?f%%*qygsMx{q$klP3t%qhm*YeQ)cBM)492@|#~2ch>eJ7IlDjpK`z80J&eL zJX}ZK6$H2TN-cgx}4SiM}V5@Lyw z=1Ym1IYBg6Ds*MsxF{z*o$#5h_uPz{5;wk2n?-4B_8=+vD==ub`Rk~pAsuWwGj=|~ zbC?_Wg8Z*lv9og-{|i$2x6MU}T|W&H`t{TKrH4q~<=kMVe3R1=#MD$Q_{ktNnELsP z*-dy>l0(@RROC-|oVnWZm1SSr8J73Fd7vix6Ob_#4H%-Y0TniOu; zv!6wt6!MyiT|XA)6I1yy@@i{F**+MVcZ>tP`MrDxaDA65p7e8QV}ek2Dkt!=BmX4f zOBJ4s6P)|57il(OXk{?A!zm;6HvF~1&(>pF_}AS8BO5L07zL`e2_F??1f!nn0q`$< ziAk@@^mr;ijCZQ|ou8>ys5k=Silc&Ms{#!q!W`_Hiqou6@6T4l4e#wz4f)^VJzOuf zsJ7-vYUpoCn{us+*KwGdpJcT8(v5bJvFThHc5 zHd<)hti9d4{p>01tM-hRFCM>*i?Y3%@^KWV=PYtzgt5E7x3+!+zagtPKmV`4e)9T# zziz}&Ut^EyW*!s%s@8kIMcZUhp_bTtM}RYyC;B0jS2XlZ#%WzmoLEhJ!L3)v{B;r3 zSrH2ovzZwQ_tvv28e#(r`_T8rLd%$qJkYM6-qNDbmG!U3%AfFRLf4t3L~?k2sn|$1 z)T2gbwOaw77{9gkxoZvLqpAG&P;amD8;t80X_1v-HnvT%sp88Ey?8LA28^Z5D z-Fot94N~h`7kov1O=09N>up7CU!@WjEM7#j4{-p)kXwnW()uB=5Y6R5)I z+y^t1#aKi6b(+ef2co?EmDsh?Q2e@noWyg6D!AsIez!%VS+ncOQa%~78sW)j0jiYJ zU)cUZ*kEZQ^jad+9xdPF)y$xC(s#G7)x1z2EC-{$#24}A)r80V)iHlL0%ExmeWGDPhNZc}JXjYqxZ#-m|o+gHi8)2>;LV-h88qsJDox&eU6I zRLW9sro|KWbPn86Z!S+qmiK1A*`0bd5)B=s<$js){~YzAMio)7il@%h8(~z+Qg5)u z6ZP`UUoCeyPe+z|SG>`kdV`pFAB=j(5dNQ|URq}WY}DAvQ)lXJ;eGF@(QNTVJ=t<_ zyw}3hk)_^AuXm^3Du%d&QBOKO|2gVSH>!yDX7gm!dpNGqc-~B-QkM6|Sv*m1xcQ6s zCi8T-sCQ>}%#9pu%-yiLEA=MaYLt6s|Kn}#VWQlZ_Z@Fre|}MJ47LGy$okg1@QV2> zTK`)r6>fOW27Mnd1@&WZt6R`#@KVr2DD-p-+K88euHL;*&~&^MRET(^+gFl!DCmFM z_6b^x7bf~!e|}-tAf^JEt*mctAV3j@#tsnSO9Uvw$_ow<;WYvj;j8B#Ai`7v1TSeM zS=0JTq-#V_6jUn8^46c6Cq~T7q?q^FOp2AS<~bWz>_1qNx8E_AjG8sVLQj=gdO0hi%U4iqGhYvs_Z)*u{>U zPBLX!PZI-PMJ=agroQF2_&2y#9^Vd+KeW^}S7-4*85uI^E>^6v z$2nT?Ire!H<-3`(C+Q97T56kZ?#24%l9hjB5W#x$8=s0bzJ6M4N|T~s%=w(efbID7 zOZ0jhEeK&^Cv>`;rOCNCa0fnfX7b2h%|dhP*O?Qz^+x?7-jF|)q{p!$i9H~k7!m8R zWAuSi+mDhDU?i$@nMy6_x(7%&}f~3BapZtZ!&+VL`O1N2FIn+`q72V!%pg z`M>qF%3h1ZQ(AOwuTE@N_G%1IX~@g#2{#)t(wF=kkyCZyvb(c1Z_-mInh&#F4@UEA z?c056K87!$`E*C~i!I&#(|nvttTp8!(p;FJd8r((8^+1dd@zsDe1tjmlgtUm;t;zE z$7tUEt9@y%6!%B-68sM*%|(p#dQ^9z`N$brntwr0ooKG(ga_yIoq@jHm*#mYYY@zI zG=E014#4L{MvgWm>idx_;>-f!@auQtX*8ey%YA9C z6!%B-2K)~v%|(p#*MDj>Z@DW=^9_3HMDt0O>%sVZnti)3&FAtZG@tEgezm2$e?DKR z68{@~E=*8ytemCE$v7FBkK++OpJ`70B6EWIIK-ZfV>Ivki+yRX6!%B-G58-&nu{3e z?LRh}Uz^I({2D!VqIo~d^tYFX9oJ4>qU1%A6pIL+oKVM)SFJr``K=rMN$u=iz@iX)a=v%JopYgMOX|5FaNAtP(A5NN!80lWKjpoy)XK6lFPn~F9Ww{=V&r9vw zeQB=s4m4lrX#QSHcmFh>sS^Jid@f9IZd49e|KMb3K7vPRKF*x_+2#ap%~n5&H>3F? zy3_7_t`zr2^Wpd(PMV7t>3e>t4VmA3)FzcW6`$~*!YYMkf-&iIn$emVhBz@55^H?r za|YICgLr<*=7u)q(ru8jDNEhdZWB|xUHJ4HvOLjiH&d=WB|P9AB4`el@ZYWUcVdr4 zxwy&K>zaJU{hOI`?FrYs#D$YDVF2k(rd^NZrd_Wv?OK|hcKJ6KM3nzZRZCmz`t(ol5q9Essp59i8&L@&hZ6tQj1}^2kix(J9Y~ zt~@)L=N!iJv?#fw!fzLR-|A=f;VsYPqgI}qzGvmpy#6rOk1Yp|O8xwHmX&9n%^7k% z-T$>eXi#!Tr94l~wDL?kyyY2l)XH-lr6(7&N8y_-;oPS+Vxuk(5a4M z?Jg!O01K*kN+dhH86k!QWQv1%XKg+V$F>M1{gjt?Z(~+UnX1(tQ*6L;ilw$6kJ!UQ zR3+2Uv6>cCMeB4=6hpYgRR~gKK>?lfc-a=r3dG7DiH91ZJ|+epxi~mOry7X5V6t-e zP1c0+dS>S`vu%lBR^t`6uA}~*MDj&W0#X{#M3sKfm+$Mx*yBlUlu@`)I+tt>T1d8L6woertfr&iZ5N@iGERYh?Id%yqEgS!E6?dm)|xmL zQ%D#@iiWnw%G)Q5(^t2zLo#PyrR=LrJ_NB1`Z%9P{bq*sp!bkO(DM_VC^}<0KiB$p z#6m|YUW=74olu0ij7mR}WSg~t_wn1=2JM`eH}&(3{S;WJ5%Q=EL$K;%r3RylOwOVV zRWicftk@J(G(t@*8e$*+ac}A$yUA=Fj}Wg}6=}?&E5(d7)85?!Kh-Yc9p=!DWLf4| zCa*5cq1(wa%rTco#~iX|o?(uK3jhBnb9~~7{|$5e0lxcxgE?AneP>U{kcL+DHso9+ z(LVYPYj*E}CGAkhkoEAUYhPViGU&pRwN=KTbz;fZU3`u%Nx`k3!!i%oj>b@Ckdh$h zW_tSkM10c}NT`h@q?9sm=N{elb-v$w7TN-Mjeo0k7Jgh(x_QIDmC}&?q;$&vDy7D@ zeK9S-@88FC$$nBQ|6ir_+>U)QEywTQ$Mntpq;%Q;Dy3a-?~Car{QiARckCyn3E7kw znVMOqb((q|zD1c13m=_H%ZI0HkiYsZHMfS=Z){ViYz>Q1gA%K|*N(b5b_$+8TSF2T z!4TDKA!-o&o0Jz(Q9K6~sCZB~@?1OW&L471^-oE<@zl zPRW0LB+nl@h+h<(PB5o-B1wiH$fWrLUeZ^bro%!N+pkizKx0z8`txW14VQ<@N5+Hv zC_$W1CEI6)U`MNC$;CnZL`oGaig}l;4?i%%`oxb%mxc?@w#Uo+rKhdxqg;R2UvP_$ zC57-J#Y;apS!$Sdb|EwRcxFRyo($`0%f_6#aVS#^Jf*?2xbbg5bZn(lY&5EHrMonF~1BmG;op7i~7qc*L zkp(|M6lusK42KEILOy5qGSi$OYDs6V?GAKl6Vr}y=FAyuIoK`8pf-t#GXMx`N%cUj z2`s2JF9)@j8_Wu3+voLT^f~8x&8Z(@p7Z7#_yx0F8Aebdoxd}<^;&&VhMnfrYpqNf zoaMg-&hlTKEdNo4`Ics9GlC511xB7A&zxGF#9|_~Q^kbH`i`lWvkEBVfRsVT0V#ts z4p{4q1J03gK*})J;F=OUWk@R(zh0;Ls0Ug4q8@ahi+Wh5u*|*H|Ask0y9=0l&_OY# zo+XCbtSvKP9PG+4%p5x{*!tc(Ox82WCcL>7(BbP=bZyChq+8K0A~KzQWIf1y#^FCE zEA!!bZ2F-ZbumLW?dhng_{8o(I*u@MmGv{Sf0-WqgB}E*E1#e+^;J`F95FbnPM-ei zt@`=|g5%u$@}pSWp4Mq2*jzkiG8pnQ&KEEJ(q-Y1;V*{26uvAv<+Yuf%m>$=HUb-Z z(dzzdC!mt=KaTB%X?h9@w}-U$}yKUUmKu0bE*Hs$}@woADLnXT!kh#duj#nPOX- zwo#;~;DVlUzp{h_ced_9w^Ik})IV|?Z=!5njGK75GKu8Smi$88U&S%p??oFo_Dqzu zahM;^C4>(rDdy51OdI8qINzt>BkXb1b(}d`%<04r!o>X)(cc6&Wzj6OMl;m%Ka`i31qU{x!Z%~2* z`M)@hpE;8W!ksr0mot8tE9VW>~tLY|}k7yHHiuM|c6N~Dc-gDsiw42!4! zt0bPft~6Dz+Mx3pqX4>Sh(Z@#WMfBRd_T`8SL zni%2KdF|LaC9Gy=4{yd_)h|~!N70g{kXQBLaOA)hH|TKWPYKbv$C1akb710G@2oZS zBEltpkO{JfIr%8NWzTpQpkbVUl0ZBp5GZWV`za5Ead&K;Dhy8h3wp#?wiqLPhc@TC z5@8mTm~@2Aip2$i<^)@CBB}ox98G;^7};vdd~Pc8AQqMi^FF`78Kvb z6Qi{ zOzf)7vGUd9|CAwchPyHtSYoW!GK0VMVuLmMd4wu|oxf-GA|0zv5HS$&I#q6_`<4SX zi&v%=zQ<4BS)5|@BjpYCRt$p%B^w$3G{r~xpIcGo4+Iz3H_F8MN z{UXr@G=HZK*@$-#Cze@{AYN758u8X|{gAp%;cLm ztRj(_xB`#P;5*`_4eB-Cf~<}be^sn@EjM$o_7;4bb#Z(tiPt7Efgo|GyR|ci|1n;g^%iVliJTKV>W*|4iRW-2 zp2H@d2?wG%?8I^!v78|@QzmMY%$+xA_sQI&h~r>DF4#6P zHfC8Sz;UrpW>Lo$D)1$tvz^}TK^NoPI+cD#z37&$2ljrM*JE1iAYKhi<(rxDV zyyLb``%bjBwcE^M9d&yoY2&XYhlEFR{N21&Kf`wPSBM#Z9ihVU|7>Z>i};a$g69n} zyMg_a$%|wD3jtmOM6iiY%m)W}hDFjd@@t2^|4YNs+1QMY zFS?;cj_8#+GgmX5yz-ym(480o%(5Aaqqz+=G9Ql6N2$CgevVne5jf;7&s5;9%?y;Z zF5VRJ&p^-<<1aFm!>&*zpj6|)c6uL(2n4+6}2y*Tw|$qqp?IZbRiAq4iBpU zN7x<14YYOSQ!+!bRT`ufqM1oJa95~bM>91HSZ81 z2bB36%QI0nZmo)?o{6r0h0`vruxM&}zZS?Q69IMKKs9qlddE#au4Qt+XzH0Vf0Je2 zN3K|^IlB4{_Bu99(zmJP2`w?;>f>*;Og=1{`iL_3m7~0LuFvKCeD_i92b)&4)VJH%WqcEHX&@-@}!EwNUcw78BFG0Do`DLt9& zYoYPKm9*z@Kz_F9M`vkBv#jV(K>-&F`b40kLz4zQIT2VR00JzsH&O&fieW>na)>Z` zkdWvVZM5@t_cZc6ajkF&{MjT%R9>q2?9I+~V;t zkNe5Sslrv9l(x<*+CygSt+5X@4Q|e1E1()e(WHnr}Xv#iB+=g-k@|2j;a0xd?=!7y;3k&s&p?y zz7b|c36BWdE`O<#&&>Oo>Vj;GaI!hS^Vr>I#~TOz-COW18Wq+Thaklz18~&rTdGlr zG_Am`kQMGm7o2pCy;3iG<+?rv zH$>W}T4tS1Z1?jV#QPQQDT;^QVPD-@@z9&m5Vu)e+&^HRn15OnH6ksG1U5~PwrzYY zpeZ6BcXXUp!hILRvtLK=py|htXXog!0TWD%T_Y(erSzY?pyPi?B9=Zno*t3slPTtZ zqT|_$txpZwRrXk;4xSn_yj=Gjnp$jAN$F*(1foKNI?Ol;=yJ_DYS3QxPg*TI0Hr_e z>^3#;KN3rwVCuXVtPqaht8QKuZ!p^^eou>xfG9jsS!9LbI14TYEGbN{6dFG_n za;Dk7%|Y3W!tYF^BH+~p$*TOWM%+T{%_K98-s9-!BEo-1Ol)b^i_#0^KQSS)a&~8U zA%!!E*@g?ySSoT^%l{xyL{uK&n!IQ#cR?q(|9(A#4(Y&#sjuI;zW+YlK$65tH+lPXmUScC&y4_pw6tieZ2yX>@`J~a*ido8Lv-&|FhfEPW(>ZU)IdoOLS${)d zg@@hUNAB_qIb`11cZ>jc1RYb3F2{Au;vxMUXIb~ef0h`>sL47fQ@}GXkjGja#Z7&F zoy1`@H8SwCh_7arI6m=?E0~C=nC7}I9SJ@82tS2%s-~XSm+M-*%7Uj4(MeIqJ$m72 zPETW#Hp86VGyj30vO>~U0+?bXF)v>FvbW$DbOo9dxRTb=!(4Z;PJ{5e@oY9#k3y!~ zFX6^U*rLoNNZCrHM^5AU zoZ+!6@7UjwWh&PG%cCC z_d0T{6vNYa4X>t}i4@0z40<to#)l`IyH9*aq%16aSRV;pUJPH_D>ppvMnY25Ure z+m?fnwoJt3X@g^)^&mU5`L~ZofVrUMxw?~+5*iPPr|1b@bNgJ~v zsWGenG_!H~@;Rm(6LoLTyf9Y#Y44dsBTy!MAI9!1`FIB^KHit=+S~ zSNp3efFk!L&q!pDn*i%YPE)kMRyPrF2qRQusmP)HRcj`^Kh&Fy&*XVd!s6Vep4T&d zMriWRuCV9)iY^n>0Sm^Ogc(hH=;~?=eMl`qEU6h-4Z?s-1(0@fCU*&GAi;fDyg9(Y zcQ+w2l;0Z6@G#1W4SxCXs4uBv#=b)(g$NMPO<1JsMHKSqlz;cR`3ZagmA%mVn+EOT zFx>;FrYe^3_r(3gKwUlHpHUK-Kc*tU3a7Fnfpk8>ciOSa!34+QWzRO;YFJH#KHyve zu-g5C8s)r1ek@^>02s~wN~N!%#JK;S4jzE34&|>}>usC+IfcN^`t2#7A|b>%)<-11WXo{^&f{8z^5I`drdsnJaNf9szQKFXE%8vDT8Zta!r(X;su%pxDb85t6x?nzPnHeR!`E-m zEBLL7a|SaH&b`FuNcK=%vgc)bj}t|J0V)Fmu4<~@Y^ECHA&isCg*bEAPxs)=8`8ZN zRdaU7qQz@B&b~9xOAP7UbD4_b4f&|s%or#P_qYd?g?rv3L}O7CsH(I_vd7(q?|%}NjN>{JzW>>Q zZz*#-9NUg1-JkJ4dWbwizs5cjX9egL_nW*E^ZJe16*V0f!lNPVJ(qpRBHO4!7dKSlZDqFe-e&+ z{z+(!|H*N)J(4~CEWGx-L1>Nt*%-XioCS`Xh28sXm{YkDZeEuteSPK)d$Dg9i5>SF z-Hl4d$KK7{WR}r5)@%oSZCCRit=r-)czmL`yIxIb`7aA`dBf^lp!h=5}QwoDXr zY)tuZ5G8 zLctN}!9w|`WCnA2$e4k!^#L%DMAN8LMsVPQ+&B*~8L78N{CYSv81Bbs zgSoX_-ZYcrLt)C!)d_eKMrAD~qq=}CfApo! z=&4xo1M$!n2n1e#Yl(3cUcz_b5*idachB6AvFFIwzUuOM|`&|Po^{GR^870VlsO`K!2w8<`rV6QhB^93F+-mjH3SPQmn%_BM+oAOSd|Q^ zODB`1%}`2s0Z0;v9dzLnl}J_8Js3v7ytiS>-GaVEdu3slr9NF z@5I2kEn2!l-PBvKRO^BNHPxOr;W=m%_r$702K|ybT|$w}C7dSN&EOY`Nn`=Ac3vTh{pcbb#GCdE7aS&+n=0s?7B6G=} zc)A?-OughN942OhR!$%0Zch|HfQVL4yMbYPBJ<-te1%&)=(z|Cad~?;4aPbqbor>) zw9_>X?koXZA1~(3bqiuP1$m^e?t|54Shl3;k!l|FL5)7(FlJh-x5IZ;d@Ro7VYdD`R+ZmciPd_ii~u+v zw-WT(#SqT$KbA<+#dMCvR$@MP$OGLgW4p}X8S!_;OY6js-WtRMMZJE35M2vc)( z5*>r>CAXSb6=gB)VS64dtm-!N9IJ_Vam}=9#{X4qWk^h0)~cj<(J?9Dl1whD@-7Wu zyOlAYy4gx)hNrV#ld%xbi9KjG!ddA6G@bQszjNg>|hjwG?OCySTdZj7&fOoLk2l>5(=GiEA%+M9C;jteTKK@-$RA~|dIjDh9pi*hlD z5#>@kvCwALeyA2Du;&h9My7iln&AF;uEsTr;uP{VPSL;NIur7c~^JGYZx%DE3ecf8K54cBp-;zo;= zjS=n4;Eu{?WPHJVCGD5yjfQldnyKRAN6OQ=kHB~!PUBrX7@O;N2BO=L!(was~g z8pnEmDb6yBHm4+xUFXom2n-Z6c*$!T#c8{?W-O9EkL3?$GQgseiKG{-ZS7}5#wq5` zioBiIo@CDK8@V`+PD&sC4e2d!!C3*TF^_N88lS92Xy)U5U~-SPmK}|kECGl~4|~`IFjsFz+na}(bi-IW&FmK@f+FI5&z9{|1~t# z6^YVjZ_b6rcny;FSVnZEU<7B%M&8WbTQO1Z!`rbGN~AApA#^uoh^6o;-$OzT3Eb|L zjsDs}C&GFRJqf*IYR{m}pnI2zi)=P&{Y2yMZ z6#;rE9!7(?274_HBsZ)D{i64Ox%i>|^ZY68J!7 zAj|SC9V29s6bVS{yJ@7>Lx&>=(44j2yrE>MwIMCJ=VA^;Qx@v@B67EKPWy%QDFdPJ zaq=E_V=>NFixVL(vJR7lDB7sb9}jI3dE+bThmPx|Y!5SO5bv!vS4R#taUZuwxRNxM z&hYmbU9ylM{w1nKg|4#-nPlu#p*gPVvz17tV$8p=f`m3}tF@DuczwQ?D1IW!mf=iwU^6GEuylT2)1UV0?)O&Fc7lS7UpGD;Z8AQQ~CjT-8zt zyGUIvo~l#-!J)B=TBT2J_A?s^)1&JMLn7O?tmPKof}fHAt^$JeDmjVKQ)-d2tCrtq zot-UNF~coNY;A+m_;8j%>O@RTBbhqC;E+GLf(;qFx3W5g`H8>^$2ClA!f_c`0eMy{ zg4-NBktYrbgaNLIgglypps~7v3kj|?uWF-6!)vWc3o7$ps!Xa*vSTmOU~gWj#CFmQ z{QpB5ZbNct4G>B-cUWz0s2xw4i50k8(nAlx(?Tkf8^HmF(Wa0Ka?lDJed{fL>0$nbx*7Nl3yl`JrjP zJr?Egh_Oi8TQC+>Xo+?^L3*tk(Lq93c9?KgYb$8mXz2FfbbPY!?w0U5dH#Q^yHO)G zg&L`WbYX?|u8}uy);@@*w*S8*9+k^dq^$r!kQGe)5L45+vDv}qrVPEyA3K%$`@0dt z(iO2{X1zBh{0F(OF;Tn?zfKi%+uvhaCc68XgugWwdL&-FAsYH9As^R^@#3c?(ThJK zH5U4a`x%-3kuvhjE8>~le({j&+IUluhks!;*>I*-LhysQ8|5{gs1l-HBM3X35ruOO z{j138eCh+a=uh!VfSgaDQFW+>ZsH z?8R!RB9%o(Om>(v3~0_>o2Y?N%^mL6QndTB+gxY^1`TIhR-r9cX3ct-+4=JR{3OPq zQKCSl2^Bor9S04wtO1OcwHCsC5Ll#2cC^Mxd#(2(;5;Mk1cOWq>{^<6RDxg6RGjHw8S%mO{>LI6YsQf zx3}QCd1gJBY&VD&f z>@X@?1F&5@KN5&tu;Ltj|B-%l-)Z$jl1{sMt9nm4b|`L#7Le7bZ1IB?CFr`wwXmi| z)tF8-C{&d$)H}-Ko$GCauQZf+OMd0 zl#}-+9HF^$oCy128z!#}FnR1=n7m#PJ1}X%4ooVz7bclEq^SfkT(=(!i$Fzi2G>Ux` z)BhIH+6{VM6O2aeTZhfv3inxm0#aa4f4DZ2OaxDUN~KiD_+*ajf% zfvdL+ZA;87m~x}A_mNePsefp_M|_kOEk6xjm~y7aIGIU$tZg-(Dad^eZkgc@Ml8&4M}3xd zJj(obtXRXNS(IXH4%oP&r3KBl*nrh$%ucr^ia)V+OAYGEgz>zSDVW1TcViCBsN!ih z06Jej`VHkZG?cO6GpK!*y!XQriQ-f_P%}+D50+CN=R7Jip;^hiE0AGb6?MDL--o`Y z#No_hmDrTIGYa-OnTB(zCNS<~>Y;txJb0<;vvnEsY+N$jQ^f=qE}uRPR5{SHYspK! z7(08%J?YK6U7s?~kFHDmRfDItqBR}@RWY)RN;x=P%l-_ z3^Qb>-|3?7@c2UmeSx^M`)|1uy+i%l&F1UK=hW{@Z*~%QT%7LI?+c{wtu$UF&Z*w5 zN@e`9LWT#mlTf2}l3>;Evnb}Ds@qJOt{I(-`XpwacvFTKX~|FcDV)h=zCG?z)=PNn zc{d%Vf>4zuDyq*t0HoLPi%MZ_slA3{fkGj|Uc)~z-SN6|*lYL~79ojK_=}dNp`Wd& zic&p;+PR8a?Nm{ftg5L}PL`e|>LA0Ji*Ux#5R;|LL>+84QAdJf3bIq;_^(D4B*Q?F z1Xo*$qT?=gJQEov6#o_KoY?r~sDlGF%qJ4FTZP$~2p!z6!m3pI2ibm*!sr9~RgE3| zSg!M;=usWq!ib)Vk_d_(@7x6gdSMgJIl3ok> zCHiFjCXHN$_FhG#x@rUSvdx;|a#E?V;=>BTKm zr(HZnb0W;{GU;EZUXME)V%t!S9yc7VB>@2W)z1qnp_3la39yy89Q82b$+>8uue(Pd z_h4V5SI82Xz#XlR+3w1eb7|dn_{3ZAOH?Gf&$=aNF*@xP(=gT?>NaL|>uXU^2@PtW zjY>B?6Dxk2F>Ii+Y%wuAO<7gk9OH~?+$lE5bw++y_1vy|(N1Yb(Qc^+ zWenFI!YeKqmN=DP-lHqLIf=G-{>P7HT~bJq~$Mv zIRc@QX7GulQ=3YXvT-WuKS}#Ml~hBn|0gO5b#z|M=cuG_2A!c@C4~*wjDiu5>8 zF%Z@9mVzw(CusVJ_J)}}Z&OQwCXzp2T=@kGsp6$Cr;s#;>ccnS$`lhiNn@z}6@}Ka zF_d&wpqnOG`KGZOXhkzf0y3|BQi=B2 zhlVoMlyrKkkbs1|>8bDtQ#qf}P^O!bPB%F{b(+;6wQmh&x+&>&lhaeDf3b$bbnmR8 zp#45HlzRUEhK8!Po!9>p121%NyC3(n{@ZhPcdTuMlvRZPma(Fw16#JD{%ZMfiyxKy zHt^({8}~(XMB zu-C7j#!-yi@Yv44b892HicTXrbJ^Okk4SW$ZS_JC9r5JR=IS4C{|oRgp4*3!4ZuL- zxrJn1Jg#3fkfT|&o^{W*86Z%xomWvHE9F1MBC*=1Gpf1L0G z^Ch{bVA=5C)CXjToI&BFnY8z7q%huWA?tVMC`~p81Gt`WWz_?eF_xoq&MY|M`9Ksu z0Fd?knX#*(k~4eFZMuzMl`gKYl3mYn4*a|a&&zzpq8Kq=zro(Cikf zE-MbjbSGwxjomOEo5@gku?BayDeFZH^jDbWO$nBEk@{))6iLDoaxgxiE1lB9#`5J# zI2+ixcPilpC13y(`BM`nuPee{!zQM1uTs{8mZlTkve=-qGJ#g8W=xwb4_c!7B5PGi zrUq}*h7Bl6CGSw1DEm$~z&NIjMwx&{UpE@DHW61FHLfw@9Ey!;iw=cXqZ8zUFpfr_ zDkd0Y8^&d~x6{ac+z-$a&WUIv)b!{6T|xl@YEZcfD??yycqRh$(Q$4J-hxpO86W@{ z)X2NXElOkL&_)1zl~^a2M)wlyE|TwW$V zJn?W<-p0G;WfasxBC%5Ll%DH4m;;9+4XNvddS2VnZmO{}+P4W%bxRYjLmT|w9za8B zwp9zAE9HpR)uRn|(loAs1AyXP5j1Ke5mio8+OOz~$@F8(XzzumTlP+)JNj4WUPgAO zHR*B0cN*O>*LI6)c$ypDU3@W$li@~s3`0EYeu#|<1cUSb*!ZV?gonpN4$MQHGt^|A z#%dPHcu#IoWSkyk(Ss459%P~ICqn?YBt>zDiNU4nwBuLtgLh8hi_BQ?5g;oPj4 z(Ih}+63$YkQKTT0S0WglkSoBxBHAn%a$v!rNNtoMZ~`tkZqe@X;(1UqWl^9=k0in@ z5hB@E!mF@nlXJE^W5y(cpXif_Quk7%zc+0DH;VMFEni-duH+lqd0h@^yl{4G1Me1?ManoydmiEh)SQCVud_tIdE!DP*Zqrh?#5~Vzy&_8zq4C zCV9^UiSKWfqCzv8Ds>e@l`?KboAAr020T!t_8urw^d|K+MH*H4@??|U%+jQh)|sdQ zm~obUJ6Wnsrxx0;+@vT{NKVb{9j~g~q$VmbNSCXA6;6>}c=1%YfPTkRm75)*JJJQM>k;WvFc1OXqTR^Qi>xt5$I*KE6 z_}qA@?IrgX9RKf)NP`v1Zbxr$w4b-&N{Mpr=Aj%I-j+^+%pom(Y+zS;02ny#DR17- z$=1G_^-9V3RA!+b9p6mk=qB&Dcf5I%tvi@&OUtA*->CI%FKB(6j$UkJx-lMl5pAo* zNg<|NY>g?n3MapB6TlNoDYoc2#f<*}oea6d_-*_!Bc)JPy-n0>n-@FuJ<_FW|T zfK`tMBIixc+_j!Ze(c}_$-yuS=CLE&4AbFFi>(lX0*8dpLHQ2{dx^|+ZrIst#tg-g89E!t;a~ICa}FAtAx@8j`I=cX zc=y+UIA%7z>}P6L@>RN*y@k)W@LNO{@=9S&eyQD(UqC$1I-k5)h3B<2jSi}es5+Rj zvKoP6kl)|6zaa@egm9`qn;gcwnPcX}GCeQV(j{s-yM3kbB2hDC>xRi{ z3?i~fgCF<0H*cB|+ZG)KE2?a@m-)-lJy8F>cxaE#Q7C?d)qI@%5i8!52yN7|=C;LL ztg2-SdMhmu8wLg-I7xOB62cR^i3N0=ZkTPSyy{Tk@c8|V8$O`@)lGrz$b0g`z;a{& zzLNz^#v2lDW3_hSh`&4>@W#u)dEYB~5~%1GJ6YG53O;}~I*PICIf4Fwx9V-MsAw!~ z(q6LnedRHeo}v?l+OYS0tfrwMRrBJOSSI%h5?D0?y)IUQS%x%fT#FDC`s97v^jA2J zteizcgOEaARTFPc9t9(V=LEoPqVPFtFdGvg_&F_2hrvf}Qxz(gX$maq*%W*!rJNZ^ zR;#ueLj;f&El%>1h|53`5{YFY_YIt<)f?nSHX?>^7}6o_LcCyH8BO{@sZ5DO|9PMtz=q9rr++e3g)< zABkD2p9`?*?DuWJknlplLUE2wYA}LA33~Y|s0Eo0WTK%bu;`b4d+-#L=i%W?L9cZ~ z481_qR`-J~PIVdD#%i-SaKpcp&C~ z7_4G7$+8E}8bjG<62YOHyVi(2Bw$PFSJ)gH4)Gsa*u0i`dZBAcEOEHJEXbP`kfQv9A+%=|kh zASw7%s~WQ~NYAdq7VhT@kYIX2Ujv`HAmYue{j9LPz#53XPeyx}&D%-Xs$asv61J)t zqQ@bB-@GN_ zC#`zQUUf^rItz#_Svu2@_{`7_+qWu}es$N*f1uEaJ~R z1g_3q?O2(xNjS+&PZO1R#$+2h`AQ9{D8LkbTW#byC&HLeqLt>g*|9J(00HyGb}aJQ z>{yUxJgd=JyB*7%1gLX%>}g#@t2$sHT7`WuYDD-PJ600pe@(Qi;4dLsmpjp_i;Wom zFYwK=cyxoqSY2EEhISK^WWb0kdQE*R(qd?nW z0!KlE5lN)}LPPfV_w7Tr%65Z_`*sw70U32jN7=DLjRx6tpg5plU$aCt&KycOR;=}d zX41+9Q2mb~zD1XCY-zlVoP{fmxn*9!xo?TjS=<@#XhblSq$3}5AafMf727P>9{p%A zB6o~a7F~pGA4Z%#E>#tfviXke7Z!?F>J&oS7_ZQ*@s|ct_G04-x45BrT_9*Vx*@Pu zqyGDyMQ-s6++!Bwt}%Z@y!gSGHn2U%LcnNfE3#EZXyl>;C^VKaiP~iT>Pww)C3gHQ zV~2eS*Un4l_iead(C{T?>8Qw~FDrqd$g5W1mL+eMBhvaZ`lrHMqdrrF%y|8=d`e7Pgsj2sr6A4AEp+ zy|E@?K5puz=)?AoW^m61Ue5r!n&(SwNnfmv8+xB9#|i4%IGo%z^|&TU>&6ksBuOAh z)(v7^uUo4VS_}LEYyOEu3_Yuby?`mtoY{@bT_*8LT^iY)EN?PQW7k~0`@VOo%!F!O z5mmZkX{}eZnfg2%N%wvB(xdgsbIfy1qC{SwU;=dquR24HQ=jCaOJv6G0j7+4U~%6t-=b>Jr#!#YMp1AH(Y4j4XbmrkalAapf#jMnZ5LE^ zHL^YTy^%Dy=DmIrS#(?xh2f&8;=yoUPNY(c^D=X|$ZpWCL0h=vu$8+<>?kU(ymsf- z>5!5-t#P9DA41hFkR$nW`*}FG1C9&ZDT3P%^=o(8aMm^ZtqHOnb(9ro=j4?6PvIxc zC%&w9JxBRA2yP_(eHyS*xj5aD$4Tk&y>lb!%97mll-{{fO_SGcC!Wf0w8x@VJj&CD zmZeL$$f`f!Xx@At0N6?r;5I8`+Q7ku0#3gZx+Cd}@|hVEKKLM!YK^DXCsMB_QqM_z zM|849LkTIi34U=)Bt6;Ao8izQ5`;AF*x*Du3HXT?XMGW#&!PpY<5q*;aId8)UJ9P4u0ON?EBFj z?2O__y}l9uU2eLG;EDuf?S}3gfx!!$U&Mo>RdseGr}Fc+Iv3!D6KA!Q`>#aOON8@? z|FpkC^(xniZ;!-FmrWwz&H0I)jAE3A^^A_(J>uwSbm!0m3)N@!(87)$*RZkqYCG|k zCyP9qN%7|B&^MOQ0hRj{^lLmB^tXWbWgU<-Xj8za>ET=xc?w-C!ooft{+fupm@dM? z55hG(m1qD15O7n#Gn~f|Nhjw+o9AMwRbVb0zl#0Un`9qw)UV{2<0Io4)X~H` zj4A5`Mk8eq2Pr#8QHz7@n|Uqi=~v`CGQzNKLPbnS3CX#pu-#QM)jHtB-TNoz%S5TM zLAwfyn|3mIWD-lrMzA@ni8e57C-Xro9GMIJNA97qY=D1Uy|s09nXe0t3MbBOiTKZQ zA#0i6%t^zJdhbF#?l2_3!*+mHDMcz#rqM@E`ZRE?^Xt-?Rs5Fupv#Ulg_GtJ0ghE; zf6;aVdtq8o9HuAmM&n1Mr_W-kWos<8nzM}5N{}s#MC?|b0Miv@mf|-|+Y#7ZFsNu_f$xA)qD`j`we&WJ zX^$(=z;e2NG5iazW38(q?YJ)UKQ8wl1oxbc=y3hEaBWEHjPXI6IH;~&E?>XDSlRC6 zDf3r@U@>*X9aFte1WSK)urgd*mY&`{w=CVWdn~mUJag%(&?1b%qGDw`Q`1C`LokxD z4Y^^5o@!212Zf?o8=e3OPFxqYnlI1x&J~L2YzTEQJQg*B<3Lqaw^n^SO1}GVkmsS$^@h zA+(o$5dp6-VN+YZ)LK3*+6MpEsGNXlO&qJKVNg+55u|95kyAR1t%T#AY6}Z6>@*<0 ztzstK&TLu z^f|xNLJ|K3&}(>fEm7GN^5nGc{(}bYUiH7~iG`}tYwhSY=aFT!Or|cXCx*p5Rce($ z@T0qT$5!xZmF?NARKt>QQops!)MJ`N*D`P9``$?HuRgnp#S3puJ22f)Lq}+w{6TAL z?Tkqb$bJDx-a_8oW;CXjvrMauc*j0{@mIXL_Yu=to-=iSrb{1gJi)$!gBA?t4eNXr ztLU;*PdgM|2oHGp7I738OjEPfER4*0^9smDEuL=7;>|r6Jq}Qy+-zp-`rugL1PIJ&fFn`IC!SQb&fU-4e$mG!UG!R5m~R&;ee~ z!f2+~1ileSDpWWIAm!t-FAetiR>g;-nIWGXe}rY|D2|eTU|;3^!Ad!+{}+_hJNpw# zq989Q$e%HRQYK`7O({|Tm1yP+>RYgkQo59o{e$Y2cOE6MFI3eg_v!tk{-`2Vx2;{} z{eu=2Wk25E%DK}%bPYOh5=BkQhAC=c<5vxHy-@FC!Or2Z=+3N;bT}})VX~+&F4XIk<9Nkb>b$|mi zE<45L{AQ1qdwtH-QDld?y?_~3sxNN?Q@@=QYOY6iy-WN<2bdBEMh0(eLry!CdNMj@ zK9C!yACTS@G1aX=rJzEn!Ou_^a@gI~I^dMOHp~3s0^^4aSgH1=As?Y3;g$DuDI?MI@ zb?y=VzQA4W!2RbJfD1UaceVm>^oaB9lf*z4svDc0`yHa&dqgRvbmeGz=e%<+LYjEnm_$q^xQ&dXjh1fn7Yr_E6knk6-H)rt=FpjDEEJ|u)=bo zgv1K$X4f~~JoRbf6abDT!DWQh)}FI%MFI#4TYcpELoNlJI zfo(o0cUX!Xe}(TKh0jJed}~RJLI-p0GdpDFu*%x+FKlzPbuEi|?uwSa;LT|<;(z`g76gtg7BDJVDSwDi zlx`3vxv7zjGLDkYB@w*_Dr!Wd3pI7q(i4r;#}U1gmsPBwxo{lX2WwU;AfhI*+R2Y| zHaO8b*dJmgi}YW6?Y#eTNIJa1SV}$lwv=grpe9@!L5N3z8lQe;G+- z#NTNoWoc`JNIEh-{mzz?{OPy0H0@__Zng1bsoluq&AAxbu^5|rX=g*{%5yO&S0%z5PWRhc|Bct1z=#XYnA5?qd``i&lAaF8YItG-L$Lr&|qY zthwD9-MQ`5Og`y&x|}8TwoN%*h@b*G7|Wr0Fxn16TmryB|0U(=vvQezJcO;IL}W;DA3HdU_r3&QbKD+?N}t)$0q5 zTF~5oUWB=D!Bx7{v~l2qpn-$`3aUG9pSyeEzuZ7tWvy}7t9dt@qk~)G+3?dx{0eH+rqZh0RN5w(P%<#) z+b!(~&s?9Mh_CA^xx;ni5b}rWS$B|f`J}z3kp*(#;EcGrskbBk zutBe@QgsqFh=Qf@)RY785AWh2)Ec7v6^r#dBtb5>8UD#im13I$BHY61)H~B^pS*Mw z1??Y6cjw6bvf_9dd^C1%y zSNln5>IHaERgICE98yMwB?h+pvWtE%C!LH7NC9Tv(v%0YXb zkUylq3p}qt!65|vUQgP)XYUVNru~#DJ!CPDGP|df`L3muA59Ip3UqNPaUGACck>4c z{vzqTU(!3dZ=yeW2(8?1A=Q{Zw4FvJir1xkt!8UYEVKhITS*FgA|n2>fxM*))ZW^c zyGa8~H%JXd#G~|w3xvO9mT^tPaz$o_ee~O%tvF4YAyEn3{-k10O8@1GmeI%Ol-=1{ zUiYfEz(0+o(wAoTESC-OBZZ1zI>~pLMx_6E#n6i5bGXqjzqDR0n|Wm2mZ{uL@loiK z{jf;}t!g@`>^{1#k&kQMcb9piHu9RX-0VR7JL(Z4FSYVXamJzkO)CEUHC)C7@nBt5}wkACunr)D`3^8-*ToNv?1?U zda~l?A!|}5X^dYx04u8<=rc>!g0-XaU|5OgicDwS2v%O zjyyvb&KvXCk;?T~;$i7g7Ajb3xgx8Z$uOKKGH+7mlHgtO1Ko$e3bHEsn=bi1y&oF9 zD{G<4dU7YI-Ca~EQ6s2Mi(l};<|A_&C4p-{%Ju55uvV^6t)r=e7V8In-{V15b~Q)R z@kc16U@_msQw1LpPmGGXj2N=KK>L!9099cCJV=g+-?zr{_g!J3yq^+^q$7f4?^NW4 zW^i#W$)M_b9-wNM3K~ULzaYjhG3%R^Q_({$`Um_rz5v?kv8V7+2evCzP&)FSYPRE1 ztJyP@&^M}hKkqe*ioe$)VkplxBB(%tB^RtAL`yAswJN#VCGWHzU+{PPI$|loyA^bU z%e9SMz%?3P<)ZEo{3)HA8z1ORok za;%lqiKq5=#hpexNZS2~HQXxlKJR=#w4)-g5!3i5gALg=W@!gpkY|7$`fhPwzVo75 zl@vGj{c|V4*Sh3aNDf+fIWbM6DC{2M0+`16M6GmC#Ha;TouE`YC>fH0KY~yI?1#Lz zb;kw2r;<$7*`;?cwJ@gQ3Kn|fpiLUZ<7HdFV5jD5&c8f8{D*^4;;VCi>iu-1SMgEg zzzqlPj+Jhj{L-LJt*h&H1=7PSUtM0eDw;8&6G?w1LPW&>O1$)e3yx#bFrLYq0>l$* z@0~ArIo{~^ywR&oW<4;u(TOTQ@2+Q$%4zzFpLYw-^pHX49Gx?Jk0gM1`JvX8Y#J`+ zZ%_AX9nXaonM{Ag7bZ6qk7o*6FJ-k(x;GxOB}W`V+ilW6=12RJaUmITk`;CMWdhG? z#IIf$=$Gu|4>78cWb{|Ny%+yPZ}nYHd@tS*2vUEA1YMLC`8HX@`V0xycxKpDnVkq- zCtthhp_tEE3QiUIPmfIh<3=arxf^iq8#FE^$5DNj3dS?NesQ=QURK@FsoQUqe(I<) zZTuE(jQKyt!FhU7+8W;8j$c(}Z~5S>Iipg4yiuAefP&e$d!9KkcL-P2OL}4*=rA@x88hKmZ>~sPa1|ZT~}vxcU(~B(}7HBNa@5q&0d{O_l}fK-_zpN_2$)YzOB{IJB`Y2$Xm=W`nr`nArJ5_|JZQ^ ztg!i;M^N425G9(iM+YMW7=|B8>%xNiqi??9C7{pm8W%JqXYN(a1?pUO3*D5;CBgll=d$!S5 z&<0YiBQ>nVAW7$)e-i31(<{=yvu89Y8ng|j=$QZO{v$F|idsL@m;B?iKYI`4<$WJ0 z9rfMM)pr#IjL1wcX)W_hvgdzY7+lIG{ z#xx8Hv3P3$5YIGhCxRg^Jt4Cd-b)mZ&c=&3vTGudK685{J>a8fVAi^~eKYOLy?7Hd zS63$dpDkv9O9n=E(D0C#kD{asSl*ale}RA1g57e;3C+ z*9}e%C;XrHj%^sBv35>&=eu9cVO<|bF_oH7^%k5-zreFamECYApnq5UwP~pJ98Ed~ zx*z&S&>+1o((kax$FdAE-OXt2H>mxP?+3crR{R+AU!yIX#WfbDMZf90Z>~9#Rwev1 zz{8lX!ne%to*hEv={^Uj<*u2`;~0kO^vISUYGQZi?2hz??Jix9>=C4!FYhQ!y>U<2 zVCkV~D5Jp;r}1c{^P6oL1{nUgw0LuL5koYUw;z&@)gDpZ@BXSGzy{246*$@q`fUj; z0-d?$W#XxL@taYOF!yeL0YmR5L{B{QCTGZonrh$Ra32%E5Wo(!VZ}xu%3}UHFuw|L z(YjqT$KyrrJ@Z?fPB3Uo%-@>5=h(xL?i=iK;zVi71*a(?4GN=;Sx!rB7W@Fw##h(uxcMli%+IaPnmV*#n7y-=n|7 z&l7Ya;fDowVQ@5J1E>KB>RaH9x;DJe@$Lx&-zZDXqf^))PEUo%&&OUmG$1u>liNc z^$G*WnE<-beqExNb-a`NNBt2+asM<ljJ6)lBf}p9xVV**i!aGj;rv`e%PVBA2?cntnw|2drrE3Lzn;ncP%C#bYu@7fFBt zE~{*KY=9-appOQkvW{`D!+D+JUMqO5aj#XpPIs^4aK><)eBMOCXmbo{&vn_w+h7}b+Gt%>6wlNPiBZ3T zGq7rKdQKW1^`lW>SH#k%$D^xX&W(niCb=r^PZ$@^EHgZ(Pp@pJ?;_DR?$5FYXL|gG zQ!rtH>({^#e$51&B$av%_{XoA1iOoe0LfL?^9_@%v!2n_tQ~d`QYUB1>CkTfN7ZFGNyIn_bgZFN>sl=P zrMepN2sk!5k2qfSc<2!>3a1LH8*&&~JOfHi9hhBlGlevW>2QF2@`>E64Fky}!Fkk` z2;JfaF))kQ>-q%GBA&IwZllZdiN=wT5kxB)+8qu*!VbzLV#QMfx?4=9H!+ayt+)?e zQhEOnjZ=Laco3@&yGTGd(X88)P#7K&8Zr zH)HGdRBQYS=xOxgwI-Tb6ec!%Yofc_|Kw3Qxl@jXMYo6?@Feg@S_e0_WDTJ(63_Hp z7!N%LKbHF=*q5*w&I%J{A%(4VRORYHt&? zD5p4to{kl76EHuD#96e^0jw(j?%Q#H_&8_-0t?2f2C2Rm3ScU4=|g(-x`~Gn5I{5G z%iv-Q(Hsf^d=xV9H&_u5L5_j2%O9wM7@_@XMNSb+I6W}iJ*O*ySzQMQ4HMeZqq_CF-8T_)tu`K_*9B^P^^l;M@n5TuNOxP`$Z$O`@2q zs~?DkR^eq}j>XhPl$)vNFO!W&PaVzpmO0p2LfPu=AyB>n=FuRAk6GvkLL9bSpmzT%bFJvXIy+3vM`nB�=eKP4b7i$_!)2?RSPZ%~ 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ξ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 z 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�=>8KN~PM>+?z1Gt5$;9(3pkWW*gts;|_N)%IAlQGux?TkXrNSFWs_@u&BHdVzK*>#nSP_)o`q z$A{db^56!eDoNwv(74%P1COPTP#vAS#K_`Ny>ckhtKLSV7((*xZyq7`Xb?4u&&+#^ z3y(iL7dqQ-{rG(1bytSmOxut$$I;;h8I%AUS|zY+LKAs3b_c|K-6;w0X~8I|_)l0! zJC|r2DHnj`VNEfl@L|#+emm02kxmUl97p<8UvZ?Hj3dQR1zCj|+YaZT6<+?mGKv|# zg{5JK*KeIS^;YmhxjkP}rTT62rd~$?v1`13o4lz%cCp#Nvsf6|LISD^`#)^_>A8Fu zf2zwT+g$AR!+x6fA3tQwX&yjK`}1t`#=DzWt-R^%-ZraGCJm}5n{*}wW7hWv+@Jqr zi$8o`YkWIDGSx1AXPfv%qE)2V!@tqRuWS=K zK2$$wR0>d1mk~n$<9VxN0JE?a<_-rlvIS;mX&XlL#7kEd&&N#JM2RqjxaAuGOQLbs z_h0!YfDI2k$_vZCuS`>JjHiMzZlpY*LyUN>_5rnzHPyzeYQymYyft3i%mAuh%G(h$ z49@swYRs`mK+|lIfWc+9)-nD*)lGUc*JFq2d=H3n*{V{S`eX0uB#all6;E!9S8e0M zv0A<}#&&L687=t4o0(($pW`;dOXd+p(E+Owh(^WsiPZ>;)d-8#XmMWb7(q@5XdbjZ zAu!I1R(;mt?$b+4re>>0l#|Me(`tsD9iGUc9pe2N%Cj$gy+f7)r{^@-$1 zv8uh^*lw{S%OD0B;|9kNfK)9D$7&lp#?qH^x8>@I7bTLb2W*bzFN;;xXU14zGi%}h z#)qS;I?3Qx7x1A~9DR^!R>KIor_pN;Yp3GXNy5Vg zD$A=bhHFh_k3ShM^!zoFP7H*zC{2DAOMa0^9^~{_?8weo{;EAn9Nwa0K5g&?maYkG`zn_nB&w?L z&Icf06K|BiXD8u%INhmW zCpHZDPagn(e_R@c2l_KTVyXKEY1Vkpa8>pb;;9n(TQ5y@`WEpMh)CL25U9zmP$FLe zRI<7g{kNFEfZOY*j>s(Zu?!H?jyY69>VokZA@E`)hAenS>c=sFnKR(!$o-F~KM|IswG zf0a#oK!J_rGHz$C0msQ04vS3o$?+Q{_a9;(2U)#{ltGM2FC!|Tvi|R5261*fh$SN( zgdYAqf~d@1ctT+JY+|(yR2KGNH30GS&)5>0udaA9Ly;Hq4YZ zGKzehlM%>kjX>p?H>&(n>3Mv^H#`Ob79~uidq0kVZ?RsJ={XicWYYH9aU3rMW4;sz zKSlT3ZHD;6{w<_^Bd|K?CGO*C-iuR1PB@N{ZkTeM5VAN`;Sn;o8zDs014Jvf@@PD{ z{Wo?L>gyaX8_yA;2}!EqAbrM+r=%tTNaJsoeqEqD^%y2OaPEPb~`Gw1e#U z^*wH13s%0SJpt;31aIbrRG>W~zKkrP^llG(d13U_0Ha{5-|>b$fvN`YED+8I5?tOj z^L)aJrd$68n=Ql=3$4mV^QgH7N33aCtYEIjBxjyk^ch7Oi`;F*k~~4+$t?^zHx@DX z4ck2AX>*SiT9ZSVS9OJUTd6(Chmtn^10qOH#VI2YtlXOOvD8u*Qt}S zCnMj$-6ZaQ{QrQRK)7SV*OsMyn0%~+=W9smWr0Q-3<&bm@LVwgaIf;Ph0A1lT(k2o z;n^C80O?AtusJLS>I*?(w#fB8x}nCLwPFnIT}`U1bpSPNLlXuEE*NzxS@15u0AZu9 zyj19bukPj_Z?;a}9!o9kuTI7-bs{y{`a3m!km9gBCv-jIT;m~@ny$>C+lN>*@E-F_T_SUq z^+nc2-1hiK`T`ch%&@|0r|z!rite4-*gE&BID{>_Va2v zz8G@igK-ebl8KJ$h3>A1v_@((b*Grn8Lk+-)ka2;E7T;5nkxsS=sEE+e*s6}H0req zQ6Kr&{gD-KYlrLJocKr*hDqq(?Z6j_`T)Kf@Kf7?({(v5{3^g*u9h9pA9lA| z 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�Rm0p<%D;5gfTN>B5pCFd~&h;z5M& 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

  • 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¬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

    En3Gu))cW}UBx4}Z-*m`_DY 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

    ^~VqnVG!_hG`jp7Awd{@RpSbbX5(W7jgu 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

    U0z3?b$IT?vxMi) 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 z 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�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 z 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 I{%?Q&1}rw1T>t<8 literal 0 HcmV?d00001 diff --git a/cases/breakwaters/ob2_upd/swaninit b/cases/breakwaters/ob2_upd/swaninit new file mode 100644 index 000000000..4bd7abf14 --- /dev/null +++ b/cases/breakwaters/ob2_upd/swaninit @@ -0,0 +1,15 @@ + 4 version of initialisation file +Delft University of Technology name of institute + 3 command file ref. number +INPUT command file name + 4 print file ref. number +PRINT print file name + 4 test file ref. number + test file name + 6 screen ref. number + 99 highest file ref. number +$ comment identifier + TAB character +/ dir sep char in input file +\ dir sep char replacing previous one + 1 default time coding option diff --git a/cases/breakwaters/ob2_upd/swanrun.bat b/cases/breakwaters/ob2_upd/swanrun.bat new file mode 100644 index 000000000..c2f231360 --- /dev/null +++ b/cases/breakwaters/ob2_upd/swanrun.bat @@ -0,0 +1,86 @@ +@echo off +rem +rem swanrun.bat +rem +rem Run the SWAN program by means of the SWAN input file +rem Note: it is assumed that the extension of the input file is '.swn' +rem +rem Usage: swanrun inputfile [nprocs] +rem + +set nprocs=1 + +if not "%1"=="" goto OK1 + echo. + echo Usage: swanrun inputfile [nprocs] + goto END +:OK1 + +set inputfile=%1 +shift + +if exist %inputfile%.swn goto OK2 + echo. + echo Error: file %inputfile%.swn does not exist + goto END +:OK2 + +if "%1"=="" goto OK3 + set nprocs=%1 +:OK3 + +copy %inputfile%.swn INPUT >> nul + +if not %nprocs%==1 goto PARALLEL1 +swan.exe +goto OK4 + +:PARALLEL1 +mpiexec -n %nprocs% swan.exe + +:OK4 +if errorlevel 1 goto END + +if not %nprocs%==1 goto PARALLEL2 + if exist PRINT copy PRINT %inputfile%.prt >> nul + if exist PRINT del PRINT + goto OK5 +:PARALLEL2 +if not exist PRINT-001 goto OK5 +if %nprocs% GTR 9 goto RANGE1 + for /L %%i in (1,1,%nprocs%) do copy PRINT-00%%i %inputfile%.prt-00%%i >> nul + for /L %%i in (1,1,%nprocs%) do del PRINT-00%%i + goto OK5 +:RANGE1 +if %nprocs% GTR 99 goto RANGE2 + for /L %%i in (1,1,9) do copy PRINT-00%%i %inputfile%.prt-00%%i >> nul + for /L %%i in (1,1,9) do del PRINT-00%%i + for /L %%i in (10,1,%nprocs%) do copy PRINT-0%%i %inputfile%.prt-0%%i >> nul + for /L %%i in (10,1,%nprocs%) do del PRINT-0%%i + goto OK5 +:RANGE2 +if %nprocs% GTR 999 goto ERR + for /L %%i in (1,1,9) do copy PRINT-00%%i %inputfile%.prt-00%%i >> nul + for /L %%i in (1,1,9) do del PRINT-00%%i + for /L %%i in (10,1,99) do copy PRINT-0%%i %inputfile%.prt-0%%i >> nul + for /L %%i in (10,1,99) do del PRINT-0%%i + for /L %%i in (100,1,%nprocs%) do copy PRINT-%%i %inputfile%.prt-%%i >> nul + for /L %%i in (100,1,%nprocs%) do del PRINT-%%i + goto OK5 +:ERR + echo Error: too many processes + goto END +:OK5 + +if exist Errfile copy Errfile %inputfile%.erf >> nul +if exist Errfile del Errfile +if exist ERRPTS copy ERRPTS %inputfile%.erp >> nul +if exist ERRPTS del ERRPTS +del INPUT +if not exist norm_end goto END + type norm_end + +:END + +set inputfile= +set nprocs= diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index d51dcd67c..f3949508f 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -1,23 +1,22 @@ -import copy import subprocess +from pathlib import Path import numpy as np +from loguru import logger from gefest.core.geometry import Structure from gefest.tools import Estimator class Swan(Estimator): - """Swan waves simulator wrapper.""" - def __init__( self, path, targets, grid, domain, - input_file_path='bw_example_cfg', - hs_file_path='r/hs47dd8b1c0d4447478fec6f956c7e32d9.d', + input_file_path="INPUT", + hs_file_path="r/hs47dd8b1c0d4447478fec6f956c7e32d9.d", ): self.path_to_model = path self.path_to_input = path + input_file_path @@ -25,86 +24,57 @@ def __init__( self.targets = targets self.grid = grid self.domain = domain - self._grid_configuration() - - def _grid_configuration(self): - file_to_read = open(self.path_to_input, 'r') - content_read = file_to_read.read() - for_replace = ['xpc', 'xlenc', 'ypc', 'ylenc', 'mxc', 'myc'] - content_for_add = [ - self.domain.min_x, - self.domain.max_x, - self.domain.min_y, - self.domain.max_y, - self.grid[0], - self.grid[1], - ] + def estimate(self, struct: Structure): + polygons = struct.polygons - new_content = copy.deepcopy(content_read) - for replace, content in zip(for_replace, content_for_add): - content_to_replace = replace + '=' + str(content) - start = new_content.find(replace) - end = new_content[start:].find(' ') - content_write = new_content.replace( - new_content[start : start + end], + file_toread = self.path_to_input + "_2" + with open(file_toread, "r") as file_to_read: + content_read = file_to_read.read() + file_to_read.close() + for j, poly in enumerate(polygons): + for_input = "\nOBSTACLE TRANSM 0. REFL 0. LINE " + num_of_points = len(2 * poly.points) + points = np.array([p.coords[:2] for p in poly.points]) + individ = points.reshape(-1) + for i, gen in enumerate(individ): + for_input += "{:.6f}".format(gen / 500) + if i != len(individ) - 1: + for_input += ", " + for_input += "\n$optline" + content_to_replace = for_input + content_write = content_read.replace( + content_read[ + content_read.find("OBSTACLE") + - 1 : content_read.rfind("$optline") + + 10 + ], content_to_replace, ) - new_content = content_write - - file_to_read.close() - - file_to_write = open(self.path_to_input, 'w') - file_to_write.writelines(new_content) - file_to_write.close() - - def estimate(self, struct: Structure) -> tuple: - """Estimates waves height for given structure. - - Args: - struct (Structure): GEFEST Structure. - - Returns: - tuple: Waves height matrix and sum of wave heights in target areas. - """ - polygons = struct.polygons - file_to_read = open(self.path_to_input, 'r') - content_read = file_to_read.read() - - for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' - num_of_polygons = len(polygons) - for j, poly in enumerate(polygons): - num_of_points = len(2 * poly.points) - points = np.array([p.coords[:2] for p in poly.points]) - individ = points.reshape(-1) - for i, gen in enumerate(individ): - if (i + 1) % 2 == 0: - if (i + 1) == num_of_points: - for_input += '{:.6f}'.format(self.domain.max_y - gen) - else: - for_input += '{:.6f}'.format(self.domain.max_y - gen) + ', ' - else: - for_input += '{:.6f}'.format(gen) + ', ' - - if j == (num_of_polygons - 1): - for_input += '\n$optline' - else: - for_input += '\nOBSTACLE TRANSM 0. REFL 0. LINE ' - - content_to_replace = for_input - content_write = content_read.replace( - content_read[content_read.find('\n\n\n') + 3 : content_read.rfind('\n$optline') + 9], - content_to_replace, + input_created = Path(self.path_to_input) + input_created.touch(exist_ok=True) + with open(self.path_to_input, "w") as file_to_write: + file_to_write.write(content_write) + + logger.info("Swan estimation started...") + subprocess.run( + "swan.exe", + shell=True, + cwd=self.path_to_model, + stdout=subprocess.DEVNULL, ) - file_to_read.close() - - file_to_write = open(self.path_to_input, 'w') - file_to_write.writelines(content_write) - file_to_write.close() - - subprocess.run('swan.exe', shell=True, cwd=self.path_to_model) + logger.info("Swan estimation finished.") z = np.loadtxt(self.path_to_hs) - hs_target = np.sum([z[target[0], target[1]] for target in self.targets]) - - return z, hs_target + res = [] + for i in range(1538 // 32): + hs_target = np.sum( + [ + z[i * 32 : (i + 1) * 32][target[0], target[1]] + for target in self.targets + ] + ) + res.append(hs_target) + hs_target = sum(res) / len(res) + print("hs_target", hs_target) + return hs_target From 3d34220139d6e5c1a4de2513859161e54149f930 Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Tue, 14 Nov 2023 20:08:21 +0300 Subject: [PATCH 54/66] Fix flake8 errors --- .../estimators/simulators/swan/swan_interface.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index f3949508f..8fb177ec0 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -9,6 +9,7 @@ class Swan(Estimator): + """Class for SWAN estimator.""" def __init__( self, path, @@ -25,22 +26,28 @@ def __init__( self.grid = grid self.domain = domain - def estimate(self, struct: Structure): + def estimate(self, struct: Structure) -> float: + """Function to estimate wave high. + + :param struct: Structure with polygons + + :return: metric of wave high + """ polygons = struct.polygons file_toread = self.path_to_input + "_2" with open(file_toread, "r") as file_to_read: content_read = file_to_read.read() file_to_read.close() - for j, poly in enumerate(polygons): + for _j, poly in enumerate(polygons): for_input = "\nOBSTACLE TRANSM 0. REFL 0. LINE " - num_of_points = len(2 * poly.points) points = np.array([p.coords[:2] for p in poly.points]) individ = points.reshape(-1) for i, gen in enumerate(individ): for_input += "{:.6f}".format(gen / 500) if i != len(individ) - 1: for_input += ", " + for_input += "\n$optline" content_to_replace = for_input content_write = content_read.replace( @@ -51,6 +58,7 @@ def estimate(self, struct: Structure): ], content_to_replace, ) + input_created = Path(self.path_to_input) input_created.touch(exist_ok=True) with open(self.path_to_input, "w") as file_to_write: @@ -74,7 +82,9 @@ def estimate(self, struct: Structure): for target in self.targets ] ) + res.append(hs_target) + hs_target = sum(res) / len(res) print("hs_target", hs_target) return hs_target From d9c367cb5d40573e7e979f4d313b1f8dccdcad38 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Wed, 15 Nov 2023 16:58:19 +0300 Subject: [PATCH 55/66] add multiobj selectors spea2 & moead, init pop can be set manually, minor fixes --- cases/synthetic/circle/multi_objective.py | 3 +- gefest/core/configs/optimization_params.py | 21 ++ .../operators/multiobjective_selections.py | 225 ++++++++++++++ gefest/core/opt/operators/selections.py | 2 + gefest/core/opt/postproc/rules.py | 2 +- gefest/tools/optimizers/GA/GA.py | 26 +- gefest/tools/optimizers/SPEA2/SPEA2.py | 159 ---------- gefest/tools/optimizers/SPEA2/__init__.py | 0 gefest/tools/optimizers/__init__.py | 2 - .../tools/optimizers/golem_optimizer/age.py | 290 ------------------ .../tools/optimizers/golem_optimizer/moead.py | 133 -------- .../tools/optimizers/golem_optimizer/nsga2.py | 162 ---------- 12 files changed, 273 insertions(+), 752 deletions(-) create mode 100644 gefest/core/opt/operators/multiobjective_selections.py delete mode 100644 gefest/tools/optimizers/SPEA2/SPEA2.py delete mode 100644 gefest/tools/optimizers/SPEA2/__init__.py delete mode 100644 gefest/tools/optimizers/golem_optimizer/age.py delete mode 100644 gefest/tools/optimizers/golem_optimizer/moead.py delete mode 100644 gefest/tools/optimizers/golem_optimizer/nsga2.py diff --git a/cases/synthetic/circle/multi_objective.py b/cases/synthetic/circle/multi_objective.py index 6e47744f1..63a6bc490 100644 --- a/cases/synthetic/circle/multi_objective.py +++ b/cases/synthetic/circle/multi_objective.py @@ -69,7 +69,7 @@ def _evaluate(self, ind: Structure) -> float: ) opt_params = OptimizationParams( - optimizer='golem_optimizer', + optimizer='gefest_ga', domain=domain_cfg, tuner_cfg=tuner_cfg, n_steps=50, @@ -87,6 +87,7 @@ def _evaluate(self, ind: Structure) -> float: 'pos_change_point', ], selector='tournament_selection', + multiobjective_selector='spea2', mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], crossovers=[ 'polygon_level', diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 168c4d477..ef02e37d5 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -13,6 +13,9 @@ from gefest.core.opt.adapters.structure import StructureAdapter from gefest.core.opt.objective.objective import Objective from gefest.core.opt.operators.crossovers import CrossoverTypes, panmixis +from gefest.core.opt.operators.multiobjective_selections import ( + MultiObjectiveSelectionTypes, +) from gefest.core.opt.operators.mutations import MutationTypes from gefest.core.opt.operators.selections import SelectionTypes from gefest.core.opt.postproc.resolve_errors import Postrocessor @@ -45,6 +48,12 @@ type=str, ) +ValidMultiObjectiveSelection = Enum( + 'ValidMultiObjectiveSelection', + ((value, value) for value in [r.name for r in MultiObjectiveSelectionTypes]), + type=str, +) + ValidOptimizer = Enum( 'ValidOptimizer', ((value, value) for value in [r.name for r in OptimizerTypes]), @@ -80,6 +89,13 @@ class OptimizationParams(BaseModel): selector: Union[Callable, ValidSelection] """Selection operation.""" + multiobjective_selector: Union[Callable, ValidMultiObjectiveSelection] = 'moead' + """Evaluates one-dimensional fitness for multi objective. + Uses `selector` to select individuals by the produces values. + """ + moead_multi_objective_selector_neighbors: int = 2 + """Parameter used in moead selector.""" + optimizer: ValidOptimizer = 'gefest_ga' """Optimizer.""" @@ -198,6 +214,11 @@ def create_classes_instances(self): if isinstance(self.selector, str): self.selector = getattr(SelectionTypes, self.selector) + if isinstance(self.multiobjective_selector, str): + self.multiobjective_selector = getattr( + MultiObjectiveSelectionTypes, self.multiobjective_selector + ).value + if self.mutation_each_prob is None: self.mutation_each_prob = [1 / len(self.mutations) for _ in range(len(self.mutations))] diff --git a/gefest/core/opt/operators/multiobjective_selections.py b/gefest/core/opt/operators/multiobjective_selections.py new file mode 100644 index 000000000..8719b5e5e --- /dev/null +++ b/gefest/core/opt/operators/multiobjective_selections.py @@ -0,0 +1,225 @@ +from enum import Enum + +import numpy as np +from scipy.spatial.distance import cdist + +from gefest.core.geometry.datastructs.structure import Structure + + +class SPEA2: + """SPEA2 selection strategy.""" + def __init__(self, single_demention_selection, init_pop, steps, **kwargs): + self.steps = steps + self.step_cntr = 0 + self.arch_size = int(len(init_pop) / 2) # Archive size + self.archive = [] # Archive population + self.n_criteria = 2 # Number of criteria + self.single_demention_selection = single_demention_selection + + def __call__(self, pop, pop_size, *args, **kwargs) -> None: + """Calulates SPEA2 fitness function.""" + pop = pop + self.archive + raw = self.raw(pop) + density = self.density(pop) + for idx, _ in enumerate(pop): + pop[idx].extra_characteristics['SEPA2_fitness'] = raw[idx] + density[idx] + + if self.step_cntr == self.steps: + pop = self.archive + else: + pop = self.single_demention_selection(pop, pop_size) + + self.step_cntr += 1 + return pop + + def dominate(self, ind1: Structure, ind2: Structure) -> bool: + """Checks if one indivdial not worse than other by all fitness components. + + Args: + idx_1 (int): Index of first individual. + idx_2 (int): Index of second individual. + + Returns: + bool: True if self._pop[idx_1] dominate self._pop[idx_2] else False + """ + return all( + ind1 <= ind2 + for ind1, ind2 in zip( + ind1.fitness, + ind2.fitness, + ) + ) + + def strength(self, pop) -> list[int]: + """Calculates strength for each individ in pop and arch. + + Returns: + list[int]: strength of each individ + """ + strength = [] + + for i in range(len(pop)): + count = 0 + for j in range(len(pop)): + if j == i: + continue + + if self.dominate(pop[i], pop[j]): + count += 1 + + strength.append(count) + + return strength + + def raw(self, pop) -> list[int]: + """Calculates raw for pop and arch. + + Returns: + list[int]: Raw of each individ. + """ + raw = [] + strength = self.strength(pop) + + for i in range(len(pop)): + count = 0 + for j in range(len(pop)): + if j == i: + continue + + if self.dominate(pop[j], pop[i]): + count += strength[j] + + raw.append(count) + + return raw + + def density(self, pop) -> list[float]: + """Calculates density. + + Returns: + list[float]: Density of each individ in pop and arch. + """ + density = [] + k = 0 + + for i in range(len(pop)): + distance = [] + first_point = np.array(pop[i].fitness) + for j in range(len(pop)): + if j == i: + continue + + second_point = np.array(pop[j].fitness) + distance.append(np.linalg.norm(first_point - second_point)) + + sorted_dist = np.sort(distance) + density.append(1 / (sorted_dist[k] + 2)) + + return density + + def environmental_selection(self, pop) -> None: + """Updates archive population via environmental selection procedure.""" + self.archive = [ind for ind in pop if ind.extra_characteristics['SEPA2_fitness'] < 1] + + # First case, adding remaining best individs + if len(self.archive) < self.arch_size: + sorted_pop = sorted(pop, key=lambda x: x.extra_characteristics['SEPA2_fitness']) + idx = 0 + while len(self.archive) != self.arch_size: + if sorted_pop[idx].extra_characteristics['SEPA2_fitness'] >= 1: + self.archive.append(sorted_pop[idx]) + + idx += 1 + + # Second case, deleting using truncation procedure + elif len(self.archive) > self.arch_size: + self.archive = sorted( + self._pop, + key=lambda x: x.extra_characteristics['SEPA2_fitness'], + )[: self.arch_size] + + +class MOEAD: + """MOEA/D selection strategy. + + For details see: https://ieeexplore.ieee.org/document/4358754?arnumber=4358754 + """ + def __init__(self, single_demention_selection, init_pop, moead_n_neighbors, *args, **kwargs): + self.ref_dirs, self.ideal, self.neighbors = self._setup(init_pop, moead_n_neighbors) + self.single_demention_selection = single_demention_selection + + def __call__(self, pop, pop_size, **kwargs): + """Selects best individuals.""" + pop = self._set_moead_fitness(pop) + selected = self.single_demention_selection(pop, pop_size) + return selected + + def _setup(self, pop, n_neighbors=2): + ref_dirs = self._get_uniform_weight(pop, len(pop[0].fitness)) + ideal = np.min([ind.fitness for ind in pop], axis=0) + neighbors = np.argsort(cdist(ref_dirs, ref_dirs), axis=1, kind='quicksort')[ + :, + :n_neighbors, + ] + return ref_dirs, ideal, neighbors + + def _set_moead_fitness(self, pop): + for j, ind in enumerate(pop): + max_fun = -1.0e30 + for n in range(len(ind.fitness)): + diff = abs(ind.fitness[n] - self.ideal[n]) + if self.ref_dirs[j][n] == 0: + feval = 0.0001 * diff + else: + feval = diff * self.ref_dirs[j][n] + + if feval > max_fun: + max_fun = feval + + ind.fitness = [max_fun + len(self.neighbors[j])] + + return pop + + def _get_uniform_weight(self, pop, n_obj): + """Sets precomputed weights. + + Precomputed weights from + Zhang, Multiobjective Optimization Problems With Complicated Pareto Sets, MOEA/D and NSGA-II + """ + assert n_obj == 2 or n_obj == 3, 'MOEAD can handle only 2 or 3 objectives problems' + m = len(pop) + if n_obj == 2: + ref_dirs = [[None for _ in range(n_obj)] for i in range(m)] + for n in range(m): + a = 1.0 * float(n) / (m - 1) + ref_dirs[n][0] = a + ref_dirs[n][1] = 1 - a + elif n_obj == 3: + """ + Ported from Java code written by Wudong Liu + (Source: http://dces.essex.ac.uk/staff/qzhang/moead/moead-java-source.zip) + """ + m = len(pop) + + ref_dirs = [] + for i in range(m): + for j in range(m): + if i + j <= m: + k = m - i - j + weight_scalars = [None] * 3 + weight_scalars[0] = float(i) / (m) + weight_scalars[1] = float(j) / (m) + weight_scalars[2] = float(k) / (m) + ref_dirs.append(weight_scalars) + # Trim number of weights to fit population size + ref_dirs = sorted((x for x in ref_dirs), key=lambda x: sum(x), reverse=True) + ref_dirs = ref_dirs[:m] + + return ref_dirs + + +class MultiObjectiveSelectionTypes(Enum): + """Enumerates all GEFEST multi objective selectors.""" + + moead = MOEAD + spea2 = SPEA2 diff --git a/gefest/core/opt/operators/selections.py b/gefest/core/opt/operators/selections.py index 6e301718a..dab0d0d66 100644 --- a/gefest/core/opt/operators/selections.py +++ b/gefest/core/opt/operators/selections.py @@ -11,6 +11,7 @@ def roulette_selection( pop: list[Structure], pop_size: int, + **kwargs, ) -> list[Structure]: """Selects the best ones from provided population. @@ -38,6 +39,7 @@ def tournament_selection( pop: list[Structure], pop_size: int, fraction: float = 0.1, + **kwargs, ) -> list[Structure]: """Selects the best ones from provided population. diff --git a/gefest/core/opt/postproc/rules.py b/gefest/core/opt/postproc/rules.py index 8275dc90b..0758dacc1 100644 --- a/gefest/core/opt/postproc/rules.py +++ b/gefest/core/opt/postproc/rules.py @@ -312,7 +312,7 @@ def _forbidden_validity(validity): elif 'Self-intersection' in validity: return True else: - logger.critical('Unexpected shapely validity output.') + logger.critical('Unexpected shapely validity output. Got {validity}') class Rules(Enum): diff --git a/gefest/tools/optimizers/GA/GA.py b/gefest/tools/optimizers/GA/GA.py index ed5fafb6f..40510ae05 100644 --- a/gefest/tools/optimizers/GA/GA.py +++ b/gefest/tools/optimizers/GA/GA.py @@ -1,11 +1,11 @@ from typing import Callable +from venv import logger from tqdm import tqdm from gefest.core.geometry import Structure from gefest.core.opt import strategies from gefest.core.opt.objective.objective_eval import ObjectivesEvaluator -from gefest.core.opt.operators import selections from gefest.tools.optimizers.optimizer import Optimizer @@ -21,6 +21,7 @@ class BaseGA(Optimizer): def __init__( self, opt_params, + initial_population=None, **kwargs, ): super().__init__(opt_params.log_dispatcher) @@ -29,12 +30,29 @@ def __init__( self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) self.sampler: Callable = opt_params.sampler self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator(opt_params.objectives) - self.selector: Callable = getattr(selections, opt_params.selector.name) self.pop_size = opt_params.pop_size self.n_steps = opt_params.n_steps self.domain = self.opt_params.domain - self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) + if initial_population: + self._pop = initial_population + else: + self._pop: list[Structure] = self.sampler(self.opt_params.pop_size) + self._pop = self.objectives_evaluator(self._pop) + + self.selector: Callable = opt_params.selector.value + if len(self.opt_params.objectives) > 1: + if self.opt_params.multiobjective_selector.__name__ == 'MOEAD': + self.opt_params.extra = 0 + logger.warning('For moead extra not available.') + + self.selector = self.opt_params.multiobjective_selector( + single_demention_selection=self.selector, + init_pop=self._pop, + moead_n_neighbors=self.opt_params.moead_multi_objective_selector_neighbors, + steps=self.n_steps, + ) + self.log_dispatcher.log_pop(self._pop, '00000_init') def optimize(self) -> list[Structure]: @@ -48,7 +66,7 @@ def optimize(self) -> list[Structure]: self._pop = self.mutation(self._pop) self._pop.extend(self.sampler(self.opt_params.extra)) self._pop = self.objectives_evaluator(self._pop) - self._pop = self.selector(self._pop, self.opt_params.pop_size) + self._pop = self.selector(self._pop, self.pop_size) self.log_dispatcher.log_pop(self._pop, str(step + 1)) return self._pop diff --git a/gefest/tools/optimizers/SPEA2/SPEA2.py b/gefest/tools/optimizers/SPEA2/SPEA2.py deleted file mode 100644 index 322337c77..000000000 --- a/gefest/tools/optimizers/SPEA2/SPEA2.py +++ /dev/null @@ -1,159 +0,0 @@ -import pickle - -import numpy as np -from tqdm import tqdm - -from gefest.tools.optimizers.GA.GA import BaseGA - - -class SPEA2(BaseGA): - """SPEA2 algorithm realization. - - In this algorithm performance is multi-dimension - """ - - def __init__(self, opt_params): - super().__init__(opt_params) - self.arch_size = int(self.pop_size / 2) # Archive size - self.archive = [] # Archive population - self.n_criteria = 2 # Number of criteria - self.calculate_sepa2_fitness() - - def dominate(self, idx_1: int, idx_2: int) -> bool: - """Checks if one indivdial not worse than other by all fitness components. - - Args: - idx_1 (int): Index of first individual. - idx_2 (int): Index of second individual. - - Returns: - bool: True if self._pop[idx_1] dominate self._pop[idx_2] else False - """ - return all( - ind1 <= ind2 - for ind1, ind2 in zip( - self._pop[idx_1].fitness, - self._pop[idx_2].fitness, - ) - ) - - def strength(self) -> list[int]: - """Calculates strength for each individ in pop and arch. - - Returns: - list[int]: strength of each individ - """ - strength = [] - - for i in range(len(self._pop)): - count = 0 - for j in range(len(self._pop)): - if j == i: - continue - - if self.dominate(i, j): - count += 1 - - strength.append(count) - - return strength - - def raw(self) -> list[int]: - """Calculates raw for pop and arch. - - Returns: - list[int]: Raw of each individ. - """ - raw = [] - strength = self.strength() - - for i in range(len(self._pop)): - count = 0 - for j in range(len(self._pop)): - if j == i: - continue - - if self.dominate(j, i): - count += strength[j] - - raw.append(count) - - return raw - - def density(self) -> list[float]: - """Calculates density. - - Returns: - list[float]: Density of each individ in pop and arch. - """ - density = [] - k = 0 - - for i in range(len(self._pop)): - distance = [] - first_point = np.array(self._pop[i].fitness) - for j in range(len(self._pop)): - if j == i: - continue - - second_point = np.array(self._pop[j].fitness) - distance.append(np.linalg.norm(first_point - second_point)) - - sorted_dist = np.sort(distance) - density.append(1 / (sorted_dist[k] + 2)) - - return density - - def calculate_sepa2_fitness(self) -> None: - """Calulates SPEA2 fitness function.""" - self._pop = self._pop + self.archive - - raw = self.raw() - density = self.density() - for idx, _ in enumerate(self._pop): - self._pop[idx].extra_characteristics['SEPA2_fitness'] = raw[idx] + density[idx] - - def environmental_selection(self) -> None: - """Updates archive population via environmental selection procedure.""" - self.archive = [ind for ind in self._pop if ind.extra_characteristics['SEPA2_fitness'] < 1] - - # First case, adding remaining best individs - if len(self.archive) < self.arch_size: - sorted_pop = sorted(self._pop, key=lambda x: x.extra_characteristics['SEPA2_fitness']) - idx = 0 - while len(self.archive) != self.arch_size: - if sorted_pop[idx].extra_characteristics['SEPA2_fitness'] >= 1: - self.archive.append(sorted_pop[idx]) - - idx += 1 - - # Second case, deleting using truncation procedure - elif len(self.archive) > self.arch_size: - self.archive = sorted( - self._pop, - key=lambda x: x.extra_characteristics['SEPA2_fitness'], - )[: self.arch_size] - - def _save_archive(self, n): - with open(f'HistoryFiles/archive_{n}.pickle', 'wb') as handle: - pickle.dump(self.archive, handle, protocol=pickle.HIGHEST_PROTOCOL) - - def optimize(self): - """Optimizes population.""" - for step in tqdm(range(self.n_steps)): - # self._pop = self.selector(self._pop, self.opt_params.pop_size) - self.environmental_selection() - if step == self.n_steps: - return self.archive - - self._pop = self.selector(self._pop, self.opt_params.pop_size) - children = self.crossover(self._pop) - mutated_children = self.mutation(children) - extras = self.sampler(self.opt_params.extra) - self._pop.extend(mutated_children + extras) - self._pop = self.objectives_evaluator(self._pop) - self.calculate_sepa2_fitness() - self.log_dispatcher.log_pop(self._pop, str(step + 1)) - - self._pop = sorted(self._pop, key=lambda x: x.fitness) - return self._pop diff --git a/gefest/tools/optimizers/SPEA2/__init__.py b/gefest/tools/optimizers/SPEA2/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/gefest/tools/optimizers/__init__.py b/gefest/tools/optimizers/__init__.py index 64f1131dd..b41605c18 100644 --- a/gefest/tools/optimizers/__init__.py +++ b/gefest/tools/optimizers/__init__.py @@ -3,13 +3,11 @@ from .GA.GA import BaseGA from .golem_optimizer.standard import StandardOptimizer from .golem_optimizer.surrogate import SurrogateOptimizer -from .SPEA2.SPEA2 import SPEA2 class OptimizerTypes(Enum): """Enumeration of all optimizers.""" gefest_ga = BaseGA - gefest_spea2 = SPEA2 golem_optimizer = StandardOptimizer golem_surrogate = SurrogateOptimizer diff --git a/gefest/tools/optimizers/golem_optimizer/age.py b/gefest/tools/optimizers/golem_optimizer/age.py deleted file mode 100644 index 3dc7c19c4..000000000 --- a/gefest/tools/optimizers/golem_optimizer/age.py +++ /dev/null @@ -1,290 +0,0 @@ -import numpy as np -from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer - -from gefest.core.opt.individual import Individual -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.GA.GA import BaseGA - - -class AGE(EvoGraphOptimizer, BaseGA): - """ - GOLEM based optimizer of GEFEST structures - """ - - def __init__(self, adapter, mutation_rate, crossover_rate, pop_size, task_setup, params): - EvoGraphOptimizer.__init__(self, **params) - - self.params = BaseGA.Params( - pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[], - ) - BaseGA.__init__(self, self.params, default_operators(), task_setup) - - self._pop = None - self._fronts = None - - self.num_of_individuals = pop_size - - self.adapter = adapter - - self.golem_params = {} - - def step(self, population, performance, n_step): - """ - One step of optimization procedure - :param population: (List[Structure]) population of structures - :param performance: (List[float]) performance of the population - :return: (List[Structure]) optimized population - """ - # 0. Transformation List[Structure] -> Seq[OptGraph] - # graph_pop = [self.adapter.adapt(struct) for struct in population] - graph_pop = population - - # 1. Initializations - # self.__init_operators() - self.init_populations(graph_pop) - self.init_performance(performance) - - self._evolve_population() - - population = [ind.genotype for ind in self._pop if len(ind.genotype.polygons) != 0] - - return population - - def _evolve_population(self, **kwargs): - """Method realizing full evolution cycle""" - self._pop = self.calculate_fitness_and_select() - self._pop.extend(self.reproduce(self._pop)) - - return self._pop - - # -------------------------------------------------- - def calculate_fitness_and_select(self): - self.fast_nondominated_sort(self._pop) - front1 = np.array([ind.objectives for ind in self._fronts[0]]) - ideal_point = np.min(front1, axis=0) - - # crowding distance is positive and has to be maximized - crowd_dist = [None] * len(self._fronts) - crowd_dist[0] = [99999] * len(front1) - - _, p, normalization = self.survival_score(front1, ideal_point) - for i in range( - 0, - len(self._fronts), - ): # skip first front since it is normalized by survival_score - front = np.array([ind.objectives for ind in self._fronts[i]]) - m, _ = front.shape - front = front / normalization - dist = 1.0 / self.minkowski_distances(front, ideal_point[None, :], p=p).squeeze() - if isinstance(dist, np.float64): - dist = [dist] - else: - dist = list(dist) - crowd_dist[i] = dist - - dists = [-dist for dists in crowd_dist for dist in dists] - ranks = [[i] * len(self._fronts[i]) for i in range(len(self._fronts))] - ranks = [r for rank in ranks for r in rank] - - rank_dist_idx = [(i, r, d) for i, (r, d) in enumerate(zip(ranks, dists))] - sorted_list = sorted(rank_dist_idx, key=lambda t: (t[1], t[2])) - - selected = [item[0] for item in sorted_list][: self.num_of_individuals] - out_pop = [ind for pop in self._fronts for ind in pop] - - self._pop = [ind for i, ind in enumerate(out_pop) if i in selected] - - return self._pop - - def dominates(self, ind1, ind2): - and_condition = True - or_condition = False - for first, second in zip(ind1.objectives, ind2.objectives): - and_condition = and_condition and first <= second - or_condition = or_condition or first < second - return and_condition and or_condition - - def fast_nondominated_sort(self, population): - fronts = [[]] - for individual in population: - individual.domination_count = 0 - individual.dominated_solutions = [] - for other_individual in population: - if self.dominates(individual, other_individual): - individual.dominated_solutions.append(other_individual) - elif self.dominates(other_individual, individual): - individual.domination_count += 1 - if individual.domination_count == 0: - individual.rank = 0 - fronts[0].append(individual) - i = 0 - while len(fronts[i]) > 0: - temp = [] - for individual in fronts[i]: - for other_individual in individual.dominated_solutions: - other_individual.domination_count -= 1 - if other_individual.domination_count == 0: - other_individual.rank = i + 1 - temp.append(other_individual) - i = i + 1 - fronts.append(temp) - - self._fronts = [front for front in fronts if len(front) != 0] - - def survival_score(self, front, ideal_point): - front = np.round(front, 12, out=front) - m, n = front.shape - crowd_dist = np.zeros(m) - - if m < n: - p = 1 - normalization = np.max(front, axis=0) - return crowd_dist, p, normalization - - # shift the ideal point to the origin - front = front - - # Detect the extreme points and normalize the front - extreme = self.find_corner_solutions(front) - front, normalization = self.normalize(front, extreme) - - # set the distance for the extreme solutions - crowd_dist[extreme] = np.inf - selected = np.full(m, False) - selected[extreme] = True - - p = self.compute_geometry(front, extreme, n) - - nn = np.linalg.norm(front, p, axis=1) - distances = self.pairwise_distances(front, p) / nn[:, None] - - neighbors = 2 - remaining = np.arange(m) - remaining = list(remaining[~selected]) - for i in range(m - np.sum(selected)): - mg = np.meshgrid( - np.arange(selected.shape[0])[selected], - remaining, - copy=False, - sparse=False, - ) - D_mg = distances[ - tuple(mg) - ] # avoid Numpy's future deprecation of array special indexing - - if D_mg.shape[1] > 1: - # equivalent to mink(distances(remaining, selected),neighbors,2); in Matlab - maxim = np.argpartition(D_mg, neighbors - 1, axis=1)[:, :neighbors] - tmp = np.sum(np.take_along_axis(D_mg, maxim, axis=1), axis=1) - index: int = np.argmax(tmp) - d = tmp[index] - else: - index = D_mg[:, 0].argmax() - d = D_mg[index, 0] - - best = remaining.pop(index) - selected[best] = True - crowd_dist[best] = d - - return crowd_dist, p, normalization - - def compute_geometry(self, front, extreme, n): - # approximate p(norm) - d = self.point_2_line_distance(front, np.zeros(n), np.ones(n)) - d[extreme] = np.inf - index = np.argmin(d) - - p = np.log(n) / (np.log(1.0 / (np.mean(front[index, :]) + 0.01)) + 0.01) - - if np.isnan(p) or p <= 0.1: - p = 1.0 - elif p > 20: - p = 20.0 # avoid numpy underflow - - return p - - @staticmethod - def pairwise_distances(front, p): - m = np.shape(front)[0] - distances = np.zeros((m, m)) - for i in range(m): - distances[i] = np.sum(np.abs(front[i] - front) ** p, 1) ** (1 / p) - - return distances - - @staticmethod - def minkowski_distances(A, B, p): - m1 = np.shape(A)[0] - m2 = np.shape(B)[0] - distances = np.zeros((m1, m2)) - for i in range(m1): - for j in range(m2): - distances[i][j] = sum(np.abs(A[i] - B[j]) ** p) ** (1 / p) - - return distances - - def find_corner_solutions(self, front): - """Return the indexes of the extreme points""" - - m, n = front.shape - - if m <= n: - return np.arange(m) - - # let's define the axes of the n-dimensional spaces - w = 1e-6 + np.eye(n) - r = w.shape[0] - indexes = np.zeros(n, dtype=int) - selected = np.zeros(m, dtype=int) - for i in range(r): - dists = self.point_2_line_distance(front, np.zeros(n), w[i, :]) - dists[selected] = np.inf # prevent already selected to be reselected - index = np.argmin(dists) - indexes[i] = index - selected[index] = True - return indexes - - @staticmethod - def point_2_line_distance(P, A, B): - d = np.zeros(P.shape[0]) - - for i in range(P.shape[0]): - pa = P[i] - A - ba = B - A - t = np.dot(pa, ba) / np.dot(ba, ba) - d[i] = sum((pa - t * ba) ** 2) - - return d - - @staticmethod - def normalize(front, extreme): - m, n = front.shape - - if len(extreme) != len(np.unique(extreme, axis=0)): - normalization = np.max(front, axis=0) - front = front / normalization - return front, normalization - - # Calculate the intercepts of the hyperplane constructed by the extreme - # points and the axes - - try: - hyperplane = np.linalg.solve(front[extreme], np.ones(n)) - if any(np.isnan(hyperplane)) or any(np.isinf(hyperplane)) or any(hyperplane < 0): - normalization = np.max(front, axis=0) - else: - normalization = 1.0 / hyperplane - if any(np.isnan(normalization)) or any(np.isinf(normalization)): - normalization = np.max(front, axis=0) - except np.linalg.LinAlgError: - normalization = np.max(front, axis=0) - - normalization[normalization == 0.0] = 1.0 - - # Normalization - front = front / normalization - - return front, normalization diff --git a/gefest/tools/optimizers/golem_optimizer/moead.py b/gefest/tools/optimizers/golem_optimizer/moead.py deleted file mode 100644 index 74ddbd038..000000000 --- a/gefest/tools/optimizers/golem_optimizer/moead.py +++ /dev/null @@ -1,133 +0,0 @@ -from functools import partial - -import numpy as np -from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer -from scipy.spatial.distance import cdist - -from gefest.core.opt.individual import Individual -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.GA.GA import BaseGA - - -class MOEAD(EvoGraphOptimizer): - """ - GOLEM based optimizer of GEFEST structures - """ - - def __init__( - self, - adapter, - mutation_rate, - crossover_rate, - pop_size, - task_setup, - n_neighbors, - params, - ): - EvoGraphOptimizer.__init__(self, **params) - - self.params = BaseGA.Params( - pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[], - ) - BaseGA.__init__(self, self.params, default_operators(), task_setup) - - self.num_of_individuals = pop_size - self.n_neighbors = n_neighbors - self.task_setup = task_setup - - self.adapter = adapter - self.golem_params = {} - - def _setup(self): - n_obj = len(self._pop[0].objectives) - self.initUniformWeight(n_obj) - self.ideal = np.min([ind.objectives for ind in self._pop], axis=0) - self.neighbors = np.argsort(cdist(self.ref_dirs, self.ref_dirs), axis=1, kind='quicksort')[ - :, - : self.n_neighbors, - ] - _ = 1 - - def step(self, population, performance, n_step): - """ - One step of optimization procedure - :param population: (List[Structure]) population of structures - :param performance: (List[float]) performance of the population - :return: (List[Structure]) optimized population - """ - # 0. Transformation List[Structure] -> Seq[OptGraph] - # graph_pop = [self.adapter.adapt(struct) for struct in population] - graph_pop = population - - # 1. Initializations - self.init_populations(graph_pop) - self.init_performance(performance) - self._setup() - - self._evolve_population() - - population = [ind.genotype for ind in self._pop if len(ind.genotype.polygons) != 0] - - return population - - def _evolve_population(self, **kwargs): - """Method realizing full evolution cycle""" - self.calculate_fitness() - self._pop = self.tournament_selection() - self._pop.extend(self.reproduce(self._pop)) - - return self._pop - - def calculate_fitness(self): - for j, ind in enumerate(self._pop): - max_fun = -1.0e30 - for n in range(len(ind.objectives)): - diff = abs(ind.objectives[n] - self.ideal[n]) - if self.ref_dirs[j][n] == 0: - feval = 0.0001 * diff - else: - feval = diff * self.ref_dirs[j][n] - - if feval > max_fun: - max_fun = feval - - ind.fitness = max_fun + len(self.neighbors[j]) - - def initUniformWeight(self, n_obj): - """ - Precomputed weights from (Zhang, Multiobjective Optimization Problems With Complicated Pareto Sets, MOEA/D and NSGA-II) downloaded from: - http://dces.essex.ac.uk/staff/qzhang/MOEAcompetition/CEC09final/code/ZhangMOEADcode/moead030510.rar) - - """ - assert n_obj == 2 or n_obj == 3, 'MOEAD can handle only 2 or 3 objectives problems' - - m = len(self._pop) - if n_obj == 2: - self.ref_dirs = [[None for _ in range(n_obj)] for i in range(m)] - for n in range(m): - a = 1.0 * float(n) / (m - 1) - self.ref_dirs[n][0] = a - self.ref_dirs[n][1] = 1 - a - elif n_obj == 3: - """ - Ported from Java code written by Wudong Liu - (Source: http://dces.essex.ac.uk/staff/qzhang/moead/moead-java-source.zip) - """ - m = len(self._pop) - - self.ref_dirs = list() - for i in range(m): - for j in range(m): - if i + j <= m: - k = m - i - j - weight_scalars = [None] * 3 - weight_scalars[0] = float(i) / (m) - weight_scalars[1] = float(j) / (m) - weight_scalars[2] = float(k) / (m) - self.ref_dirs.append(weight_scalars) - # Trim number of weights to fit population size - self.ref_dirs = sorted((x for x in self.ref_dirs), key=lambda x: sum(x), reverse=True) - self.ref_dirs = self.ref_dirs[:m] diff --git a/gefest/tools/optimizers/golem_optimizer/nsga2.py b/gefest/tools/optimizers/golem_optimizer/nsga2.py deleted file mode 100644 index c83fc5af6..000000000 --- a/gefest/tools/optimizers/golem_optimizer/nsga2.py +++ /dev/null @@ -1,162 +0,0 @@ -import random -from random import randint - -from golem.core.optimisers.genetic.gp_optimizer import EvoGraphOptimizer - -from gefest.core.opt.operators.operators import default_operators -from gefest.tools.optimizers.GA.GA import BaseGA - - -class NSGA2(EvoGraphOptimizer, BaseGA): - """ - GOLEM based optimizer of GEFEST structures - """ - - def __init__(self, adapter, mutation_rate, crossover_rate, pop_size, task_setup, params): - EvoGraphOptimizer.__init__(self, **params) - - self.params = BaseGA.Params( - pop_size=pop_size, - crossover_rate=crossover_rate, - mutation_rate=mutation_rate, - mutation_value_rate=[], - ) - BaseGA.__init__(self, self.params, default_operators(), task_setup) - - self._pop = None - self._fronts = None - - self.num_of_individuals = pop_size - self.task_setup = task_setup - - self.adapter = adapter - - self.golem_params = {} - - def step(self, population, performance, n_step): - """ - One step of optimization procedure - :param population: (List[Structure]) population of structures - :param performance: (List[float]) performance of the population - :return: (List[Structure]) optimized population - """ - # 0. Transformation List[Structure] -> Seq[OptGraph] - # graph_pop = [self.adapter.adapt(struct) for struct in population] - graph_pop = population - - # 1. Initializations - self.init_populations(graph_pop) - self.init_performance(performance) - - self._evolve_population() - - population = [ind.genotype for ind in self._pop if len(ind.genotype.polygons) != 0] - - return population - - def _evolve_population(self, **kwargs): - """Method realizing full evolution cycle""" - self.calculate_fitness() - self._pop = self.tournament_selection(self._pop) - self._pop.extend(self.reproduce(self._pop)) - - return self._pop - - def calculate_fitness(self): - self.fast_nondominated_sort(self._pop) - for front in self._fronts: - self.calculate_crowding_distance(front) - - # ----------------------------------------------------------------------------- - def dominates(self, ind1, ind2): - and_condition = True - or_condition = False - for first, second in zip(ind1.objectives, ind2.objectives): - and_condition = and_condition and first <= second - or_condition = or_condition or first < second - return and_condition and or_condition - - def fast_nondominated_sort(self, population): - fronts = [[]] - for individual in population: - individual.domination_count = 0 - individual.dominated_solutions = [] - for other_individual in population: - if self.dominates(individual, other_individual): - individual.dominated_solutions.append(other_individual) - elif self.dominates(other_individual, individual): - individual.domination_count += 1 - if individual.domination_count == 0: - individual.rank = 0 - fronts[0].append(individual) - i = 0 - while len(fronts[i]) > 0: - temp = [] - for individual in fronts[i]: - for other_individual in individual.dominated_solutions: - other_individual.domination_count -= 1 - if other_individual.domination_count == 0: - other_individual.rank = i + 1 - temp.append(other_individual) - i = i + 1 - fronts.append(temp) - - self._fronts = fronts - - def calculate_crowding_distance(self, front): - if len(front) > 0: - solutions_num = len(front) - for individual in front: - individual.crowding_distance = 0 - - for m in range(len(front[0].objectives)): - front.sort(key=lambda individual: individual.objectives[m]) - front[0].crowding_distance = 10 ** 9 - front[solutions_num - 1].crowding_distance = 10 ** 9 - m_values = [individual.objectives[m] for individual in front] - scale = max(m_values) - min(m_values) - if scale == 0: - scale = 1 - for i in range(1, solutions_num - 1): - front[i].crowding_distance += ( - front[i + 1].objectives[m] - front[i - 1].objectives[m] - ) / scale - - def tournament_selection(self, population): - chosen = [] - n_iter = 0 - while len(chosen) < self.num_of_individuals: - n_iter += 1 - best = self.__tournament(population) - if best not in chosen: - chosen.append(best) - elif n_iter > self.num_of_individuals + 100: - n_iter = 0 - rnd = population[randint(0, len(self._pop) - 1)] - chosen.append(rnd) - return chosen - - def __tournament(self, population): - participants = random.sample(population, 2) - best = None - for participant in participants: - if best is None or ( - self.crowding_operator(participant, best) == 1 and self.__choose_with_prob(0.9) - ): - best = participant - - return best - - def crowding_operator(self, individual, other_individual): - if (individual.rank < other_individual.rank) or ( - (individual.rank == other_individual.rank) - and (individual.crowding_distance > other_individual.crowding_distance) - ): - return 1 - else: - return -1 - - def __choose_with_prob(self, prob): - if random.random() <= prob: - return True - return False From 23f364a43b936643f66d651c33b5301d26c3e135 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 16 Nov 2023 20:12:55 +0300 Subject: [PATCH 56/66] fix convex-save-area and polygon crossover bugs --- gefest/core/geometry/geometry_2d.py | 4 +-- gefest/core/geometry/utils.py | 13 ++++--- gefest/core/opt/operators/crossovers.py | 2 +- .../operators/multiobjective_selections.py | 2 ++ .../simulators/swan/swan_interface.py | 36 +++++++++---------- test/test_geometry_utils.py | 33 ++++++++--------- 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index 771074872..f9859143f 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -352,8 +352,6 @@ def simplify(self, poly: Polygon, tolerance: float) -> Polygon: if isinstance(simplified, MultiPolygon): simplified = max(simplified.geoms, lambda p: p.area) - raise ValueError('Empty polygon produced 1') - out = Polygon([Point(p[0], p[1]) for p in simplified.exterior.coords]) else: simplified = self._poly_to_shapely_line(poly).convex_hull.simplify(tolerance) @@ -551,7 +549,7 @@ def split_polygon(self, poly, line: tuple[Point, Point], scale_factor=1000) -> l scale_factor, ) parts = get_parts(split(poly, line)).tolist() - parts = [lambda p: list(mapping(p)['coordinates'][0][:-1]) for p in parts] + parts = [mapping(p)['coordinates'][0][:-1] for p in parts] return parts def min_distance(self, obj_1, obj_2) -> float: diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index fae048c51..62375c6b9 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -304,7 +304,10 @@ def get_convex_safe_area( poly_idx: int, **kwargs, ) -> Polygon: - """Finds an area from which a new point can be selected without breaking the convexity.""" + """Finds an area from which a new point can be selected without breaking the convexity. + + Point_left_idx and point_right_idx expected to be neighbours. + """ geom = domain.geometry movment_area = None @@ -341,15 +344,18 @@ def get_convex_safe_area( ) p1, p2 = left_cut[1], right_cut[1] - pad_vector_points = [p1, geom.rotate_point(p2, p1, 90)] + pad_vector_points = [p1, geom.rotate_point(p2, p1, -90)] + pad_vector = ( pad_vector_points[1].x - pad_vector_points[0].x, pad_vector_points[1].y - pad_vector_points[0].y, ) + slice_line = ( Point(left_cut[1].x + pad_vector[0], left_cut[1].y + pad_vector[1]), Point(right_cut[1].x + pad_vector[0], right_cut[1].y + pad_vector[1]), ) + scale_factor = max(domain.max_x, domain.max_y) * 100 if sum(cut_angles) < 170: @@ -399,9 +405,6 @@ def get_convex_safe_area( geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), right_cut[1], ] - if base_area[1] is None or base_area[2] is None: - logger.warning('here') - if not geom._poly_to_shapely_poly(Polygon(base_area)).is_simple: base_area = [ left_cut[1], diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index e0afd9ead..58c26fc8a 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -121,7 +121,7 @@ def polygon_level_crossover( poly_1 = pairs_dists[0][0][0] poly_2 = pairs_dists[0][0][1] if intersected: - # adaptive angle # + # now not adaptive angle # split_angle = (np.random.rand() * 2 - 1) * (70) elif pairs_dists[0][1] > domain.dist_between_polygons: return (s1,) diff --git a/gefest/core/opt/operators/multiobjective_selections.py b/gefest/core/opt/operators/multiobjective_selections.py index 8719b5e5e..33173e253 100644 --- a/gefest/core/opt/operators/multiobjective_selections.py +++ b/gefest/core/opt/operators/multiobjective_selections.py @@ -8,6 +8,7 @@ class SPEA2: """SPEA2 selection strategy.""" + def __init__(self, single_demention_selection, init_pop, steps, **kwargs): self.steps = steps self.step_cntr = 0 @@ -144,6 +145,7 @@ class MOEAD: For details see: https://ieeexplore.ieee.org/document/4358754?arnumber=4358754 """ + def __init__(self, single_demention_selection, init_pop, moead_n_neighbors, *args, **kwargs): self.ref_dirs, self.ideal, self.neighbors = self._setup(init_pop, moead_n_neighbors) self.single_demention_selection = single_demention_selection diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 8fb177ec0..9d816f644 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -10,14 +10,15 @@ class Swan(Estimator): """Class for SWAN estimator.""" + def __init__( self, path, targets, grid, domain, - input_file_path="INPUT", - hs_file_path="r/hs47dd8b1c0d4447478fec6f956c7e32d9.d", + input_file_path='INPUT', + hs_file_path='r/hs47dd8b1c0d4447478fec6f956c7e32d9.d', ): self.path_to_model = path self.path_to_input = path + input_file_path @@ -35,56 +36,51 @@ def estimate(self, struct: Structure) -> float: """ polygons = struct.polygons - file_toread = self.path_to_input + "_2" - with open(file_toread, "r") as file_to_read: + file_toread = self.path_to_input + '_2' + with open(file_toread, 'r') as file_to_read: content_read = file_to_read.read() file_to_read.close() for _j, poly in enumerate(polygons): - for_input = "\nOBSTACLE TRANSM 0. REFL 0. LINE " + for_input = '\nOBSTACLE TRANSM 0. REFL 0. LINE ' points = np.array([p.coords[:2] for p in poly.points]) individ = points.reshape(-1) for i, gen in enumerate(individ): - for_input += "{:.6f}".format(gen / 500) + for_input += '{:.6f}'.format(gen / 500) if i != len(individ) - 1: - for_input += ", " + for_input += ', ' - for_input += "\n$optline" + for_input += '\n$optline' content_to_replace = for_input content_write = content_read.replace( content_read[ - content_read.find("OBSTACLE") - - 1 : content_read.rfind("$optline") - + 10 + content_read.find('OBSTACLE') - 1 : content_read.rfind('$optline') + 10 ], content_to_replace, ) input_created = Path(self.path_to_input) input_created.touch(exist_ok=True) - with open(self.path_to_input, "w") as file_to_write: + with open(self.path_to_input, 'w') as file_to_write: file_to_write.write(content_write) - logger.info("Swan estimation started...") + logger.info('Swan estimation started...') subprocess.run( - "swan.exe", + 'swan.exe', shell=True, cwd=self.path_to_model, stdout=subprocess.DEVNULL, ) - logger.info("Swan estimation finished.") + logger.info('Swan estimation finished.') z = np.loadtxt(self.path_to_hs) res = [] for i in range(1538 // 32): hs_target = np.sum( - [ - z[i * 32 : (i + 1) * 32][target[0], target[1]] - for target in self.targets - ] + [z[i * 32 : (i + 1) * 32][target[0], target[1]] for target in self.targets] ) res.append(hs_target) hs_target = sum(res) / len(res) - print("hs_target", hs_target) + print('hs_target', hs_target) return hs_target diff --git a/test/test_geometry_utils.py b/test/test_geometry_utils.py index 9e5bc0362..026e8254e 100644 --- a/test/test_geometry_utils.py +++ b/test/test_geometry_utils.py @@ -31,17 +31,9 @@ class TestConvexSafeArea: geometry='2D', ) - poly_points = [ - (40, 25), - (30, 40), - (40, 55), - (60, 55), - (70, 40), - (60, 25), - (40, 25), - ] - test_poly = Polygon(Point(p[0], p[1]) for p in poly_points) - test_structure = Structure([test_poly]) + poly_points1 = [(21, 55), (18, 44), (41, 13), (48, 13), (56, 43)] + test_poly1 = Polygon(Point(p[0], p[1]) for p in poly_points1) + test_structure = Structure([test_poly1]) @pytest.mark.parametrize( ', '.join( @@ -56,10 +48,19 @@ class TestConvexSafeArea: ], ), [ - (test_poly, domain, 2, 3, test_structure, 0, no_exception()), + (test_poly1, domain, 0, 1, test_structure, 0, no_exception()), + (test_poly1, domain, 1, 2, test_structure, 0, no_exception()), + (test_poly1, domain, 2, 3, test_structure, 0, no_exception()), + (test_poly1, domain, 3, 4, test_structure, 0, no_exception()), + (test_poly1, domain, 4, 0, test_structure, 0, no_exception()), + (test_poly1, domain, 0, 2, test_structure, 0, no_exception()), + (test_poly1, domain, 1, 3, test_structure, 0, no_exception()), + (test_poly1, domain, 2, 4, test_structure, 0, no_exception()), + (test_poly1, domain, 3, 0, test_structure, 0, no_exception()), + (test_poly1, domain, 4, 1, test_structure, 0, no_exception()), ], ) - def test_get_convex_safe_area_saves_convexity_triangle_area_case( + def test_convex_safe_area_saves_convexity_neighbour_indices( self, poly, domain, @@ -81,6 +82,6 @@ def test_get_convex_safe_area_saves_convexity_triangle_area_case( ) s_poly = domain.geometry._poly_to_shapely_poly(poly) union = unary_union([s_poly, movment_area]) - assert union.area == union.convex_hull.area - assert union.is_simple - assert union.is_valid + assert round(union.area, 6) == round(union.convex_hull.area, 6) + if abs(point_right_idx - point_left_idx) == 1: + assert s_poly.intersection(movment_area).area == 0.0 From 83bf964ca306b958c6b532e181807a19363e8090 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 16 Nov 2023 21:48:58 +0300 Subject: [PATCH 57/66] upd tutorials --- docs/source/tutorials/index.rst | 4 +- .../{optimizers.rst => optimisation.rst} | 46 ++++++++++--------- .../tutorials/{tuners.rst => tuning.rst} | 10 ++-- .../optimizers/golem_optimizer/standard.py | 15 ++++-- .../optimizers/golem_optimizer/surrogate.py | 13 ++++-- 5 files changed, 53 insertions(+), 35 deletions(-) rename docs/source/tutorials/{optimizers.rst => optimisation.rst} (67%) rename docs/source/tutorials/{tuners.rst => tuning.rst} (96%) diff --git a/docs/source/tutorials/index.rst b/docs/source/tutorials/index.rst index fed3c4f8c..accffdfb9 100644 --- a/docs/source/tutorials/index.rst +++ b/docs/source/tutorials/index.rst @@ -5,5 +5,5 @@ Tutorials :glob: :maxdepth: 1 - optimizers - tuners + optimisation + tuning diff --git a/docs/source/tutorials/optimizers.rst b/docs/source/tutorials/optimisation.rst similarity index 67% rename from docs/source/tutorials/optimizers.rst rename to docs/source/tutorials/optimisation.rst index 9330ce464..abfb3e1f1 100644 --- a/docs/source/tutorials/optimizers.rst +++ b/docs/source/tutorials/optimisation.rst @@ -1,10 +1,13 @@ .. role:: raw-html-m2r(raw) :format: html -Optimizers -========== +Optimisation +============ -To solve the optimization problem, 4 optimizers are available in GEFEST - 2 native and 2 based on GOLEM. +Optimisers summary +------------------ + +To solve the optimisation problem, 4 optimisers are available in GEFEST - 1 native and 2 based on GOLEM. All of them have a single interface and can be imported from ``gefest.tools.optimizers``. .. list-table:: Optimizers comparation @@ -12,62 +15,60 @@ All of them have a single interface and can be imported from ``gefest.tools.opti * - - ``BaseGA`` - - ``SPEA2`` - ``StandardOptimizer`` - ``SurrogateOptimizer`` * - **Backend** - - GEFEST - GEFEST - GOLEM - GOLEM * - **Muti objective** - - :raw-html-m2r:`No` - :raw-html-m2r:`Yes` - :raw-html-m2r:`Yes` - :raw-html-m2r:`Yes` * - **Evolutionary schemes** - - :raw-html-m2r:`No` - :raw-html-m2r:`No` - :raw-html-m2r:`Yes` - :raw-html-m2r:`Yes` * - **Adaptive mutation strategies** - - :raw-html-m2r:`No` - :raw-html-m2r:`No` - :raw-html-m2r:`Yes` - :raw-html-m2r:`Yes` - * - **Surrogate optimization** - - :raw-html-m2r:`No` + * - **Surrogate optimisation** - :raw-html-m2r:`No` - :raw-html-m2r:`No` - :raw-html-m2r:`Yes` -Some details ------------- ``BaseGA`` implements the base genetic algorithm, that performs generation of the initial population, crossover and mutation operations, fitness estimation and selection. Each of the steps is encapsulated in a separate executor, which allows you to change the logic of individual steps. -Thus, BaseGA essentially only implements the sequence of their call. - -``SPEA2`` implements Strength Pareto Evolutionary Algorithm 2 for multiobjective optimization. +Thus, BaseGA essentially only implements the sequence of their call. -``StandardOptimizer`` is a wrapper for GOLEM`s ``EvoGraphOptimizer`` optimizer. +``StandardOptimizer`` is a wrapper for GOLEM`s ``EvoGraphOptimizer`` optimiser. It allows to select different evolutionary schemes, adaptive mutation strategies and some other features. -To use multiobjective optimization set `golem_selection_type` in ``OptimizationParams`` config to 'spea2'. +To use multiobjective optimisation set `golem_selection_type` in ``OptimizationParams`` config to 'spea2'. ``SurrogateOptimizer`` is the extension of ``StandardOptimizer`` with the ability to use a surrogate model to evaluate fitness along with the main estimator. -How to run ----------- +Selectors summary +----------------- + +``OptimizationParams`` have 3 parameters to configure selection strategy: + * ``golem_selection_type`` defines which selection function will be used by GOLEM optimisers. Available values: 'spea2' for multi objective and 'tournament' for single objective problems. + * ``selector`` defines which selection function will be used by GEFEST for single objective problems and also for multi objective fitnesses if it possible. Available values: 'tournament_selection' and 'roulette_selection'. + * ``multiobjective_selector`` defines which selection function will be used by GEFEST for multiobjective problems. Available values: 'spea2' and 'moead'. -Easiest way to run optimizer described in :ref:`quickstart`. +How to optimise +--------------- + +Easiest way to run optimiser described in :ref:`quickstart`. If you want to get some more control you can do it in code by import corresponding classes: .. code-block:: python - from gefest.tools.optimizers BaseGA, SPEA2, StandardOptimizer, SurrogateOptimizer + from gefest.tools.optimizers BaseGA, StandardOptimizer, SurrogateOptimizer from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry.datastructs.structure import Structure @@ -76,3 +77,6 @@ If you want to get some more control you can do it in code by import correspondi optimizer = BaseGA(opt_params) optimized_population = optimizer.optimize(n_steps=42) + +By default initial population generates automatically with sampler from `opt_params`. +It also can be provided as optional argument for optimiser constructor. diff --git a/docs/source/tutorials/tuners.rst b/docs/source/tutorials/tuning.rst similarity index 96% rename from docs/source/tutorials/tuners.rst rename to docs/source/tutorials/tuning.rst index af74332c6..298f87d85 100644 --- a/docs/source/tutorials/tuners.rst +++ b/docs/source/tutorials/tuning.rst @@ -1,9 +1,12 @@ .. role:: raw-html-m2r(raw) :format: html -Tuners +Tuning ====== +Tuners +------ + GEFEST provides api for 4 tuners from `GOLEM `_\ : .. list-table:: Tuners comparation @@ -19,7 +22,7 @@ GEFEST provides api for 4 tuners from `GOLEM `_ - `Optuna `_ - `Hyperopt `_ @@ -30,11 +33,10 @@ GEFEST provides api for 4 tuners from `GOLEM No` - :raw-html-m2r:`No` - How to tune ----------- -To initialize tuner and run tuning, similarly to the optimizers, you need an ``OptimizationParams`` +To initialize tuner and run tuning, similarly to the optimisers, you need an ``OptimizationParams`` with defined ``TunerParams`` and also one or more ``Structure`` objects. More details about ``OptimizationParams`` you can find in `cases` and `API referece` sections of this documentation. diff --git a/gefest/tools/optimizers/golem_optimizer/standard.py b/gefest/tools/optimizers/golem_optimizer/standard.py index 75320676d..901788852 100644 --- a/gefest/tools/optimizers/golem_optimizer/standard.py +++ b/gefest/tools/optimizers/golem_optimizer/standard.py @@ -2,6 +2,8 @@ from typing import TYPE_CHECKING +from gefest.core.geometry import Structure + if TYPE_CHECKING: from gefest.core.configs.optimization_params import OptimizationParams @@ -23,7 +25,7 @@ class StandardOptimizer(Optimizer): """ - def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: + def __init__(self, opt_params: OptimizationParams, initial_population=None, **kwargs) -> None: super().__init__(opt_params.log_dispatcher, **kwargs) self.opt_params = opt_params self.objective = Objective( @@ -33,9 +35,14 @@ def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: self.requirements = map_into_graph_requirements(opt_params) self.ggp = map_into_graph_generation_params(opt_params) self.gpa = map_into_gpa(opt_params) - self.initial_pop = list( - map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size)), - ) + + if initial_population: + self.initial_pop = initial_population + else: + self.initial_pop: list[Structure] = list( + map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size)), + ) + self.__standard_opt = EvoGraphOptimizer( objective=self.objective, initial_graphs=self.initial_pop, diff --git a/gefest/tools/optimizers/golem_optimizer/surrogate.py b/gefest/tools/optimizers/golem_optimizer/surrogate.py index f9a29aae9..e07b7468d 100644 --- a/gefest/tools/optimizers/golem_optimizer/surrogate.py +++ b/gefest/tools/optimizers/golem_optimizer/surrogate.py @@ -25,7 +25,7 @@ class SurrogateOptimizer(Optimizer): """ - def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: + def __init__(self, opt_params: OptimizationParams, initial_population=None, **kwargs) -> None: super().__init__(opt_params.log_dispatcher, **kwargs) self.opt_params = opt_params self.objective = Objective( @@ -35,9 +35,14 @@ def __init__(self, opt_params: OptimizationParams, **kwargs) -> None: self.requirements = map_into_graph_requirements(opt_params) self.ggp = map_into_graph_generation_params(opt_params) self.gpa = map_into_gpa(opt_params) - self.initial_pop = list( - map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size)), - ) + + if initial_population: + self.initial_pop = initial_population + else: + self.initial_pop: list[Structure] = list( + map(opt_params.golem_adapter.adapt, opt_params.sampler(opt_params.pop_size)), + ) + self.__surrogate_opt = SurrogateEachNgenOptimizer( objective=self.objective, initial_graphs=self.initial_pop, From dd78c48b2b42575dff2e03ac0ed3b8a2c86e8da2 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 17 Nov 2023 17:40:19 +0300 Subject: [PATCH 58/66] fix gefest_ga pipeline bugs, add parallel estimation feature, minor fixes --- gefest/core/configs/optimization_params.py | 14 ++++++++-- gefest/core/geometry/datastructs/structure.py | 7 ++--- .../opt/adapters/configuration_mapping.py | 2 +- gefest/core/opt/objective/objective_eval.py | 26 ++++++++++++++++--- gefest/core/opt/operators/crossovers.py | 1 - gefest/core/opt/postproc/rules.py | 5 +--- gefest/core/opt/strategies/crossover.py | 10 +++++++ .../simulators/swan/swan_interface.py | 2 +- gefest/tools/optimizers/GA/GA.py | 24 ++++++++++------- gefest/tools/tuners/tuner.py | 4 +-- 10 files changed, 65 insertions(+), 30 deletions(-) diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index ef02e37d5..671a5af36 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -135,8 +135,17 @@ class OptimizationParams(BaseModel): extra: int = 5 """Number of extra structures to generate on each optimization step.""" + estimation_n_jobs: Optional[int] = 1 + """Number of cores for estimator parallel execution. + Use more than 1 core only if you are sure that a particular estimator supports it! + For example, if the estimator uses an external simulator, + uses parallel calculations by itself, + then increasing the number of jobs in the code may not have an effect + or even slow down the execution of the program. + """ + n_jobs: Optional[int] = -1 - """Nuber of cores to use in parallel execution. + """Nuber of cores to use in parallel execution of reproduction operations in GEFEST. n_jobs = -1 to use all cores, n_jobs > 0 to spicic number of cores, n_jobs = 0 to eval sequentially without joblib, @@ -216,7 +225,8 @@ def create_classes_instances(self): if isinstance(self.multiobjective_selector, str): self.multiobjective_selector = getattr( - MultiObjectiveSelectionTypes, self.multiobjective_selector + MultiObjectiveSelectionTypes, + self.multiobjective_selector, ).value if self.mutation_each_prob is None: diff --git a/gefest/core/geometry/datastructs/structure.py b/gefest/core/geometry/datastructs/structure.py index 44a94829d..b34882d4d 100644 --- a/gefest/core/geometry/datastructs/structure.py +++ b/gefest/core/geometry/datastructs/structure.py @@ -1,7 +1,6 @@ from typing import Union from uuid import UUID, uuid4 -from loguru import logger from pydantic import Field from pydantic.dataclasses import dataclass @@ -23,10 +22,8 @@ def __len__(self): def __setattr__(self, name, value): if name in ['polygons']: - self.fitness = [] - lens = list(map(len, value)) - if any(x < 2 for x in lens): - logger.trace('bruh') + if self.polygons != tuple(value): + self.fitness = [] super().__setattr__(name, value) diff --git a/gefest/core/opt/adapters/configuration_mapping.py b/gefest/core/opt/adapters/configuration_mapping.py index 8fcae6b54..2eba8d9f6 100644 --- a/gefest/core/opt/adapters/configuration_mapping.py +++ b/gefest/core/opt/adapters/configuration_mapping.py @@ -31,7 +31,7 @@ def map_into_graph_requirements( keep_n_best=opt_params.pop_size, keep_history=opt_params.golem_keep_histoy, num_of_generations=opt_params.n_steps, - n_jobs=opt_params.n_jobs, + n_jobs=opt_params.estimation_n_jobs, history_dir=opt_params.log_dir, ) diff --git a/gefest/core/opt/objective/objective_eval.py b/gefest/core/opt/objective/objective_eval.py index 0c483a6f2..ab447b607 100644 --- a/gefest/core/opt/objective/objective_eval.py +++ b/gefest/core/opt/objective/objective_eval.py @@ -1,6 +1,7 @@ from gefest.core.geometry.datastructs.structure import Structure from gefest.core.opt.objective.objective import Objective from gefest.core.utils import where +from gefest.core.utils.parallel_manager import BaseParallelDispatcher class ObjectivesEvaluator: @@ -9,8 +10,13 @@ class ObjectivesEvaluator: def __init__( self, objectives: list[Objective], + n_jobs=None, ) -> None: self.objectives = objectives + if n_jobs in (0, 1): + self._pm = None + else: + self._pm = BaseParallelDispatcher(n_jobs) def __call__( self, @@ -25,12 +31,24 @@ def set_pop_objectives( pop: list[Structure], ) -> list[Structure]: """Evaluates objectives for whole population.""" - for idx in where(pop, lambda ind: len(ind.fitness) == 0): - pop[idx] = self.eval_objectives(pop[idx]) + idxs_to_eval = where(pop, lambda ind: len(ind.fitness) == 0) + individuals_to_eval = [pop[idx] for idx in idxs_to_eval] + if self._pm: + evaluated_individuals = self._pm.exec_parallel( + func=self.eval_objectives, + arguments=[(ind, self.objectives) for ind in individuals_to_eval], + use=True, + flatten=False, + ) + for idx, evaluated_ind in zip(idxs_to_eval, evaluated_individuals): + pop[idx] = evaluated_ind + else: + for idx in where(pop, lambda ind: len(ind.fitness) == 0): + pop[idx] = self.eval_objectives(pop[idx], self.objectives) return sorted(pop, key=lambda x: x.fitness) - def eval_objectives(self, ind: Structure) -> Structure: + def eval_objectives(self, ind: Structure, objectives) -> Structure: """Evaluates objectives.""" - ind.fitness = [obj(ind) for obj in self.objectives] + ind.fitness = [obj(ind) for obj in objectives] return ind diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 58c26fc8a..2348a16d4 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -36,7 +36,6 @@ def crossover_structures( tuple[Structure]: Сhildren. """ s1, s2 = copy.deepcopy(structure1), copy.deepcopy(structure2) - chosen_crossover = np.random.choice( a=operations, size=1, diff --git a/gefest/core/opt/postproc/rules.py b/gefest/core/opt/postproc/rules.py index 0758dacc1..7c48f7ea9 100644 --- a/gefest/core/opt/postproc/rules.py +++ b/gefest/core/opt/postproc/rules.py @@ -3,7 +3,6 @@ from itertools import combinations import numpy as np -from loguru import logger from shapely.geometry import GeometryCollection, LineString, MultiPoint from shapely.geometry import Point as ShapelyPoint from shapely.geometry import Polygon as ShapelyPolygon @@ -309,10 +308,8 @@ def correct( def _forbidden_validity(validity): if 'Valid Geometry' in validity: return False - elif 'Self-intersection' in validity: - return True else: - logger.critical('Unexpected shapely validity output. Got {validity}') + return True class Rules(Enum): diff --git a/gefest/core/opt/strategies/crossover.py b/gefest/core/opt/strategies/crossover.py index caa014f60..35459b91c 100644 --- a/gefest/core/opt/strategies/crossover.py +++ b/gefest/core/opt/strategies/crossover.py @@ -2,6 +2,8 @@ from typing import TYPE_CHECKING +import numpy as np + if TYPE_CHECKING: from gefest.core.configs.optimization_params import OptimizationParams @@ -49,11 +51,19 @@ def crossover(self, pop: list[Structure]): pairs = copy.deepcopy(self.parent_pairs_selector(pop)) + crossover_mask = np.random.choice( + [True, False], + size=len(pairs), + p=[self.crossover_chacne, 1 - self.crossover_chacne], + ) + pairs = [pair for idx, pair in enumerate(pairs) if crossover_mask[idx]] + new_generation = self._pm.exec_parallel( func=crossover, arguments=pairs, use=True, ) + new_generation = self._pm.exec_parallel( func=self.postprocess, arguments=[(ind,) for ind in new_generation], diff --git a/gefest/tools/estimators/simulators/swan/swan_interface.py b/gefest/tools/estimators/simulators/swan/swan_interface.py index 9d816f644..88df5059a 100644 --- a/gefest/tools/estimators/simulators/swan/swan_interface.py +++ b/gefest/tools/estimators/simulators/swan/swan_interface.py @@ -76,7 +76,7 @@ def estimate(self, struct: Structure) -> float: res = [] for i in range(1538 // 32): hs_target = np.sum( - [z[i * 32 : (i + 1) * 32][target[0], target[1]] for target in self.targets] + [z[i * 32 : (i + 1) * 32][target[0], target[1]] for target in self.targets], ) res.append(hs_target) diff --git a/gefest/tools/optimizers/GA/GA.py b/gefest/tools/optimizers/GA/GA.py index 40510ae05..de4090378 100644 --- a/gefest/tools/optimizers/GA/GA.py +++ b/gefest/tools/optimizers/GA/GA.py @@ -29,7 +29,10 @@ def __init__( self.crossover = getattr(strategies, opt_params.crossover_strategy)(opt_params=opt_params) self.mutation = getattr(strategies, opt_params.mutation_strategy)(opt_params=opt_params) self.sampler: Callable = opt_params.sampler - self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator(opt_params.objectives) + self.objectives_evaluator: ObjectivesEvaluator = ObjectivesEvaluator( + opt_params.objectives, + opt_params.estimation_n_jobs, + ) self.pop_size = opt_params.pop_size self.n_steps = opt_params.n_steps self.domain = self.opt_params.domain @@ -46,12 +49,12 @@ def __init__( self.opt_params.extra = 0 logger.warning('For moead extra not available.') - self.selector = self.opt_params.multiobjective_selector( - single_demention_selection=self.selector, - init_pop=self._pop, - moead_n_neighbors=self.opt_params.moead_multi_objective_selector_neighbors, - steps=self.n_steps, - ) + self.selector = self.opt_params.multiobjective_selector( + single_demention_selection=self.selector, + init_pop=self._pop, + moead_n_neighbors=self.opt_params.moead_multi_objective_selector_neighbors, + steps=self.n_steps, + ) self.log_dispatcher.log_pop(self._pop, '00000_init') @@ -62,11 +65,12 @@ def optimize(self) -> list[Structure]: list[Structure]: Optimized population. """ for step in tqdm(range(self.n_steps)): - self._pop = self.crossover(self._pop) - self._pop = self.mutation(self._pop) + self._pop = self.selector(self._pop, self.pop_size) + child = self.crossover(self._pop) + mutated_child = self.mutation(child) + self._pop.extend(mutated_child) self._pop.extend(self.sampler(self.opt_params.extra)) self._pop = self.objectives_evaluator(self._pop) - self._pop = self.selector(self._pop, self.pop_size) self.log_dispatcher.log_pop(self._pop, str(step + 1)) return self._pop diff --git a/gefest/tools/tuners/tuner.py b/gefest/tools/tuners/tuner.py index d8c24b7a6..0955a3184 100644 --- a/gefest/tools/tuners/tuner.py +++ b/gefest/tools/tuners/tuner.py @@ -47,7 +47,7 @@ def __init__( self.domain: Domain = opt_params.domain self.validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) self.tuner_type: str = opt_params.tuner_cfg.tuner_type - self.eval_n_jobs: int = 1 + self.estimation_n_jobs: int = opt_params.estimation_n_jobs self.adapter: Callable = opt_params.golem_adapter self.objective = GolemObjectiveWithPreValidation( quality_metrics={obj.__class__.__name__: obj for obj in opt_params.objectives}, @@ -71,7 +71,7 @@ def _get_tuner( 'search_space': search_space, 'adapter': self.adapter, 'iterations': self.n_steps_tune, - 'n_jobs': self.eval_n_jobs, + 'n_jobs': self.estimation_n_jobs, 'timeout': self.timeout, } if self.tuner_type == 'optuna': From cfdc7b00a02cdc22a466dd21fbbe6b33781bcc50 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 20 Nov 2023 00:02:17 +0300 Subject: [PATCH 59/66] add some tests, draft sound parallel cfg, minor bugfixes --- .../configuration/config_parallel.py | 207 ++++++++++ gefest/core/configs/optimization_params.py | 2 +- gefest/core/geometry/__init__.py | 2 +- gefest/core/geometry/geometry_2d.py | 12 +- gefest/core/geometry/utils.py | 54 --- .../simulators/sound_wave/sound_interface.py | 2 +- gefest/tools/tuners/tuner.py | 3 + gefest/tools/tuners/utils.py | 21 - setup.cfg | 1 + test/test_adapters.py | 30 ++ test/test_config.py | 120 ++++++ test/test_geometry2D.py | 381 +++++++++++++++++- test/test_sound.py | 11 + 13 files changed, 760 insertions(+), 86 deletions(-) create mode 100644 cases/sound_waves/configuration/config_parallel.py create mode 100644 test/test_adapters.py create mode 100644 test/test_config.py create mode 100644 test/test_sound.py diff --git a/cases/sound_waves/configuration/config_parallel.py b/cases/sound_waves/configuration/config_parallel.py new file mode 100644 index 000000000..cb0875170 --- /dev/null +++ b/cases/sound_waves/configuration/config_parallel.py @@ -0,0 +1,207 @@ +from copy import deepcopy +from pathlib import Path + +import numpy as np + +from cases.sound_waves.microphone_points import Microphone +from gefest.tools.utils import poly_from_comsol_txt +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.geometry.utils import get_random_structure +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( + SoundSimulator, + generate_map, +) + +# # # Metrics # # # +DAMPING = 1 - 0.001 +CA2 = 0.5 +INITIAL_P = 200 +MAX_PRESSURE = INITIAL_P / 2 +MIN_PRESSURE = -INITIAL_P / 2 + +import itertools +from numpy.core.umath import pi +class SoundFieldFitness(Objective): + """Evaluates sound pressure level difference with reference.""" + + def __init__(self, domain, estimator, best_spl, duration): + super().__init__(domain, estimator) + self.best_spl = best_spl + self.omega = 3 / (2 * pi) + self.iteration = 0 + self.map_size = (round(1.2 * domain.max_y), round(1.2 * domain.max_x)) + self.size_y, self.size_x = self.map_size + self.duration = duration + # obstacle_map handling + + # Source position is the center of the map + self.s_y = self.size_y // 2 + self.s_x = self.size_x // 2 + + def update_velocity(self, velocities, pressure, obstacle_map): + """Update the velocity field based on Komatsuzaki's transition rules.""" + V = velocities + P = pressure + for i, j in itertools.product(range(self.size_y), range(self.size_x)): + if obstacle_map[i, j] == 1: + V[i, j, 0:4] = 0.0 + continue + + V[i, j, 0] = V[i, j, 0] + P[i, j] - P[i - 1, j] if i > 0 else P[i, j] + V[i, j, 1] = V[i, j, 1] + P[i, j] - P[i, j + 1] if j < self.size_x - 1 else P[i, j] + V[i, j, 2] = V[i, j, 2] + P[i, j] - P[i + 1, j] if i < self.size_y - 1 else P[i, j] + V[i, j, 3] = V[i, j, 3] + P[i, j] - P[i, j - 1] if j > 0 else P[i, j] + + return V + + def step(self, velocities, pressure, obstacle_map): + """Perform a simulation step, upadting the wind an pressure fields.""" + pressure[self.s_y, self.s_x] = INITIAL_P * np.sin(self.omega * self.iteration) + velocities = self.update_velocity(velocities, pressure, obstacle_map) + pressure = self.update_perssure(pressure, velocities) + self.iteration += 1 + return velocities, pressure + + def update_perssure(self, pressure, velocities): + """Update the pressure field based on Komatsuzaki's transition rules.""" + pressure -= CA2 * DAMPING * np.sum(velocities, axis=2) + return pressure + + def spl(self, pressure_hist, integration_interval=60): + """Computes the sound pressure level map. + + https://en.wikipedia.org/wiki/Sound_pressure#Sound_pressure_level + + Args: + integration_interval (int): interval over which the rms pressure + is computed, starting from the last + simulation iteration backwards. + + Returns: + spl (np.array): map of sound pressure level (dB). + """ + p0 = 20 * 10e-6 # Pa + if integration_interval > pressure_hist.shape[0]: + integration_interval = pressure_hist.shape[0] + + rms_p = np.sqrt(np.mean(np.square(pressure_hist[-integration_interval:-1]), axis=0)) + + rms_p[rms_p == 0.0] = 0.000000001 + matrix_db = 20 * np.log10(rms_p / p0) + return matrix_db + + def _evaluate(self, ind: Structure): + self.iteration = 0 + obstacle_map = np.zeros((self.size_y, self.size_x)) + pressure = np.zeros((self.size_y, self.size_x)) + pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) + velocities = np.zeros((self.size_y, self.size_x, 4)) + + for iteration in range(self.duration): + pressure_hist[iteration] = deepcopy(pressure) + velocities, pressure = self.step(velocities, pressure, obstacle_map) + # best_spl = self._reference_spl(sim) + spl = self.spl(pressure_hist) + + current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) + micro = Microphone(matrix=current_spl).array() + current_spl = np.concatenate(micro[1]) + l_f = np.sum(np.abs(deepcopy(self.best_spl) - current_spl)) + return l_f + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 120], + [120, 120], + [120, 0], + [0, 0], + ], + name='main', + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=25, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + + +best_structure = poly_from_comsol_txt(str(Path(__file__).parent) + '\\figures\\bottom_square.txt') +best_spl = SoundSimulator(domain_cfg, 50, None)(best_structure) +best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) +micro = Microphone(matrix=best_spl).array() +best_spl = np.concatenate(micro[1]) + +opt_params = OptimizationParams( + optimizer='gefest_ga', + domain=domain_cfg, + tuner_cfg=tuner_cfg, + n_steps=10, + pop_size=10, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + estimation_n_jobs=1, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + SoundFieldFitness( + domain_cfg, + None, + best_spl, + 50 + ), + ], +) diff --git a/gefest/core/configs/optimization_params.py b/gefest/core/configs/optimization_params.py index 671a5af36..88f161780 100644 --- a/gefest/core/configs/optimization_params.py +++ b/gefest/core/configs/optimization_params.py @@ -77,7 +77,7 @@ class OptimizationParams(BaseModel): domain: Domain """Task domain.""" - objectives: list[Objective] + objectives: list[Union[Objective, Callable]] """Task objectives.""" mutations: Union[list[Callable[[Any], Structure]], list[ValidMutations]] diff --git a/gefest/core/geometry/__init__.py b/gefest/core/geometry/__init__.py index 1c8a93168..9f68a3346 100755 --- a/gefest/core/geometry/__init__.py +++ b/gefest/core/geometry/__init__.py @@ -1,4 +1,4 @@ from .datastructs.point import Point from .datastructs.polygon import Polygon, PolyID from .datastructs.structure import Structure -from .utils import get_random_point, get_random_poly, get_random_structure +from .utils import get_random_poly, get_random_structure diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index f9859143f..bcafcec2d 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -38,7 +38,7 @@ class Geometry2D(Geometry): def get_length(self, polygon: Polygon): """Returns polygon perimeter.""" - if len(polygon.points) < 1: + if len(polygon.points) <= 2: return 0 geom_polygon = LineString([ShapelyPoint(pt.x, pt.y) for pt in polygon]) @@ -51,7 +51,7 @@ def shapely_to_gefest(self, geom_in): return Polygon(self.get_coords(geom_in)) # add other shapely objects - def get_coords(self, poly) -> list[Point]: + def get_coords(self, poly: Union[ShapelyPolygon, LineString]) -> list[Point]: """The function for getting points. Args: @@ -189,7 +189,7 @@ def get_square(self, polygon: Polygon) -> float: Returns: value of the :obj:`polygon` area. """ - if len(polygon.points) <= 1: + if len(polygon.points) <= 2: return 0 geom_polygon = ShapelyPolygon([self._pt_to_shapely_pt(pt) for pt in polygon]) @@ -331,7 +331,7 @@ def simplify(self, poly: Polygon, tolerance: float) -> Polygon: if len(poly) < 3: return poly - if self._poly_to_shapely_line(poly).is_simple: + if self._poly_to_shapely_poly(poly).is_simple: poly = self._poly_to_shapely_poly(inp) compressed = poly.buffer(-tolerance, join_style='mitre') @@ -356,11 +356,9 @@ def simplify(self, poly: Polygon, tolerance: float) -> Polygon: else: simplified = self._poly_to_shapely_line(poly).convex_hull.simplify(tolerance) if simplified.is_empty: - raise ValueError('Empty polygon produced 2') + raise ValueError('Empty polygon produced') out = Polygon([Point(p[0], p[1]) for p in simplified.exterior.coords]) - # plot_polygon(simplified, color='b') - # plt.show() return out diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 62375c6b9..95f320765 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -86,21 +86,6 @@ def get_random_poly(parent_structure: Optional[Structure], domain: Domain) -> Op return polygon -def get_random_point(polygon: Polygon, structure: Structure, domain: Domain) -> Optional[Point]: - """Generatres random point for polygon.""" - centroid = domain.geometry.get_centroid(polygon) - sigma = _distance(centroid, structure, domain.geometry) / 3 - point = create_polygon_point(centroid, sigma) - max_attempts = 20 # Number of attempts to create in bound point - while not _in_bound(point, domain): - point = create_polygon_point(centroid, sigma) - max_attempts -= 1 - if max_attempts == 0: - return None - - return point - - def create_poly(centroid: Point, sigma: int, domain: Domain, geometry: Geometry2D) -> Polygon: """Generates random polygon using poltgenerator lib. @@ -191,45 +176,6 @@ def _create_area(domain: Domain, structure: Structure, geometry: Geometry2D) -> return centroid, sigma * 0.99 -def create_random_point(domain: Domain) -> Point: - """Returns random point from domain.""" - point = Point( - np.random.uniform(low=domain.min_x, high=domain.max_x), - np.random.uniform(low=domain.min_y, high=domain.max_y), - ) - while not _in_bound(point, domain): - point = Point( - np.random.uniform(low=domain.min_x, high=domain.max_x), - np.random.uniform(low=domain.min_y, high=domain.max_y), - ) - - return point - - -def create_polygon_point(centroid: Point, sigma: int) -> Point: - """Generates point.""" - point = Point( - np.random.normal(centroid.x, sigma, 1)[0], - np.random.normal(centroid.y, sigma, 1)[0], - ) - - return point - - -def _in_bound(point: Point, domain: Domain) -> bool: - return domain.geometry.is_contain_point(domain.allowed_area, point) - - -def _distance(point: Point, structure: Structure, geometry: Geometry2D) -> float: - polygons = structure.polygons - distances = [] - for poly in polygons: - d = geometry.centroid_distance(point, poly) - distances.append(d) - - return min(distances) - - def get_selfintersection_safe_point( poly: Polygon, domain: Domain, diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index 2fb66894a..dccce496c 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -44,7 +44,7 @@ def generate_map(domain, structure): return obstacle_map -def generate_random_map(map_size, random_seed): +def generate_random_map(map_size: tuple[int, int], random_seed: int): """Randomly generate an array of zeros (free media) and ones (obstacles). The obstacles have basic geometric shapes. diff --git a/gefest/tools/tuners/tuner.py b/gefest/tools/tuners/tuner.py index 0955a3184..023a80e71 100644 --- a/gefest/tools/tuners/tuner.py +++ b/gefest/tools/tuners/tuner.py @@ -43,6 +43,9 @@ def __init__( opt_params: OptimizationParams, **kwargs, ) -> None: + if opt_params.tuner_cfg is None: + raise ValueError('TunerParams config not provided. Check cofiguration file.') + self.log_dispatcher = opt_params.log_dispatcher self.domain: Domain = opt_params.domain self.validator = partial(validate, rules=opt_params.postprocess_rules, domain=self.domain) diff --git a/gefest/tools/tuners/utils.py b/gefest/tools/tuners/utils.py index c4a156f10..6b46eacf8 100644 --- a/gefest/tools/tuners/utils.py +++ b/gefest/tools/tuners/utils.py @@ -4,31 +4,10 @@ from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -from gefest.core.opt.objective.objective import Objective VarianceGeneratorType = Callable[[Structure], list[float]] -def objective_validation_wrap( - struct: Structure, - objectives: Objective, - validator: Callable, -) -> float: - """Applys validation rules to structure. - - Used for GOLEM tuner as objective to filter out - invalid cases in tuning process. - - Args: - struct (Structure): Changed stucture. - fitness_fun (Fitness): Fitness instance for current task. - validator (Callable): Util for structure validation. - - Returns: - float: None if structure invalid else fintess function output - """ - - def _get_uniform_args(mode: float, variance: float) -> tuple[float, float]: return (mode - variance, mode + variance) diff --git a/setup.cfg b/setup.cfg index d54cef9e6..de4422133 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,6 +12,7 @@ per-file-ignores = __init__.py:F401 sound_interface.py:N806 comsol_interface.py:C901 + test\*:D103 [tool:brunette] exclude = .git,.github,docs,__pycache__,env,venv,.venv diff --git a/test/test_adapters.py b/test/test_adapters.py new file mode 100644 index 000000000..b8fffdfb5 --- /dev/null +++ b/test/test_adapters.py @@ -0,0 +1,30 @@ +from pathlib import Path + +from golem.core.optimisers.genetic.gp_params import GPAlgorithmParameters +from golem.core.optimisers.optimization_parameters import GraphRequirements +from golem.core.optimisers.optimizer import GraphGenerationParams + +from gefest.core.configs.utils import load_config +from gefest.core.opt.adapters.configuration_mapping import ( + map_into_gpa, + map_into_graph_generation_params, + map_into_graph_requirements, +) + +filepath = Path(__file__) +test_config = load_config(str(filepath.parent) + '\\test_config.py') + + +def test_mapping_into_graph_requirements(): + graph_requirements = map_into_graph_requirements(test_config) + assert isinstance(graph_requirements, GraphRequirements) + + +def test_mapping_into_graph_generation_params(): + graph_generation_params = map_into_graph_generation_params(test_config) + assert isinstance(graph_generation_params, GraphGenerationParams) + + +def test_mapping_into_gpa(): + gpa = map_into_gpa(test_config) + assert isinstance(gpa, GPAlgorithmParameters) diff --git a/test/test_config.py b/test/test_config.py new file mode 100644 index 000000000..a12dd0686 --- /dev/null +++ b/test/test_config.py @@ -0,0 +1,120 @@ +from gefest.core.configs.optimization_params import OptimizationParams +from gefest.core.configs.tuner_params import TunerParams +from gefest.core.geometry.datastructs.structure import Structure +from gefest.core.geometry.domain import Domain +from gefest.core.opt.objective.objective import Objective +from gefest.tools.estimators.estimator import Estimator + + +# # # Metrics # # # +class Area(Objective): + """Figure area.""" + + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure) -> float: + area = 0 + for poly in ind: + area += self.domain.geometry.get_square(poly) + + area = abs(area - (50 * 50)) + return area + + +class Perimeter(Objective): + """Figure perimeter opposit ratio.""" + + def __init__(self, domain: Domain, estimator: Estimator = None) -> None: + super().__init__(domain, estimator) + + def _evaluate(self, ind: Structure) -> float: + perimeter = 0 + for poly in ind: + perimeter += 1 / self.domain.geometry.get_length(poly) + + return perimeter + + +# # # Precompute domain arguments # # # + +pass + +# # # + +domain_cfg = Domain( + allowed_area=[ + [0, 0], + [0, 100], + [100, 100], + [100, 0], + [0, 0], + ], + name='main', + min_poly_num=1, + max_poly_num=1, + min_points_num=3, + max_points_num=15, + polygon_side=0.0001, + min_dist_from_boundary=0.0001, + geometry_is_convex=True, + geometry_is_closed=True, + geometry='2D', +) + +tuner_cfg = TunerParams( + tuner_type='optuna', + n_steps_tune=50, + hyperopt_dist='uniform', + verbose=True, + timeout_minutes=60, +) + + +opt_params = OptimizationParams( + optimizer='gefest_ga', + domain=domain_cfg, + tuner_cfg=None, + n_steps=1, + pop_size=50, + postprocess_attempts=3, + mutation_prob=0.6, + crossover_prob=0.6, + mutations=[ + 'rotate_poly', + 'resize_poly', + 'add_point', + 'drop_point', + 'add_poly', + 'drop_poly', + 'pos_change_point', + ], + selector='tournament_selection', + multiobjective_selector='spea2', + mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + crossovers=[ + 'polygon_level', + 'structure_level', + ], + crossover_each_prob=[0.0, 1.0], + postprocess_rules=[ + 'not_out_of_bounds', + 'valid_polygon_geom', + 'not_self_intersects', + 'not_too_close_polygons', + # 'not_overlaps_prohibited', + 'not_too_close_points', + ], + extra=5, + estimation_n_jobs=1, + n_jobs=-1, + log_dir='logs', + run_name='run_name', + golem_keep_histoy=False, + golem_genetic_scheme_type='steady_state', + golem_surrogate_each_n_gen=5, + objectives=[ + Area(domain_cfg), + Perimeter(domain_cfg), + ], +) diff --git a/test/test_geometry2D.py b/test/test_geometry2D.py index fd6e661c9..c1d9bc24e 100755 --- a/test/test_geometry2D.py +++ b/test/test_geometry2D.py @@ -1,10 +1,15 @@ +from contextlib import nullcontext as no_exception + import numpy as np import pytest +from shapely.geometry import LineString, MultiPolygon +from shapely.geometry import Point as ShapelyPoint +from shapely.geometry import Polygon as ShapelyPolygon from gefest.core.geometry import Point, Polygon, Structure from gefest.core.geometry.geometry_2d import Geometry2D -geometry = Geometry2D(is_closed=True) +geometry = Geometry2D(is_convex=True, is_closed=True) # marking length and width for testing polygon poly_width = 10 poly_length = 20 @@ -79,6 +84,9 @@ def test_rotate_poly(angle, expected_poly): [ (rectangle_poly, poly_width * poly_length), (triangle_poly, poly_width * poly_length / 2), + (Polygon([]), 0.0), + (Polygon([Point(4, 33)]), 0.0), + (Polygon([Point(0.234, 111), Point(42, 42)]), 0.0), ], ) def test_get_square(figure, expected_poly): @@ -118,3 +126,374 @@ def test_distance(): """Test for distance function from Geometry2D class.""" dist_1 = geometry.min_distance(rectangle_poly, triangle_poly) assert np.isclose(dist_1, 0) + + +def test_get_coords_from_linestring(): + poly = LineString([(1, 2), (5, 6), (9, 3), (-5, 4)]) + coords = geometry.get_coords(poly) + for idx_, point in enumerate(coords): + assert isinstance(point, Point) + assert poly.coords[idx_][0] == point.x and poly.coords[idx_][1] == point.y + + +def test_get_coords_from_polygon(): + poly = ShapelyPolygon([(1, 2), (5, 6), (9, 3), (-5, 4)]) + coords = geometry.get_coords(poly) + for idx_, point in enumerate(coords): + assert isinstance(point, Point) + assert poly.exterior.coords[idx_][0] == point.x and poly.exterior.coords[idx_][1] == point.y + + +@pytest.mark.parametrize( + 'points, angle', + [ + ([11.005, -64.857, 89.07, -64.726, -44.4, 85.793, -98.744, -92.078], 107.085), + ([52.247, -71.305, -24.941, -76.395, -77.306, -23.818, -84.436, 21.887], 84.906), + ([-30.254, -50.595, -33.423, -17.237, 50.411, -53.9, -2.564, 10.087], 34.195), + ([59.303, -20.546, 8.75, 67.479, 57.728, 90.01, 15.964, 30.346], 115.140), + ([1.819, 1.014, 26.314, 1.47, 61.46, 40.183, 73.859, -52.156], 83.419), + ([92.984, 6.033, -8.616, 86.894, -58.711, -25.121, 97.113, 6.373], 130.058), + ([18.441, -27.842, 35.068, 97.597, 92.422, -73.318, -96.445, -61.18], 93.873), + ([-32.867, 67.926, -26.673, 16.294, 66.072, 80.615, 42.02, 86.934], 111.561), + ([43.228, 1.783, 77.274, 26.93, 36.935, 87.716, 29.722, 83.792], 172.097), + ([-63.721, 56.527, 85.56, -3.208, 13.333, -84.431, -24.992, 88.125], 124.331), + ([-76.41, -55.305, -9.261, 62.624, -94.735, -54.516, 92.331, 53.921], 30.243), + ([65.439, 89.936, -76.353, -63.397, 41.992, 25.995, 54.238, 51.099], 163.243), + ([-89.095, 5.421, 87.319, 39.346, -3.067, -24.067, -60.851, 20.656], 131.376), + ([-12.762, 87.586, 76.559, -93.63, 75.78, -95.736, -0.895, -16.672], 162.117), + ([-83.683, 63.124, 95.196, 63.648, -21.132, -37.336, -47.284, -49.189], 155.786), + ([-36.463, -60.168, -39.688, -86.484, -70.261, -58.015, 79.795, -79.932], 88.677), + ([-40.037, 82.116, -88.299, 43.377, -86.184, -57.963, 72.363, 56.635], 177.106), + ([50.369, -50.69, 65.929, 70.203, 91.523, -30.051, -20.591, -40.274], 102.544), + ([-39.418, 48.318, -93.891, -50.31, 0.702, -77.033, -87.242, 0.075], 102.332), + ([-55.45, -44.895, 73.163, 3.177, -65.699, 59.205, -6.874, 72.387], 7.864), + ([60.527, 48.915, 45.849, 54.572, -9.914, 81.24, -53.91, -82.924], 96.074), + ([-89.957, 32.749, -25.919, 38.302, -72.819, 84.286, -54.435, -67.978], 88.072), + ([-11.579, -86.434, -70.09, -98.124, -25.815, 65.467, 91.87, 58.349], 165.24), + ([-50.353, -33.626, 2.378, 36.718, 70.838, 57.234, 77.679, 37.047], 124.424), + ([-14.229, 72.8, -33.585, -47.179, 78.455, 48.313, -4.602, 85.821], 105.139), + ([56.139, -75.325, -74.361, -72.867, -11.745, -35.636, 83.574, -57.986], 167.883), + ([33.926, 77.767, 79.51, 10.045, -23.641, -6.021, -16.838, -25.08], 14.301), + ([94.841, 59.284, -5.852, -43.094, 90.994, -68.019, 81.106, 25.351], 129.43), + ([-23.61, 90.336, 75.407, 9.779, 5.59, -80.629, -87.663, 15.554], 173.245), + ([-51.581, 21.225, 6.398, 97.242, -45.745, 30.03, -69.674, -57.325], 157.986), + ], +) +def test_get_angle_between_two_vectors(points, angle): + v1 = (Point(points[0], points[1]), Point(points[2], points[3])) + v2 = (Point(points[4], points[5]), Point(points[6], points[7])) + assert round(geometry.get_angle(vector1=v1, vector2=v2), 3) == angle + + +@pytest.mark.parametrize( + 'poly, perimeter', + [ + ([], 0.0), + ([(-37.072, -23.071)], 0.0), + ([(-37.072, -23.071), (-88.869, 6.951)], 0.0), + ( + [ + (-37.072, -23.071), + (-88.869, 6.951), + (-92.754, 14.865), + (-81.354, 86.284), + (90.567, 85.27), + (93.778, 32.003), + (-15.131, -21.75), + (-37.072, -23.071), + ], + 509.728, + ), + ([(58.695, 30.38), (22.189, 69.546), (-3.151, 97.928), (58.695, 30.38)], 183.173), + ( + [ + (-54.024, -33.25), + (24.61, 53.479), + (74.444, 99.953), + (70.353, 8.636), + (-54.024, -33.25), + ], + 407.86, + ), + ([(63.546, -58.201), (-45.237, -45.838), (-94.31, -33.745), (63.546, -58.201)], 319.764), + ( + [ + (-20.672, -95.466), + (-96.978, -61.793), + (-37.997, 85.886), + (68.013, 21.485), + (74.135, 5.526), + (52.425, -69.268), + (-20.672, -95.466), + ], + 539.09, + ), + ([(79.756, -86.617), (-91.239, 5.298), (60.69, 81.567), (79.756, -86.617)], 533.393), + ], +) +def test_get_length(poly, perimeter): + poly = Polygon([Point(p[0], p[1]) for p in poly]) + assert round(geometry.get_length(poly), 3) == perimeter + + +@pytest.mark.parametrize( + 'poly1, poly2, point', + [ + ( + [ + [23.510440502339172, 87.18800203359015], + [16.728428841295475, 78.83261611687797], + [15.943128351745916, 71.8323686138699], + [14.968358551861787, 60.697606629037665], + [15.98053630885347, 56.32450382712932], + [18.224675800169624, 51.74547631191035], + [23.251098873883357, 47.709092938597536], + [37.042664281727006, 41.305417493336904], + [51.730349052022, 44.20922648597759], + [55.34132820718901, 49.41624230136715], + [60.850943092115024, 67.42906177406988], + [60.151315546637846, 74.71046392129718], + [59.518673819913424, 78.65796622807729], + [52.07357384362214, 85.58361278820249], + [23.510440502339172, 87.18800203359015], + ], + [ + [74.9022124262444, 93.0289081710956], + [31.663987128692675, 91.89004979620276], + [2.730841594823005, 86.30033381726267], + [22.78157251716534, 17.337530029563908], + [64.10004584470703, 5.75267485325562], + [90.00707491266297, 19.79187044181077], + [89.32384098619943, 44.0676925105978], + [74.9022124262444, 93.0289081710956], + ], + (22.928, 90.202), + ), + ( + [ + [57.71183334020465, 87.67463234064934], + [50.51452081685844, 85.13327478815634], + [30.955034306867688, 78.09064628693557], + [15.540522562298474, 58.754663565913], + [1.2232768952884996, 37.53545119447447], + [4.409631720280423, 32.084677628498895], + [21.337745400878735, 14.100332298030487], + [45.53144355498544, 5.9691262699021905], + [69.27066967989211, 10.503485124834029], + [78.81759801703856, 17.964969806084518], + [82.92878296603564, 26.916540104922777], + [78.69611307678483, 55.24020506910037], + [70.40562083667376, 75.50919725166787], + [57.71183334020465, 87.67463234064934], + ], + [ + [59.968260417247265, 79.11121326005193], + [49.31168043482422, 74.20136803281687], + [46.06820788459176, 71.40410908407036], + [22.85222067774701, 47.932664979947454], + [17.72673217438215, 39.19834540946594], + [16.55881233231551, 13.981349428132969], + [20.577748110574603, 6.1976506767562185], + [21.974885499741816, 5.090091461486203], + [50.24129554183121, 3.652798439526869], + [56.637416610581845, 5.192537418677539], + [69.00166666058895, 13.468678235144367], + [83.46285749897223, 25.30437699123355], + [92.01722715284058, 37.490366203765866], + [91.66558358035604, 59.206524582221945], + [66.76050969454376, 78.94647443873782], + [59.968260417247265, 79.11121326005193], + ], + (16.788, 18.934), + ), + ( + [ + [41.57797516558374, 29.529792504473726], + [39.45332651363959, 29.114683202717007], + [34.84855968966326, 27.91300159267978], + [32.88590087135793, 27.194306457226904], + [32.92315979503104, 20.751070646641686], + [33.43819137916439, 18.581875250584844], + [41.811840139813384, 8.566101194161112], + [45.496182969672034, 8.628727442113128], + [50.096224072686724, 10.170585774637484], + [53.849592181670545, 16.33796871836694], + [53.06262872357211, 26.549357682842025], + [45.6416971669762, 29.386565620239843], + [41.57797516558374, 29.529792504473726], + ], + [ + [69.08902933506229, 93.01082354892503], + [52.56687631956849, 90.81426107786706], + [31.061085190433097, 82.26775080375413], + [4.404951627468357, 38.84916757848918], + [15.985917277009627, 12.435977235478646], + [20.768028561626043, 7.772087054811841], + [53.651812779362785, 3.2388064175488935], + [83.71815758768406, 13.736787948448892], + [93.12113335254287, 17.472924469847804], + [94.17696875884448, 25.009223128368834], + [93.03047974913059, 84.4360952349468], + [87.631359798438, 91.02602964006971], + [69.08902933506229, 93.01082354892503], + ], + (41.312, 4.94), + ), + ], +) +def test_nearest_points(poly1, poly2, point): + point_res = geometry.nearest_points( + Polygon([Point(p[0], p[1]) for p in poly1]), + Polygon([Point(p[0], p[1]) for p in poly2]), + ) + assert ( + round(point_res.coords[0][0], 3) == point[0] + and round(point_res.coords[0][1], 3) == point[1] + ) + + +@pytest.mark.parametrize( + 'poly, tolerance, expected', + [ + ( + [ + (34.2, 16.2), + (77.4, 16.4), + (56.0, 30.2), + (56.0, 55.0), + (76.8, 75.8), + (29.2, 75.4), + (55.2, 55.4), + ], + 0.5, + [ + [34.158141791159785, 16.174805944079168], + [55.16794940775614, 55.39311349505902], + [29.12729011351953, 75.42438987524103], + [76.86086771515441, 75.82551237609509], + [56.025, 54.98964466094067], + [56.025, 30.213625817351218], + [77.48429325712596, 16.375389978643824], + [34.158141791159785, 16.174805944079168], + ], + ), + ( + [ + (34.2, 16.2), + (77.4, 16.4), + (56.0, 30.2), + (56.0, 55.0), + (76.8, 75.8), + (29.2, 75.4), + (55.2, 55.4), + ], + 1, + [ + [34.116283582319575, 16.149611888158326], + [55.13589881551228, 55.386226990118026], + [29.054580227039043, 75.44877975048206], + [76.92173543030884, 75.8510247521902], + [56.05, 54.97928932188134], + [56.05, 30.227251634702437], + [77.56858651425193, 16.350779957287646], + [34.116283582319575, 16.149611888158326], + ], + ), + ( + [ + (34.2, 16.2), + (77.4, 16.4), + (56.0, 30.2), + (56.0, 55.0), + (76.8, 75.8), + (29.2, 75.4), + (55.2, 55.4), + ], + 10, + [ + [34.2, 16.2], + [77.4, 16.4], + [56.0, 30.2], + [56.0, 55.0], + [76.8, 75.8], + [29.2, 75.4], + [55.2, 55.4], + [34.2, 16.2], + ], + ), + ( + [(21.0, 14.8), (79.2, 20.4), (43.8, 63.8)], + 0.5, + [ + [20.958899610984233, 14.770929861582594], + [43.79416105729854, 63.846711040065124], + [79.24890909236552, 20.37959056769488], + [20.958899610984233, 14.770929861582594], + ], + ), + ( + [(21.0, 14.8), (79.2, 20.4), (43.8, 63.8)], + 1, + [ + [20.917799221968462, 14.74185972316519], + [43.788322114597094, 63.893422080130236], + [79.29781818473103, 20.35918113538976], + [20.917799221968462, 14.74185972316519], + ], + ), + ( + [(21.0, 14.8), (79.2, 20.4), (43.8, 63.8)], + 10, + [ + [20.177992219684604, 14.218597231651893], + [43.68322114597095, 64.73422080130236], + [80.17818184731024, 19.99181135389765], + [20.177992219684604, 14.218597231651893], + ], + ), + ( + [(25.2, 19.8), (81.4, 21.0), (25.8, 64.6), (76.8, 68.6)], + 0.5, + [[25.2, 19.8], [25.8, 64.6], [76.8, 68.6], [81.4, 21.0], [25.2, 19.8]], + ), + ( + [(25.2, 19.8), (81.4, 21.0), (25.8, 64.6), (76.8, 68.6)], + 1, + [[25.2, 19.8], [25.8, 64.6], [76.8, 68.6], [81.4, 21.0], [25.2, 19.8]], + ), + ( + [(25.2, 19.8), (81.4, 21.0), (25.8, 64.6), (76.8, 68.6)], + 10, + [[25.2, 19.8], [25.8, 64.6], [76.8, 68.6], [81.4, 21.0], [25.2, 19.8]], + ), + ], +) +def test_simpplify(poly, tolerance, expected): + res = geometry.simplify( + Polygon([Point(p[0], p[1]) for p in poly]), + tolerance, + ) + assert [[p.x, p.y] for p in res] == expected + + +@pytest.mark.parametrize( + 'shapely_geom, expectation', + [ + (ShapelyPolygon([(195, 46), (36, 128), (341, 250)]), no_exception()), + ( + MultiPolygon( + [ + ShapelyPolygon([(195, 46), (36, 128), (341, 250)]), + ShapelyPolygon([(300, 458), (448, 455), (440, 310)]), + ] + ), + no_exception(), + ), + (ShapelyPolygon(), pytest.raises(ValueError)), + (MultiPolygon(), pytest.raises(ValueError)), + ], +) +def test_get_random_point_in_shapey_geom(shapely_geom, expectation): + with expectation: + point = geometry.get_random_point_in_shapey_geom(shapely_geom) + assert shapely_geom.contains(ShapelyPoint(point.coords)) diff --git a/test/test_sound.py b/test/test_sound.py new file mode 100644 index 000000000..e0080ac7e --- /dev/null +++ b/test/test_sound.py @@ -0,0 +1,11 @@ +import numpy as np + +from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( + generate_random_map, +) + + +def test_random_map(): + random_map = generate_random_map((42, 42), 111) + assert isinstance(random_map, np.ndarray) + assert random_map.shape == (42, 42, 1) From 8f9d73b37dd1cecb00cbad26fa163ddc76c254ec Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Mon, 20 Nov 2023 12:14:26 +0300 Subject: [PATCH 60/66] fix example import --- cases/sound_waves/configuration/config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cases/sound_waves/configuration/config.py b/cases/sound_waves/configuration/config.py index 109bf630a..f29144d8e 100644 --- a/cases/sound_waves/configuration/config.py +++ b/cases/sound_waves/configuration/config.py @@ -3,7 +3,6 @@ import numpy as np from cases.sound_waves.microphone_points import Microphone -from cases.sound_waves.poly_from_point import poly_from_comsol_txt from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry.datastructs.structure import Structure @@ -14,6 +13,7 @@ SoundSimulator, generate_map, ) +from gefest.tools.utils import poly_from_comsol_txt # # # Metrics # # # @@ -129,4 +129,4 @@ def _evaluate(self, ind: Structure): str(Path(__file__).parent) + '\\figures\\bottom_square.txt', ), ], -) +) \ No newline at end of file From 24d53fafdf63978935356209c2c6f7a2f409df17 Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Tue, 21 Nov 2023 19:03:38 +0300 Subject: [PATCH 61/66] Add Sampler - noise_sampler.py to reverse generate synthetic geometry from existing polygon. Add example for noise_sampler.py and example lightning shaped figure. --- .../syn_gen/Comsol_points/lightning.txt | 8 + .../tools/samplers/rand_gen/noise_sampler.py | 192 ++++++++++++++++++ .../samplers/rand_gen/rand_sampler_exmpl.py | 74 +++++++ 3 files changed, 274 insertions(+) create mode 100644 cases/synthetic/syn_gen/Comsol_points/lightning.txt create mode 100644 gefest/tools/samplers/rand_gen/noise_sampler.py create mode 100644 gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py diff --git a/cases/synthetic/syn_gen/Comsol_points/lightning.txt b/cases/synthetic/syn_gen/Comsol_points/lightning.txt new file mode 100644 index 000000000..eb0e247ca --- /dev/null +++ b/cases/synthetic/syn_gen/Comsol_points/lightning.txt @@ -0,0 +1,8 @@ +30 45 +55 60 +48.697025299072266 68.69702529907227 +60 80 +55 85 +39.34726333618164 69.34726333618164 +48.697025299072266 60 +30 45 diff --git a/gefest/tools/samplers/rand_gen/noise_sampler.py b/gefest/tools/samplers/rand_gen/noise_sampler.py new file mode 100644 index 000000000..f8eb17ccf --- /dev/null +++ b/gefest/tools/samplers/rand_gen/noise_sampler.py @@ -0,0 +1,192 @@ +# import copy +from typing import List + +import numpy as np + +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.opt.postproc.rules import PolygonNotSelfIntersects + + +class NoisedPoly: + """Class for revers mutation of synthetic geometry. + + It is a sampler of geometry, + that generate similar to reference polygons. + class apply a noise for every point of polygon + (except first and last for close geometry!!!), + than it can rotate and resize obtained polygon. + :param: + scale (float): - scale factor mapped to domain side. Necessary for obtain + 'sigma' arg for uniform noise function. + Recommend from 0.01 to 0.05. + May be tested for other examples; + init_poly (Polygon): - Reference polygon necessary + to generate new reverse mutated geometry; + resize_scale (List[min,max]): range of min and max value for + random.uniform generation x_scale and y_scale: + (scale value for **x** axis ;scale value for **y** axis). + Necessary for resize_polygon function; + degrees_to_rotate (int;float): +/- degrees to rotate polygon; + rules (List[Rules]): List of geometry validation rules + """ + + geometry = Geometry2D() + + def __init__( + self, + init_poly: Polygon, + scale: float = 0.01, + resize_scale: List = None, + probability: float = 0.75, + degrees_to_rotate: int = 180, + rules: List = None, + is_rotate: bool = True, + is_resize: bool = True, + is_remove_points: bool = True, + domain=None, + ): + self.is_rotate = is_rotate + self.is_resize = is_resize + self.is_remove_points = is_remove_points + + self.degrees_to_rotate = degrees_to_rotate + self.proba = probability + + self.init_polygon = init_poly + self.close = False + if self.init_polygon[0] == self.init_polygon[-1]: + self.close = True + + if resize_scale is None: + self.resize_scale = [0.75, 1.5] + else: + self.resize_scale = resize_scale + + if rules is None: + rules = [PolygonNotSelfIntersects()] + + self.rules = rules + + sigma_max_x = max(p.coords[0] for p in self.init_polygon.points) + sigma_max_y = max(p.coords[1] for p in self.init_polygon.points) + sigma_min_x = min(p.coords[0] for p in self.init_polygon.points) + sigma_min_y = min(p.coords[1] for p in self.init_polygon.points) + max_x = sigma_max_x - sigma_min_x + max_y = sigma_max_y - sigma_min_y + self.sigma = np.random.uniform(min(max_x, max_y) * scale, max(max_x, max_y) * scale) + + def __call__( + self, + **kwargs, + ) -> Polygon: + """Call method to apply sample() func. + + :param kwargs: + :return: + """ + return self.sample() + + def noising_poly(self, poly: Polygon) -> Polygon: + """Function to add noise to polygon points. + + :param poly: + :return: + """ + x_noise_start = np.random.uniform(-self.sigma, self.sigma) + y_noise_start = np.random.uniform(-self.sigma, self.sigma) + for i, point in enumerate(self.init_polygon.points): + if (i == 0 or i == (len(self.init_polygon) - 1)) and self.close: + poly.points.append( + Point(point.coords[0] + x_noise_start, point.coords[1] + y_noise_start) + ) + continue + + if np.random.uniform(0, 1) < (1 - self.proba): + poly.points.append(point) + + else: + x_noise = np.random.uniform(-self.sigma, self.sigma) + y_noise = np.random.uniform(-self.sigma, self.sigma) + poly.points.append(Point(point.coords[0] + x_noise, point.coords[1] + y_noise)) + + return poly + + def remove_points(self, poly: Polygon) -> Polygon: + """Function for deleting polygons points. + + :param poly: + :return: + """ + if np.random.uniform(0, 1) < self.proba: + if len(poly.points) // 4 >= 1: + max_to_del = len(poly.points) // 4 + else: + max_to_del = 1 + + for _ in range(0, max_to_del): # Choose hwo many points may be deleted + pnt_to_del = np.random.randint(1, len(poly.points) - 1) + poly.points.remove(poly.points[pnt_to_del]) + + return poly + + def resize_polygon(self, poly: Polygon) -> Polygon: + """Resize polygon size func. + + :param poly: + :return: + """ + x_scale = np.random.uniform(self.resize_scale[0], self.resize_scale[1]) + y_scale = np.random.uniform(self.resize_scale[0], self.resize_scale[1]) + if np.random.uniform(0, 1) < self.proba: + poly = self.geometry.resize_poly(poly, x_scale, y_scale) + + return poly + + def rotate_polygon(self, poly: Polygon) -> Polygon: + """Rotating polygon function. + + :param poly: + :return: + """ + angle = np.random.randint(-self.degrees_to_rotate, self.degrees_to_rotate) + if np.random.uniform(0, 1) < self.proba: + # poly_test = copy.deepcopy(poly) + poly = self.geometry.rotate_poly(poly, angle) + if not self.close: + poly.points.remove(poly.points[0]) + # poly_test_2 = copy.deepcopy(poly) + + return poly + + def polygon_transformation(self): + """Function applying every notion operation, that may be applied. + + :return: + """ + poly = Polygon([]) + poly = self.noising_poly(poly) + if self.is_remove_points: + poly = self.remove_points(poly) + + if self.is_rotate: + poly = self.resize_polygon(poly) + + if self.is_resize: + poly = self.rotate_polygon(poly) + + return poly + + def sample(self): + """Action function to noise polygon. + + :return: mutated Polygon with validation. + """ + poly = self.polygon_transformation() + struct = Structure(polygons=([poly])) + for r in self.rules: + while not r.validate(struct, 0, domain=None): + poly = self.polygon_transformation() + struct = Structure(polygons=([poly])) + + return poly diff --git a/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py b/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py new file mode 100644 index 000000000..70c02ddb8 --- /dev/null +++ b/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py @@ -0,0 +1,74 @@ +# Example to generate similar synthetic geometry. +# In the end show animation of revers mutation action. +import time +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np +from core.geometry import Point, Polygon +from polygenerator import random_star_shaped_polygon +from tools.samplers.rand_gen.noise_sampler import NoisedPoly + +from gefest.core.geometry.geometry_2d import Geometry2D +from gefest.core.opt.postproc.rules import PolygonNotSelfIntersects +from gefest.tools.utils import poly_from_comsol_txt + +root = Path(__file__).parent.parent.parent.parent.parent +grid_resolution_x = 300 # Number of points on x-axis +grid_resolution_y = 300 +coord_x = np.linspace(20, 100, grid_resolution_x + 1) # X coordinate for spatial grid +coord_y = np.linspace(20, 100, grid_resolution_y + 1) +border = [ + (min(coord_x), min(coord_y)), + (min(coord_x), max(coord_y)), + (max(coord_x), max(coord_y)), + (max(coord_x), min(coord_y)), + (min(coord_x), min(coord_y)), +] +len_x = max(coord_x) - min(coord_x) +len_y = max(coord_y) - min(coord_y) +geometry = Geometry2D() + +POLYGON_FROM_TXT = False # Choose mode to obtain polygon + +if POLYGON_FROM_TXT: + path_ = f'{root}/cases/synthetic/syn_gen/Comsol_points/lightning.txt' # Load poly from txt file + best_poly = poly_from_comsol_txt(path=path_).polygons[0] +else: + best_poly = random_star_shaped_polygon(num_points=77) # Generate random polygon + best_poly = Polygon( + [Point(p[0] * min(coord_x) + len_x / 2, p[1] * min(coord_y) + len_y / 2) + for p in best_poly]) + best_poly.points.append(best_poly.points[0]) + +plt.ion() +noise = NoisedPoly( + init_poly=best_poly, + scale=0.03, + degrees_to_rotate=30, + rules=[PolygonNotSelfIntersects()], + resize_scale=[0.5, 1.75] +) + +for _ in range(200): + # angle = np.random.randint(-100, 100) + plt.clf() + plt.plot([b[0] for b in border], [b[1] for b in border]) + plt.plot( + [b[0] for b in [p.coords for p in best_poly.points]], + [b[1] for b in [p.coords for p in best_poly.points]], + ) + # plt.plot([b[0] for b in [p.coords for p in geometry.rotate_poly(best_poly,angle).points]], + # [b[1] for b in [p.coords for p in geometry.rotate_poly(best_poly,angle).points]]) + noised = noise().points + plt.plot( + [b[0] for b in [p.coords for p in noised]], + [b[1] for b in [p.coords for p in noised]], + label='generated', + ) + plt.legend() + plt.draw() + plt.gcf().canvas.flush_events() + time.sleep(0.08) + +plt.show() From 7bf80fc7ee3c9ddac08d65a3ff623c442368e12f Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Thu, 23 Nov 2023 14:36:28 +0300 Subject: [PATCH 62/66] tuner fix, parallel sound, minor fixes --- .../configuration/config_parallel.py | 73 +++++++++-------- cases/sound_waves/microphone_points.py | 2 +- draft_run_tuners.py | 80 +++++++++++++++++++ gefest/core/configs/tuner_params.py | 9 +-- gefest/core/geometry/domain.py | 2 +- gefest/core/opt/operators/crossovers.py | 2 +- gefest/core/utils/logger.py | 1 - gefest/tools/optimizers/GA/GA.py | 5 +- gefest/tools/samplers/standard/standard.py | 3 - gefest/tools/tuners/tuner.py | 4 +- gefest/tools/tuners/utils.py | 31 +------ 11 files changed, 137 insertions(+), 75 deletions(-) create mode 100644 draft_run_tuners.py diff --git a/cases/sound_waves/configuration/config_parallel.py b/cases/sound_waves/configuration/config_parallel.py index cb0875170..0766959a1 100644 --- a/cases/sound_waves/configuration/config_parallel.py +++ b/cases/sound_waves/configuration/config_parallel.py @@ -1,9 +1,13 @@ from copy import deepcopy +from functools import partial from pathlib import Path import numpy as np from cases.sound_waves.microphone_points import Microphone +from gefest.core.geometry.datastructs.point import Point +from gefest.core.geometry.datastructs.polygon import Polygon +from gefest.tools.tuners.utils import percent_edge_variance from gefest.tools.utils import poly_from_comsol_txt from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams @@ -23,6 +27,9 @@ MAX_PRESSURE = INITIAL_P / 2 MIN_PRESSURE = -INITIAL_P / 2 +import numpy as np + + import itertools from numpy.core.umath import pi class SoundFieldFitness(Objective): @@ -36,7 +43,6 @@ def __init__(self, domain, estimator, best_spl, duration): self.map_size = (round(1.2 * domain.max_y), round(1.2 * domain.max_x)) self.size_y, self.size_x = self.map_size self.duration = duration - # obstacle_map handling # Source position is the center of the map self.s_y = self.size_y // 2 @@ -97,6 +103,7 @@ def spl(self, pressure_hist, integration_interval=60): def _evaluate(self, ind: Structure): self.iteration = 0 obstacle_map = np.zeros((self.size_y, self.size_x)) + obstacle_map = generate_map(self.domain, ind) pressure = np.zeros((self.size_y, self.size_x)) pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) velocities = np.zeros((self.size_y, self.size_x, 4)) @@ -104,14 +111,14 @@ def _evaluate(self, ind: Structure): for iteration in range(self.duration): pressure_hist[iteration] = deepcopy(pressure) velocities, pressure = self.step(velocities, pressure, obstacle_map) - # best_spl = self._reference_spl(sim) + spl = self.spl(pressure_hist) current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) micro = Microphone(matrix=current_spl).array() - current_spl = np.concatenate(micro[1]) + current_spl = np.concatenate(micro[-1]) l_f = np.sum(np.abs(deepcopy(self.best_spl) - current_spl)) - return l_f + return l_f / len(current_spl) # # # Precompute domain arguments # # # @@ -122,48 +129,50 @@ def _evaluate(self, ind: Structure): domain_cfg = Domain( allowed_area=[ - [0, 0], - [0, 120], - [120, 120], - [120, 0], - [0, 0], + [20, 20], + [20, 100], + [100, 100], + [100, 20], + [20, 20], ], name='main', min_poly_num=1, - max_poly_num=1, + max_poly_num=4, min_points_num=3, - max_points_num=15, - polygon_side=0.0001, - min_dist_from_boundary=0.0001, + max_points_num=16, + polygon_side=0.001, + min_dist_from_boundary=0.001, geometry_is_convex=True, geometry_is_closed=True, geometry='2D', ) + tuner_cfg = TunerParams( - tuner_type='optuna', - n_steps_tune=25, - hyperopt_dist='uniform', + tuner_type='sequential', + n_steps_tune=1000, + hyperopt_dist='normal', verbose=True, - timeout_minutes=60, + variacne_generator=partial(percent_edge_variance, percent=0.5), + timeout_minutes=30, ) best_structure = poly_from_comsol_txt(str(Path(__file__).parent) + '\\figures\\bottom_square.txt') -best_spl = SoundSimulator(domain_cfg, 50, None)(best_structure) +best_spl = SoundSimulator(domain_cfg, 200, None)(best_structure) best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) micro = Microphone(matrix=best_spl).array() -best_spl = np.concatenate(micro[1]) +best_spl = np.concatenate(micro[-1]) opt_params = OptimizationParams( optimizer='gefest_ga', domain=domain_cfg, tuner_cfg=tuner_cfg, - n_steps=10, - pop_size=10, + n_steps=100, + pop_size=100, postprocess_attempts=3, - mutation_prob=0.6, - crossover_prob=0.6, + mutation_prob=0.9, + crossover_prob=0.7, mutations=[ 'rotate_poly', 'resize_poly', @@ -173,13 +182,13 @@ def _evaluate(self, ind: Structure): 'drop_poly', 'pos_change_point', ], - selector='tournament_selection', - mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], + selector='roulette_selection', + mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.0, 0.0, 0.25], crossovers=[ 'polygon_level', 'structure_level', ], - crossover_each_prob=[0.0, 1.0], + crossover_each_prob=[1.0, 0.0], postprocess_rules=[ 'not_out_of_bounds', 'valid_polygon_geom', @@ -189,11 +198,11 @@ def _evaluate(self, ind: Structure): 'not_too_close_points', ], extra=5, - estimation_n_jobs=1, - n_jobs=-1, - log_dir='logs', - run_name='run_name', - golem_keep_histoy=False, + estimation_n_jobs=-1, + n_jobs=11, + log_dir='logs/tuners_exp', + run_name='roulette_1_obj', + golem_keep_histoy=True, golem_genetic_scheme_type='steady_state', golem_surrogate_each_n_gen=5, objectives=[ @@ -201,7 +210,7 @@ def _evaluate(self, ind: Structure): domain_cfg, None, best_spl, - 50 + 200 ), ], ) diff --git a/cases/sound_waves/microphone_points.py b/cases/sound_waves/microphone_points.py index 633db5ce3..183ab12af 100644 --- a/cases/sound_waves/microphone_points.py +++ b/cases/sound_waves/microphone_points.py @@ -4,7 +4,7 @@ class Microphone: """Slices microphone points where makes a sound measurements.""" def __init__(self, matrix: np.ndarray = None): - self.matrix = np.random.rand(120, 120) + self.matrix = np.random.rand(120, 120) if matrix is None else matrix def array(self): """Generates np.array of sound pressure.""" diff --git a/draft_run_tuners.py b/draft_run_tuners.py new file mode 100644 index 000000000..f9ddc12dc --- /dev/null +++ b/draft_run_tuners.py @@ -0,0 +1,80 @@ +import sys +from functools import partial +from pathlib import Path + +from loguru import logger +from tqdm import tqdm + +from gefest.core.configs.utils import load_config +from gefest.core.geometry import Point, Polygon, Structure +from gefest.core.utils.logger import LogDispatcher +from gefest.core.viz.struct_vizualizer import GIFMaker, StructVizualizer +from gefest.tools.tuners.tuner import GolemTuner +from gefest.tools.tuners.utils import percent_edge_variance + +if __name__ == '__main__': + + opt_params = load_config( + str(Path(__file__).parent) + '\cases\sound_waves\configuration\config_parallel.py' + ) + + optimized_struct = Structure( + polygons=[ + Polygon( + points=[ + Point(x=94.8399485030149, y=20.40034861129441), + Point(x=85.5624968428982, y=21.059993710397926), + Point(x=79.00084052541479, y=21.862700852017394), + Point(x=76.06076964736816, y=22.476934992526946), + Point(x=74.90849793039871, y=29.131517380279682), + Point(x=74.61676812657737, y=32.94679344410641), + Point(x=74.56239446772611, y=33.69226990738204), + Point(x=74.24162218587203, y=40.70530130547375), + Point(x=87.01622361737279, y=40.96813944432962), + Point(x=95.64079625726104, y=40.78198185566877), + Point(x=95.58245342099814, y=25.459142743749343), + Point(x=95.57086138193173, y=25.035926422500204), + Point(x=95.46231197117629, y=21.849202076811995), + Point(x=94.8399485030149, y=20.40034861129441), + ], + fitness=[0.8770969580695486], + ) + ] + ) + + best_structure = Structure( + polygons=( + Polygon( + points=[ + Point(x=95.0, y=20.0), + Point(x=75.0, y=20.0), + Point(x=75.0, y=40.0), + Point(x=95.0, y=40.0), + Point(x=95.0, y=20.0), + ], + ), + ), + fitness=[], + ) + + ## plot structs + # sv = StructVizualizer(opt_params.domain) + # sv.plot_structure(optimized_struct, opt_params.domain) + # sv.plot_structure(best_structure, opt_params.domain) + # from matplotlib import pyplot as plt + # plt.show(block=True) + + tuner_names = ['sequential', 'simulataneous', 'iopt', 'optuna'] + for tuner_name in tuner_names: + opt_params.tuner_cfg.tuner_type = tuner_name + # opt_params.tuner_cfg.variacne_generator = partial(percent_edge_variance, percent=0.5) + tuner = GolemTuner(opt_params) + tuned_individuals = tuner.tune(optimized_struct) + LogDispatcher(run_name=tuner_name).log_pop(tuned_individuals, '0') + + # # MP4 + # gm = GIFMaker(domain=opt_params.domain) + # for st in tqdm([best_structure, optimized_struct]): + # gm.create_frame(st, {'Tuned': st.fitness}) + + # gm.make_gif('Tuned individuals', 500) diff --git a/gefest/core/configs/tuner_params.py b/gefest/core/configs/tuner_params.py index 8225263b8..1d5ba7f0c 100644 --- a/gefest/core/configs/tuner_params.py +++ b/gefest/core/configs/tuner_params.py @@ -35,7 +35,7 @@ class TunerParams(BaseModel): verbose: bool = True """GOLEM console info.""" - variacne_generator: Union[Callable[[Structure], list[float]], str] = utils.average_edge_variance + variacne_generator: Union[Callable[[Structure], list[float]], str] = utils.percent_edge_variance """The function for generating the search space includes intervals for each component of each point of each polygon in the provided structure. @@ -80,15 +80,12 @@ def hyperopt_fun_validate(cls, value): @classmethod def variacne_generator_fun_validate(cls, value): """Checks if specified variance generation function exists.""" - fun_names = ['average_edge_variance'] + fun_names = ['percent_edge_variance'] if isinstance(value, str): if value in fun_names: return getattr(utils, value) - else: - raise ValueError(f'Invalid distribution name: {value}. Allowed names: {fun_names}') elif isinstance(value, Callable): - if value.__module__.split('.')[0] == hp.__name__.split('.')[0]: - return value + return value else: raise ValueError(f'Invalid argument: {value} of type {type(value)}.') diff --git a/gefest/core/geometry/domain.py b/gefest/core/geometry/domain.py index b901c3bde..63928cb34 100644 --- a/gefest/core/geometry/domain.py +++ b/gefest/core/geometry/domain.py @@ -18,7 +18,7 @@ class Domain(BaseModel): max_points_num: int = 50 polygon_side: float = 0.0001 min_dist_from_boundary: float = 0.0001 - prohibited_area: Optional[Union[Structure, str]] = Field(default=Structure([])) + prohibited_area: Optional[Union[Structure, str]] = Field(default=Structure()) fixed_points: Optional[Union[Polygon, list[list[float]]]] = Field(default_factory=list) geometry_is_convex: bool = True geometry_is_closed: bool = True diff --git a/gefest/core/opt/operators/crossovers.py b/gefest/core/opt/operators/crossovers.py index 2348a16d4..6f8403ac1 100644 --- a/gefest/core/opt/operators/crossovers.py +++ b/gefest/core/opt/operators/crossovers.py @@ -94,7 +94,7 @@ def polygon_level_crossover( domain: Domain, **kwargs, ): - """Exchanges polygons of two structure.""" + """Exchanges points of two nearest polygons in structure.""" geom = domain.geometry s1, s2 = copy.deepcopy(s1), copy.deepcopy(s2) intersected = False diff --git a/gefest/core/utils/logger.py b/gefest/core/utils/logger.py index 98007109b..9d32b93cd 100644 --- a/gefest/core/utils/logger.py +++ b/gefest/core/utils/logger.py @@ -29,4 +29,3 @@ def log_pop(self, pop: list[Structure], step: str): logger.log(4, dump) logger.remove(inividual_log_handler) - logger.info('Population logged. May be not sorted by fitness.') diff --git a/gefest/tools/optimizers/GA/GA.py b/gefest/tools/optimizers/GA/GA.py index de4090378..517e5b62d 100644 --- a/gefest/tools/optimizers/GA/GA.py +++ b/gefest/tools/optimizers/GA/GA.py @@ -64,7 +64,9 @@ def optimize(self) -> list[Structure]: Returns: list[Structure]: Optimized population. """ - for step in tqdm(range(self.n_steps)): + pbar = tqdm(range(self.n_steps)) + for step in pbar: + pbar.set_description(f'Best fitness: {self._pop[0].fitness}') self._pop = self.selector(self._pop, self.pop_size) child = self.crossover(self._pop) mutated_child = self.mutation(child) @@ -73,4 +75,5 @@ def optimize(self) -> list[Structure]: self._pop = self.objectives_evaluator(self._pop) self.log_dispatcher.log_pop(self._pop, str(step + 1)) + pbar.set_description(f'Best fitness: {self._pop[0].fitness}') return self._pop diff --git a/gefest/tools/samplers/standard/standard.py b/gefest/tools/samplers/standard/standard.py index 36d767dde..98926818c 100644 --- a/gefest/tools/samplers/standard/standard.py +++ b/gefest/tools/samplers/standard/standard.py @@ -8,8 +8,6 @@ from functools import partial from typing import Callable -from loguru import logger - from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain from gefest.core.geometry.utils import get_random_structure @@ -60,6 +58,5 @@ def sample(self, n_samples: int) -> list[Structure]: random_pop = [ind for ind in corrected if ind is not None] - logger.info(f'{n_samples}, {len(random_pop)}') pop = random_pop[:n_samples] return pop diff --git a/gefest/tools/tuners/tuner.py b/gefest/tools/tuners/tuner.py index 023a80e71..6d2c5c421 100644 --- a/gefest/tools/tuners/tuner.py +++ b/gefest/tools/tuners/tuner.py @@ -15,8 +15,8 @@ from gefest.core.geometry.domain import Domain from gefest.core.opt.objective.tuner_objective import GolemObjectiveWithPreValidation from gefest.core.opt.postproc.resolve_errors import validate -from gefest.tools.tuners.utils import VarianceGeneratorType +VarianceGeneratorType = Callable[[Structure], list[float]] GolemTunerType = Union[IOptTuner, OptunaTuner, SequentialTuner, SimultaneousTuner] @@ -124,7 +124,7 @@ def tune( graph = self.adapter.adapt(struct) search_space = self._generate_search_space( graph, - self.generate_variances(struct, self.domain, self.hyperopt_distrib), + self.generate_variances(struct, self.domain), ) tuner = self._get_tuner(graph, SearchSpace(search_space)) tuned_structures = tuner.tune(graph) diff --git a/gefest/tools/tuners/utils.py b/gefest/tools/tuners/utils.py index 6b46eacf8..4c7189660 100644 --- a/gefest/tools/tuners/utils.py +++ b/gefest/tools/tuners/utils.py @@ -1,25 +1,11 @@ -from typing import Callable - -from hyperopt import hp - from gefest.core.geometry import Structure from gefest.core.geometry.domain import Domain -VarianceGeneratorType = Callable[[Structure], list[float]] - - -def _get_uniform_args(mode: float, variance: float) -> tuple[float, float]: - return (mode - variance, mode + variance) - -def _get_norm_args(mode: float, variance: float) -> tuple[float, float]: - return (mode, variance) - - -def average_edge_variance( +def percent_edge_variance( structure: Structure, domain: Domain, - distrib: Callable, + percent: float = 0.5, ) -> list[float]: """Generates tuning variance for each point. @@ -28,21 +14,12 @@ def average_edge_variance( Returns: list[float]: list of variances for each point in structure """ - if distrib is hp.uniform: - get_args = _get_uniform_args - elif distrib is hp.normal: - get_args = _get_norm_args - else: - raise ValueError( - f'Invalid distribution function: {distrib}, only hp.uniform and hp.normal allowed.', - ) - geom = domain.geometry variances = [] for poly in structure: - avg = 0.5 * geom.get_length(poly) / (len(poly) - int(geom.is_closed)) + avg = percent * geom.get_length(poly) / (len(poly) - int(geom.is_closed)) for point in poly: for coord in point.coords: - variances.append(get_args(coord, avg)) + variances.append((coord - avg, coord + avg)) return variances From 17fc0a1e408b107d0accdf17e5eae181a4250190 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 24 Nov 2023 12:37:30 +0300 Subject: [PATCH 63/66] add ensure seq, jit sound estimator optimisation, minor fixes --- cases/sound_waves/configuration/config.py | 132 ----------------- .../configuration/config_parallel.py | 134 ++++-------------- docs/source/tutorials/tuning.rst | 4 +- draft_run_tuners.py | 80 ----------- gefest/core/geometry/geometry_2d.py | 5 +- gefest/core/geometry/utils.py | 6 +- gefest/core/opt/postproc/resolve_errors.py | 4 +- gefest/core/viz/struct_vizualizer.py | 8 +- .../simulators/sound_wave/sound_interface.py | 133 +++++++++-------- .../samplers/rand_gen/rand_sampler_exmpl.py | 5 +- gefest/tools/tuners/tuner.py | 10 +- requirements.txt | 1 + test/test_adapters.py | 3 + test/test_geometry2D.py | 9 +- test/test_sound.py | 1 + 15 files changed, 138 insertions(+), 397 deletions(-) delete mode 100644 cases/sound_waves/configuration/config.py delete mode 100644 draft_run_tuners.py diff --git a/cases/sound_waves/configuration/config.py b/cases/sound_waves/configuration/config.py deleted file mode 100644 index f29144d8e..000000000 --- a/cases/sound_waves/configuration/config.py +++ /dev/null @@ -1,132 +0,0 @@ -from pathlib import Path - -import numpy as np - -from cases.sound_waves.microphone_points import Microphone -from gefest.core.configs.optimization_params import OptimizationParams -from gefest.core.configs.tuner_params import TunerParams -from gefest.core.geometry.datastructs.structure import Structure -from gefest.core.geometry.domain import Domain -from gefest.core.geometry.utils import get_random_structure -from gefest.core.opt.objective.objective import Objective -from gefest.tools.estimators.simulators.sound_wave.sound_interface import ( - SoundSimulator, - generate_map, -) -from gefest.tools.utils import poly_from_comsol_txt - -# # # Metrics # # # - - -class SoundFieldFitness(Objective): - """Evaluates sound pressure level difference with reference.""" - - def __init__(self, domain, estimator, path_best_struct=None): - super().__init__(domain, estimator) - self.path_best_struct = path_best_struct - - if self.path_best_struct is None: - print('Please, set up the best spl matrix into configuration.') - print('The best structure will be generated randomly.') - rnd_structure = get_random_structure(domain) - best_spl = generate_map(domain, rnd_structure) - else: - best_structure = poly_from_comsol_txt(path_best_struct) - best_spl = self.estimator(best_structure) - best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) - micro = Microphone(matrix=best_spl).array() - best_spl = np.concatenate(micro[1]) - - self.best_spl = best_spl - - def _evaluate(self, ind: Structure): - spl = self.estimator(ind) - current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) - micro = Microphone(matrix=current_spl).array() - current_spl = np.concatenate(micro[1]) - l_f = np.sum(np.abs(self.best_spl - current_spl)) - return l_f - - -# # # Precompute domain arguments # # # - -pass - -# # # - -domain_cfg = Domain( - allowed_area=[ - [0, 0], - [0, 120], - [120, 120], - [120, 0], - [0, 0], - ], - name='main', - min_poly_num=1, - max_poly_num=1, - min_points_num=3, - max_points_num=15, - polygon_side=0.0001, - min_dist_from_boundary=0.0001, - geometry_is_convex=True, - geometry_is_closed=True, - geometry='2D', -) - -tuner_cfg = TunerParams( - tuner_type='optuna', - n_steps_tune=10, - hyperopt_dist='uniform', - verbose=True, - timeout_minutes=60, -) - -opt_params = OptimizationParams( - optimizer='gefest_ga', - domain=domain_cfg, - tuner_cfg=tuner_cfg, - n_steps=50, - pop_size=50, - postprocess_attempts=3, - mutation_prob=0.6, - crossover_prob=0.6, - mutations=[ - 'rotate_poly', - 'resize_poly', - 'add_point', - 'drop_point', - 'add_poly', - 'drop_poly', - 'pos_change_point', - ], - selector='tournament_selection', - mutation_each_prob=[0.125, 0.125, 0.15, 0.35, 0.00, 0.00, 0.25], - crossovers=[ - 'polygon_level', - 'structure_level', - ], - crossover_each_prob=[0.0, 1.0], - postprocess_rules=[ - 'not_out_of_bounds', - 'valid_polygon_geom', - 'not_self_intersects', - 'not_too_close_polygons', - # 'not_overlaps_prohibited', - 'not_too_close_points', - ], - extra=5, - n_jobs=-1, - log_dir='logs', - run_name='run_name', - golem_keep_histoy=False, - golem_genetic_scheme_type='steady_state', - golem_surrogate_each_n_gen=5, - objectives=[ - SoundFieldFitness( - domain_cfg, - SoundSimulator(domain_cfg, 10, None), - str(Path(__file__).parent) + '\\figures\\bottom_square.txt', - ), - ], -) \ No newline at end of file diff --git a/cases/sound_waves/configuration/config_parallel.py b/cases/sound_waves/configuration/config_parallel.py index 0766959a1..b396e6cad 100644 --- a/cases/sound_waves/configuration/config_parallel.py +++ b/cases/sound_waves/configuration/config_parallel.py @@ -1,14 +1,9 @@ -from copy import deepcopy from functools import partial from pathlib import Path import numpy as np from cases.sound_waves.microphone_points import Microphone -from gefest.core.geometry.datastructs.point import Point -from gefest.core.geometry.datastructs.polygon import Polygon -from gefest.tools.tuners.utils import percent_edge_variance -from gefest.tools.utils import poly_from_comsol_txt from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams from gefest.core.geometry.datastructs.structure import Structure @@ -19,109 +14,42 @@ SoundSimulator, generate_map, ) - -# # # Metrics # # # -DAMPING = 1 - 0.001 -CA2 = 0.5 -INITIAL_P = 200 -MAX_PRESSURE = INITIAL_P / 2 -MIN_PRESSURE = -INITIAL_P / 2 - -import numpy as np +from gefest.tools.tuners.utils import percent_edge_variance +from gefest.tools.utils import poly_from_comsol_txt -import itertools -from numpy.core.umath import pi class SoundFieldFitness(Objective): """Evaluates sound pressure level difference with reference.""" - def __init__(self, domain, estimator, best_spl, duration): + def __init__(self, domain, estimator, path_best_struct=None, micro_slice=-1): super().__init__(domain, estimator) + self.path_best_struct = path_best_struct + self.micro_slice = micro_slice + if path_best_struct is None: + print('please, set up the best spl matrix into configuration') + print('the best structure will be generated randomly') + rnd_structure = get_random_structure(domain) + best_spl = generate_map(domain, rnd_structure) + else: + best_structure = poly_from_comsol_txt(path_best_struct) + best_spl = self.estimator(best_structure) + best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) + micro = Microphone(matrix=best_spl).array() + best_spl = np.concatenate(micro[micro_slice]) + self.best_spl = best_spl - self.omega = 3 / (2 * pi) - self.iteration = 0 - self.map_size = (round(1.2 * domain.max_y), round(1.2 * domain.max_x)) - self.size_y, self.size_x = self.map_size - self.duration = duration - - # Source position is the center of the map - self.s_y = self.size_y // 2 - self.s_x = self.size_x // 2 - - def update_velocity(self, velocities, pressure, obstacle_map): - """Update the velocity field based on Komatsuzaki's transition rules.""" - V = velocities - P = pressure - for i, j in itertools.product(range(self.size_y), range(self.size_x)): - if obstacle_map[i, j] == 1: - V[i, j, 0:4] = 0.0 - continue - - V[i, j, 0] = V[i, j, 0] + P[i, j] - P[i - 1, j] if i > 0 else P[i, j] - V[i, j, 1] = V[i, j, 1] + P[i, j] - P[i, j + 1] if j < self.size_x - 1 else P[i, j] - V[i, j, 2] = V[i, j, 2] + P[i, j] - P[i + 1, j] if i < self.size_y - 1 else P[i, j] - V[i, j, 3] = V[i, j, 3] + P[i, j] - P[i, j - 1] if j > 0 else P[i, j] - - return V - - def step(self, velocities, pressure, obstacle_map): - """Perform a simulation step, upadting the wind an pressure fields.""" - pressure[self.s_y, self.s_x] = INITIAL_P * np.sin(self.omega * self.iteration) - velocities = self.update_velocity(velocities, pressure, obstacle_map) - pressure = self.update_perssure(pressure, velocities) - self.iteration += 1 - return velocities, pressure - - def update_perssure(self, pressure, velocities): - """Update the pressure field based on Komatsuzaki's transition rules.""" - pressure -= CA2 * DAMPING * np.sum(velocities, axis=2) - return pressure - - def spl(self, pressure_hist, integration_interval=60): - """Computes the sound pressure level map. - - https://en.wikipedia.org/wiki/Sound_pressure#Sound_pressure_level - - Args: - integration_interval (int): interval over which the rms pressure - is computed, starting from the last - simulation iteration backwards. - - Returns: - spl (np.array): map of sound pressure level (dB). - """ - p0 = 20 * 10e-6 # Pa - if integration_interval > pressure_hist.shape[0]: - integration_interval = pressure_hist.shape[0] - - rms_p = np.sqrt(np.mean(np.square(pressure_hist[-integration_interval:-1]), axis=0)) - - rms_p[rms_p == 0.0] = 0.000000001 - matrix_db = 20 * np.log10(rms_p / p0) - return matrix_db def _evaluate(self, ind: Structure): - self.iteration = 0 - obstacle_map = np.zeros((self.size_y, self.size_x)) - obstacle_map = generate_map(self.domain, ind) - pressure = np.zeros((self.size_y, self.size_x)) - pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) - velocities = np.zeros((self.size_y, self.size_x, 4)) - - for iteration in range(self.duration): - pressure_hist[iteration] = deepcopy(pressure) - velocities, pressure = self.step(velocities, pressure, obstacle_map) - - spl = self.spl(pressure_hist) + spl = self.estimator(ind) current_spl = np.nan_to_num(spl, nan=0, neginf=0, posinf=0) micro = Microphone(matrix=current_spl).array() - current_spl = np.concatenate(micro[-1]) - l_f = np.sum(np.abs(deepcopy(self.best_spl) - current_spl)) + current_spl = np.concatenate(micro[self.micro_slice]) + l_f = np.sum(np.abs(self.best_spl - current_spl)) return l_f / len(current_spl) -# # # Precompute domain arguments # # # +# # # domain pre-computation pass @@ -150,20 +78,14 @@ def _evaluate(self, ind: Structure): tuner_cfg = TunerParams( tuner_type='sequential', - n_steps_tune=1000, + n_steps_tune=10, hyperopt_dist='normal', verbose=True, - variacne_generator=partial(percent_edge_variance, percent=0.5), + variacne_generator=partial(percent_edge_variance, percent=0.2), timeout_minutes=30, ) -best_structure = poly_from_comsol_txt(str(Path(__file__).parent) + '\\figures\\bottom_square.txt') -best_spl = SoundSimulator(domain_cfg, 200, None)(best_structure) -best_spl = np.nan_to_num(best_spl, nan=0, neginf=0, posinf=0) -micro = Microphone(matrix=best_spl).array() -best_spl = np.concatenate(micro[-1]) - opt_params = OptimizationParams( optimizer='gefest_ga', domain=domain_cfg, @@ -172,7 +94,7 @@ def _evaluate(self, ind: Structure): pop_size=100, postprocess_attempts=3, mutation_prob=0.9, - crossover_prob=0.7, + crossover_prob=0.6, mutations=[ 'rotate_poly', 'resize_poly', @@ -182,7 +104,7 @@ def _evaluate(self, ind: Structure): 'drop_poly', 'pos_change_point', ], - selector='roulette_selection', + selector='tournament_selection', mutation_each_prob=[0.125, 0.125, 0.25, 0.25, 0.0, 0.0, 0.25], crossovers=[ 'polygon_level', @@ -208,9 +130,9 @@ def _evaluate(self, ind: Structure): objectives=[ SoundFieldFitness( domain_cfg, - None, - best_spl, - 200 + SoundSimulator(domain_cfg, 200), + str(Path(__file__).parent) + '\\figures\\bottom_square.txt', + -1, ), ], ) diff --git a/docs/source/tutorials/tuning.rst b/docs/source/tutorials/tuning.rst index 298f87d85..eb02cc0b6 100644 --- a/docs/source/tutorials/tuning.rst +++ b/docs/source/tutorials/tuning.rst @@ -45,13 +45,13 @@ Here we will take a closer look at several ``TunerParams`` attributes which may .. code-block:: python - from gefest.tools.tuners.utils import verage_edge_variance + from gefest.tools.tuners.utils import percent_edge_variance tuner_cfg = TunerParams( tuner_type='optuna', n_steps_tune=10, hyperopt_dist='uniform', - variance_generator=verage_edge_variance, + variance_generator=percent_edge_variance, verbose=True, timeout_minutes=60, ) diff --git a/draft_run_tuners.py b/draft_run_tuners.py deleted file mode 100644 index f9ddc12dc..000000000 --- a/draft_run_tuners.py +++ /dev/null @@ -1,80 +0,0 @@ -import sys -from functools import partial -from pathlib import Path - -from loguru import logger -from tqdm import tqdm - -from gefest.core.configs.utils import load_config -from gefest.core.geometry import Point, Polygon, Structure -from gefest.core.utils.logger import LogDispatcher -from gefest.core.viz.struct_vizualizer import GIFMaker, StructVizualizer -from gefest.tools.tuners.tuner import GolemTuner -from gefest.tools.tuners.utils import percent_edge_variance - -if __name__ == '__main__': - - opt_params = load_config( - str(Path(__file__).parent) + '\cases\sound_waves\configuration\config_parallel.py' - ) - - optimized_struct = Structure( - polygons=[ - Polygon( - points=[ - Point(x=94.8399485030149, y=20.40034861129441), - Point(x=85.5624968428982, y=21.059993710397926), - Point(x=79.00084052541479, y=21.862700852017394), - Point(x=76.06076964736816, y=22.476934992526946), - Point(x=74.90849793039871, y=29.131517380279682), - Point(x=74.61676812657737, y=32.94679344410641), - Point(x=74.56239446772611, y=33.69226990738204), - Point(x=74.24162218587203, y=40.70530130547375), - Point(x=87.01622361737279, y=40.96813944432962), - Point(x=95.64079625726104, y=40.78198185566877), - Point(x=95.58245342099814, y=25.459142743749343), - Point(x=95.57086138193173, y=25.035926422500204), - Point(x=95.46231197117629, y=21.849202076811995), - Point(x=94.8399485030149, y=20.40034861129441), - ], - fitness=[0.8770969580695486], - ) - ] - ) - - best_structure = Structure( - polygons=( - Polygon( - points=[ - Point(x=95.0, y=20.0), - Point(x=75.0, y=20.0), - Point(x=75.0, y=40.0), - Point(x=95.0, y=40.0), - Point(x=95.0, y=20.0), - ], - ), - ), - fitness=[], - ) - - ## plot structs - # sv = StructVizualizer(opt_params.domain) - # sv.plot_structure(optimized_struct, opt_params.domain) - # sv.plot_structure(best_structure, opt_params.domain) - # from matplotlib import pyplot as plt - # plt.show(block=True) - - tuner_names = ['sequential', 'simulataneous', 'iopt', 'optuna'] - for tuner_name in tuner_names: - opt_params.tuner_cfg.tuner_type = tuner_name - # opt_params.tuner_cfg.variacne_generator = partial(percent_edge_variance, percent=0.5) - tuner = GolemTuner(opt_params) - tuned_individuals = tuner.tune(optimized_struct) - LogDispatcher(run_name=tuner_name).log_pop(tuned_individuals, '0') - - # # MP4 - # gm = GIFMaker(domain=opt_params.domain) - # for st in tqdm([best_structure, optimized_struct]): - # gm.create_frame(st, {'Tuned': st.fitness}) - - # gm.make_gif('Tuned individuals', 500) diff --git a/gefest/core/geometry/geometry_2d.py b/gefest/core/geometry/geometry_2d.py index bcafcec2d..f0f5c0252 100755 --- a/gefest/core/geometry/geometry_2d.py +++ b/gefest/core/geometry/geometry_2d.py @@ -2,6 +2,7 @@ from uuid import uuid4 import numpy as np +from golem.utilities.data_structures import ensure_wrapped_in_sequence from loguru import logger from shapely import affinity, get_parts from shapely.affinity import scale @@ -454,9 +455,7 @@ def contains(self, poly1: Polygon, poly2: Polygon) -> bool: def difference_polys(self, base_poly: Polygon, diff_polys: list[Polygon]): """Returns area of base_poly difference with diff_polys polygons.""" base_poly = self._poly_to_shapely_poly(base_poly) - if isinstance(diff_polys, Polygon): - diff_polys = [diff_polys] - + diff_polys = ensure_wrapped_in_sequence(diff_polys) diff_polys = [self._poly_to_shapely_poly for poly in diff_polys] for poly in diff_polys: diff --git a/gefest/core/geometry/utils.py b/gefest/core/geometry/utils.py index 95f320765..42717bf78 100644 --- a/gefest/core/geometry/utils.py +++ b/gefest/core/geometry/utils.py @@ -9,7 +9,6 @@ from typing import Optional import numpy as np -from loguru import logger from polygenerator import ( random_convex_polygon, random_polygon, @@ -351,6 +350,10 @@ def get_convex_safe_area( geom.intersection_line_line(right_cut, slice_line, scale_factor, scale_factor), right_cut[1], ] + + if None in base_area: + return None + if not geom._poly_to_shapely_poly(Polygon(base_area)).is_simple: base_area = [ left_cut[1], @@ -403,7 +406,6 @@ def _substract_oссupied_area( ) if movment_area.is_empty: - logger.warning('Empty movment area.') movment_area = None elif isinstance(movment_area, (MultiPolygon, GeometryCollection)): for g_ in movment_area.geoms: diff --git a/gefest/core/opt/postproc/resolve_errors.py b/gefest/core/opt/postproc/resolve_errors.py index 83ef7ffda..1ed468aa1 100644 --- a/gefest/core/opt/postproc/resolve_errors.py +++ b/gefest/core/opt/postproc/resolve_errors.py @@ -1,6 +1,7 @@ from copy import deepcopy from typing import Union +from golem.utilities.data_structures import ensure_wrapped_in_sequence from loguru import logger from gefest.core.geometry import Structure @@ -20,8 +21,7 @@ def apply_postprocess( attempts: int = 3, ) -> list[Union[Structure, None]]: """Applys postprocessing rules over all provided structures.""" - if not isinstance(structures, (list, tuple)): - structures = [structures] + structures = ensure_wrapped_in_sequence(structures) post_processed = [ Postrocessor.postprocess_structure(struct, rules, domain, attempts) diff --git a/gefest/core/viz/struct_vizualizer.py b/gefest/core/viz/struct_vizualizer.py index b490d61be..baf70821d 100644 --- a/gefest/core/viz/struct_vizualizer.py +++ b/gefest/core/viz/struct_vizualizer.py @@ -1,5 +1,6 @@ import matplotlib.pyplot as plt import moviepy.editor as mp +from golem.utilities.data_structures import ensure_wrapped_in_sequence from matplotlib.lines import Line2D from moviepy.video.io.bindings import mplfig_to_npimage @@ -41,11 +42,8 @@ def plot_structure(self, structs: list[Structure], domain=None, infos=None, line Returns: matplotlib.pyplot.figure """ - if not isinstance(structs, list): - structs = [structs] - - if not isinstance(infos, list): - infos = [infos] + structs = ensure_wrapped_in_sequence(structs) + infos = ensure_wrapped_in_sequence(infos) fig = plt.figure() for struct, linestyle in zip(structs, linestyles): diff --git a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py index dccce496c..9abd5318a 100644 --- a/gefest/tools/estimators/simulators/sound_wave/sound_interface.py +++ b/gefest/tools/estimators/simulators/sound_wave/sound_interface.py @@ -1,6 +1,7 @@ import itertools from copy import deepcopy +import numba as nb import numpy as np from numpy import ndarray from numpy.core.umath import pi @@ -87,6 +88,65 @@ def generate_random_map(map_size: tuple[int, int], random_seed: int): return obstacle_map +@nb.jit(nopython=True, fastmath=True) +def _upd_v(v_, p_, i, j, size_x, size_y): + v_[i, j, 0] = v_[i, j, 0] + p_[i, j] - p_[i - 1, j] if i > 0 else p_[i, j] + v_[i, j, 1] = v_[i, j, 1] + p_[i, j] - p_[i, j + 1] if j < size_x - 1 else p_[i, j] + v_[i, j, 2] = v_[i, j, 2] + p_[i, j] - p_[i + 1, j] if i < size_y - 1 else p_[i, j] + v_[i, j, 3] = v_[i, j, 3] + p_[i, j] - p_[i, j - 1] if j > 0 else p_[i, j] + return v_ + + +def update_velocity( + velocities: np.ndarray, + pressure: np.ndarray, + obstacle_map: np.ndarray, + size_x: int, + size_y: int, +): + """Update the velocity field based on Komatsuzaki's transition rules.""" + for i, j in itertools.product(range(size_y), range(size_x)): + if obstacle_map[i, j] == 1: + velocities[i, j, :] = 0.0 + continue + + velocities = _upd_v(velocities, pressure, i, j, size_x, size_y) + + return velocities + + +@nb.jit(nopython=True, fastmath=True) +def update_perssure(pressure, velocities): + """Update the pressure field based on Komatsuzaki's transition rules.""" + return pressure - CA2 * DAMPING * np.sum(velocities, axis=2) + + +@nb.jit(nopython=True, fastmath=True) +def _upd_p(omega, iteration): + return INITIAL_P * np.sin(omega * iteration) + + +def eval_spl(pressure_hist, integration_interval=60): + """Computes the sound pressure level map. + + https://en.wikipedia.org/wiki/Sound_pressure#Sound_pressure_level + + Args: + integration_interval (int): interval over which the rms pressure + is computed, starting from the last + simulation iteration backwards. + + Returns: + spl (np.array): map of sound pressure level (dB). + """ + if integration_interval > pressure_hist.shape[0]: + integration_interval = pressure_hist.shape[0] + + rms_p = np.sqrt(np.mean(np.square(pressure_hist[-integration_interval:-1]), axis=0)) + + return 20 * np.log10(rms_p / (20 * 10e-6)) + + class SoundSimulator(Estimator): """Class for the configuration and simulation of sound propagation in a map with obstacles. @@ -134,59 +194,13 @@ def __init__(self, domain, duration=200, obstacle_map=None): # outflow velocities from each cell self._velocities = np.zeros((self.size_y, self.size_x, 4)) - def update_velocity(self): - """Update the velocity field based on Komatsuzaki's transition rules.""" - V = self._velocities - P = self.pressure - for i, j in itertools.product(range(self.size_y), range(self.size_x)): - if self.obstacle_map[i, j] == 1: - V[i, j, 0:4] = 0.0 - continue - - V[i, j, 0] = V[i, j, 0] + P[i, j] - P[i - 1, j] if i > 0 else P[i, j] - V[i, j, 1] = V[i, j, 1] + P[i, j] - P[i, j + 1] if j < self.size_x - 1 else P[i, j] - V[i, j, 2] = V[i, j, 2] + P[i, j] - P[i + 1, j] if i < self.size_y - 1 else P[i, j] - V[i, j, 3] = V[i, j, 3] + P[i, j] - P[i, j - 1] if j > 0 else P[i, j] - - def update_perssure(self): - """Update the pressure field based on Komatsuzaki's transition rules.""" - self.pressure -= CA2 * DAMPING * np.sum(self._velocities, axis=2) - - def step(self): + def step(self, velocities, pressure, obstacle_map): """Perform a simulation step, upadting the wind an pressure fields.""" - self.pressure[self.s_y, self.s_x] = INITIAL_P * np.sin(self.omega * self.iteration) - self.update_velocity() - self.update_perssure() + pressure[self.s_x, self.s_y] = _upd_p(self.omega, self.iteration) + velocities = update_velocity(velocities, pressure, obstacle_map, self.size_x, self.size_y) + pressure = update_perssure(pressure, velocities) self.iteration += 1 - - def spl(self, integration_interval=60): - """Computes the sound pressure level map. - - https://en.wikipedia.org/wiki/Sound_pressure#Sound_pressure_level - - Args: - integration_interval (int): interval over which the rms pressure - is computed, starting from the last - simulation iteration backwards. - - Returns: - spl (np.array): map of sound pressure level (dB). - """ - p0 = 20 * 10e-6 # Pa - if integration_interval > self.pressure_hist.shape[0]: - integration_interval = self.pressure_hist.shape[0] - - rms_p = np.sqrt(np.mean(np.square(self.pressure_hist[-integration_interval:-1]), axis=0)) - - rms_p[rms_p == 0.0] = 0.000000001 - matrix_db = 20 * np.log10(rms_p / p0) - return matrix_db - - def run(self): - """Runs soun estimation.""" - for iteration in range(self.duration): - self.pressure_hist[iteration] = deepcopy(self.pressure) - self.step() + return velocities, pressure def estimate(self, structure: Structure) -> ndarray: """Estimates sound pressule level for provided structure. @@ -197,12 +211,17 @@ def estimate(self, structure: Structure) -> ndarray: Returns: ndarray: map of sound pressure level (dB) """ - self.obstacle_map = generate_map(self.domain, structure) - self.run() - spl = self.spl() + self.iteration = 0 + obstacle_map = np.zeros((self.size_y, self.size_x)) + obstacle_map = generate_map(self.domain, structure) + pressure = np.zeros((self.size_y, self.size_x)) + pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) + velocities = np.zeros((self.size_y, self.size_x, 4)) - self.pressure = np.zeros((self.size_y, self.size_x)) - self.pressure_hist = np.zeros((self.duration, self.size_y, self.size_x)) - self._velocities = np.zeros((self.size_y, self.size_x, 4)) + for iteration in range(self.duration): + pressure_hist[iteration] = deepcopy(pressure) + velocities, pressure = self.step(velocities, pressure, obstacle_map) + + spl = eval_spl(pressure_hist) return spl diff --git a/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py b/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py index 70c02ddb8..44ac21539 100644 --- a/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py +++ b/gefest/tools/samplers/rand_gen/rand_sampler_exmpl.py @@ -38,7 +38,8 @@ best_poly = random_star_shaped_polygon(num_points=77) # Generate random polygon best_poly = Polygon( [Point(p[0] * min(coord_x) + len_x / 2, p[1] * min(coord_y) + len_y / 2) - for p in best_poly]) + for p in best_poly] + ) best_poly.points.append(best_poly.points[0]) plt.ion() @@ -47,7 +48,7 @@ scale=0.03, degrees_to_rotate=30, rules=[PolygonNotSelfIntersects()], - resize_scale=[0.5, 1.75] + resize_scale=[0.5, 1.75], ) for _ in range(200): diff --git a/gefest/tools/tuners/tuner.py b/gefest/tools/tuners/tuner.py index 6d2c5c421..36c0a8275 100644 --- a/gefest/tools/tuners/tuner.py +++ b/gefest/tools/tuners/tuner.py @@ -9,6 +9,7 @@ from golem.core.tuning.search_space import OperationParametersMapping, SearchSpace from golem.core.tuning.sequential import SequentialTuner from golem.core.tuning.simultaneous import SimultaneousTuner +from golem.utilities.data_structures import ensure_wrapped_in_sequence from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.geometry import Structure @@ -116,8 +117,7 @@ def tune( Returns: list[Structure]: Tuned structures. """ - if isinstance(objects_for_tune, Structure): - objects_for_tune = [objects_for_tune] + objects_for_tune = ensure_wrapped_in_sequence(objects_for_tune) tuned_objects = [] for struct in objects_for_tune: @@ -129,9 +129,9 @@ def tune( tuner = self._get_tuner(graph, SearchSpace(search_space)) tuned_structures = tuner.tune(graph) metrics = tuner.obtained_metric - if isinstance(tuned_structures, Structure): - tuned_structures = [tuned_structures] - metrics = [tuner.obtained_metric] + + tuned_structures = ensure_wrapped_in_sequence(tuned_structures) + metrics = ensure_wrapped_in_sequence(tuner.obtained_metric) for idx_, _ in enumerate(tuned_structures): tuned_structures[idx_].fitness = metrics[idx_] diff --git a/requirements.txt b/requirements.txt index c8a968066..041636fd9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ cython==0.29.36 +numba==0.58.1 pandas==1.4.4 numpy==1.25.2 typing==3.7.4.1 diff --git a/test/test_adapters.py b/test/test_adapters.py index b8fffdfb5..438e5c29b 100644 --- a/test/test_adapters.py +++ b/test/test_adapters.py @@ -16,15 +16,18 @@ def test_mapping_into_graph_requirements(): + """Test OptimizationParams translation into GraphRequirements.""" graph_requirements = map_into_graph_requirements(test_config) assert isinstance(graph_requirements, GraphRequirements) def test_mapping_into_graph_generation_params(): + """Test OptimizationParams translation into GraphGenerationParams.""" graph_generation_params = map_into_graph_generation_params(test_config) assert isinstance(graph_generation_params, GraphGenerationParams) def test_mapping_into_gpa(): + """Test OptimizationParams translation into GPAlgorithmParameters.""" gpa = map_into_gpa(test_config) assert isinstance(gpa, GPAlgorithmParameters) diff --git a/test/test_geometry2D.py b/test/test_geometry2D.py index c1d9bc24e..bd3f7234e 100755 --- a/test/test_geometry2D.py +++ b/test/test_geometry2D.py @@ -129,6 +129,7 @@ def test_distance(): def test_get_coords_from_linestring(): + """Test coordinate sequence extraction from LineString.""" poly = LineString([(1, 2), (5, 6), (9, 3), (-5, 4)]) coords = geometry.get_coords(poly) for idx_, point in enumerate(coords): @@ -137,6 +138,7 @@ def test_get_coords_from_linestring(): def test_get_coords_from_polygon(): + """Test coordinate sequence extraction from Shapely polygon.""" poly = ShapelyPolygon([(1, 2), (5, 6), (9, 3), (-5, 4)]) coords = geometry.get_coords(poly) for idx_, point in enumerate(coords): @@ -180,6 +182,7 @@ def test_get_coords_from_polygon(): ], ) def test_get_angle_between_two_vectors(points, angle): + """Test angle evaluation between two segments.""" v1 = (Point(points[0], points[1]), Point(points[2], points[3])) v2 = (Point(points[4], points[5]), Point(points[6], points[7])) assert round(geometry.get_angle(vector1=v1, vector2=v2), 3) == angle @@ -232,6 +235,7 @@ def test_get_angle_between_two_vectors(points, angle): ], ) def test_get_length(poly, perimeter): + """Test perimeter evaluation.""" poly = Polygon([Point(p[0], p[1]) for p in poly]) assert round(geometry.get_length(poly), 3) == perimeter @@ -342,6 +346,7 @@ def test_get_length(poly, perimeter): ], ) def test_nearest_points(poly1, poly2, point): + """Test evaluation of neatest point to polygon in another polygon.""" point_res = geometry.nearest_points( Polygon([Point(p[0], p[1]) for p in poly1]), Polygon([Point(p[0], p[1]) for p in poly2]), @@ -468,7 +473,8 @@ def test_nearest_points(poly1, poly2, point): ), ], ) -def test_simpplify(poly, tolerance, expected): +def test_simplify(poly, tolerance, expected): + """Test polygon simplification.""" res = geometry.simplify( Polygon([Point(p[0], p[1]) for p in poly]), tolerance, @@ -494,6 +500,7 @@ def test_simpplify(poly, tolerance, expected): ], ) def test_get_random_point_in_shapey_geom(shapely_geom, expectation): + """Test random point selection in arbitrary geometries.""" with expectation: point = geometry.get_random_point_in_shapey_geom(shapely_geom) assert shapely_geom.contains(ShapelyPoint(point.coords)) diff --git a/test/test_sound.py b/test/test_sound.py index e0080ac7e..6bca1019a 100644 --- a/test/test_sound.py +++ b/test/test_sound.py @@ -6,6 +6,7 @@ def test_random_map(): + """Test generator of random obstacles.""" random_map = generate_random_map((42, 42), 111) assert isinstance(random_map, np.ndarray) assert random_map.shape == (42, 42, 1) From 0af93fd580ac553b4e1f63d14743d120cc9da4f3 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 24 Nov 2023 12:46:05 +0300 Subject: [PATCH 64/66] fix test filepath --- test/test_adapters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_adapters.py b/test/test_adapters.py index 438e5c29b..1527204fc 100644 --- a/test/test_adapters.py +++ b/test/test_adapters.py @@ -12,7 +12,7 @@ ) filepath = Path(__file__) -test_config = load_config(str(filepath.parent) + '\\test_config.py') +test_config = load_config(str(filepath.parent) + '/test_config.py') def test_mapping_into_graph_requirements(): From 0f759e991449353ec893aec5440509018093af6e Mon Sep 17 00:00:00 2001 From: Gleb Solovev Date: Fri, 24 Nov 2023 15:50:47 +0300 Subject: [PATCH 65/66] Create a geojson parser definition from arctic_config.py file. --- .../arctic_config/arctic_config.py | 70 +++++++------------ cases/breakwaters/breakwaters_utils.py | 28 ++++++++ 2 files changed, 54 insertions(+), 44 deletions(-) create mode 100644 cases/breakwaters/breakwaters_utils.py diff --git a/cases/breakwaters/arctic_config/arctic_config.py b/cases/breakwaters/arctic_config/arctic_config.py index e66958570..ac4434e11 100644 --- a/cases/breakwaters/arctic_config/arctic_config.py +++ b/cases/breakwaters/arctic_config/arctic_config.py @@ -1,9 +1,8 @@ -import json import pickle from pathlib import Path import numpy as np -from shapely.geometry import shape +from breakwaters.breakwaters_utils import parse_arctic_geojson from gefest.core.configs.optimization_params import OptimizationParams from gefest.core.configs.tuner_params import TunerParams @@ -13,48 +12,24 @@ from gefest.tools.estimators.simulators.swan.swan_interface import Swan root_path = Path(__file__).parent.parent.parent.parent -with open( - f"{root_path}/cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson", "r" -) as file: - res_list = json.load(file) -with open( - f"{root_path}/cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson", "r" -) as file: - border_dict = json.load(file) - - -border = shape(border_dict["features"][0]["geometry"]) -water = [i for i in res_list["features"] if i["properties"]["type"] == "water"] -water_coord = [p["geometry"]["coordinates"] for p in water] -cargo_piers = [ - i for i in res_list["features"] if i["properties"]["type"] == "cargo_pier" -] -passenger_pier = [ - i for i in res_list["features"] if i["properties"]["type"] == "passenger_pier" -] -piers = [ - i - for i in res_list["features"] - if (i["properties"]["type"] == "passenger_pier") - or (i["properties"]["type"] == "cargo_pier") -] -piers_coords = [x[0] for x in [i["geometry"]["coordinates"] for i in piers]] -piers_line = [max(p, key=lambda i: i[1]) for p in piers_coords] -unique_types = np.unique([i["properties"]["type"] for i in res_list["features"]]) -allow_water = [ - i - for i in water_coord[0][0] - if (i[0] > 74.8) and (i[1] < 67.942) and (i[1] > 67.915) -] +result_path = 'cases/breakwaters/newdata/result_PwiOsA2HE2igZUel.geojson' +border_path = 'cases/breakwaters/newdata/border_PwiOsA2HE2igZUel.geojson' + + +allow_water = parse_arctic_geojson( + result_path=result_path, + border_path=border_path, + root_path=root_path +) allow_area = [[74.80, 67.92], [74.80, 67.94]] + allow_water + [[74.80, 67.92]] grid_resolution_x = 17 # Number of points on x-axis grid_resolution_y = 31 # Number of points on y-axis -coord_Y = np.linspace( +coord_y = np.linspace( min([p[1] for p in allow_area]) * 500, max([p[1] for p in allow_area]) * 500, grid_resolution_y + 1, ) # X coordinate for spatial grid -coord_X = np.linspace( +coord_x = np.linspace( min([p[0] for p in allow_area]) * 500, max([p[0] for p in allow_area]) * 500, grid_resolution_x + 1, @@ -66,10 +41,18 @@ # WINDWIND 19.1 225 # targets = [[14,10],[16,10],[18,10]] # # # Metrics # # # + + def load_file_from_path(path: str): + """Func to load pickle file. + + :param path: + :return: + """ with open(path, "rb") as f: _file = pickle.load(f) f.close() + return _file @@ -81,11 +64,11 @@ def load_file_from_path(path: str): domain_cfg = Domain( allowed_area=[ - (min(coord_X), min(coord_Y)), - (min(coord_X), max(coord_Y)), - (max(coord_X), max(coord_Y)), - (max(coord_X), min(coord_Y)), - (min(coord_X), min(coord_Y)), + (min(coord_x), min(coord_y)), + (min(coord_x), max(coord_y)), + (max(coord_x), max(coord_y)), + (max(coord_x), min(coord_y)), + (min(coord_x), min(coord_y)), ], name="main", min_poly_num=1, @@ -119,6 +102,7 @@ def load_file_from_path(path: str): class BreakWatersFitness(Objective): + """Class to init Objective for BreakWater case.""" def __init__(self, domain, estimator): super().__init__(domain, estimator) self.estimator = estimator @@ -128,9 +112,7 @@ def _evaluate(self, ind: Structure): return fitness -# fitness estimator estimator = BreakWatersFitness(domain_cfg, swan_estimator) - opt_params = OptimizationParams( optimizer="gefest_ga", domain=domain_cfg, diff --git a/cases/breakwaters/breakwaters_utils.py b/cases/breakwaters/breakwaters_utils.py new file mode 100644 index 000000000..19a449734 --- /dev/null +++ b/cases/breakwaters/breakwaters_utils.py @@ -0,0 +1,28 @@ +import json + +# import numpy as np +# from shapely.geometry import shape + + +def parse_arctic_geojson(result_path, border_path, root_path): + """Function for parsing data for breakwaters case. + + :param result_path: path to result data + :param border_path: path to border info data + :param root_path: root path + :return: + """ + with open( + f"{root_path}/{result_path}", "r" + ) as file: + res_list = json.load(file) + + water = [i for i in res_list["features"] if i["properties"]["type"] == "water"] + water_coord = [p["geometry"]["coordinates"] for p in water] + allow_water = [ + i + for i in water_coord[0][0] + if (i[0] > 74.8) and (i[1] < 67.942) and (i[1] > 67.915) + ] + + return allow_water From 6f1dcba0f638a06598fbf6668f6bd05e0279fa45 Mon Sep 17 00:00:00 2001 From: MangaBoba Date: Fri, 24 Nov 2023 20:37:19 +0300 Subject: [PATCH 66/66] upd docs build py version, fix build action --- .github/workflows/unit-build.yml | 4 ++-- .readthedocs.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unit-build.yml b/.github/workflows/unit-build.yml index 7bc0f828e..8dc6a0795 100644 --- a/.github/workflows/unit-build.yml +++ b/.github/workflows/unit-build.yml @@ -2,9 +2,9 @@ name: unit tests on: push: - branches: [ main, refactoring ] + branches: [ main ] pull_request: - branches: [ main, refactoring ] + branches: [ main ] jobs: build: diff --git a/.readthedocs.yml b/.readthedocs.yml index 260cd15d7..79342879f 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -8,7 +8,7 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.7" + python: "3.9" # You can also specify other tool versions: # nodejs: "20" # rust: "1.70"

    aj3I z=8(_OH)9AU1JTdjtx%DfGl5#*X{Yd4S4~v2g4NGWRI@~_;S|Qqhj6?w948XB?X#K< zni!Ws0(0Wqe;%{n7`V`v30Pj`XyBfWu7!u+Rc;v zFpJ{arn0#v_oyTpAks(G+2JKk74nkEimJgz0xlX;Xo0E&PL#Iz!^grRC|5Ix?;C$4 zINX7j1FQD317#T+bC*qH?lO#j9ZKALg1wIde)nO2-r-xrrJFt796u4;-6Uok@hE&y zmhL0?Zj#+!-a63@Y8bxr80k7_LV5gfzXgeTYj{YrUT1j{>WQ=j9K`|KXp@+>>ok0B z5_d_V!`-M{bcvy(^NTMs)*9FpG|TOc<)}3oZ5c0n40wlZ!tFc`QU)U@G4o&CNpi~6JCkISuJ!gYheoyHs_y9 z_!c}o8P$GZpfObFMgZ{3>jZ)7)sz!ZIS_%-Vs;~rD$3Wh&=?Cq8=Y-(Fo};i#1l%Y zsA;{f;f=lQYklri6nbjm-(8CMFOb(^1m1!01mb7Z_}m2*mA*5 zqDSrSPTJM>*X0swbXY)rJbw4*Th6ghk_QjD_6;1S+g z>|NLHJlL^)D2@Q`0zwN2*DgOu){>{M(aa)gg2$#x4bgz%O&_ZCF}@?kR}G;L>XbRI zPm47D6w=G#M}ZsjO3R%427eK(0}y9?>f!rLkm72&=iQQsAb%4{TJWob)f{kmkpsU?qH_K%mF%@N z0f~xB9~>lZpNp&>)8OTX*q%AofsFDiNw(t8Hn0c zGfp|6RbA;Qu-y->>I<)fR&^O#6`g9T)I2s-ql$BGk{C^t_E4>cRF%sTgGUY$C2s2m z1y#JSj@clpPV~$vKw$Rv0>O}~_B#SW9dZ&{Xz}4AVw~DE*XgK9Uu52;_^i3)kp<}L z-tiMmlI-va(7AURI#*umtE(;>D&n_#`DGqmMYE{q!S@$+6?gQ&C>qmScsCZ|-FC4; z%{e|0xyx-Wd5rk7O43^_Qg;nNc=v76Ua#O8F6h{&ovZykZR{KbjALi|LI?88TJ)Kv z`B$likH4~@)GrI>asRSR?#vXjVK2rW%O6^NFN9m za-cQCSc~vs{>YFw^-#gsH}{+AxhIU4|eP(S{v^9>E;j!?0(`v7Y+5 zff~mkEQ=^pjDWm4?8hj%`lU~v)tlk>K!bYmb!L4ma|(QGKohW%?Zs6o@zP%UM7C4L z9SMb?V)pREa`HDAl)gH$Mrn2=dUg0_J=&4z@qZ|X95A3D>tJU>QxG4uHJH~L2+!^% zi!(yZ1C-lNXqf;q9)MsR@Ec4Ow67zUfNfSM^gcag*iuA zb9bvz+LYUPi7yjoOzXO9kcRu!k&UD#chTheMe|XLK;lj6lbRno?<9{@$+HydJ&x#1 zb!&fYQEA8&)9mUAaYLNBT-WGE}@P&sR zfVk3mqyPedGrqf>Y#isb(Po#TTz0Js%0KNKL@x-Iajf=kPd_@H(7muYo#9YVr(0I(JZ5v0s}kTM@J!ex~-H$o#@%Di1t<|B@j`LGJG z6dgAC1fb1>1;fBOVrC;`z8_K|FzaZKOd0-**rdpq&0Aoej@*zhji~T_qNwqJ*S)Jk=OMgjExAa8RYgxogS2M4)+cUsTTzq(VU4ei8BPN z>JD(#A8woy8M0q61aqLuUfpejy?msP!kSz8dZ{{{Vs#u?isNnG_S4SU<^+%5@eEl z;8pL-3b+q&LSV7M9T_X4Xn$pqOhWg`Bk2A#nD=RKwFK4)_b%QvnhS3y*B-IV@KKgS z2j57Lya4*jM+qa_9IP&f+&mV@JJx;JO}VWd;=@`jyHg}KZk$CE;GSuvPD%EpP6O&3 zDdd_avo5Ha!SD^5N?mUl$H7aDVwgSJnwVy~|CyMs4%bp2j9iVNJ74cZ}?0Bp% z89Ap0;Fn;Q+_GF|=>7}Ml7#GjH-x`g+zsKsjv*(Co3QI;v$QzOA@Id8ha!aB;9?|?;rIV1eYqI;*-A@9mu6Xx{jqvJj zLta#0rl_o!vG14N1a-|onl9Ta9S*j%KxEh?IM6}2B3_OWt^XZp{Y}F)wrq40#u$$} zy@d7MTch>V6ZDx+!2;HZh|$;JnHe(wLFG6LIJ)JK`H8b2C>SUEl=#_2-JZd6Ly?@s zvpyg=1+t)?sC!5i18?}?mV}N$?_Uj!eiY?#Ph~{*a;<~E-dD$JD1+fu-SmFcxCiV_ z@7IgoukRgouZ`2U@vftnr&KSfcj$d1c}KfEkY}Rq9pDpu4JU!MJyG}GlYw?H^{#xoe|0VILVSuQl3tSv80`f zpJ_z+;ng_(C+hkK1hn5_M{o7p+AbO!qe2%M_NmstBw=E6H>}XJN(N!HJX@a*Vggz$*Z%uw#T3yZu#r5GV$kmZnM2~TpZOr}VvQuRgAY1I$ZWd$RpZV_n^V*zY6A`>v>g3!`| zVHT3T1Mn^-0cSBkAYx6zayF1BIl_uKBl!@#9fTzi8O)6er6W`h9}*2_mIYNO39mH4 zUxc~GijPv&F0-5?U`BV-7b)U2{Ovwe8k%gP(%>e+ZUVTkXhN$RSgDX;yGOGYc_pY@ zP&bqy_JuizwWToYW>O}(6BiPVt!H<&5$wb@PGs18fp=0e>^&3Jb*Wu5tG(K;1DR=S z^#uG9I1UUIDPR@7(%wUckwUCo$gsN4NroNt+}Om8N~IS`qE#s+&HdD040?ZSl`^E@^t zxW$aEH_r>|vQ)UyJd9+COVaComuybmpoEd7Bv)!SDSaNd$8zAOX=IaI=%U-pO)zJz zJRa#g!JI=z;JMsD<*&XP=7C5t!7W8YZ@6u86l-9*h3lA$yLiA{>I~#{c5A4l+{!kO zUe>M7;Q;YK&buPF)H-eV>Pby%(@IV?rj>M_S{V%IvF6Hgg%l$DC%4WFgGFBHTuuxy zH$=g5v$C;<5SyF$78(p3-kLSv7sg=+6ts-nyVW8MH^PJuwjLK#6ITbqojJ^{&k*H` zZqK{QzfW_IXM^5YW7r63pZgr5N=4KSrYih1)34A|8Mv?xI9{)zr`(Je-gfcN%vPNN zMcXTLf!p|JHnfec|7cH^o6*l8=7EE{e8ESDvch_iNkc}}_-AeN5j)5I(zfxMgj`?N zBn{izjlSx$MMj+sc9-4E&c}dgFW^i9nJra&o9`g33N08fG79RA;B&BL2%yeJh}ABf z0S?AyPs8(w!~J2lJf(xQPxkrHQFgL|+~Wmx@tw+H#v0CgDtqVgCu^plBp-=p$4Ir98KgDam= zdBk6kd=yS|d=#EU<#ClSuRTdWo!LC_g(iWSH9@Oj8_WRcCW0Pcsv*MStNPVCLqS8q z`69#2YS~RI;G-HTOz5A${Uluy0GWEzO=!FJ&`o0r_7g!(jH-n*XtW!gA?W?Kfct%L zW@tKe6F8$V62cdv-f!*`^}hSly$GjDeZHG;>ZN>X(@-|y^vxuIBAkeNkD{18BSkpD z))L_~Y^0%^P&rv}V=uZ1IBs;J-X}lbAKiqS;RhT!Y%d_yFBxI4FO0PwdUhNlI4a{2 zXm}S3F-j$9=gs;=i@{8mA9!0r`66z`<9b>vlK5Cs`}>r4p&AbGTDzzOq-R0*2f;oL zjgbup+-)qVf$&4}56M4qxFj_*bkgwvx;o;G;7319B;_jeRl^aGk__t^(qOn(?2dKP z5G~AkUv71>$P--oz#{`IXLdnQB~K?hr#J`QlkAh->mW;w>e14pb_T15Mdd^n&Vbw| zApE0|jRguHZrtsX(uVh4oa#w`(l8L*Yte<1Z|AjWg+TNq6)TfUl{9&!k63fgHscFV zSS6h%dJ&rk6Y!qE$esSx1qO$qjgH}wFQ_f#yJi=9AKGZgXKA7{n?e5Ygs-stqnZfv zn@-dyh!)x{^3K>jd;?Yijugh!gm%G^+A0#rlr%RQbfyD#4=cry+NMbNbpAGthpr|c z!AagW+wOtYkAUp3v8()sA@v^WYR*oDPJ);gJnN!zyWgvmp^B%Lox|65lK2byvV(%qF?G7xi(!K zD78*VZXm86i{Bo@fwCzg37VTk5lJ5YaeovMWb`|th=@GViz4dYTeay1-A9AHJvr;_ zV<;lrI3M-7#eh1IBD#)4dLZXek^%KF+x0H#6@Te#| zHXSeo5laP>(&M7_{IgcF?2a5S+&%$GI6)hNNcleH^K7H5qfG>1B;416Ve&x()ie9) zpnK%m=r;zd2Yw~!ej}LohOLwQweY~RMV$uS_nh4ktPXsoqi=5DY+IE8H6NU&&V41x zRDvS9?z0rp94MlX9E#|WFQ*+R;)jO{9InrpS@qmuvn^J;MG?705#4~DR?n_Bj9m?t zMz}}pYV@bfKLQX-Y>3*}3`1$TnX!&aqp41W(6_bj_9cYyqH=PZk4GSc`k#UDX#%s} zLlM1?%}0B{3ask3`FN35VcKyrn~(L~45Tw5fLh^H!9ZFzMDz<(DL$RiL?!r^EijI$ z=Mfn9=rlI;*nI4k&4=N3phaVBDOf;0zs<+xpU>ta&)9ruZAdbVq%{Gl2bri3s2z4TtE(*tl9vmlD7I2d`X%RlRAAS|a6R+T)O!@UZ3h-QJZdXbmCIXLRv zE%A(SRL;*3wvgVvPdfYJiMttFqQ`uD`N*N>>d1M}dJE(A|3e)g)p{*hrWw@}NOqV% zqHq+w0_M-B0W^TE-@Ho-6wW){%pciK?r@@4>_A#!C>%wv*x}FHk@OLR1-nt-H+ouu z@U@+ydFbrIFiOgsw57NcFn>Bh3^;8Ee0X`!+tY{nqpd^DMTB9R1Jr8HXXzfNd9=oG zIh>%SKRz`MGT zYtH%vC;8eOe34?Ej!| z(uEyZRIlN5T(ZVC2qYRuk95KGSGeQ`Jowik_O}+NK=UVu(9d|J`0)1-KkJXZ)LkN( zKbniiuQLPUfsKd;Lmi$4dB{D+)Eu(Dn-<-GH@{G8y8C=D5%#_#GdIj3e76A}{Y4&d!d- zXOb+(Pw_8tV*^lt7T|`^o_4`7Q7{z_{Yp!X+?(p zmiMVGasfAVe-YnKVzqi_s-8myBS)taCmIYj-raC)A$K!rFVHMRFCvxI$;R#Ew2`Cb z>+MV73&(7TKk}b~&YmOj8z{~Q%z@-}mE~}EpYHHDy`*dYFdk=`46ozf$f_Ftd)oIL zf4T>e?cx~(;CNF5X)}`&*+8P?I6gF-N%wK&m^bY z{h008zI2pMHu~V0{rD;g*GefCw+gd3+isFO>Cy3|t*ctk*AM?nz}jLY+ZxqRXl*35 z@j#tiUP-id6top|J!7Ta14Z7q0S)U@g-jy#`xG8^9?Hl6<-{`{Dbm_KiR;G9^ z4+2oSM1KTkSNuhM_#*X;zlz65Eq0pr@$-0KNsHHas*W}B#UBa!<;G||{_0_%-x{yO z+JMO!zjvSVY|(H0rwL(weEIvztBIept5>VX;FFiUWA6%t;Xl}T7Ph_|r&(IZmGMB# z$;=PlVt(m_nFLQK7Qq^C+6}6Ox1l+9|3h*kjQXpCJ9Q=We_Y?Kt$uZk)+gXZ88!)N#*9 zeAAUO%C)###)v;Y`EApcMwKx>e^WQ66@YQ`K@;iRRG2HWDXx*g+sqAT4%yD-PMqE+ zqF#K_zq25mq`uR>?B!*dTFE)hKh(xYvBI9xfAMCzHoU2TZM&X3_5wC^LJ#wKA0vaB zn+P=>G^tcevq?OHqc*}TzX6F67&%j3+h8j+Qiud>au`u_(~`Vtw{LK=Zqi-Jk`>7U zo@C0?$rSNHOyOsfDWj7qFD6s+lPNWJN?_zvEsryKVhmxHlkb&()RgqnAunG`s{Q1$ zmiz=hbRzBLzakB~=BeNESP;ew-UpStDoCq*pFb61cu<9O1+i_8?i%X55MT8x7Wz0xI(-moU3Gfndfo_FuXhxL+d?h*fJO)32Q22Rk@=U+D z=u#iIq!oN-~i(45JY{+KW_^0iH&&Y<G#^6k zDQ zb&TMW{pDK}1RzVEDzhub^R??CF_8PlCupIz+?lm(ZFE8Q8rVjK8+RM=ku=8bMcd%w*T$3 zaMP;09o+dsdpJtA`=F#<1Cu`R+r|2{$o;|Q7F4A-oToed>YD73q4(BbL0QslU{mH=*=umxX|hq@h8ZpnDEq9 zdTYGPeiWvH6Cd(7aUI#hMpxOj@oYLd)OAi-hC;P2*`Vx;LS0#9=S$6bC6AQVEOM1y z?#=76mYgrT@8~MKwlqD2*5fxb{tQL_G@3tPT-RrraPzY4(n0{!qJ1zn|s(1pL)1Vt!2E8*c`pm7@Ma>suuMim@vOT@?dNAP)j~V7#aYtKd-l+f=}}!A4i<4QMZ$o;k~U z;$C)E9KIsY#JKY4D&T>je%@>!_~@<|jDSuR317~-#6a5E2&nY%EavJ*zR-Iqyk$DR z>PwojI=(geW>uLD42`M*=pIAhZbpF;UdxYs?v+>-7T^ZfD%gzgG#pfV9=YN*wH_ua z(ym1rL8+6i;#d)f?17u?GKtf2^&2Qn1Sf`K5UCL<7&$eNQzQC?u*IA%g8NS5?eqV zX4Vo;=238O4J#H1zR_A5l@vbI@dfLLzvqtOjudY}`h)i|g!Rq6A|(-HXf4=bMYKXO z=?!7jgc4dyia%qeqWYMiNAYiwtvnqkG~Ol$F1DilnAkybd2PZg)ho+{S7Nn58oyVi zS(@*GKqm5Fm#-;qkQas`+o2O1Nx_zIT(L71r>6Ca9^B%5V-t;2G^REc@HOqXqcO!4 z{-}{CLInGGexNXc`<~cH0C2kZx(MV_g!N98*hn?LS#4sdXzN=KH!^QkPe>%%yDtd~ z9ev97ny5yRwCcN^kVwF|(u726l;c)X)@yGOsp=?vjQ zcwMMvghGTwTju1_X~k9V>J#d9Lt5su^ecQ#y>Apqi7qK_yeS?SnKj$`;-L8Yvs|oy ztZo|6T|AK*wI07RjfpNg)#b64eAUT*BboigSW;AJgU|3G<-68*CD9ZTIIG=?v)Y$= zQSUL`r=9#7K!4diO+1d{L1SYkZOFpQxHp=g>uGzcQ3txyNp>p1g$_ z>X(`ER;I%w94%tJc1)2HFTndBkrHdHsxDT2k%Cn^J5G)iyfIb%oFAwbj#yPpb>=v( zZCCpu-bt|eMDk{Z*My@llY^hn57-Mfw)jKurx?OG+yqL_rUc&q)}wPiYX_asP^SL@+zELmC?? z7%v1Acz2UX#C(X)i_#U%j;jZn$AhlDV*DXuqTuAnz=d2syTwNyMP~Y`6-t`fsjxp1 zIH${(@xU8Jk{T-|ZpI2%c_!RtiYWNec6I)AJj*z-4pq`LNP5GjCwywBc>ey#WMt$t z^WXJgn#nvj%~Zi`{mFuT?r-`axTNdh@4!Wz5?SyTBXUB+72c4df$9f1QggaAjmwxe z$%C%dWUfQiboq|kD|b)SOZmQ3jhIM!%jbkQ4A@;T?-Fr<J^)HO-%yY(9emtsp`d zL|P5m1{I=`E`Yi{pKff8KN7k{9e4}0`ZoeV1_B(!3RM?ebwPd5f(dE)yJ;A3wmFv)~+OB`JN# zA+ActI(=Xh`|WFz#C|JxNkZSel}{~JVSD@qRoDA~@J9DLulIT+r{{*29# zV_6(bn81lk4q7uBEJd#~BWg`gYr zw^La-7y<>gJ1{gn8YlLfDcQ$~y)Sgc1gaA`FA`Q{F>mQC%nId-m%#!%5ksN7q0Yeo zCa>PpL4F?PL{yGW&Imdv*mOVSA*(D*(QEOeTj_mmH1FzAMQl1mw5jLtNK_(_g0#}>ZbnBC6 zoFU+I+|M8Bb-|Khn@EC`jO%u>POYOjsPl;jIGZjJ5p2$!P9!=6qitk*?2ax+-jL*Ua0?+T7#t>6?~`?RbU9L!$ouD@sU6?0^y#XavZaZC z>>0cGr5}QLtRUI(`^2U-cgH^y1 zQ=5G*;YftDg`6qX%ThPfcMKv&j?@-zr-Y}aLhzTQ&crbt>w5j%Ew{+Gvx3d(xbR)3 zg%fK|2dc>&4W`CtXii0{Miyy$YSR{GvJv+eO!BMnoV7un74L#m-P`{`XrIrI5DXG% z1J2JRr1(DNm^0@RAFuR#Am*Y6yj}H$k>aCXIiPu5goroPnPpW~+jrTeW#l%Jd(Okx zaQ7$fE`B(RGT$t{gy)}|XZ&(@UR`$ik?4TZVF;ZP7whi)P(zATBD-px50?FK%m#?J zhiWa)Aa6_*--QL3_zfm(ikbD+V63NoZ2Wb;l~hpH6l#D6s0tFV>6wtD=HbQU`Oa>e zVbq$&%@NErj<(&Ww&D1XQ&F;Qi^!#ErH_U>vrF$G-ELJjcXq2TQ==~C(QcHbHf0^D z9Z-5Hqe+{%8ys4rHt}qKr|cQN?yJr`wvy)ft%n*+`(|51>aD@)D|w@AM`(>2p&H)M z^PA4YpR5t=m;1(_*oM-cHawsaJE}9^rx{v`?S1Cj z+15jAAkSHl)u0QT6w=QctN|Kt+P1c*Z7-{Be{|aRD~HW~$hz#oocP)8v2YJBpPgIbnmw_+(0W2Hj}KXk25nt?7T02qu-U`EX6|#F6modlW&*s_SQoNV7Y%yd zWRwj09ajqOnr+QHl*OOJ!)II5w^i1<9v- zx^OE;y!a{zpUT#Db_HMMPIGY+_q&$*J{)dc*f85F=KICXv#k=+ia694*YMF%J0X6! z=Em*opbyQpxP^Sq*V*Ij=j@4{b~^7A;Wn(eoh!kMi#xdP;r9W+dHDI#SqujA^K+xG z6~D#rT}lA*48A<4J|*#R`8DbWb<|?2<;uCeIPG`bb0wB>3D`QLMzm34@@xX9j)DnW zK2d*4zo0i~TW=TY3|g4g_B|-!gVx}}Y-%aY?tbk8F(w#+D7#xdn_l7Q1mC&rnB^&R zS)PR+P&oh2mC5y|7k*#=+NtsT^3&v>bDI1QUp;mG&8Nwao+f|AY4U$`^8C=g(FVWi z*g-cmKz?i}y;{A!@O&$~5h9gXqqRr3B*c%YIZ~TaY8W$eoK<>uBB4HJAZ%(ja<507 zo8Qm+aPi5%Z`PNT)8xnhcu8GSLt7q@Kr;)(@R!i)O68BSW)2(z5w6vq`Y0N>(fW&(!8F6cnnfo}TlF=wN+Ku?2Ls@i(+@su{m8Gjj$ProUU5zIEZy=7rY~ zTcGfof^Zb3Hmd{NZ2p!G_Ey%r++AI>3&Mrj%@1b3n6fqZUP#BS3)5*__QFA1A51^G zW$S}Ow|7zt58NgOY_8Y957^dV+LV>}fYf*IbXC=qx|<)ohEng|IaKpF)U@XyXrY_UJ3WHTic;XB*8oEugu@UxPa}D|5qSOUg;56MT`0cfF#aCn{uQ z&{{)46T5V2a*H?*1uc6@LATf8tZp8U724ph40P!=3RHLEMUcU6$XN@Yp>HJPlI}JU8`%=WVo{fhVgkJX!Pmg=d8+ zeD7$%qs_z0ZWmY{!0HrO&63p2%EY^YX|KStvR7%j0=hQ^ohMPH2pWA7kvNv`+ocH(SG~yQB(Nj{r5A8L1$(D zv+wiuUpKzR0|vgko%hv$=h^U`h;RMFxAS*qUHUA(xop7B=>^y+@U0u3VjG?fxAfru zNJ=^@ zGyc_{fjg7_x!#87x6W%CuZR1EC+o3(`^SGWc&6I$6rUCzR;!swdJvkh%%fFzs)$0j zO%#qEJ$quzV?8kqqL7mWR7>`tD>jSVGK68~Roox6av{qkr^p_zXUH?%XI^8MgQ;Z5 zK$2R}5}d>}cLZ51NSir$8K(}S@kHB|tmHaquw4nnWcGXyf3}g)N(RK72*2!cF1zMW zcqUKjA_PmekVpBFwOorv+w@w=F*4sIK{XjduAQsiYUBs$r#FjoUw_B6DU17Ywe~%= zW&=)95ib^f1Zj3)wv~y7&5-@Pbd=vF3IIZp;JlAQB?%jzBA=?^^`ag8*6{-%bx+ZH zekkWGLb80u8P@KUA-HT$)Gy~!$eQT!a<@cr}7l9x9RfXV|XBu zu<0c$m6@l^Uzzb?*haONyId3X$EsRHqINPC*xOxgYiFP#QaD~TrpVQ@bbCC9(4_1^ zQ&2FVNkEdF`Pba{9#cKjGBc)k*yWn53&+DTOzl0i?#ATkdMU){>Kxk7=#H_gJK5+K zpXsQU(3{!gKH6jeKm7=AvkPiy#_!hHX{mo51>*rl4WPFx>nE6z{>%*5!;eOVu(HuBfuda70KGXFx{8fAZ z>jlr-FZKsdOaJh!FopYp=h?FjJS)7PZ~g2nH1N!IUeo$HrC)ev{;=Qvx%_1Ccx-qs z{+#gKZ^P4?-!opTe$#LN^bgO^OyPd|r$S=yS(#y{;xiqu<^t0{f87h78~cT4=F|Q5 z&)}26(~f)qcseJ2zVY(g@YFi5X}o^->wf#Ee|W;Ca6kPcee1GFR^Kbg?uc#^9 z&-hk|BLx0C6`uzGyU!ENUK{^=!86;2=Y;WV=^vi!ZFo+4-ieDJJ}dL!gglh_6tu-|L|OVGI)%5 zcvfaZUQb7z2|O3u@cfPQn)>JUf9tn@mi5~|KQe{;=^x438Mx~|Cp_Uvrhf+Xg6Fz^ z;c4j~o^wtH&$F;&fM>-Gr|Tc+_0eYbqk~a8-TL*Nu6GxvTED+NHRE2wx|?~Af=?G5YO)}b+27&N_Q#N07?nc_$A$?CfTL3yGwy^lwuoq z#Sh~c(f;DacBui$QWa!Vip|UwU*BEoP^M|puQt@=ir>~}{-1{E77E@xV|u>)>=9kK$1~+$KNa&)-DL=Cf^^bC(eA~^-I6;y6Vs=Z!c%0 zw`O~-MNOQ7-lEJ}LcmXMI*XuiRN?zWQRd%;uPj|@zS&BVy@l?E!f?H}rt@s?l{JL} zqJ>|E6M^ zl+m4EA!Cb53WjJ}1@#z}f6hf@mFyI((EHQ*esPQ+XU^&R=t_jA>7&$JdEAszo2yi~f4rNY0ZpY7lN^t*qRsE`#Oia^3jIxR>dyNvgUg)afcck4M*N^QA)o z(Who>Nj;gSioWs(tEz$w%xo_5hW1|St!(W;eVg;zHJJFI*XJ2FRev9tn(mkL0zM9h zRn0tMWRL_Q51Drefkm-8shJ;#-RxT0NQTC!ME492qMDwuDq0)=8W;w=HGSYM8y5c> zpXyFS&}{ca{CNfK>%W)c!+50|A8+qoAGI`A7rN|jE<`82@V|nW9rVKqtyiPZ5HB~N zA^I1@%Y)YW{|z|VyRSxp;6lInm$>PJem9*O{dy`Xy?_x&)d(1*E=;w4eS2zrC;fP4 zxcE9ug8wtP_>Ckko(A~D7bKWVTpo7X@*9JcpJ`*F*({8X^oVt`55Kz`KhX)w`$}_H z?AVN!y6B^ew5)*0ox8PxQ@2fAYM=^MBozE1ZEPaVJb-3Q+rx*|qu?w^$UaY=JsYtw7H$g0t6zcq=T z+`H-PSm&Z>taD!DS!6bHb8u2!>xVCFgUpC+E#9rt*HX&eP}kbLV$jvxQqzi2qxI(2 z;^)`2{I4;t*rDR**0ga$)(hKWJExmhwwu$2@~RB)hKl(HEkzW5sE0JlG#F zf8)CyH55a?(Es-70I`MPcS_`!&!3>rucefK?US_F!5UgrgAe*U45w&bJ8YwQjcz1~ z2%)pb&DJ>$Mt(Es2J8Q5_t`CO53EgNW0CBf2*=cPF%fyEfEur4{Oc zcwhlzH!5ZwUev-HYUwMqV zRBk=~zsadC^l96U#xK$wBf%SrmlJz4+BxDVBylv|du2mNt|sdlgAv{<>qF5jl*G$j z$QUXxscxynIF|hvjok`9Hk=V&p#*Em&$taoqj8VPbIqMpU6{|fqf7zKb)4k^xqV?i zkk58&fJ zGIh}XdZF}Ny_;=4aW1`v{)4NcEEm|L?oo8FE7ajCwKVf83{4aN8Z~H->9Qa5dF)fz zs@hCpeM^RkCuF_mWSvWvX>ONU+dXN+49vwfwDk(g#2Y{pr++;`9~csj$}YfG&#<0Q zj6TRb0Y&>ntCn9`YgKKhw#tK~{z(HcLiE=-3bb^;I%(d3#00?>rhZW%p?h81+4xM0 zY@#jx5LssEMpb|&6DuaUT=UZP&h2EV<>hwEzse)vW(nL&?E5Qqe;)UMUg$HplVv{% zQD}&O;U-P%vpV)qO0cGHplEA1kmZlO6pw=j%(pIk&YQVjw3-Cu64?{~g(Z*s_28c7 zKl9CA6to_g`EQoQzrg%w+IO!3-SeN%NjC7nc4b33DVi$G zk|?vJNTYh0y5vNE6sWVwdlJh*;D`FQA~Ym8l{X}RX(PcdnO(4S4mSgK8rsF z;r(rGUi=ngHsD0 z*R+MD7gPsRG5g9#(&NJ_Exm0J-$AC}DNNVKhYUU`Ye1!;554^P_QO5UvMj(S?1$}U z0s23>A4d2jef0m+ekl2+=7{FQm8S83f%$L-`{8O9GBD+T^nSRD)$P>#;lEQtNP6b` z;ZJ$v&)g473^@OH?T62^gwuupQ})AGU~K&P`{5X|MNY9FUP=C6gdYBX`{94%e)#E& zXSg5Q-0fJ)^sTX0PfKj`w9LQ3wG_w9+`rSc?T$^PZ;0)^Z7*l$7Jh4D^U;Nief{{j zFa^@sn7eGkHx}NS`#4D=dO0}^6ZPVpB0Sv3?)H2XYo7boMRn2n*#}?Y`<9vc9X+_|6r3V~=^pW&Ayd=z}wwW4nqsaXQ~hiPk#rH%gAgc6oNIEp^dZ zo&$B!@07e`CyFB&4lC}%BYpi+R zhhz2Kw0HHi%d?G~=WFxl!4~-X@k6od;x#6BHMw=Qoh#PI=A#uDJ2ayq)`8`i%@0tL zeP*9Y5a;B19g+rpb>yuXd{b;hj>FmjQHR#KeSBefW1&PJP5i0EsZm$CA$7gcwhFPLln@D~gRL&9P1ha&VB+*lZ{5vyrwbpG>1w8LIwh#sq=Sv*1j zb4rHqbH1H6x>p*oX5G2cdAll_udJJ_qAF95Ua||AZ!IV&|1u?2`z3ZwQ$JHYaV`$j zJXMuXl4HLr`VEDh;zE#8-zr$Lx$G7hc-=r(jk3|a?di)MWZe| zA^pgkDql3}yc5#*IO)gD)zpLNplBcUZAyaDJzg|>YhhTe-z^xv&pU;A^>qG><&{s< z2Hiau)}0Mz@mof7yazl^hH$-Gx;QSunQCzLQi(*Z4>N#_s-F>nS;=N3o91&#PVZzd(Yr zTL5hhFj>B@ z(&^J8iGhR{ZwT2hvVmiU+Q1c=PLfW4udbquhB-OLf4lDUj4?K>xxCQ-P>(S=#oa@l zW1fq0^G-;=)JeDV8EUODW{A57-6{cxqI~U7Z#WjSnlcWap6OEIedQ{!fWx2G!$NLu zAI}NU)t2#ZHmAT@OM0fL!L<_>so9(rWgpdxKWglQRAs)_Suq#1@-~DU9kveV--;31 z&|LXeNTz||H8#_vzkGR+f@=g5&+}mZA6%|a;5|IFg{KdBNCih9YUQDcMLQb5ETi6< zb_nL{EA$FyFd@V+rVBjGHcjIxLqq)T&@oLEIv`NbfjYW4@l&`%c}?A4{YQb z=i7Uudp)7rbaO7}do}PYJp(V$-;xVbUmm>T-(DxRMbBf`Sksw=*g1JRc`gd9!EUK& zyRu4k>)Ay0`?=Dbk`K8D_9C{VqN6;MR=m#?w~Anx6=79U6yq0-KgX)88C#JmNavsP z$b70O%jZwfXU#YQ_JVL9dS71mM&L%n9rnKRtA7J3$=+C?+w}cmYxMUXK~dbno7e>v zH}b1VURk0(f`vk$M>V{7HP^TK2@)VHs*7KigkrquFYmldRO1j+uia2nHhzQ=Q;CXi z&ie)*5*7d_qb07`L&vP?R1Hkl4ED#nXyBsE$*jq^N(n>;dAOt2MZ=``2zZOMT-Jd0 zTK6RrG<$0N#|9}pX_u=w20O#KMt6>&dW0xN%!`%rIf6ocW-v_*ScRT3{F%kv^ow$R ziZ>^Vw{iotbkq!1-Mg?i0Tbb{G`hi8SW1<9+w)9|5%|yhnrIBoMF*GF51zSK+Wi3s z_Xe0mbVbD%ftA58Mya=WUwovK%G0gKMP*Z zKol5^tBrrp0KI6?QF}SGyG>!UA6axl(*8c7y$%H2En}r`B^#;yf5_ck9Kb zUQgODoI?M?RYN-ouDB*~jmwSf`yp`-h0iuKi-gS@lWpb;aIQCU(;pa*+$jd>*I|&B zrNw{kz%$JG)X@Im2|I<3vSteCLtIY;I#H+!n-e!uK&V`kxZ{z-O8Tc{$(lp~d1)J* zO4j#R$rW1BvbxvIe1~C{)wb<9=YWvqFwBxRc7|b=4_Nm4IMdLhSg6J}Pv4Ea4(k8j z(Xknxov}w3wZ^tcdbX%3*5S#0jL(y~kTb)ycO9M~T?^+>2-;E^HGdg5SAJ~hv`;De zU>5Zxyw;D6Xv39X=bhof@H%bqrE=2u3mVW{xK=fLR#T_^IK`SJK>d?gT7fOs+brx0BMQ3v%cl;gq{Pol2&>o3&Beo(SD)>@p1omAj&c`%E;4&`S~S82<6 z(Ju7#bUKwh{x~%_r79nO*OrFHesCAEKF=VZKFrB%s;({58u;y>H-ePRDFU$d(bsBY z$BHOgw2sd<$DW?PD>0e74eHq=b7?Y6<~$gb-j+(#E3i*-y(3t{3aV5_-CZT*Z^dR5#kuZ{{Y^=;Aiql=+ETKs?(X|njJsVAGm4&j@*Yap-SqVphYhrK-t&u& z_X4-V^z}l~2#kZlg1ZkcOkdj=+gscmKg`l~_rbFCwGFX@#k&%fc7yvFoA~RT*!r=D zgPvfBIlnn8Z$n$zTU`h!4UyyO$G$SD-)3g1=#FgB94HhuN};I6nt^5QoaO>+#@3@z zo%Kr7VZpYto^K4-nv+VXEoCC<<@4@z6c^&m2ZQ&n@_7p?d8yo$6ODFU6zUjig*eT) zUKz`uoO)I_P6Q7lG&mGT%m@`0WkVYk(dtD=4%ML-eYU1}BXS31DG*WopfSC#d>>dKIT_sBvkkTR4?lO7 zPa1+^*h%ysZZitjMFu5gYBUp@BV&usM^7|4noKuyv>5as5PP(ie#p-Kin;fU`UO{d zp~bpm9|Gld2d!&4gg^@^p+!n|c0Q-b=*%Og28ppOm;;Qp) z(NKsTjngp-%8I<5s|q9iu?>&@w_Qn=%u-fxPkI|KuH?NUzFhn!4}3vJMnxZSe_uMa zCHMhOkq-fE@j-5oo)_)l2Z2zeS69hYNmqV#@%K|#a3O7o2mvqYQ9|papsA} zYbj)k^tK@Sdpoh-jXAz(r1;E9C=+Z7!(xr&oV3mC`1T+#JE&j>G?rX1?6CI3pccVpc6l0&^PE10nshlVU9XOj`MUTc0u zD}py?t@YFwNx>^*fM~}XTis2nG#~e9IBW`J)CV&fXOrUqu+aU3&ba* zm+|%(7K^%8VL;|B3?J8Vx>9aGL@;oZy_f9by67HH^!Nzw;8A!)!`DVX7!FE_jNjru zKIS;r55pa#9HM|67lLplx`LFRL7nsxB{-uj%3a7k*HQbq_MW*uOP%;?ZDsZWv;Z&lJA-%G zd0Cpl?{oj>&0r?InZc}O>Ry=&Y6g3x6SJOQG=90Zo!b0hxG6}$>D4tLgUcYuk{xW* zJvqXeC2x>qi@&EIiOhrh|4utv7ANtSGx9 ziIhwQcl>?|Itf`D6AqqgK31*dZoGK)CVu!;=i=nAFfxJyKwU#HBrn# ziArq0i8Ko}o5UHtDG=-r#aliRA>k>U$+)Eb9%@JXiP?NORA)K>Tt9WI3EBx+KIOJsQrfY+r8zLZPuXpbIG=G=AI&efr&i+;)-S-{Hz@y*D7< z?B0O(AxQ^=Gl9IH4d^=aa>*{OAK(9~*UpOf$^Umovpenl(gT7C4FZAU_ z?IQLD!~qZa~}Fy8mzAfEe}6s~A46<8(dc z21KD#Z$K32vjOouXtPaRnGL9fd(uX|!L{EFh|J-?H<{U)lk6A!Za@@h>E3{HDZ%u; z19u~z-GJts*H1BfKgX=KH=y-KZqWY*RBPv%8N7=7KW_&2y8+SU|F;44-nve<0sXBZ zpx!>|2ITOMPPhL&f_~3u_MfYJ_MglnMz!UJj0P6|T)4uEh6i}%6x+-uUI0(e1HOK? znTyQJr$AJlbN-nsJ_o|~kE9RUl^7)bo@vBiew$J7pcBtIbkU&e&9|Lx=0*ER)7Mi% z*iJn8IcGil@&CYW<{dWZ&%Mq3;MC`wWhXo5d<35NJ?9MnOPq7SfK1D#$;RpWm)~Zh zHVLI|CUcV^q09vJIWzR%Oj35{4R*0pY%1B5V6uJ-Cvu!P=ntdAv18e@k_R@QkR^E~IOSOAaP`)KxYJwESxlE+x0sHX0wpRM?`E_y-n`nuZ6 z7ph#(C>`yopHVedSJ`j#kXxmP)_+c_gN{m~0==_z+%GI^;f{GF0*Ci!8WVt-$} zn}V-wue+)9A6{}jt&g{U_^W-f40!K1Vf%y*Rnbbs_m1%sCQeD4rum*br;3T5FBUxA z%}JF%#+9QwRJKyp*h)o_!Og@Lc#yGQ>@l744^!rxBDyf!oKZlmX>?f;;c7Oqv2rwkW)6DRH>pD6=oR@ zGP+JA*!MQG7)=d$Uk(1)%B9O8qE~dH)^?gF3NnaCtdX-ODNvOmEVlrnAddI-vC|as<0uPHc0do z5M$Eh$voe#fww(rj{ZvKSte};0#wwgXzHEmrahz%| z-wJE0XzL{aKpS?Fs2?PFv8-s*>J4M7D6`RAO}b!C>)<(h>=MNRnuUPGR#Ym$wmRB& zmKVqFP=0Q2T$jQS2&xO zmdiRdR2iuUy+qa+tQ?ZzIg53i)VaZ7K;^Md-umrL4_|7KrQBMqI8e?o7u9rkWKFUo z3$v_gX)(h+^9)*NbJ3{KliO^kjoQi8@h(842L09~&j3q6IqH?3TDq{=^knA8WCJDb zFV6fS_u;1KPIY9hm5nNr)RBteo14MSEjLvaje5ddO?peTQ>FLis7G`El?>v;Mq7tS zTH7)yqt@=J$3NYSOGl|SJYVnhgZgX6ek(g>w~$%zEfqpI!n~1e#QREx-4RubvzZn| zk=4wQ%o2hBU{~ASkK5g(WwpocLQ>w`ZJ*JjkHch+N?KpxfBE?0oO^G{yk)+WM3C+; z%DoqSlJ5KEGLuV%d>9#`B0(fNvf3B==YI8S?YDXX-H*Uxl{!mj6^BZP) z_Hg+HW&?UtHR1AO0!*~JgKiA}HXzSiwTkMqbN|_VrdYBSBskdAqqf42XXBn1-JhcO zc$NeNyT&;!QxL##gKnYJBP2(+oAmOH))VPU0YcaHR%itmBj|F?GpkKL-EP!a3iD-z z6OeEXNn6F2x#1`!KDDjw5SMzyN!mtV4Y&Ob(*#=fksSUqEmFbUVl5ubm?BNuUJHp9 zogyZ2(y+<4{GyMns;7W4uC-RfH5{a#_>%C#^0Wa^4cE+H+Rp%2-0||S{_UC@ftC?d zX3;V3rGB!OpEP}<$iujmx=}1K-L$=YUM7uol~b}NgW-8d72!afs!d-oAamPghSZp1 zGA`HhjDAD~FByZP@EUM9tL?SWsnjFbc9Qs-Wr&aN7#ic*=n=xBZ0MV{hS(mL`=aqw zB6@@y%`#wbMtJ(yH1jD;PL@`YWA3>bZO5R6m=cJI>vncNBswPj*k&}OA1!WN%AsoT|bMMFxgvlyDAH5HBOe?=SOd&if1o^8r?#dhBD2D|+8O|kf@+LTzlq{gvi zHd5?f?eAy4($|9?G$t2|hU=Q_99&%B$f3oW#vmAH8NEc-U#jf zQfNg<*jps7aPC;rcn#DldCRC}F<{s(Qy~L3{5V*{)a{aCBN(pd^!lPRy($2PdGaM|u_nElUN_saa{>1+hE;6?$0u1E zZ2*64&RRBre~{#fkFIe8+ueTw*l2kTG--uvZmurnrC*F!0vpM-4%***6pV6JlwPR0 zP6i5pOq$h&S%XPVjPITlPAY1!uEZ58JIS6TMbX6nN8Y;tMqOMD-wVk~5Z3>Ktl}kg z6=G9k6pdIcMzWabE+!TJt4( z_@TC&Uk-Qw--RC~MgJ&%1m43WL>p8rsI)Px;N#!Yg%GSfOO~^ef|F1{vfjhBcug7A zZ{!#3JlV@Qy2`}%furN2Hu+5I;Ipo8VNkAsbk^<6L#wFc30td#9^r;YbAGE8&l}X% zR@ae#;1VgqO3}DA(7Gyzg%56l@cmTS@-UmH?MESdKFmlE+0DI2xzy2Cw`*M|7ByQ9|F0n}a+l!#pvRnht->41Z-HTs8o#(~EXu{}ZTTx&mR01c*f( zA;HC*vzBHCa-537D{h;d54{qUy!M_05BdZFJ2nd$8o)R7>G0Fx@i=qr|cY%Lvg>gt`ouzS_$*9(tlh zfDnCJlJXhko3u1IakOfz-8xY>I!qs~t#@`w z2CwyForplCj0?l-b8J^(Ucy9yBxa*y@NN;srhJWqx0SaPUMh>)5;6&+t6+oEMM0<@ zn&?v2w}iP(=qkTY_nX;5m$KnCG>^~flyYE;6+3+W&>X7Mb@!Ot+b^W2)s_sF0#?F~ z4P3@jrUdAug&%l?Y383c@d2M%6h3HNU+>v4U;TSSS^hwqVMP$;^ysUlqT#ML!9|Au zNirI_&4PQ2U{i~f>N!`vNMxBs_oMOP3+b=8aHwm%=&vJpmX&uZOKn~a%=*1g&OJGE znNsdxy)!vVA*&TCd zM6K1{F4pS0$SZ)M6iY4lD8+78#_RMxEMKi^XGtwR?&^J)9X>kyf~%BeEHuA-n<5`0 zI8X~*v80E@xZ+xrFS@GBRQh7oRHoOi5WQYi+_$8-Uh;2tZ!n7tN>Eqiw-hJK=qs}1 zD*d+`L*ze^qDNdiZ@TyMXk+GaWwRp*D5N zQbs|yruT;CO7|)L;HkA8o#(N}+B1LG`vUH*}ujnI8U|@kR^NK*LC@jF4Q11jl4ejIU+GhI;NH6Vsa!;q%(mQ zSY}?4z!)~c_Ohm)ed_9+Y^mGSB|CH|SsNyho*waTkq=J-b9aUdyOBu-L_VwX=QF?# zxdMv*oh!5}-ZidfQggGiNrI0U$#ScZ0mHTuHDYl|1g4^iia1j6m`yn3 zx~K`%HIm=-htk}wy`I*?sDfef$Q{6-h_)rFP*uT0cGxEFKT_T!K}!#SXaK^X_Mx_D zkOVwL_N>5y8PYgarEWF(ysbtuL#GS^f}(;YdCjT-K3mTq%B!@64eRzBNUOIRJN=-bT3Ym1Z4lzNPdq* zBCQb>JK0*(gS$wqJ5`l7Lzi|yGSJ;(rz%V_zV&SxDn@P}ie|32!$@Z9tn_ka!U=MC z70NGFJgn$YdYQaRd6#Ov;D>$s0^($L2{iPqZ?pJ5qmB>p_|j)dG;>2beY5bqS)iji zJw)v}FCv*_?oAj=kzMk&FE)`T+}b}yc;+l7pW!O8y#JNVwX6yAoe;%ylqI52*O+uM zq_w8V-&?%;>%!gbfOkZY4sQUPq;%`-i-iZa))9g1db@EUH~73YtK$0EXn8*MP?l4c zq{4B7IJY0ppTZ4pPgh&Cq_ZR_WcT@SMV6D*Kwo*z2A%X$oG!1*t*Iq%j#KJdOkJO3 zIT22IL;6io#jor8in6OfjHKVynzL$Y!8K|ZvHDzc+VT~Yazc@3`;PL5LkPNdTIKx; zDXs?M%T6?0&!%Ii^-Mx>ZBv!o9jf6{Rb@k~Sc(tVlkpoT z21jYbI>$SI(VGP=oiO~O-CkL0;n^WTPO#*!QW3EY&=S>mAV^|F@#S`#@aF(+eMY&m z0b*A9H)DX^|z4T}zIWbxu5G z51JbnheHDekap{7_}u~7e%QiFT|>+lsQrpCyI$*l6{r|r`IbKt$CxZ^2tsqU{jOC7 zN~5}@;5M*PZByv z_c-@y|6BGaa;0lvf5NV#Sr)gEHz=7fA)$zDQJxpEPyY9j97f^%G_McQOm#Dihq8pP*;m|4MsCZB^ zze=W#0ZD5eGWqts3z4~*6;33MSZ)wLfInm*WD=5kj&c<#5!z@St-ig9I({Jhzz0g8 zl&IrXIJ8z+7iFokHu4y4g1Q~AzUx$ed*Vvv4wO6FEO+U!@QclGoo^uhIcB)dHxNG2 z4A=RNg>Qg70^|oVp>oeGy61L|UQ_4nReOxo>y&G^nXdJ_>RZ^0fwR_|6X-cx1~Htu zay)VggOt?ACxyN1juXysujbv@i@;{eGW?_lRT+_lFi@G@wmD5vBMY&z$ z;#Bl0mIaM#Oq8?+5&1a7BBnBO8j){i#0d+R5r@bm$6{nRhYmZ?31P;bP}{lYwC38- z8vEn+jGrRQkN7%k!|(n65&IJP+U~2Z-L>YlH%74n{Qix)h@%r(&hKBBv(aE(WI=t* zR#RQ?DqZ^*uLo!pP1Wmx1us2nE&?2L%fq;Kn{SWI?O{qJLaQ`|Vz-R-oE`;|Ko-e87z3=6L|!;8tafWggr%t>#ahe%# z9~SO3!!5(Y&2(_|cH2~)W+?DK(QrBp70JEXF4f~AtZ?kY59|&79XwCybvu8yCY8*a zRH9sa;yUFj6&m8bi4U6bw+suv#|-xl3pdlr>IruUP3(FfRhoKHqA9strdiMEekGa)V^I?}rv0H&t$VjqBEak_^P80Y?ChEZq5QL0ROu%k7+e5p zD@y&TkZKg!#U*@~0QZRU%i|Y$*15_*QE*HMGl=V>f0g_PVAOg`xJVwn^u1Wb5_Ob3 z4n-D)BOVyFHMzisYggwn z6sJU=)HM$szoMjHlNC4BuU)I@+Qj8;1YtZ_rM%J+f@}zj6f?pRS)PbpU^XONbp$F# zD_Ug1LIrwJxO=t+HM(jdlwQVMv}V-$(ydhh&Q_Ft0N21Rb@}}lOU!)(fWv*TG019=GtGtRkF|@0oyV|5%YCB3de<`{fBNzkQNb;S_MTM64v<6aGQj21~fTZ=~>snVn)_O*?ZpHxb>k2faZk@JDIjds)b zc%wx{`hwJ_b|f`e?2|N)GzOm{Tlbn399C)YMUtQYr#^kCH&mibV$cqP&{EwWd5!caH zme3v2fL-3!$dydhEKYsbj-!k9Qv;XhUmfJ&)yjBlnTrwwgW50bLdEcxtO`MMNn&*EWtc1Pia>F!1LDq)LjgTPLgRUWY{&GfeCFL_#Za z5=66M7VXYUbP+(QP()wi8}A`Gs1LQD4j3b;9M=&~lw+%M2ULzf<~!7@RgR@|gxwFP z)Q2J`ggVeSZjTc~M3z~ynL}+&l!_5eV@X|U6}QQ1Lu5`oAPiG49yOp|EVOzslc2PV zPnTikthb926axTv9t1_;2V|U(d2}|bPE+c|+ul`!VS8J-GOYI0JvuDu0PZ05;u;k^ zu;oR)IE#0hOzmPD?WG;EsyKd0%9xtAoL>ltW!)ot?MKYC($(5T83X19yM)T(h*8? z;K#xdwkSp7Ad18<0s>GU zSCQC4KDK{Kk$B@-B%acQ&Txy`by{Oe#TgXzTjJPU1>>rf3bAZ_6I*vF72>@(N`)A% zMZGC9ScUi%iPSsOe^iB7bcx|SoX`w~jjAygREWinfiQQL%kuN-_(Z=NdEZXi5{hnM zFtRrWrLabqsH(Lxup7VNc{~$dar`p5h2s*=OqdQ~NZN7XzK&4_E?5=$F$Gg)x?NRi z&&go0p)qzx909U{lKSaov47_46AncJ4(L>zFZ%lMLMgqX47{oPY9-At&OaG;W`l)& zt#s`uk_5Ze;fxf|i$;o$x~c__K(GwW)Hu7gEHs%Kr;uJwp@t|m0;iS-IzLC>*VOJs z>sPj^qTZ`?fBQ9jZ_#^Mi>cwu+&%YigEV|SAfRaL&cj7I*{|U%D!fUz>A=UWSKUE+D+m-Z6_f}~-pFs;Wh1+X`wX=x`8JNK+kf=&QI=CKkYd;Gs@uM) z7QJ8Z-nv#yEcYr+eqb7T{^<3Gvp8lAyMzfj@>)!^Sd`gHlrmdU+^QP`A?Snb22O14 zL|N)uhRhlVNDPb0Grl5ce5m8ZP~VBD`I3G0`K}EhqNUPRTpE&NI3X{mx?0=IgPF!R z!eEgOSKpfKBl=eDEF zc-*8DR27N|Z)dqs04)m=!~Vp+J|q+`MJCHuE?W?~l~!vd78VZ3Z5D+H(Ke|vtE}z; zFy+%NZ9LxLM0z)~>__#JFTkeO2WFF5INv5#@=H_Q=6<3_sH`nhL1s_7NkeG6T)D#= ze<`6u8lOc#jQ&r+|9OocrHb?>ja6=cm=TLn|4^=?cX(Qv>N z*(GmHA)aIYBj?t<6n4CxqK*CCpq9e?yWFTa$w8O(DdYJo*gpQHL=uK&rYLJFC$9RZ!3*jZC|Oxp(PjRD{bg==t#%{6kGj9e#NTdPrspt zomSE9SmJbuoNwvD!i0sPxl8xoJ=rUk`@3YdIBb8s)N=L(vK3ofTB1FU&7?;8tjZCV zEo@V6>aWDzVSf)}{U1%N>ydjP#Qt6-!_XyL?Z0QVHTXExov}@uR$8}-qMmG{I}FISIY8260+v<7TH|4h#ci#vBw8eX~Blwcy|i-tok^hD~e=~3uUKl&ly*PEjW*V&nUSixC`Sq z-8l?xXwM~{&7sfGmU9!8JuaM`(wH+YcceV-xVbW8xWA& zrw3taAZOTMl&4@9ip){T8~NTu8V-nZF%g#+(!77T2SuCQLl9@o6E1-L-j?NzoE(oG z!Eueskl9*aoB)IUvbEdsEzjg647Et5a>)WHnwLh|oy2&=0QA~@kY0cIbQVu!!uk8< z%&b{{K9-+1;B(~_tvs#{<{yxdmQlkS6!sk2=_x((J|!Cd_vuqBf15AP~Q0i<-#I-p>k=2qhYBisuUx4sQSY@C%FgwW6oq}Qy@b4cbK;UV{L*F7+78xumq_VNn zox9)cT(-i}xzBU_qSDddX3(z*q8yv-X9LZpp(R(S@6^vUuafk!a{rlbU{t=K8`L;T zKbT{gIkREaV*-TiX>n5@G%GLBuFZ5)?=izy;6}cs^wf)*+?&H(q3$h)+!4Mq;S41)+>W)5Z7@kUx$GK8_KhEW6NbKXp;@TcDQzer$ zXPQZ#>^alAu3RIA?i9iIS?}&IYlp&D_}Sy-8yCw*6LP%WKOSj16--q#X^%+V@vXiY z{0S*oyVsB{M9V|n3l&ugwU2j08Vb)raFGqAk>r0T#v5a=+oSI0b~h`|i!>aP3j%h} z(7h|i)#=iA1a*m5eW3?iuJ$?FHozhm_{x{W@Ym zpAl-e)4G~a(Pz9#xmus`9_5eeGkU*3pK$T zc+>@udSnzu6286ilAdgz*8v#j^MK;{8^BS^t?Y zMsAalTW2iTVJu+lY)_T_8}9TB+(1)YkpIGguyVz(LsV!sYb84cO7i$4)WlZSLV?*S zES&N`#w*A8gY(s`=w448OMCty*-1MhOetLJd&?ArqV$)Yk3*e<`y@0{pRoECjEx5Au{hxe=^}atK7lK3(sQ11@-6`P&gm*;7FrhW zLaVU;S4o#`q))mpM=?TdmngRSK72YvEI__tBgDExa)eE$^w1>R%Ml~%JqMI)0pAP%Va9`xaU@xWcQH7g5| z$;?svW6MgnMDX4M(_!=~cAY-QtQ*H$)J;gXr`FkU(G=9e+j4E)9(_Gc-Sf2-5OX)j zol5Mb_Ln|K0$H(@`!SPCGFt~{9xovW!5S&5u6bq4sg%1*j+uEV;QGIFQ8fz{ZO9;* zU8r9PD}8H7E^&KVP+tops0eWKu z`K&T8KUAVLu)|tzOibT&))V%S&MOC!Svt7bNg7XS{MEaY@O>eZ?3&Y4%6#;~Le`K?(LzV6+t@y0Q3Z zoGgLR?IV!z{3b-XyMq8>s|E-Fc!$6@&!yhYB+E^jLg?`NpY750pIIVMnDuY`NY(GX zqy)H=KK;rV_((6ihFo5wDS{i$Z#|1bYbbQ0^;!yrE$fgzn4>D7VXA@P0Bw2bQ(eLN zs)9)+1U(i{S8?y;5@5|m-!iX@;tx}_oOQt&`q%=Biiz0!_Ps~AZ29Cw6AizKIbNy` zu_ekAmYn_G#KbKCNZ>XJe4XUGNh&wM4)b>a8~f2ghUfj4vTEt4>y=hwTzKOzGQ_4# z>Wa%TVcsN@#6l;}8Y{b(Jc^PRlqV*AN7a#wiM?D2lf6;P#wFzBIJJnH?H?fmqIGo}VR$k&Z?Uy}dO^j!uuP=0{zD_=qgvryt ztrNY577MHGibm@8y(v4-jiP)=k%ZPBrXNLbWn$8GD!IBsJl{)F_MQ3rQ_0wnNona* zh$bl;b1xh6NkKsAAyqpGx@o$4hTte}FM(_lR~(Y+7#L+7WS8XPkFk|QE3foTD3Y2W zJ*ozIV&bkdrFn7|QUqMNTd2L+NkD_lgq~up{yi?FIGLx}@=A|YjspF}BE3u;G90`F z6mG3P2r@EL7{2`GNz0AHlqFBNeTaLIvhN0|-wd;B)ekluRssQkEk&vMk}i|hD1VWO z7Xxm-xB8?0GIMP+6sY;l)Fx$5OkAh}2Fh0DRFC3nXI#A;bjAa%ePtd~c$}1(_`n&` z)`^aXaU;ptr{QDGTz+omr%2eMH=THT2i}vX1MY7CBIAKm_?5OlV8avn3qOiH$cAWx zya&aYipuT8^mEKg&cmg<5tJ06sFeS@l-y1U1$WWaH_HU$b#O~i4uQaMqiiE{h5;~X zTCR1DDrYcl8%|ax>&1I0S(^f_Gs#-<74epci%X9&om6Tse7s_Qo?I>Ab#q|3IMiXA z5`xX|DIUjO`VOX?dL4YC?R%%IzLKk!H#Tn0N-tvRy>ziGVW%K-fYk;Jojx$Y?SL`El4!OQ$mNz0|}22Gk^hwchHGKe(zjaTTxjy)%aJe@)|Q7$a|7PTw?D}~cYn)t`bGE}PDk))_@51F&+b;_0IK0%Vm zbX|U8$q4BO2EZtPl1!jySkU?AxvE=A_fz#Nbr;Ge6|1yDj z09;X-1g!+?W^4EszPrIRB~%anyHQrUP~=Gj{;IeCL(O%W76V0&RWbJwBh4t1X57IC zeU6$;Q8@B#KIp&GrT?aDf1>!mhJOTT0wLKiPPA5@Iz}}?W@md$38|-eRdA&hoLp5c zmEB63$S7UrWGV9vCOvhXCVn9b^g+?N?2O`(Kc3FFzOWv$Kz~a2l#t5bS@Mdsw|i>3 zW%Q>}I0j7avNNm0c}2yHtWZ8iA0q5A6sY9s{o@*M*&NAnn5F22(}8ml5)fv?Be85-1I! zrm_e$Y*jkWf~1zK*s27fK^mQZh*eHR3wJ{>4x)jimnvC=@G~+Z#l8Do;?TdyLk+1& z8o|MRu3TF<1bB*H5tW=8|53}DuT#7%d~(B07#x;K5mm?JgGz#BlwHW=Q?u}5Jdtx4 z5Hq=C9XZRVAgJKGRjI`SSBpCB2lyuPv_!fT0#CGd2^*k|fdpxuEaJR3C2w;G_HWRO zC09kr)F2ymn_%K&WQzREEaB(!QK>(K4Ai~O^M*1Rc-aL!A|Mo(7LF0B!XI}3mVWKX zWF&SE%*7FTt@|JOB&zIel&t)9X@f?qJA|L@N$qwjQ65&Yk~tt7E?+ITs!f z=fS*B`xe*sV+VgG8$a@SuyF4gaz5f#;~-tdZy z@@`SvMrr?)Cfx&Ag*<##Tw@yC_yQ(!^7N0~(&zb2XOPr!NPVnq8to6+jh7pY>tz@Y zj(5FiangDE^d!G^yuZty-cF&0e+;u0QNGMR1U#FOgfY^Q_|{HNC7dFA2FVv}Pko2J zN4#wOU^#YFuq^{_=5|9l)M}Xs9%64XcN1@yg?dr{I2jBcZV=@p?>@fauDttoxR;wWMf7<^&b6fejAvAflDe-}gaKB4#ZEz(Fse1F z7LE_}5k?%i;Cnk=9_%#yzu}kB_+;aT+2Y}Fgc5{1gufOO6+Y3#mie-kaE^$)AJM|^ zPL~S2G`i>j$>cUs4ZNsu_ud-C_0h|5Ekdf!XIG&Vs~|YZ>EBk6B`4mB8|oPEN>jXB zPgMG!26eUlT{!H zt8kM?cfkRTks1f{KNbiy5(-AjT$0Mw>D^mu5lxj^24Q97W{3-Ld`?TAVK?+8T9ThN zLQAeyf&XMnN0(>bAtf1Q-&2g8yq2h$MCf=S^M42sg@0CU zP?NXtB5hB=D9khwC$jk-&XywVaAnuxu?yepADodLWD7@pt1YO*a*mwG}8Ns zNa<#o->rG-J08-X{n zld9STEEE?R#isyLde})1tvbW(Yf-pTeQlJX>R*`C1S7A8w#5D&}4nhlW6UgXkqpXx{^g+YMo>gi%8fE+)D>IZ>@Mc=T zR%WBcDRFmns>eOyJdCw#4(lDc^wlt~M)NI-j+aEf%cHDPd~CGqRfjV}G03JjjB7Nh z9tObvSziFa#eM$>0G3DumT?#=r05!hk#q1^OXzJ#@ank$6``9pW3im^5}K>2Y#WrZ zQ@{}$6_6tzA^~&$yF%>-7R(hEla=gp@r}i}UJ<*&R3h@1V}fE^zWaz#NWl-ZH#XZ8 z$trZjaLA-hM)^+>h6v^ir%%5M?QxVIR+Igv0u1koaj=z(RKYR4fZh8137$g1YJ#6b zzN`#QbqbRry$}sml2oivz3^?5B$fS_k_7a(RkrYIe{iFS<7AkX)a8Ha66R+RSO|$! zJ9Cy4HQS~jvKCA-%60(szzj`m;vQxR_|1(f|FzHy3%C3gDzeeCYRa*OD6%$R?w1tic)scyku!arj?$Can03okQh1~ zpVC+~#@{z-)s)tD<^uz-1Wo;-X+Z!)lo|=T9~0gcu@u$91;XSlWZZ=B?q_#i2bFRo z%caKUrG0{8~SgdrBD zL@arI${*`&p7=Yd>kVPgVc@+;(!F#|vNbqH@eLC85pnP1iuji;bF$-I9VcPRY83_S zW8ueuo2n^KT-e{_)GZ_=awkl(*qrq4C(!l-6)1eEY!_DSqM7QpCFEbKP*+nO6KJl4 zQ*~?)p_qcr476`Af5JN@{d%UP%9U0Kmyht&iyZKxE&Z|LRq2!2-y=&% z=4@kJT1fA2%Cr0oP^_s3Jx;R0CFo0AVh{1 z6vRgm91MsJw7j5n?>d0iS5PXgU5{}vyB)>h-U)@%>UP?D>KcwZ{(RXO3;rFoHTRyf zeU#j*4fT%W%3|t&N<;+fJ4Dts9By@0t~*L$T((`~~{?jof_gc-nEx zBDo}KPh27HeRk_T`g^+RrYiS7yFe(s>*Df`)OMCW>X<31W;a)f zHO|FLDsq<8)p%QKmsVFD;K}07S;!TiMAkTeiQKkb!sXU(-ur2;?F>}$@XY?F->PfP zJB;n1>G4ubXP~;T?gsmTx@+>R2Ym!^Jls>a%=;!!;pDZ|F1z=X0|So^1*l5Oto-4+ znke11%)6(w?<`gj!~aw1e~gg6LK(b-g4gyEUKdAeVr10u0v}u{7r*V#`0HAIZ%K=v z#gDAC_E({*^}*y9RCiZ3*PeZ!y)5YDlXLMk8Qdt95#%BhDs0kyZ}G9lDK~?{;6Qs_ zL;gppwIR;}%I~NSk_RNZ$Iia&Hwy$C`b$-%skD&`KTxOhY=IXi3D{g@%~`y8qs%s6mNhPHthF!&J#smbe>}Dz@;gXqvwLGj`jTh< zdd3ZZl`@dTB+KgfI{Ru75Q|9#-xjR@{S0~32H{ZM8@-O71*R0#s5)h{zb7lMK`2SE zZ;We7Fl%%u>tfjjZ)NC&gov5RGsB)2otw{DdSOphhSbcGnGE+ci5h$jlHj&*0yf7* z4TBtL#wuV#9U_F@AsGaeP?ChA3qdG{_dpBhxey4{TEG$6Lbds>$ehYeRr+ft9;19B zdE|1V+h6Of8BoKrT(RnGt}q43ZT%axZ&GA(Y?LYB#4x&l&l#9Y?Trex zwLUq6wGjorGv~_hZF3V8m&YK$Kndu>I-PYIZXy3*GF40aS+GUOkQ}DZh>-4AmO<%x zSpR`x@NS6|z~Bx6wBS_15W5PqEU{R|W=^#mf5@F`M}t$hxIcLy78ThjI5u*&NDDO_ zYadg;#HBkGo5kfRUj`33cKZ@|crl&*Z^T1vWc;__U>0Yvf`ZapV@(Wc zX+rneT;rC{NP|MWW0P?h6*Ckv?EGVz$;>#;_%Y1P;YIDTmO>_!Hf2^C=2ZIF)XZ@i zPXyC~X$|^whVk=ICNhrlc>3F){;h|Ul?mDYKq!+Swm+(ps_?2M`j3)xr*D0uGsqfz(DzhhG9D~UvGjH<492WfSjO?@owD$O zJ@Ns=>8u&pExfi!wZwr3)zom!K38#k8W*3(RO39%}3RKAKmSSwA+ieqw=FZm3 z^{C#(El*QXeVrdduF_koI(E9y+@h&5?}`t~N?F)aKlGyKM3;g_1> z*A9fEDmC=}I;@LaMt=3x>{-VBA^HFl8{42&^v=7$VEYw$%egIVPi&IqLK*t<*$N2l zx0W$a07Re6?%1l5h-D#fVwLt2?sdF8DE!eu;m-^T4-5)_Li?d`Vp&6Uy%f+%Hr=44 z&xqHi0MEd;dZ;NteJ`3Fl|AWZRgOKeQn_ARj>;#5Q~qQHmi|b(N=GN&q1=J+OU>{b zhlQVOhF?1@{1h|%iecd=nBf=baJoyH<4w}#4A>Gd#{$Ywyy|?=5;Iy566>1}DQksb zB}&$1>y{`i#9*PIqs}7A*G}zqRdbj}aQ}NA@f;gj-~IX+u`{7>55Itxy5!)|KpFev zzc(rR*-jzigY9W;hg??+h!Ca{In&%g*@NwAS$J2D1mFr5RYtO>B^*$@7=rq8_O!eJ z!uHZ8E_Lm~pO~xs!u$=kqa{jjBiYgtd-_U8Km;`G$62;y2CP{$#E#ZCDA;jOO=Ed0 z20L2#rE&b}HCSQ4GUF^N3&IbnM99r?a-r8!T*$qdWNQ&oa8%8+ z_}S0T0t7IuI~kJXi|tp%##vv@wsf^S%=@|YN^DsgN)NGHRk7C8dJdwC+a{|LMxSyW zmjDR?jpho49jK0>wyVT?p=rBHnXO7@iGnIyzo)74Gfn>VXCF{zt2P6?>=ZuFY}KB5 zjdgpjlk2pJ7YNnwP3}fVxVnp5xGy(z=XNJ6RRlVZVJiH}Kow?>Iv1gF9C_6C6Q}@d zmbR?)NaH=V$~IM5<1KjD^kH{ug#_*LQD|S)-DUHlXd%w?@r6FR;SE&Sp|<$h!Ubj zhuHGV2icPnEZ6p=EGH|JQ>LV1WGjZ>ONQLXg{7NTku}ZaN~am+C#dDVE;wpA=P%1s zODxONqgNRZ+yD|YMQv}Zvl<_hHaY#f%Ad+6PjoOB1&L4Eq{6&NDY0v={CP=#(ymQh z^6g^^AA(lqf1JpE?la6^+%U$_sy;{xq}6aVy!wf_+Q#7njR9cX>`rD#8N z#<|&~(QtJ1Q9+5rq2!M!Ie&j5REHB1MR^c{D#ie@saMuqgriN<2fi2?f)n+m$X7#dDMJp3|kw30cWN zo0UAMn8GU*o1UXt`u^coEd3>tPP6ovz{6iMz|yPF$cLJxKPH)C=?9s~QP&kS;fl^G z0a8X(^OrGvE1YJ?(=)^OnI|C!LvqU1134=M-(W4HS5e9XK8132+sPhTynOXw+%2dp z9pshyeuT3peWrpm!u2VCUQ$H6HgP`>;l8HgHNvH8ze2c+v|l0IbnO>}JIqnXmq)md zuKu4yxIz0(u~n`R?j<|}2v-0+gLZjF`Gc`^k0??wR6LTVA_v4%=3X}fgL4^|`TUVH zN;^!M$rjW}z{4{|^Wir4@gyeoT1+*f#Dt7WVuCwZVj`yi)3>7P!@Lp+3L>FA;_dJa zxv6zJT(nIHw{zswGZS=5plYret~ z8x-CGPQ~^r$zhb>Y1AVePGxRP=|HLhrcV{7%jLAJ*mGvwnw`%8^;#dE}7*0=|= zq@HkJ)jk@4pkt@6Mhb}WOP^E3(gSZLY?-N!f}7kTC*mI}vmy?!W^ZN@Ux!Dj16sfm5$ej3G<;4>`%ujG z!BsS!!9K2OwoKK2<-`5sC%Py#r|IVN(ZS>T%+x)KIR_7s-DOLsvp!l$s%oswwm{)OhwQi znDH@1P_1b(r1Mq3oBE$4_Il*UV8W2X@b z;^f)VE$pZn{fdef%?^3YF_}e=dhdX0FNc2rrflWa%4TaZfx>vqYX59vuq z)q9*-H`Rtas@mmLoO0Bw(q1?KI7Yn)EK(kx&Gm$3P{w559w3J7wFRAOuwWjB&wm7oHop;!pqrNeH zUe~t(Ug7(@gNRD3s|byV&G`N$t=Ka&Xq5egQE;ov7{cLrrZl-{hF7l2i3=9al<~NS zY={h|2^WOIiG75ZT(?5wR5M8*Yn^_pRb}K=ZJp6)I|I-Wq{#!Y30?ndglzPs^(0lJ z@Cmx3mam)dn(tcRTIep_>qP}o7U>MmoX@?tEgGoIkdVNCxN))r<#Ux&DakS`$|Wv` zhe0Z==RHWpX?5;Ext*|YR;&+C>$m_+tcD-pZk@ZraZABT7K}q0WpC3To2Xhvw`3bxw_Cc$ z@b&S}McPs>pkbLU!R=4~6Co%MKEN!fW4%ZZGlv^g^9EgUp_a6QWISe{hMJh1cM^UYjtQQYxi=?zFA$nYK$G7|-$Ic#^v- ze>0h2*SB0Zx)v|4i8{8p<1kpTi9(&aP&v@fu1w#>S5C#L?m+uSb;KTMk_rHihqb@C z-in^d3MUOab1~O!0xObTQ68pJ@lnSLiUbUI!10xQ)sqF|%@K(FL6FX${+B1DukXmI zI4jm@S_+2PDSTU=U|G3T6>GRZy-a1elnS55H>k}Rv!}stliI!6`t-_^q=PJ*t&w?D zz`w`?RM@rZBG%=at`*``blr**IUNk|dWDj+u`p@pl#FD$Qz3Ny1XxSCh z)0C5X3C`>vmQ|Fzet~6bvGIKGRmKaCt1sSUEup5Xe)vd5DUrtWWiOWOxWM8n={#ET zobpy)ejTb1mD#gSXg%t0pW)v<%jNGF6WDJ&|6E1JPK;t7GG17#eE!{&OFP;@DF6Fo zLJ_Mg)IG-4v`01tAI4=@B)u?qJQpmN042Scb&GN<9^cYV8UDjjqwI3<&K=m{_IDcY z(2;mGHDFn?1HX}$bBURO+rgqj-b}rjLCl%VYp!6FV^JYPOY~B*4vAeQt)Se%H)pA9&9W=Z4F*V1Q zNV*E^gvVu$wS#82WLGSvD%+cj##pYYc%-wv^#TaNOFK&begP@wCU2ainstv8tc*4x z*aEDY0>COSAp(87TdpzwTGrV`Hh17Ur@K5@G!H9Z3C7wFQO^#9(pvl-z3ycV+1UBw z1nAEAxd)BnviVBq&L2*2&um`Vg%!#C(^LG!lrVg zE2Y`rIVPnstp%V+fA`nu_a)gCg&A2?zF>J)VA5Q7H0+uA=E@JV1BDqh_x1d?sC0D} zW-Tk`XUwUbG{=1?Y*1jqSrUK+ojc>dkA8V^{5>B3=7j8-eLx+UpV58x=SPoDYoLXO z|1+pic12ExG~ct_6`169>$U>{*0jrmb1K(9p_{#}zu8aY^8^}3Z1xsU<@LJR<lE7rKLrqZjIUlo|-@Ji*^!LoB{L^Wsn~sj3w>&ct zKaY+kRBFs|L+WQhHcJ3F`bb?62N-<7Ak?!>tZk5CmFTeEK$xbLD_bXkvZ;wEA43Hc~US( z-H~Us#~XPH&y}&c!qXrR{g?oM?+M03a-IdIxZN}7d-G3oFRSOn>rN3>*7&iWnN4e^ zM68m8XyXS*1Qe2_h^;#nZLED?!u)+qhG+3*R%F>Z_9-~Yzb1jD?r|LiB?@^e=YbZD z#@Yu711(aTWG;kdE(FPOcM^Syk0v8ym1-1yfgH1z7fZ(W5~}tj+q%Wj%!k2!_Z+$dHNPaz`arV@PBvNkrjI zU43SLr>O~iiO#jyT{&qi(+1QwUbuWNz+ZknzSVO_<6V9IXxGe!mC)hE?##-}v7=m- zbE7kx48K80`9gQ5M&jW}1hs=1k3IE#8J&bu=Bhi-SF?{S7NCUQ>$jIu~x(z z7(-(ee}`|_D9Qyff*8dbPvtdqZ-cS6gfO}z1)F$dQbG_DJ&I~tXVQgpWCXtnE%D6U z(m#SH+}ReLQ#pRN`%oxG!njH&By7>(Io&2CEXOS*?DL`-JuK}S{>^|Q<7~Vzel`O) zK7)Z16TJHb1tL|%%D}xy=U9X=r-5z_cV7&;xv#85JC{*j)&R(t3&@vWgKza5HE!38 z&Z3l^GHzE_=2;lGYoe?cH(&q?8lc8&ks2@W(eA4x#1q(lWyRXgy$lkyV0|v$U19ft z7hI?=Z*du!Jsu--d-v(?WuIhKy!5Aggi^dXdbALmy|+W>12cxM?&Xg`MqnV@fm}0? zAFm#7DNKWT?2^VP=Fye+ts8GxT$9!ixrlpBT_-1#w!*sp5xAR5$A3_4K9@1lcU4kj4&`yuDjS~N(Kz{b6k#tSg(uX&=Sj&yYkb2 zBe7T_=Coq;EmCA|>glS;N4CdcdKyod7$x%ThtC4jn;-P8DxgXASk z@U&BbsK#;=PA-agXYl8C>J;83bNQl)$?g?8L?r>zWOs&{L}C%Ms)uRF?|V=<5M0r9 z*-q|HanU9cV^MSzH}7y!OBuL%O1zx*ZqWH0a>lzs)bq(B_l!2kB81z=pIl5zf2v5t zU%uV=*Zp4AmAj2^4x)U2{Dn%J$DwlGx)SZ@5|i&JX%VZ+Gjej#NnMmg-zHBkKGj4{ zgab7mev;%0IRasIIY?_H$L`ZOIpbeBpJJN$Yva%Mmo*BECW;sRuSSZp{g)0?eluSA zs|SU@to@>e6N)?xOGjaeZ8}gC(P}8n+QfHcrH-s8pdoTI9~yT>glb;7xk3ll$Hi{5 zEdixNkujwmpGG0Hm5J^5jj?#*wjg9L3T9T!o0M7MnygIiIj|#ODG7Cr%L+7S8_%}z zSI=Lt;x2o|z2mb2t)9>xXHHyWPF!17pv@EN=3|R10HQy8fOJi+z!AKM0|(uq51rX@ zTQUP%uqldfTaIAvE@$?*8q&38R(KLB?usXMXdkhynY!fcxOZ~mc4P-$BTXX(^=4s0 zmHY%|1$Ibvp13|w+!0S;zgZ(jR68lOwPKV@S4yk^p^E)mcHC>E1M}7D4i6Vxp_HBQx-t zRx_IAQWqedMmbUni>o!Fl>AvQoH^sRC|lxXe-hrnczJtuB3uHwxux}YdhmW3&$@R zKHPM1N%sMFaDjs8JqXBswV~bi&`}{Ga`#WrBpllJ6;KG=^6iK_nkKjZ`vRPAc#n_( zOjTy^#O0hJ+4gICiGztC{-g(#Ux=JghDnI@lT)u(Vad~Pz#SlXoOL)jsyLsEWJBrQ zO(dh5)K76?!v`py(v7iBI-N_8P_H63Y= z#ogNd59JgPbVZSL$^c=rmM~4M%kL5N+Li?hD+@wSSQe2r&rmGeG5V+fB!3}S^khl} zACg*F#>z>7m~_!%XxSRd+`Td!soCTkCWo~?8OOEoSt#Z zuoNTg#eJ&C5oes5V0zm9-@;y4X)Orx?_)2L|0VX~l*(h-i-|f+u@q*!@}E8^{43h8 z*^6i355SSc%XDBrdvOupk##y!vlo6oj$tqIbl~yX3s=SeFWHMZKl~Tii^ZSMUVP_x z>_yWt>_yMNi@g}l@PQub;{JQt3$|QqgwWZd0YT%5LHtR(@Iz19g~uRF@fgplu;l44 z;Qj+VMv!De^t_C~5FSJFe=d*lTM`_H$2eIEQ#{69D>cOnsM1EHc*A&%{~P#=lWFb0 zkK);d-;_;E5ZC&`gQ{$K+)0>Ec3a11K2Cvy@b|MNius5mC~`hOM%lT-UmTD57%P$g z2=np#e+Toi?BBqAoHdyFsCq!~ZkxQlI3n{=Cah3QOrrG%O81r!6cgxpZ$O2BdueGc zs17WiTlYQgOR8rGw|Z zB7Yo*(u?Q90WCqzzuy}fNXraPRL8?QcivPT%|6 zTX*)t?cDDsgbNeh_Sex1c*3#m2V;=+HK4R+eOhwd;G3@8?mWbl#i;G&?XK(2+g_K? zBihUIdTT=`=WRnDuP)Bp=?c`7?R7DEz{`d^Q8d8!c+hV8xQK81)&{4E?^oNotDj){ z9uH17ePzL9)3-J_Lwudh)jPO6u}3r*nwul8P{dld(_2<={|pVkGrZ5$PZrO8dFxe( zE6Pa;0P*yAy+uXXU#d^Q3$_M%pNuy|V-5EEwi$=qq+RzPo zJRfd%>?{`*j2pafqs#X)z4PcZJ4AKjE$-<1YWb`Vp{=;E20@*v8aN+o337jh9~l^a zZqDH6b}=F#Bda-A#;w+MpYQ!z*A00es2b_Drdrp@-cM?0@2~o(Hr!mbO)3%_`~On$ zOILoDu%%rz11C!pX7|1PY3=ONs&^x2B0=oeEo|h>V+n^~$6l*Ut@;il5B@xgE0A;v z5=CB>`9ADC*&TRKiSw1vFm@eGPYXRCzFd6deT-%g(ie+-XZn!&7Fo#Fd~p2lzB%L@ zStEMZ(VvL%VkOjl_&X75q{ZDmF`^OE>G!a7MgDO=L!Ia-gZ}JPo3*7-6SF`Zp&5gfCmrsbp6L4DM6yTz9$8sxFa8) zLv0*XcuIqky6dj~G*?S~%X+c{2fM#Itjz4d0Vyx5KkXShZFI9gnqoXG>NkwS!#mOX zNNcI)OHNR-E2J|kq%$j|Gb`v!H=oH}>Fd#mQ^_{Y)M>lUBWNIN*BN}O1YKG6qb%!= zThyQ|T@0x%^BZQF+Xz|LUFANs*-3~|E_Tm3!O&Qf_9_}ZH!Ty5p6eyNv{q1!oqf%) zw$pHT#k{8Dg3xv0v!gBRbT`LedAx2ukwiL8`|Qyg9SXlX2>SDmfqt?;AL$y>rCo9T z$!5?bR=sRBynFvs(!NAmcZHzw@p>NIEASuNzOLK;5QA}qJI(^RdBBH{3zr3`4;pw%AGR#Ikt<|d7>Cq zyopaqnui;x|NZEKdAu??+PL4&xA6kGnldG)Yi5g4zE2Ptm9=RqP8ZiqSd~0lW0ajn zu-hLR?e^D=_V|NGjj}Pi(D;HIDKy@=Uydm^5+)^6tQ38-C2QvEM)?6^vZUF4rH{D9s=MRq#MF5~pjg#@~2)JFFMk@A1*}C ztKi1|aVxmK+vY;QAk0dcyx5gj^GV1s%5Gp7GJiN<+V1)Wy~k{@lm!dEDl*GxW5HRm zRu|T)78jfpYpsk{;Y;WXn5Cukmm6rJnpkjJi}8H?iGVceJVvKbOe7>{2ZHWseStHx z^14wjiAMQKN1sacSj^9>!Z!^RKB&M!l8ROa))5mOF`8dq(RM}e;e z2V^3O0;LD_9W-U4^{!}xQ7*SGUDZ-Jsw9Q$u^@`qm{2g)DSBTgQsYGatjno&xp60_ z4L5c32LkTw;*Vojv50Z!^s7|-r&~$0hj@&IOFBW+omjV%bf0oUQNX2#H$w_>3vY=b z?M8vXAL{Y=!ys)KJ-c9!YT${|K%-LbEpSw=sgYp^vPc3!0H1LS|(Keb;+hW~H0k>({;F zGOpr%!qZ%pbDWvRRm~c|$dM8Pvv5_Zv0{Wx7DPjvm2(c&Gq?p@#Vz2Z_svGslE&fI zgByQO3vyQfk_5|V0;uAe*|;*|i3=agPYdzQ#;Q?m^)bZN_ z^aVEKr8A*3waFARK)-eV?5S?aKiABxN(yHSzvBs@Mc^Nyh)hlYzqtP8BV-<^KU+{8 z%^7Pnf4oJMAt-k+e2~{@;Yp(6hPGJc>}a-eb+A8AH+clgWXY)e*R=qMfckHo){`#k zcwnVyMxKC1#@%DpU^rbjq8jWh9B-+R?vT$x^VOBB^S`R|16$Pb94+t!;-?NSBabrv zPPkb{o=jsI-(%|k2{4XO|1Spe4yhkyf$57*vQS(MU-qKFl5LK!J7CWaWF%w<+-Q|% z!njph$B-Jm?rAtO;2FZDPD9hJU>=dDOCjOa z&gyvZBkH(Xl7TMMOmvx1L+PUl?B0y$Q6HYa4(cy@3;0<41!pRAr_Rj@j7If6Col&n za}|U)lSe>v_k*?waEb{P(6aFV+Vp<`XzL}}aL~R(paSgz@%$ASKlbAJi#Z+wAKI`T zgn?uyl7{msHhTrv!rdQ{Q2ca{?JOxAe=16-OIDqzx(D=_QR4}8sIKt@<~iA%&|6W* zIg(f+DRZ|}*NA70ctXSW!>ay3Q1M5N0OBQ)yl0+Em8(_t%>}dY|HAa2r$%SQ>RnD% z_irVouG{fl{M}n=^F`uehvMj6i08!t{T)3%pMyV}$w0myoMZ84heVqAbJX;I!5|p| z-ta*RlUEIrPdxu5{v?s-Sp1n~f+P5|%=CW&Xa$mNIA~ubP=WR#k}`!qe-Y1M{P{fm zM#sOJ!xy@cDZ>e^%qk&CZmvx@WeTC^pB#0JI;QHu_z5q={Fy8B$D0#45oFPG2UUx~ z#Y?$!hn8CftV5eL0{(f>S`4%^D;1;=kYp23_vQ=*W7P3&DMyfM`1z^E-+JH>m28>l zx|E?{oHH!@0DYJIXf;#6?j|(Q(^`a__gB3e$(y>D0~eAlJf8qjB3-A~OUWODUr5x5 z@K;gDapC`>@spjw7mVLLDSrs+nB&)fd15|dkz3%QveMY?S$~;3-lFc7AQDk5AYu_O zu~LSU>bM;6($r}LWIp)PRCzSqn2PB=PjP{d+PB-!~?dO_jSaNS({3 z&Xpo69T#qu_g_*cC7 zxI8=X0b-Il{+IR&gw**{WETS&udOIk5wkaCUNX(nHJ$uwSE}mFhTm{T9bKnNl`Jik zsANXxQ^cH^>s3ahOhk!VTif+A+$R8~o|1{aYsDj}?sG3;)L>CyS)-0#URGg!*88S8 zfwI&LqCL?~9)F$P<3D=w>Q`O_=O(8;Jp#_qdM00YoiWV$YsHkYsQbk1pi;_)t6TZ{{@)^|d zCA%z0_zqv$_xGDQy95dLdHTPux7YQ@y{t z&OsX$&)X#A*EeHE3S)-rk|OxL=_wy0ER(z;SX|zL_LT_jN=f@%l=d%zc5knZv^d_4z#@@v{y*lScEx`Ae2o) zx89abjkLmD3QbZ+c>?n#TxS?(`m9sn)5_WO(7Lfg6Wk$|X+$GMml{s_6Ac-S2@9m6 zF;%_?0;CP{#_yZfq1W{!@f;-Vw8^$P++OF@Yb@DpD1iB_?ef~R(vztZcB7kDm$Px8 zB97v#PcRjWKS-T>7lqu3^Lytun0M~tl3fessXf2VAYqzF_+igDOYpyWYX#@|?B9dR zhI7`#H93Sv=f8LtioW5I9%BiXE{ZhQpjAafT{wH=fwMtQ9F-}$6t8hTV(q`|(Y^S3aSWnq!hY~~8a;3XK@`@wtWJKsP*!Tn zDx9oPl_9nDAEMGMfpsp{)pMh<4Y>oo7)OuW0}$|dex)2=5vp5qQC6%hoY{Y$_<)>nb6Ome}*@W0oh64+X zoNz=XD;2*5DNO%P&t zDvFdf#^Oq>#lLvmjykG&5)ox}YnP*SQCSn*X39C4X zwb)^r1x2TZu0M{Qw6%!ZDx=o7WF@YU>Z+Dk8e{9#PKi+>0*!7#S~eqd#Y8v z#QaeTATk$WoPFt~HemTZ8WNreIbuaP+MlV}><_RIuHpD1*702Zu#SV}9);$l_N ztF8~w&?|oltx^{(CMjagGIH4`#1+EPSR`EGid*Z7Yr+Xd%nB?;S5|lD8eLWQij_)5 z2pBHf$++TOMt3Ze#jE;iR;s6rmF(!h*{s##8&$kph?X$UNgbgq`btR# zC5j#PVp+N93cF$Nc^Xx9`VKw5CwlmjZz8#nLFf?HWYN0U1;4^v1Ntx{QDNO96-JR5 zj-A;`WE1GA(Yqx9;XZ2f+ zZiaOfg9X8gtK3yLV)j?j5mlOQpK%jzd??j9OU z&@J=}f`rhG1YJWJ1YJVc5LiRK3F1Sz#b)B>xKIy**pQU~?PYwEsa~!Q9;!T6+F*kPnEnL%6GCqK(Qa8{7yW1fRDz9u ztaef_H`6Z)*+b}|Es6M~5Uw^^W9cfFa$A*Kkb@^LTx#S6aBjK_hTe7w`*-<UE!-VOr>Hp=3T@< znvS_K8#B-Ib5kk?A_vZJpd=hOExLi{c&~)U&*oNoi>0UwKE?CXj-K?y9av()oJ1JE zBrb14{nx!$FqA@i~V>(4+YL>=yipJC|jp-DP zsaYD+DH>C=G^SHDre|344`~dopAo6kHESR@S*1d1iprNR_FP zidFxA)JVnSu)pAc2_szAiZhl$&hcGFO1AwH?5Kc}mf@IV|CNEypN%w+bLYog7HNeQ zasL~J#rGG|ug~FeFirO~2{3arfJ?7z0kG?y008cO*Bv}L7g)yEMF%$cTdf}nZ>oml z&=_C?H(ZM>bw`?=$W%rq%gD?~B=W{_bb|yV2jT*O-`^Y}tqo`mPqt=M zQVMu+ZdiKJcCQFNMI=wM>keD!Q^9~fEVT-8!40Rp>wf<$#313wR2*%4g7+$_4d>^-h_}Yhy1!GJX2=HRg}+6CJKkp{dVLpn5i9)~*8o*MEfqda!!_d) zOooc?*Nl5{*Um}z&o)Zj29kj^E~C$-_c7P{jz46oxQ(a$j%2s^qYkj%jXSk55Pc1q!Fm=l0&DO*w3Muqejs_K z3eZQC6>D^oHRB}f`@s6Q_^$njfn;yok)RouYx*6@4ffr0BR3g^i#@x=OgbB!Q z3A)}eRuibyvnz1i3*<@iA@@MPt7%PsQzI!Z@O2IHKi&%kpU3zRTUyMx%-kAZlP3oGgJ_5yqCdn)FE& zWT6QAw9!L*p!hyoZ(z2`D4&c*54|!PQEo=KWds_znc}x1q7lTmMsfE7=Zae<*1EIe z+Oy)$WW}8(f@}%N#TD0vTF>&#yL~JQi1wgV{E&Jy?nq|4xYH9KkMCB>lL}+Y2VaBb zcxdUDkQ`b%f{C-u+xb)Jw09dd+Em;mO6huRj+4O~o0rz`Q*y&A@xCKBn?!mnrL-TRF6~5XI z_|p>RwXli=o&jHoP}O`9N;-~^U7yZ@03<5}s0zrqeo`9rruP^A%2*^t*QY0o5~O%O zAlK3~QBHJltRKB9LjkZ*H&`dUP0 zb4x{LeeVzkgHrSa#xb(R+2u+`* z3A_02(O}C!jt09y`5mJ{i~OQ#c9ra_SvUH2%%(Cr$ih$G<|$p#AM-z`9e$7mOc#T z`yi$V>%O~2hC!<0Q5UX_bBfTL#6Rs^{J`KHe3R+(HOc_h2Up{~OhA7Qx8|kGh=0fk zjwiux_}}b658yF;yf5*xng#~n=M6Cj@n2l%O8(F>3dvr>r;fk|#04L0gKsr_sJWuE zRKZ_jjuUuK;8Sirix-(LMBKN($8&iR%esL~VG_PH_qV=Bi1;O_4@)4a14$|Tmb-H} zTg_4LmKXkU<1W5jV2h;k3br4l>3Qkt*lCo3Z9CVSUzxb%sFt_mf5~}4mS79o4f>|C z-4?Jc-xH&Ms$v%8-Jir2;Zhjfl&LW;&s_;l#c@I`62}y0sQN+N(EtH#=(Ax>E0tI9 zIV4HdKgZn>D!w%7TY_IBg11(9#$y?$F;gUs#U5|PaR8@MES7j|f#pm|KaQ^vmzC|Y zSQ0E+;@-Z9iiN>D%T|`cD-RbS?;tL1a3<~rN2k7zNg1!}GO_~qHhh|eI43pSv{AMixMYztl%zOLAy*d3l7Ro0M^31K7_9Yt z7Nggd@90u~vWrsrTc9=lBrfqNTg7iuf;<^Dt2j=Is!J>Tn%h6iccc3| zuEY)6M?k|Qfq?ZL_raKWQ|bn_d>6#pqj~rAbtdAoR=^wRp?den_iY7%TE1IRo#a2!E@W9n84LWiYWlE8#uXQDgzx&_jC;gcyav9EaYc_56xRiGkNb zDu6>6Tj!^31m#drx(r@@*wu-Xqxgv9j9ZDtSWvGXGbZ}|SI;>e`kS6}swyWOdP&bY zIY!TE4?VBvoPg&Hk=2_1Yzf~P^_-{hJcH-YcwWNuH#~3SS&U~no<=;M;lVAZIbY$~ zgXaLA8!ZRJuEIf1Z%*V43&k{Vfc(5vy(}ZU;o)$a-Jgs=zz~I?wQjRAP zej3m7c>ap#bv$q3`2f$ycpC6vuWHUlJYVAZ8qYU)jVb zJn!TA2#+5R`jwmwc)q~18_#|`M@`+3)fCC90_Yk%Gw{sDGY`)KJd5xw!-F$iIoST1 z^EsYvcy{60hvx|N-+@gzPzIhq;dv3yt9bs7=RG|C!~@ct)p*w9X~we?PYBOpS%Zjv z_775^CxAuO?{@VtX(DIP3#=U_8h4mOnKY{9b~PY}<+vsP4JKKS`xTw;k;YVx|^3kd%8 zpl*y(Pzy7?G9CuqSjX;6TC0-PZ>-x~WVAdAOhD%Ed4TDEiWoR&b zk;({VB0zQGNLN%Lp&!B@DH1lqoFf!+{~2>HYg>ri70(fLEM{}k#g|)Wc_8`)cHQ}? zEoI-R+67SgGu(?q9*PAhh1l$70NCVbF@<4ss1 zq52F-U!wCio#k{sqw^J=18i>al>N#~_G=UJ5C-vVMkIWi&R^-gMdxEWpVIk~&Nrg9 zz*m-KrhCAIzcV455h*=%=Fs^EosZ~zLI?K|m8kn8tp$NHmzgxrgasyKGa_*fo!N92 z&{;-j4V`Ut_OZ3VQ^xHLgghlf_^1j0XtFU#{UV*e)4|@|5_L5ld`~J-LuPA%zihaf z@;(!C^8@j0Mx?E#^8%eW>3m3M6&-wIDpB`FS_=YYPBUq)3HgU>#IqTZSf}$BI&aWf zN@pbvKNdIR#f1|UQP9q&$AXTF7AtTX&BUE;Wnf6{2jxiz6>yr9OI?vO2oz4ez z8t81K^EG+NP8h*5hnaY!2_G?GvB|8GX=c)Sjn4aY{B&@%r9|CLW|77(3Tijg^QbT= z${seMJke63RxsHNI`il(qT{23djd<;UF0XaV}#0vnrZJb;b;?1lu#{al0VUTmCk!~ zD1?gZ%SzOpc)FnCzZls^{puLg!sN=pjo~e3C3t**8ZzF=kSx zn#pra_+KV`%w$)_RL|0Rna(?OymaurvqWY8+_7)A8%dYDaC!S6Z^?Zj1#<)bBK=vG z$Hs08A0$gud^0Xl)97THa}fG%bh7E>(<#(EdMWzTsebgYpSE8b=~8*cR?$1>@pqO5 zNIgc`gDmzii#^O@kD5sby!Vjz9`fD;-tuqU&D^KfDQ~qQm$7GanU2CZ@05kHhhoP} z*U(Ap*pTG0adwf6Clym98(R#bNi3ZqX~MM$H{V%S$AqXt0)Z3_0!5eV^ zFQQm;|DU6(dyrjS1dT04-Gl79%y@c1DJl`S0{<$i8L@19$Uo2p#2z=c-eLMw1voO&DfPhJhCy`xN7jVymE_nMpY`Cy_5 z*dp~M^l==oa^Kd+PJt8p*etyAeITL_pTJ3dEa?y*(Z@V9Uh3m{gwE4P8IaQ zhj@hjr+W@-3I10!o0PeDtDxu--eNLN6PWPg^_ZXn&tn04S#0V z_r(ftHp_pp!e5%@zgVHoEdRv{e`S{cVuhp3@?Wel-z@*d3N78`JSW+Nt=NskUyBKw zOjvsXxX{GU{WsxsGhOL_2o{?8=3k^R+bp;3dnoMwV$(yKS?>|(Z~MJV->g3PAQpmn z-ml|YLT7%iFYwMF+y~Ox;=&yK0m(z_rfO5X&a#uG(D2kAI8B9HQSh3(F3jDIe?$kI zh5yqz-i)2^HfQOr+Nydx{F9;q!LRBC>L_XO9VlnuA^uuQz?p|w-A z>ny^x#Yhknb7k z7PSRWVWogC&X(Z8h!0B$w$|Vd5uAdE%@H47fNd?ol?X~jXT{-2K}#((jdPq_U4YtU z$xlddQi4+wTtG*t;c^@>^rWnTHYF1l>*LFDj%6tvQMQGqN0jYV1X#8gB@|_Q27Z?9 zDG5c{{s_M;+hY-*EZajO$g;U3K3O&=f)o}pw?(}V9R$LL>uiCEtZkS}80Q6PhmrM- z7tHrg9yI1}rU|)!m%kDd{{8~+Q4>G<--M&gbXor)c$=9o?=#@c2ubS}13&3YgJobi(-~Se}`{VDi{}6o0%-4O9!tG|czlYKeFE%{{%=-Tx%KE?9 z^l-qe|L>u!|BFoz$ISZw9?JT^*z|D5tpD$!tpAHm5Ak>@=I?uWaq1z_tpD$!tpAHm z44!mixBvp=byfn;tZM z1@>X$Lx;IojH@F4S3m5@6z6NY+N-Jm-6>)g#tU>O%w;R~o*iD>D zzy)kT#|OC)JDRhZD+uC{4o_WN5V!w_nJF_wL@Xlk)WwQ_sbYRrSKz-x#Gg^riHrX6 zr!ZcwH5c`=SNF14@gM{xi9wSw4lVp8xxc@LvJ{74Un2-vj&s;12+Q9Qfn* z>fvE~6)xIB5qX>h!U1l1Td<3>;xeJjA|YgKu7?idYTLg zU<`i}B0LFEo(6mx@Oi-J0sjj4SHRZ+Uk7{(@GZa(06zfy81Q4j2EYcuPXRv#+z7Z4 z@Jqli0lxjLovFsgYp0U-g5YMy^VNC2an#}yC~ zz^G>XL`VRmnnxHA62PeDIT?fmFostm(@JFS0rUXQ1e^&t2XGGHYk;o-{sZtIfbRpo z5BL$_M}YX7ETS0E&SQO%P)2nk>euR!J% z5TXXK25<)848YldvjOJ;&I4QkxBzew;3B|ffXe`VfIh%AfNKCh2mBmx8{js;U4Xj) z_W|w$JOX$GWj&2zo@NnwQV8M*U{v!s2SNfE)jU0fkN`$Ck9Z&?fKkm8MFhpz%$1-K4y9UyLSb#4XR0k{KjFW_FlLx6`+)RQpZ zyW3G#czA>p^~%Fm5KI80ng?MJ62PeD0W5?BFsgYt1|b2AY97i$NC2an2WAiwz^LXy zErbLxhL<7pG6VVGzJ`4C4z`p>#4EQqO8-Q;Bz61CU;8MV)fH-jB^a8E~TnUIv zY@KTXw*YPd+zz-MFbEg~JP3FYg+0N-qOIP?%0&R@aP3vOJkiH#Q2F4jGf6l|S=k>4 zDKX^Y1O?7}kHZ1sto|!;_$5149DY%rxz@^faVe=%@gxGc_~Z6XoU&}iCJsg36I#My zJ=xh0w^Mm>rF#I!Z^n1WY-THnp9680u>!XW#N&{5JWdZg0MM4j;FrA+VKL98nYZPKJ2A=?Weg!fhGOw5f}O z_ha@jW;%obZIowu9aCmK1p zjNnI1r~Fo9s&}FCc8&1E<&jc8Vgx^8I_1YN=@;Uc5a9=p! zMke{e>?A*81V3UrTrIH2mjD>*?2%uNqvIHThKKQ zsf9DV2|bC8=MHP(IB`k#_`6%++}Da=P79pe)~UG zBx6Vt$0b3M27CtM(}2%Fd?s)>-gvhSG?~E5Ba{n~?G?<{b6K)^jI!>W^Q5Rxo2h4J zt<-m8_JC%_NnafICNOdhFT`lQkg_BO!GwC9gU6R|1VhveEZ8kxns8Gyex?s#5d33Xd%vO3kQFFFE#*PUG!ro{%Zh(W>!DUwe~vW)@A8C zv*Nabd@aaf?^$tsv*LD`?39{0=tN->KT3v4=&LZa$Kv`0{0pN}{vON<^gi#j@jcS% z;vR8=ymTDVn>PO8^n4!g%mTsGl97m+TJiuQrj|Sc{Iu~k=`>6FaP^z%o1I>3`sSs# z2;bBa>;jc1M`zA8J#%VJ&ucC4ILrJNG)ZTfPXck$G$MWZgQ)4?R>VV4bA1Sf$x?)U zPrQuh2VFYeXYt@e=cJJj&g z!PNq9i|98C^jYNoo}`b2vy3~j7Bajo_~N{jYkYQOo8()*zz&g~&d)Qfx z`Uw7Az^MMt)<^JJ#B^FelSGnl)z4_jFH%3l3|IW=VY7c^+8Q?-bOpuME10ZvjAj zOYoiZ;)U+gkff(0?OVhZB5RxF9De7}i-1iewtXw{Fp;?FQ4 zob6Bkhw_}m4}pqwN<;pY!c%sRX8tU)V8p*AZzuc(YOdthvr>4@%`#nN`9Ib#_}SUR zqo(MdSDsGt6R6sV2*Oi#PN`q+NqYgVBHqH52Q#U#nm*vtqBzqBoGpqoeZb{Mai$M8 zS4w7fD*-}tWrzTwS{WkfXq}fr8dUQ@^dbDQFX1oKglQ(Un6MS?oWF0wCKF%#Z^F4| zy3+p;jO4%2%zyf~&M`u$yF!K?+}ex?%a>#`&fQ2 zMUOf4QkQ;$pO^IYS#g`qby$$B!W%`Feo}sjz-O5qw-;S0K1YCfl^~9Mj>w8Ti7ymf z&Bvm z{44;T64Xk-brtfIpj3id30OwPNx*U-BqTpq+qf&^JZ%GazP5=xPuoQP&$La-^R!Lm zdD3G6^Bbg_teT3memhCHn%$atwS3dgGx4A952>L9wP4w z8FoU3P~S`^?^>av8Io77P{Ry`WjhEXKb|@?KXI5k-Gz=I z_!XR}V%K#DL>2oHkfvhaje4VseF-R2u`{CHsA9{2I;+@;9YY-zdmkgBigk4ibyRGB zM2K>U8)#4kKl&DerA;0hCQVN@9E?LW)`th9mr30+j+b1%PZSyL=RVBq~-5>cya3CCuaSB4`uydYnLZvsVSSgBC3=vqG5{W-qP7maSTy6C|#oN@;a zQ>wZT|6l)N6L3n!A3&)Y)^TgW!;|vWm+=6u^lXRDGYYe`u9k3?I1eQ4>eX-P`O%b*W+Mb?jDuWI=+ zp+?KJhcwSJp-D}jlCD7^)t?E4yhTZk!DpZz&69Nb(j=%HN6YQ$T6mMz2*BJm{INZC zt@U4{4N6j%BwC7#Q0xHyAWbXtvBK262kXzJ`XQ-)<t)VzX@Mc`c?tkP%-e!p1;61l$$^q7;|ZiB@ja<8iL}W zo_Rh-e1FABu#vE!76_zou){!-QQfMJn>=dLQ)SIpEI!wI_7`WV(4bP$4cdlUCVnc^ za!^t~ju6Bfv<*A)o6arYATUxYeWWY%F~gFgXRRS%qFgNwRc*ar9fUf5t?mr+C;JQ(=# z^Rz*~R(>YtamD3v&;~PMgSVi3Fg>c@GHs~lsgUZ|VNXzk@`=!Kcd3LYq>f({CU8ia zUQ^WcAbuHQWF5@`JEZ??jYuyVndgRe2x*1`c6$(YR6h6}#uhzH6soRt>-kkz`aVoE z>6~f{^ymr8`WsG41g$Vnu=%ZE(*vEwWAFu!;X`ELDa42N2TDmc7-WIRiI^D}PXsSV zK)Rbmx}R#E8*YKGqhP5brW;W~UMUe6$keTYpA&o*_$is}lWpT?Y#aZiAfBWr7PD;} z3Ur6{|GGyC$7L<{V37xbDeiT>rO?Lf^LvKfcN*5(s%6G?`ooFUw z%fF5->T}E+TXb{f{vzu!Z+uZd^>`zzPpMo4H*|01ex;%mKE^50xLJ(5r~f*dZ>GA0 zT~@%0{}7n2yk$?%?7t2jiEF;iuGkN~!GES#?D%7P!M6Cn9F@n4Qk1vy($hecR=&ap z>qt}H!tqIn@S|u1{@*ax5{(LVi=@AX&5^RpPHDk=sM8;#PFYyl6g#kh;AdGp8Mqn) z#&lCr9rUFcF&M<;_!a3-(49=et4$U0rsBpDU%9fVt5cN7qAp=qt)VN= z45!RMQ^B}VoS`;!5&b8rrKmCBqEvoB+A<%Ri;hDxT*-bG1OZMi0H!cGG@WTz&uAo7Op$#oA?Xvb)^r zaV4ZWD%UAbz5pt_{xB>LW4vCJKFL;v|FWNwj=!r#pI?-oCh|tcDJvaap;R0IwglE; z#|U)#LpAJk>S1vF6>b%4%&@&5;~2DEDW3rvTg9>BzCz-ZSt22}#aIG=kqLX)KEQ1t zjTuNE!fj>3Be;m<9^_%G*k8OX^rS{rr^JCl;7bdN>Pb0n?+WlV>o%~OsIrCxTCgYO z3&x;BeIHmI83>FEqfnS~RjzydUcE_OLd~oVKmjgb(<*BpzYz@ymD*bkd++j$=pB2P zr=U+P5qEj)sR#jOAGBh^HXOSh=COB+QNt_jgX$)BQ1E|a#WzO*SkL|I%hA>-8>p}mUO_4yf=+rlj(vuc^Ln@kzxrDj<$ z0Oz2S$`e7fMlvMG$vf@!v6#h z+BESO!5ruu+8P>@bN=xfAZ847=MQU>9b31h`$-BMxZieqvYfx zGmwK=jlPD8Og7aESeohkNV^u~~zTPS`or z{3?P@y*BXTNxUT8h}v^;rW4qPyZC6% zX`JuXVFJ4w8|FGxYyr6plLF;4TXR^t`5b}nUcRq@E#nnrdE|sBV^Rl}+lh*n z@$g{Day76QD5EIXYS0B!jVa)t&f)f&$!+Qdxpg*fVt`gEm*Xyxpc{^OjpTff zla^MD-x~U`Y)yZEK3b-x&zUQLXCY(snVdwp^vYTQyY5**q+$Kp8|ZiX`!&6CIuMNx zv}ochWtz%Tgc=i0cz9K%7UDA{dqQsCsR9z3xab90|IkhvDdfm(T9OuRtFhiQ++`%fK+) zq&t!gN3!m?O!HWOw4AR&VlsSfz=10Tbw?`Di9mnY!kpsj7!8#o5V`_Utsi$5wd9A0 zk7(|b{X%nMQNj=@(T~h}iwg7*X*_Tl)R!$}Ukjzur|O$2S(+H_bqC%MMQw?C^9B;* zVk`!cvc3&j`<~b4qCy|2*F2RA!9wasEJW!Zx8Tmop^uf*c(14&Dz~w68ITy2;M*7V zZ8LpHQ;H}qEMd-HSr|VdQVj zWGG^hW217>N4X|ojD%cmOd_oaBE0rnQv}_Su>`_dbjMi4vUQmHeldpn2C{Q~8&XzJ z%3)mFqZvsv{+kRvh0*Nk6QI2*547ZgyWdNW1X|CgAvx^N?qM?Gtf^0 zeXbF*ZiNv(+G*61KFBSiEG;CImC7uPN?{eAluMbjCn<9!)^vAB8g5zq|Yf0 z5eosD?r=ej@IO09_ah(s;i0tvVGB8eLq6U%tUGQ+<@E#l+{#M>cVSw|oklIW z8d60}YkxpgUIxo$R5B&{wR37VJ=TkE?8H#jNvlt_4l|FVpUYX2@Xh(JWk!VL{=Nw=OUUy-JMdzyN zo70pJ$WGP7bZ0rfd6r`)milxDUf4T!e6I*zKz7RO>>T8`n1U=yZxh9so!%-SuH;H! zA!ei}04@OzMKL1{leo;+3Y|VsKYe<~|GA}%hV`NPM2l{{721j}bahz2F|5B7@o5)~ zze>c%Um$+uJ(xhvr=XZXrQvPbfrUZC+7oAG9sQf-{HPSs<%1{x4a<5;MGYEs`QUsR zxJ1N^V&L&x?-6BFUeV`Nus&wi(5;*e_kN?20W2q4;)@bg@jsWL9>@%sQoK>l^cvQy z!2~byxIw;8D!i&*XII|t(-U4Je`c@c-z_&akbu4v54LQ zte&)sZXf#XdY|{ev(fqwxRx}O&H8r{evM&NZBT_apuHt(anaaE#ufd>iX5W)@w+j{qg~$n@@`|cMa(BF{YYD2J-Q&L8``w0P;2_8K zN@b8_j#~#gZdNM45PsVrN2XG_7XHS{Qn<(%6Woy|U&mNERq2!|w0_)iGxgpmCb39a zill|C1u2%J&=4`5CNGFy$68J19^9GS1j$|{>=jLg%m>bxY2o^m_f@{{pOjSEzb4sjg-XQfPnNv)<&)tJdBm*GfT z4x~jtA-a6!l{YxB6!rO*QIt2vl!p_hc5#;1CWqGRQ+qtfJo~TIMvv^lC90{Kh9%ag zzeHM>{sEW@EMt;d-l`me$)X!}NL9d6)mf0=flOu8pf@ zyKB*5dqX``@BS{~`l0&lF7rX4hW&P9k(J8C+K8&W{e?q$`v{sa?)yHadcWyDOkdD- z0SNEV7sbs5!w%Y*>?{jIwXotxfWdt5b^|Mb)w54netNT|bZ1xPgTopY zlBa0p?XgM)M_kbS5HyUgjE!$>a#OhdoI0xh*2Z>lx??^-fr;* z6}_fE>kU^+B3;diSmaT*T~uwb3*uN+h`YmBb|M~8c755;S!>R4gR{IH=FS`GBOhh7 zaHDh38Kveb;4}l}hn0T2IvcH5yqqLDvEa)mupU>ACAmtj9X2`=P+AnlGnW8&Gn(~^ z{xIRZS``g&4k`65C<-jL>;zp*1hH;+ydDvXQn?F$eTyol$=+ZOZz#TOdn=-Fad_hD z@)KR0ioG?s97L3MjB-GLW(f`99+X!3J<5ko}?zKOTPr)b(%`K#A|eE)s%M>P4A-2 zs6`VEr~I1K<-Uvue_gNX4S^C)=|-nynEVcCdTZ$KoqR7t?%|Z5nrYA7|8b6dUsVbD zHotUMz9XD9pD$la=khg>`mB6kVYGmJRVKd+%4b+-BH{V^x=YHVb&#i^b9rp@I@Q;0 z=gM=Jl&9^lvV7kmPg1AyEPqPqXNj4f^|y<=T+Y|e+|K3sfYfL8vm7r^(9hU^El(v9 zp0A%9r92rOgQ+Y%5$TXXY-tYsh>00HFCZ@FFh&rGs{d*{d^9>PV|%C zxje6v`mBCl;u_276zyNjQ{1UMij*gzgFLRz<*Dslo~zE4N0IU@nf)*Ivmd)o&eu;# zrELFZdg{l=eJpP^wZM0JWrDPtbQJp@+ACgc}AWm57zsv zpOp*!ta#z9ey%s=$vn5ew*9Ts`fA4x7RWQu?5{uLFpmD;*s1IPihBwW-y2I^^@PZJY&w4hZAzhvtrhF>qn07<%3@Wouzmv zma@{2(4uih*6m^X^d>Bg<~$2F*Lt-n z9scDev`lbI;3^EcNj6=V@|K&>Vhwbc1Y$skZ1zr1vV@v()4JBzk~Z6-4W?V%b!j(} z)=1Kgxq@^#NjKnMSNJwr)O{&lXe~kh%ax>BD5?HJs;#6#_XjGm5@d@~@$YGn?ZhY* z8Xc%G)LMeQqf`$|s;np#Ob=9I_3#KMUZM!MNvfYjs7k>ERLIv7{4`3HDyd>3R5nS) zHPGPvDAggikgNF_Q~ESgUHT#N#cOH*+Cg>YYc0XaQSy38zJTOw`>zupS3;Y`epk%i zCfSvquJnAk_VjGKaviD|F1~MLvbd5_HYEdp*U)Uu%jjx3Y*+5DRepdC7W9d@&8l*L z6KGceZdV#Uw<~p48%Xi*4$Z)SRnLEUQ1Uh_b$xD;=&$;y@F;G^clIk5A0;p`SUsalY)>XnX-s{$8Todz_%#(uN$L`v04#@tbzUtf20tqSMpkb?%Vzo zf$rNyWbI?tU|$NA;qC|lIA2sUlHPYhwv4sP$Q8HTdPO}GdnsSt$z){$HNtt0AuJ0~Zsw)k7}w);2N-7u3Z{7oZL zJ`p7Dt^SsKYr(}P=F|QY<3;++3#K0#N$=?_{X^TQBqUo8XaDVd9ds8iay?a>*lnQ-_jCF6#Th*fg;DH#K{3EvULeZvkD=N=G<;=YOEjzn++ zP72>%#l2U_MLHSI@WMJ^Tz<%~QP?(v&7T0p;3`P*8J>D2*;HM!R3&y)%|!{ZN&Px( z`$3A7Q+**C0$638lAeb5X^+@9mWQn+I@$(a)%3Q*%6<0P*_RPEua%#QpR$HK*fNz2Y@}nOVjk8}EJ8+JdLb2>y9=m3Ma(v;)#ni! zqny>M3^xycTHv8W2!ggG)C<*8EUK3~z|x@J-;HEpY{xMp2V4wC*{jOYzm`aTb5pnZnA$Zyo=JC;Du*FdW-bT6KmYS z%of`^;h7=+fC8SH^fd5+2RpjqAtM`MMjIJr!|T!)n42CKq~8dBP|llUurZ>1cde4q z_oV{pX~Y>NcaJhMpk$VT?@Iu8GU zdzs;=gXpCn-Qt%j7a5YM9d*0Vjy56O$K~uMlM5EIk%=F z*LqdC&Vfp}Zln#4rxXGdm0>wk&r8qHS99Z7n%d#l&@K6sMw>C=|k*M7XBA2!rw{ zGWUXT{7I#um6^*tjvQ1n8W1`XMvXKjD;fCvJN7uyl~TnM!&y@f$l35DT|_fw!l82eV! zbDAi!UYiU78dSV0*oIL){IjWY7q zgudZh&y1Hzm6^pGe*jW_O<4kv03yN!QIH@o6Az`)yPaN^xSiS!?WMC5I4NoyNdj<~ zmMHjW#O-I`G}i)moVao5M>7i8BHCH&g$FHY8{5$U&~QKpwT%A?13Kz|!uoEcM~@Nu zf{i+kMpn3u+8BRI{U=&dhWa6PKQrBgW7Gp$3R+VW8kyy0aNH{tNA-?d%~Co2ZrNTf?&eNUg}abesoW**o68|OY%yay5tYPpSc+Mpi^-u?o&!0nr_A> zGNEOFpSrYJS!n}93?X^zrHCA*z_pn}qR`OcOGFOwa-4HFlK}QxxD#EuI|Q1-FNGdH2ktmpEfGFhcWQ&g7*u+ zZHgOM$z?AX?8HcpQb5mz`-S!n$5ZZBGTIMD#ES1Z>wUi z^Lh~{df@I6-;CbEhh#0_hS$FW%p5Y%3L17)L3e(rat+{aFm4~*L#PS!6TYvsAqw5E zdykS=kJ#qHZ%Jih?#A{%;W$1YUWWl1*3v?ywV_7*n5op^*$B&7f$5Ku3+C?4h%P)H z145eRG|aTzTgE_1LaoBs&;(`+^&rn}q~0S2&#)Lgx0CxxQNXhbjw*A8R5jHvD~y#R zl@5imIt%KUcDAfA_+|**QcW{t#R6wm35QuxHxOu%&>@uDQbny}#*aFHhpn$5C~7&D zx>ZKuU*#0MtQSH7oG9Q$18?jNTdNezpi0r8!DB-eQ#CNvf@s|=ll29j2hbi)gUpZ0 z%)mNA?rx|B3T6G|hTv~SD>#FSYe#$txZ_Y166AdY8XVRFW)CPZopo;nHLAh=H6Bbs z-Iz4HKS#>#Xg*t%kvo9G><<`sn{qE^k{Lj5LEH(x0Nwjpu=(iOPkZM3LIAxS-WT2) zw<+wOgx6qxvg}_A@1k@YyzneY&z7Ef;&c-*v(pPD1}c!An)JESgQ1h2Hoj0x&muW@ z#8kBj2$yF;I^OHRH+k?M?vw8exHEIaCVwEe&u{XvjL?>R!^;v5-jauKlY1wK`zAdA zzdqr})d=({WrRC#zt3yS{lw=@&E3s+eolusGt>OMH9j?M#9DvGDC-9BLSWQ7Fz%ZG zCO$P|)R#W*K=&8^+T4(TR_J|)+`n;KWr~U5S)qX9{OZrqnKQPZrlKuY8xy{Hi zZ@+&@-YK6qd(<~R)i$c$-;{gQUpjKLzpZX3{xxf0ZW{|X2Mx+^$vuV#icL<+Vi-#$ zRzRPc>E1|Zk5AQdw}MOVKA&3XK1>JY(Q-dUl9U%%3fR8j0@X2J|;{AYijQ0atRXy*W#ec8C{hf`j znB^-KzsG=wjU3`NVZA0_6O>oKoX}Uk9vnIQdVoa9B5AUGK^WZm3&IebAPd!Th%15G ztgpJEwt*vd_|(+8Hj97qxPy#>9Fq&%Eq=9mtIvDgg!Mo0d4E3PP>fIgdHY_U*E!)R z?!TQptrb~jH^O|;%zf8P9yd?C3(&VrybI8`pu@X>uYU67hhyj-iluun&iC?U^A&)! zi^MAcaf>><0)YR+>1lAWqR6;;;&p(&Wny+sUyXPrAdlH%hV4^h3O@CzlgG6o9VR*Q z<-z}#f`C7_0QRXCtoNT7cY;YP#2W((eY@Z;-X}26fDwQJ2X)3}_|$B4fBtS%NM^&{ zDl%X1f41OL|H=s)lKqnld@5d8;-JC8&ycXNAyDP>UemskJPuKvqMQ8vhB*FPX62-?KeH z6dF@Z`x)PkYizp^Nv>-90iT)!iY@Iewue!p&0qVS z?PvT4nHQ*hK5uUOaf*WG^K;Cc{Ri6{eBN7{kNMPV+SmHaME1`19ViEdCr^|Bv6II^ zt8Mo3uE3b`QycYk`=41Y)6OLWtQ*Q~?(K!l9`py=T zB;=t#Npm0cYa{x;0E|B^52Cqqp&yOCWTtyPIy`nU?mEhUuSjLfJ>sv;4f@-12M-X4 zZ1)QEQlLdoJW*gW-Fy9k5d#FhH^IFd{OZd6V6+ zj>*#w`P8xZ2Cz=N!KWtYe&Wx}wN4xfu`+Y}ga`+^2V6^-=1zGL5SE$SE*h3-WQRo~ zYmH;GK%>C`E$m&)7lf&cDHnZmx<(&f;z8$6&OJ_MC!;L}EM|*I1)1S3mdxOrA!dPW z8?{wTzCg^~U^E5W{cjXBh+M=BMC2kS6rz!ed53=%QlUMfjpP)p7sb%iH2p2cj}E z^I*Bz?iT;_+yLsT(O;P7$MELf<@1isMTI5guJCVmZ}+?1o59q*79%BUd4+q0zYxP# zS$m(h5m5DiH4k10==1)UsHn-)He(t6@-0H)TZF>53Wd)W6Eqe8eIZpUIw^WiVBQne zU$in7NgRqUXUwALQsdrh3RXg!E&iAS^b{yJ<7%V|Q3XP)U_VbN%HN79uuru#G(#yr zFW5oFRYVoP?5r|nwSdzMscO(I66*J#Cu)>2Om0ir2PUubk+V+jO_I}!voWOJ0BbV>Ga@ZZTSD&4)ZSz%bUfF zi-RyGW7j+)CSwc46iQ6S=0#>)=J?F{m6&?9VV+itRGj;8?B)FGE6%UllC8aSy(h)?{jqxzPS!HQAn&k9E!0gXH8d#LAvL(J!OTGB(g3qJ7;QI~N-HEJJnNK)=a zil*E%z9G2_zCqr5{L@Eajx#buId4LwuWs`E?Udy;w*JCgOmp(tx2SL$rC^8gwVraU&fay|6b z{_B)in#(tK$`M2)i)cBa2~}_wl%``ARDd;8e$i8-U3_F08qUo;^6Pjgm8pH-ARyWZ$@y3f)O19eta`plr zUebv3PRefZs|CkougBF(3`%I|pume7gJ2|QQKC)7Eod zda1B#NScO@t)UTp!8HZw=&mc+;?F4vGC$~L@Ub4yfxF@VviC0VRaaNu_etPD5aU0w z9EH|Y(42V=9iyP6#kQ%5h88S1u?=tzJ+$&yd31^p5fD4vBG8fwtvb%sc6gpwEHjfj zOj|6i*wQvRIsb4IO}N7mNy0_K;S%m4N_f7%z0ZN5v@`R}`_AWiKkxhbBBAZW9JcgtnK1S*uwOKb*b%qJAUur;>}*On5tc!=S|z@ z#ACU|>%3+dnOZm{wc>g)9XVb}CoEqEj1!rhWmcPdhH?#n4`@wf->SM*c6NGC9uNLE z!ON!Z=tchsd`2WF8IXL7x`AIiD0~u}yu0LG`(WoW@4cug!|?BZ=%BdDJGd`%Mj z`DTWBIs2P27ifN#D^h}8>RS$5@ywjvWR@KqMa-7m>g;z%k{%PvOY$(CQ~UzVV^QV< z__(>%g?AIg+~26V{}@Td;`f<_kKdh{f)l3qTj_;5E!zRH3F^L<(;!{TFnB8`ZS;0c z+NPXVU1BR>-Gz_ea=T8|y+PV%_O0K{5SbZj z7G<@2-V}EqUvmzO)$hP&M44H8t=_J{x8nCcz8Y?=BD_9+Z?Dx2>NkhIm%~~KH1Sj> zvY!;GTc@7rE)GwJ@HaFX?xE34A)5{Nu*#5*vCUaWy8M?|g{794gD~%V114=$1Wh1=;Rw#N z$ud+WwxzpbFHX@itNz>~uW$YNMc(63wLP?#DS%d~of+B!Ur_(nqIm4d>i1w-8?`uX zf&1MUcb{BMSC6)cg730|uIQk1rY7F@940ZkrY33_@Prn*bGSAAy1lB8#qTYthWGCu zZo_kdnfRdT{oXvBny3$jJH<%6BR3O#>*vn%icFfH2(d^>Eh4mzS#y;!Kz3J+mc1Oq z9Zbrf;!Z$mBKrbL6FRK5Dip^V67CDreC70(oa_NwNZLb5x8>2S>RN-5H%e{H0>6;2 z@dO9#96#I4{niGf?oiCfYP# zY@N@2eS8)Xnxnq*Gwz9zzOjKk%HYl)?+dp5y}N8uR`|Hv@`P{21-E6iZ$-k*DD{nP zH>vnnDZPyDzQ}R+RT9}F&5v(UxgPGTL`b?B(Bh1Ha!%IWaW}KTSKa2WEccClTlyf8 z^KNFqSAEL8rNFm(t$|OwnZtb5b?ys&e35zs$K4nGzUsB^3#C3-zxJ1F+?BJk#@2|r zXcS%hir^=o==Es!Yt+$MxR7-USxY~NWyvp2LBvNaqQK zTvaAAteD6t7UJcrFb#v}BM|Z26SK3X?S!4&JZ=Y%$KYr%zw6wLeBaoFft%cA5c{lw z51HR~^V{Z5cr+^!c)16(eSwDEd?VE<81WT33u)&JRC-Ri8HK*iHur^qZ|d1h_tn`M zFRuEGm;!HIY@7JQvnG+Ehn2_)zpu04aRWW-V~sPp&_&B)UdNQcLkegfot0>Dn@9N) z9V1YTt7@b@eZ|M!m7{ztc_XSCM^tU*!6Em>+1*~m+!`6Vx6ICbap^$u3MM^Uzn$)h zJjHM)jLJ%Eb|(Z$(0$hJ7KhNE1&RnZg*dxh~%Ui9&`tQ8#B@Ox+_PU{4(-!n zciDJfCj+I(N7a@Ee4Pi}7l!$!p2%@mLf6xjy}*PJ<)k}dn6LA&X@uZ)eki0?qw@^g>!UqLG#N&a_nP^nv>~-$L*}h;$r@Jib3vY8zboWJ1 zGBAD7J?;d^<-gFKI2qTfGnpRZcUMMz(WEU&qg}OxJzF_p*P5Fe)cymAAT?qkPp3W`a7`-OZfsf6>YW+>9ZJ)LMrQ?+?Z{Y&xllS+fq$@wq%`Eg)Z)c|PRp%AUm-(!^@Hc{P$@Z8#j`po)k~4(2^$~v3ec>iG zQ$`=(*rO~MdrXP8xy{h_l)I8Kzte4|clggL|K`~=;0i&@m{%{F5!cq;jX{nzcWPa9 z?`6!b7;LI}FJo@iAn`S>%aC6@*evI)Pj$s+zN~i#4Dp5EcV8^>z1(Q3)8O7R%(r@* zJK>AI=x$TsUGB5lz7GGPuV(wIx4N$a?{=4Urv83chCi z()tDF^nD^{=@awb1i^_Fy}*alTpgs(XhZLf$eo;yPC*AQaf)wVrAa6eSZ}@)IZfJu zZrt(0Ufq@1adhOEKsgTPEL!@UJJ#ZfHpE;G*hr#qGtnwfN;kw=kc}QN=qFGoMGc{e znn=lWkV$xIV_!6w&|b^7ZsK#+t@hVs5`5`Ah1j?R-#{ZY=aQ7h1?vJ;~C5vs~jvlBh-j62HbeZ1-k zLf;_Lz(2K&pk)yb+-lN^pwL}&8*mc|N~Uol!Gi`TT<~-I z_5Zz%W72TOy<~MBNNY|id}1ox8Mi8br=hkg7A|Q#!b8CcHXSk#qXwe(4WY~s0akb5Jl_cyjWRf<;Z#}q1^OAkr`m?# zDEOjHBsj!;BWhu~ML5vMMkGSyFz&p38|eg*LV+7CG9?ZZA)J?T11J5TvSBJk;G(I` zl)|3Yk6I)txe^>#!ntgA!h}nCv_BzBQ~hFZ;L9Y9M_PX+Ny8_1NT-fwH~KOR_ZLm_6a7E2-`&zi zYci!zs;P^n+Ux^|Z8%!iJM4f@klK!o$etFg0bOc(Hd> zRORFTZPGjbIZ+F z#*j5^?mAog+=^AI_OPmB&n;agnwC`UEvY;xHJFl0j7(gdJN^2#U+E5TaV>ph-aV~v zb=U3WPT;vu_bRDmqMSE(#;4KSQH%>hN#U0`rCwFf)}_Kf7l+wqM$N;4Q3ha6H6y)d6A8X*zL#gDXKlpvj1+v)MzS-~ zLW``_NI4u#xq*}ZDjQ~|wI>WbrEt3SyXuUDu@mN`>6yt#H5(L5c?_aWDSFVx&3^L( z5pN5+l<6r5LQZ7KPvl*vAZdO$6U9rsPX{4vFKdULg1*^d<`D*@nSz*#k{I18&3_0z zcHeV7)y;hKddKLjGic3JpLU)tq+7N=f)8@xnb=93`Cr>BOY>({?K0iX_B=Wrg_yPF zkS%Y?t=miw?A=gxW9uKN0XAkRXhlh7ld1!1#ea2qrqQx)yB1vfDbNM;!Z`7H|u&U>w zzrg?b)?1jrSTHqh!BS0ayXlnk&5z#yA;u3un#>#)uBp2uKUzoULq!brujS^13HiZ` z_vz#2MQ88-8&l%8{Qtl#aRYmt@>ckvN*ri4z3YtO4-ROY zbWX>eac$XE*q z`hbw%kpMI3Rzky4&W%Xf5oJMX^0DL(f4FAU!!^SnUO(#L_2izzin;9g#gkulap zL^3xly~aRac5ZmdLg=F<2nb8vIV}C?aEr2&K5OJdGB5b`ei#U*pdK0BUXWE(J(Z*|;(vu4H|H@)^g3)evc<4j=KmA8VNp_OWME`@<@eb>$ z%1<&$lq^I3H*rAuvmj9!s_1dIi;mgG9gVfPpW5DAzdQ6h=cK^1L%^M56u-|2^xl(t ztXI<=OGn*mo4b|N?&H6y+o^krhPMv+k^23TsQFo4BomhxtX*5g=U zCMcxlwn9dHUPc6wuR>qVOy0ki2VzgB&ee~O$vX?|%^t_W;jD4Z5=;dVBuQ2}Uf;n9 z|KIWDpylg(gt5^(-%(VDphaoUB+Ynj?o*rl#2=pBZ*zvXOyIuRy&8#-Q=cTpoP(RZ z1Cia{foR^6nWXo^Q=3Eay4n4hSp4mtPZXkGws0j z{w6hU;{*OCXN4KJ-hkAwjSt984cqvA!M=wxyeDFL2g&8rUa&my>1W99(MaBy8GQeB zOyB{z&qOy+oGsq;NMMfK{}|4mq44Pxv3BBiuXYBCNE0u3Z_eOY^U-j^3xt#Lk^;{3 zO2$VHd$V%_Ykv#+-$nA~>U$s>Jg09#n3KdHM~jaqx8wP)$kCeN<3;MRA>~tWKeO&3ZbL`x|d~N)`+5Prpa6b6dmfj)`r{4pf zIyHo3c8J{DdPBQLjW-dhE|XCwpdnLZFTU(MbC#QNr%~vAXU+mM^5V-PH!L?JFFxSz z8|=u7*NyK>qaBUx@{Ur?+Q*+dGlbUbcZ{qb+`7?Qzjb$f-}JuwGQ11p-eSi)h7*-q zjS}@Gul;E{3D>j?%(Ctipwpf~7D)F@^e{C_2}*Zb6cKXpVVtR}r}+C&o2?5&t->Tj^!@-E4fFIhBdoQvp#K+BBaDl~<-i=ga{{q)>gGP)%x^HvVuiE6 z(9?&4L#%KWKo4jcoCF@~v}4Z3TOR*y6F%9WEK;Y)3B0H;=ik?S35=FVb)Xgx0og+V zl({GwcMEUu|92$22lmw)bkxV$9ud|miQ1u2lv+Z2;`c^Y?Ay#LOjwOFSD16y>gZXoj3Lu9;kCC> z{o*+OP#E37Fe7E^nLhEB(KiG?K@4IRd{r@9`c)S^E05>Pvwv$m9;}|K5KYR-XaTS4LC(5&8fg>cH>$XhKsxEky z+;z4YsU542G zLsPF{)@OyqiNP-S^-;dp-f;(f(HGvRbC76*oAHRm^BG)|->1YR-{Mr&S00#PiplXtaK|MmTUnpz zJ}BHu0fyh;|Gf&lY?d#wTL)j&P42Vfi*GwVy`MR#@H9`FZqxoW9Y$@|rNfLaHb_qy?h7|wsGE9oh0f<>~a;NDgdEkX3k^>x; z$%tY$^vLHD4Kfu`2EXcrxC%J2a1JPZi@s~Vd(Sy#_3-G6j4J^McZqz$qyyubIIpxG z!mnt${9?N^jNCnOzzHFnF_s*fK;s6qoXG5x4bC@P@Im-+94}#?7Z;aUSp$woz^mLx0?BUPBvDt08LRU`BB zNgt43;L@t{{E%};?TmiT*zAFadyx4zksyv+j|8u9V6ulVnWMeB-MAk=O9+-Inny12 zXMbVG#gp**qpH{rBUWN7=0vs(#pf_^p3(u{eUg?wLmt*YoY$+1|F$mv ztrj-;zwY9{-opEo&ffvow%-hRgyc5CZ~~q<$);yjP4%5ad_dtA%G?LGlOkeo!$M2)YlbRhLa{^aAti>4Y;xAvHC)O6V zy`rz-#kgy=^$oigq5)Qp;@He`So)k;eTJ7cCNPsQ{Kp=Q*A2Y?=sZHl?up-*d;j)% ztRQ(mfhk9q?3;&i1U897uj)AEz0k4GTR(BPH)2Ky+L6g~-Yy)wX0&+C$*rgeAMn;E z(IkeIA38ewWzvT+c^953a4m+e#cY-SMyXcB+B3b!!bLOWOX%%<<0TKFzI`YhSSC+j zxM-IR+rER_tZ!2UZNi5ldlh4f@d)Srv%WhcEnZD|(KnQN6WZYok;9@&wFvi1 zHZ!%4jd|Cr3Gagg8?yx&^1|J8Tv#TqSHaSYh%gv294XR@VJefa7$!@8*!p7YlWroe zSM|3(>1`@$`K*s^YORT{;K4{yC+M;uTF&3RW{|pGb(LlD>U@-mWP1EnnEyBbnuT#4 zY-Oy$=e5Ol^@Q_o>KVUp@crvviI?=6(Z+si#v$+SiM1$UyzBK!qRc;N%zkfm`9&`y zk@Q~Jdlps{2B?hNZV!z~#Oofve@jDaBOUsZyzy%NImc9+{%k42Y+r1BmZq;FzLa7- z*}>1VL6^1^>D_ziJe_-$830%IX*#3t*QxzQart3yCRfF3`^FArc+Zc?`=?dvUBzQJ z#qXPN|7mfiW4FfZ`rW^$nAR&=r!JB8%>;1vhoS~?DTDv6FTDDI~bbqhLsKny^ISmGRPnP$(@M8}Pg0$k z-4a(FhK|{wKAf<9c#7%6gA~f9N0%VG>`hJAzM>O9WQY&fpX%S~mV)cIZAT}ztw}o1 zgZ!sE@$6!zkMteE8O*C!me3edo`oF6aqZPQv=M~5H_GHu8)-%2@ za{qxrUha&eUcVU!yvB*gy`5v$qtwO)u>R%Ts>w}$$W;!uR2hjHuWbxd$lZIHE@qZ( zjz2v3{tfe58_cY1wii0WyCi>_NhMSBv(FHRK4>Y>wLcHCLFqkx?n{P%>ZhWpnR^Y# z9vJg_Y9}&yT2}dPckryN@(#DLdsb{?u3I}T3pKuGc-!EVm2lH=xnp;@&G}hlviHi( z79uBa8wnUF*js&yp4W{qz6D<}A#<{(_)pNw+^_k2J-W|*uum^^n_|;59zBOPTvkT| z>UqIjIv=WHSsjPG$0u&}T4!v9V()s5Gxnn+lr=K$HcrcmZMSM<+4&@^iabU|DAMrI z5mW$ z4X#^=($sS*ub^OU8p=DDhJppu&f-0shJrs%LwWBA$}I3z??aVI+C~Fz@{LKl1NvmL zA6ePQH|DUjkRuz-;-i?n&HlsmZR9jFnXJo9d(qE}EwDT-r@2}`SGzMwt0#PHlK$6u zvIl57E^v<5{iR`S2>$#w}FJ3ZW1~>jP zW^C8Oe5}UZ5~Kl|++}^T#?-L^%Lv!HgU4s>{gA%p8*@@!d`FziO2>*@k6Xs0>;4)0 zc}8!EW74^^*aE=e=g2@z|KU}A@?nW{etZty3V2*SG1^Ctd>jhtD@RD&FOHk!xDCf` z!=LMuFJ`bmlK5%n^p#|dF+8&$n|~xMBR8C9PlI3l#xB%-8aZ-uu3ztbeIExl(iw81 zc@<6YQ;~hnI8JaX&g3}P?{~)SPaO$VT)5M@{t$>Y=5RzOAx`P4_v-iIYX3~Irx66v$2tl0GccnL5b;dMpMYd*jTGcGQa zaR_3LeS~gKdQKtl=j4Wi5cYx*o#;f4U}@lB6E2yRz!Dl+9C|>fS4ZX6(NN*{Nf1Yr z9b#aPU~6Oqtt{eiqe1er40UGgLe-;=W7D1*BEGY2&|ou}9pr$mV)p}JV|v6HS}ZeO zlodME0Z~qVshy!jYQ4vPH8%ga74nV4UgyCL2od*qACBASUC1f8mb|<(@Os;#N!)pB zD3P}Zez5c4A^hL+wng?M9bRv6T4!XxEBy02YP*!nyKrzLdf8l~Io|>Q^)xw$XoD{E z^ZX;j*_F^l?Ckqh)EY30ODsQhc=v(bsYm8q?^6Z6=b7yLrLoH9iYI1io% za~CF(*qCcqzZVwX9H^Z`$BhJD5^Cfik$z$znJRfjP`Kb{sUWPHgo7)LU!ln_(kW9M zbl}ht_E#jz31Hs8fIwDtn0&yH1G%AGki=-3|5e3|#tCDeh|(Y1sQ!*_4^ZFXSJt=k zNEWjYy~b+3>Cm-_Ce)#8jlQ8aP1QO~Hfs)reiXLG8gaYelpk}(bW)NR@I#4-vqc%; ziUob})fpTUVz9~yVfv7fxE3DbYfvq?9NY|Ne4R7889@X+V5<|`;-|}P8I!!oD?@10$#USZ;y-u1)%R-0Tf>TzT{QR) z{iuT3d`H*wEM>ro)Wk;5>Tj7Xn~G)F+XjFunh=gHu#ELuZ3vvbO&sMRHY`n%6RZbY zy@z7{VpzfqJU)QM;fmVKvIehayoc^|;X$x7y!NkMU=`Wq=W5nbZ}{l7GHTI=xrqyG zg^s03>@`FSSBvW$9`U#7yEC=`5u zZ&1VjGuGYit&5!F_BT;y618HqKT6AUSGlN* zq+2rmXNx&c}I>Q--Oc?@~{ zE*AFSa|CeW@wH7}SuF4+<7gVc$14jT@Y>6^!rva?mR@Ky=K`U~VIa;f+y`F^2Gssd zTy5q6WCU>B?N=R`CxFez{`kH9Rx}b6{JGHB)%=Ba3+{yK;2wiJp*p)VI1Sattv3T=V;4L&44L3!H+i844j zp+YlMCFBkKaT)_rAA%>KoeV^#fFo{XF-0A5+>1Kn(r#RJ7oH9!mV5E z$LR|QX15)-V*?Eo{|I2rYqAE!S)U0lcv?O=!CxNKDk9TJT5_TuveZ3z!I?}wc{B31 zoc9%;lReyigT7Wp%X@RbRsocnqW+(g5KB{&)csIkg0Y!_*aLd_9Fjquv-dN1i61jp%jL) z4Ec=4Ch3^%+L8Ye0w7bIK1u3d&y!Gz^pKg+L@`QXNeGZ8sz#CxN)w(TWt)Qic(Dz# ztwyX=bF!3);w)uqX_hif_6&1!M;A|9bmfFtYLDYS^|2Xon3FTQxOMCmyYEADP`^uV zHKz3Dl3CH)`$XSz7TVZeV<&H)jLTSKn#S%P7OZJ4w3xA}D0WtQ%$WH*#SiA`J9P^Q5=*gLYc|JF@;Yc}<2w z(Wyg;oun3A%41cpRK69bl+)zJy@W_)W5;n)J*IfD0eT+>-b@OzBs1?GoeuR!H;)ci zA6uk6Ls%%2hS{X|i8>iQCCvMgTQ`VWzh8#MnnaC@O4u5E#J(qatYsH4_YrH!^PoJ= zf!aDPE_fAo3i4`VWFxCw1p7cE(AVxLVlP? zrNE7p0=uA4VH17{6hb@M(5hhM(xLLVDTcMuX{v1~(5c2xp41PT*j$jLR;Vgn2cDH8|2yH15e#chg}zl zxY^k3q)y2l*z9Do0u_s1YF!N?snbo?$gkL_>SW*yf~ZUs?>cd-XdY4$LkMpa)-KcTy+Em4P=7YpU*Y27+6eL=!@fZ5K@g{Yg2 zxh@KRQV6DFp!*nUU_oLCN3gLOk<*D2o*lxHnDg->zn%mP&-kG=9x zb53CiQa-UJOg6^qGVwl1IVQ7+Tg;PSmdmJZ0_)dfP@A86sylNAd(SzTq%PMaQjuh$ zt=P!^xFXRF|Mg%q=Q7;p~(KL@{^D#q-Sar;N@E z`@hHH&1AQOL?_9fujb)Y6eevT=%8Ufd1;2p3}{uxwfHk3Z(qcs`ak!W<$uxz<+m!= zAOWq&6_Whc^fHi{_6M{}w9DvkfTzEmTy71A=5Pvfp6wUPa40 zznhQc-;R+Gq)YK{Hz)oa{}w9rQK*GA;@-r?snlZBXpKvp95&=HF>+8i_yc+*O=K9j zdsDEQO<^ZZOJ2#qISbb^Ct3ClF@lIgPeMMJX5T_-_AQjAse}ulQO`8pL+O@4>$cbi zrP(*qc?chEmPGK&?At)GZ%T&TdICRbZmllES-LBE!2`vctQnEkIsnbYcK(%ZYarb93YLS z(gU9;o>ukm6urSxK2h8nzLIC_HbFca+4v(3P!XZoJT|H2JXnXJEu?3S;-e%xV4KKq zq7L`eh8r)*<9K2Y4<5{6|87Cq>z}hzN6%s%K96l!^VywgK0CWf;>Au*axJF)1!;-b zBng@(FTKRErG#Q^t#-1b`e2b2lu5ouJtWqdywu9w$lg5iF{w_TFI^JBEwutV62SO9 zf-xH^d72f=QH)hqie`meq-TU}>EupXVVg4QBCb<%N=df~E0Q9~~);2?Z<+i|iOT6_kuQ*AS}Shq1HnsGW60ST5oJ$|ix&xno^`$3w*%T=Mbm5E+g z02@5yE|TGx7KHhzm!IT4q)nXjh9=7LnHlPJknBm04? z-=Ms9899yKkhzGQJIs>~QFh{HAK9evHlj!%MP5cWm0$!$QTr%QfW;#Zm1k^#a&MMf!lYH8QeuLSc%F>`zGw)Kw6FSy2*G-aCX5HQbEQfYM3WGkFUX zyQqi=FSu=7uDiUSzo8}rNs!b? zK7T`PCPkJ^9^Y<&y5c)|ff47Bi;AWWmJ;<)9|;SE@ z!W3tc$Se`OL@VH@{7Fbc#I!I62#L8+oJpq@;iFKjhg!{mcF))TCPI-X#!TD z@CjP)0Qw$3#+&Be&)W6?Ad&R`+lOJifaKhiU)%LuHX+iLCp)jlRC&=R33<~=TvnO zcZnX075osm2YS^7-+LR+ow1EN&n@#5<=6P6S8=b2!|d~V<6|c}KxNUqzNCju?!pF0 z<@JyFv!Ej1K(W4yqMg7+(}1x}A4SP_5cW1}`$qS2_*bCBM>i{nL9mo;{7L1;coiaDI5evFQIkJ zmAt^YFucGP%L7n>qOYuj0>$Mm-pjFbRG9}K?6MEYtbj38Y!Uw$qtaYqoqC$bF&^Yu z1WYKO%Zy{$m3K|Jk*K#Z`o}Y{0Bu(M_`YXuIByI_cVr4~?*{5*d+O!g&65?lEDIoL zv02Lv#^vKQmE$Fw7$`59MLu3KVG{3B5cl#*9j{cT;ujQP&*(7ij)it!Ssd2OnfM7 z(mS!*%u^LDBlHFaZ#o!o16>`{(O7mqf;s7(3MKA?okHGjYyvhkP)1-_&>U&2NbI(FXs!0PX znNpT?wi8pCkLbKez1MpaI`t+6<>nQDHe*YAzv{Tlkh;cDEnYIAvm<3XdH_VDsF40i z8JB+i_Y zIbPLyn_jwR9gCBbn%&r7D`hbZ9?HbLG9?4vNP>@ZzfMMsDepe zs^;MyZ1PrMm%oC$>gaUT=7Ebty!BIIp3=#CUVarkpwKt6 z10^KXz8~VHVs6{6Rdfsz8^I-V+s z0#$^u2wqm+NiEyDd-KNZ_0G>Z%+-jq-b0Zs8Yzd2jpU>mHLcx9W%6>fkcwst%yEbO z>|uij!J2+rO9j2uPphQx;JO8YXID;$L|5inn4Nn40L#T{PgYwknFil1p6byX z83bi4c8a^gtc3KEN$WInmi9B~K+F4S=`=+%$2%r5bA)2DG{-95vPlg*enF4zH)*Zc zzkcT;uL3Sz`a!(0^iZT3{V)EbTe%c+1O=LyR~-oy#+i}A(F@$d3AWZro2V~uDTHX3 znR@GJ5H}P;k?bFWr6ewTOC9(r`F#9M& zfAZSRJiiaB-yd&iEs(XHw7q2Qr_ryI5qv9%XYpLtZO6sSYuk!^+e6WxV)it8S}00g zSj&RWy4qG=Ff~RMOct@=KLYna8EZ3Ftp~rH_am^p_Odub{nX76!ah=^9V?GiW#6sY zm^JW(D$_D}1qxGx*W}&m;c_P|%^oL!H%oSTgILRW|DYGC#j)Y-uc=P~Pp5&&;CjF0 zeX7`mYF>kS=6?UDNW4FG2c~NE>SvZHEm|L2Y|wp68zY{!>#mv-=clo$&c&Mf?cHac zvWp6qtGHy_U$?R+<%deEwsp~c`}?n9t7>OS)!{A=6mY)<_1a?I$tnENZx~o&DduUA zqk>jnOF8voK^b?4c%T&+15#e7oL)0{>KVORu)tiV{3+s%ncuyLDj*aLbp*JdAVI)O6byNcPhV^`f0~%#)8?R zk~KQC>b%@=8#t*=I94UZj5M?)$P1{T1t?6f$C7|W~j31#(?OIntPG+ss zD)ZhVQRRhSYgQRN>5Nx7=>vvlT$vvBdUY0kj}UJ-IwjuF`U8xd61HV}uVAi;@wjR{DXd+*AD}g+LyONb>N<#6Z1R z(2v&%SSu3VE+x%!zu!Dtz>@yi{{k=dGW-7U2_id6hSA~i;9oh zg@;#{FpqAQhXHoYVfxSQ zQKg(2+Qg!81_Sx8X+jAqeI|KyRT<)eX-c)Cyl9rbzS!35ym_(HJXnxh9rKzKc?;z| zyu6t%4q-y&@R)taBv}7Wb;k}#3;8lRKK#rLO&R)aHqQ<;nbp8DN(mKYXOPBWaDL!b!y=NvTH#l{MU#{EYtla(MM;74tP!V zM@VgEC_(BS*v!wU=E=OAz>q(fNze{#C|Vt8`MoB<0oD892=+0lodkFFJ~b~4R!;b$ z_e$iw_`L&GpTUgAioI&I3Y$i`9#w<8HWLQV(wt>nR2O`LKqa>gObu}KUU}1I02cda z@;Xl$iBw~Y16KZdJ4b2i;#n-J&#IxzKl7|V^Gv)BGspe$WX@_`ZcGvve`No)Q^>sM zqxGW(c;pgUl`#69*RVFQVsO2$hFQ=oB=n|fz<1Rc)y?cf6xFT7c0;>+5;OD%tbXeC znlqcqv#(jhw=EVZ;oC#@=w&#+Ihqy4)Vqv-TjTqIeV`kA_c3EKf1|l&g|X>1+3S^j z%XHt;z(qkaFO7BaNxreCTz9;$I{Wb&`Jxqi#Jc;*Z9<$s0^Pz*t+!RLb=1o}S(x#t z{|)k*{w)@m9IY#=FVakr08SIj9t==vR!?iu0&=BUk3Xqd{hKbU%g~W*U$z_D+ZeLX z?)BmJD-79tJIC%ffrn(3JO#JwF#wEM%iw*J`EAqHvqYdbwqMMCo*!r)OcDJ`<$PDf{{EGHll$b}NS|#{nTx} z+=s_!1p_bR!J`7`N*DZ3g-w|5O9WQ|v07v=m5=Q0pZ1%l1OmS^DA~T`d3VD2tmB3M zAh+s#@;Y~A9_IJ2m%(|Nn(wYBE4t101rK%_D=2&1N=%v@OWC7ue$6zqSgnQbpDplJZ*&KcenHDfcD*shLWgG9uLD*g8D>yGW?SmrTc&5dywyE{b(v;&0;z6tU&pdci!8`Q zJKS5I@U8yPeYME9VvCy*%?e*Mit6uRMaEbCj{JF8q;i%oOfEFSdaAqH(?rRmpnSX^UaC5Erb$yCP@Ijdml{utifv;NEb_ZRN{%8lujkd9_adAf} zFw(?%2V=eXBsLLT%W2c>6ah`#+{#X4*?FP;Gw{`rQk1;*dLioba5`q z^(ZcGy-#-6Dt+Bq%DWy2{Xq}B8;xfRNl)@8(5;H5)H!+c8qxRN09;?R z0D7MSP~5{(OkR!RUnW(pNvo@1tEe zr%$DRzxaZFhg6-q&zW;urPF7J)8`C&dq`XVBwa$fpl^?EgymitQ;1+Mx!_VbOp_Hv3-Hf=o`GO)QPLwsyN z(k~xjJ9E^-Tu01VaZSwz2J-ow#hC(Bs6!Mge(UJIi%n2Q{MPAxmtL>HjCgHfAH*1i zfsNiXIg77purXI;3W(oY*mtS%%837Tbl(-%%QM3Z_SxhG1G-FkC|)}{!ty&iT$OFXUOB9`>Y_?T7v>i45ctLkN) z>rXD@uUv6m`OteDWGA^`h*KkPN$e%dsdJsI^Hj~}J|R$Zn2&L@K1ptotiT@&*@ z2Tc3bdAmCDzHQ)~qMzzJVd5EWG!F7J@p$~c$o&_~s5RHdvKJsz*4}2vb@1QVh$s)- zDJk=Z|Ym5ny=KHF&X$T2*Dm3F>%{B|9SgunnQ;HBT+TGH zi~6Ra!XIc!Q;G%M(@?O3wBs!kijH7WEbDInx5?Nrb`60`OscVs_M*z*VkIp*OF0V) z%t=H3Y05)*MTeELphDe0HBf=>pBgCmmQoq;hm??TZ&bww@rpVoankdRvSu_A}h~*ZTXA*55K#n4Vh2LfJWd zut{|uUc{_7p}=)!dE;trULQf+zKycPa47=QWOhBASoBGQ!&Qtq94%L@zuSq}^%1?q zVn;UVI}5a45{?GE!u6Pap-E4Vk)UTTUo9Os)hH1``3=uwnaoEtx%%)R!Mg&k1!3x$ zTvSG^UA2N^S}6N8$|Kz7)T2RN-*OCfeN^Y2$SJ36Evxa*9Qw8suAhFrEcvn$muV%o z)(DI(GugB)hMm}~@K|HF;Y;8ioU+Y##heA36*m<4d$S<#Bs3ERjG4HgKnxsK_$_zE zSmVL{Cxgpv^IEu&X^Ii^GMzG3>AiJI>$?gsYcvK7eum7>H|;U|xB#}JO8Pqy|MP4l zcqQe>e5MDWoBtk@ZNYGp-|@4_Ps($HutEj*8P87t?~Id&L#DRnQYe1{H+S{xS#wJ; zIu`LT*p<IQA>$m3K}bZgYo%7mP=C55yl% zG_cpW3bJsKHMcq@7F?^4vQ4-05^JTQ$01{Q8h!-bddJ(GiIs+SqRnr*XMW2))Q2t= zH%(qcaIAZYb3;B9^EUV3yflq8wXuik2Z%9m=tD7fI^h~8l7LpfR|$A#nd+ao(e$?D zTNtLM*QM+OpyzK3KquM9S+KW3C77WSG~ZLgf7c@D%9FRb`+bzbfV)+Q63SUJe;eaB+rK=w_-=yp!m`#0v0(Ds042s${TJIRv8xqW{_*4^-}pBmzVlEX)LapXVX~x zya2LEYyeyH2cWRUo>LAARFlq4fG{agQrLHc;>5Of!;6<>lAAa?S3xe{Po@7Ue@b?{ z;W1^vVThnmb`hV6&Nna?P;jpSZLj;XLT#`68{6w9I-k!%)klo*<&Jj;Xz4!npX_+2 z)z7ce@yrWIsjRQ)a=#+N|J_|~iWzuad%n8dK;vt=TmfLZ%Uy51)kt5q-hZmgt=6D2 zUG8=p=TevZgYD!0`7XE6BxK6COZ}g2G1YpheE%e`Ki}m_FJr$9_-}N%?}Bo*E_dm? zNc_*o)#ja=+6cteP7 z*snGbqF$PD;ZzITTaoM^i9u@P{;(M`EZA)bQnoGL5?ShBVv=~KI=ef*GE9*DJ7{izscB$f8fa1$=ha5% zJ8Q2d-4qRfOG1W*CjcxBpJu5|(=aX?##?5d+&qn=`!2%JU;T%OxUdTmTR&%sIFCMP z_;Hb8h)({X*Cf8;s&lem6?6h#Ij=7Viv}wAfgptj;%U6R4vUu+%bvo)Vt29Ep(gj_ z_=@TcdL1$J(nnrKKbOshPFlnb`9`Bk=N?st@wQLvY zj6miGUePy{{Wh#D)^Nn!vDz>>9^&OPr~d3QXIv-DTu+Dg2E}icU}3?2Z+PEG(XTBJ zOie<8Hw~;*xKwFOR^hwXKBzG;nqO>qx{NQ(Jo?Lz~V3(P}syrt{J0COklGS3vSI>7EQ7o6q&h`DBcN}#!Gq>|+26Xu!DE;GxkDWeShtKUq4rk6FE>%6T$B!T6Ih#p z2xLVZ1PRD&o~=z+lm<|g&?)}6$}ClXCq#`Bc?bSg1sPW_HAZLLW+ztoB3WmkPK;`F zeeW2rLER}nzl^T%uI{iqdm&xoAjJBPDPw}BPHyC1L1&y0t(c6?yS>AY2e5UBsLp=wti{#g25|U*mzY;x;LP^7^6T z!zSzQeTVcwJKsgzXzm~H=2;lxY*e9D$1Li|>m|h9RpN}Pn?8inT%rQEA`M;8tgo>^ z%3u|uDiH@#_vM4iByWxUZyRA+(q)=GIfQ9;M{2&1ln(WRlwhho)UE=nL{{KYQ(kb2 zRl_V)4P&Kw7`zp?Cgg8GPEF8%3t7-^iF?fxgKLc+>uY|H5x?5sI}{<4 zuzyTC9C(8=Z$kaCEmB9=ZkUFRUc(qIaQ!H#t)gTUsvcxj)r|yjcIq7OKeTZDYZr>X za#xpytIK@Ocu?CjqaQ-vx7>&xyAZpJ1hDNA#T&|ll`PLG)}Zj$QZwB-7Pcy>!+T*(fe^{r`N9onPG95 zljh>+eiOb$;cXEffOs7HJESTg?}Cy)6lph(3gi1^^?7_YqFja|Pf7JDwOc#oM%}5N zb*TnAU)?s9t+*(!YC?Gt#Zdl<{~gMAwN3RGcUsC{l9#I^=?KkQeyhP{IlE zL{-x~R}}pry&^pJZ73J`0U>(w{IJMaDZQl=6aDA$G)zUI`mce4K?BLE=syV3LkDMW zbaj;2sNarVEZq&*4r_4-@ObnV{e}~8Xlt`%QMtl=MD$Dmr%``TlNu;EG7S}G z3gXBu!l@;{ok;ZbO#J|k(Kuh?WXV{#)%R=TGjSH)VqJ(rFX{$ ziN=~Qy2{%yi1TmA+bl*`{-{g*-$(wf`2S!ry2dXVT{5O*?C|+V%AC-;lX{{cG@{CL z-YCt#y`*YmRc&Q++gzWowzWGpUEoLf9hpC<^87`f*__o6%klpA|D^}Y2v~4mhb0*F z!dh#)`+Sw>^Z0d^+)A$mi9|7DK7F9@*Mg7qzJU*sYEL@1)m*G$<*b?Cgbn!5)aV7w zXvzE!GN#`y^p`FAvM%WJ*Rg*)PL>AwTtkp%o0pVHd;e=)&}^zz2s@N+tg)S3e`3OO zt|#XP@W*9w9=8DpQh-+6ZVv7w?k2vQSW-6e-H1AU^evXOMk*L>#g#LzFaAe>B0D*g z11XG&(cQw^Ae;n0Va)SKx5%}{#OMzgsRNVjq7XW~3lG#CT3K?wJGwn0?s!S<#hYt8x|RIpj&H}_R|#pO%181;{-Kc746E5je&Oqp}?8}wV+kaaPpIyFNs&Mmi6CAbUKt_2VRhTpQ?$)?&y za?$eqP_j4424DY~c;~I8D7ukccO^=1036vstAsJJ6-pQqBGbhk=LI-&Y8ILvmkYm3 zi);~s-uN3EC?iGCwkm~38feGJyF#UO;h4n?)8gSq{)vT&r;zF6LDRbrbw9Ur;s|HX z_9ct%qTl*Y(abou^DZL>Bm|h>Xr2z}umV&8=h^M+jxG-HM z+L%ft+@e~QHuS})r@UY?MT;g?kfh`mB{l*oCF*SRe^=?yiJef3P06IvpQswECTcT0 zF6e4K#An-trjAJ?FrFgn@le~g0JVwgT?f+=rgkQ|L8c@O1$Am}wt$l3f0q7;QzcO$ zG=$RW4h3I>C`_@Akbanf7x6$kM6+;Th3JULiAZ`;H8-hXFRT~TRrd&!ek5+vHf7^y zLKaR+WhrU~v?v^I(D0d?!-PV-+|l--&t$L>Q&@Kd+89JLJ~6-M0=WcE;jlQ#9`QW@n z>Gv!u&%d=2Q^&eoIsGPMS3}bnVssr#1#-MlB!lTZ@Nz4Q#l^>{V(|Vfd z$;`Xf_dek)_zEGtlg@&Bw8q`O?mIm2GKz@K?b+Y|dQYF6Hz*w*?S6xaWMRTt@C&}q z9qXR%HEiKUXTdaFOe0Th+kSD_tsREgx6OMb|Bkt*cq((%n{Uk?#N#(w6Fx4?14S9yZ8%V_N?0BbO8nAg#)SA}IINj@Q&4>sk7oefLK9$1C@V7PSZ2 z%+W%3mh?Uaedn@VRMz`^>uPwEX5KwM->51c`b4Yc&QVnzwVgLUhdJhMCn^v4d@~W6 zov-wKzAPW+#XeJCd$iBUs!sZ6&YEBNW)AXoJ4#`e|12MnS^GmAL_NiwwRX_yYC{kg z0C6%lgj$><1nXALoKvI_ZmQhp^L^S^S?BX*`f8KcQ@uy>hbrx*KbfSo6X}?EE%=A$ z@nR-;U!JAlkpM}a;vbR7oD(KCndCf@KZHJkG9rl459t`ij7uh+_S#m5FNHFBy!6AJ z%45BapAZe4P&;hYA$&|_Sl!>p`y|D{LU&H!M-Q^U4IwDtxtXYc zAudAqq^e{J1=dIvn<1rC!nMYO5=UXH*tIgCDUx-Q60q6A?=>O9 zH26^pW9XJ{NWvrM!F>-Y7!<%6K5ddw{id1vK{3PtYG*=i2H}lFX|WAwnmSc@D8iCF zGXFD`&1PO`?b)r-rdHX}i^1zGS;APa?5JTpIzKGIhbNxccI$~Jx&p-v`@c|@8Xqe3 zNLzvvbhq3=t-FXuu?(UKN=4FBO3-=;Cgz8fRQb%b+`0l}O$f8|hAmh>?KJ^#0V+ap}yp z*bIw@_)Smuw0i~HLoE;EOTP8ZZ`9ezueB!(9;pNmJed4?YKL^(^2)^xS3#-D+!UKexf~;ZU)}B$V9qC;I>gV~-o@LOZ zj1$IIe^6<#{?A=gwPAkq+;mYM$|L+$pex9yt2aZ)b8Sn{-Ww*;x1lJV?=}h-K@mWU5g;StY2NCp{9q0Dd1c2WX7dT)6xYv#i%v| zZ!H{-YLcUl#-LF*FrDstn^Mwb4%u*-{Ab*^$=j#9e$^=-#~!kd~>@f@Fnsq&ks{h=Lc`A zD3u+Zh%09IuWXhO1Aa7vkz@)rw6eDC9@>Lh<4eiD+FQO?&KbmSI~l6%1lc4~@}VW? zb`O6pJF1Y%7&oNT?6sZr04Pw;GhxKk8R<(=9MEpYi>wLcMRHfPHYr_Ti?x`^VKd^F988(;i6BwXyN)^8OV~XCvo+RXO;bs2$0yh&v!A9W z{Y&O|JP8sT@DgXF1QA|0ZT#y9WphV}>Dme>Do*Aqf)PU~vh||6s52AQCaFk-@e5~n zDWgGYTzMgC%Y|g1uwfvgO%BLLvA$tTO8MI4^7entR0PR_#So!M4LO|3M>@PWc`4mX z1(0A5U+WguM~i7n5=LQt9Tdu*Yck0l*(Cz3F-e%(q}tn1A*yj?+uvYEp>T?5X(np}is zDwtFF2bgmvfHr(gSCt$NeFIa*$a`R0!djAEE{*lI<<0(%Nh4~pZCUw^)Ke?+CnvcY zOqrFl$wva-RQ*Y7eEu4deBIAyv3ucKmxs(isl7OCK0wZ)FE=3f5gKG*CKSV z2%SbRrb^Pq9H2gzsMIb6c zsmQit`@d}xMW|;mETO{wQN~ws!v4Fvz`-tXZWs6hYgsA})5JNGlv9)<(H&^w)bJ`? zXyQmF7-=KS&MUSj8`xq?kZof`n@o9Cp{u8BI|TDkYE;+`K?_J{LS&Sf*33(%_%ckx zO_D`AVNsY~B4QvyNatreB#lj(qbi|oOOp$}l%vZ~Fk#`#-79K_fSn5HER4O=?^bn|G#K^7x<{EYw>?3lOaPMoQV(( z1$3&xq7fU7wuyl{2PSexCW;R%SUBS$xl~)gkoQJLncf4pTr+LLC0C@v zVDIq~3&HqKSqK_?I^HO-F|)v|J=L+lK%r-ZQ*YPE8h^2lZZcH3E7ZO(gjR9}OTDTs zsCYAa(~gXkuxnC%k>i#6*(?ZPL>q;AI(o^M>o$dom=8i#{1F;12BW!7 zBb=P7hXr4SU6sKWT;MW4MY$g2)$aVu>1d#SB2ZV@o&GvS=2px?R=F~_Grm&l;uI9h zVm>6yp1&r2DZYC^xdHj09lvnai#Zb>V}qg7LDEM#uC1o%T+}7Rs5$X@#^(2an_?7~ z2H4}QI!8<$(1DB{B+9QU%{a-s$~TNz+OdkA&7~KI=kj}h$_@a!8Db5p^fjy`{&PQ8 zX)+h-8|rfC-G&5PrYAl}E&d6Y*zkrrTv3q-GqPHN8zoTh=crV{75-xL7NI-?$wk20 z6NGmqQYjpQ44U`73+)~m;*!kRIqY-6XwKiXN&n>0OZJklDO4K84q#UxoufKqn95&u z-&}aDf8sp~a3jri8XB!=1Xe$P{~%q_;~dy=2a4Px<=E|= zi`{}@7jm(uP(B>pY?^CL$YT85B316{RS*lu_5@6&1xDUmeQLQvb2C|dkE7xHoKt}Hiu#e zZH{Bpkzgg0Pj$D zmtr|095#A)6I6XMi{0Us6{`w2wDVM0&f-Jpn`GDOOMee&Qur6S!j0aa{!0brbMvj- zL^gq^LPWN#&M2Vk1uZ4&T!j(~dYmto(Ca~mUBjJ2=b(?GQVGwM->WeAHp13HMVR~1J;Nty z0QIKyOdxZoY#rNr`P%5tF{Xr54DXBkjC` zoN8zqy_fO&zYdEK^5W_aRvUYR&WpWeN6jj#16d)xX8}oHpQm=QxlL;NiuYx2`-$vH zwbt!q)on)#t@S@;J10A1_VY^pO^Vvjw;dL(n%eb8OBmAD6HzXu>-nLnwNlfv`a$%g zy#BA~r!mJNCHTF!4i#MVFBSAqknVO=2n~eLl)WrHS)P7t*igi*^eH6T{_kR&?4Wf< zlKIV*2h7uFnhA#!yLkP}8eXL@OBXDz*Pfh}$A((k4N$+I*m?8$nLUf2dOpCpGDz>) zYL2fL=5#by!3Ikk%9|IQBtp!Ba%tMQtHqu1s~fd@zJno-n6gqk=C9g4<1yNiHgU&Q z?D+3_PN@<6-d{;boEYY86cZL8>-{27@C&@FDJ`K1cax2mx%K73aO!;|&XXJ~d7CRj z2_f>$_KUQ$oA7MO(m+#Ce!!;=@x$~XOUws%d>dh9&Jp<$Cy2)PsQ!5p9ViQc-00mS zRbnwi)UXp52*{N-cDy!veoh(w`15WNk zIW*`wyPH(k(V?oEKik<#={`~gOW@G-0|ZMK_&`bCq<1CRhti3;*658%G5SzBIl!wF zp2{=Fd#NOWG()3M@=xt(v@Ql*;M_xV-sQn^-2%Vxm<52w!M< zRbYr01JX^eypxE}hN1%88EDQypj*Uve`ROgNhJGHe)f{`HZOFR&>J;SIT-Giy1V5q zBdK-=De4p2k}eTClBC(xZ97Il5_Ag*6EBr&fR2EH-wS@sDz|t{sDTD*2lXPLLDsAV z?-GC{R2M6^5pkPQt73zXsdv>R(uDf_^**M`##kgCJs}f8unzLJ^lf2cd^Th^_WA zQ<~m|Nst01$JqsXDPZF*w8JE&y{^@>3+h(~#T`R$?rqi!cec+)^q<=xO)A-Sg*44x za7U)^1{~%sIPrwnRKi@yWX>KmaH5t3+H71L8b;*ww)rh7(NpS)&56xuARX1CqjeOG zqtstskD@=6n0I3Q4L7JZlTvIpSB+To%-xMf=ov$Vj zKT48qkf8t~qc3@dy<=S^SoS>ya?T!sAk(C=Y`MhP3{geP3S!s9udsr~vIfbbxCOK+ z@Dv*I(^z(z0yq~gLz0?3sxaJafc2(Bx`Ab)vFwoD=5C5Brm;s-glm=UQ7KYds0Zk9 zK-+V%?9X=60ULN@*~5cb8_U{J}&oz=V8fdnd~OFv0BlTP*gdS@wRy5G(RJXv?T?W`;;7uuyAkam%&^`cRx zn`N05fHVzWEK}FPj|yx^jow3&*TzY_@5pS|E)-xdio;L>Wy&d17)~v-6)&$5r2YyU zpITRUgW7nNF({5k0L(KQv$cGM{e}m&#T1jSnAIF8Kk@u zR0DERKOL-xn=22xls)YJj?C)Z_s{U>!;w$?`ThrIzH^Uq<~!kw&U~Nu<5OYBg>Ufu zxY!%<^H)4jd~M#)g7G&-GX)$wKnpvFZ-QX&orNA}{ML1Gd;)f>~H(YjJld`Q7~mE_O&~;FzY} zy^ZBW`>OZH#A$c`2LZ|P03o(%JtRD?UPbvu0y++UC#+C$j!R$#4wyvZs}Rzj!&3qC z`vLGm*+49^KX4{rtP033lGGQ8DbekiiS~0Y8^Sqn2Z#rW+W|r^!g|hLc9H{Qs5H^&6{H~#e_y&vlon$017cwg;!`$6ai|C4 zMDbkEi#l=u#U+~^31yE3b=n|Q0qVe{sCS}DnB$#bX8<>8M7T)i4{SGB$6hYyLm)Z073x>D znTu91V@o-OH=GCsd@0etsA#4DFAu9Df4tmZ@u(ehuR0M&Olw64F@t0~&LVb=#^cx&04!%4iId_~}k8e0E3?1f- zCMD=dq=FGzIs`OZ&!9~0BBio-#B3{byS_-ok{gurT`4kIpJfhDlCn%;-Y3z7k{cy~TT53%|wZ~ra4Iszt)2zs!&S=}ihXknfZ@CDCB_kfPFA(g4y@@}uMv=}IS_2O)B% zB~{5C8+mJdOMWcr1#l+$pHe_{eMDy@>t=cDkqnHsB#NO$0hN&I_rVgFaLKGBFHu($ zFB)7PqE;s5RVw(0yog+1Dnvut3i~l}`G45sa`0F%Xswc;g`$Rv3ZC@%-zhOyBom=7 z=wY{jbp~~Xsu_`mEU!yuxdCo~(45bt0J*^FHD0lnfY=^V4@v4F$=jo%1e%Sjl7S!` z=I?HV3nhd&)wTnC zWyUeFR3X7nb(|V2AvjFp9gblvBxZmB^$ zRI5$;&qy3n*IAUtl6mQWi6xT}V~_L=1<*f1o^amhSn+HoO2vgL4O*@u=MCz&r0anK zxuda)ZMj^pLw8O*KosEqIwP5X98Wed;(j;+UU{6mC1tx3iE(C5kF(d6_St1Xf%Xl1 zzj)Yt-Qc^R%DiH;-I`Lf8dwbpiDj6o zvWa@KFYwRn%hqlby+Y2S zPO9z)(rijbOgJvY1Vad>HTSX$*C7qc@cq43hCZQ1D8RGg9c#M&v5@oYAF z3cv2?1b#iy6Zp-Kma0taWev{mc@~D_O7v0pq-(F?vMRZzY^(aWaBzPHCjLlbOoe!X z_!_ETiQv*+9;w{fpiO&WLBt$C(GQG zVg0Fs=-2vF?r72K{K9ayr`>I2Q~jyDsJ74~B5vg^Ot`r_F0Vh8A1$$?@>NWJgV}>< z?bX`$F-&&A6CGoa$50u3;q0bZUpU@d&;XSdsJc(03&#{j%v~8zgZToBNXerwW!XQs zxaObc3VTx7-ViSaf0yxhEq_t|R`T~<{(i>av;6h&_X>aS@mGA^X|4(UeVxBc`MaGz zsmjov$kW^N?AIsr7U~J-{fRt7d-6gzX~bRVmJDXzuvAl}<&wyoXI`j^6LmBQ^HNU^ zik`UCqpC7FVK|h_h81?I5m<%;jJTm}f{!r_TG)YRO7?ugEpcIfu2H}wua}w?j)_aX zxi$itlo8TYg=^x{5t0<4C#ZUw+q}?2dO^Kv`7}3qJk+EH=0oi^IYzNc;j~cx<@kq; zCk{=8%#T#SNa($h#3dG7t&o{>dEo$KOk^LC1F^p{)+ePufCoUH0qvgskY|5Ni;dF! z&_q1thn)PG37WrHLih{xA$Aq=_0Q5G!%T%MJ0q1HHXRj2xz0xK%M>nL!?RaAElk$@ zLROhVztNIv1~Bo>#IF$$k4nPhphD!ML_RK&9TK^dm=0ogN=&cB^u>NBAVGB%+IqXX z{3sVI=I#rm-a&jJ;P=R>MN7iTd>_U0`m|D`4*-4Av$Bk_Vb0^y03U^l3u%gn1EO|X zD_F8uUASo-XdwPcEo{`;@n|^BU8S!-9u=%Iv9&!1D^Us-kF@0#> z#nY@XGKU!u_t3n9H*|Im8_#fM57SR(VR|KYku@@u12UAb*|ZFBIb-RUSRbs>2B-TX ziPG4MGQ64l?6LK-;;JSvycG0Hm#N_$XNMSKGo?nDVJihxs-dzoH@G)yr@1pFHb18? z{n}|G6(z{{^cpScX8MQt#SGkhNth)GL3?~>5gC-oDv1n`t%{g{#DGL`VeIz;@e9K{ zYxx;$nGM8&@!&MAvt@nzDUdl%E zt6#~~7){TeBF4mSe{FG%gUR(h@Xd9P3)}ScCy|oS!H#z_R5>e z`VuC0Yx3nT*Ba}q3icg^>&8iz-|>?zTXi$yM#9@?j&fPc$i@2^KV<2z=7S7v9psf& z+xnFNdG#VE3gf)X`XNzt!5$u5J6mA(SgpJwBbQM;lJH)@18Lyk4~ku8$-DeoQBG}` z1IWq&&d5rEJseE1?x9rX1alzH7St8<5j~#9ZMCi;evR2JUmG$+ez~?Yco}^kh)<0_ zLdTf<=$gAO28S(HhKFh_`2ts`-vmFAMl6$07Kx;go`#!)J$^nT5w!;q5pSOnKh(Qy zg&IwxZIhwZA3|W=2Cjr+0qZ1zd!jTpk*mQH&jd0(My80_UA;S7cFQ7q(Cjl9iZg1x z2Y*uRijFeC%6*0EnUc(Jth_Th_UI}WNCzk9UJbJ=bDZ_cY$D$nj6|*#&68n9k;-Vz zwGf`r-BEaRXyTAy$b{N#oyxS!d<*F;R$%=XHDu-*@lSe}O$SL2NGct-(e{d=h4w0h zBj%QDS?XJZINw(5oh~@f5}X^rhS97v;-B{3{*1)b34YW52mGvwBpT-4Y+3Y1w~OIB zmvF+9dC@A)C0uPMj8_TL?5DPZe)Q{VJmCYN+IW94vSGHY3dHEh6RaIbwF>HqcH!3v zCp>C^)m&tJ1xASx-#=iO;Q{N{Ie~wxO(#ZjTGnXW5FKN+QncG8@~~CHm{fOUW7$>~1h;0w%Z;}kxV zWenITIdz)*y7Y3W2QR0)rM~2Js!2?Td9LY@8WW=pvwf|4n@Qbe|NVHOD|)=y+(T5G zSLDK&&nmuJayiJee4a?Nn!>HzgzAu(w@v;9`DVAW@zKxsL{dpm_OLQvb3xI zIM+Inlp-TF}rJ|EX$0gtL*0 z!{*ZRuzBaCuz6r!XMAeyLy$^rR8oH=J}`EfC!XpxQ=Qej)8A7(#}U?f43nSgO6L56 zAuKggDgVNQscbfu_hF}z+T>5y-U#ax-qm30?8-KW&0SUrSlhE$wzEL8X|3KYH_VqK z<|fqB1A4zJpEW!>S~r8fhNf9uj1uweGMaiKr|b$hbzW$WVR)b*!)JJA`ucT`7A@AE z&^__qKI6fNrzcWPRhtxvr03BWHqVi@&L3QTo~kDmY~=_bOL+Q^bZ&fV+kY0i^7Qo_ zadOosuX%x_WO!@xbqQZ$l@Nf^L$@2Y<7fC*$}SlTy`3Apv^uY~qdmV=Yds+IM|!9yT0lzdADLnijf_NoDHuT;dB}Ud+fNOz%N|kx z?h?{6cZTC1WE-k?h1a><>R(Gk+pg#)#@VN}n!t3xi#+6jU*7s=dqrt9<^*rT8`Q6I zMXz_FuCQ}l<^*R9Pl|dou6SzQB^PMxxY6T*8u!RGhe^Ty`#!u=FjOByYYYBPB~b<&zQ}KBC-93ffD7 zlljmVCJl3=k!S?OjeuBOZX}im)OB7})zBR4`}?xKms^`Ax?E4m%9SX$ENN|6KRt0nt5s$p5Y*f6&lo=w(oZWTW1L86JKhm}p-EY}PmzGchS0R#x+kRNRb zJ1Zz+7FiVoqINsQm3dsZWw)SVVssLD1_5J5MI$_>O3%r1C@xSr!Jo^TpZ0QjO15m4 z0xavDsHN=qY}p4?BG}|3yX>?VvOzv*?z8^Dz=>2-MB(A_*VZfXa4V1c>JB9#>d9Gd zs~dhoK6O7=^`?-yA^jJLsoqT>InAB^rJe4q>G7#AKjj6`zGyij{SMx()i27GG54= zHQ5HPfpYaG@XgDXolU&bcm}R!@{%CUNV}-P#!-6ii1ZO`&D?7}HB$y-i}iT%x`aS|uaTA{JF@P$XF;$J$Uk4D%C_zw0(HJ%LU_ zDk>7`DlfZ>IsozdlC&)cJ0kE_wGB!C<8|PKdx4$f7VwUW@YZRNKKVB<++9yPh z{u2iOD?9bqD)oMqI-sUR#QcYJ+N6l7!Zk+xJtj9|mQiAaU0l zrj{+cM1j~V>EDpoL_ziiYQI#$KgUiae4Ywd5RTLxhh+%#xPplJ8 z&Gs{pc>roV>pFlYOA2{d6A(y4p&%O1UksU}0TSO$1GR1~!D+S2E$^+kwxclsK8-({9u0yHB#@p>r* zot2y=;Y7*V_Cx9-bPf+$n?ASSG54X({>6Mok8R^vBRTb>?~t86C68>G2FT>nyo@9q zuoGTY3H|fju4l{CcKq+(v8*UL|X{4~bj_Czm>znvdF zGye97=<(Uj(Q~czNrPLHC1J$eU?h3&1iKZ-^GFMaAnHqY)My@=I|=96;ZN@&yvT}h zS-7(S^~HO#Y4)Rp*F37)zB$t59kXmF< zmla8V+t*-zBNL#qHfo`}@8a>COcrTpw(Nnq5TiK|Mq3{%sP0JjlhVK?5rum4VvjY4 zt01+!j=8#o;tFiTD+ zQ|1L3_ui}BIDU)(B^mn*=G&E(m_L-t%q@C$PsXbrps0Q43>FkYQ;VO>TO^@S1v{{gd5;#KLtJCYWZSvZ(~ko z%et>}y8ssRCA=TCLKbD#gb6|h?8{$m#5Cl2O2*FIff`Y3y`NWfhtY4w(<7tj#nU6A zBeR>LbJ9N}o}qpS0NJv?05JmdiyxsxyGq&4xD$(xXt~sJJ9$^ByosT_(fJ1RsO&a7 z-+ak;5&14w`K}w5kEMZpGwgg-lJ8XVouKm74$H^Rg?uO3`3BY=7frtQ;lL8V z^=lM)j%K48A;)0$+smd>A0ci9WqH@H>2&st>wPpUd11K~X7RLzg>2dLkOw3B+Okpd z*dY(tqBl9cJTpQ>xk16>^YnbVa|LZ6V(z!DM(|t1_&q@RY}p;a6xxA4RQM*T!`vIL z>(cIi2pkMJN9B=7auu?1)~DV59pb{~cB^EDr1gdCx|hyg@A4C<+hAzZb{d|YM%~UO zrIIHB?#v#rel;sWaRgB)!l`^~MvPj7u-O9*{dT{T!j)Qx% zJtVU`uilLWS(t9QaY&vT(l;Kmey|kW`{@Zm62sUYp)AquwsoL=e9ft}N-9N!u+@KC zgR?KY(pJ_4;|r=>@dY*f1?VRwLa|R6XZ;kDY;K<*-*Qvxp5V1t&+A+-N??6$1;19D z6fwIZLZ9ziIm%izR4TL0Sev~qh?53cY715!uzo@l(2-PGUS5!W+7`j3h`|2qM1<^! zfHmETm>?0RW^f3Ot61-vZ#2~hQ1A2^l|4qH0czM{8TmFaQ8LtWIIQ&tuq8=YWW#7} zlWJ3DM$ZpvERvL2~$DI{XDlo2Tf2+LgF0|Bk}sg;T-;YbFLf z$=#65FAcBz&9BwJ)5EC&z_KU{*bcz@lzt!;K4^g*=DZws$>K|Ob7yM5N5J|7Y&jdv z^2AJ^C=U)=5p)-+0nB$fSlC?esxoJmul;^S_3j+nX?94Hl z-`d;JdTz-S@en@#A{ajLm0hHO%`fM73dizNYJiQHV@5aik>)2yEjP&jEp)T1TVDPF4ewp*u z20sDQD3+~ogKVSO|6T@vYwCpu9hWUzaf#YQZ$sEj%NhfZkzMqHYXyd-mXlu+P0=_NMv(MYb|FvAQVl4k z0q|4Qyw_O50Jm9J@N8z&?ur)6hJ4mAH7LE^88)x33Y&{iRxJ&p4IL)>2!Diu*=mRz zDgrKRy70<4&e~s)?=farE7^(uKl4RrJvw^73f@q`K3jdVddv`8JnkF97Sk>8sNp>E zHll?fUWk~Z!Yzk_T-6R|ykw|gX0x$&$EmvFjFGyYRR{E^+J=tCfDb*)uWe=v!&8b5LW=dvTkE9=b8*bywKHc0Et0qq*Zoii9zISMPV%n;Y!Q#wWrFn^%t1 zD>uY@4(px`&}X@-$jr_v{Rb}ia{L#S>;EC6aZ!|h2vm`;6C;NWr7hBe?@*Au%= zU{h6Qwr+O(E6^P-vKi>9{}sANXYqRG%F`~{{%B8qc_cZZ`Qbu*il(z9K2K}tQg~g- z5U(?uHY6?^Z`{<={Cm8$lHRdoM|<0rjbPRaCuino3hLR=B*Xc&r7J$Jr=!g0!%aOv z^y`&l%*18I#=$e=O#$Y|W+Qb7$ck?po*sv-n&7%$+|u)s-;DbGacNimR9xDO-9WZ+7Cx7s=LMY~8RI-xb1Q?N1E^bQ2Gc z4~(XL@lTJSoO~MjEY8%fC>7?3*zHRHJ3nokmdENQEW2ftYbl%yDe6;%F>fR}v2}Sd zpV~VqvS^?&Y~~-Hrac>}@x}MMqZhDVUnb^W72O}I@wua=A+rm~o0QqWGzT)rtNQGE zEZwd;z5~6V6~zQ$c4x*}l@3DR=jmh|e;zp6QgNdQRJH(z>zJcw2+URuw7;g1{B1?Y z-?Q1ZLBwk7iG4ETda=U&b~RSGYV@^jRbLWK;+yp*?h*9EAz|e~-F#IyKawvk%Rcy4 zMn#OV0qe)06-opwufj%+=6#Hf?9jQW1WLrVy#s~JEz8(nBTLXV%0JRDi#JCWS&j9p zZz$m|;hVW|FYir#=V2XHX?BWx*%&md2X{W^julzwQAPD8?yUU}y+2gq3q(sq$BP7- zXMOYE=#(8+`5jUd*YAk-DhOFHc@Ez$8~S{VMj@}SS!+FwXzReKl6HB;4Hzgp=y9a} z+Ljtf3w06;p}|ITBjvaP9JGs5VKY*KoWC#P1_6QnI()UdgXMK(ee0WA>n4Ke&qxlN zM`SZ!&FP$;g}jCMo3HNE9x;LrGA+s9_H$}ltwqonHqs?mQB(7wLhb$z1O@Vgl%Qaa z*-&2_Dw`EONnaf*i{J%)3qHv=*C&Y6*HWWu!OfYl_UtC>K0{5DbHem8Hg~htr`;W8%Nbof^`kbU59Avt5V`jrFpy z7qded6PATqYn?2$Ba@h~>y@v0_J(S2u9&ag`=1EMqJ$!JL$pzWu20sxyFjRfLDQrT zhzL1B`j(398l^605dUo0@H@d7FO2za?OxeCXQ@g~RE4sgncLJ$rYT2*W3?x>>W+o+ zLxnU;j#q_r?uJMGo0rQ`W4#FJsbULR5TfzUy!y6xqhDSt=1kM31nZB(vs{wxlqwaT zX18A1rLzkRGo|(-hORD%2o=Lcz7Z{U%`}S-XAwWLdV8oOG81N^cZa-4F{seSXUj4( zkZ1ZbCE2q5>dk37<)!;XZ?F-PuYQHAMO*LTEq(--#hYao%t5o_aE{jyVG~v92DB?` z0%Z!+Lx#R&{nBFSy7-WqbIu*z(*NBXExt442-oKFsP6}OG zxOYjh%f?T;JIKB&{fwkHAI_s~+~7i+R0|Cn{=c{IY#ld&ig0{m-op4mVN6??I6;p; z&snu@{!;31VWL0<@wJ!6cK&~F>_6)5#(oUd{NEbeN7}H)X1+bt*mI?^J4sjV!}o;E zb8ZOP{Wcrs&Y_|E>d_4=<|KgfjKvyCt2X2uWsR0k_^^g+Nf(X?&DB{PDw<_S%w_iS zQ)Q;sr9Xr2U>mck>PM9us(0@i2$?;(ak59T0a|vL$SL4wG<6Gya0VLv2(&F+`a~LI z^Akl5L;NIEDV!UAvN0q*6fN?g)CkqRx9Tq$BA+DE>?5dsR}_k}sHt|tYV^9-wY!fn z{^>uFqUcM3t~a|yH)dmZn*$WdW|rBNen2TDuU9~ky4wj3&BF8@1ku(!JJY*1{apVwI`^CLbNVlPP@K`Nd4&s&sKYAo7|R66Bg zd_`R`%Jp@Kqb}>r3q;SVYhYwAx>hW@Lj}@;1^VP1%{|_#^0Xwbs{!*W@NvfI)c+ym#uZ{ zGrLp0UQeIQ(TpE+a3fH{KuLcM64mQI*4pj`;cPdovmz}zzx9oTlNa__OBpP2_G^E%OXS?|+rG(s4l=x>p=kfkE# z4HY*+jE-H%wt)-R_uJ+mHcPkFm0SphOTQ_uK*@8jStLAgKz0Lcn{2YoKhhs6XHyh1 z;#11AQEWgnZpAzs`w9kyQ)bQt|+EZQZV*3lpGgZT)<%=c%;TkQ^{KAsK^cbvhf$sR3^0)1#+U~R=G zMr>xF^*$D}P-3ywzd_jKYkKm6fL6a(TmQzWrJm+3&8@rd-~kyPnkq|MtSnph7H{a* zYotDQT&g1VAZuc4>s*)(z<^$w?zKB=A&o-!gEJ1;);glg3i9rTt@1L7?(Fec3QE=gNea@(FR-saXV7^3+wOtaD6Exz4?O@Am^fT07 z1sn0<6=dz|?D`%V2IrMKo%&#N&^~uUUH5N=xIs6V8$!toeR`cQ`qk`)23(DsHn4l0 zyyV@a{%(ArblC_cnsv6MLQL|tqFRU_8l`I&q&mr|o1qQ)BJ0?`LAtiSZ!`eS&H5>j z^1fg79_~9FohUt6q;&8l#4iOi2HjL|1lZ#*qmVgKln$j5ki+6g0wh|afOxmhh`7_=t5vw$r45X}_*>jhYO zt+VGy*#XBJsM7YT{4>}m`G1jffCJr4Q{EDf1J|8li;V!lhEDzRraVUEh{cRqM*qT92>1 zAfP|%Vu0)0x@p6(DI4^-6^xG8TdWQ`lC1H8V62pum1l}dTrQUQy(nnSC9g*h1PPx+z+deN))dw$fXtzrJl3Bjp;PR;N)w!eN)H5$SNyff6I>CupE|QInr`K#wDH!(yWXclA`#h!Ps#?DbEy>+ZmGg#@Z{? z(LS3w%eU}Mk=CoSWed;_ip&jvJqNFa0LpYGSfXU*^-SwytmQ^xmLv2i%k}%iW@EY4 z%g0=t*?3chS{2f}!ASD#Rx>vGYX7wIVC>s+4t6>io%wnpC#x66@WCXn++Q?bZN{yuncSHR$@-j%B&W)uBwVuIC}5)nmJgME<`iop z@H69&h9R}9Y}TKsp4ye&F1Kf~eU^vYUT3Kxy}#lyU`23V#`dZ|S4BWK@m%TCpO%|) zP?o%By|5M43M%7Qbj`p@myH!$Z?chBD-UZoE5Uoo=|!P-P3&HE?=Kr`Juk^80}CJM z2A-5o|1(dvTO-!l--)r#F-}S0DWkP1w;j}xNcCbGOtPYpQMsyWSHatgABRoo_q4x9FFW`xpZ10ygHSh0jPAzXQ z{<@L8$jxrhdX=FC7AwEjDu<^JzT#wB+zx2Nlh%ne)&fBOHLDuJZ6l&iB_Z>-s+M|l zPxvVYm46yloH$HKOEmm8li5g+i~ zUTq{V&aQT!alvD+$LN_-qjGx&Kc5}ZF{|BEYGVb>8_sJl&6EW5y4v0N9aU}*y3V5Z z@(3Jm^=_F(&j&!&^C`VupS+~1zD5h<>8>CA+m|{jdh-{9i8%^1_-YWJkQBNIS8iSI z>nf-uGBeU1Q{x~f<-4VSTMk)t&WdVmy9X~j@ShKD42S~=cF-XMpU$l#XkY<((}r@{ zC*a*tHxNVSICR5`GmW)Hdw#xnYT=%r4|^t{dOTB!YEH?t^I6R9w4GkkEE8GhFPV1*ytOAR|?F!4u@S=x+ZJ)ckhpL+mUPU z^}1^ARTyaZrwq?Nqw>?R@Bq#YCC7XNnt92(@*<`4YI|0&OwLq>2~U@&9?hJ;xuz<5 zMaZnr*Rwr$6zB){c1?HlLGOVZR*YL~e}h}u(rs(E>#{t?H{|IcLm?StWc7n&$T`)x zF7qtf&`*YtYkGda_rFonxT9m5YpY@!-hXagUE5;SJG>&w@hcWZRuMa6DA9VVR9OMFAQ5Z-+xB- z4x(ej>c&+hA#d9)SzFq=(Gvi6~LMen2_A+1|Rd~?>QdpY{0>JB-x%P75o zq0Xq>sp#Vo`%R^Uk{7s1g4_3Nk1!V9qBagf*jD>vpCSAmcvs;_sv?jSQNhh-9w;dqu_S!HS>_ak45vML%>Qq2OSeM ze>sb+BKW;wGo9VSApz_BE{Eh)LG+ztV^=S=z z86jrXcI&N~0BYL8X33sa+pQN_U?NSO>t$J%95I@vsLs}&BGWm1Mb2$B$_{G2h$uJO zo90;v0YRk}a%e054*lp|vuKd8$bAgLLanc^)7xg9brbbMSbpn6d>kOGX0-O^^O;4m z2h8NC%CD%ZYKW@jrpI%{BOL@oo-PQh3RVI&?XZ5%!ps`3sA!^4Q3p-4GopxtS|$xr zPrzmEcL-;`5YBQL^7zK(Hq|)u1#MHyJI$(lyia~>uwnL$8Gw3pGp%^x@ENnkYP?Yz z*3XRjk~FN``sG-W7t$$#1edcy^ks-cJK61OS_sw197>L_GU`4N)z}_pkD41HvH5PX zHs9bhY=kRw7wr#adt`JUPQ?cfuc)hge&yHs#A5MkcDF_(%@&Gk%Dn{aFnS5rLMV?Jw2*z zLG~~`ZBH$8IIxcfdx?ww6rIRtdh5s zLh5}<+pp4=$51MDs+B9ST26ouN?q+m(jA`m(W`gnM)Um|>@`Q5Gn@u-rIs6`J2ze4 z-R5;^-|xuTH*DP)1U2EOH^~mCC|lNdx*HX_9O7%@8>v_OP#+a8`TJ4osGMzNxc{8L znk#6lv)a$Pz5fL$WLHi}J;AUIH1>u$tW-Pch zW?G@5&g2YtsAvQ302}m{5A|5|M!n_z1-C|TsxR8t@_v)v5DFFT!;7S=dXx6EkihF< z-<{8SjpBOF&t7cqVDi{&}4Wy9l#4rk+^1eR48 z_*=+-Mo|0tuBBtRwQA($SaMNfgc9B(mvN$iMq<|WwLA05XHpDwLW;~O0=ZN6(o z5gGHz_#)|Rkr!Qc){2t_EA!Jteuelx2~upiM=q7Dd1U=HS<#{#7_)R%x3}fSTnF9B z8}?n5G;Zm+l4JbRGrPUl5|5Ng7tY}gy_hT5-yMjK>GswW_NtWgc{`Ig8Jd7_UU*it zqKb{LI;yMo+orpvrfKOdy|MA}<>mRY<4q%wZ0Y^v=6|5kzFng^!5^XfP(>znTHpSf z@~M@5ddV|vD6E=lwULgCf4b?n?^ zh+_U^RnKo86Ud1_$s>LT_v*BLz?-vF#UGVKPH*$IqPzi&=^cbuywy^BpUc%@KJ_@E znARPaXPm$EPx)!7T|;6nx<#T_t7tsbI4o=DZY3sjdrR&2hsCu?-1RNB$zgGKOWZ{* zwci~UcaOxK*HX)la}b`?kU6!b_Ahxualmn9j%%s?v&0qJ^@6v{{J!9;PS@$#oe9;7 z4ECt7&kQ4b?lcmrPtto)Q!=u)*5GJ|LDk!*N&hjZwt`%kuop7Tcluc4)aBx>SYCX0Wv**vzvkn2$e%PBeRn zJs(d}S`t$>k_J=BR@nDtN5)Q|%$9Eomy%ctjE8-OJ%>HWZ#&dcfi9sMi| zG|A#B9rK}oPo6C6MB3XY+~Idj5NQ(%3vUW9%*k^N`tP>zzrZ3Qw<6<>Fb zc_h6*SVd1KS{?;f{5rp@TOZHRySmk7AM&<#IzI~&EjJM0@hzA)y>#tD5K6SDfr$Tf zF&Mkn$sk#menkyYTvGb7PUPg%azjw9k`uWh;7TXc>$zEA#XBeg0m#F85N{o)%im|v zj#^-xzMezhT8l}fGq4ty)FX#k9aNO?Uf5J9o_En1swvcs!u)R7_Fp&P);!k;2Iihn z@-{rYwpsfbc{yh#(irA^p*IeymKBo8Ft=JCU{qYQM%dsZGFl1mbyOZoOg?WKhp-$| zeb3U`h21)~Y9l@}8%kVP+O{X>^vziw_DG!lch4B9dI3FMcuHUR4$L^oz+Mh=SV3vR_*h z(jqnL{2)|W6{?;3ANnZQ%B9GyVcPiFWC3TlQ5rZhWKO+<47hbPv8DGWBRIJjbS>oeTj;XWn+-VVyoAP~-W*_{*b zV)dkJGOamO!rk3MjoeqMCAUeBHXSq;z1C=WCfq+0MYvsu2cx2mp}`stK3*$k`?jnW>dBV91NNeIhSi{Ra^H@LjM(GtHq}NF)m(WmHtmrD zGTsx+6pLNE&<^=N-=1e7Pui3DvXh(iNTLo>`N5fT;ty4*VdnRR63fTiO-`Q8Yf2MBZO18szO|J+&CU^WfYMmRpzSnl!N5av}CpL*ZGCdtP~nYh1HuC*+(d38G4+kGZ5i}7*SV1S&DRZ76gYn(ohwBLJiy+e zw5SeeJdAZi4X&sT29b+i-$*Ct|dFB&SB7JUXJ|CZ!q_V%>g}rD&r}K z_VjKyJwUJTjuu3?%Q4>VtA4k+?&Mf0I+S;VPn;}U#B8T&WxlRwN5~3Tz$T#pt%3GL zwIpn}9=KXD#N$4fPNI@^Io0%sVDphcbOgU6V?P%dBfDl~UEJP~-BR68$J(wz&2@n& z-8?eJ%{85w_f>osxXDSWf^gz|!A;NRS11!l^`?wu%ch#^=0<^Wa_rpJ&9Mn6?U{np z-OV*81IFB&DU#z|D1GklF#C3;Gkz{01RR>^xikTcaRhj0HQTpngl)5LN+24VGBO&Z zH_p+X?XjM|O1cK^Afr^GwneJxlyf>EQ%K4P5Ftw1pY2qa7CCi@3pcUpu~37wB0n7e zic6Xxi&OB6*OBB*TgQ@(A>eIOYy!U24_4TKjk4QD~iB}V3 zq5BH^5I2nx%CjZP;hmvKne)0=lG(b(E_k67OqbD*U(hqY$-*FdMp-}Y(@z zT7N|QlNWicGi`je)(K98oL&XvlK9lO4KUVPg-f+$1#PXhiFYG8c|R%ob7R;lv9Lv3 z5Xj7JI!6eeVcA#bAlhV^#EVNn*nDnb;@rPqDDL7fWy@Y3=XUAIRc}$vSO6>nfUKe0 zt(BB#C2kXGUc&nbi%Ua%V9M>a644_O$%dyXwLq#(7VEm|XzZEc$}VHqfOvC*$x{xb zk3gHuK{AI$pSaEX_bcr>q*+jr6MLrk<2<;KnGO}D`%O;l#{Cm}?iHhz;h)~uX8CTXE)|*8rahB%Rn`^Nq!MAs8L9KGHJgbadpF&}BDu1S%+ntD-B=L~jkrU`exd$tHiOh~CPZ6+v!eey> zK^2!`>f9`+tVA_~98b|siZX?ZM2lYiJ8_8zJ2rBo6$N)?NFd}TWb;|1g`+g;bg`(? z2lp0Vw5JCf%LSve8s1JSeXc&ycWZ%NycB7*%&ro40|?aceZsb zUwK!wWu;50ncs|#h)H43Un3mNv=1=TmDcfGLo}1z*{<}t!lygZk0~(U4(R3` zM!52$bb>I}5zi(wv_)FBRZAE5*XJWUFy#>)YU;UA*wZo140Yxkb$v?$@&uq9-meFh6W5 z{%?1KXCq3PY_~bO?i20qTfkH`S1yDM{tw5X9e*&TmMQrwYXbK`l|gq@d*%(oqa#tY$N%Y@hNL@%R7(5RbU{aFLjo>wny35>*fH8ynV9Q z^;#csYEm8kmf=08dbhsze!9_WVT?rPh5a@#;h|6bKFchwy z{jJT_r3rLgIUGGOc$=p9>z6!(gk|%eqxF%4L z9lJdt-z9!XZtG$;f$JnBtUmpsV}_L~oPS5%uc$p?-`9UPw(PO_(#Ofw*z=+q&?A6EYoY&IJXkY^^_l>o{bi&I|;ejFxD^E5^5(k1KPQtTxHJP zau`nqx#@5(f4vmuVe!|;-#~0{<^geL;9u^(^o53YD>q`!@8G8Q=<$5d4;jVa%5PrCy(X%t|HQcZ*7jzHZ;?9Nbx^s6sH?`|K`RnDcPu(}Z$}XB89h0k% z@&a15iq>n<5!~Ay^7ToRj_yMw%|D!Pe_db!8Yqs@b748z^z8m;2|vZ(R{oykub00U z`P;TJFxZ*8eA+V44EK8pXxvy!Q$;RNqdH2Z!YtuyY7d zt9e*_RK3S@?Vcf(O#_tdlDKyMh~%GT=a<7>&oxUGl{>5{b{tE*3Qo3z0>=8X{VuIX z|EgUsP3nn$DZWlRLNMQJ<02WXkA6Wbl7E_{GT%Ar8N0i&NlACl=o4GMCQUj{8eL*N zFWJpe)-&>qucG%cCtghNZ;BR54zKldm4cQk-W@Qq+hTtdT?rB%-18{wLHggw2)`AJ z%>&>imz(s3-00BP@7$>hSlWS0@kg>#)}hlf+mDAf$8rr4nx$$}zN$fm?F zZL)FVY`WQ;qnnVM(-hRhK{7{=tgA~&_L?OhAvd?FyRf;DGrqP1bhvWe`m#!YP=c9C z+X`?id-gR(QmLxBi+(ypY@JFv@}r$$>T%MPS1w;|1V zT?%B&ep|xXtFri~pT)2=et$6f$Hi{TZwad3a&U4wYz2SnyTwu@-d%0y8@qy z#kBA8iYqcFhqNcAaW1kaQ&P8O=_oVR6)IjF$fBv}x&5DV$XBjMj=gNo$XD`~xQ2+| zF4ot!#WWq+#8I8ug2%;|DZwo0qJUvOAiYCwIiR_ity7f}lx2gAKW`_S4t9*z0OkT< zf3Zm0Vj6ICDP3K9?i75Ef*dwp97&>5;TezyAUN`^_7>@-OhK1=qKse(=TLKYOKel-d{!DDaL>deSabt&=F%KpgD*nJo^=$l2oHorr^6tnSP|+pKBTzbVsa zz$_U+6$Mt24@R?3} zLo*?hoEegHEssbY-iyd+B)+4{n%96EwQ2pq)eYxE~2LS6R8aY=J9Zekl9x^Jzr~mh3;QBiNUhQW7dRYiPjOK z?IE7aE^Yj_B(Kb87*=R(>`L95pA#mfVLo~i3}~e~UqCUc2=iH#V3081NHJy+o<(>* z;rR$ZL@g$&Pren!bbIn>K!zC%@coy7*a=?H+3ns$E04!Ow7PYya3IO?=yBxe z&Tt)HNic%-uqWH6rQAq0w65e#V(iw{{8(ByVFD4f4)otElBEZOX6#hDK9J=8C|uOL&5i=(v!> z--L0PFI%q*&+V6CiLt6~u`cE?MOtp>EbDR zC*1x|GESjddRDvVzf`WvD^3m8L@Q2>)&^^qxTDyt{>=?X%?s6aFPk7cCkzMWd`&~I z9MF@+=QsQE!=CPN<&GG)O>f8x)|?%KX-)sqI+4VheZE|xIWxZ{{R>t~Zqwx=(?C33 zg5DUf2l>3n$@I~4H*@vt*#E=cn}A1I-HZQ8CIb^fc*7D1A`&1d8kcCmCJbm^n9&)X zSX^jvq0)jW78eRLEXop`q%gcrrHj>8Tj_Rdy|rqsvZ#;+N!TQS%H|T#Ti;<+7FzNB$TfP_i#MPPC=__0iEo*XZ5ZV;mR9Zc%@hzhqbFkW8eX zp?bjv363lmWIc{aoZ@&?!jAQ&1d;Dh29<^t!A`lgkp^KYFo57?~gn z9T$15omhx86Pqe=8_}I>1~2xi4x5OiauP0SOtiS0q7yUcXIZ;FR%ou(E*8O=J((VB zMt1uzX`&D{Ro40eJJ=GyqQk=nTuM7J(TLrHEU}Czs7S0~^#dLFS0fcGe+Kp^?-SBt zY@5Hmox6>!nRi~#n)gLH{JR@w-*jEH`vNF-4qhiRSVVI!BE}$Q4zgv!K{#v={vlmf z(&mfKr_J2$J=xrK%NCGsZ+pl&*mMWsDbYhC4n zPg#M2>276S2CTa>2E!uu@qi53;+6Y}X487ht`Csml*5uxvW1APhe!FM*^%s#yho)+cFRevN2*7f@;QNEJ9l63-p-X{ z;nE#KYwl*X$VFCgwB?;a1!+dP2Vr!`8^BWGdaLEdqX>;jp>t`hY8?HVD0rIXEg}oo zA6{G`gAj7sJ!NE~U+)OWAb_hQtIFjo+iHLMxKxwrYcYK-rZ4VPQ$|~o_YexP$YsO~ zCBcuYI%Vf*4;)WBESYJ^ZxxJx7;05XkWeNVOA_jux95377@oIMk$rhuUZwiLD}Vuu z?B7Cuv3#c`m+$0GdNwm4PV?ba!ms>54BS^H??%QXu3@QFjIsF%CQqHmnF7m2o*vSyI-A+IzzL#*uFtlxK)5epi(Ad7$VJ^&&L!;Sl~Uu)_8$>y3Xi#l zpo~yAmB8*x)ao3~Y{cQ&cS)h>Wn@Al8 zKwL!yhP})CGb8|gI3zgY3|=8`bSCgzVw#;d5F*7kJAFV>*JkHUNobXeSKst{GR(V9 zzC4hgm)bM2omWV^XeSpMs-2BeKj5akSUOKUzck_4W^3q8KKj5*C9LZene< zb=;Mm;vUd(ta-}3M924)c#OuahvVIrC^*D4P#0+ulESN&vxqr@p}+chm+|E*d`W{! zsqyYB`5I?_^fE?rTEoX5Kz=EhWi>^dpD>v0^G`LUSb<3#9nEvx_SLb6bZlih_DU6d zyj|tIU&jtf#}=vBy*l;-9h;qw?WSU1)v<5s*uRZTmHYR;QmbF-*ljwtB^~>oimlPH z8+Gh6>DU$(`yCzIq+=gW$NojddUWh-I`+PF?2{_?d>y+^$Bs|O{y@dLbnI#!dqp~S zhKfCSO!dZ#I<`+b_BIu}MaMp?V~>qUwb!F!|Ey#GpksHZV=q;)%O$qV*&xBug5O9Y zHAaOhcBcOJ-}SdoroYWnvA3L7?!t8J#|6^QSL)d3^tY4Kv2Ux`LLK`@9XmE1Td!hI z{zJ7lS#EJU_8ArXj*k7k{wZ3W9_n3Z_HM)D|Bo`$8Ji;PE)ZD>DUK# z?4Q!HH>udEI`&>2`@?kXXcc>nj=f*U&Pd0euVRPm*t>P?P3hQt728e6-mYUuq+?I^ zk)HgR12}^-LC5w@$9||{-_Wtw>e%B~q}uz2ihW*U%bfcqI9f1P5~=ZBrDA`qW1A#4 z;`|d~U=g{B7kkK2hDd%t`HWwU3xr&|kGhI(YKuxrd`Qxz={a#abF&OC#YkQx7%d6- z3rsObBeQ_d_5gejV`XI@ud#9>dgb+nu;IKA=jU1Dy9eAmW_H72qhnJ5>D3-cE0AEg z*S&e>0R-YCpVXh)=QPbB7X)Lr48iL#+{6*!e{lT}UkNk@HQi=E#7RidzhPAtV}`uF zHQbi@l`9GGdc$h%)EEmjO8Cw<8l~N``o$H>k8$@k+K=&#g$Q^`AN>>Aogy(NkH#%N zz*p9B#_86Win5w{cUoT+#7R%WnxEpy1}CB#1a)y#(@G?bghpNZw1l za>~@de13&;58OVsQ2Bwe_G0jh>$YaYyLPCm?NH|YXrS@@!+!QWhgjcZV_|)Fe{6E;_)})P!_2pMCJvMAx<~5gSI1!elz1)TIb!$u&Sme8e)x#S_sB=3Nee@nTb1hLS6$Q~9C3 zk~WmD(}bwOEQsvA}j>=8#afd(-T5!&|edap)Xwz$%Zu?h5ti z&2M<$DNDp}HI3&^IZh-y;SmlsiAAKz4h`g)85(81j)&x+i@OH6gLCMx&;{;OvxnLr zzaYn-A%sdg+&02eb`MCjzwbDu`p6#{M0{2-tNs16@D>$6Rt)hfR~&F< zwHprM$O2`Qsr-s4|93oKOx+@mJ8#%(;#B&zZg~!*XmcJDsDtu?C~g z%;fKp3jID$y$k(~EJ{E73RUyI)ZBh$Z_)x?yqo3RK=KGW%6e4`PSEMII?`L6)Bob1 zq~Gy;>Y~KHy>t5Sd?kH&%Yg0*0yk zF2z>7syN6Y{OHIKO=f`LD4rp~Y~9yK-^{o#xqzmHy1OsAj9;VnDduIxm~F$keyA0> zlj@2w-=Y=9%DgG+$En{6ZsyHH=s12E-0>U~eQ?7oO>0}|QX&dUb%KG#>a&4^F zV8~JrXQAP8z(ayPUQB9dmQG!8oPv>=CC73}T`KHS{)@Qcx5a8dB`zU}eDa{wai#MC z^;2-a4$Zrh-_G?Z+eiz15~=dEuIUpRD%Gpd=?9icdR3)c#C8*Piv5%!kR*jfNnJWs zBfe0fRa@)q;t^K(7!jSGssSfP42hk1Y( z6yuQ$074cH<81-m+#D0jA8VXcQF(D|MK^+QbEy76!pd2IVo@Y70HT**|+G)SANOD5wn2E_+%(OrL2LTahol3zM z3)L6f>^D_{@gmSo2GvB{RRl?6o&5;}$e5nj7ie@ucO??)!>V`>=1+ItB;k&hPBBX)<^szZ<(JKL zV6)cDlx#|z#RN{TAB{503f|)k-S3p%ru<5XFWSM&##zYJ;?lKO6D$mUu?Hse+iPv* z!rUsBWh4%ZoiTMR=q(DNPm?x;)s`-vrIW9YcTqsmSM$`_T?11xo!=wr{9dwEetpvU zbwkh_6JKPAO)i0ol-V;3s;PPPdv2>Eg}gmZ;r5c$+X{KZ*8y>>y9)eks19_<>K>ve z)-tnLWZXkEd!qM^;YJ2)U-qKjYV_)QkODhhHCJB}>gtIuJcR<7Oo$oF6N$T9^AXjE z{8SbFV(GH3qf3HaE@~Q`GY3Vs=J=tSt4ASRsMA-HetOGjODA@0Pkt5eI=W&JW=oov zbsg2T;4}H+qU0An_#&0O_3X*T%vDbN-ejbw{DR<>od!6dnj}K=)(tNEIi%5;0mWy| z#5st5Zb^-NvP)CF`Ax29J9@K1y~S@jGl!Anu>8!xA_C70>wcE7<2z(?46h%bx|X>! z$^QdSL+5JRR2gc9i8&tOZ0-$@gij*daTf!F)ev*>2aI3Mf^KGFvl-s}g_&qtE4H*a z>V^ue4efF9PL=i_<=zu2OFE|_?kv8k#CFS=k9xnI@K1?(te-x2@p&UKu|U|)jUgPCZ=|CW-f+GOH|%d{Fe|9TuPM2WqwRPp$_@@PL?o@jQ~-A$rZ;T-lP z(h+#&!o!r;(cp2^YX^Gmw&`f?F!hE1Jh-=W@yIb9CwV3HIN4g{2-lx*Gt;uPJT<*Q03!;{|$_+Z!ggI1Gv{na(m zg6FS9z3N^F&HrxiMtVu_Hqg6E(!Cq%2$SCRIDT4OLj|VSDne(pqgJgk7LY^l6?Zqt z7Dn(2QbDt4hR*jy3dWT}B05cZ4lLs-hsud^sGQ6UD;3K^(4SoIk#x99dOlD41yDN8 zG4F=PkzB1jgJ8UOW!!PTGm@9Z%e-!mmPFp)FN3P>?rxdiqogI_{2OnPybt9$@NJ3t z(N|>s2ehgUQ`3WXCd9kGGv#_B@Nb>2C(c7^buKnzSIb3=9XTXh%(%JiTtSrU0K%GI zl%y-!xAH_{RE(g6&h;$Kv=c}LE89`nhg!0&gRl%(8>>oM%w-wlmS$)A6ZI&?f|)jj zKH>9FkEK2B4f3HJ65_9OOR_1&^x4uOZ!hBY?R$KG6s#FEs+TY0;-?;4I(I(ZHT0Q( zRpONTTj)pbQT;7O7#AUWxeE(8Hu>6j_{+BYhwj9(8xpyEcO%AfuJtt>%m=OjzAOn3 z2JWYWyVV{Gt>#886Y))+h_v(kQazDn2mV|=Ppan$^*ny2zLV1NO6f^gLh9}CTPGC9 zB4)nIx?|3qyw!Ll2;s)1J5S#I#v|V#%BVe$CsRKgr%ljeKsiS3HVqXTwfoiA2hR;I zM9LvpBvg*m z`>cnHYY6dG^fzj`@Dsu`s~VSIM(u69`7O?#czf|gxbwT&U!k#N zfX*C&+0L0iPBTu+JomKBzeLF3teJnPBUTTiQq>WcWGeO3rMqIU6P;@2l3&w+Rd^S@ zs6Dp*WD?Crvu|o>%PMJEC6{l8rzJLD_h*$+yM_=|Z%@f~qxK2j%J$K}S;2AYIh-Cf z>L#g9(Jc|8V0fwqib9BqlP%M#EQAJLGK8e8lHRC|#(U_#FbJZ0geT0LT`Bmfzp@CkS9JfXa;%04(C z6|_3WxIoJI83|W?#fszf#;N2S9ot*^8JXTP6&I)RST1+pEf9U7CmYl3+cMWK&|N2UtwIu5zH=9!&I?F-1+L@6{@XzD76PuMr@V|*c# z^JNnGE6y`&p9Sz)T~``b8V{E3h(D{A z$edfhx;$E`{An}T&o>>*!_C`SXRu6*^zxY9&whVJ`p7?RlhOlp$fr|$XRH{Z)K4o< zMyR8_&AgqpyuT1Zr|07+e9n&(4Ka%e!a&Y2YSBPU4k>I&J)|$CfVw15cMnV*+XCx@ z6d-#_?T=tUR(z{SB*kh-6vx_g9T}2HOzRa#MuEeD3eGoHR`X+&D1`A=7 zqFR{1B`q=09_WN!zOpJ)GXyU(Z^rtQ4|eT(@sl0}W65k@ts6KSz8RZAZVbAspRr^z zp&c1ZVD6$3=`paDFK3{@jKP~y!w^I;@GBVcfLI^YBtyWed0c&SPVhWfb1pEc8051I zKUPw}qB$}(eTioO5m^!?CY@z${yLl2QJ%( zmAQ&LiiZd9sj~9pqmo8ip*d4VT8)*B)nLPD_xx(d#%fQ=o@z7PR9fwgoa0aA_(AL* zYj53-gDEQH>8fUsv~H%G-Al(V3wbIoBxR8eWuax&YX2; zVv{F&QzjC2L9ZAwh>p%s6~K0dkiB26g5SzGtrnihxfrqA>x(Wr1%3%NicQaGc8)(Y z!+&8;+~FULjH`%?&@K7g#Z-3oXDI?xN$J43Tz`Mq4{}RM1r`OY*EFViRt{m_vVBMh z1|nWC%n@It%H^@J#n3{XaYwf)$gF(rdB!V_0Mu(w3&6SVwG{x`FRZuX(TU7yqjrdF zJ93{DKAE*z(5}}ys+dfS=_E$l`&qRE&yi8#-c+O3E@|`2c8Eo3K|sRxA-Ii`ib%MrJ|(IA zk=RtXW6^u3${+#Pk~UYfSL)Y)7a(e$<8BQOguT|4G{MOPI0+cW zZ+}i9b$j`SJJoMoD|f2sFkC2mPv|Dh*>;OhK_q(!|AYC*3XDTGg-(B!&M=O`{D~_hI}dRNzB?!=x9Yp zUyFCjY7xp5Hmd56TKODzgVm;+;Mu%!hf~ZZnCf5sMQBItHc2@J6h8Xem{>BT(zSCy z#PT~+{pyB%NTE^Fj3Eq?vFh7W1DSQX*}?*%!+c5gN2( zhQx~`Vt}+u5u=^k){Wi>wfU@5@rCqk7yg~`^QF^oroi~9bXYG5tCFzu2|I`X{yIN; zP7$|yGRDg#ou708%c~@6s;n){DDD=;)hGmsup;yDN5wjU_CsavltvW+Yyq%KbXBx- z-Ho!xU^CsSDiTT151G(Ng3d((H0dtOz?@>8MT&tEDlnw*Q>)<4-Mt0J4Oj1J2q>iy}TF!CYxy0ZltS4=ykXvr|l*# zB7`s0Q3wUll)70$ArRA-W?bkinbaD02P*Duo!!M$95=SG%j90Iw*=0~vmbmcb>S4x zx9?Lg>JF#9UTj#r>nXoi>GxLIodsX%0PZfzk$tU1Pd_d4Kgqm9l(h7Dm;HkY)r=5qpNcQ?%c(d%6kYdm%d!j2rGz(eTJA=8&?(B_wv^*Amky|6bn52OH!7!YOYi8J zFr#C~$A3Z5bEN1Yj72;w_fz8EEYJQ9f!Z5cd@L4TE_LUvI+~X;>wG2MSFq*FT&6*X zU$c!9eO7j(u@-M|;kL?nFMDYEbNf&0l*WX*)fSBZpZU<9`zZI=MHzM*zq$tM;)6=e zbq_3)N-(d%;3*&4mDJ^|KD7N@UKx+TsAIu?F;@G~?uCUO?L+%kHFJ;0``L5S1=(Nx zRF&=1UbHXeO*B-`wLjG1cAz8aTWg8rN>y`f;B{!~tHX~rtl^ZLC1RooW{XkT&Gu?U zHIZ&lAo_ZWTy+a2qj;6vF=Jh0n-Y$|uH83wDwJ+u*Rhp-vBh4%2XVw!P+x|DP;ku` zj6%{MAKfoL`D&)RTwjWeuTSd5`V;eoRPLYHWD^$Ucr3~IQH2n>loK*Jdy5@}9v<|J z&X)=-#SUhaZ3TQLKb5tCz= z@iMm2xV*AgZ)N65Fa_SG=zfnCd6RdKd-KA}Om}SlMPm9DDGl(^qxI37T^z|26))&C zQQ+M!*oeYeM7?}d7R#qTw>@)=r+juM&WC<30daWak^zSi@{luK4xuU+sjAX>;E0U; zFP%(AJ?!eAFbg&_G#5!#P}Mra%LInZKji=bO%0I}`yHV8d*<}`aXGgmHG`okWf66^ zUxOJz$bC8_5$d`s!Hsu(m}a?&PODEkqEZ`*Nfg{md+3Ti#!9&Yk_%|cQ21m##Ol}b zgjfX&GP)pkR`x*q`XB4X@*=+}^x=M0&`11^_C~G_5+P)dIWmji!@er}P~SwsJ6qL! zx`eOnxjb+ZcgZnQ<%f#pCo?!uoNg7`A2V5-m04!{Mv^sWU>h*(ZCY83&nm5io}$S+Tv z2TT?J20V-4mv2=Ti$s9zwrzB&DAVZcG03YmGJ))6T#8H2uv^s!ALyJ>z;cj*_;nM` zfZ9H=OGGv#yjG^}codJm4zY|#EP~^_%dF3}@0lts6ZSn)6r3hhP3vx@OZ8#^PMTdlX+_z5jro7u1UOFfnRY}UKOj^T8Q;9|K@2el5`}5ho>=!!{;Il0e$Cd9b5IqmLSc6sS zMkOh6bqbwZ%;jBIa4F{Ut?WoVVq=m;t4YEem*;dK>S8$>o4|0Z=hkeW_qDP-iU5;R8rLv!OPy8l;CBmoW0=_ zeHQeVZ*DmAo9oiwybpU(`Z`)LP*rKu%&$?UUk{Kfwah6o)_k9mN;Y+>m+~KUdZl9T z!s%B%ml*Z~m7x@!XRMi7Xi$D^twcvDG%@VE$?{HHLq%BkD(rlVU*s1#zN13pvUi;$ zdsl%_J(t-}MbnFB_{!9(1(7BVk4=+aN#EZ!$)evBgd0Drm#!{h$F-+oje}Y{> zk1_TWe3P5jyY}R7BJXhFeJ)?-dA^c(!11|S?06UVx#KgZQvL3tv~sjiOs?9knk6cH5Td&v3?@IwHh|UWo)(&l#Ax)}6h)D2-Fik#bI zd_}}wRhu4jx)9M-ZfPKEeP(z+d2KhoxzQIsa2UUsVl~Cwxxd=DKdagZHdGtC>dm1I znE$|9edjaKkJ39hPlXEYgUdQL z@|k~?jXd^!6wxwwued}g809Rg zb~mQgPGn+F=tNeicif3zQBHFr{{#p|X1 z>K0$d22v&M_NLy^xkV?EE#lH6=&6Y8q-|BEfqTQBs< znJrlREn0x|!wQ;^YDtr#O%(cXidCp}Q@v z?}j$uC=P#nuaHxXaKxB)g~H;>U6V0dSObnmgicq9AK3W0AlW>&%^Y*^*lcrfR(#@` z%w!s2Ft;@9&uwVSH5+0DaDzR$8$G$3y%CD%Aa{{z^%@7u){^Ufk401qp5;iU=wnJj zUGJ)} z4MonM^pCreX_j{+uBA}@vBEj&Gijx;hP1r2i2)Yut^{tASwyL5@K@H(&*~pK4|cM0 zi&%sRd(tk!jYBtxST@+(skk*~k-wGUVw=@gJG3qyHXl~g2KdqSoS0^^sX#|qjj3RS z*@%fz0m3y+0zzbmkxg0HC&3)ylMLh}+S6{S>%frXpA!tJ$s5?XJ)y&d+XP$W2w#P| zFllyCFdMkdWkMdd$2BuCE5KX$Q4o}b690sbe={9_6rK$Bh*R+o>i8|`_`NEAL@NGv ziH|tn6iyDavWT+kQ?)TtiLTU%{-8cRLeoe&Pz2%OhNCfiEiIB;l=Ib|r)(+6E4z2z z9qN-)WTbY=7z`!qoi|B}!yM5RU&Y8K@Yg5KzjCKJd>OsBE(enxbnpgb9a_1vvh)_P^En4PA0=1r?yKoCs=yT@{H_&@^+6y3T&m1{RfnJ=lh;j$T&qLM3CYkQBXvk6A;)^CoQLWVA0Z#>ke)hZ8X+fjNaAKy`V2x2 z>yS@$$Xr7HrbG6r5UWPU(4DtO2X4@TY9DmxZP9@*=)mPVG#8k zPjr;$ciBCXx!O(*6xv_hqzAzMOasI1gBmEc_bVXR-lGF5?N$x=>}Cy&x7TW5qWzKv zCfk3~z%=`}8Ys7ap@A9pk2EmXUaA1qrS^OcOHbM}G%OuxPt~y83fmJkyh7lBhMyL= zQp3*+JVL{(1Rk#8dV$Z?aErkC8g3OhTf@5rK7OP0fz>AP#~QW;Zqx8#f#1~dae-Sj zEVJ5vRl~AR+s|uQ^d#)xX}D0}$2BasIQGLD9xiZ=hD!wwYFPNU_B0Jw3Ver#eFBfy z@OXhe8lEO_xrS#5e6fb-3S6Y&8iD(0c&WfH4KEk?i}9-MlLbDk;S~aZsNtst-mT&1 z1>T}zp+f9>4c80&R}Hra{IrH27x+mHw+g&m!@C8p)o`1@b2V%We2<0?3p`oF#|6Gc z!x@lswok(@fk$gNU*J*=7YdAxMHy3Jwb_LlRyORqYq(UxGc;T-@ZZ0#(pL&>YuG37 zI~pD@aI1zV3cOy!lLcO-;b{W@Ny9S)UZLT+0{>LQH3Bcy@KS;2Yk0Z9Gc^3Tz*9B6 zLg0xSep=vwhMyO>Qp2kR9wBfN&zxqLsZxk``0c0JW%|xB+5g2Z6PtTzS{Wj0C#tMA zk9AP4>AI$DEKQn`G^~WPZ{bQ}Ur9_Wc~*l9#Ricwt@IvC0>7~-i$II8Tt4UQHiS|l z510Qlk%!G58d1_F@(!i41^zlI>(JZY7?9x+LL+#Zpo6&Nkt@_7WDb`M!f@GK<)~M- zZ!s*yj-?pY(hPNriReS3pcX7aMg?2~PxioG5R-yi69o%s7Q16-lR@uQL1fC2gWlSj zocsUGLJ;^}&U|TFf3jTdC|bW#n+dlk-#~6!3|aQ`O72EDN0buuIDM$4?1qbglVCt} zl!+{|FXIfA<^Xp-hTb7ENI@loH2KaZbr+&=y*kYqEB98rTa-qrcU1-ph__k!P<}r6 zJ;ut7qB9vkUql`dW06C?+zffFhD5;}I!75^avCd%K<2?%xp^o$-$_06)A)kupv^79 z&RY26B6#a%iM7I)LqBy#g)<|XeU-Ut0`ER+>(5IXp{%EHrrhasAYR+&ZF>o`mOH>iv;%Hvet>@1}ocw~>>c^mPp|!B9~<;+NPJ zyeav)W~(KcP}yoqCr#dD+`UrTrS9f}utp$$ z`T`qbpUE$#=czPFQZ*(~vbxV8fcez};_36Xl%lgb7d=K7jdOjXPsS*Y5WU-YpQDxl3OVwA}EaUd;ot?&Q{gMCjxGko`|CMoDjYQ>F#!WH4IQZ@n zHuktc$zD!i-FrvPb=6`+HoH39P{etyS9EMTps`5A@vtur80>%TubYj1<+~!&vP<@eXSayN9vp}evy+Aa@oK8y(DR|O!S!5q~P0* zzfSy$lI@t=cg-Aftf6bL5AyYyqq4h&E{4@eO$ZBpim;qm*$)kpmKZu7!+H|W*&GuJ z1M0)O6HUuWlok9MXx`^0hueL4N%grs-CUsnAT+0^TYhK^Ae6eNTVd!@&i7bT-x%78 zS^GiBLV{1Ez8^reOQJs|x~s@DG`Q0LR`;Ghqs3=z#D1PG9Ud8ryI!53VIO2F(|@GT zlAFs<>A2J9Ws#gmVVekVAvh2WAHB8>uDst}Kg+N$=X~2?xruuNwg^PF?5bZ&mmb$# zBzxSo^2VtO2^DVcX7v@HZPZp8plgN1r9t1LickLUKiQ+P+o9u#1E;D87v9X2W;J0XZ^g~e_vz#MUZ1>~GOd`sZ zB2X{;uOJT7{d#a{VgnRHaeROfKz&Jq32OT>9cdb#FV!u!RdD1rRl-TKT|>4we4EWv zHNu|vSCLdcm1%fR3C)mZ$FXNk7Tl+Ay#z6w_IKL)Rx8_hnT6dm^mP_4az$QQ*&q8~ zsY(9%*CZ8bPJK6;-E$ax#=8OT~)MumN-(9WjVCLU)L0TQ_QCfU^cd7 z>V1ke7_c_MoA$6(e~_CIx=SX~Ido02e+hM2QSIIn z+#bKeSg8bKitLLog%Q1ytr|1K#>(Bk=QcsBirSV=lXl# z?jsI5RmlIkbe4Jc5m=}?%Q!N;w zu*wh@+2@WGT2GU$0r!T0aqR~G;^VSPXLq-Urt+d&B(>(&*)@o_D&e9wz{1EGsSeKSOAPzYsKLQ+*i(aBccR%jtkg4!J|mLR=dx8=$J@k3 z8ThWiK8!?eQpRT<(vz`I$lPaLsMgBcz-z{+fUWlRC2~Zw*|v?^*Cfns8?}E0@RZNM zdg#bM?94^Y;BTh!)Ac_0$nCs^9`IT3aq<+}f=$KA+KAr~sJIeAt!Sky(GaL84gDi( zc6jC-{gRCBVNI!sZO$BfwW3@^2r4+hUxFd{7W*a^0DbNcZ*W~_Wn+J{K4kj`UnMOQ zLyVD;11XyVjk<@a9XM-DpkicC!h$30zwJ@W@P7Nm^i;FKAbNa|&`2LBJH(zbmh)jS zn`@7~%0;|gNFC|$)jOn&`d~vKg4p56zwjFBuTvaj8zjY3$rMkKg6>($YXJ9j%$O*y zjyZ7CIVD>qkE?xCv`wg1PKx%|_9`j}KDwi3beA#O&t7HuXr$Mll5S5+g+VA;BQKXy z=$D4i9qs#I1T6gpY5WyeCFRtne1?4bF}vSYNPyFhpub`?)`)x%68>m+21cok`Z+;n z9|I#vZ0I1)qJ6UM$sbO9TaEBEgxiMK6deK$#43n54abAU3{;D*Xx| zS*6(b$ipAG_!w!cB43M7=9hXHb#f-G+cz((eP4837P2D`i^5Z2N_|Jch{70Qxky%` zQzCluE9qA$@H#?8`zCTRPWOT>E^>|`i6Ry9RIuuTGo>HzU(dIoc9xhg%ijMNzR~=X zTO{^IV)1_mS?G(7&$8cWQk_0o(aXrO;5+Xv&(bS!qDghJE`-a_N1hhCGSowyM!a%& z3Tp~oxq7tjT`0S)_Mdp6LRbj-H^DlD{6dGsR`K3(J*%|+?DK!3? zJ(1HJI!2nW<@8oavpVGTE>_i1667!a7>q?~?_?qc#RFm4VJGxJicMFF<`az$STDhzLD0?v=Z>ufOX~Uf-3mlPF7q`RZ0PfG z;>i^^25%t}R9?t!mE(0G$P4_<* zqTTm;?0f3v%Z1(aMcD1UA|ilZ-%FB+o|;X5$mq9 znw97=WpZGEh*2!S#lNF7r`WQb`pFtin}%OFPfnO(7#_b5SVR9Fw&3rjU9wYgFm9NA zs|4grKvIG0vJ^MdkunaST}ll~+5*vFaVc9Q+XO4tZ0?e@hyLZ)G@7UJNnR$nJU{LT zSf8oXKOl9o;xeRE+@qCQu>6xKXa*ZewZ9+=trt|}-Z)G9eoZQ6{obgR+sBlR_msK& zX`Rj8-+rdK`+v%xExAlJOsw7ueHnZ(ZT0>_+LXLnO!H@(X_F`nknpBdP16lhLcxlj zJoXzk56-hDfMl!ku@VC@*kKso?)x#63dDFP!|m6WGi1>lIxM+gNr2E9D6PP!Ep}6x z=v}_FnBljO58=$!alVw}1}G-YpoQHgHr&@qHnrL&yKqId4R^8HzJgBFHr!d4nqMoZ zLfB%wE+2iSaj@Gvb%*d@^nWnLWqywCj0NqR#nDT1=t1)}EcT@^a;h}~Tcl=DJ)4;LTK zz*^pq^zl{v*y(d?WhZu>rl*i3pQh<4U(%^ABCpn7`_G*Ht?LW93^>;C5J$A%Oc5NI zLwBg-KZlbm81Z8bmBBpw2P$p|aq$CXiDM0!!Txv;Io6PG)J6!zctw7A|0!R@5xKq) zUIKC9wnO2TEVv1ORE7^Pvu}QrfeqJ}B8-clHLrf-`g1q_RNt^)+M+fwm+VRR7Q^Hi zr#Kf{Q z3AGWT+o(Mv`!#G3{CSlw&5ZX|h*~k+Nou`r_g4kGzclKaNol++hc`&Ma*>%$4}~y& z(({+0VCkHpcQ%=^U-ph{80@Cr)~MZC6U zW-UIHxEdVu>L3|{$b?o;q-uA>`!PR98n&X2kwY0xYlXwbqNdPioR;IX^p;lMz`^pJ?$|@rbu2QU7yu z=$qK1v5*v9Z=ye5(um=MswsQNT7h5M>}~IOjNdjGVUbG3S|aw!{8M)9Y-?|=^E_&Y z`XlF($(b;oQ*lSshWX`q13yUfkH%+OUeaz!WsU^w`jSQr<~XglOIoU??8XuAFYTQN z(64s4%*2@DEL0Re#c^0-Y=mM_)P-e#fyfaLu_%YSdZLx$BWETyJ2t4qo(K`XlDFsW z@mSt>sIacx&bG0G$y(Q|)$e|L!9XP3Z17m11Xb(qKPubdN3q+skQv1b@op(2%W=xe zd;3#3-3=wq9sIhFFX)r(N_txN<}DBx?i0o%m(#Z;RrPdin-_l$GIR|xL_e>x-s5ym zZz48lOOM*gMt|vqp?rK*k@Vos10`6{Ic&D$Ck5|bR_jiiV~LsDU=H1Z=NdDTffQ0U z;=_TG_d>MlEi?LHmNz=fQDtoc>G|9DRJj}H7a)7-YdDZ~T{L@{6>!>-K!F{1j*T!O z0wo*fy+e<*c&&Hn&&<>av?MEY!s#j5jTs*+P-io;dyKGLc%c-mMs|DWku}dcviHC* z?liJ8ZDeFIJfKGQAS3%MBa839Xm);b#2RO1(a7l7#5EBj_2?FZK8s{aqfMn>#=9 zl-OoFw*RCL^l)rd!?Ej(;W!rBS2YDDbu%OJFAqbL^?pp)JeG6O$2rud;2wT-)lxOu zo$SERnI%+5>f$~*{{fkP#+rNWK`dvgXdRa;6&j+Z4fY0ys+l8Im3r>npPV^?l4CM$ zHk;9f*gb9Vx9|45Pt1qsyem0h9!k%b?8qIjv4Bp^d)H$*?KrdlJ*-*9@8@kVZ^oLC zJqWiz9!E2Um)OXPQg~)+&QfxtIh0P?VMdTCL`iMufn?!3b>Y%Wewxy$@Q%saQ8@a! zt)7x$cT%LeY>UYRoV0#GJ^N`!jVHI>a$ZM-C)aD^+?cIJ(BatZNLJhxK3)`Zcp{kR zht@bQVyLUGfS7|lgs8q4K0T{$>VJ;6cf9>S5^vvp@PF~P;O(8YXW;ECV;XN?!SDa# zZP}6ke~7ogd`R&2tdCO2@qZ59e*bR@Z*Sq}e@HqLUQ*%aSzF3aav>^VNt4eHRSJxBtyIz;X>3}}j>kWne%eLhwp za?}!_?iYMys*~UIrAU8K!6jl7vNWDU&SuFGG9T3%{474G=48d9^UUz){b%*KsMYJ( zV=nDg<=9RNU4v1r3*L>6ee3BjgT*x`#~D8yO_4Pxy$ie79Gq&7+HNcn!-?!DFuhvAr4N_ zvD-$w=JZ|-$((E$WyRhi=FE@sS3A>bV#1rLIazAd9hJUP9fGo3?3X%69YFt(br%zt zl<{ZI$jzvoCnrVe0jvQ6l3DPz*kS$sXqWK=#RNXR-uk1OlO@3mYffGg>@DAfby-sB z8Pa8PoND$yl2JovA*h&80WzIpTmdC&4wlN0)tt;Rmh2&=?uTx~FbB+V40idG(nw6F z%#z1gHTrU2VWO~Q)QLU4ib->V%ly%~RJkPBkBVSpnc#4hl~~Oj%!uuw5gOVClgrqAi71MVY0b@3xat4o5|BAtf9PmOlX-YpgA zDm@X7zpV-kpXe6+ZtPZ4LHx$2=%OoEGE?`*nP(M?##|e{=ULQ-8okkb?Q5bJPcs*P zIUeofMR~ezm7{ho*cI<*zIG#laf45cM}AFq9kCzBex$S4nRB*!ED(Xg$%(x;hgfD} z;q3m)yvIg6=XWu)8kTyGRh4WvUn!&wOi5)w)mXWcdtmExi~t^D+KE+J#}P>dOZ6y( z^E%E8@0-?6`wA*iG09rsFx%htI6f6FYPQF5?{_OEEdeOG_x@zl@| z!*}uGi;nzz8;B12+LnENAa9v9XluYx&Db`nuB=_et~QcYT?QVb-;I%-*is@WoP zgUuh_aEsaSrNb8qJ%xl0ED0u;?{V`LnOxdL3#ZgdU$oB;1#cmgbI#0R)>s!xTUqdH zw?(|WM0IN$eYDNjV8acX@R(V$A>!R`tQ_0TSXqVk)THO&HndfvbsCwpvf5L&A8;eO zZ69zX%T(r$!eWjdh=aYDZ8X<>NiD0r?nYxtm3m)ywSJ$|o$Q)uPE2h0iOHa%YOiBM zyBC#|#G+8|ib+kO9uq=~##pgR#9gXNG}fgOo`Tx z#v^mpBAu`jPQY`kvg&Ces&{(8)`_JGu}QS>YERv+&&!~Q{@+}-B(gQ7JUnM96N&-qK<4sFJW2brr12E`^CYPGo=(A;}Y z8W7J$!S6W?7CohB6XV-7C*Kr>#!M#ii45cyLd=^NW4NvGinlxBHm_M9Ce?xrntf~fU!Rt(C>@uX* zu^Qg^FpQS0+^G~U6(2^mJ#KU?_g6p=!hQckb*}dj)UhhNS!h2;^34dQ|08qRqpA{e zI{Zbku>PKe&&qmRynY2g9ZcyoPdfh$8eIv@Bz#3E$M}3Z#yjKEzRD~^$+@fpI==asrq?z zZl1_5cBx$YU{>6*be!0d-4VK!d1Tc6of@DJYShI65O6d+&Ghe3Nz^>fky+|lI>i~g z9gNR#yk*qAPAZh7GHOUP0Df7>DaI5pG>tWF=gk~~RCPA|)8CA8W~@;cb$9$hn6=t= zRqR2@h14Y&VI_p@5C(vm`!U)v0g;Ust1%GG`~JS1 zjD}cYgY7caWQb<_%(arYKOCFP0DMB~yFOYg7;Sn>)!mKxRoLt9{>iIw4nix<=%R$9 zrQt-r$5^*LQuUPCzSpR|A1qC0&+AFlPde^=F=i`Y_@0 zrT2~`lety0jiEj&*+N$+*HclQ9dddq&JR8-avRYJyX30dI>gQ4o#4XaKr}=@y(4IR zD0X)ix&jX51sTV#{DaBg29sM^>_Z@O#msG(4}*%{XIyrrur~U$A9Br13)Q4x@oZc;+6&^o+**Lm zL#Snqx9hEKplx;>aPa0N*7oj-csUkuLg1@Ko7D4OiJ$jfYTb~=*_-H_s^5ZYpYYU9 z+7)!rcPevmw@tQfgSH<6bLSpch`S-OK(2;&`Ac?&TFDoj!M7Bm5I5!#a+^SvFwnfa z6yn~c=1n!8twGss8f70(q3k_4;&wL*%6^yO*#kJ3>9QaA-D-DJs2d1mzl@PW*^;ji zh7M*HyuAtUC*eJMRP|zEdrK?=U2L71M^2BC>^a&g5_sM{)t=m{$EfNjDm3E#$nx%s zc(JRmmVtD_k@!%ZS#|rq0rgZPZl;m@Axy<`-_ho=f9#Nmr|){E5<2R+mr9Qe4$ zaacyGPjyAr&(#%B)R$*?8e*f5D?a9-RRx0MnTkiO&>@IhPjvieSf4qJ*$D7J>=bK5 zZG4VnGIaJJu@{kBpL@iyqYA`=`yOwcl?Hy9cZJ!$$7{U2ofWt6eEDX>_JbfM&=N?= zTe5Ter}CjhWBVleS#%-(svpb_Si9t~^}{!*i&%#Mg||p?u|ZZNc$0eo{Lrhdi!7i? ztws_MOd0~%%}5jzqSzBH&KH{1eL!Y*+pNKYx4GSsJ1)WZP^7aQkh!ROL1PF4P40z7 z-slKi8!6iUFbe_%V6FE!-WV6{BVH+){ntjbucRTYhxDkUi3-Zkq}d35C~ z_MZXXjB`8}?KEo+I$-!TdY0bo@GPBLh!H-yXy_-TazvjD1mb4Q7HB@aQ>wA!={`FCr*X(?S)7vYZ-yqFKGl6=F&QT z-D9>sg_X$#%EZU}2=qD8Bis9ovNGwLet4qa%6`vS8z^;!_h$ybiHV$N;2BzSX$!ds+l{UR(t*JO`$zCj5N18ePf|`{bAk`on4Ail z;=S$t=?MFK_h8*g3rCJewiJ~!ZDmqOX#FQ`!~!&poZwTYU&pUfIMCgalvRvYwb|4A zs%@yvXN5%!8wtKpZ%!ZiDG~a+s>6*%@jKaR^4DlZy-l-*DZxE^c#9Hf=pxDEVns))K0f$Thk#0ijSA<0W1KLzR1G{rTn^07<;J6qFw5kp#<29p8WpV`0GqGRhE|p zFECzqAiA%NTDebzP>k9f?+dNvJ}!nyn&KNY>_9TL68n>9k!YSMs)=-)Ob9L4j|PQ^ zbGt!;nCWQbB4nLX8Z*NUMFb&1nGA6dpcKYHn?djtcF#N|9OxS`;VAu|mRp9qGD90} z^oxDalW0Csf@bF>Mm4nLOh}0-;%WiggFVcsn49^HpDa_C!Olbup zwMJ!Gq~w}ZL|9QF=AHpJ}17_&Z$4WSFS(VEy+@l?`#+Ohr@xjUr$wMN_)vUd)#(VREzQMR6 z0wDER1tbyyC^V%IPLfQqp^;o0_lR?=Al9+OgbRXe`DVBX_T=PjdAJY*ZIww9d*y~o zdWX}a$xvhOniVEEJUS)ws0km>Yt3}Y1}a--J-a45Yj!c)CY#*=wi>ViKxeHsAC{ zOKO73)b`uG*o^dwj_Bs)E*u+CF85JnXpYFvy55XjK?{pTNF#x%A$7{~y4OqG7D>*G z?~31O`O0Ty7h`Ox!DjP4m(6##?Ag1MDQ{CLy$(LQ&IJt^?Q^B(c(D%;kewbXU<0*~ z%927=P4dTjRE8&dZa0s6uVlAJRSLHW|7xZDj*nBVN^CRgww!`btgLvB@>*EgvM@(p z@1^hB^0A$DAYZ5?`Hx`NxPeNb`VKkeK&%HVcBza^>n2x{!CJR7RPMF9>Ac`6HZTG- zLD4VrxojG_+a&`ye04j6nBY>qY({RPzfduf9%e%=VWf@v-95}^X_!~S&ER2 z-`cH^2DMoT#&4AgyKI9n(wne|XtgL|w$o5_Z2Ec;!xnwjLJa94P#oTGAe@CZ=V6Qh znhghB%p^~4E8F4DHjL`s*La#0KnwsXD}eWJCNAizHsY8A+_imZYiNi+Trc(qH}kIy z2D&5#>2(TD-|rc(?(jQWJ>|UuhG&zKpvBmqZr2&~!=CWxr?A!c#wcxk_e!KZlXS#l zmJkNc?s5-|JO&LhNnz=vrRtGC`%PyW;#8W3_!|9EJwnqEr!)QfQP#Gfxor>wlTjA^_ex0lDc*2Ry zP)=p-DiQ1sbz@%|c&u`AX0V^_B)PheVpp?|U&*)bCOoolvp*JC$eiA@Q)JHKP>ReU zzDUJ`Ig7dbV;?RX?@lD?`af7F)OB6%8)2bD;ieXKm?=;@j`lW)9!DhiB z050)+?a#M2bx$O4eBJ)JGD!%s0(T)unZ#L%VOP#UfoRy{JT;Znq2DMP*17Ct&(Ts* zbVNZJ{l-P8If{zo(dAs}1(}l#;-xgK$oyTg4#hvF@<_mM6NNDUWeI?XAqil!n@bZ?gzQi^hDA8k0JRCt?QC#=JM7n2&}6gw|_ehjCI|T zUF5CZ7!rplI0djK7R6m&hIud)AKy9DcWii|cs`T2=?#=$lZAF+T#oI}PHlE4J?NJtt;O!Z78)hQx7tm19OG71jV!hqyaJFhDA4F62ii8KeUW`H3$(%lb_& zmO-h-A_T6ilSA?DvP3$skn}SCzpRaIdM4jWE_#ll^W1p)4AOYDpJLo0ZF%Vm{8mb2Ds~Wl+nA1$vfF0rs zs8Z%=dDYNX6}rJEp;$`^$brkRLh-Cqg>p5aMQ8<>;Wme@G(;Hm$+CB=Qx^8h$tOP$ z@f4pXR1*HUNc^aYL~P2h8fw5;<154WQOw#zu9Jnr?^eaFG2ZIY8d1AK?61^YUO66Y z+$S|L$?(oq5jSF9puy5#-x-q?Ue zH5ls=f3IS$k~F50Nf5OuSjB#8i@kwB(VuxRGmh;@6bH?veK4DU zP^ntHU*0cxm$5e2p870X#|~<)PF?+$IYwU=%o}}2FlY3oAxwIICaSp8Gby;dcW9gF zd0ke;V;D+Ufs$>3iieA9sGjkIXL+W}-fD|GGs?EUl%hY8qERT}cyy!B-99rQhWiGK zms_2KbiwSq(_e41MZGr*0|BbNtr7ABmA(8ZCHk$zy z>nl3dHoKlwIxn1n^aaZ;L_vHqCZy4~$0mz(j9Avxy(4w)ks7ess@9T!o&>2{l1D$O zmkL=y*0Uv7W(3-+S0H_wLd|P#7t|c@#bo%%?oY&O!LkvTU?P3cFY3%NVsS?o&rBq) zW;AE#E8L2^Gz`iE-xO?|ROf0GK+pQ&%sLFzNk!VfJy%Xi7J&flei(%(ssompNo ztn+uNpyYR~OP8|Sr1ZBr%0mXD*~9+BH4*!c_;t)M8xA@eVqI_yYK9MVMQGa52r-u( zf;O&?oghKD4U_N35rtX8OK`p%`o7Q7k)6CHI6)pBd6daxh&!IiQAoem3 z;HL$CM#C!v79|M61wSa8<-k(?*bj8LbU}Opfi(gI1B_ApK3;{KjNj!8+d09BQrLC! z7%h)W<-z9J5(Hr;$pJn%EFX*jumvaqXcJ%vz-|Hh1GEZ&#^FOP0(1qa2Qb4QaMSiO z9*K7&HRBBRv#vp88)GajJ_q|McrQ0rNEZ^BjVIt{V(NVk)glhN%H9B37(~0~JQ$oI zLKWXZmL_xx_E`YcUB3fR-G!MP-CaNSS8aZ*W_`&JPLRi zb&E;M=swSna{3A^6ETK?2?<{zusndJNaaxpc)7q!b-4V9+PI#Svt?4oXYi_K~R?1*iqgGB~}9GGQE?HYb&Cui$ufru|=BDZTgq zWN!W+_TB|NuHw8OUfpc@0xQ6P0RxA~5F5+3WSQW*bgW%z1-e<1FA#{mmR3g5)vH}w zHUZ151jrjF`C5`DY0}arP13Z@rA<;GTr5m%fx$L`1eZV~Lx5ct3dP0PCRqR9Z!UYz zSxL4CZU5i%J)iWPojG%P=bd-nnR(}(cjjDXA1iIFDL)4L|Fb4o(?Ow;oSB8T*!y&O zgR6XZO{Op7u(*%e*MHt#EpOb91ds{r^S=&C$_?zcsd9q~v**)6$$aeksrgixJ)aJe z`6xhDL~k(6sJY<>Y3|;yVi<}HU9s$3ci%30PcC-fCB8W+jL)dY-CdUzIk{v@W8~zr zEtf@3u5sV(7YWz7?t~A_~z+brbf0;pRi?~XL0TH@LX@d zS(Es5bmeqNJIAooy5%Cslc6{SqtMhX?#PJ=TV953L^#Wgl-FPte1qWuicn3udw&GD z!YG;d2hc?M^L*>O7jL#=wu)l5RG^r>C^uuvml&}1=ZPQ5GQW=ly7-VLmU<{W^o=dw zLdovCoA4evkrnC(0`A^*BKC3l{Yy(UV; z9+oKag)J|N5+Qtx68DP|D`knH2lZTT*Wv4H%^*d{ljPWFE*y@|!fLNFdSc*h95;Ru zH=YguDzbf68$RRwggN{~;ql1rvwWdx_-zYc8r_Er+=e4>{4uh>GBMTmHlH9lz2JQC zBJ3IDSMoIdejlaSgYs4-5B74S;6nsJ84NRlkdI{lEi&;khl6loDp#|6O}Y>43EuYY zF2^G9sqnkleB`X;>yPx%iAE$>N7!QVui+=U572~$Ni?EN9{qD(OBanYaWwKX{CfIJ zYWnNy`)^#=AMM3^|DQ8?f5|Npu%|!rMZ71&cV4@Kg z)GyGHMN2@#`^=^P<-VJr(P3@#%;AIK8*#(w+xQUj&b>s-jFwG*F7|`8Fz&p{#i!AE z#|&(gVhQY2AlVhE$ue}ROr(nQ^j|TQ`tkr^3+{#DAwYRI6gTIU{(*X6$ahGKuP9gc zUs4|V@XGLHGvYT+$KSyokon7Opb|NC+19H;<)37`zjL_jvfd{{xYsHza%x(++q1X4 zKMm_gpV@C_Czc@UGm%qQh6+Ud`Q}6CAUje$9yxV^x%-BxKJ4*FPMymTi zpZ@?@TO znP-Od$LQyFJ&+ipKU4ZCjEO}L!VlB`7JlF#q<={I_s~zvn8+)yMxIJfl%pM{$uIV? z1)xd<4OWX^v8c>NsJrj`$Ur^jD+%0^a4GJZ1%a{Qwig_elW4IBOsb%n+_PNAO!p4N zZI;Ev7jfq+iY9p#mzn^;lLAJ1A_sxCkXMcpDwKWD?ere_0jmYARES7dqh$t8#>4vT;=+;*k)gDLG6O-ve+B#siF1Jjb`r|&_w|?MBqo~CQhK5ha%E&w z@o8iXoj<9pI9gU*C`H4Cqzp#&HmDy$jP+u z4aZ9}jZkLf#!Lgg9O27>FI)Js;mZ`hO!(4;FCD%#;lrh9hlcBM|62@OUg337LGHrp z4Y1!S5dPx=qqJz%jQ$(*Ls!~s;ft2ll=n|eOonUri;7?pgn1&qlf5s~vy>cg*Ca42 zudqtJaM4n8VZl-norKG6@iAX)KH*a-7~nRdrQti@9pP8GVRM}wD#GQp?p}|4O%Htv zuc34KGo2BAUqb}e?(8z<*rdmt2-TK&HSvl!q4nVm=qw1A8ytJo$JGJUL*PTAA=&CM=cy82wA6e~A8h($8@#@hRy)O#emFKS=*% z>E8oC4$EV%io~adR*{C6!kZqN#$R{u&(UTK{4{>TCd^qb#SXO~D#w~%<07`F@HV}? zzxUT1R`$AcI8@w4(jRm0fJ$+GcF!@B2h=UZQ)b$m4I_P&4~wyMFJv_X{)Yyt@w3U1aY1{k^x$T!ou9JpB&~amw5^42i0q z-xFWwjqc~|M9Ub*X5dSx0xv(n3*E27#TKD2>N99VHF5a2@!N_voZGKDaLBM$WZhq<@{yF>zWN?(p z11y($qDRfhA2PiefAHMfIMa)9+l;)HZVtSb?zy*hW^L|ZbYNg8L)T{)su}+bUWZ~e@IWf|e==B@!2$CmI$kpWfVj}IEs=n>rgjsq2-{3_ml zgBw|Jumk#Jx2IpK`|(-04-Q9$vOT+o0KjYh)J3^aQ8Ao68HlCl?%j0+h^!g~Rj7Q~icW+XkfCZ2L&jPLq>BKQBbXP)C1|rt@Z{i` z2<>?trdIQ(OE5S8bP*2xsycfh>@G8Llbhgx!ab7DP zy#lBh4W9*ckf4zR7L*!+_MNx>F(vG0Iu`_ zNf+Yr#lM7iB>CnRB)?1gzqD;Wn+ zPpg=@EJ-&Ume^yj0Gb(8L>=x2^w9ZY0l?331ODIL4)_A0HUXG^gw_adIB_t86*nLFD)Z43*{s z6uw|H>F#62aZdFvZnm!Tp@lfOMJJoNgS*YI;=;ZySL`+)qB~JkIPuTkC^`bznm@io zjvS;c%8AsU-g;H}FVT*!`|*^!zq7aNJlH$!`Zwk&<}g_Rf%;@?Xh!5@S?J=CoDgrq z>>`hbCU6T*X6XnFJ<#ssG$+6T*S^8fFQWrjyWUNM=z87vcK&8~xoZf=Buim}QNH_Y zdrszqFMk)BJPAIYUVO_X9WT++{0EC&Ip7>jF@2Oye7i6I$GavV z6}}kPwTj8HBDruIf`%{rtayil0Tal1ua5#B3=*(Sb6k&NpXak=81xAgNHGS5s# zZ^WH`z4#Qn%k_gy@pYRA5a`=|p9qp$`8ZWD`~nSfzm2Gh-MuquKOn77q6hK0Hst@h zsumZ2LVeerj@y$Ugv)4qtxbITx?*Msv|=R%kvzDEI&n4j&Cs($fF^5y_x%8t3S109 zUQX)wi6Svqm8&Vi{fmhh9P9KeuAOrK;#U~gD`s{AuEFhU@X2ky-Cw$&J#6^Cf6qCU zj|BieF8z}?X)TBmu6%K?2o1wRG~;S)5T`B2)yuB%RMCrkX?HWLFDe~iN->5g<^xrM z8kAFC6he|5Ff(w?1i8QgEEgNp87IUv2Aq-mCFB-;%%jpLvg9lK5U#V^i(Xmb*?l_% zLr7DLZ$=$zr8g#r@(D5Hdvp^E>&{{T#j@fL<9&{DooWs0Cn+;Kci|3+; zDo6`}!{xXpaPdrroiFb3$edgr^<*Q!Jb{x25Z}^@dxx=YioC3AdB*2kptmrD_RR+DeeII{+r~ z-I+Xeb~Fy>9O-FeKu@ z82QlW?k&aq5&5vq-MbtfGy0#r=ehUu@I!auK_jyJ6511hZ~hWzEr&f$sZ znvdLww277GBjt3LP)qE+>}^Qlr_IQ(ZcNNJAHjm(mAJ}$WDea+qWkda4ttup=B~$K zD3^tWIc!(<4h&@#4qQEiWBr93+KCmkBROaY@F8&CAkaK8g|rs_=sxIM-Mw5F1FO2o zhwI&U@yti$!wp*sA|Gzt@~Oy&fi06GA8y(*Jucd=_hB*%NM8e3@kfvr?EgoGB_>8? zB!?Ff``5Nu9k{#XFL)61o(SU1rSFCBWbesGcAX$PPzZVw<)JGRYZXWZad*kX$h`H2 z=ssY36`pBW9xnrcMHWtpM-{-tf54M%MF_xx7DHDE@{j@`N)H@Q?|q`oP>#L$!odWL z2~UGqOk*lyMS(ert`Nj}6E7szwItSMNn)KBe-;ryo;8a<3O}jD7eOUm-%iqy8bKXP zA}~->iDgmcPim1+td34&=At1J#j22GMnR!9LeKvhpg9{9V$Ow<5Crb5qN-gY7m21S z1ZQT#BjBr81sy{fG+E@C&?3OT1SAM9XZ7LRNHz&~2$&o<=u=#5C9tur1r|eg+#|N?* zo1J{kEE_P(_LekcyImgV;|qPu$S&nM5JshW;MFl+Mo zXwJ}S+*A3jnbeG_t15lYT`JgiIM1LZzwKA7)$g$5#5dBgK7d|}Kfex-_CajVy_4hz zu?sx+rp3NI$ud#AxKLP+gYq>z*RqZR^#&m|U?-p$-}LiA4C|C1Iw^elGz1F43BQSS z<5*Pm0FSRhQrj1E!)`HpB+i{}Uj$bZU$|=mKHqRJOhyMVVO`5@!nYH-jzAbHKSg`f zLt%WvV>pZ(PZlFJs^ISXE=acMBARyLB*yg>yEkLI;dsT;W5G+*=WC4EzPotDk;bqG zeM^sZy@8G}XWtLfLX*sWSa6G}huCW?#pn+*5V!`{q2?C7vQ{Eg%5)A9N6BUNdE$k>uo+g z0=_Xi{PO@mmQ8TiqNe@R!5Y64XZUal30Lq@2yp6DX#8^s7@ZHywb92h4nT)G5W5(+ z(71nb0i%R(lDYFkiUC0!Ys!v39$$rq zW3ov|=I;Av#6b7B!!3-b%*fuI*iC)#VusE+5Ix1aHF_{%oHnNnN8fo4_e1;&7q&uM zFzLBBo_puPi;xaC6zyJ>z=6L03FvY-00yCD&VlEKaJ>6LME9VmDN9cT3&NM1y>BKi zGMBy>o`5qXS0yGzK1>f^+V^buBADEs@5$IFFQCC^w7nTGLecBZ-G{4mcH}-gFm&tzwohAu-T?hK#9s%PUS30Kc!i2z+!PvTY)wU$w}BC05H zgSqsn@I@k8CeD5KgBNkFMebl?K5l3e5#ft+pOwiOMFgP4989=nsH+E|PkM5n^y1M8Ura^Eu-H}XVIT<4C= z&ZcLM`>scF=vm;tI~SZ2IkC`v&p#lr16;R5J9g6vo;!zZW zL*tQGi*R?CC--y+$Fr_?_kIt-(Y@xQm{!1!`$CzXNn0~9DopY))(dTbysXpAeL1w$ z(>p)>8SH??UPY(Fc9t=zb1EIrq>ju@9t0}2MA_{)RPePZ60t0E`zx10xJZk@aH z=wE{Z?uX(N6Ibp$x&!{mlN%D#b{<_Xyv2!0JC7E@YfgElf3j!srtAlLFw}w8@J|h8 zL=F~%`s1Q|dY&XgG8}=HC&`9CyJ-x4o7Le{Ovt^N_mZ0L+%!n^jctP>gxP?8| z3INf4@r~!A|aOTp3I7$8MaQ4!J;mqj1L z1%S1ILgv1Ig9Z12ScA+5P&dH`P_sOJI8hHcF&_g4q4_xwTP{)oG&08W@sfm|ikN0h7IPyx7+4~#z^=f0%=Be!a^m^b|+?M0P5MuWJ zRt`aOjBt!4{p)Jtmtsfc_{417=?Q)S^WqHRtMJ8|P>AHIR`{4Xg{M9O&A>}xJkV*m z`#PNb1o|f1`W7NA+j=9sf{hR#^DrDY+s7*4iT@oNK{T}B#Mt#BDH{w-cdbsE15e@( zw5pBaWCQnm4@dXr4nX(VvmvNh*?*0%@Np znd191(O$nm;FwGiDW57Pf=G2{Hin?g`0HqO&OM*^_P!Phkh3-dh-4APN}N$L!4Nt8 zawTV^&Z)?rLl%)C7&0>nkRzd(~k`-C-~B9I1# zqJ)n^vr%YfvQUoX0vtzh48vn0QFuH)4`@&tcwi625=>B->c0$eiBrA#OU^dYbPr~H zPqa3l3PQ*p2O=l03w|nc@-vtVPcGUz{pu^TAPl&&z=M;oE~4LnzaP8!pb);(0D;Au zyVs1wX5lI|s6D`2*dcu~wg#<}n4(^8W>X!BWuj;`F`Y0YZxnf>Z+LQFS5m}=lUR|9 z*~UxBLdXtT81>my|N1G)#rQ-cryVE|N7O&H1<=jUL*B@VCGNY|qMJreEOX!Um5E?5 zCo%3)JP^g_qPlaU>++M+a3sD|%)b}WMD$SXcAySh4&iTrKekBZTx&>~2%iEKQ!S=& z$OSu}971pLM*j=aLGE!?zaA)pWe>)Ox40hQ77lLj>pK;m%3h3@g?%rE@^@~MCdt(^ zykh*jid8>8qQ;!7<8x6pO*7C@(2P1T4{n1Hop(O4q?OS`K&3%5B4iydQW298L96FU zTW4THM#h~2&oa{##0l%?>KVmEr9hzahfoh&L3GCyYA!@Z$rokQqrRMIP5w?p&?B4l zph`aWS4cu}@+4Yx3~_QT(9y!=zlScO>~S7TBnm$=Fc7Rl0>1nWULXr9rmzWts#Bye zg$Ht^8GS!~DY8db8qdbCZyPz075IH^ zFZ&=oCVuy5&w7MpJ=#+QmOdCWQ4i4pYm8^#gtNq~ z?_GhmtH$Mn2rWivc<%gMZOOVj;2N{o&!*0VE?Vn|x|R*_`tG_@#h>^<{zR zMd&iK$c8vMh%&yUGTU-+`g8TfUqe+r(H+wDUe8F(lCiBt3nC|0hA+hm1S9ayCyOxzV^S4d zqgci^u8Ef5f&!cWk(1f@>c�<^qiS`AK<_3uku8-VS6E6lFU;j-t@$2aUfE@rp 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