From eedbfbfe728e329e751ca2706eeacbb88c38aff2 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 5 Oct 2026 10:43:56 +0200 Subject: [PATCH 01/27] Add an explicit public API Expose supported user-facing symbols from sympde.api without relying on package-level wildcard exports. --- sympde/api/__init__.py | 539 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 539 insertions(+) create mode 100644 sympde/api/__init__.py diff --git a/sympde/api/__init__.py b/sympde/api/__init__.py new file mode 100644 index 00000000..515eac95 --- /dev/null +++ b/sympde/api/__init__.py @@ -0,0 +1,539 @@ +"""Public user-facing API for SymPDE. + +Objects are imported from the modules that define them instead of relying on +the wildcard re-exports in the package initializers. This module is the one +supported location for convenient, flat imports such as:: + + from sympde.api import BilinearForm, Square, elements_of, grad + +Internal SymPDE code should continue to import objects from their defining +modules to keep its dependencies explicit. +""" + +from sympde.version import __version__ + +from sympde.core.basic import Constant + +from sympde.calculus.core import ( + Average, + BasicOperator, + BasicOperatorAdd, + Bracket, + Convect, + Convolution, + Cross, + Curl, + D, + DiffOperator, + Div, + Dn, + Dot, + Grad, + Hessian, + Inner, + Jump, + Laplace, + MinusInterfaceOperator, + NormalDerivative, + Outer, + PlusInterfaceOperator, + Rot, + StrainTensor, + add_basicop, + avg, + bracket, + conv, + convect, + cross, + curl, + div, + dot, + grad, + has, + hessian, + inner, + is_constant, + is_scalar, + is_zero, + jump, + laplace, + minus, + outer, + plus, + rot, +) +from sympde.calculus.errors import ArgumentTypeError, CalculusError +from sympde.calculus.matrices import ( + Inverse, + MatrixElement, + MatrixSymbolicExpr, + SymbolicDeterminant, + SymbolicTrace, + Transpose, +) + +from sympde.topology.basic import ( + BasicDomain, + Boundary, + Connectivity, + CornerBoundary, + CornerInterface, + Edge, + Interface, + InteriorDomain, + Interval, + ProductDomain, + Union, +) +from sympde.topology.domain import ( + Area, + BoundaryVector, + Cube, + Domain, + ElementDomain, + Line, + MinusNormalVector, + NCube, + NCubeInterior, + NormalVector, + PeriodicDomain, + PlusNormalVector, + Square, + TangentVector, + split, +) +from sympde.topology.mapping import ( + BasicCallableMapping, + Contravariant, + Covariant, + InterfaceMapping, + InverseMapping, + Jacobian, + JacobianInverseSymbol, + JacobianSymbol, + LogicalExpr, + MappedDomain, + Mapping, + MappingApplication, + MultiPatchMapping, + PullBack as MappingPullBack, + SymbolicExpr, + SymbolicWeightedVolume, + get_logical_test_function, +) +from sympde.topology.space import ( + BasicFunctionSpace, + Derham, + IndexedVectorFunction, + ProductSpace, + Projection, + Projector, + ScalarFunction, + ScalarFunctionSpace, + TestFunction, + Trace, + VectorFunction, + VectorFunctionSpace, + element_of, + elements_of, + trace_0, + trace_1, +) +from sympde.topology.derivatives import ( + DifferentialOperator, + dx, + dx1, + dx2, + dx3, + dy, + dz, + find_partial_derivatives, + get_atom_derivatives, + get_atom_logical_derivatives, + get_index_derivatives, + get_index_derivatives_atom, + get_index_logical_derivatives, + get_index_logical_derivatives_atom, + get_max_logical_partial_derivatives, + get_max_partial_derivatives, + get_number_derivatives, + sort_partial_derivatives, +) +from sympde.topology.datatype import ( + H1Regularity, + H1RegularityType, + H1Space, + H1SpaceType, + HcurlRegularity, + HcurlRegularityType, + HcurlSpace, + HcurlSpaceType, + HdivRegularity, + HdivRegularityType, + HdivSpace, + HdivSpaceType, + L2Regularity, + L2RegularityType, + L2Space, + L2SpaceType, + RegularityType, + SpaceType, + UndefinedSpace, + UndefinedSpaceType, +) +from sympde.topology.analytical_mapping import ( + AffineMapping, + CollelaMapping2D, + CzarnyMapping, + IdentityMapping, + PolarMapping, + SphericalMapping, + TargetMapping, + TorusMapping, + TorusSurfaceMapping, + TwistedTargetMapping, + TwistedTargetSurfaceMapping, +) +from sympde.topology.callable_mapping import CallableMapping +from sympde.topology.measure import ( + BasicMeasure, + CanonicalMeasure, + CartesianMeasure, + Measure, +) + +from sympde.expr.basic import BasicExpr, BasicForm +from sympde.expr.equation import ( + Equation, + EssentialBC, + Mean, + NewtonIteration, + find, +) +from sympde.expr.errors import ( + UnconsistentArgumentsError, + UnconsistentBCError, + UnconsistentError, + UnconsistentLhsError, + UnconsistentLinearExpressionError, + UnconsistentRhsError, +) +from sympde.expr.evaluation import ( + BoundaryExpression, + DomainExpression, + InterfaceExpression, + KernelExpression, + TensorExpr, + TerminalExpr, +) +from sympde.expr.expr import ( + BilinearForm, + Functional, + IntAdd, + Integral, + LinearExpr, + LinearForm, + Norm, + SemiNorm, + integral, + is_linear_expression, + linearize, +) + +from sympde.exterior.calculus import ( + Adjoint, + AdjointExteriorDerivative, + AdjointInteriorProduct, + AdjointLieDerivative, + ExteriorDerivative, + ExteriorProduct, + Hodge, + InteriorProduct, + Ld, + LieDerivative, + PullBack, + d, + delta, + hodge, + ip, + jp, + ld, + wedge, +) +from sympde.exterior.compiler import ExteriorCalculusExpr, augmented_expression +from sympde.exterior.datatype import ( + FiveForm, + FiveFormType, + FormType, + FourForm, + FourFormType, + OneForm, + OneFormType, + SixForm, + SixFormType, + ThreeForm, + ThreeFormType, + TwoForm, + TwoFormType, + ZeroForm, + ZeroFormType, +) +from sympde.exterior.form import DifferentialForm +from sympde.exterior.inference import infere_type + +from sympde.printing.latex import LatexPrinter, latex +from sympde.utilities.utils import lambdify_sympde, plot_domain + +# ``PullBack`` historically referred to the exterior-calculus operator in the +# root namespace. Keep that spelling and provide explicit aliases for both +# otherwise-colliding pull-back concepts. +ExteriorPullBack = PullBack + +__all__ = ( + '__version__', + 'Constant', + # Calculus + 'Average', + 'BasicOperator', + 'BasicOperatorAdd', + 'Bracket', + 'Convect', + 'Convolution', + 'Cross', + 'Curl', + 'D', + 'DiffOperator', + 'Div', + 'Dn', + 'Dot', + 'Grad', + 'Hessian', + 'Inner', + 'Jump', + 'Laplace', + 'MinusInterfaceOperator', + 'NormalDerivative', + 'Outer', + 'PlusInterfaceOperator', + 'Rot', + 'StrainTensor', + 'add_basicop', + 'avg', + 'bracket', + 'conv', + 'convect', + 'cross', + 'curl', + 'div', + 'dot', + 'grad', + 'has', + 'hessian', + 'inner', + 'is_constant', + 'is_scalar', + 'is_zero', + 'jump', + 'laplace', + 'minus', + 'outer', + 'plus', + 'rot', + 'ArgumentTypeError', + 'CalculusError', + 'Inverse', + 'MatrixElement', + 'MatrixSymbolicExpr', + 'SymbolicDeterminant', + 'SymbolicTrace', + 'Transpose', + # Topology + 'BasicDomain', + 'Boundary', + 'Connectivity', + 'CornerBoundary', + 'CornerInterface', + 'Edge', + 'Interface', + 'InteriorDomain', + 'Interval', + 'ProductDomain', + 'Union', + 'Area', + 'BoundaryVector', + 'Cube', + 'Domain', + 'ElementDomain', + 'Line', + 'MinusNormalVector', + 'NCube', + 'NCubeInterior', + 'NormalVector', + 'PeriodicDomain', + 'PlusNormalVector', + 'Square', + 'TangentVector', + 'split', + 'BasicCallableMapping', + 'Contravariant', + 'Covariant', + 'InterfaceMapping', + 'InverseMapping', + 'Jacobian', + 'JacobianInverseSymbol', + 'JacobianSymbol', + 'LogicalExpr', + 'MappedDomain', + 'Mapping', + 'MappingApplication', + 'MappingPullBack', + 'MultiPatchMapping', + 'SymbolicExpr', + 'SymbolicWeightedVolume', + 'get_logical_test_function', + 'BasicFunctionSpace', + 'Derham', + 'IndexedVectorFunction', + 'ProductSpace', + 'Projection', + 'Projector', + 'ScalarFunction', + 'ScalarFunctionSpace', + 'TestFunction', + 'Trace', + 'VectorFunction', + 'VectorFunctionSpace', + 'element_of', + 'elements_of', + 'trace_0', + 'trace_1', + 'DifferentialOperator', + 'dx', + 'dx1', + 'dx2', + 'dx3', + 'dy', + 'dz', + 'find_partial_derivatives', + 'get_atom_derivatives', + 'get_atom_logical_derivatives', + 'get_index_derivatives', + 'get_index_derivatives_atom', + 'get_index_logical_derivatives', + 'get_index_logical_derivatives_atom', + 'get_max_logical_partial_derivatives', + 'get_max_partial_derivatives', + 'get_number_derivatives', + 'sort_partial_derivatives', + 'H1Regularity', + 'H1RegularityType', + 'H1Space', + 'H1SpaceType', + 'HcurlRegularity', + 'HcurlRegularityType', + 'HcurlSpace', + 'HcurlSpaceType', + 'HdivRegularity', + 'HdivRegularityType', + 'HdivSpace', + 'HdivSpaceType', + 'L2Regularity', + 'L2RegularityType', + 'L2Space', + 'L2SpaceType', + 'RegularityType', + 'SpaceType', + 'UndefinedSpace', + 'UndefinedSpaceType', + 'AffineMapping', + 'CollelaMapping2D', + 'CzarnyMapping', + 'IdentityMapping', + 'PolarMapping', + 'SphericalMapping', + 'TargetMapping', + 'TorusMapping', + 'TorusSurfaceMapping', + 'TwistedTargetMapping', + 'TwistedTargetSurfaceMapping', + 'CallableMapping', + 'BasicMeasure', + 'CanonicalMeasure', + 'CartesianMeasure', + 'Measure', + # Expressions + 'BasicExpr', + 'BasicForm', + 'Equation', + 'EssentialBC', + 'Mean', + 'NewtonIteration', + 'find', + 'UnconsistentArgumentsError', + 'UnconsistentBCError', + 'UnconsistentError', + 'UnconsistentLhsError', + 'UnconsistentLinearExpressionError', + 'UnconsistentRhsError', + 'BoundaryExpression', + 'DomainExpression', + 'InterfaceExpression', + 'KernelExpression', + 'TensorExpr', + 'TerminalExpr', + 'BilinearForm', + 'Functional', + 'IntAdd', + 'Integral', + 'LinearExpr', + 'LinearForm', + 'Norm', + 'SemiNorm', + 'integral', + 'is_linear_expression', + 'linearize', + # Exterior calculus + 'Adjoint', + 'AdjointExteriorDerivative', + 'AdjointInteriorProduct', + 'AdjointLieDerivative', + 'ExteriorDerivative', + 'ExteriorProduct', + 'ExteriorPullBack', + 'Hodge', + 'InteriorProduct', + 'Ld', + 'LieDerivative', + 'PullBack', + 'd', + 'delta', + 'hodge', + 'ip', + 'jp', + 'ld', + 'wedge', + 'ExteriorCalculusExpr', + 'augmented_expression', + 'FiveForm', + 'FiveFormType', + 'FormType', + 'FourForm', + 'FourFormType', + 'OneForm', + 'OneFormType', + 'SixForm', + 'SixFormType', + 'ThreeForm', + 'ThreeFormType', + 'TwoForm', + 'TwoFormType', + 'ZeroForm', + 'ZeroFormType', + 'DifferentialForm', + 'infere_type', + # Output and utilities + 'LatexPrinter', + 'latex', + 'lambdify_sympde', + 'plot_domain', +) From 9ec507338c963205e623919d6d685461d2d3ebd3 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 5 Oct 2026 10:44:08 +0200 Subject: [PATCH 02/27] Adopt explicit internal imports Remove package-level wildcard exports and obsolete SymPy compatibility helpers, migrate internal imports and tests to defining modules, and defer costly optional plotting and serialization imports. --- doc/conf.py | 3 +- sympde/__init__.py | 7 - sympde/calculus/__init__.py | 3 - sympde/calculus/tests/test_calculus.py | 18 +-- sympde/core/__init__.py | 3 - sympde/core/algebra.py | 36 +---- sympde/core/tests/test_api.py | 40 +++++ sympde/expr/__init__.py | 5 - sympde/expr/equation.py | 17 +-- sympde/expr/evaluation.py | 4 +- sympde/expr/expr.py | 10 +- sympde/expr/tests/test_equation_2d.py | 24 +-- sympde/expr/tests/test_essential_bc.py | 12 +- sympde/expr/tests/test_expr.py | 32 ++-- sympde/expr/tests/test_find_2d.py | 18 +-- sympde/expr/tests/test_newton_2d.py | 12 +- sympde/expr/tests/test_tensor_2d.py | 14 +- sympde/exterior/__init__.py | 6 - sympde/exterior/calculus.py | 12 +- sympde/exterior/compiler.py | 10 +- sympde/exterior/datatype.py | 12 -- sympde/exterior/form.py | 15 +- sympde/exterior/inference.py | 17 +-- sympde/exterior/tests/test_compiler.py | 14 +- sympde/exterior/tests/test_datatype.py | 8 +- sympde/exterior/tests/test_exterior.py | 6 +- sympde/exterior/tests/test_inference.py | 16 +- sympde/old_sympy_utilities.py | 159 -------------------- sympde/printing/__init__.py | 1 - sympde/printing/latex.py | 10 +- sympde/printing/tests/test_latex.py | 14 +- sympde/topology/__init__.py | 9 -- sympde/topology/basic.py | 4 +- sympde/topology/datatype.py | 7 - sympde/topology/derivatives.py | 9 +- sympde/topology/domain.py | 15 +- sympde/topology/mapping.py | 6 +- sympde/topology/tests/test_derivatives.py | 16 +- sympde/topology/tests/test_field_2d.py | 10 +- sympde/topology/tests/test_gallery.py | 4 +- sympde/topology/tests/test_logical_expr.py | 44 +++--- sympde/topology/tests/test_mapping.py | 8 +- sympde/topology/tests/test_space.py | 14 +- sympde/topology/tests/test_symbolic_expr.py | 12 +- sympde/topology/tests/test_topology.py | 14 +- sympde/utilities/tests/test_utilities.py | 9 ++ sympde/utilities/utils.py | 17 ++- 47 files changed, 263 insertions(+), 493 deletions(-) create mode 100644 sympde/core/tests/test_api.py delete mode 100644 sympde/old_sympy_utilities.py diff --git a/doc/conf.py b/doc/conf.py index 24786ce0..d4344aea 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -4,7 +4,7 @@ from sphinx.ext.apidoc import main as sphinx_apidoc -from sympde import __version__ +from sympde.version import __version__ # -- Path setup -------------------------------------------------------------- @@ -197,4 +197,5 @@ str(doc_dir.parent / 'sympde'), ] apidoc_args.extend(str(path) for path in (doc_dir.parent / 'sympde').glob('*/tests')) +apidoc_args.append(str(doc_dir.parent / 'sympde' / 'api')) sphinx_apidoc(apidoc_args) diff --git a/sympde/__init__.py b/sympde/__init__.py index f7fc8041..e69de29b 100644 --- a/sympde/__init__.py +++ b/sympde/__init__.py @@ -1,7 +0,0 @@ -from .version import __version__ -from .old_sympy_utilities import with_metaclass -from .core import * -from .topology import * -from .exterior import * -from .printing import * -from .utilities import * diff --git a/sympde/calculus/__init__.py b/sympde/calculus/__init__.py index d468d7df..e69de29b 100644 --- a/sympde/calculus/__init__.py +++ b/sympde/calculus/__init__.py @@ -1,3 +0,0 @@ -from .core import * -from .errors import * -from .matrices import * diff --git a/sympde/calculus/tests/test_calculus.py b/sympde/calculus/tests/test_calculus.py index 8f016acc..a2816951 100644 --- a/sympde/calculus/tests/test_calculus.py +++ b/sympde/calculus/tests/test_calculus.py @@ -6,15 +6,15 @@ from sympy import Integer, Float, Rational from sympy import expand -from sympde.core import Constant -from sympde.calculus import grad, dot, inner, outer, cross, rot, curl, div -from sympde.calculus import laplace, hessian, bracket, convect, D, conv -from sympde.calculus import ArgumentTypeError -from sympde.calculus import jump, avg, Dn, minus, plus -from sympde.topology import Domain -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import ProductSpace -from sympde.topology import element_of, elements_of +from sympde.api import Constant +from sympde.api import grad, dot, inner, outer, cross, rot, curl, div +from sympde.api import laplace, hessian, bracket, convect, D, conv +from sympde.api import ArgumentTypeError +from sympde.api import jump, avg, Dn, minus, plus +from sympde.api import Domain +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import ProductSpace +from sympde.api import element_of, elements_of #============================================================================== @pytest.mark.parametrize('dim', [1, 2, 3]) diff --git a/sympde/core/__init__.py b/sympde/core/__init__.py index 4bc8bacf..e69de29b 100644 --- a/sympde/core/__init__.py +++ b/sympde/core/__init__.py @@ -1,3 +0,0 @@ -from .algebra import * -from .basic import * -from .utils import * diff --git a/sympde/core/algebra.py b/sympde/core/algebra.py index 8108bba6..037d9323 100644 --- a/sympde/core/algebra.py +++ b/sympde/core/algebra.py @@ -1,38 +1,10 @@ # coding: utf-8 -import numpy as np -from itertools import groupby - -#from sympy.core.sympify import sympify -from sympy.simplify.simplify import simplify -from sympy import Symbol -from sympy import Lambda -from sympy import Function -from sympy import bspline_basis -from sympy import lambdify -from sympy import cos -from sympy import sin -from sympy import Rational -from sympy import diff -from sympy import Matrix, ImmutableDenseMatrix -from sympy import latex -from sympy import I as sympy_I -from sympy.core import Basic -from sympy.core.singleton import S -from sympy.simplify.simplify import nsimplify -from sympy.utilities.lambdify import implemented_function -from sympy.matrices.dense import MutableDenseMatrix -from sympy import Mul, Add -from sympy import postorder_traversal -from sympy import preorder_traversal -from sympy.core.expr import Expr +from sympy import Indexed, Matrix, ImmutableDenseMatrix +from sympy.core import Add, Basic, Mul from sympy.core.containers import Tuple -from sympy import Integer, Float -from sympy import Add, Mul -from sympy import simplify -from sympy import S -from sympy import Basic -from sympy import Indexed, IndexedBase +from sympy.core.singleton import S +from sympy.simplify.simplify import simplify from sympy.utilities.iterables import is_sequence from .basic import CalculusFunction diff --git a/sympde/core/tests/test_api.py b/sympde/core/tests/test_api.py new file mode 100644 index 00000000..a6e9bd6f --- /dev/null +++ b/sympde/core/tests/test_api.py @@ -0,0 +1,40 @@ +from pathlib import Path + + +def test_non_api_package_initializers_are_empty(): + package_dir = Path(__file__).parents[2] + initializers = package_dir.rglob('__init__.py') + + for initializer in initializers: + if initializer.parent != package_dir / 'api': + assert initializer.read_text() == '' + + +def test_api_has_only_explicit_exports(): + import sympde.api as api + + assert len(api.__all__) == len(set(api.__all__)) + assert all(hasattr(api, name) for name in api.__all__) + assert {name for name in vars(api) if not name.startswith('_')} == { + name for name in api.__all__ if not name.startswith('_') + } + + +def test_api_objects_come_from_defining_modules(): + from sympde.api import BilinearForm, Constant, Cube, Mapping, elements_of + from sympde.api import ScalarFunctionSpace, VectorFunctionSpace + from sympde.core.basic import Constant as CoreConstant + from sympde.expr.expr import BilinearForm as ExprBilinearForm + from sympde.topology.domain import Cube as TopologyCube + from sympde.topology.mapping import Mapping as TopologyMapping + from sympde.topology.space import elements_of as topology_elements_of + from sympde.topology.space import ScalarFunctionSpace as TopologyScalarSpace + from sympde.topology.space import VectorFunctionSpace as TopologyVectorSpace + + assert BilinearForm is ExprBilinearForm + assert Constant is CoreConstant + assert Cube is TopologyCube + assert Mapping is TopologyMapping + assert elements_of is topology_elements_of + assert ScalarFunctionSpace is TopologyScalarSpace + assert VectorFunctionSpace is TopologyVectorSpace diff --git a/sympde/expr/__init__.py b/sympde/expr/__init__.py index a092e4cd..e69de29b 100644 --- a/sympde/expr/__init__.py +++ b/sympde/expr/__init__.py @@ -1,5 +0,0 @@ -from .basic import * -from .equation import * -from .errors import * -from .evaluation import * -from .expr import * diff --git a/sympde/expr/equation.py b/sympde/expr/equation.py index 608dc509..4ab9474b 100644 --- a/sympde/expr/equation.py +++ b/sympde/expr/equation.py @@ -5,14 +5,13 @@ from sympy.core import Expr from sympy.parsing.sympy_parser import parse_expr -from sympde.topology.basic import Boundary, Union -from sympde.topology.space import VectorFunctionSpace, ScalarFunctionSpace +from sympde.topology.basic import Union +from sympde.topology.domain import NormalVector +from sympde.topology.space import IndexedVectorFunction from sympde.topology.space import ScalarFunction -from sympde.topology.space import VectorFunction, IndexedVectorFunction -from sympde.topology import Boundary, NormalVector, TangentVector -from sympde.topology import Trace, trace_0, trace_1 -from sympde.calculus import grad, dot -from sympde.core.utils import random_string +from sympde.topology.space import Trace +from sympde.topology.space import VectorFunction, VectorFunctionSpace +from sympde.calculus.core import dot, grad from sympde.core.basic import ( new_basic, restore_optional_argument, @@ -20,8 +19,8 @@ from .expr import BilinearForm, LinearForm from .expr import linearize -from .errors import ( UnconsistentLhsError, UnconsistentRhsError, - UnconsistentArgumentsError, UnconsistentBCError ) +from .errors import (UnconsistentLhsError, UnconsistentRhsError, + UnconsistentArgumentsError) #============================================================================== diff --git a/sympde/expr/evaluation.py b/sympde/expr/evaluation.py index 7cecb060..17ad00d8 100644 --- a/sympde/expr/evaluation.py +++ b/sympde/expr/evaluation.py @@ -14,8 +14,8 @@ Dot_3d, Inner_3d, Cross_3d) #from sympde.core.utils import random_string -from sympde.calculus import jump, avg, minus, plus -from sympde.calculus import Jump, is_zero +from sympde.calculus.core import Jump, is_zero +from sympde.calculus.core import jump, minus, plus from sympde.calculus.core import _generic_ops, _diff_ops from sympde.calculus.core import MinusInterfaceOperator, PlusInterfaceOperator from sympde.calculus.matrices import SymbolicDeterminant, Inverse, Transpose diff --git a/sympde/expr/expr.py b/sympde/expr/expr.py index 8bf05491..35645459 100644 --- a/sympde/expr/expr.py +++ b/sympde/expr/expr.py @@ -14,11 +14,10 @@ from sympde.core.basic import CalculusFunction from sympde.core.basic import Constant from sympde.core.utils import random_string -from sympde.calculus import Dot, Inner, BasicOperator -from sympde.calculus import Grad, Hessian -from sympde.topology import BasicDomain, Union -from sympde.topology import NormalVector -from sympde.topology import Boundary, Interface, Domain, InteriorDomain +from sympde.calculus.core import BasicOperator, Dot, Grad, Hessian, Inner +from sympde.topology.basic import BasicDomain, Boundary, Interface +from sympde.topology.basic import InteriorDomain, Union +from sympde.topology.domain import Domain, NormalVector from sympde.topology.space import ScalarFunction from sympde.topology.space import VectorFunction from sympde.topology.space import Trace, trace_0, trace_1 @@ -854,4 +853,3 @@ def add_int(expr): Basic._constructor_postprocessor_mapping[IntAdd] = { "Mul": [mul_add], } - diff --git a/sympde/expr/tests/test_equation_2d.py b/sympde/expr/tests/test_equation_2d.py index d6666071..d8060b76 100644 --- a/sympde/expr/tests/test_equation_2d.py +++ b/sympde/expr/tests/test_equation_2d.py @@ -6,18 +6,18 @@ from sympy import pi, cos, sin from sympy import ImmutableDenseMatrix as Matrix -from sympde.core import Constant -from sympde.calculus import grad, dot, inner -from sympde.calculus import laplace, bracket -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import element_of -from sympde.topology import ProductSpace -from sympde.topology import Domain, Boundary, NormalVector -from sympde.topology import Square -from sympde.topology import ElementDomain -from sympde.topology import Area -from sympde.expr import BilinearForm, LinearForm, integral -from sympde.expr import Equation, EssentialBC +from sympde.api import Constant +from sympde.api import grad, dot, inner +from sympde.api import laplace, bracket +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import element_of +from sympde.api import ProductSpace +from sympde.api import Domain, Boundary, NormalVector +from sympde.api import Square +from sympde.api import ElementDomain +from sympde.api import Area +from sympde.api import BilinearForm, LinearForm, integral +from sympde.api import Equation, EssentialBC from sympde.expr.errors import UnconsistentLhsError from sympde.expr.errors import UnconsistentRhsError from sympde.expr.errors import UnconsistentBCError diff --git a/sympde/expr/tests/test_essential_bc.py b/sympde/expr/tests/test_essential_bc.py index 0e10f926..a595f9c3 100644 --- a/sympde/expr/tests/test_essential_bc.py +++ b/sympde/expr/tests/test_essential_bc.py @@ -1,11 +1,11 @@ # coding: utf-8 -from sympde.core import Constant -from sympde.calculus import grad, dot -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import element_of -from sympde.topology import Domain, Boundary, NormalVector -from sympde.expr import EssentialBC +from sympde.api import Constant +from sympde.api import grad, dot +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import element_of +from sympde.api import Domain, Boundary, NormalVector +from sympde.api import EssentialBC #============================================================================== def test_essential_bc_1(): diff --git a/sympde/expr/tests/test_expr.py b/sympde/expr/tests/test_expr.py index 6e9ac50d..bc5cc593 100644 --- a/sympde/expr/tests/test_expr.py +++ b/sympde/expr/tests/test_expr.py @@ -7,23 +7,23 @@ from sympy import pi, cos, sin, exp from sympy import ImmutableDenseMatrix as Matrix -from sympde.core import Constant -from sympde.calculus import grad, dot, inner, rot, div -from sympde.calculus import laplace, bracket, convect -from sympde.calculus import jump, avg, Dn, minus, plus - -from sympde.topology import dx1, dx2, dx3 -from sympde.topology import dx, dy, dz -from sympde.topology import Mapping -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import element_of, elements_of -from sympde.topology import InteriorDomain, Union -from sympde.topology import Boundary, NormalVector -from sympde.topology import Domain +from sympde.api import Constant +from sympde.api import grad, dot, inner, rot, div +from sympde.api import laplace, bracket, convect +from sympde.api import jump, avg, Dn, minus, plus + +from sympde.api import dx1, dx2, dx3 +from sympde.api import dx, dy, dz +from sympde.api import Mapping +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import element_of, elements_of +from sympde.api import InteriorDomain, Union +from sympde.api import Boundary, NormalVector +from sympde.api import Domain #from sympde.topology import trace_1 # TODO [YG, 27.01.2021]: fix trace -from sympde.topology import Square -from sympde.topology import ElementDomain -from sympde.topology import Area +from sympde.api import Square +from sympde.api import ElementDomain +from sympde.api import Area from sympde.expr.expr import LinearExpr from sympde.expr.expr import LinearForm, BilinearForm diff --git a/sympde/expr/tests/test_find_2d.py b/sympde/expr/tests/test_find_2d.py index a2b05630..615b4785 100644 --- a/sympde/expr/tests/test_find_2d.py +++ b/sympde/expr/tests/test_find_2d.py @@ -3,16 +3,16 @@ from sympy import cos #from sympy import exp -from sympde.core import Constant -from sympde.calculus import grad, dot +from sympde.api import Constant +from sympde.api import grad, dot #from sympde.topology import dx, dy -from sympde.topology import ScalarFunctionSpace -from sympde.topology import element_of -from sympde.topology import Domain, Boundary -from sympde.expr import BilinearForm, LinearForm, integral -from sympde.expr import TerminalExpr -from sympde.expr import find -from sympde.expr import EssentialBC +from sympde.api import ScalarFunctionSpace +from sympde.api import element_of +from sympde.api import Domain, Boundary +from sympde.api import BilinearForm, LinearForm, integral +from sympde.api import TerminalExpr +from sympde.api import find +from sympde.api import EssentialBC #from sympde.expr import NewtonIteration DIM = 2 diff --git a/sympde/expr/tests/test_newton_2d.py b/sympde/expr/tests/test_newton_2d.py index 59ccb7d8..1bb0091c 100644 --- a/sympde/expr/tests/test_newton_2d.py +++ b/sympde/expr/tests/test_newton_2d.py @@ -2,12 +2,12 @@ from sympy import exp -from sympde.calculus import grad, dot -from sympde.topology import ScalarFunctionSpace -from sympde.topology import element_of -from sympde.topology import Domain, Boundary -from sympde.expr import LinearForm, integral -from sympde.expr import EssentialBC, NewtonIteration +from sympde.api import grad, dot +from sympde.api import ScalarFunctionSpace +from sympde.api import element_of +from sympde.api import Domain, Boundary +from sympde.api import LinearForm, integral +from sympde.api import EssentialBC, NewtonIteration DIM = 2 domain = Domain('Omega', dim=DIM) diff --git a/sympde/expr/tests/test_tensor_2d.py b/sympde/expr/tests/test_tensor_2d.py index f1032cba..292dee17 100644 --- a/sympde/expr/tests/test_tensor_2d.py +++ b/sympde/expr/tests/test_tensor_2d.py @@ -4,15 +4,15 @@ from sympy.core.containers import Tuple -from sympde.core import Constant -from sympde.calculus import grad, dot, curl, div +from sympde.api import Constant +from sympde.api import grad, dot, curl, div #from sympde.calculus import laplace #from sympde.topology import dx -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import elements_of -from sympde.topology import Boundary -from sympde.topology import Domain -from sympde.topology import Mapping +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import elements_of +from sympde.api import Boundary +from sympde.api import Domain +from sympde.api import Mapping from sympde.expr.expr import BilinearForm, integral from sympde.expr.evaluation import TensorExpr diff --git a/sympde/exterior/__init__.py b/sympde/exterior/__init__.py index c026ed14..e69de29b 100644 --- a/sympde/exterior/__init__.py +++ b/sympde/exterior/__init__.py @@ -1,6 +0,0 @@ -#from .basic import * -from .calculus import * -from .datatype import * -from .form import * -from .compiler import * -from .inference import * diff --git a/sympde/exterior/calculus.py b/sympde/exterior/calculus.py index 26be613a..2915ef39 100644 --- a/sympde/exterior/calculus.py +++ b/sympde/exterior/calculus.py @@ -2,22 +2,14 @@ # TODO - use BasicOperator instead of LinearOperator -from numpy import unique - from sympy.core import Basic -from sympy.tensor import Indexed, IndexedBase -from sympy.core import Symbol -from sympy.core import Expr -from sympy.core.containers import Tuple -from sympy import Function -from sympy import Integer, Float -from sympy.core.singleton import Singleton +from sympy.tensor import Indexed from sympy.core import Add, Mul from sympy.core.singleton import S from sympy.utilities.iterables import is_sequence from sympde.core.basic import _coeffs_registery -from sympde.core import LinearOperator +from sympde.core.algebra import LinearOperator from sympde.core.basic import CalculusFunction from .form import DifferentialForm diff --git a/sympde/exterior/compiler.py b/sympde/exterior/compiler.py index da9b9012..b2cc907b 100644 --- a/sympde/exterior/compiler.py +++ b/sympde/exterior/compiler.py @@ -11,11 +11,11 @@ from sympde.core.basic import _coeffs_registery from sympde.core.basic import CalculusFunction -from sympde.topology import H1SpaceType, HcurlSpaceType, HdivSpaceType -from sympde.topology import L2SpaceType, UndefinedSpaceType -from sympde.topology import ScalarFunction, VectorFunction -from sympde.calculus import Grad, Curl, Div -from sympde.calculus import Dot, Inner, Cross +from sympde.topology.datatype import H1SpaceType, HcurlSpaceType, HdivSpaceType +from sympde.topology.datatype import L2SpaceType, UndefinedSpaceType +from sympde.topology.space import ScalarFunction, VectorFunction +from sympde.calculus.core import Curl, Div, Grad +from sympde.calculus.core import Cross, Dot, Inner #from sympde.calculus import grad, dot, inner, cross, rot, curl, div from .form import DifferentialForm diff --git a/sympde/exterior/datatype.py b/sympde/exterior/datatype.py index da613010..77bad61e 100644 --- a/sympde/exterior/datatype.py +++ b/sympde/exterior/datatype.py @@ -1,21 +1,9 @@ # coding: utf-8 # TODO: - Unknown is not used here (mlhipy) remove it? -from numpy import unique - from sympy.core import Basic -from sympy.tensor import Indexed, IndexedBase from sympy.core import Symbol -from sympy.core import Expr -from sympy.core.containers import Tuple -from sympy import Function -from sympy import Integer, Float from sympy.core.singleton import Singleton -from sympy.core import Add, Mul -from sympy.core.singleton import S - -from sympde.core.basic import _coeffs_registery -from sympde.core import LinearOperator #============================================================================== class FormType(Basic, metaclass=Singleton): diff --git a/sympde/exterior/form.py b/sympde/exterior/form.py index b45b9f76..65b738c4 100644 --- a/sympde/exterior/form.py +++ b/sympde/exterior/form.py @@ -1,20 +1,7 @@ # coding: utf-8 -from numpy import unique - -from sympy.core import Basic -from sympy.tensor import Indexed, IndexedBase +from sympy.core import Integer from sympy.core import Symbol -from sympy.core import Expr -from sympy.core.containers import Tuple -from sympy import Function -from sympy import Integer, Float -from sympy.core.singleton import Singleton -from sympy.core import Add, Mul -from sympy.core.singleton import S - -from sympde.core.basic import _coeffs_registery -from sympde.core import LinearOperator from .datatype import get_index_form diff --git a/sympde/exterior/inference.py b/sympde/exterior/inference.py index 92fa4a7d..f17ff44f 100644 --- a/sympde/exterior/inference.py +++ b/sympde/exterior/inference.py @@ -1,22 +1,7 @@ # coding: utf-8 -from numpy import unique - -from sympy.core import Basic -from sympy.tensor import Indexed, IndexedBase -from sympy.core import Symbol -from sympy.core import Expr -from sympy.core.containers import Tuple -from sympy import Function -from sympy import Integer, Float -from sympy.core.singleton import Singleton -from sympy.core import Add, Mul -from sympy.core.singleton import S - -from sympde.core.basic import _coeffs_registery -from sympde.core import LinearOperator -from sympde.core.basic import CalculusFunction +from sympy.core import Add from .form import DifferentialForm from .datatype import get_index_form diff --git a/sympde/exterior/tests/test_compiler.py b/sympde/exterior/tests/test_compiler.py index e0011a15..13dacf88 100644 --- a/sympde/exterior/tests/test_compiler.py +++ b/sympde/exterior/tests/test_compiler.py @@ -2,15 +2,15 @@ import pytest -from sympde.topology import Domain -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import element_of -from sympde.calculus import grad, dot, inner, cross, curl, div +from sympde.api import Domain +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import element_of +from sympde.api import grad, dot, inner, cross, curl, div #from sympde.exterior import d, wedge, ip, delta, jp -from sympde.exterior import ld -from sympde.exterior import DifferentialForm -from sympde.exterior import ExteriorCalculusExpr, augmented_expression +from sympde.api import ld +from sympde.api import DifferentialForm +from sympde.api import ExteriorCalculusExpr, augmented_expression from sympde.calculus.errors import ArgumentTypeError #============================================================================== diff --git a/sympde/exterior/tests/test_datatype.py b/sympde/exterior/tests/test_datatype.py index 9bea28d1..86860add 100644 --- a/sympde/exterior/tests/test_datatype.py +++ b/sympde/exterior/tests/test_datatype.py @@ -7,11 +7,11 @@ from sympy import srepr from sympy import Symbol -from sympde import Constant +from sympde.api import Constant -from sympde.exterior import d, wedge, ip, jp, delta, hodge -from sympde.exterior import ZeroForm, OneForm, TwoForm -from sympde.exterior import ThreeForm, FourForm, FiveForm, SixForm +from sympde.api import d, wedge, ip, jp, delta, hodge +from sympde.api import ZeroForm, OneForm, TwoForm +from sympde.api import ThreeForm, FourForm, FiveForm, SixForm #============================================================================== diff --git a/sympde/exterior/tests/test_exterior.py b/sympde/exterior/tests/test_exterior.py index 84c2f21d..1e24d6b4 100644 --- a/sympde/exterior/tests/test_exterior.py +++ b/sympde/exterior/tests/test_exterior.py @@ -7,10 +7,10 @@ from sympy import srepr from sympy import Symbol -from sympde import Constant +from sympde.api import Constant -from sympde.exterior import d, wedge, ip, jp, delta, hodge -from sympde.exterior import DifferentialForm +from sympde.api import d, wedge, ip, jp, delta, hodge +from sympde.api import DifferentialForm def test_differential_form_symbol_identity(): diff --git a/sympde/exterior/tests/test_inference.py b/sympde/exterior/tests/test_inference.py index f0e64364..194b77ca 100644 --- a/sympde/exterior/tests/test_inference.py +++ b/sympde/exterior/tests/test_inference.py @@ -7,14 +7,14 @@ from sympy import srepr from sympy import Symbol -from sympde import Constant - -from sympde.exterior import d, wedge, ip, jp, delta, hodge -from sympde.exterior import DifferentialForm -from sympde.exterior import PullBack -from sympde.exterior import infere_type -from sympde.exterior import ZeroFormType, OneFormType, TwoFormType, ThreeFormType -from sympde.exterior import FourFormType, FiveFormType, SixFormType +from sympde.api import Constant + +from sympde.api import d, wedge, ip, jp, delta, hodge +from sympde.api import DifferentialForm +from sympde.api import PullBack +from sympde.api import infere_type +from sympde.api import ZeroFormType, OneFormType, TwoFormType, ThreeFormType +from sympde.api import FourFormType, FiveFormType, SixFormType #============================================================================== diff --git a/sympde/old_sympy_utilities.py b/sympde/old_sympy_utilities.py deleted file mode 100644 index afa12ef6..00000000 --- a/sympde/old_sympy_utilities.py +++ /dev/null @@ -1,159 +0,0 @@ -""" -Reimplementations of constructs introduced in later versions of Python than -we support. Also some functions that are needed SymPy-wide and are located -here for easy import. -""" - -import operator -from collections import defaultdict - -def with_metaclass(meta, *bases): - """ - Create a base class with a metaclass. - - For example, if you have the metaclass - - >>> class Meta(type): - ... pass - - Use this as the metaclass by doing - - >>> from sympde.old_sympy_utilities import with_metaclass - >>> class MyClass(with_metaclass(Meta, object)): - ... pass - - This is equivalent to the Python 2:: - - class MyClass(object): - __metaclass__ = Meta - - or Python 3:: - - class MyClass(object, metaclass=Meta): - pass - - That is, the first argument is the metaclass, and the remaining arguments - are the base classes. Note that if the base class is just ``object``, you - may omit it. - - >>> MyClass.__mro__ - (, <... 'object'>) - >>> type(MyClass) - - - """ - # This requires a bit of explanation: the basic idea is to make a dummy - # metaclass for one level of class instantiation that replaces itself with - # the actual metaclass. - # Code copied from the 'six' library. - class metaclass(meta): - def __new__(cls, name, this_bases, d): - return meta(name, bases, d) - return type.__new__(metaclass, "NewBase", (), {}) - -class NotIterable: - """ - Use this as mixin when creating a class which is not supposed to - return true when iterable() is called on its instances because - calling list() on the instance, for example, would result in - an infinite loop. - """ - -def iterable(i, exclude=(str, dict, NotIterable), vector=False): - """ - Return a boolean indicating whether ``i`` is SymPy iterable. - True also indicates that the iterator is finite, e.g. you can - call list(...) on the instance. - - When SymPy is working with iterables, it is almost always assuming - that the iterable is not a string or a mapping, so those are excluded - by default. If you want a pure Python definition, make exclude=None. To - exclude multiple items, pass them as a tuple. - - You can also set the _iterable attribute to True or False on your class, - which will override the checks here, including the exclude test. - - As a rule of thumb, some SymPy functions use this to check if they should - recursively map over an object. If an object is technically iterable in - the Python sense but does not desire this behavior (e.g., because its - iteration is not finite, or because iteration might induce an unwanted - computation), it should disable it by setting the _iterable attribute to False. - - See also: is_sequence - - Examples - ======== - - >>> from sympy.utilities.iterables import iterable - >>> from sympy import Tuple - >>> things = [[1], (1,), set([1]), Tuple(1), (j for j in [1, 2]), {1:2}, '1', 1] - >>> for i in things: - ... print('%s %s' % (iterable(i), type(i))) - True <... 'list'> - True <... 'tuple'> - True <... 'set'> - True - True <... 'generator'> - False <... 'dict'> - False <... 'str'> - False <... 'int'> - - >>> iterable({}, exclude=None) - True - >>> iterable({}, exclude=str) - True - >>> iterable("no", exclude=str) - False - - """ - if hasattr(i, '_iterable'): - return i._iterable - try: - iter(i) - except TypeError: - return False - if exclude: - #TODO: check why the isinstance(i, exclude) return False - if vector: - return False - return not isinstance(i, exclude) - return True - -def is_sequence(i, include=None, *, vector=False): - """ - Return a boolean indicating whether ``i`` is a sequence in the SymPy - sense. If anything that fails the test below should be included as - being a sequence for your application, set 'include' to that object's - type; multiple types should be passed as a tuple of types. - - Note: although generators can generate a sequence, they often need special - handling to make sure their elements are captured before the generator is - exhausted, so these are not included by default in the definition of a - sequence. - - See also: iterable - - Examples - ======== - - >>> from sympy.utilities.iterables import is_sequence - >>> from types import GeneratorType - >>> is_sequence([]) - True - >>> is_sequence(set()) - False - >>> is_sequence('abc') - False - >>> is_sequence('abc', include=str) - True - >>> generator = (c for c in 'abc') - >>> is_sequence(generator) - False - >>> is_sequence(generator, include=(str, GeneratorType)) - True - - """ - return ( hasattr(i, '__getitem__') and - iterable(i, vector=vector) or - bool(include) and - isinstance(i, include)) diff --git a/sympde/printing/__init__.py b/sympde/printing/__init__.py index 94107209..e69de29b 100644 --- a/sympde/printing/__init__.py +++ b/sympde/printing/__init__.py @@ -1 +0,0 @@ -from .latex import * diff --git a/sympde/printing/latex.py b/sympde/printing/latex.py index 56b38a94..25cb92f2 100644 --- a/sympde/printing/latex.py +++ b/sympde/printing/latex.py @@ -2,16 +2,12 @@ # from sympy.core import Symbol -from sympy import Mul, Tuple +from sympy import Tuple from sympy.printing.latex import LatexPrinter as LatexPrinterSympy from sympy.printing.latex import translate -from sympy import Indexed, IndexedBase, Matrix, ImmutableDenseMatrix +from sympy import Indexed, IndexedBase -from sympde.topology import NormalVector, TangentVector -from sympde.topology import Line, Square, Cube, Domain -from sympde.topology.derivatives import sort_partial_derivatives -from sympde.topology.derivatives import get_index_derivatives -from sympde.topology.derivatives import get_atom_derivatives +from sympde.topology.domain import NormalVector from sympde.topology.space import ProductSpace from sympde.topology.space import ScalarFunction, VectorFunction diff --git a/sympde/printing/tests/test_latex.py b/sympde/printing/tests/test_latex.py index 0f8b7c0b..1e74f736 100644 --- a/sympde/printing/tests/test_latex.py +++ b/sympde/printing/tests/test_latex.py @@ -2,14 +2,14 @@ from sympy import sin, cos, pi -from sympde.calculus import grad, dot, inner, rot, div +from sympde.api import grad, dot, inner, rot, div #from sympde.topology import (dx, dy, dz) -from sympde.topology import Domain, Boundary, Square -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import element_of -from sympde.expr import BilinearForm, LinearForm, integral -from sympde.exterior import d, wedge, ip, jp, delta, hodge -from sympde.exterior import DifferentialForm +from sympde.api import Domain, Boundary, Square +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import element_of +from sympde.api import BilinearForm, LinearForm, integral +from sympde.api import d, wedge, ip, jp, delta, hodge +from sympde.api import DifferentialForm from sympde.printing.latex import latex diff --git a/sympde/topology/__init__.py b/sympde/topology/__init__.py index de44bd3c..e69de29b 100644 --- a/sympde/topology/__init__.py +++ b/sympde/topology/__init__.py @@ -1,9 +0,0 @@ -from .basic import * -from .derivatives import * -from .datatype import * -from .domain import * -from .mapping import * -from .measure import * -from .space import * -from .analytical_mapping import * -from .callable_mapping import * diff --git a/sympde/topology/basic.py b/sympde/topology/basic.py index a0147b2b..522e0862 100644 --- a/sympde/topology/basic.py +++ b/sympde/topology/basic.py @@ -4,9 +4,8 @@ from collections import abc -from sympy.core import Basic, Symbol, Expr +from sympy.core import Basic, Symbol from sympy.core.containers import Tuple -from sympy.tensor import IndexedBase from sympde.core.basic import ( new_basic, @@ -672,4 +671,3 @@ def __lt__(self, other): return 0 # ========================================== - diff --git a/sympde/topology/datatype.py b/sympde/topology/datatype.py index 3d7722bf..887c5616 100644 --- a/sympde/topology/datatype.py +++ b/sympde/topology/datatype.py @@ -5,13 +5,7 @@ # derivatives -from numpy import unique - from sympy.core import Basic -from sympy.tensor import Indexed, IndexedBase -from sympy.core import Symbol -from sympy.core import Expr -from sympy.core.containers import Tuple from sympy.core.singleton import Singleton #============================================================================== @@ -107,4 +101,3 @@ class L2RegularityType(RegularityType): 'hcurl': HcurlRegularity, 'hdiv': HdivRegularity, 'l2': L2Regularity} - diff --git a/sympde/topology/derivatives.py b/sympde/topology/derivatives.py index 8badda26..15c077b8 100644 --- a/sympde/topology/derivatives.py +++ b/sympde/topology/derivatives.py @@ -2,8 +2,6 @@ # TODO add action of diff operators on sympy known functions -from itertools import groupby - import numpy as np from sympy import Basic @@ -106,6 +104,10 @@ def eval(cls, expr): elif isinstance(expr, Expr): x = Symbol(cls.coordinate, real=True) if cls.logical: + # Imported lazily to avoid a module cycle: mapping depends + # on the differential-operator definitions in this module. + from .mapping import Jacobian, Mapping + M = expr.atoms(Mapping) if len(M)>0: M = list(M)[0] @@ -1281,6 +1283,3 @@ def get_max_logical_partial_derivatives(expr, F=None): for k,v in dd.items(): if v > d[k]: d[k] = v return d - -from .mapping import Mapping, Jacobian - diff --git a/sympde/topology/domain.py b/sympde/topology/domain.py index 9618fadf..1a16f4f2 100644 --- a/sympde/topology/domain.py +++ b/sympde/topology/domain.py @@ -1,13 +1,10 @@ # coding: utf-8 from __future__ import annotations -import numpy as np -import h5py -import yaml import os -from collections import abc, OrderedDict -from typing import Union as TypeUnion, Optional, List, Dict, Iterable, TYPE_CHECKING +from collections import OrderedDict +from typing import Union as TypeUnion, Optional, List, Iterable, TYPE_CHECKING # Union clashes with core.basic.Union from sympy import Integer @@ -15,7 +12,7 @@ from sympy.core import Basic, symbols from sympy.core.containers import Tuple from sympy.tensor import IndexedBase, Indexed -from sympy.core import Add, Mul, Pow +from sympy.core import Add from sympy.core.expr import AtomicExpr from sympy.utilities.iterables import is_sequence @@ -358,6 +355,9 @@ def todict(self): return dict(sorted(d.items())) def export( self, filename ): + import h5py + import numpy as np + import yaml yml = self.todict() @@ -390,6 +390,9 @@ def from_file(cls, filename): Domain Multipatch domain. """ + import h5py + import yaml + # ... check extension of the file _, ext = os.path.splitext(filename) diff --git a/sympde/topology/mapping.py b/sympde/topology/mapping.py index 5eeb51ee..eb1e7336 100644 --- a/sympde/topology/mapping.py +++ b/sympde/topology/mapping.py @@ -16,7 +16,7 @@ from sympy.polys.polytools import parallel_poly_from_expr from sympy.utilities.iterables import is_sequence -from sympde.core import Constant +from sympde.core.basic import Constant from sympde.core.basic import BasicMapping from sympde.core.basic import CalculusFunction from sympde.core.basic import _coeffs_registery @@ -25,7 +25,7 @@ from sympde.calculus.core import grad, div, curl, laplace #, hessian from sympde.calculus.core import dot, inner, outer, _diff_ops from sympde.calculus.core import has, DiffOperator -from sympde.calculus.matrices import MatrixSymbolicExpr, MatrixElement, SymbolicTrace, Inverse +from sympde.calculus.matrices import MatrixSymbolicExpr, MatrixElement, SymbolicTrace from sympde.calculus.matrices import SymbolicDeterminant, Transpose from .basic import BasicDomain, Union, InteriorDomain @@ -916,7 +916,7 @@ def eval(cls, expr, domain, **options): """.""" from sympde.expr.evaluation import TerminalExpr, DomainExpression - from sympde.expr.expr import BilinearForm, LinearForm, BasicForm, Norm + from sympde.expr.expr import BilinearForm, LinearForm, Norm from sympde.expr.expr import Integral types = (ScalarFunction, VectorFunction, DifferentialOperator, Trace, Integral) diff --git a/sympde/topology/tests/test_derivatives.py b/sympde/topology/tests/test_derivatives.py index 9796b582..49bc3506 100644 --- a/sympde/topology/tests/test_derivatives.py +++ b/sympde/topology/tests/test_derivatives.py @@ -5,14 +5,14 @@ from sympy import Matrix from sympy import srepr -from sympde.core import Constant -from sympde.calculus import grad, dot, inner -from sympde.topology import Domain, element_of -from sympde.topology import get_index_derivatives_atom -from sympde.topology import get_max_partial_derivatives -from sympde.topology import ScalarFunctionSpace -from sympde.topology import (dx, dy, dz) -from sympde.topology import Mapping +from sympde.api import Constant +from sympde.api import grad, dot, inner +from sympde.api import Domain, element_of +from sympde.api import get_index_derivatives_atom +from sympde.api import get_max_partial_derivatives +from sympde.api import ScalarFunctionSpace +from sympde.api import (dx, dy, dz) +from sympde.api import Mapping def indices_as_str(a): diff --git a/sympde/topology/tests/test_field_2d.py b/sympde/topology/tests/test_field_2d.py index 04f8c653..28be3146 100644 --- a/sympde/topology/tests/test_field_2d.py +++ b/sympde/topology/tests/test_field_2d.py @@ -2,11 +2,11 @@ from sympy import Matrix -from sympde.calculus import grad, inner -from sympde.topology import Domain -from sympde.topology import dx -from sympde.topology import VectorFunctionSpace -from sympde.topology import element_of +from sympde.api import grad, inner +from sympde.api import Domain +from sympde.api import dx +from sympde.api import VectorFunctionSpace +from sympde.api import element_of #============================================================================== diff --git a/sympde/topology/tests/test_gallery.py b/sympde/topology/tests/test_gallery.py index 9aaee6e3..8622dffa 100644 --- a/sympde/topology/tests/test_gallery.py +++ b/sympde/topology/tests/test_gallery.py @@ -4,8 +4,8 @@ from sympy import Tuple from sympy import symbols -from sympde.topology import Interval, ProductDomain, InteriorDomain, Domain -from sympde.topology import Line, Square, Cube, NCubeInterior +from sympde.api import Interval, ProductDomain, InteriorDomain, Domain +from sympde.api import Line, Square, Cube, NCubeInterior x1, x2, x3 = symbols('x1, x2, x3', real=True) diff --git a/sympde/topology/tests/test_logical_expr.py b/sympde/topology/tests/test_logical_expr.py index 6c9541ec..f551b586 100644 --- a/sympde/topology/tests/test_logical_expr.py +++ b/sympde/topology/tests/test_logical_expr.py @@ -5,28 +5,28 @@ from sympy import expand from sympy import cos, sin, sqrt, pi -from sympde.core import Constant -from sympde.calculus import grad, dot, inner, rot, div -from sympde.calculus import laplace, bracket, convect -from sympde.calculus import jump, avg, Dn, minus, plus -from sympde.topology import Domain, Mapping, Square -from sympde.topology import dx, dy -from sympde.topology import dx1, dx2, dx3 -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace -from sympde.topology import element_of, elements_of -from sympde.topology import LogicalExpr -from sympde.topology import SymbolicExpr -from sympde.topology import IdentityMapping -from sympde.topology import PolarMapping -from sympde.topology import TargetMapping -from sympde.topology import CzarnyMapping -from sympde.topology import CollelaMapping2D -from sympde.topology import TorusMapping -from sympde.topology import TwistedTargetMapping -from sympde.topology.mapping import get_logical_test_function - -from sympde.expr import BilinearForm, integral -from sympde.calculus import grad, div, curl, dot +from sympde.api import Constant +from sympde.api import grad, dot, inner, rot, div +from sympde.api import laplace, bracket, convect +from sympde.api import jump, avg, Dn, minus, plus +from sympde.api import Domain, Mapping, Square +from sympde.api import dx, dy +from sympde.api import dx1, dx2, dx3 +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import element_of, elements_of +from sympde.api import LogicalExpr +from sympde.api import get_logical_test_function +from sympde.api import SymbolicExpr +from sympde.api import IdentityMapping +from sympde.api import PolarMapping +from sympde.api import TargetMapping +from sympde.api import CzarnyMapping +from sympde.api import CollelaMapping2D +from sympde.api import TorusMapping +from sympde.api import TwistedTargetMapping + +from sympde.api import BilinearForm, integral +from sympde.api import grad, div, curl, dot from sympde.topology.mapping import Jacobian diff --git a/sympde/topology/tests/test_mapping.py b/sympde/topology/tests/test_mapping.py index 8ce6fde4..78225fcd 100644 --- a/sympde/topology/tests/test_mapping.py +++ b/sympde/topology/tests/test_mapping.py @@ -7,10 +7,10 @@ from sympy.tensor import IndexedBase from sympy import symbols, simplify -from sympde.topology import IdentityMapping, Mapping, MappedDomain, AffineMapping -from sympde.topology import dx, dy, dz -from sympde.topology import dx1, dx2, dx3 -from sympde.topology import Domain, Square +from sympde.api import IdentityMapping, Mapping, MappedDomain, AffineMapping +from sympde.api import dx, dy, dz +from sympde.api import dx1, dx2, dx3 +from sympde.api import Domain, Square from sympde.topology.mapping import ( Contravariant, diff --git a/sympde/topology/tests/test_space.py b/sympde/topology/tests/test_space.py index a52c3077..7124e8a5 100644 --- a/sympde/topology/tests/test_space.py +++ b/sympde/topology/tests/test_space.py @@ -1,13 +1,13 @@ # coding: utf-8 -from sympde.calculus import grad, div -from sympde.topology import Domain -from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import grad, div +from sympde.api import Domain +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace #from sympde.topology import ProductSpace -from sympde.topology import element_of -from sympde.topology import H1Space, HcurlSpace, HdivSpace, L2Space, UndefinedSpace -from sympde.topology import ScalarFunction, VectorFunction -from sympde.topology import Projector +from sympde.api import element_of +from sympde.api import H1Space, HcurlSpace, HdivSpace, L2Space, UndefinedSpace +from sympde.api import ScalarFunction, VectorFunction +from sympde.api import Projector def test_function_symbol_identity(): diff --git a/sympde/topology/tests/test_symbolic_expr.py b/sympde/topology/tests/test_symbolic_expr.py index 43d1151c..93b0b69a 100644 --- a/sympde/topology/tests/test_symbolic_expr.py +++ b/sympde/topology/tests/test_symbolic_expr.py @@ -1,12 +1,12 @@ from sympy import Symbol from sympy import sympify -from sympde.topology import Domain, ScalarFunctionSpace, element_of -from sympde.topology import dx, dy, dz -from sympde.topology import dx1, dx2, dx3 -from sympde.topology import Mapping, Jacobian -from sympde.topology import LogicalExpr -from sympde.topology import SymbolicExpr +from sympde.api import Domain, ScalarFunctionSpace, element_of +from sympde.api import dx, dy, dz +from sympde.api import dx1, dx2, dx3 +from sympde.api import Mapping, Jacobian +from sympde.api import LogicalExpr +from sympde.api import SymbolicExpr #============================================================================== def test_derivatives_2d_without_mapping(): diff --git a/sympde/topology/tests/test_topology.py b/sympde/topology/tests/test_topology.py index 4f9a1995..69df96f0 100644 --- a/sympde/topology/tests/test_topology.py +++ b/sympde/topology/tests/test_topology.py @@ -3,13 +3,13 @@ from sympy import preorder_traversal from sympy.core import Basic -from sympde.topology import InteriorDomain, Union -from sympde.topology import Boundary -from sympde.topology import Domain, ElementDomain -from sympde.topology import Area, Mapping -from sympde.topology import Interface -from sympde.topology import Line, Square, Cube, NCube -from sympde.topology import IdentityMapping +from sympde.api import InteriorDomain, Union +from sympde.api import Boundary +from sympde.api import Domain, ElementDomain +from sympde.api import Area, Mapping +from sympde.api import Interface +from sympde.api import Line, Square, Cube, NCube +from sympde.api import IdentityMapping base_dir = os.path.dirname(os.path.realpath(__file__)) topo_dir = os.path.join(base_dir, 'data') diff --git a/sympde/utilities/tests/test_utilities.py b/sympde/utilities/tests/test_utilities.py index f6fbfe55..d2502570 100644 --- a/sympde/utilities/tests/test_utilities.py +++ b/sympde/utilities/tests/test_utilities.py @@ -4,6 +4,8 @@ from sympy import Matrix, symbols, Array from sympy import S from sympde.utilities.utils import lambdify_sympde +from sympde.utilities.utils import plot_domain +from sympde.api import Square @@ -53,6 +55,13 @@ def test_lambdify_sympde_1d(): assert np.array_equal(array_input_da, expected_a_da) +def test_plot_unmapped_2d_domain(monkeypatch, tmp_path): + """Plotting an unmapped square must create a 2D identity mapping.""" + monkeypatch.setenv('MPLBACKEND', 'Agg') + monkeypatch.setenv('MPLCONFIGDIR', str(tmp_path)) + plot_domain(Square('Omega'), draw=False) + + def test_lambdify_sympde_2d(): x,y = symbols("x, y") diff --git a/sympde/utilities/utils.py b/sympde/utilities/utils.py index 3496a1df..164957ae 100644 --- a/sympde/utilities/utils.py +++ b/sympde/utilities/utils.py @@ -2,11 +2,9 @@ import itertools as it from sympy import lambdify -from mpl_toolkits.mplot3d import * -import matplotlib.pyplot as plt - -from sympde.topology import IdentityMapping, InteriorDomain, MultiPatchMapping -from sympde.topology.analytical_mapping import TorusMapping +from sympde.topology.analytical_mapping import IdentityMapping +from sympde.topology.basic import InteriorDomain +from sympde.topology.mapping import MultiPatchMapping def lambdify_sympde(variables, expr): """ @@ -134,6 +132,8 @@ def plot_2d(domain, draw=True, isolines=False, refinement=40): refinement : int Number of straight line segments used to approximate each boundary edge. """ + import matplotlib.pyplot as plt + fig = plt.figure() ax = fig.add_subplot(111) @@ -168,6 +168,8 @@ def plot_3d(domain, draw=True, refinement=15): refinement : int Number of straight line segments used to approximate each boundary edge. """ + import matplotlib.pyplot as plt + mapping = domain.mapping fig = plt.figure() @@ -265,7 +267,7 @@ def plot_2d_single_patch(patch, mapping, ax, isolines=False, refinement=40): Number of straight line segments used to approximate each boundary edge. """ if mapping is None: - mapping = IdentityMapping('Id', dim=3) + mapping = IdentityMapping('Id', dim=2) refinement+=1 map_call = mapping.get_callable_mapping() @@ -291,7 +293,8 @@ def plot_2d_single_patch(patch, mapping, ax, isolines=False, refinement=40): ax.plot(X_11, Y_11, 'k') if __name__ == '__main__': - from sympde.topology import Square, PolarMapping + from sympde.topology.analytical_mapping import PolarMapping + from sympde.topology.domain import Square A = Square('A', bounds1=(0, 1), bounds2=(0, np.pi/2)) F = PolarMapping('F', c1=0, c2=0, rmin=0.5, rmax=1) Omega = F(A) From 7c22e570db866218295683bde6947a455fa1afc5 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 5 Oct 2026 10:44:28 +0200 Subject: [PATCH 03/27] Replace legacy tutorials with executable examples Move maintained notebook material into tested documentation examples and remove obsolete tutorial helpers and notebook assets. --- .github/workflows/documentation.yml | 6 + doc/advanced.rst | 49 +- doc/examples/analytical_mappings.py | 43 ++ doc/examples/differential_calculus.py | 40 ++ doc/examples/exterior_calculus.py | 48 ++ doc/examples/index.rst | 56 +++ doc/examples/nonlinear_poisson.py | 30 ++ doc/examples/quickstart.py | 50 ++ doc/examples/tensorization.py | 21 + doc/examples/variational_forms.py | 59 +++ doc/include/graph.py | 234 ---------- doc/quick.rst | 448 ++---------------- doc/utils/advanced.py | 38 -- doc/utils/quick.py | 228 --------- notebooks/Analytical_Mapping.ipynb | 291 ------------ notebooks/Exterior_Calculus.ipynb | 547 ---------------------- notebooks/Introduction.ipynb | 642 -------------------------- notebooks/differential_culculus.ipynb | 208 --------- notebooks/nonlinear_examples.ipynb | 145 ------ notebooks/styles/custom.html | 86 ---- 20 files changed, 423 insertions(+), 2846 deletions(-) create mode 100644 doc/examples/analytical_mappings.py create mode 100644 doc/examples/differential_calculus.py create mode 100644 doc/examples/exterior_calculus.py create mode 100644 doc/examples/index.rst create mode 100644 doc/examples/nonlinear_poisson.py create mode 100644 doc/examples/quickstart.py create mode 100644 doc/examples/tensorization.py create mode 100644 doc/examples/variational_forms.py delete mode 100644 doc/include/graph.py delete mode 100644 doc/utils/advanced.py delete mode 100644 doc/utils/quick.py delete mode 100644 notebooks/Analytical_Mapping.ipynb delete mode 100644 notebooks/Exterior_Calculus.ipynb delete mode 100644 notebooks/Introduction.ipynb delete mode 100644 notebooks/differential_culculus.ipynb delete mode 100644 notebooks/nonlinear_examples.ipynb delete mode 100644 notebooks/styles/custom.html diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 8df2dc3d..6b1a37c7 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -49,6 +49,12 @@ jobs: pip install .[docs] pip freeze + - name: Run documentation examples + run: | + for example in doc/examples/*.py; do + python "$example" + done + - name: Make the Sphinx documentation run: >- python -m sphinx -W --keep-going diff --git a/doc/advanced.rst b/doc/advanced.rst index 1f4c96a5..7f4c086d 100644 --- a/doc/advanced.rst +++ b/doc/advanced.rst @@ -1,39 +1,34 @@ Advanced expression manipulation ******************************** -In this section, we shall present different different features for manipulating expressions such us finding the Kronecker representation for bilinear forms. +Tensor-product representation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Tensorization -^^^^^^^^^^^^^ +``TensorExpr`` lowers an integrated form and expresses it through one- +dimensional symbolic factors. This is useful to inspect the Kronecker +structure consumed by tensor-product discretizations. -Assume we have the following bilinear form for Laplace +.. literalinclude:: examples/tensorization.py + :language: python -.. code-block:: python +The example is an executable documentation source and is run by the +documentation workflow before Sphinx builds the page. - from sympde import grad, dot - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import BilinearForm - from sympde.core import tensorize +Logical expressions +^^^^^^^^^^^^^^^^^^^ - V = FunctionSpace('V', ldim=2) - U = FunctionSpace('U', ldim=2) +``LogicalExpr`` pulls expressions on a mapped physical domain back to its +logical domain. The analytical-mapping example demonstrates symbolic and +numerical use of this transformation: - v = TestFunction(V, name='v') - u = TestFunction(U, name='u') +.. literalinclude:: examples/analytical_mappings.py + :language: python - a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) - print(tensorize(a)) +Nonlinear forms +^^^^^^^^^^^^^^^ -the result is then +``linearize`` differentiates a nonlinear residual with respect to a field and +returns its symbolic Jacobian form: -.. code-block:: python - - >>> Mass(v1,u1)xMass(v0,u0) + Mass(v1,u1)xStiffness(v0,u0) + Stiffness(v1,u1)xMass(v0,u0) - -which is what we expect, when splitting the integrals with respect to the two directions. -Printing the corresponding latex code gives - -.. math:: - - {\int_{0}^{1} u_{1} v_{1} dy}\otimes {\int_{0}^{1} u_{0} v_{0} dx} + {\int_{0}^{1} u_{1} v_{1} dy}\otimes {\int_{0}^{1} u_{0}^\prime v_{0}^\prime dx} + {\int_{0}^{1} u_{1}^\prime v_{1}^\prime dy}\otimes {\int_{0}^{1} u_{0} v_{0} dx} +.. literalinclude:: examples/nonlinear_poisson.py + :language: python diff --git a/doc/examples/analytical_mappings.py b/doc/examples/analytical_mappings.py new file mode 100644 index 00000000..6a83e206 --- /dev/null +++ b/doc/examples/analytical_mappings.py @@ -0,0 +1,43 @@ +"""Work with built-in and user-defined analytical mappings.""" + +import numpy as np +from sympy import pi, sin, symbols + +from sympde.api import CollelaMapping2D, Constant, Domain, LogicalExpr, Mapping + + +# Inspect a built-in mapping symbolically. +mapping = CollelaMapping2D('M', dim=2) +mapped_domain = mapping(Domain('Omega', dim=2)) +x1, x2 = symbols('x1, x2', real=True) +eps, k1, k2 = [Constant(name) for name in ('eps', 'k1', 'k2')] + +expected_x = 2.0 * ( + x1 + eps * sin(2.0 * pi * k1 * x1) * sin(2.0 * pi * k2 * x2) +) - 1.0 +assert LogicalExpr(mapping[0], mapped_domain) == expected_x + + +# Fix its parameters and evaluate it numerically. +numerical_mapping = CollelaMapping2D( + 'M_numeric', + dim=2, + eps=0.1, + k1=1.0, + k2=1.0, +).get_callable_mapping() +np.testing.assert_allclose(numerical_mapping(0.25, 0.5), (-0.5, 0.0)) + + +# Define a custom mapping by specifying its coordinate expressions. +class ComplexSquareMapping(Mapping): + """Map ``(x1, x2)`` through the square of a complex number.""" + + _expressions = { + 'x': 'A * (x1**2 - x2**2)', + 'y': '2 * A * x1 * x2', + } + + +custom_mapping = ComplexSquareMapping('F', dim=2, A=1.0).get_callable_mapping() +np.testing.assert_allclose(custom_mapping(0.5, 0.25), (0.1875, 0.25)) diff --git a/doc/examples/differential_calculus.py b/doc/examples/differential_calculus.py new file mode 100644 index 00000000..a7e54cd9 --- /dev/null +++ b/doc/examples/differential_calculus.py @@ -0,0 +1,40 @@ +"""Verify representative symbolic vector-calculus identities.""" + +from sympy import expand + +from sympde.api import Constant, Domain, ScalarFunctionSpace, VectorFunctionSpace +from sympde.api import curl, div, elements_of, grad, laplace + + +domain = Domain('Omega', dim=3) +scalar_space = ScalarFunctionSpace('V', domain) +vector_space = VectorFunctionSpace('W', domain) + +alpha, beta = [Constant(name) for name in ('alpha', 'beta')] +f, g, h = elements_of(scalar_space, names='f, g, h') +field_f, field_g, field_h = elements_of(vector_space, names='F, G, H') + +# Gradient linearity and product rules. +assert grad(f + g) == grad(f) + grad(g) +assert grad(alpha * f + beta * g) == alpha * grad(f) + beta * grad(g) +assert grad(f * g) == f * grad(g) + g * grad(f) +assert grad(f / g) == -f * grad(g) / g**2 + grad(f) / g +assert expand(grad(f * g * h)) == ( + f * g * grad(h) + f * h * grad(g) + g * h * grad(f) +) + +# Linearity of curl, Laplace, and divergence operators. +assert curl(field_f + field_g) == curl(field_f) + curl(field_g) +assert curl(alpha * field_f + beta * field_g) == ( + alpha * curl(field_f) + beta * curl(field_g) +) +assert laplace(f + g) == laplace(f) + laplace(g) +assert laplace(alpha * f + beta * g) == alpha * laplace(f) + beta * laplace(g) +assert div(field_f + field_g) == div(field_f) + div(field_g) +assert div(alpha * field_f + beta * field_g) == ( + alpha * div(field_f) + beta * div(field_g) +) + +# Exact-sequence identities. +assert curl(grad(h)) == 0 +assert div(curl(field_h)) == 0 diff --git a/doc/examples/exterior_calculus.py b/doc/examples/exterior_calculus.py new file mode 100644 index 00000000..8e2e1579 --- /dev/null +++ b/doc/examples/exterior_calculus.py @@ -0,0 +1,48 @@ +"""Apply exterior-calculus operators to symbolic differential forms.""" + +from sympy import Symbol + +from sympde.api import Constant, DifferentialForm, Domain, VectorFunctionSpace +from sympde.api import d, delta, element_of, hodge, ip, jp, latex, ld, wedge + + +dimension = Symbol('n') +alpha = Constant('alpha') + +u_0, v_0 = [ + DifferentialForm(name, index=0, dim=dimension) + for name in ('u_0', 'v_0') +] +u_1, v_1 = [ + DifferentialForm(name, index=1, dim=dimension) + for name in ('u_1', 'v_1') +] +u_2 = DifferentialForm('u_2', index=2, dim=dimension) +u_n = DifferentialForm('u_n', index=dimension, dim=dimension) + +# The exterior derivative is linear, nilpotent, and zero on top forms. +assert d(d(u_0)) == 0 +assert d(u_0 + v_0) == d(u_0) + d(v_0) +assert d(alpha * u_0 + v_0) == alpha * d(u_0) + d(v_0) +assert d(u_n) == 0 + +# Its adjoint is linear and zero on zero-forms. +assert delta(u_0) == 0 +assert delta(u_1 + v_1) == delta(u_1) + delta(v_1) +assert delta(alpha * u_1 + v_1) == alpha * delta(u_1) + delta(v_1) + +domain = Domain('Omega', dim=3) +vector_space = VectorFunctionSpace('W', domain) +beta = element_of(vector_space, name='beta') + +expressions = ( + d(u_1) + u_2, + wedge(d(u_1), u_2), + hodge(u_1), + ip(beta, u_1), + jp(beta, u_1), + ld(beta, u_1), +) + +for expression in expressions: + print(latex(expression)) diff --git a/doc/examples/index.rst b/doc/examples/index.rst new file mode 100644 index 00000000..cf8999c4 --- /dev/null +++ b/doc/examples/index.rst @@ -0,0 +1,56 @@ +Examples +======== + +These examples are executable Python scripts. The documentation workflow runs +all of them before building the HTML pages, ensuring that their imports and +demonstrated APIs remain current. + +Variational forms +----------------- + +This example constructs a scalar Poisson problem and a Nitsche-type form on a +two-patch domain. + +.. literalinclude:: variational_forms.py + :language: python + :linenos: + +Differential calculus +--------------------- + +This example demonstrates the currently supported symbolic vector-calculus +identities. + +.. literalinclude:: differential_calculus.py + :language: python + :linenos: + +Analytical mappings +------------------- + +This example evaluates a built-in analytical mapping and defines a custom +mapping from coordinate expressions. + +.. literalinclude:: analytical_mappings.py + :language: python + :linenos: + +Exterior calculus +----------------- + +This example demonstrates differential forms, exterior derivatives, adjoint +operators, products, contractions, and Lie derivatives. + +.. literalinclude:: exterior_calculus.py + :language: python + :linenos: + +Nonlinear linearization +----------------------- + +This example constructs a nonlinear Poisson residual and derives its Jacobian +form symbolically. + +.. literalinclude:: nonlinear_poisson.py + :language: python + :linenos: diff --git a/doc/examples/nonlinear_poisson.py b/doc/examples/nonlinear_poisson.py new file mode 100644 index 00000000..7a6575bc --- /dev/null +++ b/doc/examples/nonlinear_poisson.py @@ -0,0 +1,30 @@ +"""Linearize the residual of a nonlinear Poisson problem.""" + +from sympy import exp + +from sympde.api import BilinearForm, Domain, LinearForm, ScalarFunctionSpace +from sympde.api import dot, elements_of, grad, integral, linearize + + +domain = Domain('Omega', dim=2) +space = ScalarFunctionSpace('V', domain) +field, increment, test = elements_of(space, names='u, delta_u, v') + + +def integrate(expression): + """Integrate an expression over the problem domain.""" + + return integral(domain, expression) + + +residual = LinearForm( + test, + integrate(dot(grad(test), grad(field)) - 4.0 * exp(-field) * test), +) + +jacobian = linearize(residual, field, trials=increment) +assert isinstance(jacobian, BilinearForm) +assert jacobian(increment, test) == integrate( + dot(grad(test), grad(increment)) + + 4.0 * exp(-field) * increment * test +) diff --git a/doc/examples/quickstart.py b/doc/examples/quickstart.py new file mode 100644 index 00000000..528ac64f --- /dev/null +++ b/doc/examples/quickstart.py @@ -0,0 +1,50 @@ +"""Build a scalar Poisson problem with the current public API.""" + +from sympy import cos + +from sympde.api import BilinearForm, LinearForm, ScalarFunctionSpace, Square +from sympde.api import TerminalExpr, div, dot, elements_of, find, grad +from sympde.api import integral, latex + + +# [domains-start] +domain = Square('Omega') +space = ScalarFunctionSpace('V', domain) +trial, test = elements_of(space, names='u, v') + +strong_expression = -div(grad(trial)) + trial +assert strong_expression.has(trial) +# [domains-end] + + +# [forms-start] +bilinear_form = BilinearForm( + (trial, test), + integral(domain, dot(grad(trial), grad(test)) + trial * test), +) + +x, y = domain.coordinates +linear_form = LinearForm(test, integral(domain, cos(x + y) * test)) + +equation = find( + trial, + forall=test, + lhs=bilinear_form(trial, test), + rhs=linear_form(test), +) +# [forms-end] + + +# [lowering-start] +coordinate_expression = TerminalExpr( + dot(grad(trial), grad(test)), + domain, +) +assert coordinate_expression.has(trial, test) +# [lowering-end] + + +# [printing-start] +latex_equation = latex(equation) +print(latex_equation) +# [printing-end] diff --git a/doc/examples/tensorization.py b/doc/examples/tensorization.py new file mode 100644 index 00000000..e7ee963b --- /dev/null +++ b/doc/examples/tensorization.py @@ -0,0 +1,21 @@ +"""Expose the tensor-product structure of a scalar bilinear form.""" + +from sympde.api import BilinearForm, Constant, Domain, ScalarFunctionSpace +from sympde.api import TensorExpr, dot, elements_of, grad, integral + + +domain = Domain('Omega', dim=2) +space = ScalarFunctionSpace('V', domain) +trial, test = elements_of(space, names='u, v') +coefficient = Constant('mu', real=True) + +form = BilinearForm( + (trial, test), + integral( + domain, + coefficient * trial * test + dot(grad(trial), grad(test)), + ), +) + +tensor_expression = TensorExpr(form, domain=domain) +print(tensor_expression) diff --git a/doc/examples/variational_forms.py b/doc/examples/variational_forms.py new file mode 100644 index 00000000..b2f2b938 --- /dev/null +++ b/doc/examples/variational_forms.py @@ -0,0 +1,59 @@ +"""Construct scalar variational forms on single- and multi-patch domains.""" + +from sympy import cos + +from sympde.api import BilinearForm, Constant, Domain, LinearForm, ScalarFunctionSpace +from sympde.api import Square, Dn, dot, elements_of, find, grad, integral +from sympde.api import jump, latex, minus, plus + + +# A Poisson problem on a single square. +domain = Square('Omega') +space = ScalarFunctionSpace('V', domain) +trial, test = elements_of(space, names='u, v') + +bilinear_form = BilinearForm( + (trial, test), + integral(domain, dot(grad(trial), grad(test))), +) + +x, y = domain.coordinates +linear_form = LinearForm(test, integral(domain, cos(x + y) * test)) +equation = find( + trial, + forall=test, + lhs=bilinear_form(trial, test), + rhs=linear_form(test), +) + +print(latex(equation)) + + +# A Nitsche-type interface contribution on two joined patches. +patch_a = Square('A') +patch_b = Square('B') +domain = Domain.join( + [patch_a, patch_b], + [((0, 0, 1), (1, 0, -1), 1)], + 'Omega', +) + +space = ScalarFunctionSpace('V', domain) +trial, test = elements_of(space, names='u, v') +interface = domain.interfaces +kappa = Constant('kappa') + +interface_integrand = ( + -jump(trial) * jump(Dn(test)) + + kappa * jump(trial) * jump(test) + + plus(Dn(trial)) * minus(test) + + minus(Dn(trial)) * plus(test) +) + +multi_patch_form = BilinearForm( + (trial, test), + integral(domain, dot(grad(trial), grad(test))) + + integral(interface, interface_integrand), +) + +print(latex(multi_patch_form)) diff --git a/doc/include/graph.py b/doc/include/graph.py deleted file mode 100644 index 84e1a5c9..00000000 --- a/doc/include/graph.py +++ /dev/null @@ -1,234 +0,0 @@ -# coding: utf-8 - -import os - -from sympy import Symbol -from sympy.core.containers import Tuple -from sympy import symbols -from sympy import IndexedBase -from sympy import Matrix -from sympy import Function -from sympy import pi, cos, sin, exp -from sympy import srepr -from sympy.physics.quantum import TensorProduct -from sympy.printing.dot import dotprint - -from sympde.core import Constant -from sympde.calculus import grad, dot, inner, cross, rot, curl, div -from sympde.calculus import laplace, hessian, bracket, convect -from sympde.topology import (dx, dy, dz) -from sympde.topology import FunctionSpace, VectorFunctionSpace -from sympde.topology import Field, VectorField -from sympde.topology import ProductSpace -from sympde.topology import TestFunction -from sympde.topology import VectorTestFunction -from sympde.topology import Unknown -from sympde.topology import InteriorDomain, Union -from sympde.topology import Boundary, NormalVector, TangentVector -from sympde.topology import Domain -from sympde.topology import Trace, trace_0, trace_1 -from sympde.topology import Mapping -from sympde.topology import Square -from sympde.topology import ElementDomain -from sympde.topology import Area - -from sympde.expr.expr import LinearExpr, BilinearExpr -from sympde.expr.expr import LinearForm, BilinearForm -from sympde.expr.expr import DomainIntegral, BoundaryIntegral -from sympde.expr.expr import Functional, Norm -from sympde.expr.expr import linearize -from sympde.expr.evaluation import TerminalExpr - - -#============================================================================== -def mkdir_p(dir): - if os.path.isdir(dir): - return - os.makedirs(dir) - - -#============================================================================== -def export(expr, fname): - """saves the graph as a png/svg file. the extension is eitheir png or svg""" - - name, ext = os.path.splitext(fname) - ext = ext[1:] - - graph = dotprint(expr) - f = open('{name}.dot'.format(name=name), 'w') - f.write(graph) - f.close() - - cmd = "dot -T{ext} {name}.dot -o{name}.{ext}".format(name=name, ext=ext) - os.system(cmd) - -#============================================================================== -def test_linear_form_2d_1(): - - domain = Domain('Omega', dim=2) - B1 = Boundary(r'\Gamma_1', domain) - - x,y = domain.coordinates - - kappa = Constant('kappa', is_real=True) - mu = Constant('mu' , is_real=True) - eps = Constant('eps', real=True) - - V = FunctionSpace('V', domain) - - u,u1,u2 = [TestFunction(V, name=i) for i in ['u', 'u1', 'u2']] - v,v1,v2 = [TestFunction(V, name=i) for i in ['v', 'v1', 'v2']] - - g = Tuple(x**2, y**2) - - # ... - d_forms = {} - - d_forms['l1'] = LinearForm(v, x*y*v) - d_forms['l2'] = LinearForm(v, v*trace_1(g, B1)) - d_forms['l3'] = LinearForm(v, v*trace_1(g, B1) + x*y*v) - - # nitsche - f = Function('f') - g = Function('g') - - l0 = LinearForm(v, f(x,y)*v) - l_B1 = LinearForm(v, g(x,y)*trace_0(v, B1)/eps - - kappa * g(x,y) * trace_1(grad(v), B1)) - - d_forms['l4'] = LinearForm(v, l0(v) + l_B1(v)) - # ... - - # ... - for name, expr in d_forms.items(): - export(expr, 'linform_2d_{}.png'.format(name)) - # ... - -#============================================================================== -def test_bilinear_form_2d_1(): - - domain = Domain('Omega', dim=2) - B1 = Boundary(r'\Gamma_1', domain) - - x,y = domain.coordinates - - kappa = Constant('kappa', is_real=True) - mu = Constant('mu' , is_real=True) - eps = Constant('eps', real=True) - - V = FunctionSpace('V', domain) - - u,u1,u2 = [TestFunction(V, name=i) for i in ['u', 'u1', 'u2']] - v,v1,v2 = [TestFunction(V, name=i) for i in ['v', 'v1', 'v2']] - - # ... - d_forms = {} - - d_forms['a1'] = BilinearForm((u,v), u*v) - d_forms['a2'] = BilinearForm((u,v), u*v + dot(grad(u), grad(v))) - d_forms['a3'] = BilinearForm((u,v), v*trace_1(grad(u), B1)) - - - # Poisson with Nitsch method - a0 = BilinearForm((u,v), dot(grad(u),grad(v))) - a_B1 = BilinearForm((u,v), - kappa * u*trace_1(grad(v), B1) - - v*trace_1(grad(u), B1) - + trace_0(u, B1) * trace_0(v, B1) / eps) - a = BilinearForm((u,v), a0(u,v) + a_B1(u,v)) - - d_forms['a4'] = a - # ... - - # ... calls - d_calls = {} - for name, a in d_forms.items(): - d_calls[name] = a(u1,v1) - # ... - - # ... export forms - for name, expr in d_forms.items(): - export(expr, 'biform_2d_{}.png'.format(name)) - # ... - - # ... export calls - for name, expr in d_calls.items(): - export(expr, 'biform_2d_call_{}.png'.format(name)) - # ... - - -#============================================================================== -# stokes -def test_bilinear_form_2d_3(): - - domain = Domain('Omega', dim=2) - - x,y = domain.coordinates - - V = VectorFunctionSpace('V', domain) - W = FunctionSpace('W', domain) - - v = VectorTestFunction(V, name='v') - u = VectorTestFunction(V, name='u') - p = TestFunction(W, name='p') - q = TestFunction(W, name='q') - - a = BilinearForm((u,v), inner(grad(v), grad(u))) - b = BilinearForm((v,p), div(v)*p) - A = BilinearForm(((u,p),(v,q)), a(v,u) - b(v,p) + b(u,q)) - - export(A, 'stokes_2d.png') - -#============================================================================== -def test_linearize_form_2d_3(): - """steady Euler equation.""" - domain = Domain('Omega', dim=2) - x,y = domain.coordinates - - U = VectorFunctionSpace('U', domain) - W = FunctionSpace('W', domain) - - v = VectorTestFunction(U, name='v') - phi = TestFunction(W, name='phi') - q = TestFunction(W, name='q') - - U_0 = VectorField(U, name='U_0') - Rho_0 = Field(W, name='Rho_0') - P_0 = Field(W, name='P_0') - - # ... - expr = div(Rho_0*U_0) * phi - l1 = LinearForm(phi, expr) - - expr = Rho_0*dot(convect(U_0, grad(U_0)), v) + dot(grad(P_0), v) - l2 = LinearForm(v, expr) - - expr = dot(U_0, grad(P_0)) * q + P_0 * div(U_0) * q - l3 = LinearForm(q, expr) - # ... - - a1 = linearize(l1, [Rho_0, U_0], trials=['d_rho', 'd_u']) - print(a1) - print('') - - a2 = linearize(l2, [Rho_0, U_0, P_0], trials=['d_rho', 'd_u', 'd_p']) - print(a2) - print('') - - a3 = linearize(l3, [P_0, U_0], trials=['d_p', 'd_u']) - print(a3) - print('') - - l = LinearForm((phi, v, q), l1(phi) + l2(v) + l3(q)) - a = linearize(l, [Rho_0, U_0, P_0], trials=['d_rho', 'd_u', 'd_p']) - print(a) - - export(a, 'steady_euler.png') - -############################################ -if __name__ == '__main__': - -# test_linear_form_2d_1() -# test_bilinear_form_2d_1() -# test_bilinear_form_2d_3() - - test_linearize_form_2d_3() diff --git a/doc/quick.rst b/doc/quick.rst index 3b288657..efb34650 100644 --- a/doc/quick.rst +++ b/doc/quick.rst @@ -1,422 +1,70 @@ Quick start *********** -**sympde** allows you to create symbolic expressions using differential/algebraic operators. It can be used to define strong or weak forms, when dealing with finite elements methods. +SymPDE builds symbolic differential operators, variational forms, and PDE +problems on explicitly declared domains and function spaces. User-facing +objects are available from :mod:`sympde.api`. -Strong forms -^^^^^^^^^^^^ +Domains and fields +^^^^^^^^^^^^^^^^^^ -Assume you want to create the symbolic expression that is equivalent to +A field belongs to a scalar or vector function space. The following complete +example creates two scalar fields on a square and forms a differential +expression from them: -.. math:: +.. literalinclude:: examples/quickstart.py + :language: python + :start-after: # [domains-start] + :end-before: # [domains-end] - \mathcal{L} u := - \nabla^2 u + u +Differential operators remain symbolic, while linearity and product rules are +applied automatically. SymPDE also supports ``curl``, ``laplace``, normal +derivatives, traces, and interface operators. -where :math:`u` denotes the *unknown* of 2 variables (2D). +Variational forms +^^^^^^^^^^^^^^^^^ -In **sympde**, you can declare :math:`u` using +Integrals identify the domain on which an expression is evaluated. A +``BilinearForm`` declares its trial and test fields, and a ``LinearForm`` +declares its test field: -.. code-block:: python +.. literalinclude:: examples/quickstart.py + :language: python + :start-after: # [forms-start] + :end-before: # [forms-end] - from sympde import Unknown +The :func:`sympde.api.find` helper combines those forms into a symbolic +equation. Boundary conditions can be supplied with ``EssentialBC`` through +the optional ``bc`` argument. - u = Unknown('u', ldim=2) +Expression lowering +^^^^^^^^^^^^^^^^^^^ -The expression associated to the operator :math:`\mathcal{L}` is then defined as +Generic vector-calculus operators can be lowered to coordinate derivatives +for a specific domain with ``TerminalExpr``: -.. code-block:: python +.. literalinclude:: examples/quickstart.py + :language: python + :start-after: # [lowering-start] + :end-before: # [lowering-end] - from sympde import grad, div +Mappings and multipatch domains +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - expr = - div(grad(u)) + u - -you can also use a *lambda expression* - -.. code-block:: python - - from sympde import grad, div - - L = lambda u: - div(grad(u)) + u - -As any sympy expression, you can take a look at the diagram of the expression tree: - -.. figure:: include/quick/graph1.png - :scale: 70 % - :alt: map to buried treasure - - Expression tree for the :math:`\mathcal{L} u := - \nabla^2 u + u` operator. - -.. note:: - - The above diagram was made using `Graphviz `_ and - the `dotprint `_ function. - -**sympde** allows to write more complicated expressions and it knows many differential calculus rules to perform the computation on its own. - -Let us consider the following mathematical expression - -.. math:: - - \partial_x \partial_y uv - -The symbolic associated expression can be achieved using - -.. code-block:: python - - from sympde import Unknown - from sympde import dx, dy - - u = Unknown('u', ldim=2) - v = Unknown('v', ldim=2) - - expr = dx(dy(u*v)) - -Since we are using the atomic operators **dx** and **dy**, the expression will be automatically evaluated, in opposition to the use of **grad** or **div**. Hence, result is - -.. code-block:: python - - >>> u*dx(dy(v)) + v*dx(dy(u)) + dx(u)*dy(v) + dx(v)*dy(u) - -and the associated expression tree is - -.. figure:: include/quick/graph2.png - :scale: 70 % - :alt: map to buried treasure - - Expression tree for :math:`\partial_x \partial_y uv`. - -When evaluated, **sympde** differential operators are linear operators. Which means that the following code: - -.. code-block:: python - - from sympde import Unknown - from sympde import dx, dy - - u = Unknown('u', ldim=2) - v = Unknown('v', ldim=2) - - expr = dy(2*u+3*v) - -will return: - -.. code-block:: python - - >>> 2*dy(u) + 3*dy(v) - -**sympde** introduces the notion of a *constant* through the class **Constant**. As expected, applying a differential operator on it will return **0**: - -.. code-block:: python - - from sympde import Unknown, Constant - from sympde import dx - - u = Unknown('u', ldim=1) - alpha = Constant('alpha') - - expr = dx(alpha*u) + dx(dx(2*u)) - -The result is: - -.. code-block:: python - - >>> alpha*dx(u) + 2*dx(dx(u)) - -You can also apply a differential operator on an analytical function, which is useful to compute solution/rhs of a partial differential equation: - -.. code-block:: python - - from sympde import Constant - from sympde import dx, dy - from sympy.abc import x, y - from sympy import cos, exp - - alpha = Constant('alpha') - - L = lambda u: -dx(dx(u)) - dy(dy(u)) + alpha * u - - expr = L(cos(y)*exp(-x**2)) - -The result is: - -.. code-block:: python - - >>> alpha*exp(-x**2)*cos(y) - 4*x**2*exp(-x**2)*cos(y) + 3*exp(-x**2)*cos(y) - -sympy undefined can also be used: - -.. code-block:: python - - from sympde import Constant - from sympde import dx, dy - from sympy.abc import x, y - from sympy import Function - - alpha = Constant('alpha') - f = Function('f') - - L = lambda u: -dx(dx(u)) - dy(dy(u)) + alpha * u - - expr = L(f(x,y)) - -which gives: - -.. code-block:: python - - >>> alpha*f(x, y) - Derivative(f(x, y), x, x) - Derivative(f(x, y), y, y) - -Weak forms -^^^^^^^^^^ - -Other useful notions for partial differential equations are *bilinear/linear* forms, which are needed when using variational methods such as finite elements. - -Variational forms come with two very important concepts: - -* **FunctionSpace**: mathematical function space. It can be a Sobolev space for example. - -* **TestFunction**: a member of **FunctionSpace** - -Bilinear form -_____________ - -Unlike fenics, **sympde** does not distinguish between test and trial functions; there is no type for trial functions. In fact, they are implicitly infered from the arguments of a bilinear form. The later is defined like a sympy **Lambda** object. This means that the user must provide: - -* a couple describing test and trial functions - -* a symbolic expression of the bilinear form - -The nice thing about this approach is that it allows calling the bilinear form with different arguments and then ensures more modularity and reuse of the abstract mathematical models. - -The following example shows how to define the weak formulation of the Laplace operator - -.. code-block:: python - - from sympde import grad, dot - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import BilinearForm - - V = FunctionSpace('V', ldim=2) - U = FunctionSpace('U', ldim=2) - - v = TestFunction(V, name='v') - u = TestFunction(U, name='u') - - a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) - -Let's take a look at the expression tree: - -.. figure:: include/quick/graph_laplace.png - :scale: 70 % - :alt: map to buried treasure - - Expression tree for Laplace weak form. - -We notice that the BilinearForm arguments are presented as a *Tuple*. The reason is that you can also define a bilinear form that is associated to a system of expressions. - -As any sympde expression, a BilinearForm can be printed, calling - -.. code-block:: python - - print(a) - -would give - -.. code-block:: python - - >>> u*v + Dot(Grad(v), Grad(u)) - -The following example implements a 1D wave model: - -.. code-block:: python - - from sympde import dx - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import BilinearForm - - V = FunctionSpace('V', ldim=1) - W = FunctionSpace('W', ldim=1) - - T = Constant('T', real=True, label='Tension applied to the string') - rho = Constant('rho', real=True, label='mass density') - dt = Constant('dt', real=True, label='time step') - - # trial functions - u = TestFunction(V, name='u') - f = TestFunction(W, name='f') - - # test functions - v = TestFunction(V, name='v') - w = TestFunction(W, name='w') - - mass = BilinearForm((v,u), v*u) - adv = BilinearForm((v,u), dx(v)*u) - - expr = rho*mass(v,u) + dt*adv(v, f) + dt*adv(w,u) + mass(w,f) - a = BilinearForm(((v,w), (u,f)), expr) - -.. todo:: add example using Mapping -.. todo:: add example using vector test functions -.. todo:: add example using Field - -Linear form -___________ - -Linear forms are more simple to create, but follow the same logic: - -.. code-block:: python - - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import LinearForm - from sympy import cos - - V = FunctionSpace('V', ldim=2) - - v = TestFunction(V, name='v') - - x,y = V.coordinates - - b = LinearForm(v, cos(x-y)*v) - -Notice that the space gives access to the coordinates, which can be used for callable functions, such as the **cos** in our example. - -Function form -_____________ - -A FunctionForm allows you to write expressions that can be integrated over the compputational domain. It can be defined as follows: - -.. code-block:: python - - from sympde import grad, div - from sympde import FunctionSpace - from sympde import Field - from sympde import FunctionForm - from sympy import cos, pi - - V = FunctionSpace('V', ldim=1) - F = Field('F', space=V) - - x = V.coordinates - - b = FunctionForm(div(grad(F-cos(2*pi*x)))) - -Evaluation -^^^^^^^^^^ - -The purpose of **sympde** is to declare objects that are needed to write an abstract mathematical model for problems involving partial differential equations. It does not provide any discretization. However, it provides you also with algorithms to manipulate the symbolic expressions. -For example, when using *generic* operators such as **grad** or **div**, the expression is not evaluated. For this reason, **sympde** provides the function **evaluate** that allows you to transform your expression into atomic operators such as **dx**, **dy**, **dz**. In the following example, we *evaluate* the Laplace operator: - -.. code-block:: python - - from sympde import grad, dot - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import BilinearForm - from sympde import evaluate - - V = FunctionSpace('V', ldim=2) - U = FunctionSpace('U', ldim=2) - - v = TestFunction(V, name='v') - u = TestFunction(U, name='u') - - a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) - print(evaluate(a)) - -The result is the following expression: - -.. code-block:: python - - >>> u_x*v_x + u_y*v_y + u*v - -You can then use this expression inside your code generation module to define the weak form associated to the bilinear form. What **sympde** does is the following: - -* converts generic operators such as **grad** or **div** to their atomic expressions - -* converts an atomic expression like **dx(u)** to **u_x** which can be used directly inside your python code (kernel of finite elements for example) - -If you only want to convert the generic operators into atomic operators, then you may use the **atomize** function: - -.. code-block:: python - - from sympde import grad, dot - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import BilinearForm - from sympde import atomize - - V = FunctionSpace('V', ldim=2) - U = FunctionSpace('U', ldim=2) - - v = TestFunction(V, name='v') - u = TestFunction(U, name='u') - - a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) - print(atomize(a.expr)) - -The result is then: - -.. code-block:: python - - >>> u*v + dx(u)*dx(v) + dy(u)*dy(v) - -Notice that **atomize** is a low level function and is called inside **evaluate**. For this reason, **atomize** only operates on the expression of **sympde** forms. +Mappings turn logical domains into physical domains. Multiple patches can be +joined by declaring their connected sides and orientation. See the executable +:doc:`examples/index` for analytical mappings, interface forms, exterior +calculus, and nonlinear linearization. Printing ^^^^^^^^ -Latex -_____ - -A symbolic expression can be printed in latex. This is done by calling the function **latex** on your expression or **sympde** forms. - -.. code-block:: python - - from sympde import grad, div - from sympde import Unknown - from sympde.printing import latex - - u = Unknown('u', ldim=2) - - print(latex(- div(grad(u)) + u)) - -which gives the following result: - -.. code-block:: python - - >>> u - \nabla \cdot \nabla{u} - -.. math:: - - u - \nabla \cdot \nabla{u} - -A **BilinearForm** can also be printed: - -.. code-block:: python - - from sympde import grad, dot - from sympde import FunctionSpace - from sympde import TestFunction - from sympde import BilinearForm - from sympde import atomize - from sympde.printing import latex - - V = FunctionSpace('V', ldim=2) - U = FunctionSpace('U', ldim=2) - - v = TestFunction(V, name='v') - u = TestFunction(U, name='u') - - a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) - print(latex(a)) - -which returns - -.. code-block:: python - - >>> \int_{0}^{1}\int_{0}^{1} u v + \nabla{v} \cdot \nabla{u} dxdy +The public ``latex`` function produces LaTeX for expressions and forms: -.. math:: +.. literalinclude:: examples/quickstart.py + :language: python + :start-after: # [printing-start] + :end-before: # [printing-end] - \int_{0}^{1}\int_{0}^{1} u v + \nabla{v} \cdot \nabla{u} dxdy +The documentation workflow executes ``quickstart.py`` before building these +pages, so its imports and demonstrated API are checked continuously. diff --git a/doc/utils/advanced.py b/doc/utils/advanced.py deleted file mode 100644 index 0a747847..00000000 --- a/doc/utils/advanced.py +++ /dev/null @@ -1,38 +0,0 @@ -# coding: utf-8 -from sympy.printing.dot import dotprint -import os - -def dotexport(expr, fname): - txt = str(dotprint(expr)) - - name = os.path.splitext(fname)[0] - - f = open('{}.dot'.format(name), 'w') - f.write(txt) - f.close() - - cmd = 'dot {name}.dot -Tpng -o {name}.png'.format(name=name) - os.system(cmd) - -# ... -from sympde import grad, dot -from sympde import FunctionSpace -from sympde import TestFunction -from sympde import BilinearForm -from sympde.core import tensorize -from sympde.printing.latex import latex - -V = FunctionSpace('V', ldim=2) -U = FunctionSpace('U', ldim=2) - -v = TestFunction(V, name='v') -u = TestFunction(U, name='u') - -a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) -print('> a = ', a) -print('> tensorize(a) = ', tensorize(a)) - -print(latex(tensorize(a))) - -#dotexport(a, 'graph_laplace.png') -# ... diff --git a/doc/utils/quick.py b/doc/utils/quick.py deleted file mode 100644 index d940ad1e..00000000 --- a/doc/utils/quick.py +++ /dev/null @@ -1,228 +0,0 @@ -# coding: utf-8 -from sympy.printing.dot import dotprint -import os - -def dotexport(expr, fname): - txt = str(dotprint(expr)) - - name = os.path.splitext(fname)[0] - - f = open('{}.dot'.format(name), 'w') - f.write(txt) - f.close() - - cmd = 'dot {name}.dot -Tpng -o {name}.png'.format(name=name) - os.system(cmd) - - -# ... -#from sympde import Unknown -#from sympde import grad, div -# -#u = Unknown('u', ldim=2) -#expr = - div(grad(u)) + u -#dotexport(expr, 'graph1.png') -# ... - -# ... -#from sympde import Unknown -#from sympde import dx, dy -# -#u = Unknown('u', ldim=2) -#v = Unknown('v', ldim=2) -# -#expr = dx(dy(u*v)) -#dotexport(expr, 'graph2.png') -# ... - -# ... -#from sympde import Unknown -#from sympde import dx, dy -# -#u = Unknown('u', ldim=2) -#v = Unknown('v', ldim=2) -# -#expr = dy(2*u+3*v) -#print(expr) -# ... - -# ... -#from sympde import Unknown, Constant -#from sympde import dx -# -#u = Unknown('u', ldim=1) -#alpha = Constant('alpha') -# -#expr = dx(alpha*u) + dx(dx(2*u)) -#print(expr) -# ... - -# ... -#from sympde import Constant -#from sympde import dx, dy -#from sympy.abc import x, y -#from sympy import cos, exp -# -#alpha = Constant('alpha') -# -#L = lambda u: -dx(dx(u)) - dy(dy(u)) + alpha * u -# -#expr = L(cos(y)*exp(-x**2)) -#print(expr) -# ... - -# ... -#from sympde import Constant -#from sympde import dx, dy -#from sympy.abc import x, y -#from sympy import Function -# -#alpha = Constant('alpha') -#f = Function('f') -# -#L = lambda u: -dx(dx(u)) - dy(dy(u)) + alpha * u -# -#expr = L(f(x,y)) -#print(expr) -# ... - -# ... -#from sympde import grad, dot -#from sympde import FunctionSpace -#from sympde import TestFunction -#from sympde import BilinearForm -# -#V = FunctionSpace('V', ldim=2) -#U = FunctionSpace('U', ldim=2) -# -#v = TestFunction(V, name='v') -#u = TestFunction(U, name='u') -# -#a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) -# -#dotexport(a, 'graph_laplace.png') -# ... - -# ... -#from sympde import dx -#from sympde import FunctionSpace -#from sympde import TestFunction -#from sympde import BilinearForm -#from sympde import Constant -# -#V = FunctionSpace('V', ldim=1) -#W = FunctionSpace('W', ldim=1) -# -#T = Constant('T', real=True, label='Tension applied to the string') -#rho = Constant('rho', real=True, label='mass density') -#dt = Constant('dt', real=True, label='time step') -# -## trial functions -#u = TestFunction(V, name='u') -#f = TestFunction(W, name='f') -# -## test functions -#v = TestFunction(V, name='v') -#w = TestFunction(W, name='w') -# -#mass = BilinearForm((v,u), v*u) -#adv = BilinearForm((v,u), dx(v)*u) -# -#expr = rho*mass(v,u) + dt*adv(v, f) + dt*adv(w,u) + mass(w,f) -#a = BilinearForm(((v,w), (u,f)), expr) -# -#print(a) -##dotexport(a, 'graph_wave.png') -# ... - -# ... -#from sympde import FunctionSpace -#from sympde import TestFunction -#from sympde import LinearForm -#from sympy import cos -# -#V = FunctionSpace('V', ldim=2) -# -#v = TestFunction(V, name='v') -# -#x,y = V.coordinates -# -#b = LinearForm(v, cos(x-y)*v) -# ... - -# ... -#from sympde import grad, div -#from sympde import FunctionSpace -#from sympde import Field -#from sympde import FunctionForm -#from sympy import cos, pi -# -#V = FunctionSpace('V', ldim=1) -#F = Field('F', space=V) -# -#x = V.coordinates -# -#b = FunctionForm(div(grad(F-cos(2*pi*x)))) -# ... - -# ... -#from sympde import grad, dot -#from sympde import FunctionSpace -#from sympde import TestFunction -#from sympde import BilinearForm -#from sympde import evaluate -# -#V = FunctionSpace('V', ldim=2) -#U = FunctionSpace('U', ldim=2) -# -#v = TestFunction(V, name='v') -#u = TestFunction(U, name='u') -# -#a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) -#print(evaluate(a)) -# ... - -# ... -#from sympde import grad, dot -#from sympde import FunctionSpace -#from sympde import TestFunction -#from sympde import BilinearForm -#from sympde import atomize -# -#V = FunctionSpace('V', ldim=2) -#U = FunctionSpace('U', ldim=2) -# -#v = TestFunction(V, name='v') -#u = TestFunction(U, name='u') -# -#a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) -#print(atomize(a.expr)) -# ... - -# ... -#from sympde import grad, div -#from sympde import Unknown -#from sympde.printing import latex -# -#u = Unknown('u', ldim=2) -# -#print(latex(- div(grad(u)) + u)) -# ... - -# ... -from sympde import grad, dot -from sympde import FunctionSpace -from sympde import TestFunction -from sympde import BilinearForm -from sympde import atomize -from sympde.printing import latex - -V = FunctionSpace('V', ldim=2) -U = FunctionSpace('U', ldim=2) - -v = TestFunction(V, name='v') -u = TestFunction(U, name='u') - -a = BilinearForm((v,u), dot(grad(v), grad(u)) + v*u) -print(latex(a)) -# ... diff --git a/notebooks/Analytical_Mapping.ipynb b/notebooks/Analytical_Mapping.ipynb deleted file mode 100644 index 59719637..00000000 --- a/notebooks/Analytical_Mapping.ipynb +++ /dev/null @@ -1,291 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analytical mapping" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [], - "source": [ - "from sympy.core.containers import Tuple\n", - "from sympy import Matrix\n", - "from sympy.tensor import IndexedBase\n", - "from sympy import symbols, simplify, Symbol\n", - "from sympy import expand\n", - "from sympy import cos, sin, sqrt, pi\n", - "from sympy import lambdify\n", - "\n", - "from numpy import linspace, meshgrid\n", - "from matplotlib import pyplot as plt\n", - "\n", - "from sympde.topology import Mapping, DetJacobian\n", - "from sympde.topology import Domain\n", - "\n", - "from sympde.core import Constant\n", - "from sympde.calculus import grad, dot, inner, cross, rot, curl, div\n", - "from sympde.calculus import laplace, hessian, bracket, convect\n", - "from sympde.topology import (dx, dy, dz)\n", - "from sympde.topology import (dx1, dx2, dx3)\n", - "from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace\n", - "from sympde.topology import ScalarTestFunction\n", - "from sympde.topology import VectorTestFunction\n", - "from sympde.topology import LogicalExpr\n", - "from sympde.topology import SymbolicExpr\n", - "from sympde.topology import element_of\n", - "from sympde.topology import IdentityMapping\n", - "from sympde.topology import PolarMapping\n", - "from sympde.topology import TargetMapping\n", - "from sympde.topology import CzarnyMapping\n", - "from sympde.topology import CollelaMapping\n", - "from sympde.topology import TorusMapping\n", - "from sympde.topology import TwistedTargetMapping" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Collela mapping" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [], - "source": [ - "DIM = 2\n", - "M = CollelaMapping('M', DIM)" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": {}, - "outputs": [], - "source": [ - "x1, x2 = symbols('x1, x2')\n", - "\n", - "constants = ['eps', 'k1', 'k2']\n", - "eps, k1, k2 = [Constant(i) for i in constants]" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "metadata": {}, - "outputs": [], - "source": [ - "x = LogicalExpr(M, M[0])\n", - "y = LogicalExpr(M, M[1])" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "metadata": {}, - "outputs": [], - "source": [ - "fx = lambdify((x1,x2,eps,k1,k2), x, 'numpy')\n", - "fy = lambdify((x1,x2,eps,k1,k2), y, 'numpy')" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": {}, - "outputs": [], - "source": [ - "eps = 0.1 ; k1 = 1. ; k2 = 1." - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [], - "source": [ - "T1 = linspace(0., 1., 50)\n", - "T2 = linspace(0., 1., 50)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQ0AAAD4CAYAAAD2OrMWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOy9d3hVVdP+PwcIKKAJRYr0oiBNiooovXepCgKCChYEbCjdAiooIAiCigoiTSDU0Iv0QEhCJ5BACKRQQkggpJOc/fvj4/zW3iegj8r7vs+XK3Nd54Kds88ua83cc8+sWWu5LMuSHMmRHMmR/1Ry/V8/QI7kSI78vyU5oJEjOZIjf0tyQCNHciRH/pbkgEaO5EiO/C3JAY0cyZEc+VuS5//6Af6JFC1a1Cpfvvz/9WPkSI7csxIcHBxnWdZDt/vu/0nQKF++vAQFBf1fP0aO5Mg9Ky6X68KdvssJT3IkR3Lkb0kOaORIjuTI35Ic0MiRHMmRvyU5oJEjOZIjf0tyQCNHciRH/pbcFdBwuVxzXS5XrMvlOnGH710ul2uGy+U663K5jrlcrrq27/q7XK4zf3z6343nyZEcyZH/OblbTOMXEWn7J9+3E5FH/vi8JiLfiYi4XK7CIvKxiNQXkadE5GOXy1XoLj1TjuRIjvwPyF0BDcuydotI/J+c8pyI/GohB0TEx+VylRSRNiKy1bKseMuyEkRkq/w5+PxjSUgQycq68/H16yKZmeb4xo0/P05MdB7fvCly65Y5TkoSycgwx8nJIunp5jglRSQtzRynpYmkpprj9HR+o3LrFvdQycriGVTcbt5BxbJ4R7v81XF8/J8fX7v2947j4v7e+Z73+7vPn5DAe6tcv/7nxzdu0G4qiYlOnbh509nHSUnOPvbs09RUZ59mZDj7MDMze5/duGGOLevP+/Cvjt1uZxtaVvY2vhvyv1XcVUpEomzH0X/87U5/zyYul+s1gaVI2bJl/6ObPvaYSKVK/P/IEZFq1UTy5uX46FGRqlVF8uXj+PhxkcqVRe6/n+MTJ0QqVBApUIDjkBCRMmVEHniA49OnRUqWFPH25jgsTKRoUZHChTk+c0akUCH+JiJy7hzXKl6c4/PnuXfJkhxHRorkzi1S6o+3j4lBgfVVL19GIbUQNjYWpdb3u3aNz6OPcnz9usilS7SBCOdeuCBSowbHKSkiZ8+K1KrFcXo671inDseZmbRRvXocu90iwcEiTz5p2vfgQZGnnjLHgYHO7/+T4yeeEHG5OD50SKRmTREvL46PHeP97H1QsiTtqm1csKBpw4gIDKViRY6jojDK6tW5x6VLtGPNmiJ58ohcuUK716hBv1+9Sj9Vq0Y/X7vGPapU4Z4JCSKhoSKPPCJSpAjXPnXKHCcm8ox6flISelS9OtdLTkbPHn+c+6Wm8o516/LOaWm0+ZNPiuTKBegcOcKxywVg6bEI+nH4MG14uz6yLJGgIGebh4fzzP9KLMu6Kx8RKS8iJ+7w3ToRaWg73i4iT4jIcBEZa/v7OBEZ/lf3qlevnvWfSIcO5v+dOllWZqY5bt/estxuc9y2rfO4TRvncatWzuOWLS0rK4v/u92W1aJF9mP7/Vq1sqyMDOdxWprz/snJ5rhjR8u6ccMcd+1qWXFx5rhXL8u6eNEcv/yyZYWHm+OhQy3r2DFzPHasZe3ZY46nTrWsdevM8S+/WNbChebYz8+ypk83x4GBXEMlOtqyBg40x5mZtLFd7O2v72SXN96wrPPnzfGMGZa1dq053rXLssaNM8eXL3NN7Yf0dNr50iWO3W7LGjTIspYv5/8pKbxnjx6WdfiwZQUEWNa0aZZVqxb3WrDAsiZMsKwqVSyrTx/L+vxzy3r/fct67DHLevppyxo2zLJee82yqle3rKpVLat/fz41alhW5cqW1a+fZb36qmXVrMlv3nyTdq9Z07Keecayxo+3rE8+4fwBAyxryRLL+uEHy3r8ccuaO9eyjh61rDVrLKtpU8uKjeUd1q61rMGDzTtPmULfqLz5Ju+i0rWrZV2/bo7btv3zPvA8vpOISJB1B/v73xo9iRGRMrbj0n/87U5/v+viduPJ7aIeLjOT7/T4xg2RBx80xzExIg8/bI7PnMED5vqj9UJC8Oh6fPw43kvvd/Qo39s9aJUqhuWcOiVSrpxI/vwch4fDUB580Nz/vvvwZiJ4wIwM42GTk/Ga6mEzM7lmzZocW5aIv7/IM8+Yd9+2TaRFC3O8aZNImzbmeMcOkebNzXFAgJNVhITgkVWuXDEsyrN97cd2+l+pEp5dpUkTkd27+f+tW7CmLVtE9u0T2bhRZPt23vuVV0Q+/FBkyBDauE4dkU6dRDp3pq3eekukUSORl16iLxITRfr0Edmwgfu/8ILI99/DGmrWFJk6Ff0ICBB57jmRJUs4JyBApG1bkXXrRL78kn6vVUtk1Sp+c+4cfbBokcjHH8OUSpUS+fVXka5dRVavFilRQuSLL+ij77/nvV54QWTSJJGJE0W2bqXfa9YUaddO5IcfRDZv5p06dqTfRo8Weecdka++4vrvvSeyZw993LAh76VSogRs6n9S/rfCk7UiMsTlcv0mJD1vWJZ1yeVybRaRL2zJz9YiMupu3PDmTWe8apfUVIxQJTSUUEVl/36ngW3dKtKqlTn280NBVXx9RXr0MMeLF4v07m2OFywQ6dfPHM+fLzJggDn+5RcM4U7H8+eL9LeNKy1eLPLii+Z45UqRbt3M8bZtIi1bmuMjR6DECmpXroj4+Jg2yMwknNFQSkTk5ElotcrBgyI9e5pjT9CIiREpXVqySVYW1752jZBo5Ur+vXYNo1y3DmNKTgbcAgMxhjx5CPVy5RKZOxcK7+Mj8uqrItOmiQwfTgjg7c1xuXKmja9fx2i//pqQUkTkt99EFi4UGTsWEClZUuTbb2mbSpUA8AsX+F2NGoQ9Dz4IMBUsSAji4yPy888ARt26OJKNG0V++on2LVaMZ/3mG65RuLDIJ5/wb4UKhICffSbSvj36sW4dQDtuHOHtqlUiy5YBrp07i0yZwnv5+XFut26028qVAEt6OuHVvn0AlwghWs+egFCxYoTBy5cDJsWKOXMy/1TuCmi4XK4lItJURIq6XK5oYUTES0TEsqzvRWSDiLQXkbMikiIiL//xXbzL5ZogIoF/XGq8ZVl/llD9j2XRIpC/Y0eOAwNB+GLFOE5MFFmxguP9+8lnZGXhufbuFenSxVxr2zYUReX330UGDzbHe/eijLwT95o4keOsLBRz8mSOb92CeUyZYo4PHcLz6Pn+/iLjx5vrbd8uMmKEuZ8qkcry5RiEyuLFIp9/bo6XLuXdVdaswaOqeIJkfDzGmMvGQ69cIR8UEcH3W7bAnGbP5jgggMRncLAB68BAjNDHB5aUkIB3rlABIytdWmTXLjxo/vwYS/fugGTBglwjPJy2fOst8ywhIeQrqlen/Xr14pOUBCBdvEgepE4d4vncuQGFrCyRgQP5FCtGGy1eDHv58kue89o1APvll2mj69dF5s3DoIcNA0hCQwGKRo0A56tXYSc1aoi8/z65k2XLePcPPwRYQkL4TXKyyNtvi9Svj858/TVtWqoUz12xImwmVy6R1q1F3n0Xlhofz/M1bkx+ZO9eAEgENrR6NUC7axdsrX9/8l67dtF3585xHBkp/1ruCmhYltX7L763ROStO3w3V0Tm3o3nsMsbb2BY69ahLF274gViYwGLzEzCkLNnMbrSpaF5bjde9fBhOsHHhw6aM4f/582LIgUGokBxcXgzBZz9+0WeftpQ8+3bCQP0eNMmaOidjpXV6PHu3SLPPmtCnSNHYEWa0I2KwsA1lElKQsHUw1oWBj1ihEh0NN8vXgzFXbUK8Fy4END84APeLSSEtunY0STgjh/H6xYujIePiMCwixbF62ZkYMQ9evCs6emEBL6+pk+GDcMLahh18yZ9oYlOEcBr/37D7IoXx0h9faHdFy7QZ7NnY3heXnj8Z58FbL74gud++GGRAwd417lzTXv+9hs6MWoURtq8Oddu0gTjzMjg3PffFxkzhnv4+JAQHjeOa9eqxe+XL+dar7wC6KxYwf0GDqQt580jEdmgAaDZsiXszNtb5KOP0Ll69WhbHx9Cky1bSIgOH06Ys3497Vm0KOFjnToAoIZCtWsDjPv28Q6PPw5zK1uWT926tGWVKrx/aOi/syuR/0enxv9duX6dTilQAC/n5QWT0Bh+714UJ08elKZ7d7x5Ziaxo5cXqJ+QQCdWrAgbuHED1vHgg9DN9HSy5eXLE2NbljHyffu4TnAwuYFXXuF+v/9OZ7/9Nt5l40aO33uPZ9u0CaV46y2eZ98+3qF3b4z55EmUsFMnzo+J4Tw1+OvXMbZhwzByLy+Ow8N57gcfBGT69QMMfHxEJkwAIDT82LYNdvT++xwrm3rpJdPGa9ZgdApuKSlmJEolf37+rvLAA4BWRASe8Nw5DGjuXN5RhD7Ln5926NYNIy9bFiNt0sQZho0ahSd/9FEAwcuLPmrdGrBLSuK82Fg8cd++GO7YsQDV4cMYur7DtGn057BhtGPz5rCimBiMs1o1+nfIEIAhb1768L33AL/KlXmnRYtgQjVqwEj69yeEGT+ec/r0gfWMHs37BgWhf23a0McFC/JcI0fyvo0awTKOH8cRBARwjzp1eKbTpwl3KleGUcXGGtC4G3LPgoZ9/Dw+3iQRRTCYDh34v2XBEvL80RKHDoHOIvwtKAhqX78+f1uwAEqpSb/WrWEoefJgrG3bYmQiKGmvXngjy4ImvvaayI8/ogyXLtHpY8fCcOLiAAE1zuRkFPnjj1HkrCxyIb/8goJ6efEeW7YYRe/WjbhbhyU/+ACA0XdaupR4d9AgjmNiOLaHJ+HhZqhWBKVs3Ngcx8ZmT3rGxJjhYhHAQRO7yckYT2QkjC0zk/d2u2nvqVMB4ooVMdAxY5zhV1wc4WD79uZvb78NaBUrhpGcOgUDmTMHUC5VijxEnz4i333H+fZ3/Ogj+qx9e56tYkWAsEYNDExj/7g4+rRXL+41dCgMLSoKIH/9dfIG48Zxn/LlaYtBgwCTRx8lRJg1i2cYMkRkxgyRnTu5/6xZMKSGDQHmJ57gHfr2hbmVKsWzLl5MDsrXlzDn7bcBnw0b0K02bWCMISH8bcYMnisyEsfUrRusxJ6I/qdyz4LGnDmEGV264D3T0syox4ULJJhEsifw9u2jA1X27qWjRVCk+HhjMOfO4fUUcHbuFGnWzPx29WrCIhG8vq+v8egieIfXXzdedf16kTffNLUWP/0EI1E6v2oVLEgBMCgIequAcfUq/9frWxag89VX5pnWrgX0VDZtwihUrl3DK9tHPoKDyd6rnDrlBBXLAgDDwmiT8HA88KFDgFr+/LT7rVu0e48etHnu3BjjF1+Y8EqEv9+6ZUabNNcwbx6sJCQEUAoLIzfUvDnv8M479MHhwyQgVRo1wmjGjTO/j4jg+ZYtI5ysXJkk64EDsArNQYkAtOvXA1yxsbTvnDkmN5GYSPjQtCkAXKAABv7iiwBX0aK8w/vv038vvYQudO6McX/yCQyhQwfY0t69tP977wEYM2bQT9OnkyP5/nv0OSSEZ+rXj/aMjUUf2rdH7+vVg7EcO4bObtjgHK36p3LPgsbQoWSYly4lVgwMJFt+9ixgMmQIHZyURMeq7N8PGxChYyzL0Oy9e52AsmKFc9Tkt9/odBVfX1iBip8fNF6E627Y4Bwu0xyM/forVpjjRYvwZiq//moYgwgx9vPPm+ODB01hkAjsKyHByRK2bHFec9cuaL+KZcEUcuUCLCIi8IwaxqWmcv1Tp8jHVKoE+2rcmPbXhLAIyl6mjAFsEQAzIgK6L4Jn9/Y2+ZXYWEDEywtAf/11DKdgQcB/1CjnSFSHDlD/GTMIUU6dAoDy5YPSf/ghFL9CBfq3c2fA5uGHYT4VK3JOz560U2Qk3vniRX733HOMvPTpQ1+53Zzv7c3zDhgA2JcoQWjUowfhXoUKgPzYsbCCIUMIsQIDeb4NG9DHAQPQo2XLCD8mT0Y/t22j7159laT5tm3GIWzaBEh3704ur3RpgKJePdiR2w2IdOmCA/i3cs+Chkq+fHjOjh0JM9xu4v8xY+iU6dNR+h07MIzjxwlBqlZFYZ991lzLz8+poL//jrcRwYiio02F5qVLgI2PD8chIXynw5yHDpFQU296+DDUWBOcp0/DYpTiX7nCcz70kLnf6dOmFkMEJbaDzLJl0FwVz9oLLU3XaseoKLx53bokTi9cgL2EhXGd8uVR/pQUlL5xYwOoHTviFVUCAsyzq9hzGm43jCQ+HqPKzOSdihThmjqioQCXkECC0V7dWLo0hjl1qkmQ5soFMPn64iTsSeP+/THmypVhLocP865PPklf5M4NoDVpgrPp1w+vrUxy1CgM+OWXed6nnoIZzp7N3xMSCG2eeMIks318+H+LFjCOcuXITbzzDu/95ZfkcMqXB0yKFIH5PP004VT+/IQpU6fyLIGB6GXz5uhwQgK5kHff5bkeeADQOXwYVlG3LuffTblnQcM+ZyA+3tDpS5fwKppd/vVXPMMDD5BZnjCBvx8+zHcPPMAIxn334SnKl8cz3ncflFqNfssWZ3HUb785azU8ay3mzcMrqMydaxiOCAzl5ZfN8eLFTgDQUReV8+cxMDVit9vkQ86eBXS+/hplHD0azxkWhmfv2BHlLlOGc197jfcsVw6PFhfnfLbNm/G6GhbdvGmGSFXsOY30dHI1+/cTIir7qlSJ3xUsSCJQAfXaNZiinRFpWfbChSQnT5yABXl7w46mTnUW3PXrB1jYR7tKlYKJ1KuHcdauTVhTtCjPYB/W7dULz128OM4gLAzdmTePvipcGMZRvz7gPGwY4NO6NY5Gh+lz54btTJhA4jM1Fb3atYvza9cGAOrWJaz57DNYUrVqAHadOoQg69YZ1hAcTPsfOsSzde0K+0hLg9l0787f2rfHiSxfTh907pyT0/hTmTEDej5pEhRTk2ARESZHIILC63ySgAAaumNHPlu3Qhtz5YLuTZxIviEyks64dcuMWhw5AlM4cQI2sHIl6L9sGQq5fTuKGBqKBzpxAvDSiW+nTqH0yclcd/9+YtqYGJRh+XKMfudOzvnySxRj8mSM4vffMTqtS0lIMInX4sWN8j/zDPd9+GGu16WLqfS8dg2Pre8kAlDaQzARM7ysokAsguc/ehTQPHoU48mXD2/p40N+Ydw4Y9yhoYQt9mK7IkUAqv37yTEEBHDd5GRGswYP5np58gAcrVoBcLlyYVQhIfRT+/Z4fm9vDLR9e65dpIiTMTZrxjUKFeJdjhzh/pmZMIm33iIsffVVdEBzEuoweveGOaxZAyj4+OBEZs+mvTMzYWiffQaYde9OHqNKFRhbw4a0+3vvoa/ffQfY7d8PO54yBZDRfMiBAwBW9eq0R58+OL7QUMKfMWNohwYNcBKnT8Mc166F3f1buWdB4733UNgnn2SY69gxaGO+fIbSJyc7KbS/P9RRxBTTqHJv346n16Shnx+JTp141KMHx9euAVYhIRjSjRt0eKFCAE1qKiFQWhqKlpkJS0hNRZFdLoZEExN5lrx5uUZ6OuyiQAGeKS3NVCn6+HCPFSu4j8vFOH+fPmYCWmAgntqe9AwOxgOq7N2LUdvl+HGRTz81xwqylkU4c/QoCdqgIJiPtzfe86GHAEl7AnXHDryjvWisbFlA+OpV2n/fPgA1JATgbdkSxuXjA4COHm3yHyKEMTVqYExpabRTtWoYYp06GJwmmkUAyFatcBxHj9JXcXH049Sp5Aj69zfVsf37wwK0HRMSYBfPP4/RXrhAn0dG8t41agBKZcsS5ubPT5/Vrg2IlCsH2D3yCEluve6hQxh969YAwTff0I99+6KnGzbQ7p99hn7kzQuIvf024DV+PKD4yy/kY8LDnRMKK1XCiW3fLv9a7lnQEEE5W7QAJGbOROneeYdOWbuWjrNPmD1/3iTpPEdCduwgCSeCkhUoYEKBjRvpMC8vYuagIJJjmjTdvh1PoNfu3h0g01GQbt34XmfI9u7N9+q933uP66mC/fQTf9OqzpMnUUr9vY6a2EcA1qxxlr7HxmIYdsawaxeKqGJZgJpWsR47Bvs6fBiaX6YMBly2LB514EDz24ULTS5ARQHWsgiD9u7ls3s3Cv3MMwBdjRqGottDvlKl6MNt2/hdUBB9XLMm4dbmzc7akDJlyFl99hlee88enj0piXBo2DCATfNEAwfSJ0WLwqZCQwllunblHm43oPzYY4DE0KG0e6FCnN+mDX2jodrTTwMGH3zA8TPPAGLz53NcsSL36tcPIx8yBKAoWxbdadUKhtiyJf3fvz9gevgwOnfsGDoSE8N76KjKxo0wpAkT6IPYWNrccy7QP5V7FjTssduNG3jAQoVQpC+/pDFHjKCzWrfGGyUlQfULFUIxtcDq5k2MS1nJ2rVOCr9ihSkztyy8pQ75JSXhiRQwrlzh3goYly6ZZK0Iniw11QBGZibKUbu2ud/q1STqVDzzJ8HBzinnIngdLU0Xwfhbt3a22cmT/Lt8Od5eGVPfvhhyrVp43Q4dnPkVrbOwS2qqKdnXKd0rVhCb790LYDdsCIu5csVZBi+Cse7dS7x/8CDh14EDGOvKlRja6NEmydmzJ219//145n37+M3ixYSkTZrQZx99RLu0aoWRK7Bdvkyb9exJaONymaRmu3YAu33+UcOGDMM2b06fJybiOAYOZOg1Lg725OsLuGmdzbFjPEvp0jieTZtgtVWqoBPlygEqr7wCezpxAnBq3Rq29dlnsNw33kCnAwJ4z+7dOS8khPs2bQqAtG/Ps7ZsCbDk5DT+RKZOBZEPHqRTlRLHxuJZXC4UbM4cqJuWmL/5JsChMwhz58Zb2BVm/XoKqERQ0MREGIaIGebU+61aZWo1RLJPNlu0yGmAS5fSuSqaYFUAiIwEYLT02rLwovYQwnMCXUSEiflFAMHFi1GoceOIeW/cQEHnzgUgOnSgXbKynAnZjz5yMjARgM9eeJWURNvfvEkhmwgs6bHHaK/Zs52/z5uXsCJfPrz5iRMY/axZ/PvUUxjniBEc799PvK6SmQnj0TyFlxd998ILjJ643c4JgJZFGDZ4sCmyK16c39SsCQux16G0aMHQdsuWhCPHjvFZtIj39PIyk9KOHSN0qV0bFvHssyRRR482w9ZTp/LR+o6LF40+vvACv334Yfp0/XqzBsiBAwDY+PE4MK1RyZePNly6lPfs1In3c7lgJ7Vq0Q+rV8Pw/q3cs6Dx4Yeg+JIlGPLy5c5CKxFTCagLtAwfTifHxIDat24R4/r5oUTR0XiE69eN0W7YYKpLRczcAxVfX7LlKhs3mloMy+IZ7XH/mjV4UpVFi5xhxpIlUHiV4GC8vwKCZfG+b7+NkkVEcI30dPOcDzyA8r74IhS6ShWMMSSEMEFlxQrnvUQwAC0+U4mI4J4//AAAFSgA0+jYkbZQNhAdzXme8uCDhBHHjsHKatbEQKtXx2js0qABCdzz5wHUbdsApzp1AL4dO0yCUoRnff55cjm//84nOtqMkPn5GVYnQlv+8APPExNDGx44AFNq3Jhnq1ULYy1Xjntq8Z8IzuPWLdpVBCBp1QrQEEGPdOp6mTLoab9+sF8RHMaUKbRD//7obP78hLi7d2P0168TOq1ZQ6K7WDH0aNQoQOfSJdp81CjAo3BhwHrAAOdcoH8q9yxoiNDY06ZhDBcv0nlXrkDfNG5VYwsONuXbO3cyqvDSS3zCw1GukBDjOXv0MKtbdeiAkpUujYINH46RXruGAenqXrquhhpRcDBeRSlyaCjKrHH59et4bVXqrCwDUrt3w4y0dLl/f+6XmIhRjBmDwlaoQMizYAH/d7kwzvnznYCwZ49z5quIWSfELomJGOy+fSQur14lrGnbFspcpQr3+PRTGJe+q4jJady8SRtv3QrIJCRggNOmmZBGBBaYnEwbpqXxzhs30sbjx+N1v//ehHbdunF9XQVrzx5T+DRsGDmd8eNNBfBLL5mhecvifQ8cwGOHhNAX9etzXteu6IC9WK1ePa45ZAhAceECjGX8eH4fG0v7xMSQz9Dk6sWLsBoNWU+ehCFovch338F2xo3j3Oefh8k1a8ZvLAvjf+893rVUKQD+rbdwBg88wPGyZYD0zp3ojL3M/9/IPQsa9rU0vLzwvJ07m/kCefIAGLpmZFqaMdYdO0yh0okTeJd8+fBmSUkY4MMPo9A9ewIS58+j0AUKUBYdG0sHFixo8h+nTmG4ffvyTIGBGOWgQTxvUBChU5cuKLMuAajDqElJgN68eShn0aIAxdSpeC1dv6FVK5OE1SUA7DmHbduc4ZYIhmUvvdYkaFIScbNO6AoK4v2ffZb7FivG89krU7U9dRg1KwuAXL8edjBgADH34MGAzMKFgIsdMER4pwkTqO1IT8fTv/oqRtG+vfHmKvXqwZQSEjDiRo0A08aNMWj7BDvLIrcwdCjPeeMGiddmzfhbrVqm3fX8ceN4l4gI2uLIEZ6tSRPyDeXLUzj24IMwkYoV6U+tTdG81/XrtNfy5Vx3xQquVbo07f3LL7RzyZK0W79+jKRdvQqT0ZqZfPkIJ+vX53nvuw/AefppnFuePABYZibs7MABZ/3SP5V7FjS++AIvdu2aUd6YGBRp1CgUf/58jKdePZOTEGEoUUdV7HMzbt0CDNTzb9qEYj3yCJ9ly8ieq4G2aUMo4uVlsutr1nCd5GSo6DffGLbTsyehSf78dHjHjiQ5NRs/ahRsQI3lwAE8iD1Jun+/szLzdgnP3budhWXp6bADyyJ/o8m1kycx7Pr1MdIBA2hXe7h0J4mNxTN//jkGWa8euYHgYGfVqgjteewYbXTwIG0WGIiCP/YYIGmfmxITw3s++SRt4OfHdXXNDl9fU3sjgiH36sXz//47oyzh4eRsoqKg/jpfR4Sczuef0/7x8TAqf3+Ap0kTQpjatUk+PvEEzG7oUPP7XLkABl2eoEYNhq5VfHxMPY6XF3qxeDFJzk6d6INvv6VA7vnnefaCBXEiBw4ANt7evMOqVXyvBXSJiej45cs4Ka3/qV8fnVq27K/77li5+LIAACAASURBVK/kngWNsWPNMON992EQkZEGDOLjYQgtW2KMoaF0WMOGZghOBANThfCczLZypVlMJyMDBVTAOH2a/2t8rSXcOgKzezeMQgFo926+V+OIikKRFTA0V/HFF+b+y5Y5q0zDw2Ey9mHU9eudDCI9HWPMmxdFPnQIIz19GnpfqxaJx3btaBsdZhZhSNY+T0fEKH5iIjR4yxY8a2QkBjVrlnOGsX0xIxF+d+wYieVNm1Du556DYRw/Tg7HDhjJyQDSN99w/tNPEyp+8QXG2ratEzBCQwGVgwfx2K1bE4ZWrsz39rk6Ilw7IMAsf1i4MKFFjx4wlhMn0BuVSpXI26iOuN0wlhkzCJViY2GHERG0b548tJmO2lWsCIicOAHDqFGDvM2OHdzz5Zd5hmefpT+aNwdI8+XDQX30Ed+XKkVfvfQS7d62LWCmxWS5c3Ot77+Xfy13BTRcLldbEflGRHKLyE+WZU3y+H6aiGjOPb+IFLMsy+eP77JERHE40rKsznKXpHhx0HvwYMCjUiUzqhASYjoxKwul1cTUmTN4mWefhWbrWp5r1pgsfFoaXk3X6fSk/EuWZB8l+fhj5/d2A1q40Izn3+73Bw5gUJrEdbsxNl1NXCT7SI3bbcDH35/zN27k/bp0Qfnq1aNdXn3VWfj1ySfOMnURfqfGdusWhrhqFV7+lVeg9sOGmcKlHj2cgCHC81+4gCFv3YoyP/ssCUt7AliE65w5Ay338wMAMzMx5goVYAyeUrQo19m3j/d99FGcwdtvw0zs62+I4ASmTKE/T5zg9y1a0JcjRzrXoUhKMjktyyKRfugQ79+9O9dwuQgzTp3iWatWhZ3kywcgtG0LyK5fT9/07AkTu3QJgFm7ltDkxAmAq1o1QKxHD3JQTz4JCxs5EnZStKhZjezHH2E4QUHk2Fq3RmcWLsT52Ktg/438a9BwuVy5RWSWiLQStiAIdLlcay3LCtFzLMt613b+UBGpY7tEqmVZNoJ9d0RzFenpdNSAASiMLvMfFWUSYqGh/C13bjp62TIAZ+JE8/uSJems11/HGD1p/7JlprrSsqgxUJBISUEhypfnWEuiFXDS0vDMdi9urxMRAUTseYOAACeIiGBEDRoQdoWEcE5UFICgWX+dMGUfsly50jk7VwQvbwcxywK4ihQBANPSYCQ1amAE9gShvpOGhTpfYu1ak8Ts3BmlL1CAa+/Y4fz9hQsA0p49AFGnTgC7TgDcudNUp6am0h+rVpFrsCzAv1Yt0z7e3mbOzLlzGO327Wa/mlmzeBc9/777aD8FjWvX6FNdQlJnxNarR65LpxiodOiAkev1YmMBAmWa1avzziVK8GnRgnfr3h0n9txz5FC2bSP53aMHIVFAACx6+3YStsePA7o1avAOiYmM1r30EtepU4cRwDFjcEL/LWuEPiUiZy3LOici8sfiwc+JSMgdzu8trCH6Pyrjx5t9L7y9CUuqVcPo+/eHHiYlmU5USh8ZabLaCQkMvz32GEp66RKJprAwFKBdOxJRlSs71+UICoIiaq5i7VpnNabnlPr1651JtxMnUFYdVcnMNPMpwsOhnRMnorQvvUQhUXo6w3FbtvCeffrg3Vq2dC6gM2eOc6aoZZk2souucP777yh3XBzGNnEiSqshwJYtzg2AVFJSUOwNG0gSP/kkhn/4sKlxUVHDCgujbXbuJGzr1o38weLF2asZH3mE5N7p0xh+q1awoytXuKe91Dwri+dZsADGVaECOZqFC+n/Tp2cs4VFaNtx42AsERF49IYNue7s2c5h2vh4dM0OGlq9Wro0AKNr0bZogeGmphpG4eODzu3fb0IJt5u/vfoqbTJ7NrmdqVNxaEWKMEybkoIeli9PHqZpU96xRAlA5uef0a1q1dA5ezj7T+VugMbtNjyqf7sTXS5XORGpICK/2/58n8vlChKRTBGZZFnW6jv89m9tljR2LB7xq69M3JqZScfPn894dteuKIFSbh2KVTl92qxSHhSE52/Thuu0a0d9xcmTAElCgjF8nbI+fDidu2wZLGHZMjzYDz9QqKTrMUydalaYSkoiDCpRgmdMTsZgExLwFKVK8YmKgsnoRj1z52IA9srQkSNRfJWUFHIZ9vJuTfpaFsaxaxde+8gR2q5FC6juQw9haJ6T165eNTmgy5d5p02b8IjNmvEM9pEbu/FbFu3n68v506cDFMOHm1zQqlUAQYkSgNPatRQpRUdjpDNmOHNQDz2EMaWlAVqrV+MIGjSA2W3enB2AdM2QffsAwWPHuN/Vq4Bs+fLmN9ev00520Hj0UUK13LkBvrAwDLdHD/TJ5aKPgoJIbHt58bl2DR3VyYWBgTAxHx+eeeNG2l9HlUaMAFA1Yf3ddwBevXqAw88/o5e//44DWboUXRo+nHZ59lnnqvv/VP63E6G9RMTXsix7MWs5y7JiXC5XRRH53eVyHbcsK9tcPMuy5ojIHBGRJ554wvqrG+XOTWc+8giZ6KZNzXdhYSZmHTqUJOQnn6AcOmErOtq518muXaaIZ+9e4tRq1fisW4dyqldp2RJg0NW3/fxQnvR0vK7bjYHpxLO0NDM9u0ABsuOTJ9PRBQqQk3n3XePJgoNROHuIsWkTCq6SkMBv7YVO+/aZ9UHcbsBN18Fs2xYP3KQJYFWtmllh/U6ic1yuXQOIixYFOH/6iQScvWjN/psjRwxQqAcMDIReexp0yZJ42ZAQGEOnTrznpUskDu2AkZICy9i/H/DRJLeCVng4z6qOQXMrp04RDrRtC3OrWZPn6NDBOdlNBAcTEEC4ERwMwCQkACaqc40aYZze3s5tHzp2dCayDxwwYV1mppn0mJCAk9m+nTY5dw5wHDMGnRk0yCxEfPgwbTBrFrpcvTpsYv9+kp5FivD3/v2dW0D+G7kboBEj//mGR73EY1Vyy7Ji/vj3nMvl2inkO/71BF7NaWgMP3So2dcyNBT6nysXnnfZMjzum2/CPGrXRkk1sXnjBlRfY3R7QjQjAwXS0GT/ftiMTkfX5QKV7UybRsZbazfmzQMQdIuBwEA8tCprVhZew059Pfc50X1g7cOG27c7k37JyRhZ4cIwrLQ0U504aZJzta45c8z2jSoJCVw/NZVwZd06kpSJiShx//5OgLLvmWpZGJivL4aycCEGMn68CeG+/ZZnLFiQf/38oOXnzhHazJljirhEYFXh4QYoVqwgTGnfnv5budI53V4EQ16xgr4+eJDEd6dOPH+DBtnL4/PmpZ0iInAsu3dzz1u3qJXo2hUmFx9Pn374ofntmTOwh78SnUimCXkR2rlaNZLVdesCGGFhHEdFwTKqVCGn1aIFutOvH32WmEhCtF07mE1kJLm3SpWcAPZv5G6ARqCIPOJyuSoIYNFLRF70PMnlclUVkUIist/2t0IikmJZVrrL5SoqIs+KyFd34Zlk/Hjo5c2bDMvNmkXjDhiAB9Ck4pkzGORjj9ERX3wBzVu4kHMuXMCQFUAsy+ygJgIVtK+GpaGIytq1xOQqmzc790xZvZpYW2XpUueoyZ49zpyECJ7OPqXd8xlu3eKeTz2FckdGwjqOH4fSNmhgcjkdOjiHkUXMCtwqFy7g1YKDAb/mzWERjz5KjkhHBOyiWyf4+uIN69VDaU+cMMPUdvH2hqrv2kWfderEsx45wm/sgKEzOQ8cMNWS06aZWpuzZ3nmKlXMivIrVmD0Zcpg6HbAyshw7gcSHU0/nTyJwdWtC6hOn27yXPahaG/v7F7cxwcGo0Ouly+T4/j5Z/rn1i3uM3MmbMrHh2tocleXDxThvby9AdYBA0hQ68zeL77A0X30EecvWoRD8fIiH/LyywBooULojGd4+U/kX4OGZVmZLpdriIhsFoZc51qWddLlco0X9oNc+8epvUTktz/2QFF5TER+cLlcbmEH+0n2UZd/I7oA6+HDNGJcHEjdtCnHbdtC5XS7xvR0GrpqVWL5I0cYn//0U+Jc3aYvb15nVn7FCjPy4HY7dya7cgVj1VqLc+dgJDqEGxtrVgDT39s3VhIhVLEXDp0+bViSCF5uzhyeaeBAFDNPHgDixRfJlZQujaH17u3cilE9m+d2lWfPEkbNmUP7lS0LpR882AkmIrA3HVZ1u2FaGnqsWcMzfPWVaS97+HHrFozot98w7EKFyO/oqJIIIeKWLRi/nnv5MkChoaGnlC9Pu0VG8h46Oa1vX0YjPCtJixcnJ3T0KABVujS5qy5dACXdYFnbzBMgdPTru+9gsefO0S+xsfRXiRLcw+XiHTWnUbgwoYVu8HT5Mn2YlGTmveTNi/7ofJUqVXBKKSkUdW3YgA4tXw6bOHqUkDw6Gof1zDOEjteumUmD/1buSk7DsqwNwi5q9r995HH8yW1+5y8iNT3/fjfk/vtppOPH8cRlytB5jRrhOTZsoDFVQe1bF4SH40XbtkV5WrWCiq5fj9IWLw6Y1KsHU9FQQou/1DA8Z5v+9ptzBqvnKEpAgHOjpawsaGm5cnitc+fwchpvWxZKeOIEylanDkYWHs7Igv3agYHOvVhFnKuKh4djnNu3Q2sDAgCZL7/kfjNm3D6JlpoK1ff1xUAaNMC7nTnjjN9VLAuAWLIEcGrRgnzS8uWEIXbA0IK81asB0+bNSf7q0PXevRhYwYK01e7dtHFgIG02ebJJcovAPi5e5P/x8fTnunUYd3o6CUP7sGt0NJ7fLnny8G5TpsC8dE+dGzcAmxYt0IcjR9Axe23O9u3OsPLnn8mlKOvbts0seTBnDs+4fTv5qrQ0+lf3imnXjvBkwwaeJzWV9lu8mBBm8mTYUN269EOzZoTcd0Pu2YpQEbxx/footb8/Xtey6PiZM2nMX3+lgxITTWJx506TOD11CkVq2JBPYCAde/IkHaQ7kWmxT8OGUOXixbn2pEkoUP78dHD37gBBVhaG89FH/F1j0SpVKPFWShsXh4esUIGE3qVLZke03LlRhDlznEO2uqubXfbsca7KpTQ7LMxUJrZpgzGMGcPHLhobi0Dnd+yA9h48iLG++aZzb1fPUZIjR2ivAwcAp6FDnV5PDU8E8Fm0iD6rXx8g2bIle/+WLInh+/vTDk2aYPi6baQdMERgNnv30lb33w/wfvutWenMc9j1gQfoh02bCJuOHsXzx8ZijAMHmrqRjh2da6zYt2C4k/zZOW43etexI7mpNWt4jtWr0c02bej/b781+7I8/DAA/PTT6E3jxgBRVBQhzFtvZWeV/0TuWdAYP94kMBcuxEutXQtaqzdzuzG4kycxlm++QcF37TJxt33z56tXUZIHHwRgdIuCxx/nd82aEetfuYLiZ2VhJCkpeK0bNxgJyJ0bzxAfj1f39kZBdTr0ww8DOqNGkc3XmoPYWJTeXqXouW+JCAbtuWaFvz8hzIgRKL+3N885ZgxKqUZ+4MDtGUVEBIY/cSLP0awZsfXFi85hXbucOQMw7trFO/TuDUh9/HH2Vb0sCzCeNQua3acPbC5XLqcxigDkixbBEuLieCc7Q9B9S0VgFytW0I/FiqEPy5c7V/hKSzO7r+nkuk2b+F2+fDx3z55UF2dmEnLZc0i3EwUEyzJDqteu8Rya09B5L4ULo1cZGdl/r/9/6CHau1Il2rNNGxLGIvTr448z2hUeTiJ4xgyu2asXQFKkCDptX8bhn8o9CxpDh9JwXl7EfLVrY4ivvWZiWl0VqXFjFOTMGTrDXq+xc6dZAm/zZmOgloXxaRl3cDDXrVGDT1gYRt+9O99//jkZblW22bMxVv0+MJBr605ulpW9TFyXFbTLrl14eRW3G8rscmFUe/bwnIcP80y9emH4uXKhQPZ9ZkVMzkTEUHg/P67TtCmGoxOxbicxMRj/gQNQ5BdfBJjUw+XNixHkyYPSr16NEV+/Tkj4yy/O6fQqly4RemzahOH07UsIUqxYdoaQkcHzaiVv9+542Xz5DMuwy82bGFufPhi2zt0oU4aclH1+SlpadsDTCYhr1pDTCA1Ft5KSYGE+PuheQgKMSHMamZnonA7Znjhh+jchAWZYsybnKYDojvLNmsF23nkHh/Poo7zniBGw0i+/xNl17sxzbNxoSgT+rdyzoFGoEAZ37BgdcvUqcf6IEdDqQYMICby9UZQSJUDq48f5rlUrOsa+PP/GjWZ3stOnoddqcJ7zPjZuxMuq7N7t3PldFwhSWbXKGe+GhNDBdoPeuBE6qpKczPf58sGWDh4k1AkNBUiefRYv2bcviT5dL0QEcLGvaKZy8CBMasECs7r57Nlk7e0JWRGUOXduvP2KFYBLoUIkjZ96ylk3opI7N+C7ejV90qULQHHsGElUO2AoqAQG8uy9e3MPPefiRYxLhD709YVNFimCka1de3sAEgEk1qzB02v/eq7nceZMdoBITzfVpcHBALHbzbNcuQLo9+vHdXPlMiNhlgVD0n1yRLi/tmlKCsxDp8u/8w66OXq02SGte3faPE8e2EmNGujo8OGww4oVKfz75hveu2JF+qVbNxzImjV3Z53QexY0RMgjVK2KB3G78TBK8+zrJQYHk9QUATQ00z5lCorQqROe5+JFsxeHZ2n4wYNmGDQ+HkPW1b101EQVUKfr23dLDwzEi6usXu1cFCcjA5Dz8QEgjhwB/M6c4fmqVkVhdWVuO6WfN88wGJXz51Eqt9tMRz94ECP46ityLZqgc7uzK1tiIiHCoUMAVI8eMAx9px9+cJ6vm1Dt2sV9P/7YWThVoAAg4XZzzoIFtH3XrrDERYuyP0O+fPSDnx8G2qMHRpc/P2BnBwwdKg8NxSFUqED7Dh5MX3TqlH09j8xM7nnoEM+0b58ZFcmdm99WrkwI9PXXzr1hYmOdpexJSc7Zt55y5YrRLZcLRjNgACCwcCHPPXIkzsQ+JP/cc4S4U6YAwNWrEzqPHo2u674w9eoxZOzpJP6J3LOg8dlndJSPD2iuu2JFRhJuVKpEp2jcrIlPf39QXqs1v/uOPMi0aRh7mzYoir8/9D4rC69VubLpED8/J6DoHqwqa9c6AeHUKYze3qE7dwJUvr4ozK5dKGfXroQPtWtjaAsXmlXKRQBDz2HRgAAny7lxwwxHt2tH1r1jR/JAnTplny5+7RoKmJxsdnHLyIDJtG17e0YhQiJ38WIYUtWqeOCrV2lfTwONjYWB7NtHQnPsWFPJuWWLWSQpK4uczcKFjL4UKQJTsRe2qVgWlH/ZMlhMjRrcd/PmPzeec+dggrqQTcuWPNOrr9IHnuu8xsZmfx87CNzuODXVWXzmuam2vTxfFwqeMIFQ78ABWJfuVuftTd7io4/Q8WrVcHB795rNpOvUISmvRYT/Ru5Z0Hj5ZZD1yScx9BIlyHbHxfH/gwdR3gIFoHc62nD2rNlaMTAQY8uXDwWcNcuMoBw8iFKFh+PtS5bkOqVLE3u/9x4hSYECJuN95AidOn8+MfbixYROq1ZxXteuxMfp6Xh8X18AolkzDPDLL50AsWCBcwEeTbp5GlBEBH9fsgSjvP9+7vHBB3gn++89JTWV+xw8CCB17Eg7PPQQuRItQFLR2D4wkPZ98UXyIur1f/rJMLzr1zHoVat45ocfhj15MoqCBbne+vV41WbNMJLr12kjz/c9fdowiurVAUF7UtUTMJKTMcxhw8w6KG3bkl/o1MlZ12E3ZhUFDcuin8LCyKmImNXWLl6EpSgDTElBd/Q4NpZ+8fYm7E1MNG1mv2daGvkxEYBs5kx0pkgRdG7yZPT9hRfMHJ3mzQHeUqVMDdG/kXsWNEqVovNDQujMhx9G2caN4zgsjLi7aVPi/e+/xzjy5kVp09O5jhZiqbd2uaD2r71mKj87dMDbxcUBOunpdPT58yZr7utrZi9eucKnUCFqDm7eNBvp5M3Ltby8nGt4fvqpk+7ebnf3s2fNMOP588TV27YBVkuXYgjDh3OPXr2yjwDExaGcqamwgxUrYCXlynG+51yUmzfJf9i9/9WrsKjHHwc8PcXlMrUHSUko98qV3GfMGOf7xMUBrNu2AbZvvYW31HNOnTL9FBPD/TZvBvSLFsVQ7sQorl2DNa1fj4GmpZnlB/X6O3c6JzCKGAPWFdeDg2nbjAwYZMmSJCXT08kllCgBoOhiQlo7s2kTOqiscPJkdLRIEdiRbpxUuTLnqa7FxfFMRYuSsM3MJHSrW5d+ffNNnGWdOiRRv/4ax1KuHHqek9P4CylWDHT/8Ue8Vf/+NOLLL0M7+/al84sUoaZi+nQU9JNPyAFoMVRyMkasyL95synauXEDmvnQQ3zOneM+ui/o3Ll0rs4+XbsW5dDJb3FxxNf2tTQ2b8aDqFy5wrU9wxf7XInISBTv7Fk8TblysKcBA7i2fc8TEQzFviKWLjBz6BDDi+3aESeXLHn7jY9ESNBt24ZxNmtm8hRud/ZKzdBQwHD9erzppElmvo4IRpuRgdfctIl7ZmXBVLp0ob08V0HPyOB5O3Ximr16EYrmzQsj8gSMqCj6p2NHmF3HjjiL5GRqdjyHmuPi0A3d3Gn3bui+200/1q5NruDJJ5mLZGd9O3c680hhYc6QJjTUeb+zZ3n+MmVgEHv34mjCw2Ggr7/O+Rcu4Gw0if3uuzC+cePQ52LF0DUtqx88GIbasiVFjjk5jT+RiROhgFWqkBzTDYQfewwlHDyYLLO97DszE4+flYUHqFWL5JmuLSpitiPU2fmei/GsX+/cBmDzZvIiKuvWORe88ayzyMwklLB7uO3bnauC6UJB1aqhKHFxPE9YGMqv+9aKoOT2kEZ/nzs33tbPj09mJsA0cGD2nIg9qRcVhdfcuhUgeeYZQNbuwbKy+O7GDbzwqlU834ABGOjrrzsBQ4QQ7+BBQoJ27Rgu1xg/IMAsHpOZCUgtWsRzuVw8j+cG1Po8UVEY35YtXC9/fo7t+YSoKOfcFgWJo0fNPjiVKzM0//jjhAF2g//5Z2ch2e02xD5zxukYQkOdea/oaLNauK5f6nJx3bJl0asjR/hNv36MJino6x4or73G8xYtCvtdvBjHofOwRo50zpn5p3LPgkaPHjCHJ54gkzxgAABRsiS0cfJkwKNlSzPOf+gQya5ChQCS995jFGD9etBel3Czx4UbNpg1OC3LqRzp6RiJfbvE8+edowb2YVwRDMfuoTIyMLzmzTHms2cx+BMn8CiDB5t4t10753R5ERTNvgJXRARKfuIECtapE3kGnffhObtVBKNKTMR7FS7Mfd99F8MtWDA7YGzaBG3v39+EH1obsWyZWSk+IYGQYvVqjEPnmXhSaC8vs5HTsWOA9Fdf0TbTpmU30JgYDK9dOzxvz560k9ZpeM5+jY/n+VatAuTPnaMP8+bFidgBZcmS7NPldXauiuesZLcbIElKMiulnz7NPTMyuI99+FsnUYqYmhYRmEzNmujb++8DNKmpXLNOHXT855/R7yZNaNutW/ndvn302e369+/KPQsajzxCZ8fE0CnPPYfRPfccxlyiBArXuLEpmdYtGS2LznjmGT5hYYDLd9+hVOXKoUz16kEXlXXodgcqu3c7p5wfOeL0+pmZZmTi0iWuNWUKz/388yiZlxcer1cvvHClShjwG284k5gpKSihp8FFRJCEmzMHQy5XDuAcOtS5nKAI4KDeLyUFBuLrSxJy+HDnyuh6jo4ahIaS4D14EFb2+OOAwe1k925yNMnJANCaNfRRly7O5796FW+5ZAkg8OGHGICeEx5uDC0hAXBavRoPrAlozUmJ0O/2YdizZwkzFi7kOoULm6pLywJg7IAhgpHbr2lZAKVuZ3DmDMB3/To5D13lPSSE5/fyAvTDw/H8N26ga8eOAeBlygAGbdua0T77SnKFCgEo779PSN2hA8Ci4D1yJGFivXoAxE8/wTzq1cvJafxHUrasGZuvUgWjWreO4c+yZUlC1qwJg3j5ZeMNdQhVxHiR9u35dO9OjHjqFJ0QFWVKc6OjuebIkfxmyxaGJadMQQG0lPnVV814vyYOixdHOc6ehd3UqMG4/vnzxP/2FbkOHMg+U/PwYTPh7vJl7r15M6MNmzfjfT7/HOOYOTP7quIiKOjRoxj09etmevqbb/LMnpWUmvidOZNnHzCAe9y86dwiQQTw+uUXDNvtJnz0rCy1LGdOw7LIA2hewzPMSk3l/s8/z+969ABg8ufnfLtxi2B06en0T1AQfdy5M2zoiSec83U04ej5fOnpsMNDh2irq1cB+2XLaNNGjXBUgwaZHEdwMACmdTwxMTzvTz9xvGMHYPvBB6Yk4Nw59CIhgbBFF3TSYejz5wGWZs3QYZ0H1bYtoezXXwMwn36Kbg8YwLB9Dmj8iXz1lVn8duZMKvHKlaOzhg93JhGnT+czc6bZQlGN0h4uZGWhqJUr8wkPRzl11e527bjvrVsYzurVhBVeXlDMtWtR2BIl8GATJ/K9rmehGXl7iLF7d/b1NPz9nRPUUlMJFbSOpFgxKLyWGHsmQcPDTR4lI4Ocia8vybeGDW+fpFTAuHULEFq0CO/ap48z/BABFHLlgomsXEl4VbQoypuSggJ7AkZICOGj5jRmzjQs5tAh57aT+/bRTyEhhBrz5jmHQRMTTZFZVpZJKgYH82z2LQ9EAFjPFSR1/9uTJ83u9pGRMMIzZ+iToUNJeEZHO9dI+eorZwgbFGSKB/XYPt1eN+zOlQunky+fmfv0+ecA1SuvAFCaW7twgXZ66CGcxf79XHfQIMDi2Wdp+yef5HoRETDt262m9nflngWNtm0JP3Tvik2b6MgXXiABum0bHlTpar585Dm0um/UKKNwOjTpORdkzx4zLyUtjWvpvI3oaM7VBGZSEmBhHzY9eBAQUVGjtcvu3c7p1SIoR6NG/D0oCFCKjERZmzc3xrB58+3XTzh3DqY0aRLP2bIlw6lXrmQPWUTMsn7z55ulAb/+mnoNz7kclmXqWLp357NokUnarV9v6kE0UbpyJSFBqVK3z2m43XjnNWto82eeAfhv3CCn5Fk3cf062IafZgAAIABJREFUwPHmmzCRRo34/6VLsAO7wYqYlek1J7V1K8PvKSkwTd3mIDAQ/dCRMRHapU0b5/vb54pof9n7MCjIWdwXHGz0KDnZVOKKAIwzZjCK8/773F934HvjDZMTmTkTZvPdd4DMsGH0lxa17d1rVqX/t3LPgkatWjTm5cuED2vX4hl792bUQeNpTWqdPEnnd+uGIiYnY/BXr5oVnHftMpWjmZl4eC0N9vd3jlp4LrfnyRhSUmAf9hh7xw7nehsiKHRWFvmEAwdIoOn2iO3aYexeXnhozz09Tp0yE5SSkwGRNWtQpEaN+K09qedprFFR0N6AADz7gAGAnp6nO72LADgLF5rqz2rV7pzTCAzECOPjed9VqwCeTp2cz5CYyMjXkiUYz9tvU/WooLhzp2EUusXCkiVcP08evKp9RnBQUPb9TJX2Dx3K+z7yCP3euDEJVPvK7UePOnNUIjgSz0SzZ6I0KgqmlZSE3gQHO5cG1Fya3sPuWOLjzSJHkZGwKl2NbuxYnrtUKdqtTBn0accO8nTVq1MZXbQo7PXXX/+LwpP/YLOkASIyWczaod9alvXTH9/1FxEtG/rMsqz5d+OZROi848cxkPfegx6npQEkw4ebkZHYWGLE8uXxal5eKMLbbxOajBxpNlb+4QfOsecQRAAJ+4S1bducK3Bt3+7crMa+yK/K4cMY0cKFKKOuJDVpEkryxhsYxw8/OIdtdRKTpxw+DOD8+CMG3qYNdDcuzqnoIiaRqlWWq1ahrC++SIg3bVr266emAqRqyP360Wbx8c6ydRGYwvz5psjMc+6JitsNGMyfz3V0Ob+hQ7PXaehoxKhRJowcNAhPfPiwEzBESAg/8wzAu24d97n/ftrvo4+cIcqCBdlnhB47ln3SXmIi4Z5+tmxBnzp1MknSo0cJ4zQJevQojigjg3sfO8YzV6hAO9Wvz3dZWU4Wp/m1ggVhD/36odN2kJkwAQezcSM6MXw4DOWll9DJ/4r1NP6TzZL+kKWWZQ3x+G1hYQ+UJ0TEEpHgP36b8G+fa9o0s1nM+vWmpPidd2j0EiWgpK+9RsiSno7i28vIIyMxbF30tlEjPN+nn0ITq1eHDlaqBJN46y0MKV8+s+y+iJnmXqgQChMXxzXLlWPc/OJFcgUnTmBUtWrRyWfO8J2dDv/2W/aEYFgYHlLvs349dFRXu5ozx3gyXenKLqmpeKHDh1FCnXym582a5Txfd51fvRpgmTXLOfdCF8vNyMA4Fy5E+XVFbF1UyC7nzpnS7yZNaOPy5flu/37nMGl0NAxo4ULaePx4chTqRZcscc7jyMqCCf72GyNCdepg1EOGAJKjRmXPaaSkOCcUWpbZB0bXLb1+nT5atAgdqFPHrM2iYcC2bbSrgvTx44xeac7Czw89GzTIVBpfukRYl5Bg8hHFipmwRatSGzdGfxYtYrhc2/3RR001r4a7GlbZZzr/U7kbTOPvbpZklzYistWyrPg/frtVRNqKyJI//dV/II0a4em7daNTdFz83XdBaC8vaGOfPsTlzZvznW7uK0ICThNYcXF4XO3srl2hmJcvo0SXL+OtEhNNCbnOK8jI4P4TJpgS4AsXALBHHqE+Yc8e2Mfo0eYdfH2zb414+LCzvDwhgbH54GCYRK1aeObhw3lGz81xYmKgsxkZxO5Ll/Jujz9OO3gyCs0/aEm3nx95kpdf5l1ffz37ZK3Tp/H8HTrQBj/+aCi2fSe11FTyGb/9Rt6paFGeybNqMS0NUJ03j/N9fGBAr70G+HiOJF25guFs2cL5587BMHx8+Js9JNQlDuySmoqX3r0bsAkMNEwzNpY++eADwyrsBVNffeWshdi927nwza5dzhBn1y76KG9entmeBP36a8BrwgSes0gR2uLkScOCzp8nib9xI+FoVhbtN28e14uNJTT5/XeY7n9LTuM/3Sypu8vlaiwiYSLyrmVZUXf4banb/PZvb5b0xBOg7pUr5CFmzcLbtmiBFxo4EOUoWxZ20bcvqPzaa3TirVsYopb+Hjxoysoti87ThFqBAtBqTWrOnYuX1tmi69ebuFnELJdnH8HxLOoSgZXYE6UieKpLl/Cmhw9TPp2czLXtM2mzsrJT0Vu3yGn4+2PMrVsTrpQpg/IePOg8PyPDrM/5xhu0xbp1Jo+hizKLOJOaJUvieVevvv3GRCdPUudy/jygvmgR13zxRSdgZGUBIr//Dii/8ALApXmkzz5z1lFkZODZ587lnM6d8aw6vNyhQ/b1NXSGcWoq7aI7ysXHw9YaNICRHDhAf9inv+/da7ay0DZ48EHnOwcHO1c227PHCfr2imR7zY8IYDV7Nno7fTqMo3177tGvH+doIdh99+F0BgygX4oU4b1GjMBJ1KmDzvy/VEbuJyJL/tiq4HURmS8if7FgmlP+7mZJInihgAA87uDBpvNKlQJIxo7F4DV51bo1QFCoEP+/ds0krAIDTUfZd58XMXudqPj7O3dq9/d35js8k116fbvHUmC6eZMEpr8/gBEczO979MBocucG5DwTdBcvwmDS0zGkFSv4W6FC/Na+87mI2ZpRtx5YsAAwbdqUZKCvb/b2zczEmFauhPFoUjMxEcbkWai1cCGs4soV2tXu4XV+jwhJz/nzSVy2aoXR+/llB8H4eJ55yxazd02rVtQyzJvnnP2qpfMqmpf69VcM7uefYSNdugB6Zcs6y7z9/bMnmkNCnO/g7+/MU6WlcU99L8tyJj1v3kT/1JDt67h6zlgODiYEKVqUnNCUKbxDUhLXOHcOUNRRlqwsflu5MuHk00+Tw7nTokR/R+4GaMTIX2yWZFnWNdvhT2L2NokRkaYev915F57p/5/wVaUKDf722zTYvHn8vX9/0LtnT8IRHRVJTSVsGDwYAHn5ZbxWWJgJHTyLq4KCnOPf0dHOOoejR50gcuBA9nLvmzcxcN0S0d+fuPndd1Fm3ZJx2DBn5l3ETKyyX+uXXzD+Ll0wpI8+Ikcwe7bJFdjl7FnOX7aM9x48GA947RrU2C6RkRj15s2wtk8+ceYodAVvnSfy66/8v18/AOuVV7KHBLGxJBLbtIGl9O9vZrTu3Zvd4Pftg8HpkOeoUSYXtWOHWfDX/szFi8OGNm4EQOvWxTg3bHAmHGfPdrI2kewjHpo4zpULwD1/nmKtxx6j/iYuDlCJimJ4NSsLA79wAQb6wAOAXno6QFqhAn2veuLpmOLiTBiYOzeM6KuveP9Ll0zpe61atMPbb8Pe+vSB8VWpgi7ZVw77p3I3QOMvN0tyuVwlLcu69MdhZxE59cf/N4vIF39smiQi0lpERsldkCeeoPN0qbOLF2m4lSvNdOpSpVCEHj3wEPb1JJKSiP8WLQIEWrc2e1LExfGbgACQPDXVJKkSEpwKm5nJdXVNyLg4lLZXL3IumnU/dQoPoTMnK1QAyOydbN/F3FMiI/HGmhMoWhTD8yzmiY83oz5XrgASuhp6u3YYn91AdYHblBRYxNKlvF///gDpyJHZS60jIgDSNm34TJtmFnPeu9cwEAWVBQu4f8GCDI17VnKqHDtGeBIYCLN7+GGzrJ6n6D3OniUkW7qUd6lfH4amW2jebs3Qy5edWym43ejMxYsA+YkT3Dc6Gu/+4IMA8enTZqZpkSIkoEePBvRz5aI+6JFHzDKSo0fDLLRgbutWwNPbmz6oWhXdiY83bZyWRvvcfz/hmq5t6uODjkZHE4Lr3ilpaYSi69cTYv5XzD35DzdLGuZyuToLmzzHi8iAP34b73K5JgjAIyIyXpOi/1bUk1+5AiB8/DE0VDc1DgujYxo0ABxmzoQeaqGQfeqyy8U1fvwRBWralDzA5s0A06lTpkLz6lU6TI9v3qQjO3YkuVa0KNfOyID29+rF70+ccBZWTZ+efchPy+FFUIZ9+wDE4GCSZR07YlQFCtyZUVy6RP5i4kSjeKtWoeBVqzoBw7IIvXQz465dMXDdYf7XXw3QJicTwixbBi0uVQpFvV2h1vnzMKHgYBT9669pj6++yg4YkZEYvo5+vfgiz+5y3X76e3q6McjAQLzuc8/x7E895SwVP3fOsBMVBa+ICHI8+omJMRP6GjUC/CdNMnUccXG8lz0MDQnBMWib7tzJKEn+/HyiowFflwsGcuECYdL16wDBhQu8d8GCJi9z/LgpMDx6lPfp2ROGs2oVTqx0aZzmhg2AdIUKAOyaNf8lQ64if71ZkmVZo+QODMKyrLkiMvduPIenVKxIKNCxIwbx2290VsuWhB0aQuTJA4UbMYJG3rwZJVHQ0EV+RVDSggVNMmv1aryDJsi+/BJvpuHOr7/iqXXuSEoKNH3gQPOcK1Zk9wAhIU6K7HbzbA88wHu43Xjbpk0x3OnTnb+PjTUKfeMGHlxX1Hr/fYzfvp6GvVArIsKs5/nYYyjp7RbUEcGgVq6kvXr2xKOnp3MPO2BoonTFCs59913ngjqhocbj37jhrBXx9jZ1B7eTrCwAdMUKGE56OmHZZ58ZUFm61FRdqugGWZmZ0Pzdu01/Tp4MyLz6KmFCxYrOdVe/+MJZp7NtmzPnERvLs6uRpqbSTzqMGxPj3GDcvsSCj4+Zm2JZAE1MjFmBTnMtR44A+vnzo59ZWbCZ0aNxXn37kkfq2xfHuHFjdlb1T+SerQj9/nsURhNBw4fjfYOCYBO9e5N4PH+e810ujKx8ebMD2LBhdJ59iMtzPcjjx53KcuyYExCOHQOgVOxVmionT2bfnDcqCi+rGwylp2PMEybw0XBozx4nlVaJjsYIJk0CYDp3hk0MGUKG3Q4YInjYTZsAveLFqRMZOxZKbl/wWIS/LViAont7M/xoL7zKyOCebjf5hfnzAYIXXiD7//77t/fwUVEwieRkmI2CfJcu2QEjJQWPPHgwIwgNG2JcrVvTTp67ydn7TZOgs2fT776+jC40bgxj6NzZmXP66CNnYZ4mYO1ee/Nm5xyfLVuc5eWeQ62bNzvXYdm+3eThIiIMS3S5aG8/P9hly5Yws9RUk4hNTQUMxowxCwX16AEb7tfP7Os7ZkzOehp/Ko8/jnG1a0eHXLiAx5w0CQUrWRLleOUVs8DLpUvQ/8GD6ZDkZH5/9SojLxkZhBF2VnDihDNvkJDgTEqGhTkNyr55tIpOhNqwAe934QL/btsGFR4yBA/VoQPsw+7BL182hUyRkTCKLVvMpsu6VoZKWpoplEpL455Ll0J1X3yR4jV7UVOuXBhZWhrXXrIEBe3XDwAYORKPaZeoKO6vhVoTJpjp3f7+xth0Tsuvv/L3IkWg5/brxcebHJHbDUguXUo73rpFzsee59m2Lfs6mFlZgO5PP6ELuv5EWhrn24vdZs6ksMz+26QkE5KJZN9w27IAaZ2E53Zj5B9/THicmUm7vvKKyUls3WpAIivLufCSfQpCUhL9lTs3/eLtDWP8/nvY1dGjXE/bIH9+9HrGDEAsIYFrbdvGcc6+J38iDRqg8Doh65NP8K7DhuE5dWht9GiM67vvoIBaO5GeznejRmG4ISHE4ZGRGP3ixXRUfLxRuoyM7NvsZWby78WLeLu1a1HqAweIqTMz6fjVq6G7I0YAAn36ZJ+o5nI5AcPtJtzQuo1SpVCYJUsAgEGDbr9vhzKpmBgMf8YMvFPr1tmrII8eJSx67jk+P/9sknLr1hnATU4mPFi2DMUuVuz2hVpZWYDw8uV421q18OIdOtDGngAUF8czv/MOAN2oETUpV67w7p6J4dBQkt+6BeP69RiXrmc6cybGmZmJDtgBQ3c4sw9Leq6BcuMGyfEWLRj2jIyEKeoygirBweRo8uShDTZvpr+mT4cZBASQz8iTh09mJqysdm1A6ZtvuI7uDyxCP5coAUh07w5rnj0bvdI9czIyYLa+vjC8xx7j3JUrOf9OId7fkXsWNETw8EeOEM81a4ZC16hBx0yYAH28/35AJSkJD2Zft0IEI/XxgaKKUIrbsqWZ9n3qlIkxb97Ey2rse+sWHvH55wmJihUjqdevH4hfoQIGMWiQMwTQfVLsYll8YmPNWhmxsRir5kjsdFmX3BNBWf39MdSAAP5vH6IUMYxCBENYuBCPV706Id7atdnbN08eEqUTJqDQ3boBprlz41XtgJGaCjBu3Gh2R3/nHQOyq1Y5Dfj4cbOocIECUOuaNQ1oHjxo2IvK1as8zwcfEO40bEg8rxW+9q0ZPGcsiwBCmgdKSeGcL7+kLTt2pH28vc1ckerVSXwuWsTzKfvYswfDV9A/eRK2MGMGxzt2AAZjxwIWw4cDhoGBgPfWrVyvdWvOe+klfmcHkIAAwqlBg3ivOXMYpdH2KVyYPMzWrYQqNWsCYp6rlv0TuWdB4+efMbKqVenEb75h9OP4cbO03OrVNHiBAiia7vJdpYrxoJ7L+l++THHN/feTD7l+3czNWLcO0NBtEg8dAljsgHD4sDPDfvZs9nkP9joPrUzcupXrvfceyjR5Ml7nww9RpNtlxfftAyhOnkShBg3ifrfbezUzk+f/4gvCmX79YD3p6c6cjAjh04IFtF9qKufZF/VJS8PQ7GtfREfDVBo2JCb3LD1PSjIL/O7YgUH27o0RJyRkN/Dz5wkddUj1998BHd1qwr6Azvz52WN5f3+Tt8jIMPvUZmRw3fz5uWd0NM//6KO08fHj1PrYy/MVhFVWrzaGLsLz2VdZW7PGJGXz5MHxTJ3K9Q8exNgHDqTPlyzhXZ9/Hj3W9VsDAgBEEVPrMXCgAY2EBHR5+XJGbdxuwF0LFP+N3LOgUaMGVPWppwgNDhxACb79ltGNDh0oXHrzTbNKV4ECdOjKlXiPN98keWevQ7AvSHPhgtPbXbjgLHK6cOH2w552iYx0xsJnz8KIwsLM5sCNGmFwt24Ry9olOdmEFBkZJNxWr0apNm9GOe2bI9vDm/R0kp+a09AhW/tOYPfdZzZIXrEC2lu4MMqnoxSeq4BFRQFULVtimMOHm7zOvn1Oihwby/t+952pmxkxwoDgd985QVV3oF+5EqCoWpW2eestmN7w4dlX3AoNdeaV4uMxppo1uX6ePLCRq1e5rk6fT0riXvZCtHXrnGHI5cvcz1716clidu82E9Z0AyfNa0VFESbr+65fT8hYoQLMTTfzXr6cdrrvPhiavfz81i2AZuRIwvBJk8yao48+ijNMSICZ3G5z778r9yxo1K+Ptzh/nvzA3Llmv9a33yY0qVvXLL5jX0H8iSfMln0TJ+JJPvgAD68b/YhkB43z581Qq35vT8rp3AQRGEpoKAabkIDxWhYGeP06YPXKK8bIT5++/bZ+CQl4pF27MIamTfFGkZHZV+wS4R47dwIOkZGwpqlTAcvSpZ33yMri3EOHqCfp3t0JKkFBMA0RwgFfX4yuaFHYyu1yGpmZgM2iRZyfNy9etFcvQkjPRYiuXKE//P25tuYYChQANOwMy98/+4SsrCyMau1a3uXUKUBPh8mrV+caGo7Y19vwTHiK4O3tM0X9/JxDsSEhXFP7LSYGVqWgcvy4M8xat875+4AAEwrrMG6hQrT9jh2Msn3wASAfFQWIaCL8zBnycCEhAFNWFu29YAF6dfFi9pzbP5F7FjREaKigIDx4797ElHXr0qmTJ8M2WrUyE7KuXsWodPp4jRqwjerVQf9Nm+is9u1hG1evQp8zMsh7BAWRINOp7tu3o4xBQSh/WBhA0b4951epwvc9evB8agCff+7cXFrEPJMmJzdtImw5epSS9ilTzFR8T3G7ifWXLYP+7tiB4tkZQsGCsBYRs+9qcDCG/Mgj2fcxEQFw9+yB/SQmotC6+LDnTma6Ruq+fbCfbt0Ach3ZCQpyjlDoqmnLl2O8TZoA/pMn0y4dOmQPyY4dwyDT0wGQLVvw8teukXPRvUMiIriO5ypsOu9DZeNGJ0DExQH69kTpxo2sb3L1Kk5h1iz6bs8e3mHVKtovOBig+/VX58xlLbMXMaxF32vzZrOu6M6dOIQGDTD8Bx80z6YTJ0NC0K0nn6S/dPJaoUK0i2edyj+VexY05s+n03TR1SFDaLwff8RT1q+Pt2vXjmM/P87t3BnlV2+qmy7Xrk0YceoU105NpRNq1cJ4Ll5EMU+coFO9vACKMmWgmsWLU/J75Ihz5urIkQwP2w3g5k2nx4+MxMtu2YIxPP44DOHdd4ljX3op+1wLzScsX84zNWjAufHxMC3P0m8dUv35Zwyrb1+SgC4X3s8uR4+i6Bs2oKCea4ranyEwkKTqqVMAdNWq3Mczi3/jBmCzaxfPHBoK6yheHOOxe0it2rTfJywMwPLxIQR95hnAuFw5PL2OLogYA7TL1q3OPITufaL7yZw5Q37h+nVY0c2bAOGRIzAWHx8zea5kSfopTx4cx/PP887JyTDLc+dwYPr7jz8mMR4RYZiNZcFStF23bzcVw3v2wDzatkUHly8HmM6f530PHoShVKsG68zIALBee+2/Z+7Jf6VUq4Zy16uHV1q0iL+dP0+njR7N97oknK5n8P33GNflyyhtYqITQDS8uP9+wKJDBxND+/k5Z49u3Ih3VI8bFpbduHUoUEU3Y9q4kbDh8mWARzfAsdcQiJjhOhEz5X7NGgx906bsOQ1vbwy0cGGzXaSfH965TBnayZPCqgIvWoRx6apR9erhyTwB4+xZjL5lS0Bl0CATNuzZk32UZ98+qPipUxjz4MGmnqBDh+zPc/YsQLxhA+10+rRJXvv6Zq+7mDjR+fudOxlJsMvRo7zLokUwrcBAQP7557lX5cqA95dfmpXily0jPNQka3g4wKCJ5qtXMWANN8LDafsff+R46VL6oHlzWML06eTAli+nv/Pnh4nmz282UBIBkJQ1JCQAKNOnE0Zeu2ZmbXftyvP2728K/Ow79/1TuWdB48kn8VKhoSD5jh14iYkT8ULh4XRM796gsa4mXaoUibht21CuZcvw7Lp5jt3A7TmK24l9A5zbnZ+VhTHu2IHinzzJ386fB7C++MLULezeTTLXU7KyMJTdu3m/Zs0AwitXGLbzHGK77z48ZnAwz9a9O8qrpeN2A71xA4YTGAgjevFFvJ2yhIsXATgR7rd0KYZctiyFWrfLaWi7+PvTtidP8q6lShGG/NkaltHR0O65cwGI4sXNdo0ZGRi456pknpPPLAtGGBVF6BAcjC6cPQtTqVkTnShQgBERLbJKTgaE7ZWiq1aZegoRjN1e2btypZPheH6/ejXGXrw4bTZvHgDudtPOutVkZqZZ5LhAAeO8dH+eQoVoh+BgcmHly5MPi4vjfdq1g5VmZd15MuDfkXsWNETwnLoEfb16ZuevOnVA3P+PvfeOrqra+v7XSaO30KR36b0p0gVEOkoTuQiKgtdGsSAqcsEuFhSp0kJJSAKhpJFQA4SShEBoISGQAKEmJCG97vePD/O39j7hXr3A+xvPy3jWGBlwztlllTm/s6y55nRyQsXr2BEGi4/XOULLltXRjsnJeLWDg1mw/Hwk4e3bEF/FilYNQnJDFhTAjLduQbx+fkj0LVt0roVz53DKjh+PLezsjH9lyBBroJOckpUQ6MBAGO/CBfryyy/WFHeVKiGFatSA+X19IdLz5xmzfaRotWpIRokS9fTk/y+/zGG9ZcusgV9K0f8DBzAfSpaEYLdvhzDtfRqGgdQ9exYzpVs3NDrRgoYMKQ4YWVkwxbx5+GRq1NBZ1kaNsmYVP3u2eKSt1C5JTGSuQkORxhI526kT0jcggLGZY3Rmz7aakbt2WX0RWVn4mcxbx/v2WX0gfn6Yxg/6PTsbLVPWLChIh5U7OKCVbtuGoFq8GO1n3Dg+C62Zj89HRSEwpk3Db1e+PD6N6tUBqq+/xj9nH0LwMO2JBY1Nm5A+zZujNdhsoO8330BImzfzW3g4E7ltG6g8YABqnaj8JUuiZUhR5N27kR7nzsFkv/2GhE9NhSnEE+7oyEL+9BMOyurVAaLnnmMx5ezI+PGYMGYNRABCKfp2+TKEvX07TNqhA0Dz0UeMR7KRmVvp0kSwiiN46FAYf/du5sU+QU1EBL+NHIkzbdEi/czjxwFICUaTbdrERNT0DRuKm13S98hIrg0PR/urXVuvx4NaXh4a3vbt2Pu5uUj7L77QZo2nZ/Gtw4gIwF/8GwcOQAO3bmEedOuGTb93L2BsjpUJCrJuZd+4gaZk1rp8fFD1pQUEWEEkLg4Glntu32YNRPO5dAkhJr/v2mU9m2IupnT7NvMpDtdDhwCOKlXYETtxAuBv2VIHo0lipzJlMGNatkT7GDQIIdeggY42fdT2xIJGs2b6/MXGjdi8gweD1r/+Csp36ADTX7sGurdowW+zZ2MKtGgBcUugl7MzRNmqFX/r11vV0yFDUC+lDR3KYpubFCGW5uysn68UGkpaGs+OiUFaNmwIcHXpou1haVWrAl5KAS47dsCUUkzHXqOoXRtTprCQf8Ux16cP7wkIKD6XVaqgfURGMlcvvggYynF2ey3rzBnMrX79INSxY/WJVvsyBUqhvV2/DnimpFi3jcV8MTdzcmQBCTc3+rF8OWvdqxdC4fffrduwc+da5zAvj+eZHcP226h5eayDWfPbupWxp6fzt2QJDBwVxdx6ekJ7MTH4v9atswLV1q3a11JQAFBJvI6/P8wuv6Wlab/Z2bOYMY6O9PHwYZ2wWoK9lMKPdO0atD9gAPP1z3/y3kdtTyxodOgAo0VGoi20bYst3LcvzD1uHNLd3R2AEQ94QQEE/tlnEO2qVajFrq7YmGYG/29VPWdnfb5BKaRoRga2tDgPHRwwh1q3xuSQ/B6SxNfcCgrYDdm1C7CrVw9129MT5jeni1MKYpZM3nv3EuwzY4Y+v3HokL5Wtmk9PACh9u2Rcubq6Pfu8Q6l0Lw8PXlGy5b//uyJtFu30CYEpAoKiBQ1a0whIcWD4/Lz+XNzYww3buDTyMzU2dGlrVxpjZMpKGC+zSD3oK1Wf3+k/oEDgG9wMJrkSy/psgMnTmAKlCmDthXMRRK+AAAgAElEQVQUhDYaHw9Db9lCrM/SpZh527dzz9KlzK2cA2nUCFOlSRNd+CggABBSypo7tqgIAJE1LV0as3PpUkyhN96gP2JGlirFms2Yoe/5HxNG/jfqnsxUSk1RJOG5o5R63TCMhPu/FSqlTt+/9IphGMPUY2qurtjXY8eyGN99hyd59myIaeFCbMWuXUHt999nC3XqVIhk+nQk5c6dMIWvL0Rx5w5ayJ07EIKrK4QotUjz8yGA3Fwkw61b/O3Zg8Ravx7Cc3EBmHJyeOfTT8NkS5cidcyVw8qVQ6IlJECgu3fDtDVrYv5IKgBpDRrQt9xcmGvrVt7VrZvO+m3fKlSgj/7+SK5nn6Vfgwez5WgGDKXQDk6cwEfRtCmOSKmBYu/TUEpnKRs0CCIeNgwJnJ+P48/exIqPR3pnZgIgQUEwUWoqzxZHcXY2Zp4ZMGQL19yHsDDrkfnkZK2ZzJyJxiXFmJctA4Tr1QMYf/oJzaFECcBx+HB9XODsWdZSsohfvUrfpe7NhQvQhphA27cj/V95hXd+8QXrNXq0phlfX0Dd319HoEZF6dyyWVkAQLlybKPu3w9QffedBtrr11mTX35Bi1u3rviaP0x7ZND4m3VPIpVSnQzDyLLZbG8rcoSOvf9btmEY7R61H/bN2xvGffppJMlHH+FPaNAAKTVokD7o1bYt3vvZs0H54GAkuFJ8L97syZM5YfnZZzgU8/PRVLKzIeTwcBbJ2RkikpiO6tX5k9wHc+dq2/aHH3DImW30GjWQoErB6CEhevdEDtotXQpY3b0L2JmZIzUVf8DGjdj6zz/PToAUDzZnHS8q4rO3N5qFiwtEuHChNfRcbOHoaHYBQkIAkYoV8XE86OyLhFT7+KBG168PI/v4WL340dHW0G+5z9+f/pcsibkxZQpMn5dnVcUlmY65mQ93FRTwDjmwNWwY31WuzL2vvsr8N2gA42VkoN4rBROvWWOtnuftba0F4+5uzTDu4WF1qsqpY2mengBK9eqM22bTJpOfH+vh4oIPxdsbH0dSEmafxHGYD9edPg2gLVgAuLm5obVduwYt3b5N/06eRKN91PY4NI2/rHtiGMY+0/VHlVIT1P/l1qgRBFe3LkzZsiU7AWXLguyTJ8MYrq4Qyq+/4ji6dg0J0q0bzqahQ2FcpWCQ1FSeWbcu0n7yZB1TMGQIDCHtlVcIWxcn55kzOA3NDrZatXAoKoX0kKPowcH0q04dJM5nn7H4f/xhZThXVyRhTAzSae9eGGPgQJjgQT6K0qX5PjAQqda1K0QlR8DtizFlZnL9yZMAxejRxLk4OjJm+7iLo0f1LkmbNtjy4sgcMqT4tl9SEuvi6UmfpA6uiwsmh1ml3rixeMIic6LnoiIk++LF2mxwcAAULl0CxFu2ZA3OnUP6m+uqbttm9UOZdzWUYv3z87UWKCkRxYmpFGsnOVYMg/WUWI3MTLQg8Y/Ym0c+PtBM/foAZVYW53F8faHRnj3RTM0lIs31eTIyGNO5cwB7bKwOUJw7l/setT0O0Pi7dU+kvaGUMpNySZvNFq4wXb4zDGPbg276b+uetG+PabFvH9LpmWdg9Llz0SwaNYI4atTAWThrFozp4AAB9OnDtQcP6nwS3btDNJIar3ZtCFxAo3Rp6wEy+99r1eJzXp6uKBYSAri5uXF/27aAXFycFYCUQo2OicHfkZrK2HbvRjL9+isA9/bb+kBdYKAODsrO5trt2/HzeHtj65rPSdhsaBGy67FlC0FizZtroHmQRiEmkI8PavmzzzLW4OB/v0tSVAQIBQRgOtlszNe8eXobcfDg4jb4+fPWA2TJyYzpxg2cngUFAERioo6UtNkApmvX9DF5pQAIM2BkZjJfZrPQy4vtSmk+PtbYi6NHAV0Z57lzvFMEw4kT0KJogvZnTby8EFZK0ferV7V54efHHDRuzLru3o3jffNmaPfmTfoaEQHtKoVGNX06a+DurlMeSryJ2Qn/sO3/V0eozWaboCjBaK7SUc8wjESbzdZQKbXXZrOdNgwjzv7eh6l7UqoUDs7165n4rl1R7YcPR/qvWgVCR0Uh1ZYu5Zpp05DwFy8SWuzlxTOOHSNvwZgxSBuRkCEhIHlKCsxbpQq/X7yIh7xcOXwaubkw+JgxgNbTT9OflBSkrLnZ25+ZmSz+l18iacqWBdhmzIAQJkwoXkulcWPs/gsXdKq4zz4jxiE62hrXUFjIeDw9GWf79mhmCxbw3kGDrICRlgbDR0Wh7vfvj0QUv0dERPH1SEuDuV9/XTOwnMOpU8daZyQ9vXiglmEAEps2YX5cu4aJcecOjm3RTlJS+M18sjUoCO3L3MynT5ViPLJroRRzlpSkdzWUAmg2bNCfN22yOqg3bbKaIps2WU0pb2/oTOY8JkaD4KFDVq0jMBDnvfwmGefefZfxTJkCUPr4oA3VqqXr1xQUILw2b6Z/v/9evGzGw7bHARqJ6i/qniillM1m66eU+kwp1cswjFz53jCMxPv/XrLZbPuVUu2VUsVA479tEhotUYMeHkycJGVZtAhJ3bs3UvX0aZhv8GCI97vvsKlLlkTCX7kCY4wZg7rdqRMq+Pffoy6npur8Gm3aIGmys5Ecs2axm1CqFETp7W09e2G/jcp8QXDh4Uiv0qUBGgeH4mc3evSAiVq1wtYNCIDxc3Nxki5fbt1SrFABzSYrC21gxw6Y7Nln9a6HvYbg6op5FRLCbo2TE1uvEkNhX5tVtpJjYpCYISGMPy/Pqk0ohTZnDtRSCk2rQQPWRrS95GSka5kyPKNOHdZlwQLr/Q86WxIQYC3Iff06UtpsKm7ZAvCFh/O7vz/zMHOmfvfp05idNpv2B0meWalcf/KkfubRo8yBlLE4eVKnAUhKQiuSXRMfHw1A2dl8L4f4goIARqV4Rrt2+HF++QUak8zlt29z7507OnFx8+b4tb74Qvf1UdrjAI2/U/ekvVJquVJqoGEYt03fV1JKZd2vvFZFKfWc0oWUHqnVrAnBdeoEsy1YQHj46tVI5G+/xadRrx4S++5dpH7nzhBIYCBqZHAw/z93Dgdh69YwZqdOegdFJLyrK8wo6qdEPZqPz7dsiYotsQP5+RCfHOo6cwZiuXOH97z5JoTl4ADhvfCCFTDi44nP+OUXmL9zZ5hZcpqOH28FjMREmGHvXnaV+vfnWlGJL13i3dWqaTNl506I/5NP2NbbuFFrATdv8iegkZHBDszp0/S1XTuAePp0NJVRo4onHbp1i/fJAa79+9HusrL4vUcPNL4TJ2DosWP1vYcPW6uaKcX7zdXdCwthpurV6WtsLEAtmeHv3uWayEi0who1oJ9z59BEmjbVa/vPf2qTxtcX2pHzRgcPQi+SkiA4GBqYM0fvnvTqhal8/Tq02Lgx48nL0w7Qdu0QPuZExJIkSCm2ggUUT55kzWfOZJ7few/6a9JER6umpuIL2bLFWgr0Ydsjg8bfrHvyo1KqrFLKy4YIk63V5kqp5TabrUgp5aDwaZx74Iv+y9axI5N5+TJE9MILSKgvv2Ryn3+eia1dmwn/5RfMihIl2EUpX57rZ8/Gnpw8WRfJOXUK51fTpkiL3buRWuXKsYjJyYBBQQEMER4O0d6+jXr+wQc8u7BQFyIKC2M7eO5c+nDqFCaRORGszYbkWbyY94j926cPTLtzp1VyOjnRD/F9hIXBEIMGASyff148K3ibNkjCmzcxr6TCupzvMNvzSsGI4eHMx759vLNvX4B02TKrf0CS5EoTRj14EElZVMT7evdmTvr0sarrkZHFnbSHDxc/uRkdzbN8fLRDMC4OJ2z16qx7dDQ7DS1bsv27dStjfucdnnHvHuBq9j/s2mUN3pNq7dLc3KxV2DZs0ABis/E8d3cAVxIqrV3L70ePYvqMH8/ar1hBv/bvB1gKCtAgypQhHF40EnON4eho1uettwCyLVvQ7iTC1GYrbvI9THssPo2/Ufek37+5L1Qp1fpBvz2O5ujIVuPPPyOp0tOZ4HbtIKjjx1m0w4cxV65eBRiOHuVfqXo2bx4T/t57fB4wALPk0iUWeNMmzIC0NBbuvfdYLGdnpNjatTB/tWqomEuW8H7RGGJjIT7ztmGbNgDD8eMw5NGj2Oq5uTD/ggVWiR0fD4H17w9QSuHkixdx9L7/PgQsfglnZ65p1Ijr/f0BlqQkGHvJEmu+jTNndN6H9HQAIiCAfpUvjxYybZp2tJ0/rxP0SMvM5O/nnzE3cnIAgZIlsb3NTrpNm6w+CaUADXOaPYk+jYuD4aKiMLMuXkSTaNEC4ElOZuwSJJWSgs/FDEje3tbaMT4+xQsfNWqkQ7tTUhif7IJkZ6PFyZxlZPBe0TKvXYNxhWnt66R4ekKjbdpgZrq5sT55eThiq1fHtM7NhV5iY6Hj48e1D+XsWTQKBwdo7Y8/oL9FixAWZv/No7QnNiI0OBiidHWFGP39kSqvvsoCzJ+P6t+nD/bl/Pkg9HPPcV3r1tjib76JJEtIwOn45puojefOoa3Ivd98w3s7dIAJZN9+3z4YRE7RKgVBZ2frI/eNG8Nku3ej1p86pWubrl6NOvyPfzCW7GykiRkwbtzQaeBq1iQeo39/GD81lb6ZK9JnZSGJf/4ZadSgAdqHFEO2T+Enpyn9/OinszPaxKxZMIeXl9WBqBTPyc6GqffuRZu4c4f+tGjBXAsDnTxZ3KsvJou0oiL8F3v3Ah7nzvH8+HgcvVJ319cXxjY7I+fN04FXShUPE5f8pObgsq1b0fSkbdhgza/p5WVNVLxjh3Unxn6XxT5Ww8NDb9MWFVkDt44d01vILi74RH77Da3t2DH+7+4OUJ8/r5MlnTmjA84SEnhfr14IrUaN0LAl/uhR2hMLGhUrMomSk6JUKbzPkyejgs6fz78SF/H665gGwcFoAG+9hTZRvjzq+o0bML67O9J1+XIWoUkTiD4kBPNGitIMHowK2qQJPoOhQ2GapCT68uqrmCHmdHmbN+NUHT8eAo6MZMHNB6NKlqRPP/4IMV29ipbTsyegsm2b9TSqqyvXHDuGJnLoEJKoRw+kj/31SqGNJCToKMzbt5GAZcrALGYT484dHWdiGDDwvn34gY4dA6z69kVDuH0bILPfxbBvhgETe3rCEOfOMZeJiXw/dizAs3ev9jVJCw7G1JQWHw/AmoPfduywOp/t837eugWISXxNURFjMW+9btuGdiJt82Z246R5e1tBJyhIp5QUR6UAv5gY4nyWhNdKYZakpGgz7+BBDjz27w8tvf46NPzrrwicY8d09jjRggoLobexY4unL3yY9sSCRufOOtfn2LEwbp06MKq7O6qaHLoKCcFh9fvvEH1YGMR28ybMM2IEyW+qVkXN//57dljeekurur//joRPS2MRX38d/4OTE5Lsl19QJ6tVoz8//YSNLAx76xZSwhxI1K4dz9q6FUl08qTOwrRnD4Rv3g50cIDRXnsNVXX/fojsyhV2g955BwYTpi9ZEmIeORKT48ABnnv+PGObMIEoSslHMWECTCv3Gwbjl6jKpCT8PH36MGfDhmmJqRT9sC8LmJkJSO3cCfNERfHd9evaUdm8Ob/t2WPNjH7woNWEKCqyVldX6sFaRX6+9UzO1q2AWVYWJsXvv6Nt+voC5hERrOO336K9Cl18+invzMxEQM2fjxaWk4PJ9+efaFN37zJnYWFsEYeGWgWBl5feljUM3vfd/YMYR49at0rNWuvRo4DHe++hZQ4ezPz9/DN0HB5u1TCdnP5z/pe/255Y0JDWpw8AIqHkZ86wmI6OIHqXLgBL48ao20uXYms2awZwRERgsuzbByEMGIATql8/iG3BAhZ1yBCkjYMDaL9pkz4Bm5gIs5qTFx89CrP16KGdXDk5OGol+5LUOtmwAYfsp5/qaMqhQzUD5ubyrBs3eKenJ0TfuzdMV1QEs5ltaAli+vJLnG6lS6OtvPEGW4rbtxdPd9+2LYyUmwvQ3rnDvDk7A4pmZpVzHOaWnY00DQlhjsLDYUDJSzJsGM7ZkycBVDNAhIfrqEdpJ09aM5nZFzZSCs3j11+5/9o1tIy8PMZ5544uXzB5MvNZubKOgbh2DSY7fRp/Q8OGMP/KleyIPPss4/nzT9ZHKsAvX47QaNMGQJECWXv2sLY+PvhrAgPpY1iYjhx1ckLLzM/Xh9ek/EFeHt+LKXfkiAbNCxcwjT/+GDrv1Yv3fvYZ44iP/+vM+H+3PbGgceCA3rKz2WD26tWx7ydNwlmWlAQjZmayYGPGIGWuXEEqjxmDROnYEeIJC0O1rliR+5cvh/lLlEBSjxsHspcrx/NWrkTSFBTwrk8+gegkOnHtWrQhJyd2cVq1grDWrcPP4OCAavnCC4BYiRIAQGwsPpchQ5CYLi4QTLduEH/PnlZJphRaz+rV9PvkSe559lnGtWlT8dOwc+fyLonNOHQIIHB21rtNojIPHmzdJVEKwk5P1yrzsWNoTRKY1qUL2kxUFI5os88nOrp4vgz7rdacHObN0REtLS4OcChTBkC4eZN5j4pizWvX5i8uDh9Hy5YAxPr1mIOSH1QOl0kdk8xMdklEE5Aw9T/+0Nvgx48DXk5OfD57Fmnv6KiLMktqAInnkWjfI0f4/+uvIyiWLmVtRo8GICIieGZcHOMxx6OcOsVYlLKWTbh9Gx/GN9/Q327duC4pSZ9pepT2xIKGiwvMNWQIDJqervNI+vlBpFOm4A9ITkYi9e2LRhEbC0qvXo3EbdsW82bvXhbGxwcH4gsvoAX88QeL+sorMG1+PlLTzQ2To0QJ1PcVK1CDq1WDYBcuhPnN1eFnzgSoGjZEEp4/DwP166cZs0kTJOrhw/o0prTOnQG7p5+GIENDYfbCQiSi1PiUnZsaNdCY3ngDTSA8nOeeO8c7O3VCgo4fD5NMm2btr1L4cqR84rFjMNGuXVz//PMA6dy5eqdDwqaVgojtC1hHR+tAJqV0jtKLF3Fox8Yyrhs3WN9q1WCS2FgY9Omn+c7LC/NCDp9lZrKe5lgFHx+r72H9emsEp/0uigSOiY8kLIy1kPk8fpw5k12qPXuYA/FXeHsTqyJNihw1a8bfr7+yHk5O0O2nnwIgUVHQj7yjQQOEW2ws950+rR2t8fE6biY/H9/G2rXwgL0weZj2xILGs8/C7O7uEMnYsRD3tWsg9uuvQxCTJ8P8zz8PqFSrBmEMGwbDnj4NI27cCBH27g1DdOuGkzE+Hg2iZ0/tvf/tN+5PTeUacfzl5sKUU6dCzOPGYQJICPeVK6jpo0fzzqeewp7v1w/i+PZba9r9Dh1QP3/4geeGh0Ncly/DmK++yn59gwYQ7ciREJBIRMnv+dVXEHOJErz3ued4d0EBBG1uaWn8m5LC+8LCIOIRI3BOdunCe9u1g2DNGb7Dw4v7NK5f1zkvCgoAuP370VR+/RUtorAQsDlwAEAYOxamffFFHdh17x4mWs+e+tk7d1p3Tfz90YqkPcjhaX/4zNPTCirr1lnryaxZo6ueKQVzmj9v2FDcgerhwf8LC61pCuPj0YYEgPz8MJ3bt+fP05P7nZwY27VrCILoaMYuGfCvXdOgkZKig/vKlXtwhrX/tj2xoCGtXDmQXw70DBwISEiqvwUL+BNn1SefsJDt27NgFSrgaGrQAOlbsSIL9fHHEFNcnFVj2bULyVy5Mkzg5qaLMklKfy8vmNfVVef1+PJLCL5OHaTozp06EYtSmhm//lpHjl68yL+vv64dj599BvEPGsSWn9i/ycnYuaNHI9kzM3lX1678zZ5tPcyVlgYITpmChIqMRFWOjkYjq15dayEVKzJ+8xbjlSsQr7llZwMaOTns/EjinrJlMXecnNCw0tOZi7feAsRDQoqXPvz8c31yVClrpXWlsP+Tk621YLZutWZa8/S0bpseOgQIiVZw9SrrL6Hc9+5BJ6LZ5eTA6HJ2RByg8jk9HcEhzuqrVzEDZatZTrjK++wTEe/apYO/MjKgIQneu3qVtZHzOi+8wJofPgywlS4NkDRo8HgS75jbEwsaR46wyEVFOiVehw4w16hRTP7o0TBAixYwxOHDaAO5udz7xhs4HDt1YhdANIjMTK5p0wapN3QoUsHNDdB56SV8I/XrI/lnz4YgXFxQqV99ld/Fj/DTTzBRjx5IXhcXiHHcOBb89m0IKycHJ9eMGZgJjRrBHEOGMKYqVQCmhAQ0ISmvkJEBiHXsiISeP98aadqtG0y7YgWS6eRJQCIsDF9QxYqAaMeOvLdFi+Lp8KKirPNfujQMIzEV585px5+XF1pdixYw5IoVmrHy8xmLOYTaPnlObi7zYS5aFBjI3Eszh1orxZrZJwL297eeJN6wwRoAtW4da5CZSb/WrIE5b97UeWX79IG2HB0xfQYNguYcHIqbIvaxGps3W7eLd+/WEalZWbxTtKCQEOuchIZqALx9G3B89ln+LlzAx5KWhol96BD9btSIax+1PbGgIantBg1ike/cQXK1aKG94R98AFM1b87nPn1QD6OikFzNmqGN1K2LI2nzZog3Kgqfh6cnz3ruOSS+1OAsKgJoOnSAsJOTeVb79vwmx7eFiZWCUX18MA9q1QJYli5Fug4apKXRzJkQU6NGOrCpbVv61bQpz6tbV2f5njHDmkDm+ecxZ1avxhSIiuLP11cnKG7Xjr5KNi0zoVetyrjNoCFBR25ugMOFC6jJaWlI2xYtYB5XV/plTqi7ebO1bsrFi8UzhIWHW80kc+i0UjDwpUs6yVBWFgAwYgQ+qrt32RFxdkZDSU3FR3LunM7NUVioD6rZbPrwWY8ejMvZGbPp+edZK5sNP1jPnmidhYW8q0MHvhcHaYcO+gTzsWP0e80aNOA9e9BaXF1Zt/x8NJVq1RBgzz+vx7h7t7VCWnKyTlx06pRVSxQ/Uc2a9L9JE/w6ly79bwHo/9i6d4dYfX0JuomOBvkPHYIwrlyByPz8IOilS1ncDz+EWV56iYW9eBHps3Mn22xvvolU7tWLBY+N5Vkvvwz6u7piQshhJzc3nrNiBdrM0qU6hHvZMqRPyZL6cFn//kj3u3dZ7GnTAKSCAjSI69fxryxeDOg0bQqoVKmidz2kjR6NpBRHrUj8PXsg9o4dccQOGgRxnzihvfFK8d3UqfTLMJBSqanMaXY2zywsRKs4cwYmHT8ev4NUPDPb88HBD87nYD5Ra58vQyneWVAAQN+8ya5V9eow661bzEt8vA7QKlUKTbNOHdbD1ZVxz5oFqFeogIk5bZoGME9P7pddnNBQximRvhcu0HdxRl65gsYjofXXrqFRyrH5y5eR9mJenDoFUP/6K3O3bRtaRPfuAMCWLWgLf/7JmEJCoM/gYARPRATgHBmJmVKunD4de/KkdTvaMPScJiczfpsNQWNfWe9h2hMLGuZWrx7mxowZTPTIkaiuhw+jor74ItccPIiE//NPVPvt23Xd0/btWYDJk/EhODgg4b28QO/ISLQHd3eAqGFDzImnn0YKlCqFBGjWDC1EmLB+fZ4jzslJkyD2Fi1gDNmF+fhjgrZq1ND1XydPpl+5ufR/xgyIvkwZGFrMrFdeQcvq2pV7DIMdAtkWVIrvfv9dH6qLieHv+HFAzNkZCdisGSD3xhswtzjtJFmzNElIZG6SEEhaURHrceYMkj8xUReY9vPjt7w8gOTDD2Gqp56CId98k3mqVg3J3bq1djiHhcGEX33F54wMzEOJdxAtwhzj4eHBuktbu9ZaLW/NGtbd/PukSfqzm5v1XIz95/XroRObjTkICgKgJXZi1Sr6ULo0/RswQOdxjY9HkPXogS9j2zaEypgxgGlkJGbJ3r3MSWoqQFq7Ntc9rvgMaU8saISHY5/fuQNCiy3n4gKxdu/O3+3bmCbly7MAkr3r7l2k/j/+Aai4urLwM2ciCbp2xVG5eTNqYEAADDVlCoyWkYFUuXsXhl+wACbbtg0C+fNPACAsDJV5yRLto5g2DSaYMIH7u3bFTImNhajE7yG1UatW1Uf8N2/Ge79ggXaAffAB7+rVi7HfuoU/5s03kbxxccxTcjLEOmgQYNe7N1K5VCmrapydzfjs67GaJVyJEjzz2DGkcGIicyR1ZpRivmNjmdeaNTHLHBxgJolL8fPTu0FK6SxhZhMnJMS6jWu/TWofJn7yJOMXwLx1C1AUKZyVZU3iU1BAv+VoelERPpPPP9fj3rNH+1SKiuiTlGcsLOSdks8jO5t3CjPfucO6CqDa5zyVyFfJeRoaiuNc+jdoEDFBly/zm81G1PK1a2hYtWujZTdqxBo/antiQSMjg23Mjz5i8i5cQHI2bAiYuLuzMAMGQJhz5sDko0ahfRQUwGSlSiH5Fi+G6MuX51kDBuAbWLWKBR05EmY9dAhmCwzkmo4dYV7JrFS7NsDQoYPO0+DggKO1fn0kqWGggi9bhvSsVg1g8/CAQGbN4rqsLLSIjz7Cb1FYiDSdMAFfguz1p6WhaSxahOf+qafwe+zaxfVTpwI8RUU6v4ZsjbZpg8khoGEYaDdbtuhw78REgGfwYO2jKSpivoOCGHfTpsz9p58CiDYbBL1mjbUIkeQ7kXbsmJXhzflAldLjNG/lhoVpLUMpHSYubeNGayLgTZusn+13MQIDERwCiPaxGrLrIiAkWbbk9z17cLjL/ea6JkohSEQLUgpT2JzFLDjYOkexsfpAYXY29FWpEn937qCByLbvtGnMuQSIbd6sHrk9saDRuzcTu3YtAPDyy0i0+Hik98GDENfly5gphw8DDsnJaAbdu6OOhoRgx771Fszj7o49O3Gidux99RU7K3Xq4Gw6ehSQ6NcP82biRJhu61bA7KuvtDSoXx+PeUEBksxmQzMwDIjT3V2fCJ04kc/BwWzV3r0LYY4cCQjUrAnzP/MMAPj++2wb167NjsmkSTCMbCG+9BLfDx3K++/cwfk2cybajSTYiYpiLKK5lCmDNKxVi78ePQDoYcO0h7+gAAAWaasUfiHsrOMAACAASURBVIOnntLMk5jI/dIKC4uXPTh1Sm+XK8V8ms/n2G+1XrjAustz7t1DOxGnob3UVwph4Otr7ac5pd/69ayvtLVrraC0Zo3WOpRi12XOHP1540ZrbIeXl3Xr19fX+r4jR/S8GQZaiQTASUFymcPTp63FoMyFopWCnqtWRYupX7945O7DtCcWNMzNyUk77Fq0QKpEROjttVdfxb4vVQopsXAhE3/1KkTZpw9Mm5mJ5B04EMnh6UkMx/LlaBxPP43UCgzEPzB7NpL7p5+w2597TlfC6t6d60+f5ppevfBhXLoEwPXvD/EPG4aU7NIFcPjuO8DkwAFUUimVOHUq2ss770BY48fz//LlAbm7d3XwVY8eOlFQTAzaUL16EFTVqoy5Rw/6KCdoY2OtW5oDBwJKIl2vXtXBYjLnUlpSmr1Pwx40zJGMSuk6Mubs5WFh9CMjA5+RlxeAfPYs8/Dnn6yd5KIIDmYM69fzrNOnAb9Fi3Qi3/R0ALuwkHm6fBkHrmHwnpMn0SoNg3eEhgLKUn3vwAG0QUdHnhkSwjgkjDwsjN02KbcpJ4FdXOhjSop2cKamMkdXr9LPixcxa8X0sz/AJqn/pMXFWU+yZmc/nmTC5mYzHkNF2L9RLKmEUspNKdVRKZWslBprGEb8/d8+VWQoL1RKvW8Yxq6/el+nTp2M8PDw/3jNqVMw0qJFSMb330dKly4NsU2fjgRQStcuEUeXFJipVUufQ9mxg0WbPRsC6dkTAvzhB51oOCgIImvcGAaJiuL/VarAEElJMHbZsvTPxQWtoKgIsKpUCQkvhOjios8anDyJ1G/dGimang6jNGqkYw9iYiDC557jWQ4OmF6SdNjVlfckJGBuCdEOHgxTSSCU1GmdOZPPBQWAhDl36McfA0xCsBKQ9sEHjD0rC9X4q6/052++wY+Sk6Pzkz71FHEgWVkQ/L17OngqMxMGbt1aF9WOjGTOSpbkb/duQLZECf48PACR0qUZ38qVvLNSJZh26VKERJ06ANvSpbouqqMj18s5HpsNraF+fb39uXEj/R00iD55e+sSiYWF0El+PnNaUIApkpODdiQ0kp/PGknd2qIihJEAkrMzc5CdjUZXurSO5LxwAeEin0+fhsbKlOG6I0cwpSpU4LOHB7RfujTX/PILWvVfNZvNFmEYRqcH/fbImsbfLJb0hlIqxTCMxjabbZxS6nul1FibzdZCkVO0pVKqplJqt81me9owjMJH7dft2xBgUBAEeekSKqMQ8JEjOtYgPx8m9vHRx7379YOBS5Xi88iRSORKlbC709Kw0adORcv47DMIKygIBv/6a5j2u+8ggN9+AzjmzUOrmD8fE2nFCpyt06fDAJs2YUa88w4EtGoVv3/+OffPnw9BTpoEU0nhpY8/hgn8/NCApkxByxg4kHslsXHr1jCeJBPKzcVH0b8/5kpuLsS6ZQvOv8JCPl++DFAKsd66xbtEMzAMfBRJSdqpd+cOGl2pUlra1amjP586xdmcxo35bskStBsJyhKVXc6C7NlDn0TjOX0aIPz5Zz4nJgKIUu09NZX1mDaNz9nZgILsehQU4DB+7TWdKNj+MFpEBGspTt+jRwEG0X5CQwEOGd/nn+sdIKUQKm5u2iRctQpzRubR15fP8vvIkXqbXinMSw8P7bOR2joSGTpoEOtQVAQ4DR/O+KUcQ2AgpqtUuTeXBX3Y9jjMky7qL4ol3f887/7/vZVSi20kCx2ulPK4n538ss1mu3j/eUcetVP9+8PUYhvGxcG4kr9CfByy2EOH6pRzBQVIhnnzIB4JqX7/fYinfn0IadYsIi1ffplrJ07kc/XqMPrgwWgCJ08CKD16wCCenhBmp04w3bJlEFebNvglfvsNqdy6NbbskiV8btsWrWXjRkyozp153+XLAIAk1mnYEEbo3x/AGjKEZw4ciIkyZAjAV7OmNpPu3dNbsSVL8u64OJigZEm2PZct04WEUlMBHi8vPhsGc2hObnP6NHMkzdvb6tT8/nskujBATIxmcKVwgprPcezda3UY/pVD0f6zfc0Rqdwu2tOBA8yj+EOOHUNQCGCcOqV3dZQCYGrX1jQUH896CMMnJkJvAgh37jBWAYzUVJ33VSmY2jD0/dnZfBbAyMvjepkv8QHZbGg7pUvTN/MWa+XK1vM25sRBD9sc/vqSv2y1VPFiSbX+3TWGYRQopdKUUpX/5r1KKYol2Wy2cJvNFn5HyqT/F616dWsIbevW+Bmk9e+v98WdnJDU/v6gdOvWqNn+/jB6//5IKC8vPr/0ElqMjw/25/jx+Dr27IExX3sN0+fYMe3QHDeO9xcVcf3IkdivmZmA0LBhgMGdOyz68OF8vnYNQBszhusvX9YZyc6e1cmA338f1TYhAVCYMwe19MYNCH3uXGzv1FTMsA8/RPMpKODz66+jkeTmQpCtWuHXyMlhjipWxEQqKpL1edCa/efPBQXWRMhJSdbyjPbRofaJhUNCitcJMW/Fbt9uTcFnf9bEfORdKRyc5tiK1autsRmrVlk/28du2Mdm2O/KeHlZq8Pt2GHdJQkKsvbfvg5KZKR1KzYmxppH1f7EcFZW8QOCj6P9P+MI/W+LJZ09C0hs2cLkJSTgvKpeXfsb9u5F0mdn4wCLidEBPpLiTWpfKAUTnj2Ls7BECTSQadNgWvE/fPwxErhsWWzrVas4n9KyJcCzciXmzsSJ2J6enpglH33Ed+LJf/ddTJ/9+yHuiRP5vG8favuECRC5lG98802cr9u2Qaxvv42WtX49148aBYGvWIFEbNYMqTpnDhqIiwsmzJAh+AxycwGULl10bovERGzxGjWYk0uX9MnZ0qX5PH8+JlyZMly/c6euZH7vHteIfW12pxUVWUElN5c+yXfp6Wg8IvVTUmAIkfrJyfwummRyMteKFE9O5h0CSpIYWJgsLc0aCJWZCUA3bcrnnBwdsq8UgBcW9u9jN5QCBKQ8o1Ks65Yt+rN92sGdO60nbIOCrKB28KCO1VCqOIjKzolhoJXExTEnsbHQfHY2a/Co7XGARqL662JJcs01m83mpJSqoHCI/p17H6olJDBR6ekQV+3aEEyfPhBt374wneyaSP3Tbdv0jsD338PsolLHxyPB163T5xNefRXm794dwtm+HdPjyy95/8yZOGMvXMBUaNqUxZ44EQ3GxUVHgtatCxFXqgTxOTnp4C1J5NKyJcy9eDHbhi1b8vvXX/Msidj88EMYoHZtGGDBAjSYV15BI6pYESDp04ffduzguz/+QO19/31tcqxezTuTk9n+3bKF37y8mOdx43SqvHr1cG5mZjIf16/rLOSJiQC3rMuJE3pus7PRLORzaqqunFaqFP/PyNDm0oULaCl//snno0cZ665dAElgIE7aqCiu8/Zmza9fZ17Xr2dsGRms96ZNzIeAl7e3VSvYvt0aUervj1ZQUMB8hYRgLqal8TkqCv9NYiI+sytXeO/Zs3rH5MYNtAnxI4WFARw5OXzn40NfVq/mu8BANI3ffqMP588zZjnbcvUqYwkNZQ5ycnj/kiXaz2Qfpfsw7ZF3T+6DQIxS6nkFw4cppcYbhnHWdM07SqnWhmFMu+8IfckwjDE2m62lUmqTwo9RUym1RynV5K8coX9n90QpCFD237dtQ/2Vg0+Ggdrv76+vnzsXAJAtreRkkH7RInYubt1CJS1dWpcDlJolEsRVsSKEc/ky73J1RetYvhypPWkSNmtcHFrJr78iLXJycPDduoV0kjiNTZsg3oYNucfDQ9emTUyEgXv2xHkYFYWm8u67+Ef++IM+zZ2LQ2/BAnY3SpTgvRJsdu4c9rpIrRMn0EJatoTIYmMBpTp10FZ+/x2NLTmZd7m7c9+KFXwvJsHIkRC0mCBDh+q6IfHxgJ5UX/f3RwuRyE45JdynDwz1+eesTf36fP7XvzDrypWDwX76ic9OTnrr9aWXYLq8PEBA4jvy83UKA6U003fpgo9AtMyOHbUACQ9HyzDXaG3TBlpwcGB+W7dGs3F05PqmTRECzs4IiurV8Sm5uGjTtHdv1iM+nnWYNInPmZnQjFS6L1ECQePry2cHB0ybLVt0n774AmCTcyhSo0d2wex54j+1/6u7J3+zWNIqpdT6+47Ou4odE3X/Ok+F07RAKfXO49g5eVCrVo1FkZaeDsMHBcGo169jnnh6Wu3oixcxK1q1YtGnToX5vv8ehitRAoKQRDaiTq9ZA+F8+CESZfJkEP/gQUyipCTuHTgQZqxZk92OnByk60sv8f2UKfSpVi3A45tvCBKTGp3t2wMkS5dy37hxAELdugBNVBTSqW1bnj99OrtCvXph6jRoAINKDtRvvwUkpk7Fd3PjBgz922+o75cuwcjNmqFVREYihRs1YgwxMXruypSB+B+U+MU+RuPcOau9fvw4Yylblr+EBJhEmLqoSCf4ycwEXCUH6+3bzL0cNktIAOCXL+dzTAzgIofPoqPZipTfY2PR6iS7eEICDCmH0+7c4YyPOIEzMujrjh18LihACzHTw4ABmInC4GPGsGaVK/P5k0/4E4bfsEGbtdJHASmldAyL2Sf0oMAuef7jbI/Fp/E3iiXlKKVG2993/7evlVJfP+i3R2kxMWgHS5Zgm0ZHQ+Chofxerhz23b59MNSzz8Ko06ZZkfjsWZjKXDkrNxeCef99iF1S+PftiwkkCXUvXwbpBw2CoebMgdlr1YJAnZz0WZN27QCW27eRQvPmoUHUq8fOS2goOxFyJLywEKncsqUu+Dt3Lr937YrqGhKiz864u/PMjh3RFurXh0i/+oq5sdno6+7dAMpTTwEGc+cCuD4+EHleHhrDpk2o3Bcvcl9oKP2WKnSurvRh3Tq9S2RuDwINs/2elKSjF9PSWC/Z1bC35e0diFu2WFMS2hdlXr/emlHM/vDZ2rVWB+e6ddbfxackbetW6/v27rWm+LtwAWYWBs/IgIbMDB0ZqTOQK4WvSvwlSunQdGmJidaUAkoxT2aAvntXX5Obi2DMyFCP3P6fcYT+t+38eQi8fn2cd+XLw7SiSiuFrViunNV2bdAAySIBRvXr6zMSN27AJLduYZKEhqKCNmiARrBwIXH+IjENA+Jr2xbGvX4dJv7+e4CkVi2klmEgyVeuBHiqVcOxuXkzhPbKK9wncRpLl6LmpqRAzBMnYo/fvKnzgnz6KTawmxsO2dGjUVObNOGZc+eiLQwahCYxcybvGzaM+zMymK+oKPp3+jTg1LcvhCjO1FdfBSQnTwa4XnoJiXv3LqBmGDgIJTXA4MFoWHfvos5Xq8b8JSbqYkV371oTHYeEWNP4PWir1XwE389Pn7EwDJhYon+Lilg3CeuWiE1h0MJC/CMSJl5UhJloPpzm7281a729daCgUsXDxt3dWcN/1/+LF9EKBWQMg7WUuiVKARpmEBHgNAzm6/p1aGnVKn1iOCQE8F62DJOoVi18RY/anljQGD4cJpTFMQxMEnNr2xYJOmqU1kaUgkHLl+ee0qXRHoKDCbh64w0IPTQUs8F8hqF1a+5dsABCiI5mkSZN4rcmTZA4r78OUT/zDI5FIRY5qv3++7rE38KFaDtt2kAcZctiBzdvjlQpKoIh5s2D8FxcCO6pXBkTpVQpnLLDh/MuLy8Aad06tgdle3X2bObLwYGdl4ULYfT165G8Pj7c6+ioHZZyyvbQIcYo4fpKQawNGwJAbduiOXz4Ic/KyeEdrVph7gQHo61IDIU4J5csYQyenmhjEkodGqoDuPLzAXGRqDduAG6yixIVhTYmuy4CQDLnQUGMw/x5wIB/fzgtIsLq20hIYKwSW2FfjlFKE5jznPj4WEtA2tdmOXuWeU1MZGw3b/Le1asZ340bgHiVKgBQ5co6vWSlSsxrrVr4eaZN0ztASlnjZB62PbGgYd9ktyM2ViejEVU6MhKiE8l77RqquTjB8vPxPUhosVKo3F9+CXPduoUKKvVLFiwAXMaPh/GTkpDEixbpQ1+9eulYC2dn7NGMDMyqbduQ6DVrwow7d/Le+fMh0Kws7v3Xv9BqDAPzqVo1AKSoCJu7UycA4eRJmPT55yGihQt5h1JI0CFD0Ew2bkRKr10LgFStCsGPHk3/b93CrPr0Uxjto4+QyseO6dDl+HgIvF07q7de8oMqxRzk5CB9y5fX2eJl+/GzzyD0ypUxgQ4fZozffouaffYs5sFTTzFnZcqg3VStqmM1CgtZP/sTrevXWw/ArV9vTT7s5qYjTJViLszboGvWWMstuLlZTR37Y/mRkTDx7dtohjdvsta7dgEuycn0oX17NEilMGsrVGC9q1dnHl1dAeAaNRj3xIn0xVzaslQp6+nclJT/wT6N/4nt8mUQecECACItDWJevBjVvnt3JO4//gGjmNvq1QCAgEZGBov33ns8JzkZFbtBA3YrfvsNcJDtU4l1qFsXZrl5Ux8Wq1sXpq5UCeDYuhWJIJXqDQNTp2dPtIPcXPwQM2cirRo3hgBdXWGOli014WzdChHXq8dzAgKQ1pLEeOZMwGz2bAh0+XJ+GzYM6VmhAhqMlJT8xz8AuhEj0Jru3QM4330XjSk9HWD08+M6R0ccgpJKMDGRdXBy0mcjpKWn6/yX589bc5aePw9jS57R/ft1SLmHhy7NePMmfplevVjrqCjG360bfo2CAgDt/HnulYQ1eXkwmM2Gw3TJEn0O58wZ3iU5WSMi0AoLC1mLXbuYp9xcfvfxYW4WL+b+8HBdYFzGUr8+jtSKFTEj6tcHONu04b0nTjAuESgjR9IH0Za2boVezGkbMzOtFeDN6Q6lpaRYfRzi/H/U9sSCRkQEhN+vH8xesSIqoJxOlFa2LJMp6uXdu0hsOS2ans69detqojQfLx4zhntdXFjIyEhMkZ49YUAJye7dW2f+Mh/lHjcOB+cvv6A6R0cDKm++icQTM6NvX23SDB9OHzMzMTE2bYIBi4qQqm+9hVSSlABffEFfdu2CuCdOZLtx0CANFitWIOn9/JBmrVrx7C5dAMyyZTmv07cv83HlClLtvfd49tGjgGXPnrxbylympKAF7N8P2FWpwjUSSaqUNcWfFJsWgJGM3dICA/E3lC0LcN27Rx9sNhgyOloDzIEDOLolheGmTQDi+PH6HMrUqWhgeXn8PmYMYzYMtM2RI5lzR0eeNWoUa1aiBPTg5ITGV6YMGuXMmdpvVlSkM3AJzU2cyDaqOIE9PXmHAIZUUTPX1w0NtTpi5Xi8ucXF6cONKSnMaXw8oBobCy2UK0cfH7U9saAxahSqpfkYcYUKTLg51r9sWaSaVDSvVAkmuXOHvX5z7csXX9ToXlSEBvP005gudeuy0O3bwzQCEGbp0K8fjOXiondz4uMh9kmTULk7dICov/qK7zw8dNbt114DBDp3hhBu3YJQunWjb1lZWtp36QKRlCwJWI4YwRZujRqYZHPmwCy+vhDx3LlaDY+MRBtZsAAiq1cPYAsM1PVw/f0ZT8OGaCzr1jGOqlUZU7duzGXVqvQnNBR/wbPPskMjTtEOHXifFDC6ds26K7B/vy7PKMFi8rs4A4Uh7XdN3N2tpTC9vXEUipP16FHMNGHYzz/XVeeVYjfDx0ebVQsXokXJ/T//DEiINPfwsDo8JWGQ9C8vD7oy7xr5+emtYfM95nbunFUTkxwa168DDtHRzH9gID62ihV1KsYpU3TpTKX+16fxX7WCAqTH4sUQ9dWrMHmJEqjuS5ZoYigsZHLNgJGeDkBMmIAkKChgYbp1Y6E9PKyqYPv2MPkvvxBzcOwYKmReHpJ/+nSkgDjMRowAfCQM+MYNGP/FF3nvtWswTWEhqvkrr2Dbdu8OEFarhu+hTBmcc998g9e8sBCGXbOGvrdoASB9/z0gGRWFSj5qFIy8YoUuVykO32++wWdSrpzO6h4RAfE3bw5jjRjB78uWoa2VLg2hijqcnc189u6N+h4bS58iI2H2+fP1WZYaNehT8+b4L4RhoqKsuSO2bbOeLQkM1Aey8vKYb3EC3roFGMgaR0drM0EpfALNm2vAOHcO81MAIzGRMcn92dloW2YnY2CgDl5TCs1QqrsppbdipRUWYmKZQWT3buvOSlIS7/L2xt914YI+Lh8fT5+bNUPQBQRYyzocP148SfPjaE8saCQmwngffQQB2Gz4I1q1woFZqxbfnT2LRmLe4nN0BKXd3FigCxfQMNq0AeUDAqyJYRwckGDvvQczHToEkFy8iMQeMwaJJDbnkCFI3Kee0rVZe/RAlW3enO9q1kSaCEj06KF9LG+/jZQXLWbgQP7GjdP+kqpVAcgBA3QQWlwcJkWnTjC+r6/O9dCgAaZK7974SsqW1aUrpQ7p1auA3+nTXHvgAO9ctQqgGzcOEPvsMwjazQ2gaNfOmoDn+nUdKdmlC8zr5cUz/vlPgHTtWt4TFQXAtmsHwNin/vvyS/5/4wbjFia3j92w3/aU3SPzZ/tYDXMB6g0brOn/7VPyRUfr3SulildPUwpwlF0fpZjLrl3RSi9dwv+zeTMCQrS+rCyelZUF4Lz9NvM7Zw7arTSpAStNioebW0GBPnD4KO2JBY0DB9AIXnsNRnR0ZGLr1LGqv02awLSJidxz4AAEn5LC/v077yBNRMUMD0eKlSiha5eePEk49L59MGT37ixuTg67F+bAotRUFn/wYIChsBBNonNnVPTx462Zl158EdNBnH0xMfR5/HgIToJ1cnL08fuyZdF6Vq7Ux6urV4fY/PzwhcTH42Dt0QNnakAAPoiSJXlufDxMNmoUoLhxI5rRkCHM36lT+EiGDEE7iYmBMceMYYzTp6NtbdvG7sDu3bxn5EjGITEIaWnaXLTZWIdFi2AAf38Ae8gQ5jggAOBatIh5k7D+xo3xfZiPwW/ebI1rCAjQWkBhIVJYzAJxgErAWEEB4C95OQ0Dv4Q5O7l99nL7XRopbpSVxXivXgXktmzR1efOnGFdLl8GcGRn5OuvdVrEH3+kX2Y/2JUruriUUsUP+ykFXdhsgLE4g202NJtHbU8saIwfj2PLjPRVquhszImJMPn+/WzpffEFi/zpp0i+iAgW2Fy9vKAAVXnKFK12d+2KpC4qYmHNVbDKlsWR+e23vC82FgaRYLNly6yqaf/+gEy3bkjZyEj+jh4FiJo1A8CefhoG6dbNetR7yBAIXU5y1q+PuSJbglWqoL0MHQqYDBnCTsiZM2hkgwfDrH5+MElSEu+8fRvn5XffoSZPm6bfW7IkhN20KYy0aZN2tpUqhfSfOxdfQHQ0MShxccxBVhagIHMsodEiMQ8e5D1NmsBEHh76lOjChVxXuTLg/uefrPXatbpGysKFmFiyE3boEGAq9XnT0uijfY3XXbt0OYSCAky0Vq1gfjkxnZpK/1JTMcc2bGDcv/6KMImKQnuLigIgc3MZxzPPMKZatXhnYKCOAfHzwydjPt5+/DjOWmkCEGaQuH4dEzsoiOtPnKBPkohq0iQtOP/Xp/FftBs3kFZ79kDYtWoh2efOBUiWLrWaHFIpPjYWBtq3D/Ru1owF2bnTWiPzqaeQXO3aoa3s2QOTlCyJlFu1Cokoi928Od998QVSPTSUv7NnUat79sRJ+MknSLh//UufhVCK3ydOhAANgzEMGgRTDhuGfyA9HYZOSNClGz7+GE2jZk3MrTNnMFnESTdpEn+SfXz3bkB14EDA6+BB1PSXX0baeXigKr/2GlJsxgxMr2HD8LEIuObnA3w//MBuRno6Wkx6Ot/n51sLFyuFNiORmfZlFg8c0EmTbt2CUWTXYvNmGGnoUBjnp59Yz8hIgMLLi3V69100tNBQtKDdu7k/MhLhcOAAjHbmjE5tUKYMn+vU4dmVKvHM3r0ROFWrYnYNGgQTS5s5k3FLAe/ERMDBnEh5716rSSQBiWbfWnw8tCuJscPDMW2ysxljnz68KzaWeTCXnnhc7YkFjTt3AIq330ay1ayJCtixoz5ZKa1hQya+eXMIYO9eJEBYGAT3wguo+uLofOEFa/aksDCu37EDs6ZvX6Rxs2aAhISMS4DZhQss6h9/wJANG6I1zJyJWv/dd9aAIqUArDNnkGbnz/N39izgUb48WkStWmhIL7wA8TZsyO9SfT4/H1U1Ph4VNycHP8zKlTgxIyLQnL7/HgZZtAjzSELHmzfXv7m6IuU9PACi2bMBnm+/xUT7+mv+Dh7EJ5OTo/0N9+4xP08/DeNmZSEBCwvRhPLy+L+Li/bjBAXpOqdpacy/+EjMx9aVQhv54w/moFEjtIFvvmH+MzIABQGYpCT6Ig7UlBS0PYmzyM0FAOUwmqz/ypVaI/rgA8BSfAx791rD3g0DjcOcNTwgwOrwVEqDk7QrVwCWgwdZmxMndOKoevXQliZN4lk2m9UMTkmx+umkH/9T0v39j2y+vjDJrFkQjs3GIpgPBSmF9HVxgcDF6//880h4V1cI3uyxVwowmDcPMLp7F2fewIFIoZYtixNDz55oADk5gFmzZhpYunWzOuyUQnJeuoSmEhaGhnT1KlJo9GiYt39/+ubvbz134ejIeOVwU9WqmAbixXd0hKglduH2bVR7mw2mXLwYjUEyZs+fr4FtxgzeVaEC/pHhw1HbXVx4hyQhql4dtf6rrzB7li5FbZbUfzdv6iTGcl6ibFnUcMMAAPLydPqBqlWZC8lSJWn6pPn56dgMKVkgsTShoWg+ouHZR2x6eFgrw23ezLxKszddoqPRhuwdnmZA8PKyJt85fRoNw2xSBAVhnkpLSkIr9fdnvaOidM6QgwcRduPHA1a9e2PeSUtIsJrFSunArthYbYYnJ6PNPWp7YkFj8mQkjvmYe6VKTKYUBA4M1F53V1cI3+yB7tQJ9a9NG1De1xcVXXYo/vjDmp6ualU0k759WejAQAimWjV2UnbssFYtb9sWphwwAAAKCeEvPh7TY+xYfvv4Y9TYl1+2nrZt2FDvHiiFFO3UCVte7Nm0NEypqlUZm5MTjNG6yNMGfgAAIABJREFUNdrXc88RcfjGGxC6RJX++CMOzNRUwPbECfqfnIy0E5VcpF9+PoTbvj0mV8OGjEGOoL/3Hu/ds4c5N5/VkNiXmzdhOBcXQNvRESmemMj7du2iv76+2smZksI75Hk7dli3YTdtslZf8/bWR9yVYm62b9eft29nDqS5u+u8qEoVTxEoZ1MEEAoLWUvzVqw5V6lh6FrCHh7MXXw8Yy9dWud7fe89gP3NN63bpmfOaI1LmhywNAyetW8fgkCCDfv2RWusWvV/fRp/uxUVgd5+fhDt22/DjF9/jUp/8SKh4GbAyMyEQX7+GULu2JEJ/+ILpOC4cVbAuHaNZ2/dCpH36IGdL9XEBg/WuwRK6ZoqAQFIzSZN0Ei++QZm+fBDCMfcypSB4ZKSkG5nz0IkvXvrlHp16uiDcuXLo9527Ki98/n5jDkhARPn0iWY0dsbwgsJgSgnTEDaycnXAQOQ9FWqYDp9/jnP7NyZuRo+HNOmbl1s+/Xrebbs7pQpo7duBwzAmWzefhTVWdbgwgUdWr1ypTbLVq7E11CmDAB544ZVs/Px0bsa+flIWmG669etiX7Pn0drEN9UbCxmmJhRycmAgAC9YaC52NeANdeDkQNx9+4BHpcuoQVduoRpJ6UYypdnrgYN4t/p0/VOnbToaOtnpazH3w0DkDl2DL/SrVuMR7bNu3e3xoU8rvbEgkZaGgT1+uswcfv22OdHjhQvTVe3Lsh/4wZSLDAQ9bp/fxhtl10lllKlUIGPH0edPHIEdXvIECTKxx9bNRylUJF/+EETf+3aMM/48Tgzu3a1Xn/7NkQfHQ1RHD9OvIkcXW/VinfJe8wxB4mJODeFuFJS6K84EuPi6K9IvxdfZBwJCbxj5kzm79Il5mTqVO1M/fxzYhoaNUJT+uQTtKsaNfRZlzfeYC6aNkXjCwvDNCtZkv62b4+pIyHOZ86guclOkhSGFmbev59dCake16IF7wgLY04bNQKsnZ2ZWwHAhATAW07Hurv/57wa9p89Pa2mypEjrFNKCuuTmMi6bNuGELh2Dc20QQMAvWFDxtWwIYBZvTr9+PRTtEYJ+1aqeJLg/HyEh9lRmpfHPK5cCTjdvq0dx999Zz1KP2+eVUhJsy9g9TDtkUDDZrO5KqU2K6XqK6XilVJjDMNIsbumnVJqqVKqvKIg0teGYWy+/9tapVQvRXZypZSaZBjGyUfpkzQPDyb+X/+y7mmbTzQqBVP6+GC3f/SRzokpEx4QoIkuP5/FkkNKS5dCvF98Ya2+HhICcyQk6O3LlBSuWbxYO0iVQoodOAAx5uVBhPv360pZXbvy9/nnMLKbG4wirWJFok7NoNG5MwzVpw8Sr1Yt3vvMM7oQz65daAc2G32QCvajR8OE/fujTUnKwtu30Yy8vPgLCyNGwt+f95crRzj5229jjtSogbbUsSMMHx2NNM3Px5xo1YrPO3ag5Z05Q78NA4YTh6BhWBPyiI+hfn367eam4y+k0FHVqoDf8uVocEOGMM5jx/A/LV+OKSCMJzlffX0BghUrdCGjjh0BE6UwNRs0wDcjOVNbtuSaESMY88iR1l2TpUsxMcSHoxQmnbmso+QPMfs8zpwBHMPD2SoODQXAMzK4duFCQEgOSJoBQyk0TTlYd/Ag83b6tLUK3sO2R9U0Ziul9hiG8Z3NZpt9//MndtdkKaUmGoYRa7PZaiqlImw22y7DMCQdyEeGYXg/Yj+KtalTISYzYCiFFJMzB+HhMPCIEaC+uZ6mtJo1IcbQUOzOnj1RI6VCljmbktSs+OorQKtOHRbUzQ3tZMQIq31aVMQ277p1EIZh6CCv+vWRCuYoxYICnfNDKQjozh1AZ+5cQEqOW//5J2MrX54+hYfDDPn5EJK/P2aZUqi4kyaxBVqxIoAwaBCg4uxMn/r25Zo6dZCUd++iAlesCCB17QrDPfUU9376KUDn4sK89urF/XPnagCIiwPIRo3CVLl5E7CqXl07H80AohSgKk7c3butQU+7drFWlSqxBRkUpHc9zp8neG3JEuY9OBgNc9YsTRPOzjh4S5TQYeNr1ui5f/FFXeZCKcbz7bf6KIBoIuYWFGT1ocihPREySulDecnJ9OPIEV3G0cmJ3yZPBrTv3mW+pKWmFk+neOUK8xQXB0317Mn9rVpZ83Y8bHtU0BiulOp9///rlFL7lR1oGIYRY/r/dZvNdlspVVUp9RhyCP29lp+P1PDxYTJ37kQ9lILLSsFk9+7BZBkZaBhbt4LOjo44LM1huzYbEuvVV1l0Hx+kW+fOOPbMQTvSDENL7MBAmKRdO5ja09Ma91GlijW9fVKSjux76SXU1LJlYShnZwCpbl12HBISkERmB96QIZgR0gYP1mkN/fyQfhUqoHG5uwMknTrx7yuvAGQTJ8Jk8+ahkVy7BhAFB8P8y5Yhyf7xD/ouxG2zoe3861+EiRcUsCYS1q4Uvpnly5mD55+HWXfvxgchCYFv3NA1U5XCaSnFsO7d00lolNKV3qWZw8gdHFjbmTO1BrB7Nz4k+SzlG6Xt22eN1M3NZf0EMJTimeZQdcnIbj6Runs3wJibSxxKWJg+93TwIGbs8OGM9csvrTQXHW3dylWK+ZZDiAEBOgt6URE0LdnQHmd7VNCobhjGjfv/v6mU+o9dtNlsXZRSLkqpONPXX9tstrmKTOSz71dbe9C9byml3lJKqbrmmfw3LTOTiZ84EUbt3RtPvCyG2empFJO7YgWLmJ2NtPz1V5gpLs66eHl5SGlvb4CiZ0+2T5s3h0FGjLAWLr5wAQI/d47+SIJgseElZZ6AhjjLgoN1/ytXhjEbN4bIzOrumTP4D+Q4dc2aOm+pNAcHnZjGvtWpg6YzahR/MTEwuKenPj/SoIGubTpjBt/Xr8845s9nh+njj5FkGzdyz/LlgKKk6a9fn2vc3JhfR0edhs98+rhcORggLo7nnTnDXJQuDcMpxViuXtV1Svz8rDsD3t7aFDUMwFA0lLw8wFCcjPn5utCyXL93r9XB6eFhTd4jzC/NMNipMJuOogllZSF8Tp7EsV6zJkKmbVuETLVqML1ZyMydW1xLPn9eR4dKIp9Nm9A2KlcGrGVrd+jQBwOGZFZ7lPaXoGGz2XYrpZ56wE+fmT8YhmHYbDbjAdfJc2oopdYrpV4zDEOyKXyqABsXRSGkT5RS8x90/39bLGnNGgj1m2+sZ03KlSPKrnJl/vX1RUJER0MEixdb82U0aoSKmZenbfrr1yGGxo2LO0mVwizYvBmQiIjAwTV8OAxTo4Y1EEkpiHXfPnwW+/YBEk2bAmw//mhd/IQE/CNm0KhVC5B4+mkIKD4eLWDDBp557x4q6wcfINFcXGC4JUsYQ7ly3CPNZkOCfvQRGtozzyDRQ0OR2BUrYn688AKaQvfugK2nJwDq768T33bqhIaTkIBGlJyMBtCvH/6HefN4lgCmOXFMgwaAdWAgczl2LGbWzp1836gREtXBAXNTNKvMTMYt4dgREbxLmNIcJq6UTvEn7fRpVHkB2NxcxmNOcuPlZd1FOX0aH8T58zoz3Lp1MP6BA+yitW3LWu7dqzXczExo1d7haS4UpRS0eu4cAk8SFb/wAk70unWL05S5id/uwAHA8lHbX4KGYRj9/t1vNpvtls1mq2EYxo37oHD731xXXinlp5T6zDCMo6Zni5aSa7PZ1iilPnzQ/Q/T3n0XYrPP2FyyJIR/8CAq/tChqKLBwRCgGTAKCvDub90KMfTrhwQQ6RYWpuMMCguRqN7eMNqFC0gmswm0bx8ErBSEcfCg3gauWBEnohkkBg+2xnUohZS6ehVbV06B7t2L6eLqirSuX5+xOTlB6OXL0/+BAwGY/HzMNBcXvr9yhT4PHMh8Xb2qs4XbbBDnU0/hqxk1SseDtG+PZM3Opt/vvotTcNYsdnk8POiDlxdE/u23aENylLtdO8Yoh/eKipjTzp0Zq+SNUAoQrVkThk9NxUYvU0ZrFzExaCfCuOaALHd3q6nh4WHN7erhYQ3627TJambIiVlxyl6+zLz7+CDxr1zhndWqAQAtWgBC+/ezNtJiYgAOMxgcP64zzEuTtABHjkCXR4/qFInvvYdwMOeVtc+/YRjM0Zw5PL9pUxy0H35oDWx72Pao5skOpdRrSqnv7v+73f4Cm83mopTyUUq52Ts8TYBjU0qNUEqdecT+PLBlZyP9vL0hyho1imsU1aujPhYVabv+4kXs2EaNACD71rAh10VGAi5yunXMGJ5h3lJTCobeuRMGz8rSDq7hw/nOHJmoFBpARgZ/R45oIrLZuLd1a50YqFUrq/Q8fdr6vB07kNziVKxbF8IWsysmhr5du0b/Z83ivVeuQIDVqwM+a9fy3hkztKOweXM0hG7d6GNICODh44PdL7slJUpw/7Jlus5ov36A1N69MGbt2rqglRRkVspax7RiRST0li1IaG9vNBAXF8awZg2M4uvL7ydOMGf+/jCfmDsODgiGs2cBo5wcaMXTE+1i6VLGJQ7zPXvQUHNz9VwOG8YcDh6MAJAExmfOFI8k3rvX6hdRCjrp3Ru6O30awbJ+PYxfogTa76efoqHNmVM8buP6dS0IDhxA44qO5vvhwwF6e9/ao7ZHBY3vlFKeNpvtDaVUglJqjFJK2Wy2TkqpaYZhTLn/XU+lVGWbzTbp/n2ytbrRZrNVVUrZlFInlVLTHrE//1/LzSXYZcIEFn7QILYG//wTQjUDhhz48vCAsJ57DqkpyV8OHbJee+QIYLFnD5Ljyy+tp2GvXEFaKYVU8vHBvq1QAUbcts16LiA62lqcWgLFTp2CGBs2xEE2cSJAlJVlPdh08iRE85+as7P1GmfnB59DqF2b9/3+uyZaMUEkOKpLF33s/eJF+rR8OUw3ezYmYfv2BDN16aKBbtYs5kGygonGFhuLFKxbl92HGzd0QWqJmwgO1j6EhATUfmEGf3/MHMnJGhGhnbwhIYDLG29gsmzbxlyWLq2PyLdvDxCVLElsSo8egL+rK8A2erS1ZMFbb+HvkMJE168Dqk4mbgoIsIK4UmgeS5bwfwk/9/TUxbZat8bh3KkTpqE51ic2lu1jc0tP595PPoF+e/WCbps1QwOz38lRyppm8WHbI4GGYRjJinKM9t+HK6Wm3P//BqXUAzYzlTIMo++Dvn8cbelSmOv7763Hz6Xql1Kolps2gdBNmmgHlX1uAhcXNJQtW/j3mWdwSL34oq7/YW5ShGnAAIh75Eh2DUqWZDHtDxKVLAmhv/MOTFirFsAm2cPNx/svXYL4zU0AoagIoJQUgsuXa59GcDDaRK1aXH/sGAzRsSN9zM0t/rxKlXQZhYgI5nTFCqStJD5++200jc8+47tSpQDoLVsAwvbtcSin3I/eqVgR38rUqfr8yIULqNylSsGI69cD8Pv2oTmMHo1ElvKCfn7a/CgsxJQSjck++Y6PD4AhTs6ff4ZxJZrXx8eqdc6aRfyIBFr5+lodnoWFCAJzJTNf3+Lh2SEh1ojezEzuW76cuc/L0ztfq1ZZt03/+KN4kmABDSmqvWsXAuxBNG6ffCcpCRN7506e86jtiY0InT4dqWaeTKVY9M2bYYTatYkQnDOH78eNswJGQgKgEhYGw0ydavVR5OWhdSgFAG3eDKE3bgzD+ftbpY9SekFjYyG2ffu45u5dVH45XKcUdrJ9BJ+zMwx+5oz2aYgzdvVqfA/16jGemjVhlvLlIZyXXkKtzs/HJGjeHGkVFKR9HhUq6BDzatXom5QZ7NoVIg0OBhBbtoS5fvyR8bdpA1O2bQujzZ6NtuLuzrhOnOB9XbsSjOblhaki5Q3kIFuVKsRAJCWhvQwahPYWFYUU3r0bM0cpnLPmPKw+PvqEsKj84hdJT2fuBDAyMni+AIZhoLWZAwC3bNG7LkrhXzDnnVWK+V+9Wn++d48xbd4MQFy+DK04O9PXDz5A04mJoT9mwJCMW6JFya7MmjWMR2qkuLlhvg4ZUpzGc3Jw4q5eza5diRKsvbt7cRP4YdoTCxrmlpHB5Hl7o/o+9xxqqjl/hqOjrubt5cX1VaviQJs0yVpYV1pREQRz/DiSbuxYdkicnFhYM2AUFQEw58/DcI0bs+DTpqFpDBtWPPTcyUkzuOTbOHwYQrtyBWYYOxZGa9LEegbj+HFrII+DAxqRSGQXF6S11MWQ+JW0NCT72rWozPfuMWeSSWr6dLSZ+fN5fv36mBBffAFIffQR4DpzJkAQFARotW/PbwUFPCclBRMoIADGvnsXbUbmODQUW/+VVwBBf3/W5eOPdfBS9+6skxwgy8sDeGSrMiwM80hA2F4jsP8sTkm5Pj8fjc0ci7FtmzUUPSmJADsvLwDn0iU0rDJlmOMPPwSolyyhX+bTqJLuz9yuXmWut21Do0pIYO6cnQEws5Zqr1GkpTEfmzfrvK/r11vzcTyO9sSCRkEBi/ePfzCZI0aA1nv2wAhmwJAIyRMncMKNHg0RSL6G8+chaqWsoOLqCmP7+loL8UoT59TWrZgdzz6LdrNrV3ETyEwA8fH68FtAAODQrRumgGS8MkeKBgb+NWGY0+rJZ7knJ0fPR4UKSLClSxmbFFJq2lTXqK1WDa/9zz8zN0OHYoKtWoUpVa4cTD92LEC0bZs+Pt+iBT6ca9cAsJdfxjx5+WUkphQiCg1FA1SKOZwwAS0jKEgHo/32G0Ds5ITmlpVlZUpvb+suyLZt1lwqW7dqH4NSrKsZECSgS0A6Pp61LijAj1VQwDxKwuEZM3SY+ZQp1kjWw4cBSXM7fpyUCYbBduquXTB8djZO3zlz9NmSwYOLm7UpKYDThg1oWIaB8Pn2W8wgc05TafZA8zDtiQWN335DHf32W+u2a6lSSErDAOnd3FCtBw9mkSWdnLmVLQuorFyJ2j9qFA4s2fIzA0ZBAV7ykydhpl69UEfF6x0RURwwUlP1wbDLl5He/frhFJs8GXVf2pEjxQHCPruTHPi6eFEfj5e8CqVK0d/bt2GEWrWsgVVKwSQlStDPChUAg7NnIcjvvkMzcnYGOGbNYh5btqSfsiV9/TqM3bYtJkhODmDTvj3AUFiImXDkCL6QCRO4Nj9fHyAUrSgyUsdE7N7NnLRrh8r9448AQ0QEfpAqVXBcOzryfmdnxl26NFqA/JaXp7eas7L4274djWzxYhyLJ0/CtEeP6hKXDRuyTlLQ+f33tV9Hmn3JAam3aq52dvcufcnORpto2RLzcNgwBISUdJBmppnUVMB4wwZod+BAaNPVld/Pn7fWTcnOBuw8PQHoR21PLGjMnAnz2sdpyIRv2YIqat4lMR80kihCNzcdoGV2oJlbUREE4OEBoz7/PCDh7198u0uyd8XEaJ9GiRIQ8SefWB1ghw4VL4qTns6YDANiO30areTiRe3gLSqCOBYvhunLl4dwbt2CKfPyYIrffkPiJyfzrA8+YE6ysqzBR2XKoEZ37owJ8s03OPkkXUB4OM/u2JH33rqFGfH55zDDH39wf2oqgPPnn3x/6hRg1rEjTN2kCfdMmaJLNTo6Mj9i6p06pWMqAgJ4f9u2+FPc3fXZkIgIpO2YMUhkX1/WOTkZYD9+nLnOyODdKSlI94kTMUsrVUKQmM+aLFwISJgd39HR1s9ytsTM5Jcvaw1zzx58M+XLA5yff653kZR6cIq+jAzGv2YNW+c2G+DywQfMh3knTSnWr2RJ3rVxIyabxCOZNdSHbU8saJhbejqq6pYtuq7GypUPDqmOi8MOPHgQxP/wQwj41CkrYIiD6tw5fBTdu1sJ6uhRiEJAQ+qPnD2rCycPHozUlQJH9h5zCRwzDPp19ChE4OTEjkS9epguJUvCSPXq8b7oaMZnPmuyd68OQTYMCGrRIj5LPduhQ2GmixfpY8+eOqu1Uvw7cSIAs24dQFRUhMPzrbeQpG+8geQ3DJ4REAATNmsGcZcowfZk+/aYPc7OjD0zE+Zt3VqHmkseUonPuHWLNZA53btXHzKU7FjS/P3xR0msxOrVBKJJlOjBg5hXElk7bx5AKDtV4eHFfVj791sT+sTHw/BmgBCTJi0NoSMnTJ2d0UbGj2etzp6FzsyAIWOU4L7r1zGpJApZCoCJVrh9+4Np8ocfAE1JZWBPV4/anljQKCzESfXaa/pkoIcHDOXrawWMe/f0cW+pbDZ3ribOu3d1gtyEBBh3714IsnZta9k9aY6OqOQHDgBWFy8CQnXqFL/+7l2rOllYiGodFsax6txc1OFnn8VZ+vXXVmLz87Mm5JVMTtIkkEqaff7IhATul0znmzdDkCEhbLG+/DJSTebD0RHC/P135m7wYCTf1q34HVq1Qsvp359xeXryvh49AIPcXDSo9esZT1AQ94gPICKCdevdG0AJCsKUqF9fJ5XJzmaeZN7snZqHDwNKSqFdJSVpwMjLY87NofhHjujDb0oVr+SelgbgmQ8VStpBqV1z/Djbn66u/NatG3SXmooT2My8kZHFg78MA5D+4QcAqmpVtrWnT2eNzBnDlGJMlStDW+7u0Fq7doD9c88hxOzb//o0/kP7+WeYY/58KwNJod+iIqSCmxvXjRnzf9o77/CqquXvzyb03rtSpSlNERULAoJ0riBWsKDYERUF2wVFUbEhioBKFSmBIL0EkoDUAEkooYdAIAkhdEgnZb9/fDK/tfc5QcBwr968mec5D5ycffZZe62Z75Q1a4aJ/vFHd6NiEczZjRsRDt1R0XJ0PXq4ASAjg/uGhREcbN+eRdeYhtZ2cFJiIow9bhwLn5CAdi1eHIByNvr18/PeYvMkT9DwfK8aUunYMSNwWpPTxwe/ulkz3JgvvkCYDxzAKihbFits6FDTS3bAAICkRg0shg0bsChmzEDT9uzJ8/zwA9pU21hqzxTNBA0NxXKxLMAhMJB4hB7dj4jg+84Tn+vXm8NvsbHuZCtnZmlO748eBfydiiQ4GMWhpNvM6enMQXg4MZTatYn5NGiAa1euHPd3rvGHH7pBXYR4ycCB8MvmzYBUcLDJbXnzTXOocvJkbzc7Lg5XJS4O90xTB3x8+Ht8vLk2M5NY0IwZ+TGNP6V33mHxnMIiwiQHBaEF27Vzg4q/P1qweHEWc/VqzN/4eLSMBj89SVPP58xBANq3R4MuW5bzrooIwrBmDRpSO5k/8QT+vpqf3bq5AUMEpnXeMyWFscXFIfzHjjHOWrUY/8WLCFlCAhqpUCGT2v3ppwj45s3sGImw5acBSG2Mrbsaqalo77g4gPPsWXaldu4k+PbYYzz74sVoS7UwPvmE+1+8SNDO3980ivLxAZC6dwc0b7vN7PRkZpqq5I0aITjLl+M6vPoqWn/jRmIVqamMq2ZNbyth0SKzK6PvnYlXixe7u6VFRwNO2iUvMhKwu/FG1rRRI6yiihX5LV2P06f53AkYenrZ+bdz57AkTp3iddddzF2PHoCf8/CcCCDYtCnzPX8+4y1dmjWcMMHbjdIqaXpoLiSEwPrnnxO0zS3lWdBwUmIi7oefH4BQsybvPTV+kSIIwLJlCHLHjjB/UhJBNSdg2DbXakzj7rthZA2qbtrkDRhxcWi13r0RfrVCjh41uxPO+3uSbTOWRYvYh9+9G183JgateOONvC5dQlNXrWqOqN9+O+Z+ejpg0bKlOUIfHc1znjqFwNauzd816CrC7zRujAbUHaGnn2ZOXnuN39uzBwHw82Nu7r0X4P7mG3ZOpkzBPXvpJca7fLmxmgoWRKO+/DLmfGYmz6cxhrg40yekdWtcgJUrEcrPPjOdyWJisFRatDA+v/7OsmWA1OrVPHtSEq8FC7CotH7JsWOY/X/8gVvYsyfCvGaNWYvt24ljOdd40yZ3lXARLIrmzRHclSu5pkQJ1uiLL9xW47Rp7kxTEYB27VoArHhxXMXZs03bTOdxCBGAa8kSgq13380aaW3W60V5FjT0PMmAAZh8Dz+Mr376NFFwT+SfNcscgR80CCHSaw4dMjn7MTFonYAAGLp69ZxjGkp69mT1ahixcGGi4M4tzs2bvcu1nT0LY/j7wzBhYQhIbCyWQrt2gFRAAIw1YID5rq+vO2lo714ClD4+vCIisMTKlGGepkxBI4mYWiPvvYf1ULs2MRE9GKXbsJ98go/96KNYZ337YmlVq4ZW/OEHBLFaNWP57NjBMyUlsVX78cdGyC5dwsR/912+27kzwqaV0bRgrwjgpjsUxYszJ19/zfhSUxnLokWAj1Zcu+cec2q5aVMAVN3Q/ftNjVERnmniRBP3OXDAnXMhYqqQO2nDBuZEC/4GBXEfLZrcuTNu7fnzuHaebmZkJJbbxYsmvyUjA/5ctcobILRqV1oaFuvs2cxJhQrEZ5wVvpTyYxp/Ql99BUB88IEbvc+dM2ZvYCDCkpSEa9ClC36hp0uTlITW69EDRnriCZheMz89ASMigteDD6JZe/dGwAsWJM7hWfBVs1TPn0e7rVkDUFy8aCyZYcPQbqtXu9v07d7tzgTVXQgnaZxCyZmXER3tLvYSGUkMo3x5dmhiYtC0tm36ltg2mnzAAOavfHncmOeeA4Dq1OGzH3/knM78+Vg8zz0HGJcpg+UzcCC/5bTK9u3DarnjDgR9714AYt06c/Zk7VqTx6AtAVQAN27kewUKMK79+9m1UfDZutX0mxFB2Lp0Mb+fkcH8OAPFgYHusoIiAITGYLR1gL8/c338OEFPdVPHjnXXRPHM4xBh7XU7VrdUf/qJZ+je3RswdMt96FD+7dYNgKpYkXn3tIo3b8aSyY9p/AkNHQqjeZp7MTEIZMeOMMLo0cYEX7/eIHFmpgmUxsaioWfN8s6bUIqKQqMGBCA05cq5j0qLmC1DpfR0BGbePEzoqlUx/V94ARM8M9Od1bd3r7fG27PH3ZjY8xot5Kuk/q7S7t3uRj9nz5okoUOHENQ6dWDKUaOw2nSOUlIAgWHDTLHfbt0Aie+/x4e+eBGXZsgQLJhHHmEeH3wQF+azz/i+ClUpH98OAAAgAElEQVR4ODsGFSpwv0mTCDjOnYvvXqkSGlyDnp55Ev7+7ixQbcmgtH69e1fB39/9eUiIqeehtHYtu0hKSUnwxC+/GHC/8UaA6pNP3EHLqVO9K2gpaMTHYxFpPk9iIhaGMwnMkw4cwNLduJHvT57sfWBS417Hj8O/q1cDwm+/zd9yS3kWNJyUnAwj+/oi9NWro2E8LQTLQtMqM7RrBxMkJ6NBPQEjLo6ofufOmOGPPoqAFCrkffZEhEUuUYJ7+fvDbG3aGDfEKcy+vt4nJ/fuNdpNxGQa7t+PxRAdTV6EugspKcQlYmLMvS5cYBwvvMA87NrFcyYkYKE4dxB010UbDgcF4TqEhiI0J08Cyi+/DEg89hig5+uLZrv9dkBRCwyHhPD56tWsR1oaVpJ2bhs3jmeoWdMEEKtXJ/4REcF89uvHVnSrViY+4TyF6kz+SkpCGHW7OSGBtXHO84ED7hoVukui86unhqdNw0U8dQpXw8cH9/T557GiwsIANCdg6CE1Jx08aHJtatTAotCSit27ewOGbTNPY8cCLnXqMAcffcR3PQEjLY15nj8fC7J/fwA2p5ykv0p5FjS0etFLL8H8ffqg4VJScEGcgHHxIpps8WIEYdAggoV6za5dZvsrMZEYhQZVixXD93QyonYp13Hs28c1v//OPe+6y92dTSszOWn/fuMOiOBWbdoEo40ZAxBoN6/Fi2GQhg0xmz/9FGujSBE0dblyxr/98UcEsXVrtE5AAM/83HP4/qdPw3CdOhHHcTJbkSK4Vzt2kOSVlUWAMy0NLaZ1NBo1Alzq1WNcCxdizSxbRnC0bl18/uPHAZS1axGCnTuZ64QEhFktoNBQU0+kSxdAqkQJAH3JEly7sDDmpnBhE/NwujEi3sWBDx9mLvbuZSyxseyWHTzIs4jw/MWKmcSsypWxOipWdO9yhIZ6F13av58s16AglFR4OHGb9HSCos6dMWcioAi8u2ABa3HgANbQ4sXuM1NKts3vT5sGuBYuDI87CytfT8oVaFxN35Ps6zJFJDz77THbtntm/72OiMwRkQoiEioi/W3bzqE0zLXTl19iCfz8s9t/TE1lkrOyMF2nTSNg+uijmMw5xTSSk9E2zsNvv/7KAvbr5y3wZ87AGMOGsZiNGyNsZcuiiZy7JE6AUdJzEdOmoVVPn+a7584BBn37cp9169Dozk5l331HjocC3ubN7h4bwcHksFSqhJCVLGmOks+YgeVy8iRWQ3g4zH3XXcbKiow08YgGDQh+nj2LxXTffYCSjw+CPXo0wcJFixDO9u15pgIFEM66dWHyo0eJOahl0qsXgKEC7iyJpxbgY4/h6nTrhguwdy+melaWqXS1axcujnaDDw/nN7UK27FjxFemT2d8lSrhSnz7rQm0/vgjroezRkdwsHtORdDuH37I/6OiCFxOmQK/VahgWghotz3PrXR1XX19UUgZGfDM11+jJHKqAZqWxucrVxJj0torI0d6Wyw7dzIeZwuMv0q5tTSupu+JiEiKbdstcvj7aBEZY9v2HMuyJorIc0JjpVzTsGH4r54Bp9hYNOUDD6D1RowwiTcbNrhdip07AYd160xLAaf5eeKECZhlZXFwa+5cGL9AAYTbud3l7+9dgl4Ti9avJwi6ZQv3OnsWLfXEE/x2dDTC7cm8zl2SixcRbqcVdfy4e2fGGRSNiXFH8PXU5U038dqwAdD797/RsBkZxDnq1cPKataMmEhoKFZA+fJYAH/8gcswfDgac+BAQPyOO8w5l5IlTSq5asZdu1iT118HhA4fxnoKCUEgRJhbzSnZvx9ALlMGYJs+HRdH17NzZ9NRPaf3/fohkDofa9einZ1BRz2t6yTPOT17FnD//HPmp04dnv+ee1g/TYNXPnGuT3IyY/rlF563dWtyL9QK3bPHXW8jJQWLw9eXzwYP5uV0gzT/5dw5dlQWLmSeBgwA9HNLuQWNK/Y9uRxl1wVtLyJ6GHm6iHwk1wk0nJSWxkSrL1m5cs6HyTIyYIC5c1nIxo3Z537gASbbMyvv3DkWccgQAObOO0lBf+AB0zfESXqCVbuI+fsTBE1MhAnbtsX/3LuXMTjNy5wK0G7b5k5a8rzmzBm3xnGeaxDxLihz6JCp6bFtG5r+vvsQotBQAKt0aYRDGXPsWKwfX1+ssH//m/9HRDAfGzYQTE1PByxeew1XMT4eRp8xA2A/csT8vvak/fZbgHLTJnOwLTzcWEYbNribVen86tqULWsE1LlNK8IaeO4qrV/vfbr0zBl38Pr8eUDO15frDx3id9LTic3Ur29+Y948d6tFEQCnUiU+W7AAV6xzZ5LlEhMNODp/r3RpfuvXXwH6Xr1wO59+2jvulZXFmIYPZ36feALe97SGc0O5BY2r7XtS1LKsEBHJEJEvbNteKLgk523b1tpUMSJy2QTpa+17IoLmfeMNBLRXL8yztDQY27Nk/JIlBMHOnMGUdGZzzpvnDoLu2UN8xN8fjfn22+7cj+Bg754VFy6wmIMHYzXcfDNCmJQEWDjTmp3FaJS2bXPXetBzCiKmPoUWevn0Uz7bvRvhee01wDIqCqb65RdT6EUzI1NT3WXzw8LM4azwcMCsShXG9emnWAjVq3N97doAwq5dWF633ALTNmiAJbN8OebzqlXM7c03E0C0bQD81lvZ7apUyb2t26ABAdb+/XFntAvbiRMA+IYNpqr46dNuUNCuZUrr1rnfR0V5H+Tato1xKMXEcM/AQKyd0FAzh0lJ8Fa9esRAJk70ruGpBw5F4KulS7GGjh8H3MeMMSA+bZr3tur+/cSGtm+Hb4cO9f4NpSNHuMf69Si/Dz/0ziy9XnRF0LhOfU9q2bYda1lWXREJsiwrXEz/1quia+178sUX+Kxjx2IGKx0/bgBjxw784f37QWw9J+HpbyYkACyjR+MfN2qEALdoAfN4HjyKjoYpoqIMGGkhX8+uWdOne3eHDw11M296OrEJzXLcvx836/BhTP8aNRCio0cJaFaowDOMHQtj168PI338Mf500aJ8PzgYZkxKwmLSyt0tWsDwzjhG3bp8Xr8+1k3//mZr0rJwC264AQYvVgwLZuVKU4C4Th0Y/vff0Zy9ehmBV83duDEuT61axiTfswdX5f33EdyRIwH92Fisj7Vr+Y3du71Bwtnf9o8/3FaZM1lM64yeOsX679vHvWNiANvt23GtXn7ZFBpy7th4to4UAVhSUgCGwEBTe+XJJ7mnc2wigF7t2vDnnDnMXb16WGGdO3sfac/KYtwzZmCVVqzIPUeMADD0cJ7SgQOG13NLVwSN69H3xLbt2Ox/D1uWtVZEWorIfBEpa1lWwWxro6aIxP6FZ8iR3n3XHJhy0unTLHKnTizIgAGmyE1AgPs06PnzWBnffYdgDhlikrpE0AJO5NfU8iVL2EevW5eg5+zZaJpRo9yAob/hTCTKzESzBwUhwIcPI6wxMTDhAw8QSV+4kLiC1nzUsyzOfh/HjnEqVLXvyZP455aF5aPNn0SwHooWRXjffhvg0zaBlsUYtNpXmzZYCtOnm6PpBQsi8CNGcO3DDyNgN92EdTFuHECxcaNpIzlmDP578eII1S23cJ++fQ0gOVPJDxwg+NmvHwL+1FM89/jxzHnNmmjzcuVY+8KFCSoWKoS7WaIEYJiQANjUq8f4CxQwfVPLl+fZ6tcHZHv3dsckdu1y54GI4E62b4+1tm4dAh8aigvWoAFgo+7B2LHugj0iWINBQVi31aqxpkuXMv7p093JelrnZcoU+KN3b9PRznmNiDk+MW8eczNgALyVW8qte3I1fU/KiUiybdtplmVVFJG7ReTLbMtkjYg8LOyg5Pj960GZmZjG06fD+KVK4ed5tmZU9F62DEHXlOQePWBWJ/OIYCbfey/By/nzWcRmzVjk1avdQdV167y1UUoKzLp2LUy+bZvpEVqqFLGAunWJVSxb5i62smaNu+GPZ4Fdz2IwzjqfOh6nSxQSgstVvDjPsn8/7tfQocxTSoq7SG9UFBmLEyeahKFChRCK++7j+vbtebbXX8dKO3WK+z33HILbtq27NUCBAjyz1j+54QYD8CIAsia77doFIKoGjohgTQsU4Fn79wcg09O5X0AAwliqFK8nn3QXXZo6FVDR3rIiAJbzuLyIOy6kZfoWLoQHREyz5UcegQecIC7C2rZvj+u8aBHfFYHXxo/3BpSUFCzHqChiGn/8AZC/8QbP5czb0THFxgJ4KSmmdKVmiF6PMyi5BY2r6XvSWER+siwrS0QKCDGNvdnfHyYicyzL+lREtovI5FyOx0VJSaSRb9mCOfntt0Srx41zA4buc4eHY0J26YIW1HoLGza4A4paKnDhQrTx3XfDJKNHsyhdu3ondu3ZA+hod7OAAITy7FnchPvvR8OHhCBojzxivut5lFuTjpz1IAID3d2zgoJM7Ymc3gcGmnT09HReqtHWrUM7NmoEaG3fzryUL2+0bEQEDP7ccwDMRx/xd+2ENn481ln58jxP8+YA3eDBCN24cbhQ772HBly2zGhIPb25bx+m9x13oCmd2Z9hYQbEs7L4rm5dx8ayJmpBbtyIhabvk5O9XdCwMATRSZcuufMiLl3iuxMmMEfnz2OtWpZ3tvD8+d6B84sXGcvevXxHA5rlymE9eZ4/0sNq2ibjqadwPQoUYBzOuFxcHK7KqlXw/fvvX58O8TlRrkDjKvuebBKRpp7XZH92WERa5/RZbmn0aHzxUaPciVr795sApybzrF6NG3PjjW7to6S7EGFh+JthYTByhQoIgjPP4uxZ7wKwERGg/Zo1nPi84w5ArHRpmMG5S+K5IyCCFeGsGBUR4d1pKywMfz811TRkevNNwKVgQcxzZ+tBpwB6Bl737zf3Dw4GeGvWRPC+/tp0GStShDkeMABBiI6GmRs25P8ixEdmz+b7N97IuG680eRQXLqEL/7LL2hOEdyqOnWYBz8/NGbnztzz4EEEdccOUxbPueujz+PcuQoJcb/fudNdd1XExG2UTp4EBJYtQ0Hs2IGVeuGCAUVNt+/e3TtbOCaGcZ48aVLFLQsg8PPzbreZmIg1kJ6OMpk9m78VLYrV4NxqFwEos7LYgdFdwaeewlIbMcI710izWv8JeRr/WNI8DafJLgJjHjwIypcoAcJrnMJz+0oEbRcWhg/esiUmr1oU3bp5J2ZFRMB8q1bBKHv24NdnZMAITt9z3DjTQUxpyxb32YiMDASrYEF8+ogI3KzUVLT+xYtcs2sXYyxalOfasIFgYkYGr4AAs52XlgbzDB2KtRASwnyIoD3LlDEgqwV+LQuQWLCAeNG+fQBEZCRW0q238hsTJgCaTz4JA7dtS7D2q68w/ZctM67Xq69iEZQrB7g/+SQa8vhxrKhLl4gxvfQS896nD8l6e/YAFAEBgIFnab6QEHdz5pAQ986TE1RsG8G+cAGh2rMH/tB6qocPs84ffIDFt2+fO9HKsyqa1n/VDGBNFZ8+nbXv0cMbMLRH7JtvssYPPsh8Va8O0HtaRTt3ArLr1wOselBNqUABE4hdsABFV748rty2bZJryrOg4STbRmNOm4afWrYsFoanRaAUE2OK1N50E1thq1a5zUHPtF8twDJ+PMxWujTC0qQJQvrYY95VxD0rVOtCHz8OY+zYgfBHR+Ou6A5EfDwWS6NGCOCcOWgl9W937YKJtEbojh0w6pdf8l6Pwd9+OxZCYCDg8MMPjPGGG5gzLYZjWQhH8eLM3cCBgFWPHnz+3HP8Rv/+aElNMOvWDcF+/32soDNncAHeegtg69OHMb71Fib1Qw/xjJMnM56sLBM4PnIEBfDpp8xvx45859tvsaJq1EBAqldHuGfMwAUtVAiQmDKFMV+8yPXai8SyuCYjA+EcMIA5njKFoKQze/fwYe9tWq3o7u/P+u/bh6Xl4wOPXa7Kmm2zTnPm4K6eOIG76OympzxRoADANmsWiqhJE5TdyZO4e573jYsDhBMTAeoZM8ypZmcjqL9KeRo0UlJIRAoIwCV46y0ENSgo5x4SWvZOffc33oChunf3TgSLi4PJxozh/trtqnVrDoM5T47u2uUueisCk1SpAgAEB/PauBHAGjsW87lXL363fXsT00hLgzmdJzGXL3e7Hjk1BXIG5FauBCAqVkQoZ85E4NLTsXzOncMVqVDBmP3OBsw7dsCMd92F+xEWZpoKDR7MFnKbNqZPydatCENQEEJZujRjqlKFIOfEieR1lC3L70+dyn20ILEIAqsnlo8eZT6ffZZX794IlO4yaQGa9HTArkwZxlO6NK99+5gDtRKXLcN810xTESwZ5xaujuHeexHknTt5nt9/xzqrWROLqHFjgOhf//I+3SqCII8cSUykaVOUyWefAU6egJGWRpwtIIC1evJJs6uicSil+HhAauVKnnnQoOvTTS0nyrOgMXo0JviwYZjhyiBr15rglgrgnDkm6OXr665FkJbmDpru3WtKromA+M4ttblzveMNGjPQquJr1yKoJ08ytrvuwvyuUIEdFmeMY/hwTGOlDRvczJyZCcM4g2jOepkixESGZefppqfD5GrOOjuZFyqENaBtHp95BnO9d28EQM3y7dsxpatXx2WbORMN/tFHCNZLLwEEH37I5+PGAdI334wFV78+Y7zvPrYky5TBnRg4kDkqUYI4wEsvYRX5+CBsWvTm0CH3Vndampl/ywLIdI727gVA9L1ts55OtzIiwvu4gdOqUPdv9Wp+OyUFUG/fnucqWtTt/uh3Chbk98LD4ZlNm7jvRx+xpjmdPNXSkTNmoMQKFcJ99tyF0d4tGtPw8YEXX38d18Zzaz82lnvmxzT+hIYOzbneYkoK2ujFF03xknHjWKwPP/SuAXr8OIs/fDiL3qgROQiVK6MJPRczPd0NMlFRLGrlypjD9evD/A0acBjKyawff+xOI9buXc77LV/uTgzybO136hRCqMHekyfR4Pp+40Z3SbqVKwEAfdZq1dx5HUuXcs8OHRCYMmVg/Dp1+Hv16pjyt9xCroRaBx07mt6yQ4aYGIZ2W3vrLXZOXn4Zi+TiReajXTssOMsCGB55BOvwrbfw9zUeo8Ds6SZ6HnU/eND9/vRp78zLgwcNIGZlwRdRUQj37t2MpWlTU5LQaaWOG+e965GVhbWmBxabNsUVGz6c33HuhCklJsJ/mzezPm+/DY988413QZ3t2wHTrVvh7wkT3M+kDbxTUgDfOXOY0/79vRXaX6E8Cxqe+9EHD4K0ixaBwt9+6z4XsHevYQbbhll8fdG6hQphLn/0kWHQ5cu960GeOYObsmgRWunAAXYIEhPRNE5zdfJk9578pUu8nEGvwED3NqmIyZVITUWof/kFl2jZMtOcuWRJnrVgQSyTmjUJgFWogNAq6Ni26UYu4q5NceEC9/HxYdw1a5InMHIkpnl8PM/XpAlzUqcOv79wIS6hBjJDQrinbaM5X3wRgahaFRfo11+5vlEj3JunnjLZjKdP89sdOmChfPABFt7EiVy/YwfjqlzZ+P4HDrhrTBw4wBkYJx80aGAOzh09SgwkLc1kC+uuzuOPYx3p9nl4uLdbe+YMoJ2QwPwtXYpWj4/3PrDoSVFR8JhWW//0U87VOK/XTOK4ONwPf39cMz18llNMIzYWayMjw7Qj1XF7tob8K5RnQUOEyR43joWsVQukbdIE7eR5kOjcOdB5xAi08S23oOX0ek+A0G0+PXy2fLk5gBQdbU6LXriA9eAEjHPn3DsUIlgMTuZOTIRJ7r8fxjt8mN88dIgAZJEiCMsff8DYx45hlYSHE1MpXBim2bbN7FqcOcPWb0QE4y5YkN8JDCRGEhBgEsbUfRCBOevV4xleeYVnfOopBF/zSSwLl/DWW5nvtDSsiK5dmZ/GjYlv3H03wUE9jt6yJedLevZEWMeMQSDeftv09dC1bNKE186dgH5EBFZceLgpSbhnD2PVXJzt23HBvv6az2NiDLjceCN8UbIkYKhnaS5dIh7guS3rrK+pbkdgIPGJMmXQ+h99xH27d/c+sCgC2H//PcFYLdw0ZAhBYE8eS07mWWfPBpSffBKr0DMHSASemzGD8fj4sOaeh9+uF+VZ0PjySyNAziI5U6e6dzEiI0H7uXMx4z/5xKRCiyA8TmEWwew7dgyTOSICoe3WDW3XqpW7nmRwsPf3nXGJzEy035gxmKH/+hdMW6IEmrRXLwSrf3/MzIYNTZBT6z1qub+kJCwazRxNSuLZtN7Gvn2MUZsgf/QRvxMaiom7di2MrO0IX3jBe7xbtvB5nz78beJE4jXa+7VWLTR2ZCRM26wZbkjRojDyTz8BGufOAT4dO/KcM2eyy1KiBABw330AU5s2PI9TYBMSAKxq1RCWtm1NTKFPH+6loNmrF9aJumdffOGOcYhgGTp3OTxPv4pwr7Q0LMSgIAD4llsY77hx3mUlnXTsGAHT1auxaF99FQWT08lT7QU8axagWbkyu2KerRr12hkzUARlysAjw4axS6g5JEpxcYBPfo3QP6G330YDeFZkTkkBiceMwdSrWROtUrEiL8+I+bFjaINTp9Cgy5ejAVJTQX1nQG7KFHfRXxHiICrkWoB2wgQ0qCb8NGiABTFtmqm4tX07i+yMXwQFuetZLljgTntescIdRPV873n91q0mxrBlC+Po2xerZOZMnvHZZ5nHkSP5zpYtgEDBgpi8//43WlLnISOD56tfH8AsWBBwevJJGH/XLkDlt9/IR2jVilyD8+excj7/nPXp0gXrJysLDR4f707hdsZdnDtTzqCoBjydtSY8ywN49pERYa3Ll+dZN23iOU6fhhdKleIskoKK7gZ5UnIylteaNYCbav6+fb0L6miVuTffxC3u0IH4Vq1aOTc+WrOG+QsL436//eYeQ9Gi5iCitnUsXhx363KnZK+F8ixoeG6RnjlDJt64cWiV119HADXI+MUX3nn/hw6hfQ8fxgrp3h1NqQVbPRfA8/BZejqCXqIEApGQQEQ+OhpzuVEjswcfH+8+2+LZwEczFJ3aae1ad0nABQvc+/ALF7rPp/zxh9lViY9nrPr8S5fi9rRsiVBFRMDE06ejie+4w/RxrVXLFJO5804TsdcS+j4+uBHTppmj/yVLYrV17MgWY0oKgDF9OkDboYNpQq0JeT4+CNrzz/P7b7zB/aKiMNtvvpnn8EyW+jM6edINGqdOMbagIAAtPJxXcjJzc9dd7CJdukRMxZner2tcsKApEr10KZZTZCRz+dZbl2+YtXs31mNwMON4+GHcLqfbWro0axEejlURGkqweMQIgMzTAlHLNSiI6//1L9ZBTw3/9NPVz9XlKM+Chghab+ZMTEM9edm7N8LoWdDm5Em0x44dCN/mzfiRJUogfM4zCKtXe++pa7GUzZtNc5uMDO57663496VLk5/xzjvuXRN/f+96jlqQV2nJEjeIHDuGBlOGTE3F5NcgYloauw763vN6z1yOrVvN+ZGVK0nbbtSIccfFAVZdu/I82gdFTfLYWKL8ixbBsLYN48+cifVy9CiWR1gYn913H4BUogTA/d137HbVq4dgDhnC95xnUapVA5QUhGbNIn6xcyfPdtNNJKXFxxM7USvj/Hme58IFdmjCwviNmBjTruDsWeIXTZsCCtu3M2bnUfrYWO9YQlwcAv3iiyiEu+/GovryS9Yqp3oWiYm4wOvWwQOPPooVN2gQVq8TMGJi4L0lS0y5Sc1GVtK53rULkAgLIzbz4INu/rmelGdB45tvWPy+fc2hIBGQ2rmFpWX69Dhzq1YAy/Dhpv+EZzHX3btB8Kws/r96NcB09iwMe//9CMWOHdzXWXshIMC7h8aKFaaDuwjMUq2aex9fs01jY7Gafv4Z5vD1RWtv2UI688SJfG/PHpPJWrYslosTmJYvxz/P6fdWrcIiE0FjdepEzKBmTbRWjx6AgCaY7d+PFdKokSnNl5WFia+R/kKFMLmffZaYSI8exDA++QSXcNw4BO6OO/gsKwsgW7fO9DERYe2qVkV4RDC5P/4YUDh61GzJpqebDFDdKq5cGT54800ApnBh1nzxYncbiG3bvK2D9HS0+OLFBBv37TNzNnKkd1VwJc38/P13FMGRIzyv9l1VqlDB7L75+fE75ctjgSUn57zrYdtkfq5di9XVr59pHr19u/va+HjclIMHcx7ntVCeBY3Bg/H9PM23pCS05tq15gi48/CZ062JjfUuZhIXh5BHRKDZmzYFFC5cQLich83WrvXuwrV6NX67knbQqlgRc1OrQKWmMnY9A7FzJ1pZYy+BgRxi023aAwcwo8uXh7lnzSIIeOAA9585E4tnxgw+37ULoGrWDIDRfJOMDO/kL00/37ABy6N1awR7504sLs1uDQ7mPnXrYi2kpiLkH3wAyNasyVyvWUMcqXx5wM/HBxfn008ZY1ISz7Z4MRbRZ58h/J49XHS8NWtiaTRtynPr2Z0zZ9DQzsN+kya5g5YZGTkDhI8P3928GWHftQt+aN6cOWjYEKXy6qvusycizO/Zs1iU27fzHVVEffrAI07ASEjgt/QEsHYDLFHClKpU0n6uatU99hj86HyGYsUAmgsXAKuFC/nbI4/8ecD2ainPgoYnc6WnI8QBAQhJhw4svroJ3bp5x0EiI9kG/OMPFiYsDBBJT/fumjVxIgFCJwUHu49b2zYC5uPDOHbt4t/ISFyFihVh/j178G0bNkQ7zpmDNaEAGB2NdaBB0ZQUgrB6+C01Fd9Vfzs2FgbTgjlz5wJ+d97JGKZMgZnmzSPeU6+ecQ2cR/BDQtiJKViQ16JFBEJ374bx9XDb448TaH7kEebqzjsR7JEj0e5t2mAp3HADc7hgAQLWvj2xpaQkfq9sWVympCTAt3t37nPmjGlJ6AxkeibW5RTk9KT0dIR/3z4T01i1ijncsoWxvv46vzV0qBuARADshATG4++PBRcfT4zi0Ufd7T1FsP5OnTInaH//nSjK7Q8AACAASURBVN+qWhUAcAa6RbByk5NZs3nzsMAUVEaNAvSdz5icDLjPnMl66dkTDZROmfLn83E1lGdBQ4QJXrECcy8mhgBS7dow+58VWo2LY/EnTkRriODmqMZ7+WU3YNg2guvUOHo24NQpU19ywwY0yrBhaMWmTTGdR40yFcbOnEGDO7MGFyxgLEpz57rPSSxf7s5MXb7c3arRz899/e+/kytQuTLBX80xOX8e/9y2sZpq1DD9XjMzmc8iRUyxoqpVcS+02G2DBrgxyckESwcNgsHPnwdsb70VMPvmGyyM2Fi06+zZuErnz+O/a46Mjw8CWaUK1suSJYDfQw/hAp0/D8BqRbTSpYkZaPmDU6cQyN27zbH2mBiA6ehRU+LvwgU0eNOmplLXiRPumEZaGmuvlJmJFbF9O+uqcYTPP+f/AweavA+lixdZ32eeYR67d8ctq1QJgNL0ff29VasAitBQ5tdZpVyE750+jbW5ahVAcu6caWmpDa2vN+VZ0BgzBmHdvRvzWM8RbNjgHaPQGhTDh7N4lSsjdG3aoN2dW3o51WLQLMPERPzhzZtZxJgYhOq222D0okWJxmuWp22z6+CsMbp4sTmmLmKOvjtPw65a5a4rOm+eOyYybx7Pr+TvDyiImE7puuPgBJyyZREef3+YfdgwfPAHHsACUtPWWb9i927cs4EDTT5KzZqMV8+W9O1rqnL9+CNxiubNTTHkhg1xVbZt47oGDdgd6NEDS0O3e0X4rE4drC8RYk7334/wHzzITtekSQjSuXMItW5J6knPu+8G3KpXZ/zz55sK5yKAnmc+Q+HCCPy4cVieSUkAfbNmxME8D4fVqAEoFSjAmq5Ywd9LleK5nFXYRAC9qCjmfu5cAs2dOqGozp0jZ8ZpCWdkYNF89hkA2akTgFWzJsFqZy8cEa5dsAC3OreUK9C4mmZJlmW1ExEHC0sjEXnMtu2FlmVNE5G2YooMP2Pb9o7cjEnplVfw+50HtxgPr8RE4gtLluAeJCayYzBihPE3/fy8t1W3bzdWQWws24i//ALTPvMMwcF77sHy6NTJnfcxfLi7YLD29HRqo6VLTYBSxHvXJDLSBPFE0MQpKcbySUiAodWlOHYMgFCgXLHCbYUsWmQAJyoKC0GZMyIC07ZYMczm8HCErX59k+2oNTxLleLv7doRkNM5KlcOoe/YEcZt1AiBiInBYvP1Ze4HDiQe0bOnyf58/XUT2wkPN+0YnVS1KkDSti0W0ObNZttZ7+s8AbxihXtNypbFYnFSmTKsZ2Ag9wsNRfMfPYpwT5pkACgwEEWipJmi4eGARZMmpvViqVKmwZXSpUvcY/581rphQ3Y9tHeLCFaalmtcvx5QiYwE9O66y7txU8mSPHtcHFblihX8tpYeyC3l1tK4YrMk27bXiEgLkf8DmUMi4qyP9Y5t2365HIcX5dS+7tgxNGevXghqx46ARGws8Q7Pgj2pqcbl0MSsefMQ2jFjWMx770WrTp3qPlk4ejQgoXTuHIEtp8+9aJG3VZGV5W6Os2ABpnxGBmb0hAkEIkNCzCndm24yFcQCA9HiERFo15kz3bkFv/9OvESfLyHBWB1LlpgScSkpmOB6FiY+HkA7cwYTvlgxTOXwcNNMKCMDjZuRgeZelF3xtWVLgOWxxwCkqVNh3mPHiGP4+ZlWkq+9BnP/9BPXnDiB8N13H3P/7rus4eLFmOEq9NWqmeIzSlpI2EkFC5oTqCIkPUVHM8/h4bg7p0/zG9WqYcUMGcLz6q6PE+Rr1WJcCxditR05gvVx772m0LKTGjQAdBYtAihOnWIOtPjQsGHu69UtHDyY9b/vPv7fsCGAPWOG+/roaO67di07Qr17AzJayvHXXyXXlFvQ6CXX1izpYRFZYdt2ci5/96rIthGuxYsJStaogYvw22/u8mxbtngXS8nIQKimT0cg4+Jg4sREhM55stHX1w0YiYmAljNA5e/vvW+/bh1uxsGDput8ZiZxhfh4BHfnTrJCfXzQbkFBBBqPH+c3lizhfVgYzOXnhyXx448AwrJl+Ojjx/NM4eF8Vr8+ZqzzvENAANpexH32RFOoS5TgVakSczh+PMzfty/Ao8JUoABB4YAArKmMDJNJ2bo1LkTTprgA8fFc+9tvJgYxeDDrFhHBOLU4zauvMs/t2zNfv/+O1t6wgdiMtnGYPt0U4ImLQ1Cc26+PP44Loolou3YBFJ06mfyRHj28rVTd4SpdGn4KCoJ3du7ked5917jB2kdYSYs0LVuGQLdqRSzG2R9HW2+WKmV29yIjWfdbbwVYnFS9Os8XGcm1QUFYI7174xLPnCn/EcotaFxtsySlx0TkW4+/jbIsa7iIBIrIu7Ztp+X0xWttljRuHPv8fn4wgLodOdVzjI1FK5w+zcQHBqJxzp2D8UaNAlQSExFgJ2DodqOTPAsBa6m/hx4ihnHwIAt98CD3q1WLAO3evZjyjRsjhDNmkNDTrx/32bULxtIt0Ph4GFaZ6dQpTHjNAj1wgPFrEHXuXNyC++9HeLR2Z9euCNmhQ5jirVuTXzJgAN9z1hDVbu4VKvC7GzYAMF9/baySU6cwy595hsN/vXphhtety28PHAjALVoEKGzbhvDcdBOWxnvvsVZDhyLIffqYLNVatRCgjh1xX+bNAwy6dePZli0DTDMzWS9NK69SBWGPjgbknI2gu3VjTE5ynnU5fx5eio5mDcuXJ37TpQuuRM+euMNOC6RMGXPadM0a3nfrhqX4zDO4Zk6lkpqK9dO/PwH0tm3Z/WrYkDX29XWPbc8e43oUKcIcvfGGsWR//tn9PCdOYCn+V9oyXqdmSZLdF6WpiDhixPKeADaFhUZIw0RkpPe3r71Z0rPPwvhOf9azj2ZKCgw/cyZIfeON+OTDhmH6HT/uLq7irF6l5DzMZdt85+efEZB+/QgsFiiAhu/SBQ3zxBPm9/QcwoULaBdn4tfChW5t8dtvBkBECAY6A3C+vu73s2aRMKXk54eVUakSmnvKFJMDoKUQ161jd2PTJuIRaWmAqLYrdALIoUOAw6hRmPeff45AlC4N09s2YPvFF3w/MBBwHDaMXZXffkNDlyrF2DdtAugmT8YSGDKEGMi4cQjEq6/yvSJFuK5xYz7/7TfiHlWrMr9t2hjLTy08dfmOHgVcnFS8uClnePYs8xAXx1xr8+077gBcfXxM/RGlG27gnqVL84z+/rgpcXGA4uuvu93lpk3hh9q1AbmlSwG4atWYW2d9UxHAdP9+rJrff8eqvPlmAGzz5px3SbS8w+LF8HiFCijMq2xO+Kd0RdC4Hs2SsukREVlg2/b/FSlzWClplmVNFZG3c/zmXyDPYjoiJkHoiy/QgAUKIPDlyrEYTgvE19e7KrgzEKdVuCZNQlsvXox2q1EDC+KttxDMChVYtKAgt7mq22lKixa5DzJpOUEdU1YWzKKZkCL40EuWmPdLl5o+GtpUR33q8+d5dj1o5aydoePRNoGHDxOV1zjC5Mlo08xMQEP7v+7YYXZ+zp/HMqhfn2uLFQM4CxWCwdu1A0wTExHQV181fWz79uX59YxHYKDpLFa8OOA+cSLauWdPArfz5hEbueUWLLvt21mHRo3IuVDhaNKE9zrmevVwVxo2JKaiBXc6d4Znypfnns2aYaE6DzyeOePetUpNxU05cYK1q1sXC2bYMP7//fc8vwKG1i+Jj8fCbNQI6+PHH3F9Tp2Cb5TS0uCbxYsB88aNiU85a3R89ZWpJZKWxnVLlmAZ6bq9846xajRXJzeUW/dksVyhWZKDHhcsi/8jB+BYIvIvEdmdy/F4UXQ0AhIQgBVw4QI7HG+8YXI11qzxdln27jVHw0X47oIFMNq4cbgc9eqhYb78kgUtVAgm/OQTt3uyeLHbYomPRys58zoWLEDbK3laDeryKLPs2wdjqjl68CCCos+0dSvPqTshCxa4+6L4+ZmzJqmpzIu6WcuWwWxt26Jh9+zBX58/H2Dp0QMB277djDEigoBo8+YEPps3R7PpeEuWxCJ55x2E6vXXuc+6dbgGDz6IBh4yhPnt3Jl7f/wxgvvxx7iLrVsDFprgtHMnz+bnxxrt28ez6JZwXBxumZb01zaLlSoxX7feiuuQkOAW2M2bsRicoFGwIPM8YgTgWbAg86MFlSdNcvNQu3b8rVAhU3S4QQOTQexUGiKM6fhx3FK1Ptq3Z1zx8aZ0gJNKl2a+Nm7k+rZtAdeoKFzGnEoK5pps2/7LL6GJc6CIRIhIgIiUz/57KxGZ5LiuttBysYDH94NEJFwAi99EpOTV/O5tt91mX4kmTrTtihVt+9lnbXv2bNs+edK2d+607ffe8762a1f3++Rk277zTtv++mvb7tvXth98kPs0bmzbYWG2nZbGdadO2fbjj3v/7rx55n1Wlm136MC/ShMm2Lavr3l/+rRtP/yw+z4PPmh+x7Zt+7nnbPvQIfP+/fdte+NG8374cNv+4w/zftAg2w4PN+979rTtCxf4f2oq91dautS2v/nGvO/Vy7YTE/l/QIBtf/65eZbOnW17zx7bfvdd5nfUKNuOj2eeEhK4rls3/j182LabNuXZ+vWz7ago2161yraHDLHtO+6w7Ycesu39+227Tx/bbtHCtl95hXnp1YvPP/iAOe7Z07ZHj7btGjVs+4UXbHvTJn4jJYXfeest2961i/8nJ9t2jx7uuX30Uffcdu9uvmvbtn3xom337u2+5swZ227TxrZ/+MG2+/fnuR99lL/Nnm3bly65r+/YkfnJzLTt7dtt+6uvGEfFivx/zx43D3TubNsZGfxtxw7msUsX265Vy7bHjuW5nTRihG0HB3N9aKhtjxzJPW65hbX3vL5/f55BKTratqdMgYevhkQkxL6M/OXK0rCvollS9vsoyaEjvG3b7T3/dr3o0UfR8M602X373NuZIph0uuuwaRPXaCJPs2b4ymXLYjq++aa7N6xna0MRLBqnj6nl55yxlOXL0SZxcbymTcON+eYbfOjDh9FoWvtC3QKtq6AtGXbtMvfUfIIvv+TzrVuxesqVw6I5csQUm4mIcJ+JWbDAFC/WLUrVaAEBRttqEluTJrgveq7ilVeYu7Awdw5EwYK4eIMHY4Z//bXZCVqxAtdm/HjcxiVLsCJKluR5f/kFa+PkST4fNIi5X7CA+Tt4kFhF5848o58f4ypWzN1yoUIFXCfnNuu99xKLat0aSzQ6mnV6801cTt3tOXeO73/9tdmW/uMPXmruZ2XBM7ZNzMO24ZsHHmBehgzBonLW5jx/nufs04dxNmvG/Lz9Nu5D8eLuzM8LF3DRhgzhsxYtuP7dd7FWbNt9va6fbiPv3cu6a5ZvbinPZoSWLetdm1GPr4eHY85t3IhgnT7NZ88/j4BHRnKq0Onzb93qLuArglvjPIugbfvKluXfw4cR4pIlWfBjx2DEPXswaStXZidm7VriATVqsPhTpwJWHTvyDHPmsAOhMZGgIJhe80DWrycmoVmNy5Zh1g4ezHN99x2+cKFCCPrkyZjr69ebU5hNm+LLx8S4n3v7dpM8pM15RDCja9aEebt2JcvV358x6Hax7rQ0bAiI6wlTHx/m6OabYeRZswja3X03gj9lCsDWoQMu1QcfAA7vvw9YBASws/PhhwBAcDDxkh07AJwjRwBFFfQjR4jPaDWrixfZxbjzToKYN9xArKp+fdZLAcHXl8Cos15Hy5YId9Gi/G5KCmPu1InfGT/ezSOPPML6PfAAbvKWLfBD3bpmHE7q0IE5bNiQQP6GDQBhq1bwyty57uvr1eM6VSyrV6NADh3iey+8YNoqiFyfbdg8CxpKqakEMDdsQBtlZQEKd9+NZtdDSs5Gus5Gx0rBwe7MTBE0TGYmwccDB0zBnm7dTCAwNJTgZb16+NDa81NjAbGxfEd3RbTz/Ndfm4X29XVbTL/+auIRIuQlONOGZ87k2QoWBIRCQkzJw5QUAo3aeHnNGkBGC/X+9BPMGRgI46akYH2UKcMc6gnd0FCzkxQbi8CNGkVQ8KGHmKs6dUzcpnhx5vzllxG8Xr0YX6tWgNv48QhoSgr3mTQJgF2yxDRv3raNee7XD9A9d4573XuvKbLbuDFjGDTIaOF9+wgYTp1q5qhTJ+ZUx3fyJMFZPTBm2wRP+/bFGg0NRblogl6JEliLapHpeZ20NEAxLAyLZONG5i0ry9S40NYGWnDZspjDgABey5cDsF27omw0btW5sxm/bQMM69fzXMHB7Lx07EjcSIsve7ZmuB6UZ0Fj6lSsg8ceM6ndPj4wmVOTRkWx9eWk8HB370yNSt90Eyb+/v2YjLo92LAhWuvoURhehen4cdwPZ7GbJUtMApWId8Bz0yaYVQOYcXEwttYDSUiAeXXMWhBHA3/nzyN4eqQ/IsIdIPU8zDZ/PoLSuDHz4u+P1ZKcDHBVqUKg8sIFhG/TJrR4WJipz+FsE3DuHODw1Vdo0R9/ZPu7QgXGVaKEad/Quzc7JoMH81zt2/P+xRdxEebMYfv06FGEpHdvNPfbb7NGJ04w723bYkV89BE7C1WrYi3ExGANNWkCIJ07Z+axTx9cgfvuQ2BjYljPxx/nWUUITBYowOubb4zFERWF9aMAk5AAoBUtCp9VqgQP3H8/LopuOTszjtXqffxxxlajBtbIV1/x/f79vRtsFSqERRUcbIC6Qwf4Us+2KJUvj4stYnb69MBkbinPgkb37lgWugUpglnvWXA1Ksq9jRoVhdCkp7NTkJBgGLBAARi3USPiJcnJJgFKBDPeGfNYuNC9jXryJBrX2abA39/t4syY4c4DmDnTnWsxf747ou+5KzJ3rjttfOZMd26H83BbVhYAqGUOnT1UihdnLr75xuQhDB4MI772GnOp51727DHV3ePiTO+UJk0AjB49AJ716zlKb9sI81df8TwTJmDxDRkCwDdoQExj/Hh2WSpV4vNOnXBz0tIQ+sGDAbpBg3iO+fMBbT3N2rat0bQnTgDGCq4ZGbheWlyoRg2soJAQQN3Zy3bIEFOjIyWF+FZEhBH4UqWIj7z6KlblsmVu1/jFF00a+Nq1gG+ZMsx7ZKQ5IKjUqxfKqUoVrlcL9uxZAHrkSHdH+kmTjMWiz3bmDPO9cCFuUL16AFpOXd+ulfIsaFSq5B3TcGqalBT86IAAfPDjx/l7rVpoga5d8fE1BvLrr27hCwhAAJSOHEH7O3/T399tVfz+O8yutH+/e9s0NZX7qNa2be7h7G3h52dOeIoAEs7zBAsXco1+f/16E/u4eBGgU8bZtMmdRr54sQm+arl/TXNetw6X4+mnAYDOnRE4f38EvGFDQNFp5Wi5gIYNidFkZTGXYWFoX+1HumgRwt+/P9/Tcy7vvst3IiL4nfh4XJEzZ/j3/vtxgWbN4hkrVGCOdevzX/8CILWmaefOBJ01aDhmDP/X3xUBkI8dQ7lERPDSPA7L4nn0HM3GjcQTnGseFsY8NmrE/G7axP0OHCBoPHCgO8bQpQsHDEuWJCC7fj1uzfz5AMT99+Nu1KnDvf383IAhwlh9fU2zctuG/4sUwaJzBv//CXka/xN0+rSpexAXh49erBhxi/R0mLNOHSyJpCQEw2lKbtrkfZjt2DGz9y+CdnHWtDh71vi+SkuXmnTg9HSYu21bxpaQAANqT5DUVBg2NdU0vjl9GsbSwi5a8emnn2CQCxd4thUrYMKoKHPoq3x5mNlp+fj5uSubhYSgqUXM6VWlP/4wRYZiYwGT227jFRyMmxYYiHVQsCCasXhxcxpUk7Tee48xWhaB3fBwfuvZZ7EgbrgBIQ4L43o/P8D5tdf4/LPPAJnChbGwEhJwV7ZuNZm3Fy5grdx2G+6OFg7q0QOt/+KLrHOZMgQdDxxgbk+cYN3atAGU6tfH9P/wQ8Bn9Wp33sP+/bglVauamik7dmCdPfkkgDx8OM+0axfBdbV8MjOx0LSfbenSgMG995LHkpUFWDj787RogVsUGWkA6fBheLpUKZ71gw+YmyNHAEXP3cLrQXkWNLRyUZcuaKCWLRGs8ePdPS1CQ90l0Hbv9g6CbtrkzsTMqXv4qlUwS2ioOZJs2ySRnTyJSbt3rzkRWrAg7sClS/xm6dLmvEexYgj5ihUwQuPGpiXga6+ZvrCTJ3N9y5bcZ/JkfNyEBMYwcyY7FB99hJW1fj2Mt2ABQhsaiuBs3cr78uURzGLF0OzOuI4z9hMS4j6inpHBnD72GPd67jmsgS++AOR27kQ4lIHr1sXie/ddgPbbbwHhCxdwe3r0wMX66SdiFi+9hIAtW8Zv9O+P0L36Kpp0+nSCmjNmMJcvv0wVs7NnjdZu0oRxHj0KeDdvDrA++SRAo9mwhQsjeC1auAsXxcYS42nThrHs2YNgdu0KeN1+uynpN20a49O1FmF+Dhxg/Y4eBRS0b++hQ8SanPUynnwSi/LNNwGm4GDWa/t2eLFtW3bcatfmu1FR7t09PVwnAm/s3QugHTsmuaY8Cxrt2iFMzgDRmjVuwEhO9q7vuHNnzh3eMzKMqTlvHt/t3ZsFycxkQb78EtO8WjW00PDhAFLlyjDSq68aTR8cjOb/7DPe62EzjW+kpaGZ1BLIykLIJkyAuWwbpvnhB7RfVhY7GzNn8vmlSwRd1VQ/dYrf1y27desAtu7dcUOmT+d7/fqZHadOnfi3cmXiOupuaNc2ETS205o6fpzA6803IySVKqGtv/0Wc37TJhhdv9O5sznI1qYNgmZZPOfs2bhE1arxPPfcA0jOnQuojRnDfStWNKX52rXDHfr1VzT11KlYjiNGYMW9+CL3HDECZWLbxETWrYNfTp4EYD78EMvp9GmeW4Q1PnGC3+jYkeeYOROe0Oxh3RXp0wdwiIgwLtt995lT184SCZGRCH7HjlgkISGA7+LFAJoG8gcPxhW86Sa3VdukCYAqAvDu2oWltmEDoFS4MNe0aOGdz/FXKM+CRvXqV06hVfM9KwtmOHIEhmzaFG0UH4/w7tuHGatt/M6fByBuvpmI+aJFMI6eS0hIgKmdW2QrV5rqWSL4ls5ycrNmuVPNnbUtRNDA7doZbbRhA4E9fUZNM3f2mnXuksyb511XY8AAAPL222HGBQuwxhIT0XRjxpjWh1lZAEpKCtouPR1g9PFxW2qJiSYlPyUFt+Tmm/Hl69Rha3vKFF6bN/PdffsY6/PPY6LrKdZu3WD4hQsB/N69AZtSpXCdevQwXdSmTQMMmjcHdL78kryOcuV437Il1pGPD9+5+WYstgIFsOLeeYf1atIEkHznHca4ZImpmhYXx7yMHMlzaYGjsWOZEwWXWrWw0kJC4A0nqL7+Ogrj1lsR7h07mMcxY3BntBLYqFEATffubte4Y0fWqmtX0/9FU+mjorBYmzcHIBo29N5V8ay/8Vcoz4KGJ6WkIMxLluBeREaC5omJMG3Vqmi806cRrrp1YYiFCwEPTazKzETg9aSnCPd09pjwFNioKO6v256XLhHkcu6h62lHpdmz3cebp0838QYRNKizvsL06e7cjdmz3WXvly7FTBcxAUl1w+LjcVP0YFVQEG5OpUqmdsYPP5iCww8+iPDs3g2gHD8O45Yvz7yuXg3jOuumliiBdaZd5LdtY4yrVyNIDz7IfPv5IQCffILW794dMNBiRePG8awzZ2I5NG3K2YyJE003+pdfJi7w/ff8v317LIlx44gpFSqEMPv5GQvrxAl2Qz75xLQTyMwkMPr007gnx46hRBo0QLBr1eL/w4Zh8SxY4K5e/9lnPOO99zJXu3dzj969AfgWLXj17AlYqgWjNGAALl6TJib2s2sX49YyAc2bM3cbNnjv2mj7zetNeRY05s2DkdWMK1IEMzwmhhhB9+4wzi23mOI4WVlGgytt3Ohujegs96ffOXrUneuxcKG7ZqdnLoanFRIejlZQkzUujv+rhjt/np0PPbmZmIig6/ZhQgJMrmM4exZt6swrqFrVCLDumiiDeZYUXLHCfXgrMtLEcA4dYmegeXNe+/ZxmOzWWwHc7t1h7t9+Y+5WrOC3qlYFXLQ48aVLgGiPHgi8Wms9e+JCXLzIvWvWBDzHjsXVGjQIIfXx4Td690bQJ00iBrB9O8HW/v2xoJ55BsEuWZJ5rV0bQbUs4i21awM8OhfNmhEbqFkTU75qVYBl5EgspWrVWM81awBSywJcypcH2AYMwGI9dAjQDA1lrdu2xVUYMgT+iI52V69/+21iKMWL89x793KP4GBcjpYtGWeXLgDXiBHuQHzt2gCb585KZiZ/j4zk5VkW4K9QngWN229HEJcuZWHPnyde8PLL5pqjR73rb3r2hdizB1NWyfNIuWdQMDnZXUJPBN/YKYSzZxM0VZo+3Q1MWnxHac4ctKCSp6vhWW3c19cdhJs92/39uXPdJ3iXLzfZkpppqLVRtciQCtXWre7udPv3m0ZB2pdW80yGDsUiycwk12DbNkBCi8j89BMC3KgRGlQ70VWpAhi89x6AlpaG8Dz8MN8/dAgromxZ/larFlbHLbcgXNWqYVW8+irBy++/Z+0feABhnzbNVG+bOZPYwbRpgGpEBHPz1luM4/x5rv3kE4KrJ08CPjt3AqRNmgBgNWrAJzNm8NuNGnE/tWD69MGaS0oCmMaNM60Y4uKYk1OnCNT36cMY6tXDOjx71u3KdusGGKv1m5yMRahNwSIj4e2wMK6tVYt71at3fXZT8ixo1K6NJlNmP3PGXdFbxPQlVXLWhxBBUxQp4o5qb9yIfx4ba2p2NmvG4iYkYKlYFhH4pCSuO3IEIb50CQtgxw534Cw4GOFTCg5G2+k5hi1bAEHdY9+6FfdIj1Z7vt+yBSDT/I0tW9B0M2eiyZYvh8kCA7FoYmIAvzJlTLZpZibCsHat+3Db1q3u3hx6MEyEZ3UeiNJzOMq0oaEmPvLww/z2ihU874oVCKAGFxs1IvDbty87U1r4uUoV5qJTJ0CmUiUskQ8+AFCmTUN4goNJ4Z3c4QAADhNJREFUtnv0UVytoUMBE61bUacOllLx4ry/8UbWvmhRYhz33msArWxZvvvtt2h4PQczezaWzYQJJjV80iSskuefx5o4doznbNiQ8ZYoAdg89BDr5efH/FgW/NKjBy89/9K7N7/XqZOp/bF/P4pBCygVL87vp6QALgoU77wDWKpFKuJOpf+rlGdBw5OcoGHbLNDFi2i8s2d5TZ0Kcw8bxvuICDSFpoFrIZzXXkPA9DxG8+bcq1Qp4iWvvw7zlyyJ4D/7LFquUCGCa08+aSyJZcsQSm0LuHkzzKBnPMLD0cjaJvHgQfI29CTtoUP4vbpLcuAAzK2Nfnfu5Lk+/5xnDgjg7x07MmZ/f6PpdcuzcGGYNTOT369Xj8BpmTKAZoUKCGu5ctxj714sq+hob9Bwnj3RJkgFCiCQmjH6xhu4JFOmcK81awACPYF6113sHjRvzjhGjUIwJk/mOWfNwlXQMz+33cb9q1TBr2/fHqBfs4bf//e/AaFvvgG8tPn0iBGsy113YQFoBa377+f6OnUQRC0ufOYM83PjjYzNxwc3JTWVMQ4dyr2GDsXi3bIFq0cVWZ06AM7rrwPcsbG4Q5omoCeOY2O5xz33wFePP25iGwrY584B5s5t8sqVsYycoHE9KM+Chp4RGTiQxY2NhWk1J6F4cVOQtXx5k6s/ZAgLpy0D27UzBXZXroSp1dU4dgzNrJ3MUlNhZN1W1ROkX3/tLobjzOj87TdTHVwEwXEWtNVcDOfnzvfTpuG3K/36q+m0pvfv3x9hKlbMFDPW1PFffwWENIAXFoYWU2Hv1Mk08Tl9mtjMgw/y/x07EJRp02DOHTvQeCtXcn14OMHZmjUR4NhY01emenXm31lRvHhxrIi338Zq+/57/tVYwaFD3G/YMFyWiAiuv/12gG/pUhPP+O47gKR8eYTp5Elcn5UrzXH1Dh1Y459+QiBbtCAHomhRgKJFC+Zj8GDcx4YNuf/EiczDsGEA54YNgMTPPwOaCQms288/m9YPJ0/CC3fcAX9p1XStgN66NfPUvz+WyqRJJkYVGwvPOV3cLl0AQY3ZlSvnbsWQnGxygVJT4e0zZ0zmc24oz4JG48Yw5siRMI6fH4Krvn10NOars0nO7NmmkZEIpqezT8mqVW6B9dwWXb3ajfRhYfjYChhHj2Ie69mTM2dwWVRg1Z3RLMC0NBhKD8BlZBAXUCskMxPLRJ8hK8uY5fq55o/o9yMiDGBcusQY9PcTEwEBBQx1N1QzRkWx/adJRElJfK6g9fHHMHPr1gBmt24I3OnTCE1qKnMYH0+wLzraHNXW+iH162PR+PoiXBUqYDls3YpA3Xknltry5VhuAwci4M2aYYWMHo3p36yZOWmriXLz5hH3qFGD2EODBjzPiROsZbt2xBMOHeJe7dox9xojadLEtK2cMIHgbJMmrG9GBmutzZzKl8cVef99lErz5vDW2LH8pp6qVpfkhRdMr5pSpVA0332H9ZeaikU3YwaAdvYsazNtGkHVs2dZy+3b2bUrUIA1TEhg7bKymMcaNdznnv4q5Qo0LMvqKyIfiUhjEWmdXXwnp+s6i8hYEfERKnp9kf33OiIyR6gAFioi/W3bvpSbMSk1aMCetQrE6dNGWES8g57x8e7DPJmZ5CI4k79273YHRVetctcnmD/f3Q3Ms7Dvb7+533sGKOfPdwc0PbutrVxpzkCIEJPo0MG8X7MGAdL369ZhJel7z/hEUJC7KndgoLuw8Zo1pqCwiHcQdO9e99ayM3qv7QEaNjRnaSZPNud14uOJWaiP7euLid6lC2u1Zg2aWWtfvv8+AqLNlW+5hTUuUID73Hsv69myJeAwaBBj13MxI0eyfhMmMIabbsJi2L2b7XIfHyy+PXtwP5991hQIevNNwG/yZNzP0aOJS6xdi2s4YgSgcOYMVlKNGqxraiqgroHYY8cY34QJgNgNNyDYhQvz/VatjILZvp2x1aqFJVajBr//7LPwdJMmuIoffQQgFC3K/7t2NWsUHIw7OmSIWSN1W3NDubU0dotIbxG57FAsy/IRkR9FpKOIxIjINsuyFtu2vVdERovIGNu251iWNVFEnhORCZe7V27IMxDqCRo7dri3Uj3PXsTGuntzXrzIAityX7qExtJt0awsUxdDBM0bFOSue7F4sbsw8Ny5btdl1ix3t7Vff3XnXkyf7k5vnzHDnasxc6Y7l8PX192M5/ff3ZbU8uXuz9escd9vyxY3qO3d62bInNo5XI7U31Zq1w7zW+83YgQMryBcrx7r168fc9mvHxq8RQsCzU8/jcVTvDjXjh9PNu1DDzHPf/xhLJJBgzDn1aJ7+GEEsWZNYgMPP4xA16wJuPXqxf9r1sQau/9+nrNOHayCZ5+FD9TF2LaNde3dmzFr1bJXXgGsvv6aHI6bb8YaKlUKhbF/v8nFOX6c8U+daoCkSxeeR5s5t23LdRpHatECsFHQqFLFVHu7nlTgypdcnmzb3mfb9oErXNZaRA7Ztn0424qYIyK9sosJtxeR7DOZMl0oLvwfoSuBhmf+xYYN7mrkAQHe1budrkhAgFtLr1+P9lOQCQnBzNYMzvBwmFYTqg4dwjxVEIqORgD0KH98PMKiQnnuHKatanbPXI3UVBhK8yvS03GPNCiWmYm7oe9tG+FznqmJjnY38zl1yr2V7Mz+FAEo/ywL15l4pO0xlRREtN/IPfegSdX3f/FFAFS7vI8dC8BlZDCPM2bghjVvDlBOmEBcq39/1mb4cBTBqFGs/SuvYPpPn86Wp/ZW9fXl/RNPMJaZM3n/1FOmDKEW+UlJ4TejonAJo6LYBl2zBoDftAnB/vRTrLhFi3C92rUj/rJ8OZZN8eKmqJDuiFSvjhXpzOB87jm3EtEj9EotWqD8POf0epNlO7vC/NWbWNZaEXk7J/fEsqyHRaSzbdvPZ7/vLyJ3CG5NsG3b9bP/foPQfe0Wz3tkf+5slnTb0aNHrziuxo0NMCQmsjiK2p7vk5Iw8ZTpk5MxG7WupOf7lBT+r1tjqancSxO00rJbPikoeL6/dAmB0CzR9HQEQN2hjAy3e5SRwXc0Wp6ZyW9qirLn+6wsxqwg5Pnett1C7/leBGtKtdp/632pUgZMEhIYr75PTOT5rvZ9UhLz51xj5/vkZNZD1zwlhfW83BqnpXHvy63xta5pZib30DXNyjKFikTMLt+frVlCwrXNcWQk8aQrkWVZobZtt8rpsyu6J3/WLMm27T9rWXBdyb7GZkkiVzc5+ZRP+XRtdEXQsP+kWdJVUqyIOIxcqZn9tzMiUtayrIK2bWc4/p5P+ZRP/2DKVUzjKmmbiNxkWVYdy7IKC/1cF2f3VlgjNIUWuXKzpXzKp3z6B1CuQMOyrIcsy4oRkbtEZJllWf7Zf69uWdZyEZFsK+I1oYfrPhGZa9v2nuxbDBORtyzLOiRsu072/I18yqd8+mfRdQmE/repVatWdkhIjikh+ZRP+XQd6M8Cof8N9ySf8imf8hDlg0Y+5VM+XRPlg0Y+5VM+XRPlg0Y+5VM+XRP9TwZCLcs6JSJXTgkVqSgip//Dw/lPU154BpG88Rz/Pz1DLdu2K+X0wf8kaFwtWZYVcrkI8P8K5YVnEMkbz5H/DFC+e5JP+ZRP10T5oJFP+ZRP10R5HTR+vvIl/3jKC88gkjeeI/8ZJI/HNPIpn/Lp+lNetzTyKZ/y6TpTPmjkUz7l0zVRngINy7L6Wpa1x7KsLMuyLrutZFlWZ8uyDliWdciyrHcvd93fQZZllbcsa7VlWRHZ/5a7zHWZlmXtyH4t/m+PMye60rxallXEsizf7M+3WJZV+78/yivTVTzHM5ZlnXLM//N/xzj/jCzLmmJZ1knLsnZf5nPLsqzvs59xl2VZt171zW3bzjMvoSp6QxFZKyKtLnONj4hEikhdESksIjtFpMnfPXbH+L4UkXez//+uiIy+zHWJf/dYr3VeReQVEZmY/f/HRMT37x73X3yOZ0Rk3N891is8x30icquI7L7M511FZIWIWCJyp4hsudp75ylLw85FoeP//OiumnoJRZZF/sPFlq8zXc28Op/NT0Q6ZBeY/ifRP50/rops214nImf/5JJeIvKrDQULVfSq/cn1/0d5CjSukmqISLTjfUz23/4pVMW27bjs/58Qkcs1BShqWVaIZVnBlmX9E4Dlaub1/66xKc50QSi+9E+iq+WPPtlmvV92Uez/NfrLcvA/12Htn1LoODf0Z8/gfGPbtm1Z1uX2xGvZth1rWVZdEQmyLCvctu3I6z3WfMqRlojIbNu20yzLelGwntpf4Tt5hv7nQMP+zxU6/q/Rnz2DZVnxlmVVs207LttczLFzhW3bsdn/Hs5uIdFS8MX/LrqaedVrYizLKigiZYQC0/8kuuJz2LbtHPMkIQ71v0Z/WQ7+f3RPcix0/DePyUmLhSLLIpcptmxZVjnLsopk/7+iiNwtInv/ayPMma5mXp3P9rCIBNnZUbl/EF3xOTx8/55C7dv/NVosIk9l76LcKSIXHG7xn9PfHeW9zhHjhwTfLE1E4kXEP/vv1UVkuUfk+KCgmT/4u8ft8QwVRCRQRCJEJEBEymf/vZXQB1dEpI2IhAuR/XARee7vHvfl5lVERopIz+z/FxWReSJySES2ikjdv3vMf/E5PheRPdnzv0ZEGv3dY87hGWaLSJyIpGfLxHMi8pKIvJT9uSW0S43M5qEcdxtzeuWnkedTPuXTNdH/j+5JPuVTPuWC8kEjn/Ipn66J8kEjn/Ipn66J8kEjn/Ipn66J8kEjn/Ipn66J8kEjn/Ipn66J8kEjn/Ipn66J/h+v9mASwwEniwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = plt.axes()\n", - "ax.set_aspect('equal') \n", - "\n", - "# plot columns\n", - "for t1 in T1:\n", - " X = fx(t1, T2, eps, k1, k2)\n", - " Y = fy(t1, T2, eps, k1, k2)\n", - " plt.plot(X, Y, '-b',linewidth=0.7)\n", - "\n", - "# plot lines\n", - "for t2 in T2:\n", - " X = fx(T1, t2, eps, k1, k2)\n", - " Y = fy(T1, t2, eps, k1, k2)\n", - " plt.plot(X, Y, '-b', linewidth=0.7) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## User mapping" - ] - }, - { - "cell_type": "code", - "execution_count": 129, - "metadata": {}, - "outputs": [], - "source": [ - "class CustomMapping(Mapping):\n", - " _expressions = {'x': 'A*(x1**2-x2**2)',\n", - " 'y': '2*A*x1*x2'}" - ] - }, - { - "cell_type": "code", - "execution_count": 130, - "metadata": {}, - "outputs": [], - "source": [ - "DIM = 2\n", - "M = CustomMapping('M', DIM)" - ] - }, - { - "cell_type": "code", - "execution_count": 131, - "metadata": {}, - "outputs": [], - "source": [ - "x1, x2 = symbols('x1, x2')\n", - "A = Constant('A')" - ] - }, - { - "cell_type": "code", - "execution_count": 132, - "metadata": {}, - "outputs": [], - "source": [ - "fx = lambdify((x1,x2,A), LogicalExpr(M, M[0]), 'numpy')\n", - "fy = lambdify((x1,x2,A), LogicalExpr(M, M[1]), 'numpy')" - ] - }, - { - "cell_type": "code", - "execution_count": 133, - "metadata": {}, - "outputs": [], - "source": [ - "A = 1." - ] - }, - { - "cell_type": "code", - "execution_count": 134, - "metadata": {}, - "outputs": [], - "source": [ - "T1 = linspace(-1., 1., 50)\n", - "T2 = linspace(-1., 1., 50)" - ] - }, - { - "cell_type": "code", - "execution_count": 135, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = plt.axes()\n", - "ax.set_aspect('equal') \n", - "\n", - "# plot columns\n", - "for t1 in T1:\n", - " X = fx(t1, T2, A)\n", - " Y = fy(t1, T2, A)\n", - " plt.plot(X, Y, '-b',linewidth=0.7)\n", - "\n", - "# plot lines\n", - "for t2 in T2:\n", - " X = fx(T1, t2, A)\n", - " Y = fy(T1, t2, A)\n", - " plt.plot(X, Y, '-b', linewidth=0.7) " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/Exterior_Calculus.ipynb b/notebooks/Exterior_Calculus.ipynb deleted file mode 100644 index b7de5187..00000000 --- a/notebooks/Exterior_Calculus.ipynb +++ /dev/null @@ -1,547 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exterior Calculus" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.display import Math\n", - "\n", - "from sympy import symbols\n", - "from sympy import Tuple\n", - "from sympy import Matrix\n", - "from sympy import srepr\n", - "from sympy import Symbol\n", - "\n", - "from sympde import Constant\n", - "from sympde.exterior import d, wedge, ip, jp, delta, hodge\n", - "from sympde.exterior import DifferentialForm\n", - "from sympde.printing.latex import latex" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "x, y, z = symbols('x y z')\n", - "a = Constant('a')\n", - "n = Symbol('n')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "u_0, v_0 = [DifferentialForm(i, index=0, dim=n) for i in ['u_0', 'v_0']]\n", - "u_1, v_1 = [DifferentialForm(i, index=1, dim=n) for i in ['u_1', 'v_1']]\n", - "u_2, v_2 = [DifferentialForm(i, index=2, dim=n) for i in ['u_2', 'v_2']]\n", - "u_3, v_3 = [DifferentialForm(i, index=3, dim=n) for i in ['u_3', 'v_3']]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "u_n, v_n = [DifferentialForm(i, index=n, dim=n) for i in ['u_n', 'v_n']]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Operators" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exterior derivative" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**\n", - "\n", - "* $ \\mathrm{d} \\circ \\mathrm{d} ~ u_i = 0$\n", - "* $\\mathrm{d}~ (\\alpha u_i + \\beta v_i) = \\alpha \\mathrm{d}~ u_i + \\beta \\mathrm{d}~ v_i \\quad$ [*linearity*]\n", - "* $\\mathrm{d}~ u_n = 0$" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "assert(d(d(u_0)) == 0)\n", - "assert(d(u_0+v_0) == d(u_0) + d(v_0))\n", - "assert(d(2*u_0) == 2*d(u_0))\n", - "assert(d(a*u_0+v_0) == a*d(u_0) + d(v_0))\n", - "assert(d(u_n) == 0)\n", - "assert(not(d(u_0) == 0))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Adjoint of the exterior derivative" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**\n", - "\n", - "* $ \\delta \\circ \\delta ~ u_i = 0$\n", - "* $\\delta~ (\\alpha u_i + \\beta v_i) = \\alpha \\delta~ u_i + \\beta \\delta~ v_i \\quad$ [*linearity*]\n", - "* $\\delta~ u_0 = 0$" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "assert(delta(delta(u_3)) == 0)\n", - "assert(delta(u_0) == 0)\n", - "assert(delta(u_1+v_1) == delta(u_1) + delta(v_1))\n", - "assert(delta(2*u_1) == 2*delta(u_1))\n", - "assert(delta(a*u_1+v_1) == a*delta(u_1) + delta(v_1))\n", - "assert(not(delta(u_n) == 0))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exterior product" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Euclidean Hodge" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Interior product/contraction" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "from sympde.topology import Domain\n", - "from sympde.topology import VectorFunctionSpace\n", - "from sympde.topology import element_of\n", - "\n", - "domain = Domain('Omega', dim=3)\n", - "\n", - "V = VectorFunctionSpace('V', domain)\n", - "beta = element_of(V, r'\\beta')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Adjoint of the contraction" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Lie derivative" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Adjoint of Lie derivative" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Trace" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**properties**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Latex printing" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mathrm{d} u_{1} + u_{2}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "expr = d(u_1) + u_2\n", - "Math(latex(expr))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mathrm{d} u_{1} \\wedge u_{2}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "expr = wedge(d(u_1), u_2)\n", - "Math(latex(expr))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mathrm{d} \\star\\mathrm{d} u_{3}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "expr = d(delta(u_3))\n", - "Math(latex(expr))" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\star\\mathrm{d} \\mathrm{d} u_{2} + \\mathrm{d} \\star\\mathrm{d} u_{2}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "expr = d(delta(u_2)) + delta(d(u_2))\n", - "Math(latex(expr))" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mathbf{\\beta} \\lrcorner u_{1}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(ip(beta,u_1)))" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# css style\n", - "from IPython.core.display import HTML\n", - "def css_styling():\n", - " styles = open(\"styles/custom.html\", \"r\").read()\n", - " return HTML(styles)\n", - "css_styling()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/Introduction.ipynb b/notebooks/Introduction.ipynb deleted file mode 100644 index 7639697f..00000000 --- a/notebooks/Introduction.ipynb +++ /dev/null @@ -1,642 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# some imports\n", - "from IPython.display import Math\n", - "from sympy import sin, cos, pi\n", - "from sympy.abc import x,y\n", - "\n", - "from sympde.core import Constant\n", - "from sympde.calculus import grad, dot, inner, cross, rot, curl, div\n", - "from sympde.calculus import laplace, hessian, bracket, D, conv\n", - "from sympde.calculus import jump, avg, minus, plus, Dn\n", - "\n", - "from sympde.topology import (dx, dy, dz)\n", - "from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace\n", - "from sympde.topology import ScalarField, VectorField\n", - "from sympde.topology import ProductSpace\n", - "from sympde.topology import Domain, Square\n", - "from sympde.topology import element_of, elements_of\n", - "from sympde.expr import BilinearForm, LinearForm, integral, find\n", - "from sympde.expr import TerminalExpr\n", - "from sympde.printing.latex import latex" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "DIM = 2\n", - "domain = Domain('Omega', dim=DIM)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "domain = Square('Omega')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "V = ScalarFunctionSpace('V', domain)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "v = element_of(V, name='v')\n", - "u = element_of(V, name='u')" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "a = BilinearForm((v,u), integral(domain, dot(grad(v), grad(u))))" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left( v, u \\right) \\mapsto \\int_{\\Omega} \\nabla{u} \\cdot \\nabla{v} ~d\\mathbf{x}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(a))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "b = LinearForm(v, integral(domain, cos(x+y)*v))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle v \\mapsto \\int_{\\Omega} v \\cos{\\left (x + y \\right )} ~d\\mathbf{x}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(b))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle [\\![ u ]\\!]$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(jump(u)))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\{ u \\}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(avg(u)))" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle u_{-}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(minus(u)))" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\nabla u \\cdot \\mathbf{n}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(Dn(u)))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle [\\![ \\nabla u \\cdot \\mathbf{n} ]\\!]$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(jump(Dn(u))))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\nabla{u_{-}} \\cdot \\mathbf{n}_{-}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(minus(Dn(u))))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\nabla{u_{+}} \\cdot \\mathbf{n}_{+}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(plus(Dn(u))))" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "a = BilinearForm((v,u), integral(domain, dot(grad(v), grad(u)) + jump(u)*avg(v) - avg(u)*jump(v)))" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left( v, u \\right) \\mapsto \\int_{\\Omega} - \\{ u \\} [\\![ v ]\\!] ~d\\mathbf{x} + \\int_{\\Omega} \\{ v \\} [\\![ u ]\\!] ~d\\mathbf{x} + \\int_{\\Omega} \\nabla{u} \\cdot \\nabla{v} ~d\\mathbf{x}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(a))" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\nabla^2u$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(laplace(u)))" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mathrm{hess}( u )$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(hessian(u)))" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle u \\ast v$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(conv(u, v)))" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "W = VectorFunctionSpace('W', domain)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "w = element_of(W, name='w')" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mathrm{D}\\left( \\mathbf{w} \\right)$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(D(w)))" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "l = LinearForm(v, integral(domain.boundary, cos(x+y)*v))" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle v \\mapsto \\int_{\\Gamma_1} v \\cos{\\left (x + y \\right )} ~ds + \\int_{\\Gamma_2} v \\cos{\\left (x + y \\right )} ~ds + \\int_{\\Gamma_3} v \\cos{\\left (x + y \\right )} ~ds + \\int_{\\Gamma_4} v \\cos{\\left (x + y \\right )} ~ds$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(l))" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "equation = find(u, forall=v, lhs=a(u,v), rhs=l(v))" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\mbox{find} ~u \\in V ~\\mbox{such that}\\\\\\int_{\\Omega} - \\{ v \\} [\\![ u ]\\!] ~d\\mathbf{x} + \\int_{\\Omega} \\{ u \\} [\\![ v ]\\!] ~d\\mathbf{x} + \\int_{\\Omega} \\nabla{u} \\cdot \\nabla{v} ~d\\mathbf{x} = \\int_{\\Gamma_1} \\left ( v\\right ) \\cos{\\left (x + y \\right )} ~ds + \\int_{\\Gamma_2} \\left ( v\\right ) \\cos{\\left (x + y \\right )} ~ds + \\int_{\\Gamma_3} \\left ( v\\right ) \\cos{\\left (x + y \\right )} ~ds + \\int_{\\Gamma_4} \\left ( v\\right ) \\cos{\\left (x + y \\right )} ~ds,\\quad \\forall~ v \\in V$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(equation))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Multiple domains" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "A = Square(r'A')\n", - "B = Square(r'B')\n", - "\n", - "domain = A.join(B, name = 'Omega',\n", - " bnd_minus = A.get_boundary(axis=0, ext=1),\n", - " bnd_plus = B.get_boundary(axis=0, ext=-1))\n", - "\n", - "I = domain.interfaces" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "V = ScalarFunctionSpace('V', domain, kind=None)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "u, v = elements_of(V, names='u, v')" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "# Nitsch\n", - "kappa = Constant('kappa')\n", - "expr_I = ( - jump(u) * jump(Dn(v))\n", - " + kappa * jump(u) * jump(v)\n", - " + plus(Dn(u)) * minus(v)\n", - " + minus(Dn(u)) * plus(v) )\n", - "a = BilinearForm((u,v), integral(domain, dot(grad(u),grad(v)))\n", - " + integral(I, expr_I))" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left( u, v \\right) \\mapsto \\int_{\\Omega} \\nabla{u} \\cdot \\nabla{v} ~d\\mathbf{x} + \\int_{A|B} - [\\![ u ]\\!] [\\![ \\nabla v \\cdot \\mathbf{n} ]\\!] ~ds + \\int_{A|B} \\left(\\nabla{u_{-}} \\cdot \\mathbf{n}_{-}\\right) v_{+} ~ds + \\int_{A|B} \\left(\\nabla{u_{+}} \\cdot \\mathbf{n}_{+}\\right) v_{-} ~ds + \\int_{A|B} \\kappa [\\![ u ]\\!] [\\![ v ]\\!] ~ds$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(a))" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "expr = TerminalExpr(a)" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\textbf{target}~A|B\\\\- \\kappa u_{-} v_{+} + \\left(\\nabla{v_{+}} \\cdot \\mathbf{n}_{+}\\right) u_{-}\\\\\\textbf{target}~A|B\\\\- \\kappa v_{-} u_{+} + \\left(\\nabla{v_{-}} \\cdot \\mathbf{n}_{-}\\right) u_{+}\\\\\\textbf{target}~\\Gamma_2\\\\\\kappa u v - u \\left(\\nabla{v} \\cdot \\mathbf{n}_{-}\\right)\\\\\\textbf{target}~\\Gamma_1\\\\\\kappa u v - u \\left(\\nabla{v} \\cdot \\mathbf{n}_{+}\\right)\\\\\\textbf{target}~A\\\\\\partial_x u_{A} \\partial_x v_{A} + \\partial_y u_{A} \\partial_y v_{A}\\\\\\textbf{target}~B\\\\\\partial_x u_{B} \\partial_x v_{B} + \\partial_y u_{B} \\partial_y v_{B}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "code = r'\\\\'.join(latex(e) for e in expr)\n", - "Math(code)\n", - "#print(code)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/differential_culculus.ipynb b/notebooks/differential_culculus.ipynb deleted file mode 100644 index 9b3a7ace..00000000 --- a/notebooks/differential_culculus.ipynb +++ /dev/null @@ -1,208 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Differential calculus " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from sympy import Symbol\n", - "from sympy.core.containers import Tuple\n", - "from sympy import symbols\n", - "from sympy import IndexedBase\n", - "from sympy import Matrix\n", - "from sympy import Function\n", - "from sympy import pi, cos, sin\n", - "from sympy import srepr\n", - "from sympy import expand\n", - "from sympy import Function\n", - "from sympy import Integer, Float, Rational\n", - "from sympy.physics.quantum import TensorProduct\n", - "\n", - "from sympde.core import Constant\n", - "from sympde.calculus import grad, dot, inner, outer, cross, rot, curl, div\n", - "from sympde.calculus import laplace, hessian, bracket, convect, D, conv\n", - "from sympde.calculus import ArgumentTypeError\n", - "from sympde.calculus import jump, avg, Dn, minus, plus\n", - "from sympde.topology import Domain\n", - "from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace\n", - "from sympde.topology import ProductSpace\n", - "from sympde.topology import H1Space, HcurlSpace, HdivSpace, L2Space, UndefinedSpace\n", - "from sympde.topology import TestFunction, ScalarTestFunction, VectorTestFunction\n", - "from sympde.topology import ScalarField, VectorField\n", - "from sympde.topology import element_of, elements_of" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "domain = Domain('Omega', dim=3)\n", - "\n", - "V = ScalarFunctionSpace('V', domain)\n", - "W = VectorFunctionSpace('W', domain)\n", - "\n", - "alpha, beta, gamma = [Constant(i) for i in ['alpha','beta','gamma']]\n", - "\n", - "f,g,h = [element_of(V, name=i) for i in ['f','g','h']]\n", - "F,G,H = [element_of(W, i) for i in ['F','G','H']]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Gradient properties" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$ \\nabla (f+g) = \\nabla f + \\nabla g $\n", - "\n", - "$ \\nabla (\\alpha f) = \\alpha \\nabla f$\n", - "\n", - "$ \\nabla (\\alpha f+ \\beta g) = \\alpha \\nabla f + \\beta \\nabla g $\n", - "\n", - "$ \\nabla (fg) = f\\nabla g + g\\nabla f $\n", - "\n", - "$ \\nabla (\\frac{f}{g}) = -\\frac{f}{g^2} \\nabla g + \\frac{1}{g} \\nabla f$" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "assert( grad(f+g) == grad(f) + grad(g) )\n", - "assert( grad(alpha*f) == alpha*grad(f) )\n", - "assert( grad(alpha*f + beta*g) == alpha*grad(f) + beta*grad(g) )\n", - "\n", - "assert( grad(f*g) == f*grad(g) + g*grad(f) )\n", - "assert( grad(f/g) == -f*grad(g)/g**2 + grad(f)/g )\n", - "\n", - "assert( expand(grad(f*g*h)) == f*g*grad(h) + f*h*grad(g) + g*h*grad(f) )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Curl properties" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "assert( curl(F+G) == curl(F) + curl(G) )\n", - "assert( curl(alpha*F) == alpha*curl(F) )\n", - "assert( curl(alpha*F + beta*G) == alpha*curl(F) + beta*curl(G) )\n", - "\n", - "assert( curl(cross(F,G)) == F*div(G) - G*div(F) - convect(F, G) + convect(G, F) )\n", - "assert( curl(f*F) == f*curl(F) + cross(grad(f), F) )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Laplace properties" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "assert( laplace(f+g) == laplace(f) + laplace(g) )\n", - "assert( laplace(alpha*f) == alpha*laplace(f) )\n", - "assert( laplace(alpha*f + beta*g) == alpha*laplace(f) + beta*laplace(g) )\n", - "assert( laplace(f*g) == f*laplace(g) + g*laplace(f) + 2*dot(grad(f), grad(g)) )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Divergence properties" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "assert( div(F+G) == div(F) + div(G) )\n", - "assert( div(alpha*F) == alpha*div(F) )\n", - "assert( div(alpha*F + beta*G) == alpha*div(F) + beta*div(G) )\n", - "\n", - "assert( div(cross(F,G)) == -dot(F, curl(G)) + dot(G, curl(F)) )\n", - "assert( div(f*F) == f*div(F) + dot(F, grad(f)))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Other properties" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "assert( curl(grad(f)) == 0 )\n", - "assert( div(curl(F)) == 0 )\n", - "assert( div(cross(grad(f), grad(g))) == 0 )\n", - "assert( curl(curl(F)) == grad(div(F)) - laplace(F))\n", - "assert( curl(f*grad(g)) == cross(grad(f), grad(g)) )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/nonlinear_examples.ipynb b/notebooks/nonlinear_examples.ipynb deleted file mode 100644 index a831f5c1..00000000 --- a/notebooks/nonlinear_examples.ipynb +++ /dev/null @@ -1,145 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.display import Math\n", - "\n", - "from sympy import Symbol\n", - "from sympy.core.containers import Tuple\n", - "from sympy import pi, cos, sin, exp\n", - "from sympy import expand\n", - "\n", - "from sympde.core import Constant\n", - "from sympde.calculus import grad, dot, inner, outer, cross, rot, curl, div\n", - "from sympde.calculus import laplace, hessian, bracket, convect, D, conv\n", - "from sympde.calculus import ArgumentTypeError\n", - "from sympde.calculus import jump, avg, Dn, minus, plus\n", - "from sympde.topology import Domain, Boundary\n", - "from sympde.topology import ScalarFunctionSpace, VectorFunctionSpace\n", - "from sympde.topology import ProductSpace\n", - "from sympde.topology import H1Space, HcurlSpace, HdivSpace, L2Space, UndefinedSpace\n", - "from sympde.topology import TestFunction, ScalarTestFunction, VectorTestFunction\n", - "from sympde.topology import ScalarField, VectorField\n", - "from sympde.topology import element_of, elements_of\n", - "from sympde.expr import LinearForm\n", - "from sympde.expr import integral\n", - "from sympde.expr import linearize\n", - "from sympde.printing.latex import latex" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Nonlinear problems" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Nonlinear poisson" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us consider the weak formulation $l(v)=0$, where\n", - "\n", - "\\begin{align}\n", - " l(v) = \\int_{\\Omega} \\nabla u \\cdot \\nabla v + e^{-u}v ~d\\Omega \n", - " \\label{eq:nonlinear-example-wf}\n", - "\\end{align}\n", - "\n", - "The linearization of such a linear form means that we replace $u$ by an expansion $u + \\epsilon \\delta u$ then we compute the Taylor expansion with respect to $\\epsilon$.\n", - "The linearisation leads to the construction of a bilinear form that has arguments $\\left( \\delta u, v \\right)$, as shown in the follozing Python code:" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "domain = Domain('Omega', dim=2)\n", - "Gamma_N = Boundary('Gamma_N', domain.interior)\n", - "x,y = domain.coordinates\n", - "\n", - "V = ScalarFunctionSpace('V', domain)\n", - "\n", - "u, du,v = elements_of(V, names='u, delta_u, v')\n", - "\n", - "int_0 = lambda expr: integral(domain, expr)\n", - "\n", - "expr = int_0(dot(grad(v), grad(u)) -4.*exp(-u)*v) \n", - "l = LinearForm(v, expr )" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "# linearising l around u, using du\n", - "a = linearize(l, u, trials=du)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\left( \\delta_{u}, v \\right) \\mapsto \\int_{\\Omega} 4.0 \\delta_{u} v e^{- u} ~d\\mathbf{x} + \\int_{\\Omega} \\nabla{\\delta_{u}} \\cdot \\nabla{v} ~d\\mathbf{x}$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Math(latex(a))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/notebooks/styles/custom.html b/notebooks/styles/custom.html deleted file mode 100644 index 0da4d105..00000000 --- a/notebooks/styles/custom.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - From cdece537f675651a2573d8d6f83b7ccd2417fda0 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 5 Oct 2026 10:44:40 +0200 Subject: [PATCH 04/27] Document the public API and examples Describe flat public imports in the README and add the API reference and executable examples to the Sphinx navigation. --- README.md | 12 +++++++++++- doc/api.rst | 19 +++++++++++++++++++ doc/index.rst | 2 ++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 doc/api.rst diff --git a/README.md b/README.md index 52f973c8..81b2c76e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # SymPDE [![CI status](https://github.com/pyccel/sympde/actions/workflows/testing.yml/badge.svg?branch=master&event=push)](https://github.com/pyccel/sympde/actions/workflows/testing.yml) -[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/pyccel/sympde/master) [![Documentation Status](https://github.com/pyccel/sympde/actions/workflows/documentation.yml/badge.svg)](https://github.com/pyccel/sympde/actions/workflows/documentation.yml) **SymPDE** is a symbolic calculus library for partial differential equations and variational forms. @@ -68,6 +67,17 @@ To check out a specific branch, tag, or commit named ``, run `git checkout pip install --editable ".[test]" ``` +### Public API + +User-facing objects can be imported from the flat, explicit API without +knowing which internal module defines them: + +```python +from sympde.api import Cube, Mapping, Constant +from sympde.api import ScalarFunctionSpace, VectorFunctionSpace, elements_of +from sympde.api import BilinearForm, LinearForm, Norm +``` + ### Running the tests The complete test suite can be run from any directory with: diff --git a/doc/api.rst b/doc/api.rst new file mode 100644 index 00000000..8352f4a0 --- /dev/null +++ b/doc/api.rst @@ -0,0 +1,19 @@ +Public API +========== + +The :mod:`sympde.api` package provides the supported flat namespace for +user-facing objects. For example: + +.. code-block:: python + + from sympde.api import Cube, Mapping, Constant + from sympde.api import ScalarFunctionSpace, elements_of + from sympde.api import BilinearForm, LinearForm, Norm + +The complete namespace is listed below. These objects are also documented and +indexed at their defining modules, so this page does not create duplicate +cross-reference targets. + +.. automodule:: sympde.api + :members: + :no-index: diff --git a/doc/index.rst b/doc/index.rst index 4f56451d..6f19fd85 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -12,6 +12,7 @@ Welcome to sympde's documentation! quick advanced + examples/index Mathematical background ======================= @@ -28,6 +29,7 @@ API .. toctree:: :maxdepth: 1 + api source/modules Indices and tables From d418e0fbcb2d3d11eacb4bfc18a3dd60ab09cf9b Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 5 Oct 2026 10:47:34 +0200 Subject: [PATCH 05/27] Document public API changes --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5926d401..50f18efe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ All notable changes to this project will be documented in this file. ### Added +- Add `sympde.api` as the supported flat public API. +- Add executable examples to the documentation. - #106: Accept the connectivity of a `Domain` as an iterable of `Interface` objects, in addition to a `Connectivity` object. - [DEVELOPER] Add a `CHANGELOG.md` file listing changes between different versions. - [DEVELOPER] Add Python version 3.14 to the testing workflow. @@ -16,6 +18,7 @@ All notable changes to this project will be documented in this file. ### Changed - Convert the README to Markdown and expand the installation, testing, and documentation-build instructions. +- Use explicit internal imports and load optional dependencies only when needed. - #106: Require SymPy 1.12 or newer and support maintained SymPy releases below 1.15. - #106: Update SymPDE's symbolic objects for modern SymPy's structural arguments, traversal, substitution, and reconstruction requirements. - #106: Order the parameters of `Domain` like its `args` (`name`, `interiors`, `boundaries`, `mapping`, `logical_domain`, `connectivity`) and allow passing them positionally. `dim` is now keyword-only. @@ -40,6 +43,8 @@ All notable changes to this project will be documented in this file. ### Deprecated +- Package and subpackage imports no longer re-export public objects. Replace imports such as `from sympde.topology import Square` with `from sympde.api import Square`. + ## [0.20.0] - 2026-09-07 ### Added From 0d0b1fe3d4dec1daa37bf5ee5df118782ab5cc3e Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:38:20 +0200 Subject: [PATCH 06/27] Import from defining modules in the unit tests The unit tests are not user-facing code, so they should not depend on the public sympde.api namespace. Import every object from the module that defines it instead, which shows developers exactly which modules a test exercises and keeps sympde.api independent of test coverage. --- sympde/calculus/tests/test_calculus.py | 18 ++++---- sympde/expr/tests/test_equation_2d.py | 26 ++++++------ sympde/expr/tests/test_essential_bc.py | 14 ++++--- sympde/expr/tests/test_expr.py | 33 ++++++++------- sympde/expr/tests/test_find_2d.py | 19 +++++---- sympde/expr/tests/test_newton_2d.py | 13 +++--- sympde/expr/tests/test_tensor_2d.py | 14 +++---- sympde/exterior/tests/test_compiler.py | 14 +++---- sympde/exterior/tests/test_datatype.py | 8 ++-- sympde/exterior/tests/test_exterior.py | 6 +-- sympde/exterior/tests/test_inference.py | 21 ++++++---- sympde/printing/tests/test_latex.py | 16 +++---- sympde/topology/tests/test_derivatives.py | 17 ++++---- sympde/topology/tests/test_field_2d.py | 10 ++--- sympde/topology/tests/test_gallery.py | 5 ++- sympde/topology/tests/test_logical_expr.py | 46 +++++++++++---------- sympde/topology/tests/test_mapping.py | 10 +++-- sympde/topology/tests/test_space.py | 20 +++++---- sympde/topology/tests/test_symbolic_expr.py | 13 +++--- sympde/topology/tests/test_topology.py | 15 +++---- sympde/utilities/tests/test_utilities.py | 2 +- 21 files changed, 184 insertions(+), 156 deletions(-) diff --git a/sympde/calculus/tests/test_calculus.py b/sympde/calculus/tests/test_calculus.py index a2816951..c4eb9800 100644 --- a/sympde/calculus/tests/test_calculus.py +++ b/sympde/calculus/tests/test_calculus.py @@ -6,15 +6,15 @@ from sympy import Integer, Float, Rational from sympy import expand -from sympde.api import Constant -from sympde.api import grad, dot, inner, outer, cross, rot, curl, div -from sympde.api import laplace, hessian, bracket, convect, D, conv -from sympde.api import ArgumentTypeError -from sympde.api import jump, avg, Dn, minus, plus -from sympde.api import Domain -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import ProductSpace -from sympde.api import element_of, elements_of +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot, inner, outer, cross, rot, curl, div +from sympde.calculus.core import laplace, hessian, bracket, convect, D, conv +from sympde.calculus.errors import ArgumentTypeError +from sympde.calculus.core import jump, avg, Dn, minus, plus +from sympde.topology.domain import Domain +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import ProductSpace +from sympde.topology.space import element_of, elements_of #============================================================================== @pytest.mark.parametrize('dim', [1, 2, 3]) diff --git a/sympde/expr/tests/test_equation_2d.py b/sympde/expr/tests/test_equation_2d.py index d8060b76..1765ee05 100644 --- a/sympde/expr/tests/test_equation_2d.py +++ b/sympde/expr/tests/test_equation_2d.py @@ -6,18 +6,20 @@ from sympy import pi, cos, sin from sympy import ImmutableDenseMatrix as Matrix -from sympde.api import Constant -from sympde.api import grad, dot, inner -from sympde.api import laplace, bracket -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import element_of -from sympde.api import ProductSpace -from sympde.api import Domain, Boundary, NormalVector -from sympde.api import Square -from sympde.api import ElementDomain -from sympde.api import Area -from sympde.api import BilinearForm, LinearForm, integral -from sympde.api import Equation, EssentialBC +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot, inner +from sympde.calculus.core import laplace, bracket +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import element_of +from sympde.topology.space import ProductSpace +from sympde.topology.domain import Domain +from sympde.topology.basic import Boundary +from sympde.topology.domain import NormalVector +from sympde.topology.domain import Square +from sympde.topology.domain import ElementDomain +from sympde.topology.domain import Area +from sympde.expr.expr import BilinearForm, LinearForm, integral +from sympde.expr.equation import Equation, EssentialBC from sympde.expr.errors import UnconsistentLhsError from sympde.expr.errors import UnconsistentRhsError from sympde.expr.errors import UnconsistentBCError diff --git a/sympde/expr/tests/test_essential_bc.py b/sympde/expr/tests/test_essential_bc.py index a595f9c3..41ceafcf 100644 --- a/sympde/expr/tests/test_essential_bc.py +++ b/sympde/expr/tests/test_essential_bc.py @@ -1,11 +1,13 @@ # coding: utf-8 -from sympde.api import Constant -from sympde.api import grad, dot -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import element_of -from sympde.api import Domain, Boundary, NormalVector -from sympde.api import EssentialBC +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import element_of +from sympde.topology.domain import Domain +from sympde.topology.basic import Boundary +from sympde.topology.domain import NormalVector +from sympde.expr.equation import EssentialBC #============================================================================== def test_essential_bc_1(): diff --git a/sympde/expr/tests/test_expr.py b/sympde/expr/tests/test_expr.py index bc5cc593..8d0114cd 100644 --- a/sympde/expr/tests/test_expr.py +++ b/sympde/expr/tests/test_expr.py @@ -7,23 +7,24 @@ from sympy import pi, cos, sin, exp from sympy import ImmutableDenseMatrix as Matrix -from sympde.api import Constant -from sympde.api import grad, dot, inner, rot, div -from sympde.api import laplace, bracket, convect -from sympde.api import jump, avg, Dn, minus, plus - -from sympde.api import dx1, dx2, dx3 -from sympde.api import dx, dy, dz -from sympde.api import Mapping -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import element_of, elements_of -from sympde.api import InteriorDomain, Union -from sympde.api import Boundary, NormalVector -from sympde.api import Domain +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot, inner, rot, div +from sympde.calculus.core import laplace, bracket, convect +from sympde.calculus.core import jump, avg, Dn, minus, plus + +from sympde.topology.derivatives import dx1, dx2, dx3 +from sympde.topology.derivatives import dx, dy, dz +from sympde.topology.mapping import Mapping +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import element_of, elements_of +from sympde.topology.basic import InteriorDomain, Union +from sympde.topology.basic import Boundary +from sympde.topology.domain import NormalVector +from sympde.topology.domain import Domain #from sympde.topology import trace_1 # TODO [YG, 27.01.2021]: fix trace -from sympde.api import Square -from sympde.api import ElementDomain -from sympde.api import Area +from sympde.topology.domain import Square +from sympde.topology.domain import ElementDomain +from sympde.topology.domain import Area from sympde.expr.expr import LinearExpr from sympde.expr.expr import LinearForm, BilinearForm diff --git a/sympde/expr/tests/test_find_2d.py b/sympde/expr/tests/test_find_2d.py index 615b4785..0258bcd4 100644 --- a/sympde/expr/tests/test_find_2d.py +++ b/sympde/expr/tests/test_find_2d.py @@ -3,16 +3,17 @@ from sympy import cos #from sympy import exp -from sympde.api import Constant -from sympde.api import grad, dot +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot #from sympde.topology import dx, dy -from sympde.api import ScalarFunctionSpace -from sympde.api import element_of -from sympde.api import Domain, Boundary -from sympde.api import BilinearForm, LinearForm, integral -from sympde.api import TerminalExpr -from sympde.api import find -from sympde.api import EssentialBC +from sympde.topology.space import ScalarFunctionSpace +from sympde.topology.space import element_of +from sympde.topology.domain import Domain +from sympde.topology.basic import Boundary +from sympde.expr.expr import BilinearForm, LinearForm, integral +from sympde.expr.evaluation import TerminalExpr +from sympde.expr.equation import find +from sympde.expr.equation import EssentialBC #from sympde.expr import NewtonIteration DIM = 2 diff --git a/sympde/expr/tests/test_newton_2d.py b/sympde/expr/tests/test_newton_2d.py index 1bb0091c..c6b0cbbe 100644 --- a/sympde/expr/tests/test_newton_2d.py +++ b/sympde/expr/tests/test_newton_2d.py @@ -2,12 +2,13 @@ from sympy import exp -from sympde.api import grad, dot -from sympde.api import ScalarFunctionSpace -from sympde.api import element_of -from sympde.api import Domain, Boundary -from sympde.api import LinearForm, integral -from sympde.api import EssentialBC, NewtonIteration +from sympde.calculus.core import grad, dot +from sympde.topology.space import ScalarFunctionSpace +from sympde.topology.space import element_of +from sympde.topology.domain import Domain +from sympde.topology.basic import Boundary +from sympde.expr.expr import LinearForm, integral +from sympde.expr.equation import EssentialBC, NewtonIteration DIM = 2 domain = Domain('Omega', dim=DIM) diff --git a/sympde/expr/tests/test_tensor_2d.py b/sympde/expr/tests/test_tensor_2d.py index 292dee17..c055f8df 100644 --- a/sympde/expr/tests/test_tensor_2d.py +++ b/sympde/expr/tests/test_tensor_2d.py @@ -4,15 +4,15 @@ from sympy.core.containers import Tuple -from sympde.api import Constant -from sympde.api import grad, dot, curl, div +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot, curl, div #from sympde.calculus import laplace #from sympde.topology import dx -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import elements_of -from sympde.api import Boundary -from sympde.api import Domain -from sympde.api import Mapping +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import elements_of +from sympde.topology.basic import Boundary +from sympde.topology.domain import Domain +from sympde.topology.mapping import Mapping from sympde.expr.expr import BilinearForm, integral from sympde.expr.evaluation import TensorExpr diff --git a/sympde/exterior/tests/test_compiler.py b/sympde/exterior/tests/test_compiler.py index 13dacf88..3e4d8eb1 100644 --- a/sympde/exterior/tests/test_compiler.py +++ b/sympde/exterior/tests/test_compiler.py @@ -2,15 +2,15 @@ import pytest -from sympde.api import Domain -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import element_of -from sympde.api import grad, dot, inner, cross, curl, div +from sympde.topology.domain import Domain +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import element_of +from sympde.calculus.core import grad, dot, inner, cross, curl, div #from sympde.exterior import d, wedge, ip, delta, jp -from sympde.api import ld -from sympde.api import DifferentialForm -from sympde.api import ExteriorCalculusExpr, augmented_expression +from sympde.exterior.calculus import ld +from sympde.exterior.form import DifferentialForm +from sympde.exterior.compiler import ExteriorCalculusExpr, augmented_expression from sympde.calculus.errors import ArgumentTypeError #============================================================================== diff --git a/sympde/exterior/tests/test_datatype.py b/sympde/exterior/tests/test_datatype.py index 86860add..0c0f2c17 100644 --- a/sympde/exterior/tests/test_datatype.py +++ b/sympde/exterior/tests/test_datatype.py @@ -7,11 +7,11 @@ from sympy import srepr from sympy import Symbol -from sympde.api import Constant +from sympde.core.basic import Constant -from sympde.api import d, wedge, ip, jp, delta, hodge -from sympde.api import ZeroForm, OneForm, TwoForm -from sympde.api import ThreeForm, FourForm, FiveForm, SixForm +from sympde.exterior.calculus import d, wedge, ip, jp, delta, hodge +from sympde.exterior.datatype import ZeroForm, OneForm, TwoForm +from sympde.exterior.datatype import ThreeForm, FourForm, FiveForm, SixForm #============================================================================== diff --git a/sympde/exterior/tests/test_exterior.py b/sympde/exterior/tests/test_exterior.py index 1e24d6b4..a500717d 100644 --- a/sympde/exterior/tests/test_exterior.py +++ b/sympde/exterior/tests/test_exterior.py @@ -7,10 +7,10 @@ from sympy import srepr from sympy import Symbol -from sympde.api import Constant +from sympde.core.basic import Constant -from sympde.api import d, wedge, ip, jp, delta, hodge -from sympde.api import DifferentialForm +from sympde.exterior.calculus import d, wedge, ip, jp, delta, hodge +from sympde.exterior.form import DifferentialForm def test_differential_form_symbol_identity(): diff --git a/sympde/exterior/tests/test_inference.py b/sympde/exterior/tests/test_inference.py index 194b77ca..14aa1f00 100644 --- a/sympde/exterior/tests/test_inference.py +++ b/sympde/exterior/tests/test_inference.py @@ -7,14 +7,19 @@ from sympy import srepr from sympy import Symbol -from sympde.api import Constant - -from sympde.api import d, wedge, ip, jp, delta, hodge -from sympde.api import DifferentialForm -from sympde.api import PullBack -from sympde.api import infere_type -from sympde.api import ZeroFormType, OneFormType, TwoFormType, ThreeFormType -from sympde.api import FourFormType, FiveFormType, SixFormType +from sympde.core.basic import Constant + +from sympde.exterior.calculus import d, wedge, ip, jp, delta, hodge +from sympde.exterior.form import DifferentialForm +from sympde.exterior.calculus import PullBack +from sympde.exterior.inference import infere_type +from sympde.exterior.datatype import ( + ZeroFormType, + OneFormType, + TwoFormType, + ThreeFormType, +) +from sympde.exterior.datatype import FourFormType, FiveFormType, SixFormType #============================================================================== diff --git a/sympde/printing/tests/test_latex.py b/sympde/printing/tests/test_latex.py index 1e74f736..e35ab4a3 100644 --- a/sympde/printing/tests/test_latex.py +++ b/sympde/printing/tests/test_latex.py @@ -2,14 +2,16 @@ from sympy import sin, cos, pi -from sympde.api import grad, dot, inner, rot, div +from sympde.calculus.core import grad, dot, inner, rot, div #from sympde.topology import (dx, dy, dz) -from sympde.api import Domain, Boundary, Square -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import element_of -from sympde.api import BilinearForm, LinearForm, integral -from sympde.api import d, wedge, ip, jp, delta, hodge -from sympde.api import DifferentialForm +from sympde.topology.domain import Domain +from sympde.topology.basic import Boundary +from sympde.topology.domain import Square +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import element_of +from sympde.expr.expr import BilinearForm, LinearForm, integral +from sympde.exterior.calculus import d, wedge, ip, jp, delta, hodge +from sympde.exterior.form import DifferentialForm from sympde.printing.latex import latex diff --git a/sympde/topology/tests/test_derivatives.py b/sympde/topology/tests/test_derivatives.py index 49bc3506..1d3c6723 100644 --- a/sympde/topology/tests/test_derivatives.py +++ b/sympde/topology/tests/test_derivatives.py @@ -5,14 +5,15 @@ from sympy import Matrix from sympy import srepr -from sympde.api import Constant -from sympde.api import grad, dot, inner -from sympde.api import Domain, element_of -from sympde.api import get_index_derivatives_atom -from sympde.api import get_max_partial_derivatives -from sympde.api import ScalarFunctionSpace -from sympde.api import (dx, dy, dz) -from sympde.api import Mapping +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot, inner +from sympde.topology.domain import Domain +from sympde.topology.space import element_of +from sympde.topology.derivatives import get_index_derivatives_atom +from sympde.topology.derivatives import get_max_partial_derivatives +from sympde.topology.space import ScalarFunctionSpace +from sympde.topology.derivatives import dx, dy, dz +from sympde.topology.mapping import Mapping def indices_as_str(a): diff --git a/sympde/topology/tests/test_field_2d.py b/sympde/topology/tests/test_field_2d.py index 28be3146..ff8117be 100644 --- a/sympde/topology/tests/test_field_2d.py +++ b/sympde/topology/tests/test_field_2d.py @@ -2,11 +2,11 @@ from sympy import Matrix -from sympde.api import grad, inner -from sympde.api import Domain -from sympde.api import dx -from sympde.api import VectorFunctionSpace -from sympde.api import element_of +from sympde.calculus.core import grad, inner +from sympde.topology.domain import Domain +from sympde.topology.derivatives import dx +from sympde.topology.space import VectorFunctionSpace +from sympde.topology.space import element_of #============================================================================== diff --git a/sympde/topology/tests/test_gallery.py b/sympde/topology/tests/test_gallery.py index 8622dffa..de613a29 100644 --- a/sympde/topology/tests/test_gallery.py +++ b/sympde/topology/tests/test_gallery.py @@ -4,8 +4,9 @@ from sympy import Tuple from sympy import symbols -from sympde.api import Interval, ProductDomain, InteriorDomain, Domain -from sympde.api import Line, Square, Cube, NCubeInterior +from sympde.topology.basic import Interval, ProductDomain, InteriorDomain +from sympde.topology.domain import Domain +from sympde.topology.domain import Line, Square, Cube, NCubeInterior x1, x2, x3 = symbols('x1, x2, x3', real=True) diff --git a/sympde/topology/tests/test_logical_expr.py b/sympde/topology/tests/test_logical_expr.py index f551b586..ee8b3b00 100644 --- a/sympde/topology/tests/test_logical_expr.py +++ b/sympde/topology/tests/test_logical_expr.py @@ -5,28 +5,30 @@ from sympy import expand from sympy import cos, sin, sqrt, pi -from sympde.api import Constant -from sympde.api import grad, dot, inner, rot, div -from sympde.api import laplace, bracket, convect -from sympde.api import jump, avg, Dn, minus, plus -from sympde.api import Domain, Mapping, Square -from sympde.api import dx, dy -from sympde.api import dx1, dx2, dx3 -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace -from sympde.api import element_of, elements_of -from sympde.api import LogicalExpr -from sympde.api import get_logical_test_function -from sympde.api import SymbolicExpr -from sympde.api import IdentityMapping -from sympde.api import PolarMapping -from sympde.api import TargetMapping -from sympde.api import CzarnyMapping -from sympde.api import CollelaMapping2D -from sympde.api import TorusMapping -from sympde.api import TwistedTargetMapping - -from sympde.api import BilinearForm, integral -from sympde.api import grad, div, curl, dot +from sympde.core.basic import Constant +from sympde.calculus.core import grad, dot, inner, rot, div +from sympde.calculus.core import laplace, bracket, convect +from sympde.calculus.core import jump, avg, Dn, minus, plus +from sympde.topology.domain import Domain +from sympde.topology.mapping import Mapping +from sympde.topology.domain import Square +from sympde.topology.derivatives import dx, dy +from sympde.topology.derivatives import dx1, dx2, dx3 +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace +from sympde.topology.space import element_of, elements_of +from sympde.topology.mapping import LogicalExpr +from sympde.topology.mapping import get_logical_test_function +from sympde.topology.mapping import SymbolicExpr +from sympde.topology.analytical_mapping import IdentityMapping +from sympde.topology.analytical_mapping import PolarMapping +from sympde.topology.analytical_mapping import TargetMapping +from sympde.topology.analytical_mapping import CzarnyMapping +from sympde.topology.analytical_mapping import CollelaMapping2D +from sympde.topology.analytical_mapping import TorusMapping +from sympde.topology.analytical_mapping import TwistedTargetMapping + +from sympde.expr.expr import BilinearForm, integral +from sympde.calculus.core import grad, div, curl, dot from sympde.topology.mapping import Jacobian diff --git a/sympde/topology/tests/test_mapping.py b/sympde/topology/tests/test_mapping.py index 78225fcd..b983ee44 100644 --- a/sympde/topology/tests/test_mapping.py +++ b/sympde/topology/tests/test_mapping.py @@ -7,10 +7,12 @@ from sympy.tensor import IndexedBase from sympy import symbols, simplify -from sympde.api import IdentityMapping, Mapping, MappedDomain, AffineMapping -from sympde.api import dx, dy, dz -from sympde.api import dx1, dx2, dx3 -from sympde.api import Domain, Square +from sympde.topology.analytical_mapping import IdentityMapping +from sympde.topology.mapping import Mapping, MappedDomain +from sympde.topology.analytical_mapping import AffineMapping +from sympde.topology.derivatives import dx, dy, dz +from sympde.topology.derivatives import dx1, dx2, dx3 +from sympde.topology.domain import Domain, Square from sympde.topology.mapping import ( Contravariant, diff --git a/sympde/topology/tests/test_space.py b/sympde/topology/tests/test_space.py index 7124e8a5..f5cd46c0 100644 --- a/sympde/topology/tests/test_space.py +++ b/sympde/topology/tests/test_space.py @@ -1,13 +1,19 @@ # coding: utf-8 -from sympde.api import grad, div -from sympde.api import Domain -from sympde.api import ScalarFunctionSpace, VectorFunctionSpace +from sympde.calculus.core import grad, div +from sympde.topology.domain import Domain +from sympde.topology.space import ScalarFunctionSpace, VectorFunctionSpace #from sympde.topology import ProductSpace -from sympde.api import element_of -from sympde.api import H1Space, HcurlSpace, HdivSpace, L2Space, UndefinedSpace -from sympde.api import ScalarFunction, VectorFunction -from sympde.api import Projector +from sympde.topology.space import element_of +from sympde.topology.datatype import ( + H1Space, + HcurlSpace, + HdivSpace, + L2Space, + UndefinedSpace, +) +from sympde.topology.space import ScalarFunction, VectorFunction +from sympde.topology.space import Projector def test_function_symbol_identity(): diff --git a/sympde/topology/tests/test_symbolic_expr.py b/sympde/topology/tests/test_symbolic_expr.py index 93b0b69a..ef1b9891 100644 --- a/sympde/topology/tests/test_symbolic_expr.py +++ b/sympde/topology/tests/test_symbolic_expr.py @@ -1,12 +1,13 @@ from sympy import Symbol from sympy import sympify -from sympde.api import Domain, ScalarFunctionSpace, element_of -from sympde.api import dx, dy, dz -from sympde.api import dx1, dx2, dx3 -from sympde.api import Mapping, Jacobian -from sympde.api import LogicalExpr -from sympde.api import SymbolicExpr +from sympde.topology.domain import Domain +from sympde.topology.space import ScalarFunctionSpace, element_of +from sympde.topology.derivatives import dx, dy, dz +from sympde.topology.derivatives import dx1, dx2, dx3 +from sympde.topology.mapping import Mapping, Jacobian +from sympde.topology.mapping import LogicalExpr +from sympde.topology.mapping import SymbolicExpr #============================================================================== def test_derivatives_2d_without_mapping(): diff --git a/sympde/topology/tests/test_topology.py b/sympde/topology/tests/test_topology.py index 69df96f0..13002fa4 100644 --- a/sympde/topology/tests/test_topology.py +++ b/sympde/topology/tests/test_topology.py @@ -3,13 +3,14 @@ from sympy import preorder_traversal from sympy.core import Basic -from sympde.api import InteriorDomain, Union -from sympde.api import Boundary -from sympde.api import Domain, ElementDomain -from sympde.api import Area, Mapping -from sympde.api import Interface -from sympde.api import Line, Square, Cube, NCube -from sympde.api import IdentityMapping +from sympde.topology.basic import InteriorDomain, Union +from sympde.topology.basic import Boundary +from sympde.topology.domain import Domain, ElementDomain +from sympde.topology.domain import Area +from sympde.topology.mapping import Mapping +from sympde.topology.basic import Interface +from sympde.topology.domain import Line, Square, Cube, NCube +from sympde.topology.analytical_mapping import IdentityMapping base_dir = os.path.dirname(os.path.realpath(__file__)) topo_dir = os.path.join(base_dir, 'data') diff --git a/sympde/utilities/tests/test_utilities.py b/sympde/utilities/tests/test_utilities.py index d2502570..2c74a412 100644 --- a/sympde/utilities/tests/test_utilities.py +++ b/sympde/utilities/tests/test_utilities.py @@ -5,7 +5,7 @@ from sympy import S from sympde.utilities.utils import lambdify_sympde from sympde.utilities.utils import plot_domain -from sympde.api import Square +from sympde.topology.domain import Square From 6e83591158ad3b73958107be5842368c30bb927b Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:39:39 +0200 Subject: [PATCH 07/27] Keep __version__ in the top-level package Importing __version__ from the top level of a package is standard (numpy, sympy), so sympde/__init__.py imports it again. It only loads sympde.version, so importing sympde stays lightweight. The documentation configuration imports the version from the top level again, and the initializer test allows this one import. --- doc/conf.py | 2 +- sympde/__init__.py | 1 + sympde/core/tests/test_api.py | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index d4344aea..7792be24 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -4,7 +4,7 @@ from sphinx.ext.apidoc import main as sphinx_apidoc -from sympde.version import __version__ +from sympde import __version__ # -- Path setup -------------------------------------------------------------- diff --git a/sympde/__init__.py b/sympde/__init__.py index e69de29b..58f3ace6 100644 --- a/sympde/__init__.py +++ b/sympde/__init__.py @@ -0,0 +1 @@ +from .version import __version__ diff --git a/sympde/core/tests/test_api.py b/sympde/core/tests/test_api.py index a6e9bd6f..efa71b43 100644 --- a/sympde/core/tests/test_api.py +++ b/sympde/core/tests/test_api.py @@ -1,15 +1,25 @@ from pathlib import Path -def test_non_api_package_initializers_are_empty(): +def test_package_initializers_are_minimal(): package_dir = Path(__file__).parents[2] initializers = package_dir.rglob('__init__.py') for initializer in initializers: - if initializer.parent != package_dir / 'api': + if initializer.parent == package_dir: + # The top-level package only exposes its version + assert initializer.read_text() == 'from .version import __version__\n' + elif initializer.parent != package_dir / 'api': assert initializer.read_text() == '' +def test_version_is_available_from_top_level_package(): + from sympde import __version__ + from sympde.version import __version__ as version + + assert __version__ is version + + def test_api_has_only_explicit_exports(): import sympde.api as api From d55c546e5836afdabbeefa6fbb25006bc38f0941 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:40:01 +0200 Subject: [PATCH 08/27] Clarify the wording in the quickstart guide Explain how essential boundary conditions are passed to find, replace the ambiguous "executable" by saying that the examples are complete scripts run by the documentation workflow, and write "linearization of nonlinear problems" instead of "nonlinear linearization". --- doc/advanced.rst | 4 ++-- doc/examples/index.rst | 6 +++--- doc/quick.rst | 11 +++++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/doc/advanced.rst b/doc/advanced.rst index 7f4c086d..98d01d6d 100644 --- a/doc/advanced.rst +++ b/doc/advanced.rst @@ -11,8 +11,8 @@ structure consumed by tensor-product discretizations. .. literalinclude:: examples/tensorization.py :language: python -The example is an executable documentation source and is run by the -documentation workflow before Sphinx builds the page. +The example is a complete script, which the documentation workflow runs +before Sphinx builds the page. Logical expressions ^^^^^^^^^^^^^^^^^^^ diff --git a/doc/examples/index.rst b/doc/examples/index.rst index cf8999c4..d9299c63 100644 --- a/doc/examples/index.rst +++ b/doc/examples/index.rst @@ -1,9 +1,9 @@ Examples ======== -These examples are executable Python scripts. The documentation workflow runs -all of them before building the HTML pages, ensuring that their imports and -demonstrated APIs remain current. +These examples are complete Python scripts that can be run on their own. The +documentation workflow runs all of them before building the HTML pages, +ensuring that their imports and demonstrated APIs remain current. Variational forms ----------------- diff --git a/doc/quick.rst b/doc/quick.rst index efb34650..c3a6ab0e 100644 --- a/doc/quick.rst +++ b/doc/quick.rst @@ -34,8 +34,9 @@ declares its test field: :end-before: # [forms-end] The :func:`sympde.api.find` helper combines those forms into a symbolic -equation. Boundary conditions can be supplied with ``EssentialBC`` through -the optional ``bc`` argument. +equation. It is possible to impose essential boundary conditions (BCs) +on the solution (typically, homogeneous Dirichlet BCs) by passing an +``EssentialBC`` object through the optional ``bc`` argument. Expression lowering ^^^^^^^^^^^^^^^^^^^ @@ -52,9 +53,11 @@ Mappings and multipatch domains ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Mappings turn logical domains into physical domains. Multiple patches can be -joined by declaring their connected sides and orientation. See the executable +joined by declaring their connected sides and orientation. See the :doc:`examples/index` for analytical mappings, interface forms, exterior -calculus, and nonlinear linearization. +calculus, and the linearization of nonlinear problems. Each example is a +complete script that the documentation workflow runs before building the +pages. Printing ^^^^^^^^ From 1e85500317c5a9f9ff576973a3562e434ef36e90 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:40:18 +0200 Subject: [PATCH 09/27] State the complex-square mapping formula explicitly Write the definition x + i*y = A * (x1 + i*x2)**2 in the docstring of the custom mapping example, together with the resulting coordinate expressions. --- doc/examples/analytical_mappings.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/examples/analytical_mappings.py b/doc/examples/analytical_mappings.py index 6a83e206..858b7587 100644 --- a/doc/examples/analytical_mappings.py +++ b/doc/examples/analytical_mappings.py @@ -31,7 +31,11 @@ # Define a custom mapping by specifying its coordinate expressions. class ComplexSquareMapping(Mapping): - """Map ``(x1, x2)`` through the square of a complex number.""" + """ + Map (x1, x2) to (x, y) such that x + i*y = A * (x1 + i*x2)**2. + + Expanding the square gives x = A * (x1**2 - x2**2) and y = 2 * A * x1 * x2. + """ _expressions = { 'x': 'A * (x1**2 - x2**2)', From 76b8bc6569f959d195b58c9a720594ea38f0d878 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:40:25 +0200 Subject: [PATCH 10/27] Inline the integration helper in the nonlinear example The helper was used only twice, so call integral(domain, ...) directly. --- doc/examples/nonlinear_poisson.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/doc/examples/nonlinear_poisson.py b/doc/examples/nonlinear_poisson.py index 7a6575bc..f169fbe0 100644 --- a/doc/examples/nonlinear_poisson.py +++ b/doc/examples/nonlinear_poisson.py @@ -11,20 +11,15 @@ field, increment, test = elements_of(space, names='u, delta_u, v') -def integrate(expression): - """Integrate an expression over the problem domain.""" - - return integral(domain, expression) - - residual = LinearForm( test, - integrate(dot(grad(test), grad(field)) - 4.0 * exp(-field) * test), + integral(domain, dot(grad(test), grad(field)) - 4.0 * exp(-field) * test), ) jacobian = linearize(residual, field, trials=increment) assert isinstance(jacobian, BilinearForm) -assert jacobian(increment, test) == integrate( +assert jacobian(increment, test) == integral( + domain, dot(grad(test), grad(increment)) + 4.0 * exp(-field) * increment * test ) From a0b8d1e16aa070f9ce65485ba4b587bffd0489b7 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:41:09 +0200 Subject: [PATCH 11/27] Clarify the plot test for unmapped domains Rename the regression test and explain the bug it guards against: plot_domain fell back to a 3D identity mapping for unmapped 2D patches. Check that the boundary of the unit square is drawn, select the Agg backend through matplotlib so it also applies when pyplot is already imported, and skip the test if matplotlib is missing. --- sympde/utilities/tests/test_utilities.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/sympde/utilities/tests/test_utilities.py b/sympde/utilities/tests/test_utilities.py index 2c74a412..2b2e8805 100644 --- a/sympde/utilities/tests/test_utilities.py +++ b/sympde/utilities/tests/test_utilities.py @@ -55,12 +55,27 @@ def test_lambdify_sympde_1d(): assert np.array_equal(array_input_da, expected_a_da) -def test_plot_unmapped_2d_domain(monkeypatch, tmp_path): - """Plotting an unmapped square must create a 2D identity mapping.""" - monkeypatch.setenv('MPLBACKEND', 'Agg') +def test_plot_domain_without_mapping(monkeypatch, tmp_path): + """ + Plot a 2D domain without a mapping. + + plot_domain falls back to an identity mapping for unmapped patches. This + mapping used to be 3D, so evaluating it with two coordinates failed. + """ monkeypatch.setenv('MPLCONFIGDIR', str(tmp_path)) + matplotlib = pytest.importorskip('matplotlib') + matplotlib.use('Agg') + import matplotlib.pyplot as plt + plot_domain(Square('Omega'), draw=False) + # The boundary of the unit square is drawn unchanged + ax = plt.gcf().axes[0] + x = np.concatenate([line.get_xdata() for line in ax.lines]) + y = np.concatenate([line.get_ydata() for line in ax.lines]) + assert np.allclose([x.min(), x.max(), y.min(), y.max()], [0, 1, 0, 1]) + plt.close('all') + def test_lambdify_sympde_2d(): x,y = symbols("x, y") From 67ff19a567962eecc3e1f5a9b3b659b525747041 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:41:13 +0200 Subject: [PATCH 12/27] Say "circular dependency" in the lazy-import comment --- sympde/topology/derivatives.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sympde/topology/derivatives.py b/sympde/topology/derivatives.py index 15c077b8..793f5661 100644 --- a/sympde/topology/derivatives.py +++ b/sympde/topology/derivatives.py @@ -104,8 +104,8 @@ def eval(cls, expr): elif isinstance(expr, Expr): x = Symbol(cls.coordinate, real=True) if cls.logical: - # Imported lazily to avoid a module cycle: mapping depends - # on the differential-operator definitions in this module. + # Imported lazily to avoid a circular dependency: mapping + # depends on the differential operators in this module. from .mapping import Jacobian, Mapping M = expr.atoms(Mapping) From 306674ae5b415a58db8b593325cc2dcdddf2eb51 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:42:02 +0200 Subject: [PATCH 13/27] Reference PR #194 in the changelog Mention the PR number in its entries. Since the removed re-exports raise an ImportError immediately instead of a warning, list them under "Removed" rather than "Deprecated". Also record the removal of sympde.old_sympy_utilities. --- CHANGELOG.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50f18efe..f4d3df71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,8 @@ All notable changes to this project will be documented in this file. ### Added -- Add `sympde.api` as the supported flat public API. -- Add executable examples to the documentation. +- #194: Add `sympde.api` as the supported flat public API. +- #194: Add example scripts to the documentation, which are run by the documentation workflow. - #106: Accept the connectivity of a `Domain` as an iterable of `Interface` objects, in addition to a `Connectivity` object. - [DEVELOPER] Add a `CHANGELOG.md` file listing changes between different versions. - [DEVELOPER] Add Python version 3.14 to the testing workflow. @@ -18,7 +18,7 @@ All notable changes to this project will be documented in this file. ### Changed - Convert the README to Markdown and expand the installation, testing, and documentation-build instructions. -- Use explicit internal imports and load optional dependencies only when needed. +- #194: Use explicit internal imports and load optional dependencies only when needed. - #106: Require SymPy 1.12 or newer and support maintained SymPy releases below 1.15. - #106: Update SymPDE's symbolic objects for modern SymPy's structural arguments, traversal, substitution, and reconstruction requirements. - #106: Order the parameters of `Domain` like its `args` (`name`, `interiors`, `boundaries`, `mapping`, `logical_domain`, `connectivity`) and allow passing them positionally. `dim` is now keyword-only. @@ -39,12 +39,12 @@ All notable changes to this project will be documented in this file. ### Removed +- #194: Remove the re-exports of public objects from the package and subpackage initializers. Replace imports such as `from sympde.topology import Square` with `from sympde.api import Square`. `from sympde import __version__` keeps working. +- #194: Remove the `sympde.old_sympy_utilities` module. Use `sympy.utilities.iterables.is_sequence` and Python's `metaclass` keyword instead of its `is_sequence` and `with_metaclass`. - [DEVELOPER] Remove obsolete CI configuration, the standalone pytest configuration, and the legacy test runner script. ### Deprecated -- Package and subpackage imports no longer re-export public objects. Replace imports such as `from sympde.topology import Square` with `from sympde.api import Square`. - ## [0.20.0] - 2026-09-07 ### Added From 2c2aa9d4dccc61ecc448a0a7bca1dc3be92a678c Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:49:15 +0200 Subject: [PATCH 14/27] Restrict sympde.api to the objects used downstream Keep only the names that PSYDAC, IGA-Python and GeLaTo import from SymPDE, plus those used by the SymPDE documentation, which reduces the namespace from 241 to 122 names. Add the 1D forms used by GeLaTo (Mass, Stiffness, Advection, AdvectionT, Bilaplacian, Basic1dForm), which were missing. Drop __version__, which is available from the top-level package again, and the unused ExteriorPullBack alias. --- CHANGELOG.md | 2 +- sympde/api/__init__.py | 402 ++++++++--------------------------------- 2 files changed, 74 insertions(+), 330 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4d3df71..de186193 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ All notable changes to this project will be documented in this file. ### Added -- #194: Add `sympde.api` as the supported flat public API. +- #194: Add `sympde.api` as the supported flat public API. It contains the objects used by PSYDAC, IGA-Python, GeLaTo and the SymPDE documentation. - #194: Add example scripts to the documentation, which are run by the documentation workflow. - #106: Accept the connectivity of a `Domain` as an iterable of `Interface` objects, in addition to a `Connectivity` object. - [DEVELOPER] Add a `CHANGELOG.md` file listing changes between different versions. diff --git a/sympde/api/__init__.py b/sympde/api/__init__.py index 515eac95..c608de66 100644 --- a/sympde/api/__init__.py +++ b/sympde/api/__init__.py @@ -1,59 +1,34 @@ """Public user-facing API for SymPDE. -Objects are imported from the modules that define them instead of relying on -the wildcard re-exports in the package initializers. This module is the one -supported location for convenient, flat imports such as:: +This module is the one supported location for convenient, flat imports such +as:: from sympde.api import BilinearForm, Square, elements_of, grad -Internal SymPDE code should continue to import objects from their defining -modules to keep its dependencies explicit. -""" +It contains the objects used by the projects that depend on SymPDE (PSYDAC, +IGA-Python and GeLaTo) and by the SymPDE documentation. Every object is +imported from the module that defines it. -from sympde.version import __version__ +Internal SymPDE code and the unit tests import objects from their defining +modules instead, to keep their dependencies explicit. +""" from sympde.core.basic import Constant from sympde.calculus.core import ( - Average, - BasicOperator, - BasicOperatorAdd, - Bracket, - Convect, - Convolution, - Cross, - Curl, - D, - DiffOperator, - Div, Dn, - Dot, - Grad, - Hessian, Inner, - Jump, - Laplace, - MinusInterfaceOperator, - NormalDerivative, - Outer, PlusInterfaceOperator, - Rot, - StrainTensor, - add_basicop, avg, bracket, - conv, convect, cross, curl, div, dot, grad, - has, hessian, inner, - is_constant, - is_scalar, is_zero, jump, laplace, @@ -62,75 +37,43 @@ plus, rot, ) -from sympde.calculus.errors import ArgumentTypeError, CalculusError -from sympde.calculus.matrices import ( - Inverse, - MatrixElement, - MatrixSymbolicExpr, - SymbolicDeterminant, - SymbolicTrace, - Transpose, -) +from sympde.calculus.matrices import SymbolicDeterminant, Transpose from sympde.topology.basic import ( BasicDomain, Boundary, - Connectivity, - CornerBoundary, - CornerInterface, - Edge, Interface, InteriorDomain, - Interval, - ProductDomain, Union, ) from sympde.topology.domain import ( Area, - BoundaryVector, Cube, Domain, ElementDomain, Line, - MinusNormalVector, NCube, NCubeInterior, NormalVector, - PeriodicDomain, - PlusNormalVector, Square, TangentVector, - split, ) from sympde.topology.mapping import ( BasicCallableMapping, - Contravariant, - Covariant, InterfaceMapping, - InverseMapping, - Jacobian, - JacobianInverseSymbol, - JacobianSymbol, LogicalExpr, - MappedDomain, Mapping, - MappingApplication, MultiPatchMapping, - PullBack as MappingPullBack, SymbolicExpr, SymbolicWeightedVolume, - get_logical_test_function, ) from sympde.topology.space import ( BasicFunctionSpace, Derham, IndexedVectorFunction, ProductSpace, - Projection, - Projector, ScalarFunction, ScalarFunctionSpace, - TestFunction, Trace, VectorFunction, VectorFunctionSpace, @@ -140,14 +83,12 @@ trace_1, ) from sympde.topology.derivatives import ( - DifferentialOperator, dx, dx1, dx2, dx3, dy, dz, - find_partial_derivatives, get_atom_derivatives, get_atom_logical_derivatives, get_index_derivatives, @@ -155,30 +96,15 @@ get_index_logical_derivatives, get_index_logical_derivatives_atom, get_max_logical_partial_derivatives, - get_max_partial_derivatives, - get_number_derivatives, - sort_partial_derivatives, ) from sympde.topology.datatype import ( - H1Regularity, - H1RegularityType, H1Space, H1SpaceType, - HcurlRegularity, - HcurlRegularityType, HcurlSpace, HcurlSpaceType, - HdivRegularity, - HdivRegularityType, - HdivSpace, HdivSpaceType, - L2Regularity, - L2RegularityType, - L2Space, L2SpaceType, - RegularityType, SpaceType, - UndefinedSpace, UndefinedSpaceType, ) from sympde.topology.analytical_mapping import ( @@ -189,149 +115,61 @@ PolarMapping, SphericalMapping, TargetMapping, - TorusMapping, TorusSurfaceMapping, - TwistedTargetMapping, TwistedTargetSurfaceMapping, ) from sympde.topology.callable_mapping import CallableMapping -from sympde.topology.measure import ( - BasicMeasure, - CanonicalMeasure, - CartesianMeasure, - Measure, -) -from sympde.expr.basic import BasicExpr, BasicForm -from sympde.expr.equation import ( - Equation, - EssentialBC, - Mean, - NewtonIteration, - find, -) -from sympde.expr.errors import ( - UnconsistentArgumentsError, - UnconsistentBCError, - UnconsistentError, - UnconsistentLhsError, - UnconsistentLinearExpressionError, - UnconsistentRhsError, -) +from sympde.expr.basic import BasicForm +from sympde.expr.equation import Equation, EssentialBC, find from sympde.expr.evaluation import ( - BoundaryExpression, + Advection, + AdvectionT, + Basic1dForm, + Bilaplacian, DomainExpression, - InterfaceExpression, KernelExpression, + Mass, + Stiffness, TensorExpr, TerminalExpr, ) from sympde.expr.expr import ( BilinearForm, Functional, - IntAdd, Integral, LinearExpr, LinearForm, Norm, SemiNorm, integral, - is_linear_expression, linearize, ) -from sympde.exterior.calculus import ( - Adjoint, - AdjointExteriorDerivative, - AdjointInteriorProduct, - AdjointLieDerivative, - ExteriorDerivative, - ExteriorProduct, - Hodge, - InteriorProduct, - Ld, - LieDerivative, - PullBack, - d, - delta, - hodge, - ip, - jp, - ld, - wedge, -) -from sympde.exterior.compiler import ExteriorCalculusExpr, augmented_expression -from sympde.exterior.datatype import ( - FiveForm, - FiveFormType, - FormType, - FourForm, - FourFormType, - OneForm, - OneFormType, - SixForm, - SixFormType, - ThreeForm, - ThreeFormType, - TwoForm, - TwoFormType, - ZeroForm, - ZeroFormType, -) +from sympde.exterior.calculus import d, delta, hodge, ip, jp, ld, wedge from sympde.exterior.form import DifferentialForm -from sympde.exterior.inference import infere_type - -from sympde.printing.latex import LatexPrinter, latex -from sympde.utilities.utils import lambdify_sympde, plot_domain -# ``PullBack`` historically referred to the exterior-calculus operator in the -# root namespace. Keep that spelling and provide explicit aliases for both -# otherwise-colliding pull-back concepts. -ExteriorPullBack = PullBack +from sympde.printing.latex import latex +from sympde.utilities.utils import plot_domain __all__ = ( - '__version__', 'Constant', # Calculus - 'Average', - 'BasicOperator', - 'BasicOperatorAdd', - 'Bracket', - 'Convect', - 'Convolution', - 'Cross', - 'Curl', - 'D', - 'DiffOperator', - 'Div', 'Dn', - 'Dot', - 'Grad', - 'Hessian', 'Inner', - 'Jump', - 'Laplace', - 'MinusInterfaceOperator', - 'NormalDerivative', - 'Outer', 'PlusInterfaceOperator', - 'Rot', - 'StrainTensor', - 'add_basicop', + 'SymbolicDeterminant', + 'Transpose', 'avg', 'bracket', - 'conv', 'convect', 'cross', 'curl', 'div', 'dot', 'grad', - 'has', 'hessian', 'inner', - 'is_constant', - 'is_scalar', 'is_zero', 'jump', 'laplace', @@ -339,82 +177,64 @@ 'outer', 'plus', 'rot', - 'ArgumentTypeError', - 'CalculusError', - 'Inverse', - 'MatrixElement', - 'MatrixSymbolicExpr', - 'SymbolicDeterminant', - 'SymbolicTrace', - 'Transpose', # Topology + 'AffineMapping', + 'Area', + 'BasicCallableMapping', 'BasicDomain', + 'BasicFunctionSpace', 'Boundary', - 'Connectivity', - 'CornerBoundary', - 'CornerInterface', - 'Edge', - 'Interface', - 'InteriorDomain', - 'Interval', - 'ProductDomain', - 'Union', - 'Area', - 'BoundaryVector', + 'CallableMapping', + 'CollelaMapping2D', 'Cube', + 'CzarnyMapping', + 'Derham', 'Domain', 'ElementDomain', - 'Line', - 'MinusNormalVector', - 'NCube', - 'NCubeInterior', - 'NormalVector', - 'PeriodicDomain', - 'PlusNormalVector', - 'Square', - 'TangentVector', - 'split', - 'BasicCallableMapping', - 'Contravariant', - 'Covariant', + 'H1Space', + 'H1SpaceType', + 'HcurlSpace', + 'HcurlSpaceType', + 'HdivSpaceType', + 'IdentityMapping', + 'IndexedVectorFunction', + 'Interface', 'InterfaceMapping', - 'InverseMapping', - 'Jacobian', - 'JacobianInverseSymbol', - 'JacobianSymbol', + 'InteriorDomain', + 'L2SpaceType', + 'Line', 'LogicalExpr', - 'MappedDomain', 'Mapping', - 'MappingApplication', - 'MappingPullBack', 'MultiPatchMapping', - 'SymbolicExpr', - 'SymbolicWeightedVolume', - 'get_logical_test_function', - 'BasicFunctionSpace', - 'Derham', - 'IndexedVectorFunction', + 'NCube', + 'NCubeInterior', + 'NormalVector', + 'PolarMapping', 'ProductSpace', - 'Projection', - 'Projector', 'ScalarFunction', 'ScalarFunctionSpace', - 'TestFunction', + 'SpaceType', + 'SphericalMapping', + 'Square', + 'SymbolicExpr', + 'SymbolicWeightedVolume', + 'TangentVector', + 'TargetMapping', + 'TorusSurfaceMapping', 'Trace', + 'TwistedTargetSurfaceMapping', + 'UndefinedSpaceType', + 'Union', 'VectorFunction', 'VectorFunctionSpace', - 'element_of', - 'elements_of', - 'trace_0', - 'trace_1', - 'DifferentialOperator', 'dx', 'dx1', 'dx2', 'dx3', 'dy', 'dz', - 'find_partial_derivatives', + 'element_of', + 'elements_of', 'get_atom_derivatives', 'get_atom_logical_derivatives', 'get_index_derivatives', @@ -422,89 +242,34 @@ 'get_index_logical_derivatives', 'get_index_logical_derivatives_atom', 'get_max_logical_partial_derivatives', - 'get_max_partial_derivatives', - 'get_number_derivatives', - 'sort_partial_derivatives', - 'H1Regularity', - 'H1RegularityType', - 'H1Space', - 'H1SpaceType', - 'HcurlRegularity', - 'HcurlRegularityType', - 'HcurlSpace', - 'HcurlSpaceType', - 'HdivRegularity', - 'HdivRegularityType', - 'HdivSpace', - 'HdivSpaceType', - 'L2Regularity', - 'L2RegularityType', - 'L2Space', - 'L2SpaceType', - 'RegularityType', - 'SpaceType', - 'UndefinedSpace', - 'UndefinedSpaceType', - 'AffineMapping', - 'CollelaMapping2D', - 'CzarnyMapping', - 'IdentityMapping', - 'PolarMapping', - 'SphericalMapping', - 'TargetMapping', - 'TorusMapping', - 'TorusSurfaceMapping', - 'TwistedTargetMapping', - 'TwistedTargetSurfaceMapping', - 'CallableMapping', - 'BasicMeasure', - 'CanonicalMeasure', - 'CartesianMeasure', - 'Measure', + 'trace_0', + 'trace_1', # Expressions - 'BasicExpr', + 'Advection', + 'AdvectionT', + 'Basic1dForm', 'BasicForm', + 'Bilaplacian', + 'BilinearForm', + 'DomainExpression', 'Equation', 'EssentialBC', - 'Mean', - 'NewtonIteration', - 'find', - 'UnconsistentArgumentsError', - 'UnconsistentBCError', - 'UnconsistentError', - 'UnconsistentLhsError', - 'UnconsistentLinearExpressionError', - 'UnconsistentRhsError', - 'BoundaryExpression', - 'DomainExpression', - 'InterfaceExpression', - 'KernelExpression', - 'TensorExpr', - 'TerminalExpr', - 'BilinearForm', 'Functional', - 'IntAdd', 'Integral', + 'KernelExpression', 'LinearExpr', 'LinearForm', + 'Mass', 'Norm', 'SemiNorm', + 'Stiffness', + 'TensorExpr', + 'TerminalExpr', + 'find', 'integral', - 'is_linear_expression', 'linearize', # Exterior calculus - 'Adjoint', - 'AdjointExteriorDerivative', - 'AdjointInteriorProduct', - 'AdjointLieDerivative', - 'ExteriorDerivative', - 'ExteriorProduct', - 'ExteriorPullBack', - 'Hodge', - 'InteriorProduct', - 'Ld', - 'LieDerivative', - 'PullBack', + 'DifferentialForm', 'd', 'delta', 'hodge', @@ -512,28 +277,7 @@ 'jp', 'ld', 'wedge', - 'ExteriorCalculusExpr', - 'augmented_expression', - 'FiveForm', - 'FiveFormType', - 'FormType', - 'FourForm', - 'FourFormType', - 'OneForm', - 'OneFormType', - 'SixForm', - 'SixFormType', - 'ThreeForm', - 'ThreeFormType', - 'TwoForm', - 'TwoFormType', - 'ZeroForm', - 'ZeroFormType', - 'DifferentialForm', - 'infere_type', # Output and utilities - 'LatexPrinter', 'latex', - 'lambdify_sympde', 'plot_domain', ) From 5807f07558f71cb8f8080b335bd3fe9646c5dcbf Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:54:10 +0200 Subject: [PATCH 15/27] Remove unused expression-tree images The images were generated by the removed doc/include/graph.py script and are no longer referenced by any page. --- doc/include/graphs/biform_2d_a1.png | Bin 50222 -> 0 bytes doc/include/graphs/biform_2d_a2.png | Bin 77917 -> 0 bytes doc/include/graphs/biform_2d_a3.png | Bin 80091 -> 0 bytes doc/include/graphs/biform_2d_a4.png | Bin 224819 -> 0 bytes doc/include/graphs/linform_2d_l1.png | Bin 36865 -> 0 bytes doc/include/graphs/linform_2d_l2.png | Bin 71531 -> 0 bytes doc/include/graphs/linform_2d_l3.png | Bin 94088 -> 0 bytes doc/include/graphs/stokes_2d.png | Bin 156410 -> 0 bytes doc/include/quick/graph1.png | Bin 19249 -> 0 bytes doc/include/quick/graph2.png | Bin 27858 -> 0 bytes doc/include/quick/graph_laplace.png | Bin 36766 -> 0 bytes 11 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/include/graphs/biform_2d_a1.png delete mode 100644 doc/include/graphs/biform_2d_a2.png delete mode 100644 doc/include/graphs/biform_2d_a3.png delete mode 100644 doc/include/graphs/biform_2d_a4.png delete mode 100644 doc/include/graphs/linform_2d_l1.png delete mode 100644 doc/include/graphs/linform_2d_l2.png delete mode 100644 doc/include/graphs/linform_2d_l3.png delete mode 100644 doc/include/graphs/stokes_2d.png delete mode 100644 doc/include/quick/graph1.png delete mode 100644 doc/include/quick/graph2.png delete mode 100644 doc/include/quick/graph_laplace.png diff --git a/doc/include/graphs/biform_2d_a1.png b/doc/include/graphs/biform_2d_a1.png deleted file mode 100644 index b94db10f1c5d1b38a127edb38064f074c5825797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50222 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

~QQ(nHc`#gl}{{QMN}-o4Y- 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 F{|3nQSIhta diff --git a/doc/include/graphs/biform_2d_a2.png b/doc/include/graphs/biform_2d_a2.png deleted file mode 100644 index 9f0ab50a995e9e1587717c8f1767e0e28e772da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77917 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

dm_D)2I{-CzEcYp0grh_`{jG{5$ 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 diff --git a/doc/include/graphs/biform_2d_a3.png b/doc/include/graphs/biform_2d_a3.png deleted file mode 100644 index e4d2ed94b3b6d300a912cd157ca41d8f04c507f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80091 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ϟrg(O#aYf^ofiWms)+S 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 T*JHF5{5N&-%t`0X?YI3O772dj diff --git a/doc/include/graphs/biform_2d_a4.png b/doc/include/graphs/biform_2d_a4.png deleted file mode 100644 index b1e339232cfd92260030157a96bc3c790a98e1d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224819 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�@l<5(T`X{9Dc7GP^MGQ-7(X`HR_56*+d1Lix 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 diff --git a/doc/include/graphs/linform_2d_l1.png b/doc/include/graphs/linform_2d_l1.png deleted file mode 100644 index 18ba4dc09ffd3ec6eaa8aa70e429c62e431871d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36865 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

(i(s9tp2lhcrTFzu!7aEz*dPhr6Kv-KY~ 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

w-WTU{-t$ohDzc5?VX(wWa;f`g~WC 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 arSvKD*TDxnn^-9LV?1t>;hC|sHvA9sL@Yr7 diff --git a/doc/include/graphs/stokes_2d.png b/doc/include/graphs/stokes_2d.png deleted file mode 100644 index 42807c4a43ef4ec592f3a86299710e69d2cb2ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156410 zcmb5W2Rzqp|2D3=+Nl&3Ldl**Mudi~WQ9;l5wenztt~Sx!P|zJLGU-+f=N>v}c5-_Pef-{W{6$8nxFRg~o@SJADaprD{ske61YpjcT% zL9w`T#WMVgRMcM|@vmhDN^;T^v*dr#h4FzD6x%2ir1xuFjQIB1L8H#LZFZ>MP_;pN z{mRXHub1Z3yw=-!pN>PoGJsf+Vy|R$jl79a^*^IZQ>4baq)(RhO!SIG<|)2Sx4=xtpj{2-SUT) zE?vqx8W{WVAx~#l7q^Ir7XFl?k`h@o{Ow?We^tHQ{G(6v9Y;*h@8V}=m2q%zC^@%B zR5U>$knP9tuttomPe)G=CqF-bmRW-uug>FJ$;szvT|%+^|NaDP{8b`CL9r(2)~)D| zAGH}I95v#PMDe*|(UiEjvV_ikc$iE5A@_XyhNX{Wedx;Y2rc=!PPDYNcv~LHEWYjA z_iyIY)#BC7=5ftBSFg+#3p3^>GAm0OwAOXL>aG5rq%bah3__D#zw`ohl*!5JRBb% zZ&M$f$)O%^_me6&c=WoYM211!uJ+10$%M5GVy{a}}>Ky&d$!Y+2*=gChujB=i3D%9IE}fecrq| z6e;PVQ|im0e&~?5fq{X|`1ezWXU|rYl_^Au+lQp3rIEiFBj=~+z|8pXOCl4rRFMhM zyKh$-mArh(At0c3N5t~Ovn$JkqoUHTQ_`2$*K2)#VjGCR&*=Ppf5WFwbPPG=oE#h~ zdU_G$;R>C`OsnonAewLa`1mloj-R63vUA^(;M-t^8o~UZ%v$+toN3C)iH7vpFe-@_L%={ckzQm zloamGYAPzxhwliRG-Mcl$}sd|F?s5~h;EN{?De$_C56hoZD~2l%F3GPHakNn;rJMT zy7SvNGn>6Z0jL4yO}VOwZdGaNt9$qE-R4Dv1U)Qjt~r3>mxlP`%JDcfJ;=L>(n z71znJh(yZ9+}y}+ihuw3@k2n2u3X#Mxj=I2n;`G;CmQu>`t|9jUhF>ifhWtd`AfI) z{L{J5dZr7AAuMT164m2(+kMlWh8UB09?LG>U)^n-n~OZ@lmR*`!h)DZmjS66Nfiip61%ztFU=*3!2ifA3(e7lqr z7h9Je)79-O9Q*SA{Shf%Zf?g`jxsaha|m3=iO$gAz`&TXW;cC&k)YV7`OnbM+S^M_ zp&}6%7gyHYtdB1aDK0MdWs*wWb^4Wxwr-_uzI$gR}$oO6Kn^DKsYnwa1 zeq{?RW6{;sotT&~X?c1HVG+1&?bZa_z7NyiY>z*&smAlODzG29TZZ!y$Px9zCjdU$ms7t1Eu{!RrZ@%|)g)u{RH~1tKWCeRX=9K7S_9MN-t& z)%8=peOk5u{F_F9YEg~HI<8 z0kJ4Uy}?>1s+Ti4M=xEy$@rBwEo&+*vP0*w@x6x3vq}L7YK>$~UI!KN zBc0T)ETgQwFS8oO@X5=w00ReatgXAj@pUqr>9qLt{+%tqid299la0zLUVd@WaPyd3Hr7)5xc2X0p$k zw{Us`Jv}|j5a*5^FS%9l|>=hsA-;Mv^< zFIP-=^1G>?JQ?jc+`o7?yB2lYSi;N(=`)=I6tz3X&GUtjX{)L7rW z8;ol29~{m)Tg6Bk+>7g!>V=LYwNGsOHjL@rogD2?Mq-#$-I++-!rQlR>4eR0uUfUrW}s_uYBm^(Q{3ja?g{_GCJ7IuYgag@un55 zO*+c0P=n;K>3B^Qx#xl`(3)vOM%){t%(r(Xk`Z>Oc1Hlx)c$VIq$Qy}_YJzu=8M_( z#$wsJ0S<0mxpMI4)VRKFZ>=go8wyZIdwUGZQFo|d#(NZFX7A6GS61c zd}G806s79r-Tzv7r=p?ZSh8k{TBcED?SsSgKq(q-zuK8-sHtNwbiGYHUFu8rB^%Y8 ztvIT=htr^?ak=%WfTcDK)s#4y-9#d3Fu{=Ma5-j)P8=g zq@kgSLyJP`H%2n(WSfP}jF(FFeztGsRlPN7Qr53rib99C;G7=R?_*?SBzVxmB6Tg} z-h{W2;V!KG@0)#nEkJJmDeY+JkO93BUQjbE#xpSuq;BD=%iJya}en5adZ6#i;0~1A4 z1Me&Ehy;g+J1#F4kF!Kw?EO-h&v&9A0i}FPzFwK4v2Yg-VD;Q|@*JVC~&J zSAc2gL@am`6ZU=p_#mL`ef$wEMBs2aciOK33D<#_LYp^lKAvYS6F|+tkOIWqgIAg@ z5tppkDc>>KCVy!J(_GIlJ`8Y7?o_@^VEyRz1_~xSWE_wVevq*4A9R($HfA zVu7f>j4(F7bn2)o{@Te{@{$3AWn6b z#Bq&$Bthu-FDzCd%N}v@*?~f?%V<0WYw}yVV3u0@O54Ge3ze< zBCM}AZrH%0;4(GJn^oxj7~Lw%xVp_(`QbuXBhF~MiX!31^>s|Cev*^&h+=%f@w|S( zUT%e)$PBxY-lGyz-!hX_W3JEq2rZ`eJ8NjD5Fj8R;8}__ReU(2^mAtHr>=#BMJB5E z%*+hhMhzNV@a@|Pk}i|oXdPk~zej&a(PdBUew+coYE;G);e|Sp5y4ZV|-4oz%$_zPT2&d3=iAL$jbIM&(7pXP7kZ|o+!}% z^5u(8o^_mIw7~{S;4N5SGTJ1A2F|j^>UKNOF#Lw+l z%*z76k4>TVX6EK~_YN*6pVZpg8sNFgz)xcIHd%Zuya_P1r>CbHrnTWR_9*HoWzBp$ zbMpC^Rp`X+9u^c7*t9%dL{Qt=s=G(eoQY-O#N2ZC?%f~XzrQPTnIdSBLDE?p({DM3 zYAl|mc-dRblb0@CQapUP4k>Gk@+l)Dlc*dirjv2zCW#x%FMCt;i)XSWQcn~nq4S?> zE^;X^FIPi9w8ffWT$D%u5wU1eK{#gF^r)pA%ajf1=Y9GyLue)3Y$ z^r-H&>(`SIxt-bkzn7ds0P^tn2@31cD#4V&(F+xtIdDdCxRifu^pU~>DVO6oNMytK5(2K=-a?6fJz zWw$Uisnuvp1mFWs4}U!E$0;WEsarl_@meOyhl~=AuV1`4h`k8aN^~$kYo_pJ>Iwa(fo%*>+Cv)7p~q8Zs9pl z#>n&4{0T;t;iS}I6})|~uHwTaStU935Q+HMs`Y>mlhl_#9)m%~3Ij{@Co=DlSUyqc zXwv=e9>LG8FK+nwUR%Y%$ESQmaw3+|?bmtigiNU)Q~dCP^0(|hX;2@)g;3Mcky);{ zJed2(&`@>Y5y`~dT+x`Ady7TwzTKAf-J0mjAl{44;OXsMi^sJEtfOV1oPVDrA;QYY z_r8z!BMl0htT;3@)cfwPrX>y+1XiERdoboNHO|!e6m&=9m6_94y4Cm;n-a? z(8T>$mT?LSs$;LkoX68KdIPSXv5}sC%BQoxS3MztfQl-qS-mK?nLHG#+Bl`nK3jGj zIQ`0770t=p_eL|PxVSEvvJV_QNT%#M&{IdGrXSyR8rU;8@GYFrqBid*L$3HOOiHNa z=Mcl6(1BUzCemF7S1~8ZuT0$lTvv^!r(tAFef?TKtkP&?uvveHoNq0boOAi|fi1+Xj8e((#OkZI7}i)}0Oa&z(L<`=}Oi;Vr>oz55(0Z(Hv zo6s}REcgz~IT|RO&}V4a=TKrkWuEm52nYacMM;4Ex%yNB22paO2?9f9>dpyA!-|k6voljRdE>Xl?A@qlArZ$hKpC3P;<6IAV8&Tc!KAwh&i67WU0aTW(?S zlwO3)aikWMf%e4XCjm#Hnw&8=H~)ToIut__0K^bC_)4u*z3MonP--ToGzyLPF9 zN>l;8$x;R!hZ$BAu(dYBuwsMEQ^ZsG8G-54L%VkET181&=SjmI6dW8kGd;x(h>Gzg z(8uSnNt5vW!$*H3B{`b8qN3uxpVUmk%a_u}3ofdn0ukzx&y&F1IVAieW(W%>H@6bz z%-UR`#6~cti)r}Ixd&Vo_It>sGpzT z<;#~rXMNl-wqR7;xs^n9(&gyrZ3H+>jrOafnE3drC!)ZaH)bDx_UzdthE>8f5Ef|F ziWMqj1D`=xE!aY|qJ5oXKt;wVBCFP|t5-iFVQ3S<#rk&$lg8+~b!6sG}i| z!IcU0p9JP-ZpHyO7t^j`@;^k9Pxa7(rx3eGp2ILWC@2<`hqm9|A0C)m_(>m$HQf$k z9_*x=l~wxv`}av5LgP0s58@^X_82T-e)-cMzD$ui3DYXCb6)IFs%YNhc!kleL$Z( zV`-TN{+Dyxwtc8{B4P{JX$>L5lO~vL;?qlznw_X31RBP+Gd5d)Nn<>I{^A8j24;pm z*3#hP2_eCDI6T&Iq?eXq!3HNSp3_{|0F~%Ot)joa35x-Ar(;-Nyq%3r7Q3rc=$K{k zr63U`3mGH-&e1LklzQgog^d&+R zaH>D(o|zi_^L>Qp-e(O8%P_`0=%K2OQk+OI+S(8xAM4|z{rP;ED@DXKz z^$Yn_723IqaUbQ5PSD6Z+pOV!cegQ8hL&Mv+|&Q{;+~m%nC_XGv0~uQW0PO+SnfXg zlp>}*dW~L@^D#6wLio0|wGl31>9S=Y`xFqHcmLSs`*SfTGuofi+&fgtR4+9%w65^` z^VPDY`}cUY?zUg>Zm}FDorA{bOfN%)Ll;!N>>QaB=%oGIGoj!KM3`+G0RYIi9bH z!MYB8H%-|569>YrYVS{Pw4FcTqv1_bLTSnnM?z*Fce?y2V-FWL53fG2qVN(b4FZj@ zJg%-qP#=;|hf%cUKYaMGP!Vvik)2zTHZ)m+PY8hG)h}woKy#IZ9|!>Me**Sn`n^}a z49Vd7Azm8&`5}Z=cK6%{V2U>6pP88n@+dW2=p30en(#Lsn>7gFWAzZM>cA*8>(@sE zzoSV15wPE#NWeZd27bl_PM{D(uvp|iKIW)AhFkKf5JAj8rte?7b}i9W9zZ<;PJF#^ zb*=cx>YjXDf5PeT>Pc85?o`#qtm5CgE9T^Fl=Gwv~BSI(3Si^8k+?d?|F|Mt$5N>wPOSGV+g)*+kwZCm_(moGnuX97N`1+`3OK1dqX3s-g@+2$X@r(dlheE62$H>5G^8Nu~TNmb%O4eM_en=2M+1Ani#(4aLxZ}8h!3taTo=Ab< zbjzU*FIuz+yki7pfO88AWiZnm1XnXQP9StX02MHjs%+_^^5g%+u63s(gvWBsny8Uv zqJ=#3$2KX?Z4)<9KtP6$fCT7^wEwb8Z0*SeqBbG}Pn|mT>4|OfUI_^yqc>a7*$(3$ zp@o}MevQkR0- z&``EbOid+&qWxoahGev9BPl4{%O3*$V0|2JKKk{`*=Oq>wb9X0oqRjqIFS~1$eJk* zKfiK9%%>MNyXEEO1qERTGUsrl*ikUUvU2mvn#!~D4*k=hlJDU>wf}2vq~}(+V@#R(X+p=AU>0X3~nIJGe7I=P>h zcVl5SWRcsLF#65g!MG#Dh%if*5)&zQ`{)tOmV~WiWn(i1hyuY_O@y4*)_Z6ay{J5Y zY>%%f$*O!*0e%q?5yLZQetm7av}Cy{W;7|?fF<9jSXfy(d3X*fh455kl-|a~#00=f zHYGJR^^ef8`}>nX8cf`Y6TzFJfGa{@5Q`Iu_TFv$ZeLo#4^INF01eQv<=m$G^y|`3 z9VEe}n`1#U>o*VORfLEiqJ@uWp9W!-uU^TbAio0uNd=`eF*zA>K`eUmQAUOuMu3rq zvr$B5nEd`?9l_kdkBPu94$z#H+Mlm%zN^L zvWT1F3o0(XQ} zsyRAVciGvgrRW4?WohJRYviPM4DdBHHcv33VpoGz)6mxDz*nQj>n7iG%n_EUb{Bn#*NyC zVYT%iCI#0%I$b@^8_KV*iI6lDzJpOW4!FUzrzVaF%{@(9-K`-nWkIFKo|}|- z(!e(Y8d60ad4UL5N1mXJ73z&x4;aqNJeF~v4Ooee;X zF|#SqCk8a4$67X2vNe@M|qoaexs{{(~ zZUr?Rop3(=qKBvt9AHPJX2xTRW@nt>cp_RbDUXDy0-J42j0bheo7rFdUYVyHq#@CG zm8fZ0H>U6Zlo6NEtr>HD`1=c)rH^%yC>fRhA#4m{8XDQ+7gatL>p!uM%LJH8D`lG1 zesMzt6|19LJ9`gBP#QY!T*V0GJBsNLc@~FeBQf-HV@6h1VT=%I%sI`jx&RG)f!+`y z2)8jaJ?M50wkdcU{9$q;MEYF`Cota1phvjtB+`Js2myybGFjy|6N54UI^*2yTiXdO zNyur>r@w=fV-5q+yr_<;@uaB<7gBRB=;-IA+{!UB$S*OfUA@v$7CMKzaW`LQ=Y&bc zCX;%;vQIj6Vj6T3I&^!rGal^{-r-&o2x$mI4i{h-A>T1^ktaWU*FkpO-tSNOPuN2v zvF(1h9}+W}M$lA`n}!j&09G`Uk>0w1SopX4Kt^C%x`JKOFr8|;iEt%TI3fK(pYS<2 zI+|kk58vyMv3F*Sw)*!g>}w!`#!lY`9+#g!!&PpIs;W?YYSK^Dcu=9}$;MCFCMMQA zIIMOtmztI{FHfPpRH;geURjTl87DTg|b46dQ&5yAE!b^zLcQHs?lR089nwh{oo zTj*=}lR^$ZI-0ZGV8npQB^d+`DWBmxPhEa+D2!Q4tG+qQ!ekHlLdn@*7p`5s%CTd| z!S+(WdLmgb`?d3TtKZi^W>5~drAupmbk>Lu%CB506CZatif^Q!8;-AdkU~Q>_hsO; zQfg?x3|pf=tGH-wf+>j4(Sgs&7&KF~9~~fGk?U(z|4#cDV2`}~d~OMe!k4zlrFz&< zwsCVO=YJZ6f3TKV3a~?DlyroWDRlCwdrd){8ZjENDuo!&{F)$gmJ)wqEE!csWtkdQ z{=2~LNgn9*(Z95LYCdJv&|6Xmm#`fPF?w^Wpuk&MQ!FDhE`6uT+pWlU$ALXPby}>O zH^&4n;xH#;0t5~kz-o}nFug$bwIIT~>ts|tWU7t=v>vw|;c))R+;5RS!E!gYX< z?1hAw_U>9vR5^Sd@lmcx5EzxvMTvAtWS*GQzq2vgbZ#w~;*Ti3f1n_4C*S@`!LpE5 z=$w&FQigvhJMRge%1B+C%b%wPm15-RBUkM^HZhPtNYFl^Kmejp<#Q?@Wn~=&=A)sa z+J59nmA+mdWav4mhf#vem?nU2$VuLcal@}QaZ1FbMTRbd;)t8!+qZAtzQ2_+_oPc? z#mvGgYko~Yx(&$58E!aRv%_yoWRi1ioPyhg*W)ucYm1AiH!#V1M z_;=U#b#6XoXtS7NUtMqjGbN**&6CDPOQq`Sy7*x>P?OY=zp^jH55HJfb8sC^Bnr~;1kQicR;}(EAG+UG|0XQJ$EP~cyS0xSg>e{)XiX^-edLOL zCK=j1I!|m8(ZJj;SYWV*Ep9qH*FBiASwSgk)#Pkk?7jaM$J+d(;4MH*+Evr`vGyV@h?DOZ(^$W9+E_mZ&*gAKgdVclCO0#GnN92(* z${hJpVqjWeYKyk^B(;d+XmzzreE7tqV&4aa(NS6Uq>CXu{tpgwb3L8zx0H=v^xcVY zGeoHesf{@bxGE0$3+9LeoM&EMUis_SDqy2)-oH0|q)h+^cyS^}!1wzO#r}-`Vb_yi z3LMmdq{OT{JnqNDK({clVfnoT8j_?(#j)>Fb?l%@JhZbe zsqp!ULS9}?k&9aYC%obK%%qmdv&B79v;I%)gv2P_e;5egsf&?Y2YR6wvKhwbkZS)m zRGT-)16&dI&apqM9s~QokL+H~ItSX_lTHoj^$eSsw96`5+V@7<$4a_*D!W!x2$B!Y zK++MP8wQ`cY(z5pi~ASXDf7xOK{+&T%$5Is-ab}h;ryP@Ai-66M@ysQ$*gP4`=)&8 zm|T1J>Opto4V^y3W-?^Z(@9?x_@syS6$mD9E~Tlly+c5giA)X<0mN7uJ6Y zi<+V<()qbnH2~}YVeAN>gMYsKjBru~<6k)Rik`?gs1!=($Nyao3Jn($5XBV}KWna2 z)*u~^a!#kf${z#J3S_B7!f4JOX8P%IBC%?rtex1*e?kL7Q4kC)TuzR#EfV)n;zQe< zyDpm8(C%Roile$_=7xJC(sb`YX`(BW;NBcu&T zAXcRgzc-44P=_t{t5*8=)`#A8Od9_1rmT!uI}I%@XT2`KQZ(`{vx=Nws2#;zV3e3* zEAp*Bt}HOF<>bNa>0qkm$&?_BbAiK!%GBY%a0&& z2<<^8t|!)=p2XgQ9Z!N0iJ&7lTR#XNg;N9hq#Y1e19M#ufPe8Uo7;VL_Oga!o}OGI zaf>w86AlG22=PtZ$cYEU87Z!J9lp|H6q{+=5pluVdN(LF($?U}t2vie_yF2h(?~>3 z8>DG4b{Hu_%O>Yv#&Pat8YX_Kow`?BRCu1203kr&wlQEm$DX)Q&r*OE&{>Zmdqkqv zT=@E?dNqGRG;~942!@2ue2faNuQv<5Efljnfll}q$kK|$Xf>jK)66XPLrNSBw6@16 zXkNprg{G4%peqF{0tO%u-a&x(cU?x0!9Bt$ES&wa01paOsRSKp5}`AkQ#^eb^yCL9 zq64PNCPeRmF$&_SK3m`K`V-wta76A|tyJpi-T@1ONXc$fjm<0yAS$Y>Qk}lH?B_j}Aq@%{+lK!WyFKwYl4A^$E=~4PHY28q{Hvoc z%PT0T!hca=HVx{S&}t=vp!!pR>P=doUt|4BY)r&Z034>V_iJb8(fiWQ>=zV4+}%N{ zR+zc`UU&^&lFnm1;`!ZL%a@UkdJ#z58YCYULXh6j43(KMQUVDI|fLK7X5bgF4 zRb}Fl>YuQ7<=<43em_gXKS7Xk#Y;`iyYhS*-EQM;3MKK+rZp55JyGrBzv)sI&!TiG zNmON>Q!8|gE8=lq^&Hx5Vq&6Uh8?WFGrzi|nl)?SN{j;%P>L{fNd7DI2e(wg;2C9; zeAnqGC<7JdQop}b!(#6JzZFe+x)$1$ecXyUJizAX*TV_{@MJnVPFkL@PkvXOW7!-v z-2^`@7}9VlH`kj(8`+h+al&Or!r$#fXT|LF-Ngxx5HoCGAW_q=Hxr)onX1renN2egL4*O|7xycy@{XJS$_)UH`g5fo1Gf(d%8&4pEXNk{rVd!zT&1K58`4&l)X*~+IAHM#R*?qEqo=HMU2iT zaF3DBDV>S@$_%qil~NalMrxK_RQsuRsj8fj8e{6Z9Z>ti7r}Et8JUSu7RQ_><73(MaF!T9oMOT5g;jr!-oyQ_u<^ohK(Cnu3o*w?3ypZ z&`=J;U_P?uitV=59@XPQOFa6nqxG?j+? zWSg|;`NiS8cZpSI!Qguxs&-PJrPGz=2OY)Cnk{TLP$lvp;G52uGQ7DX;Ro9=$Drnh&8ulT^W z?b|Pb%!7{r0Qx{#?m765aa1S|$9;yz#`s5mA~b28sTX`Dvs#IU^F}Iv-OW^sEDILh zSofkohd%OwGfFE9JNt#9HW}0wz%sSF&KuTlO`o1@XrzynmF9X6$q5Z_xo);uD?Gu1 zV#-FCNa13v|!Z)Ii0aluVib{Qy<9m2vPU_`J1uOM@IzO&a2m~ ziAB%Jeey(eWcy8z`5*aC^`XPk(iX?fXtVVo&RE>Wu@WkJdffpFOA&4KGfh`qXiKF?Yw_$gi_hN5 z>V=&hPp8LTG-RfqUANoxj14nYq9V>podTNNDr)8K?hajkivg?wd(r5S8zRFfGv!}I z`1$>UfNe|T+1S_&vUGOcsl4dq6w3Jm22G5+>GgW1zuy=C5%c$V$EUAnblp-k%P4Gq z`RP8)F-II6vX2kVOzD3tr0+HEl8IG@8>t;$!Fve_9#}f?KL=xW98JWDjQ9EWmM5Ht zWKKAA(qO)MU0KuXHF;NXul$cbJ=7I%?^-P$1 ze{Svy;UBvt8H;Ap2<0{K2x3v;ZbdmDX-T}97zeZm_h&-D>jkba# zUra4n)VgB@fMP7-#d);hEGkgUj^m-;-rm-7@r-+{ucEt9L_|b)@29hYo=uMFJ`y;!Lo*S@yeB4OFca*(a>JIjD41apbd;ji8CXz za!DG+zkaO7`^Tf8n0(u{eW7)tt2NU8WI6S1@y({MA4mo>vn{*pxQb5Xx}Vhb4=Fy%EX;K!1E2G0 zcN?#Vx1|;5+Ty^z;yI{M*uH{^6oiuQJTuXiH7c5B2P#`2M%_!v8t$%rJ!(zC`6Uob zTH4wSzEjO7o`;8q(p<=Qdiq}Px_c$tyfq~!`m`JZAmt&?_*C<$vJJ2aXcuj*J+Y z%2v~Jh*4j%WXZYdwU-tyLGi&75h|)gXQ#2d>?|Eem7^G|y!ahAFs_9eATsHP%a4@> z-!GdFpVOdT!(>6S;4ND17BL$R&|QWDO?d_5ZC)Q6A)EGvM2Oq_qDzK=I2;0S7X(J5 zb31f&`~RF0!+kspo+m4EZbuxzUcU)oRk|%=$w&d4?DoOJ`gNJK&!3x#KdXCHX)0`a z-R;+s(QlV#f4a3~)kiCAj8VTSe^^CZ`!%SW64?F^U=RR@GIJ2dQ*U3}7Y{YL!NBoh zvZi=*d)F1xH6oJi{^x9I?d$V`y#GvY`+_I5u9&Ogo?03jFM&aB3!Bryy?-b|)E~qp zjF5Zm*KXpwTH^Jrl9EmN>aNq#=TFC|H-|qz@G*VSCf>^_y7%1NE_Tv%!^?h#Sxr4c z%+?d0hJa-p0Nh*&yq8J%4anV3~W1NKc2tc*_#)C)5D}Ezg#p`m{TD>_ki;wjjf< zU+0w{lV5T&H~c!oy>+YIq3o`wqI!mgbP@CMN=nK&;DlxIykL57@fZIJ0JZnXY0QG0 zX9kv#!=cr5ofIDZq6k=Eon2fU;K+tGHL%*hFQQGYsV+vny}dopre^~M4jUPITH&z5 zW6NenEiJ7pe)|>{Hfow?Y3W#lZ%uiDKyjHk(1JdFTil)xnd&xPpcHy?#Pni2rKrsc zXP4GAw`=To-C?^qyONKW@ro2g{^F_wY~s07=It-t<26WR0iA=w%cR_corjc zL}?kB*0wga-d(`B&flLcmzI^?z{GUKk5OWah{aZvEm1guc5>t$R#aSt)gbSLvt7&9 zY{7H>W&hb$E36c4LI55ID8rQ?LJwWMC<=XjS!_shB%tz}?%K8hJ!R#!Do?2GJ1x#b z{x*DjY(WF@=ZbE-oal>>YI(8F{8~mVi}5Gw z$&pMS%Kp051qEE9zigk_tQ_sXVp(*_hrYFx=~)BqGRn*BQIGq7eC;@MNSG=yPuQaA zHChQIoHNid*U;_mwr8@;(rJL82^4f1>IG{3 zR!$#Dw`Ge5Oiq7hU{(;R5!M&rX7%v)J_CvHucb?OLFk4o`qb<@C5sm=YU$E?6qgx9Eo%Lj>%`L0!5f1`S8_!;c>Z#8(_NY7=9W9_ zy7OWTD^=n>h)rRVE@JSf;SAzcv=Y2X485Zd>>wF{(c~Z%%oWmjYIK8put+qaK|MBa z41viBf||Y3v8qV%Qs_Pt82lTGT*Mo5EW3t#-tV?(x(zSrZKxIzV3OKwuB<+9X2yf< zW0jP=i%i&MQp0kn?!4ELyaza;25O<4Au9a#ZI3$B5;NiU{{G_+)|`E${T=5jeBBmS zCGNSLrVqS(S6M@Y8no8)`ub2n{q-9*s3l&z=C#>;>Epqo%>Dwq7K*J>7Wq|Q7@eJ; zzTaq3{5e}mFOaRJZ80VNC&u=#%P=|DmsQ=2^jvN*D~fAEr+X7A9;$W1;Tn#QeSa%H*kV}w;jY>}u$_Bw zY&dKv5k?f&uAqf5=sywjOFVGCbR8XQU*bK7Da= zcWhjPMNd!ml%SxwpM;yMh-Tk@J-t`0EfgcY`==+fFY67Z91}EdsL4*&-AB=M{>Jtj ztjt*&NM#u9JL6_vx_BlO`X7c_n&5aB#} zxwnu9nK%eGCvWp48kEH4Cd|xSqFhae2}T8ok327NT~O1D~`E$vWVw zjWDtUpNHZ;iTAjx1B&}A_=5~=b|)S{4?*>yqNdjPS_F|fm^P9QZ4oJn9?M!)oUul$ zKv!?yJ_?+;Kk6d7Amh}^<}ywIr_okWQg(iCec`=zPXO+jm@`%LQ2EofVGo z$-$i!p+9Ss_^WX?8pZ?E90qUSqcOR8d5_>41#&Efbx8?laW0O1w$Gb$p|jPI6VM7b z`%OW|$HvA6(MFNwF)(1(Os2_f@XpDx4-<$eF?a?W&$XlTjmh8i5P_AgAl=^FmAC_{ zWy993ZxA$E1GjfkQRQWWsM?7u4dDEcH8$ozRegp2*sU$}0qoUVTpUp$She>c>|nIw zc09ANMd7q_QFV3fb<7+*oS86ChCYE!DU{q1K^yf12fA=DTIuc}NJR*v82F*ueS~fB zy!L_}`!P$VEwvlC+5>}a8BT(%Shb3ojqN%LF&%@FbnL5R@U_AJy9Uy!A$&8S&FZ@4 zv!26C{T7f??MGieK!j$ho&pRd-o9)?xDH_BCa14>T!YECM&nS~WH| z@t8W~S1p*f!_B9GKv@BvL9<)2#?gtex~s~hfN%c1t}ZJ zlU57Bktr_;nBH5c*%@cbHbC$90%9X3EgUC(ZuY@)IWx0JFA&KY6hKiiF_20Jqa&G_?^ENsx)i5N^f*K*s`^!^t)Botm|nx*5j7Wg`t z8)E`o^Eg8QiS{H0s6*kqSDrn4HYVoiO`LA~;xcx8?ph0G=B#~2Mr@eHF)V#CfboMz zH+u~{hcTz?I0=6Jn0{)jn2iVAu>ywW)N|T3t6C}uKSDBlAMrtf<>b5x68)*BC%2`I z>B*BPBlC60Tp=)W=|Z%0lggc9ojt|L!vV5Ih2?P+5WCY zxY1=9i5D=Nh!?f%e;P_> zR?=A%PN)t{TxY(wJd>5%m`MG17YKGr(bDtGceF8ecHWB==W>`?*qP29W%8Y`xvvka zl0?3)q^QV@hDgJ$xt^L@`p_YqS05D;3-OTm*+frYfwpkd%j-1o%%Ly=nH@{cxf6yJ zeBw^TCdLtDeJdWMBfHT;P%K)W-t+%TwamsR-Bd3?8otXsdxRWv@9q1C zO+cZAJ`L2(!NbGj;QBY8aNf>Nxb4>bF2$~$t8dryE)FrnDtZbO0no~i$-Xo}h?8%O zczc+cbK1a4cyHNt85{;-3N|t_`p$L64mMm?0-~cX@H+`48nqA^)7-jX!HkU9Hn#VJUpH-$zHkq7TJDN|%)jSoQdyvG&d# zdNisg{2^Jn4T&`WfXu||#FC|Xz-$y-85o9s{NNH4tE;M7heMq{{+oX1kpG>LU;;7g z^uS1ht3QoH5wUS`yUw>sBcp(XMZ|P`?qN&ylz`q~p6i6K>E!dPD|xijDUdFRV^&d@ z$=&34fU^wX@O%?4q%@l*!=)-KD;p+&t8uo%=yJx$XmLwN$5k8~%xhP#XmnAYUy_bh z`X+pLJ>-Qpp`fGl{xR@hm_rJyO7h(yn1U(X1k0YG4NIal`e7%q!D)c!;_~1gb_>Kv!kXBE7uhls4{x*uNt z9(-bAT31(BAk-8i=U(W#@^iy&ddEbkk1{0$3IJ-4gB#`}MDae!XrWs{LDJyeVb|Tp z!Qp|E*W~Q44KSq+F8#Yh$P7?Ls287#Xw=9eQb+1s@CM2R`-dIJ|~i@{H@{=AVX6o`AR| zaq;nl&A%_>^?hW-5Lbg;y?V8Ki9MD7s>k!gA0PlDInQ40A4~U0o9El-{Ls7$T^rD@ zLiJtC8ZC=`AoNvNOLvIv5fcjuYQQopeGdKIf+Xy|ZNU+OZ9+mc>A}4?pQ$=9u7Ug^ z?OT-R_ajkFEFt5`mKLxGJjXJw;w##Ed&}Vme~bBi=bbDbFAojeO}5qOZA2MzL=j{N zRFh}#-@otHR-?o@?VT6C9s&XL6onaw)Or7zk-6qLumV@C|g7u4x= zqe?mfK|x^4o}Oa^P`KJs3u7T%<%n1spD zi3x@S?cNaQBzBv9eAjKvY_Jnh4{b>S38v&y7#;17Q37Mhe`rlv8z28}*RLs6NVN(0 z_9@E?JS`3#@0XWf0fz$>$iO-5U<-!0B9tF8(24u7y%N}hLvdReluQ@lJOmP67M_`l zr~$b6i-Gh2Ofw{GOkbM`hX#F24G9gEQ&dz$#of4Z<0BoS#Nzs$ilA1Y94Oyh7rcHy zjGhcxoK<$XodnW%B`V;`wQIlPf-i1+X-tq!PsntHZi!0~6&FrNY888D#@k8r@unB? z1>J%7(4HAdb5q6XVN_yy%2rrk)QncIUCU>yZ(+fQ`-^ym#6|$t2qibypSEs=-$w>d z>Ehz@C^J*AEq%T@tcfGBvsB@~A)1sd)JNi{!QsbpqDg+rN=CkK%AX!>JcdUobIAE) zK4Sh41Jb&!qE9jHyngeB$D!yybg0;DvQZtI{!`IG*$0Y7W593XAYoNHm^dU;1&lnh zFg1Dmvf94Sl^=5i{B^Zjz zepZ0-T)*Dk%S<PQRuUJeH!FT)iFOHvps{{E#cxt&2zKgCY|EUl z2m%5~z!)}_>PH=Pu!AZAK)DU;HsLt%5prEBN3cgz0*ZnlPX5F0@%pr%#4ET7O>oO1 zmMpc03|2Umx)qW)m^uNACQ&@KhlU3XYve|bq%~T4x0DVaUi$RevrD)(Fi2do4)?d_ zpYr_ospMq{TJ9M8vn&B~mNYjvcWeJxzKKWsY4hxiJt}tU#1<(jDOZ4bu0yQMA_ibb z*3b)k!wpZI7&IQSuU?mxor1-jFmCYFWdhCzcgnAl?(>mA6 zH1KH)6%$hqGG3Km_@gQj<_!E8);tvl1_cn&^-V*ScpVUf7}b+S!#pBH&tE1K*TwHG z)`R?vw6u(j%1~-S?Aw!4LlaM(XA4rv0L308<|Rm3Kf}BBJ|#UH27xrHOU!D0|4p^U zfB<@mc7bZE=0ivvYn+f{!F{#I9vLjf@JD>zyXMM)NqvpSWUx zBn;x^_MQt5cI}suUULgKDL(+l48WznixiGFX})4njc}F-itnSphq)C`ffk_?Qg&5El>#DyTO@{o zEAKr$wj}@4JV8Tnawc|6etGdCrl~p+dYY)XIQ;_WirP|8o&Hby|15#fBew{dQj@Eg zjIF(J0TNCq9Il{lhCYqMEghC_Q+M{4N%xX7!8Py!1{~kg|LvQ0!NpzcB!<@mwx0yU zRsjDjys)^dXgMB9qX5E{AmlblXp8?K{v&&b{=$VDxa0J+rR5QjQyxA(aX6AGTS`Nf z7y>&zT!)%zO6G z9yxMkN#M;|UK~r(=Gg>ZRjYTZx~%Lb7)x9gS4#ZBxEtpZr%ci-+%H&#{p8Y%7O0qx z2^@Nws_BhHs3GaN-SrBdk^$r{?yDLC;SmrOrQa)w^~7-b0)~Y|5U2ZB$|QY(vA(-8 zhaVG%;Q%DHb{OQ^uWdfDb6c2)e18x^d7!%%j6SgLBHiuH|4|(XB3^++@&CejCrX1d zxsR;@j;28It%94d3`ZQ-C?k$ZO+px+Pf=3Fh=%xo0hWkVk6pOJt{W@ogsZ02m+_)i zKP69!^C>j(fT~WZJSE5XND4t51EIC3rL|S{!HUgWw#cKRSm7dp@fH7WuyijES-r31 zQmgY9F2ul}P&}230z$QE6JkjmOba0+z*cFgD(?COoG^}yjBp89shMzKNXRSmoXW=KHRfp0p_igaVemMe;f5;dE=MjpI1HhJwfFYwT*}Dtr+9437qUluiXQbloRo_~1wNZJx5J)-WBBN;Lzrl#A+)h8M{po#{x4Bs zU&MaaWTAh(0FjZDlB@oGXn(pv?#$|y`0KS`AA9Q4nBbx%@*Yl$)D*kT222IciLo7s zzz1kwxE13aMu;UFz5K}`5)c!wAqgU5WJ{?M1u;{XqAa=P41ewJmd8K}$$K|+)L3d3 zHC@=K)+U9=|F%M;B5K-Q_ydxt97Q@O3wa_ifMRsnsTt%ZJGVp zvbwL%n5<>012LlA?P5}srGtOa;ZsHO^(EQQ0^@uv9S8T#&AJ^l4 zDG(9BD<T0CL=H}%06$7(7bzGhi`?RfslW=YYD@3J@I(z9%}BSV$%-)r{fP1_mQ{MFQC zmXG7cEdv%#Dc{UqS1wJac^h>j^K9!ITHR;ewVa}MZ#2awJ2yAhFVcDJZt;I8dk?Ul z`}Y6;Q`tpjL{dl@+1XKw76~Q0w9Jf*vZ+u>l&tKCC?i55qcpiLD@u`;P@1Aass4{w zT-W`*zrW-6JC1)x_jMoFMSb4me4XQYKF{Zwb!N+k!q+Wz*6*5MZ}J5bgLC7Xk&&U@ z>(P|n9pK9C^7j7DsAq0T$=2o0z0)QeoqW+&MQJU{pzm&%&Kk&r{>k{tm`&d_kb|Q~ zu=YbjYo_y`p~o@F%&eEDrY9}yL-Vd-lz(qMy6#iUam>#p$H&V6NuoPu>*T$Q)a3A$ zmB0&&*57bhvj#5O+0^ts8&=-2qzEPANPr}XnzNm_l!6z`(kLR91e(e-}`Nh=%vgw^QuwdH|>|0;sQ~B#+x(Z{&27jQl2z6){U8N@Vg< z;vdGo7Nywqw^bno8ag8CL_?gW-kJ+Y|YW&4w%^PDSy@TFYNKiQ`Y}xK1wi-QDUo&Adf-`pd3O z3_0K5Y|ZR4rOu*0ZP0h@Qokwxor~^2OwM%ho`B;eFMG~;(Dls~59mf&U0cYxZ?8YI z!8y}!j`59oc^89Ldg=EUZ&{(lmMVfQ?9co~)9doei?ExU#2} z(A1|a3H~T^p8@5-U%#L+;f0hWAUWhkI};uH{iJO48=iK>J}mFnLo2nbgVohzuKia+ ze15=3vJJc<)P&Lt3k+Ozr*HcAhAj&yLo8o+?DVL!Eu~ES1@qib&HZ&-O!U%s4N?yb zkWv{L`!4cpRrjq?wv+0LD*Q2U5Ell6WH8Y>t5uJySC9sNtS8We8-NJg9xFNrzy>f1N; zBQrpqw|(uCcKl6X(L~w9)c@AmVWy};w+!pt(u4t*x99&%JnZm*d%>1$A9?4C~hPqjT~{3xe! zLG+N}+iG1XQ}rz@Qpz75Idw`E#VD%t6krF^E@M)5t)Hzv&Pq-EK6kI^IZ~))M7#C} zT6CmL#8yG3_4zk3r}xCW8>1@m_|U?~J4$6P322hqGH|QiMurI_C>j^Oz1fE-7R*!? z^-qf#=GLRnC%vw<9JXwmqT8tNP!2GMJ6QNCM3yWl-FxbYrvTi7^eLL0Fvym0 zL{V2wIX|g`s0P_Nv@zGCrBD`0u?RWxs@8IgcnWv*67Mas(bXBjfC58y|ATyOtNH6u zIpVPPxKqJI6Mb1AM4DFpe{I|IW%HTpSN{Zh(|t4-O2Ik)5fUQ_;*Uu*ulv|G()Bnj|T_;t16(}WDxe=2e>)}&S z^deXHnGhZir;X{qp-W%(fUa^;zT2lGOSgrcxb+aw^p5aPe$)2(`xjtHk~{bAy%vLX z`7<(`yn3ejgK{JbrvX}soS#yd@X#I_2uyApdpFxN#U9a<(q;a1hDPk5QI|%W?$`IA zAzMZ=4)XUAgQ!*9d{+~{lb@gT31pt;>Yd{7k@xG$PTg8{we*J5jp(gthCof4&ZCKvg)*fd-T4nZWKn zDZoTAWWzj(+QwWd#P{L^Tj}wS{$ZPLJ$#(jbi2pln^-ovW{67erQPoz{uhW}{;-;| zYtG%Zn#}%7G<)@{|Mg1{sp;2`8gaogU1seF8~H!!ToVD^YE(@9;>@1RUuKy_kB$E$JXe@8^yjP|@(mzFen0;#BAC)sQLm#*9uy?A)s0jt@mgxjJXQOQNqb8>D8EQ<1 zyk;6b3#m@V{m9+fwSTX4O@qY)#-+b||&BS$|yPPuK?*F`C{Dtp7-|?=xZ~ZDo@klzUO)wMlDP=K?sGplO z5TV$3*cfwfEmee=DN=4&uPJxeLG+oVnNq7h(}=)jn)U;&&em<(M28hb-?@Xx-qm8M zu;Ksa(qZjw-zuNdKOb&3$-_h~;_$9F*Je*DoR{S18I|L8cU?~;+lQ|m$n)ZozM)2N z>Rws2FO{pnzL3-TDduK-9>#y z>5?(XPG1#%RpVox z)bcls;iULnic;)lSL?FzvvS6ROs;UmsTZS+3%)lZ!aP6#T?DqctgKTa>IrVB;O?E9 zq)OYPkcu0A%tyA|EabHd*0jJpAu*lHe=_h@t-3M)Q@6a!Fxrk&r%JDl1Zop=VRx^A z$B6kXQsN4_+TvwEZT^z|U@W3Qy=aa096dTCw9wL<^Yl9dIKOsTYS?aOM3}3{P40en zX8&`qQ{`s$m+RKb$LF@~D0m1RCJp7nrxpzR#S!`h zbE*4(yj18l@iZTwov6^UnXFQ*?BFh^K7U4?)C-?*VE_JDh-%iF<(obfZ<-lfS^q?^w<;_A2T0sf&3~sp+W_e)O=>oYnycMKWN;rAtGn{ z!^4V&e zJ}L^i2vAWi-Q;J5yk#h@56Y6uAy)vn1a>Q??JbO7YpDIFp+#GmiSQE*SYm1gGAJNW zZ>-*K`TN=H+O_$&9xf%92n!paWOg^^Me*j`q%WKG{}Uh&ujhrtR^;cF%U_-yZ`)uw z^ct!$w%>3c-|#8obV#T_c|V`|Oo^Bc;xXK09UK!&b9t8-p>o>&rW|{KyGytY9iAxvp=2l0?_ijc(D(IoF8dty009yTSS-`6h|ll zB4`9s+FTx<-hC52FUBvIRJUCvTUcCd2F67J3ZR|ya@`C|ODd@7vjtX4=N^uFw0^sQ zpYNk6v6V|l%1LHsZNpl}TMyrlzB*XgsFR9~{QJ>1^8b0|Uaz3q8E-65UHV2&&F%h& z1>e7Y`g_VLoyhYVR;M#p-P?yVUI$C2%@$jbf;L;Os#wJ6?Nyd>ez53q=HH!M^m3x3 zUG%QakMcu^Xy1nHO&9+fze}19)R^hDjge0lI-tfYU^Qr&-^eiVl`}rQ-TngB*2ehm z6Qne|>tz*sPe+BJAnfAl=)9WC1B|yh??12}_0w+xBnum}$j-KTD|% zZUQJ$s$!p|RJs2fFP*fAmvRgp4Oyyi^jW8x<6!bHUF$EuEI7TTotsrvT6+$ge;%EdfiU*6I#DQKIwef8a~=JZ|ioL&qM(S z)Mt!M?p}b9Lwcb4aU6wSefI2G;Zqq;VjX~dhMwJ)#`>B~XgyG7wnRYs zEC?w4$s6n}!6C=dH8h5ZLz>?IEGSy<&6k2vS5Z ziBb}=7*O=u;lexu4^|%P&^e1fobp64TG&Ct=1r}pE*8}G%mNHd~u&JfKW0ZR6VSOj?V~OQ93f=Bc_a z)=7Mxx@}&SQ?l*0`I(B5Go6;Fy?LGy-KloH;uYD5LCuWXerPvKDxmM>0XGKc{c6b7 zoS{{=f8v3*rr`v09FRvD7x$rmwiiT6WXqCFo)q_iH zsR{C>{92Ay`-AFej~RdS>ps&La6+{@YV}*zxH7B!Ojf!4)Z6Q`#50j7X!Y;!nogTy zfusjiqpNA9Cs{Tmd0E6T)5C$br+c*8F=S0}4;T0RcfEZ}@2*tdvW3x;_QJFy9LIg# zK2!!T~4=oQCd`_HD}J8TX(`EYm(x}Ro7&0Ia&jQvO}|V>(-qO z51*>g%;3((ieQO;7tnQ^On&Y558HYi0UT+=5Q5U!7WM7^ug}8Fz;N@-nQ4`;-_3j9 zO+Nnp{beH-_V3?6%e6!ADY0>$vTNwE%<8_5B0#)WXEWoB49TZYo8NYf-0}O~2Mr$V zjTAaocKP8$HLPKJUqnbLdn9-I*X&m8C6VyvVhYwpBCyMR6YCe0($Rlzg@9HD6hq)> zi}~|?fimhouUL>&6Ga{h>fn}>tXt;T{qq9_B_%KFB|Gf!C^L$rQgV_m>|U|ST<_wt zq9P;tZA%A`$9RNW68sEe;u}2cW$QYttAE(&E?)beig1em-3+PSQ_R!D&Br_ED2+hv{q3$(P#Vf z+towLJq4|gpH6_mw+C%JSuqML7^itKa<}AuSBcYG%EAd5(7Xu8m*v;pmYwQ(KPn^U zS7&Y~xKDhAez9EM&HecvjojMr+bT@CE-bmBJVSHsy2NKGzXoPRN9#!3d$d9{bW3jj zszzJS8Q-H0x?SU>g! z-d#SB|8s1dU|9KawAxY|lV1ZqZam}KP5w`lL04yx>*VuG){e1rmM414bxqx#8HOux zpA|DucDSn56f?7UWDAEvXh}#;K6m@Jl4LcVfL)%RU&=10Ik~oMe|WMcsnk$bl}YrG zT9%x-Z~^^EILePdt-a6Vf4Ow{#hMB98ciU8z&V9J-R!P)_?8zVobTPZ(f&=$++IHo>dq85nh$vIN?X%gN~u6giQ*qQ>3LYk&&dA!u8*GQK0T z(zPr{erw&p>uY*_bxWQ-=|#rrOuv4&mfW@WqcG?>a-M%c=_DO5(8(u;+@ z=ncW~OmMI?B&=j+!>&^m3?Df%m?zB@CX(@ssZxpizI|+lEqOQZ`0+q$bTD#7ClY*8-)XYA71*YhSGKy6xV#VaVDa= zT@}4@^AHhkGh#Tj$uiyKSC9KsdoNrYeynv&{iPm?UlIdtrN4ic8nsID{JF!$yHS*Q zJ#=+dRU;{?C2eFq5)2~_9vz9#wbv>g)2o*ZtesZ!^2zD8Zdd1DI3kx5(^&5e4M@yL zNxvNacLIgj>K|Y21*7Tlix-{8z?d0=rCANEo4^`hhr<-Sw zTJKS#I+MFgOSY0u zk87Rg5#cs;s>n(TEmn`SJNa)~61>GePbHw$fPo${jjBIBc3^8u$?%$4bLYPOu*BqB zV?+1cV%aGt`>t>Aux0z&3vW)x$Hh@gjTd|)0`48x;v*RWg{{M^v?O9Xl*pm7s^~L6 zg3*7S?F*j&3JwG9p5!0o6^{kKdSy!m~q-;&z?4-miR&CBM9?C+hAPov|x1b6U0Ip(VG=;c0+Yk zjE}01T8FyMMN5S_f9akqlbZ6cJ*Qr%UXwIRUGc#Whu3m*-G0ihE;^L4Oy}Y8u6D09 zV&kMiW+Ps|ERWC~-}QDuZ-ikpZm(2m6iZ%hc< zq&kh5HbHrG_25*C>ux>O+spH@7|EYwl&Uv6UnSu2t$B8F&2pbA=f3P28#`;s%M;Pj z7v?7Tb(5NUQnI62Sm?vecm!jNP>U^XS^hgW1|IUhD|C6Atf!HF!j9cr%$nC%Owb0O*z$OYejQA$6o8THe0WFvEs!_QYks%`6;|3 zoOAR<%*A6(K(&J)h>F1=E=dA~4k1`?x>p1vxzC?J3&+gq-Sq81nNPi}uAFcpN&E7p zHh1~giMVzVR}(tOwuO2xkAri|c&c z?Cdfxhy}-w?6$srW!dKeW@ZrwBOhSc4L_^8f2sLYQaj3QjbmF-D4U$tzO%H?AwDWP9Aqg+tqK* zEwsq}S>SQFzsH##5eF@{IBe;?&6NBZB4+@K9K?uRQkCnsZY7Ye?Smx%QM%`lAqq^- z4k46{9h7BaZr)ZvM9erJI@Ix`-nOogm82zb5FH`AM<3jWz=Zlm%^9%`i5rE926Ken zD>k02(1*JLbR>OvvM1#s#HrXeZbfB#_VAB4i=t zG(;Ll4_-!sLg*0sC|OgKpWR&a)lgAcx_a;jdrC4x)#k}EAHKB87j5^xhbQyRU|}ox zpAh(x7@(B(oFE4Dc>hsPZvRtncazQ8EtfSo=41Y+K$CN~N6LNrRGjy@#a`vtx1N63 zt>}L7;^@0t{XJ$}L^6W5rTfh#Qf6j$zc%I`o_&0A;*IMHeN$QwH#TjW3HNd7@?|LrBD?~uWW9nEbxvJWRMaT$T?mwY zGgD4`^G1FA`0iczwE#M&i)hHM$}*LNf)7lKUv0T8k!!`N!D?skbv? zZnYJzZQ)}oQx&g~Y9IuLd?0Y#87r+dOu?~v^AR%BQ3HyYY;6VO;lZNcMy#%_j$hGU zNW)qbm(wjQh>~OW9%$da+vt~8N7wxtJ>6D*<3^;wvRo=^T5hhA{`l?oz*i|t-EG~P zhg(afI^|X_%l)=U|8nzRzmD%Ya@tL;%ZN7DZ?C#ndZ2<`_sQ4oA8l;-S=G1i(I?eY zf}K{ZND!dg$ti%nuTI%LVby2WY^}qHwl-&&m7aFG4M0T-JrxW&Bry?z>x9|Wt8dL4 z$cWc;YwNu{sH_-gVh`lW_tCDhP?4g8Kyagz**4mQm3(_n4vec+f2gfq5#hG!M}yJ1 zlry((S=G#GdPoCEBCp1b!qir?nIUWMYS?$7SFd_n4@w{CTl;?9i#2aue?OdH?|5;- zt1^S5D461tlP@NgcIsr_eC)+(qn=qEJ|Jx!lkIZCPW%+=r!CXdP92V zpq{-f=FHiR7;6gzy&usrwO_O-v3iQ?JfHv?hfr4}`;2!Yrttp$rVdoD(Fcd|Pxjd+ zm3!N?_c7dH`Bzd>3zpWR*wq2-Tr_s)%$pbY{CPXbYS-&yS`0iq*|l*MIgb?k8(JDGPfc-w$$XOtVw6rwv+IAe&)dkO0t!B?Ycj1EZh7SbblJImk-Sy$c zG)Kf;h+#l4&SkM}-It=GJ*%>!AHhwu47+7sJuIM~L*uK|7)D+M36}NG@uYa}9HJXI zTlIsFD%{sJKCqZM(-Q=JVwe@4DevQxgP3gsn>qvlL2)v!@z?hj773=mt9lJ-rH6{j z!7V#I$TFKb^YxTjv#*V;fBLt~x9=y|QDh#KbN97N&Z}1)6n4p8kMP+wrG-nG+?=^1 zI&~aj`##GGM9!Ruu9x}7`DMx1H{27&19weUH@#KMG5gFX>)EAQBn(wi~onjL4QoU;SM39MWy3>sZ6u;FP5pdq1v2{lT$uo3w#s z@^W+C8JJbq(V17$WT%^Z2L3G|K5-3rapn@{plk!=qu8mFCo{#6qa0CK$$)|8zwI}2 z7?9#fP9$ZQqN040r+=T3&N)%5RPjLXwrv3>zkd7n=SQ~MU2)UuGd{u`B>k~tELRNl zEZF=-6Ub+`su*!Ky#_qPXqIA!4m(L8L(`lDM;^_cIoIu^M7&}C3E2W!F_sMvEYXjl z1o4%6Va^ZZ)JGBG{(-a@jNK=y3ud1-XND7=@IF7x4+)skh{EyrYtSG=+(Al)5J^YcZ5$i#c~^~@sYkIvNX606Mn~%lsy5o;g!dd=9Tm{Gz=a#Y*_q`=CUM!B4j}LOGr%g zX)=M(iD+&m9qKnjK~=Raxi8R}J8fkj2oYVXy%(M2Ggf2kogQjip$W%1h%_K zTYrCvO2>3grE$_Kuvo#ugla9r&}7P5gc9^GrxhLX(a^Tyau_UdNbaFtw0gk6fucpt z`AJAh64FF>R_E>beHC(E)`Lv2KhTZo)2F-RR)zeb#2wC6XE@;q)sm{th=9XQ{W9@m z!tYC1xJSGg1K|{G{@W=8FJ89YZOz>o+Aj3Pg((*534t*NC4j%}r~`NV`6-PR(h>oW zhK?HLO)(s<5FQ%Z3Z-rO;rf#%wf_7fNS+y4I@Jzz@CBH=W=+IDFXC}C^6yX?;ScWp zw?9bmlYyByXa0P8gK}yd2ldTE_%)ETn<4n}h;Bv&B4cOIpEoR-BkrPwnbu)-$|6`& zMv$oJVhO*@fN?H4sep6g#pIQjU+cdMYwIv}ay*0bwrs6&!Fi`S?Bo=V-0lrw8u5QL}4RYq;c9>z+1qNg7O4< z1x4pNz%qa_0%R>Xx`OnJ3XDRhPR%L$YHK$~IQ|Zv0a6Y)<|aD~=i>76@&pAMq^8BX z?|xMQq=roB2f~$L;q)JLb;F_@nu#@H% zY;Xz39`E0*S+gF422K5K2)zvk1v=9B$Us1pXv+93aA<8SG82H|3E~`PWew#Vu6TQ+ zIh_m#6J)vh3U0T@)7fxylDLHb(^yiq!s|QJuGx-< z^w37Q5ei(<)Uuj6^S6_Fe4d6Dg015DL%yAUIZfCX>HT%)QurfrEX2hUBbOBa5#v%N zjrpR8Np>7yeMbQ@hnQ7FV!qG%lUu%3RCvs~oc8Rv(L&r(+rTlJ>P|98jvV0}8pB`) zF%t8`Ag2a@p2j5gfFA!j7K|p!@XSynqC^(_6ZEooUAs1zQOTVMA~l8AKi(R(pi%0& z_9-gIc7%rZg?Xq*S(*%#pXj&F_F1{Xpbe9~CZ9`LeQbt$@W|n$R!o1zJ$fWXZ^g*P zN!hN(~C9#Mr6V#b_C)DU+;7okcIj*gyJk|9nIO1gb4BV-hg zNpl|h31DAnx{!B~NKYskE&uVu2WeJ)VhoS|VhlY`MbSd#dv$dZQ2KS2tqxdlzYB^V z@rc2+W~MFTT+<1Y@Do)2d`lP~P!z2$;0{hER3ZanyGSPM_JIze7Tf-xV;R|!W10FK z$9$p3(4mTS(URc!4`GBZB7fZQ|9FOo)nPn<>Yj%u3!q#>L!$>{z0lLA13okz$>3Qc z5F;9dI@=Di17?+=oBNP8lw?0p`L8qS34B9`YR^9b^Ia?A^t&cYptyEqiJbtZ;5iOl zf6@dz4(Ro<9r@hu&~5Bf=?YSt$ONa*^blTZ-ql&ZZNQ~F6^uv>MmlHjMeMH^jU0ii zlc`0(9|2E#^z2z%+N`{{;hfBbf0CtX?i`8IT}I9e+d!FCL_Z5d6og=arz`%QcnfE> z1`agZv}sJB4tBVNF)-3vdE|k8(KhKx=pE&p-EnM_HkGahxhZx>HhYHnAd*FTh>~2| zRYw1PDA|>xFlOj)=cwBz{?haw+6n_U_nI-?#%3Ra+WHF3NC6(v|0pr_f65$$r}M)7 z90duEQe9makofuXkwjqvg+FMfLvqi}ONrK^+l$;;h6Sf^Pe_O+dLD{hyYAr? zuwqxFYK1u<*D2zZ7Pg){Z{CEn)Ai3zmq-MJdh(=Ph-K>#OCQ*e(x99W*Hg0w4D)4i*oONtv6 z+$TZ24gi&-x?4svYA=`>zN#0+Dh33!=9hFa^hX}wn=D$f-KwXf|6!1|eSkds%2B7i@2ty-;J<51-;EH^1Lxbp#Hlm)M>;Xu zrBDIi6>b~jhhsi>_N)}TCHpce9w(3n*)v2a;xmL~RsdX>uk!+W;YSxkLzlsSDiLv6 zq7u3Gpt>tff+dG+)di_8*ksAdm2EvINbxN}qbm+CgxFg%4m2C>CjP-s{&&c;NOtHg zOuUu)MEku)&XUzXzbyiL9iO@_XLIpD64K~X9V|=)Nqj|CbSLk2s&P%p!0X;lPEI70 zo?sv>ZNp5PV9E*VK8DiArg*X6ji{arfu{pbU5x7!${=An%u_Y^QHN=MuzfF=J;m2UkGjk1=(Bc$i`2HXIJjuouI@$ z0M|M|h%}y2*+K&C$7^y(99)OC%b0KOt+HSX(nT3!rJZ#Fe_aTCoN+Q zELgOT*{%vMy?Kf;Rfc#!Xuc#MJK~QzVje`fU95okU1mO(u#s{CP-d9b2W0snx9#L! zfaAaez9JwI&$h6VqfK{dSh})1S&Uk2$35AS9)0?>WDU`s*?~}auCrT*-n;dSC!xAq z(F16>s1iXrjq0oVvlXdgu4E2CqhA6JHQ*NDh@I4!@8S>$s z0`^793H(lwlyom}29jMNqKH23F1R*~h$2_|s;HheWx%0ByU;K+c+pzGA&>Xt4snpP zX1BTsy=TS@89Ej7m0T&Zgz#9#A4!LIUAc*72C?j<7hJ!4tA-s8j#?~KoZ$##oQM*IZ}#2 z(rC-D%J59|Ah8D{QzI8=O1=%93?=5Ju55E8lT+6oLdW9&%oJ0z8W5?qBY`Jfile|T zAJc!BxTTcx-}#B%9~5rQnxPDpi5iohWiIm|#-uaf0N z5=qe3Z>>?GUVgyHS^xFZ4&=p@&I7{(Cx^^ogUy+vN*aCOppjb{7&}Mr*fSKS-XRSm_8xuOrpQh zT2SNu0NcpJcP0`G%40JF_q%t;;I+M*(uTvrL+#Z^gG4Njo8NT=Ep+NS@HAsg2Ng~s zWX>UtIQLt~Q@0g4_v;H*S_scvsLSGWg?0%GK31;9HJo;9*hEt>)TrVFl`>`UOBS9g z9<-P*bp9C%-I!hlLfvK9VmZMsgJ3Xs*TN47%o_o4(kq&09d!D%A2bx7LwgEWA*+;x zkj*@6cCHF+LJ+6aLpWl$Ede>0tFxyh09xYW4SXGz;PgT1&yWPGUueql9ARD!6c$NI zM5KhW2~5&it?9ACI>k#&{KwHruKO>kda@85*ok#nfuntPik^Rz()JU8;3u5{z6X)IfUA6}WsrJjj5XJ8#*~{X(^# zOW|~-2NvGF4o}9k&)2Pwhj+^Bfvn$9J17o&K)-{g8Un<{ zs|kV&sKdmovm77oXfD{ia5M8heQGYyeFVKA|M4Fc|Dbut6oBh{f8h_voa1&LkHPfy zetzr#(`xp#Cpuo#yy62WUIk0q9ls~&f?e3P1$*M!{G{p{jrOfi0!)wy;4QLi5-vv| znVCcYKbz*H*uA?yV~!Bf3I~mE{3YatT2ji<^25{eUw7|*2hUp^Dafdmu`$#5We|T? z(-{ZFEbiA+e6~gLrAwDq|N5~e>s2V_5XGwSuW&8ks8m2lj(hWFR>^M%z3?On{ILs& z1lmU3%6q`k2Ys~0okT`PZl3&RXcMVsPzC5v!ddqeG_p=md-ID>li`i$x5HeiIE1SAN7Dp?8HeysjiRF7CtW z8dfF>DmI(vsyg`#<0?E2CU@pv*dIo;;8*}TPS-ko6uASjGKJocXq%Cbxw^VKB>x83 zdc`T{giZ{-e0d`4Y!DipK5t$dIM?Ip36c!hk+4GG<-qHuj7nhhMs9hz+l#jy2_rB# zMR9(=>dkzz;jJYrmG``oH1h<8Lc4M0?Zz*wYL_+&LY-*)MUB3$adrv_5`K>Q@+kJdlV)NEnB`^Rz*dHc5_ixm4af*!R7D|oSd|%K)%K_*2OURq0Uv` znpbLLyFk2PRNher%Uqm!Ej-+K(V~#D?_odJnF8#WeXo0=CAog{=1xQPl=|%7J?vlz zBy_>vY}3;%^dM|3(x%8Wb=SRGMFYrMwwhKMi?R-JR?b}SpbcXHei(p1Da}uKH zv>xP^>$v3UQ4b)&rm(g^>+po$2L;_N9{Or-Sy_YWF*yU1jK&L7uGBLuE=A@7yAVAT+^q>goqR$NX z2kE-?&%S5M9Okt`Xc7Kabl#!LqXa~ICKjxU;z@MmX+7UtEXo};nmky;_zR9UxSK*V zDXMKukEg#A9tkCK3cHo=sb$i-7I}P<4p%c!FAy^j7sCTObN_xfF!rm@<=!7bAkogz zQ3jSbmC5ZNVhgz!TPxsca^qsW^h8OZwm1rV=R$ZtG+EP1s}o0l7yYM4s4_tT5UPvf z#mKAuGQ4a-3xQob%8bmfRq35BuVyQPiu&e-1Gb*4o=N2(TAUoA(P&fCWyNL%SDIPb zvqVs)Rzw9za!tP%+1*x>Xy-160|P~+$e;o7$Qamw`&d(7>nij;*fyR3D*uu&hqmCj zx{{khJyEpUm=smo1XU-mpdkIjc|SvS0g?#R0(I2F+s<;Q7dB>QWC&?&`02}T);l}t zOs;E$&#s`X-1^KHJ18S2E-o%7o-4dk)P3IY;_+jBT1@vU$1luaKC6P5CW647%~e{f z-rqTUkGqcg(fcaSs;tKulmN?iZ6`_N1j&QO(kuVcuG`4QK^%NX$JY+`D2@iUt45cj zBhwM-Hkgw)0N?Q8!+9~*HEnbF7Z@8~!uxA!O<1ttbeaA#l42&!Ty6$U)@V<`~=A zMgK7JXxP=CH$#7ZL`hMF7w!^d1S^%}_;9(`NUqzZD0NcJxU1V{9X@pE){h6w7SJQy z@T^Bo=8KDhtK)MoI9Q$7cIM0(2{el6f-krh-xnbmO*~5dV(^}cHrLthgav4id*-dDYIYwx#GUbfjsm1SLEXI&6-?9ERf8~ zYY`EOqFcbHiNFbF!i1Q-=od5f#Y&HNpL4RWg@ru=$P`RYK^vtSfuRb@91HMeiK?z4E(4sW57W&G#ji z-QQj@4X@3u3^`ZUC~_Vg z1&A_-cQ~tE$2?e^66hD*XdY6patUw-JdAH(wiXO07(hkf_cJr44XvW-qKDfQ)_^cRMRjJ#?+|ix2G`Aw8Wqw6d zOU(&N!?`}J(%dCFkUVwKK3uT<=OV$u$KiAy+f^bW0BWCc@W7|>ZsItuVt|QeX@cLI z-g1i?o!{MRP0B_=CZt&X0VI4>ubR75*2geKWPNXa+Z?w>-I|zIdmq%R9LHbL4l8PR zw6~_F;9oI{D8x0mH`hRBY+?a9OCGDf0b*KB@lU-`I0y+?E`AqY_IJGpF-#6=j)?sB zimr1IoFcIC&0`RiEQlv<%=udfwN=#->na?QOJBlCOZ%|y3s57m-J4ynTIb?oIDPs{8~?*k7Sc3eihHYA)z;^)NBL$e zy^{ll-G{cN0j_2X(HJmF2-XNiG=_fSaQoRk1CK0&%*N{z$r8hR@?hd!7&>7Sk339< zhyk+m^*uyHL8#Su7=mb98+h;Qaovo!6#*{Hek&TvIunz zjb@C|Ihc%SLv$X!{nuzVM6E%iOOTv#TyRE`L@G~So_Dw4bn(k_(Tkf!qX-IPFFifA zx|(v6S+kVL$4&!pprF%(CI2fbuY*J;hFjpE z$D`gbbVHf-&f1AW_*`(A1X_g7dowZ9NxqTbSM~BvV`5_c;6Y_>(Lo%`ZsRs8pc^R0 zF;->YM~GcsTpZm(e6{Djd-pPinoj^k5PB8dYChaAiuZ3 zfY(|{fE17Qc@_33SqlyVS*~t*`nbAGI<7tpyoRVh#I8i*_c^8w9g?F5m$|K3)9CA47gQF)(`N3-1pbs57N8nz zbgM2KH{h?e^)f#K&6`=zX=d2Gll5xzX0!KOOGfEiq#XKGI5^(sed3{m^N!4U`{Sm+X=XK^8xqq9`!Q!VxoP z&6+TOz6zY~YxkX3&USNj3$wR#6MwdQyZ27#%38vzX!~%S^C3CAljjtgx(Y>UNC+kn z+vr&cno>%DQ(~=e)Ax*({EP@_f^E9-s|3HtS`QUw)4cGVzJ4Zd(1tsr*{e_X3LxKe zQhTvsm-$6#wSM~+sykg5Lu90}?P>W4gbsxiQq>mV)e9y~c?5>r#8toz2&#S;Wo3IR ze4z*ybycK0P7*; z1$Prqi(r6GJINc{;csjQya~EA>A)^AD9bszVQ)&GlZAFZnfphm3ygvb_2PBY!L&mo zANXa{xrVGh!Csdk3zF_8^5=qPE{5NM}CM zisC)BNrL7F(Y_^j?Dd^I*Yg}xs1c7Cb)2G#Fa*ENV_Yb$J2;wSxCo^oF z7G^ZnK2DZ*()!g$FjyP==8cl`!=JrHW{v=*kDpaJw%8ITotOm#lHK=mz?JdEgPpI$ z%-Lh*X0-P6Q)Q&^?ui;(bWUIy2qJ*XfJ-K%i$7TMCBVSY&`>)bG`$bKYcwI+Adn$v zyZxu87;0u#YsW)4Dt)yf{VPWBY z7x#VjAs4*sMLrSSJ8#!tpuXw8Qw{d?1E&?YAQ+TXa{4wlHZB@>3twN9my?qdQ2o*4 z$3LLLs&HUu)slK6yZS`SL$&?)kfVxbKe@<6fpsz*PuKVyvMa&oEOcL|rtZ3Wbs*@` z*UB$51doambyrweKVr5~aQ(qzYXyCE?X?{(qWBBO|UQlO4O4K^eU-N zDr38#k2v{+B+UGTwg0o)n+?Gc4Gun6V$}C*v=*5Y$iT~o+qQ@)W(aZ$s=m$sqN9c0 zfXHNcr7JRT@0-}dP-8YF{~T7r33raabi}A367DRVqcNQn73!To^g;nnf`ojkhVjNL z+*PkxtNZ&pyK1g-og7)09@F3{NG9;AI4laPCcB~Q0<@jGbg2yp{KhYuuZm@gU)1_0 z)%t4QXb5J#h(Hb){)(e!sX+H_U7gf{F%;cAX34mmt{FgYt8r6pw%2~?gUm=<8pw<# z#X`t4G*NFZ2GT`$kgFBYOLcjUysoZpN`!F9$H!F%7W)78VyU4gH&#TyNd35I$&!48 zB;r9-GZ%VKmFSZ^2_Rc!`@H8TrFX70uEVbR4lWuzj|mnEhSfBQIdpj_G%TKRzzNKC z9M!ak2sNBJOtdpVW7oTcd`Ff-iU!&0@1M=vJ+NpC5}R>rSqE|P1cmr_??loZ+|=eD zv8-fp%H=Y zJBoS1#HI_>6empwC%R4=00|Se4U8%!(G;bd!!zc~=|F~UaC%~c$X6}$A3Yj%sVCVN z)}KIqcm@`Wj^6}m0YP-Dc9hMN(}q zC~kLB7w z;}InY)EnL8uIVki2&o*s`O%Ff=pqm#B%Z_;~I6Qkzvy4U?QWJ zwsw2M7`t%|H*LC`d*1B@UR}@_#d^T%ZJO$}_sX&#$damp#|RmMtLctwY@Do%Es>F2 zSTKz1oiKOqu|iXEqRpl2%&N|XolL&j6#G-J_nUM;!>66Wo_tz>hRJ@@YNn?B!v#=f zHhqB3o(W?Rp<-Q_C$w6e>YL0pa~j{_g7|)NxgmIK?U#$fG)NTj&3&TswP+W-f8UK- z?j^C5q@?GVF+T_EdIkSHx0mjL;KSmln`vAg3yDBPe399a0r&0yeVeLbWjfK7 z!>4~hLvRK0?Sqm(MW=3jqbXs)UrDI3h!DiK9hYw6%^CaGht#HZeE!dyyFT^n(|rr! z{fmrjWq_CBot%DD<{T|iEbSoaLR6O{|xT3+60YSx15+MQ=ZvG^Yks%}8 zO~sE2#}tbq8#FK|6}oPn(OyCqRsr@TSf&8qgYy+EWHx+!tO!E|#=q&RiOz%LUBmK< zVDO5Cw!)Y4#b4u8jc_U%?DP8Qzn6Fix&KR0>v5YaTd^otgnb&kJ8@33f2Ua$HL|5)!nA4f zxRep$a%7$Y5<^L2qG|XAOSjygW9tw{k}#ep@OgZ_CkvH{qWuOO>2(D zJ}23Dx(~dP#u~TAKKHKT;RXAIY+Ue^9#*bfelLdu<_`cBn~~9lTcsn?TPSb~ISbIf z>bu0)cp;leuoP#Xa(u+?nRm9-3=*(ve!dJ?X$FiP3`ZokO@1|*HqfM`gSWN@Z zsytaeIH?qPL0*iskILRS(WPU!S=)^^((brbX-RciR{y|!-jL#mnI(gDlfVCn@&BD} zw3w_egdJ+kuwqLZ2rs+Qw|Q0WHhlR#^K8;4&3($lE@Z3Oy42%ULntjKO`JGUx(Aw0 zro6uc;ulA*cxx%$14YMHPkK+<7t@d?nj~hD^C+Y|Ud3xYxcKSOoGz%@CRfSr%GHyB+iul3c&x!c=zmV{vxuXq8P#PwxF?*r60;C32y4YS2>lbF(7 z9y~6|*}1O1zAPtZaOBdI3DP~t4JQG|ov!4Jn@Y}83p~*)XNwrx;RhCWA3J)qsh5}6 zE1KUm~3CUc($G$vW%ZqAbrRh4DUhi`fqlC!3{xp`}M)&h5*1X}qD&HfPZ*SSf7 z^)+AfCcYiYy4>?{RVS04AL00E;$Oeu+F5D~)h>z>Xi4%TdcYR2~Mm5_}e^S}ie(S#OTPR2; zljuph$US-g{+DOZgYQ-yjG`esnbagSDtY#y+6|1aN>9)C$r61luAI$it;Hd+oi(fX zv7<*#p~~IJgoYYINNzPHZFrFY^CnBqGaQ_D2PC^}UqeoJ3no88u(H-;MoPjMba=%d zoKHwF{DN}hej!jd!a3V|-ovdwWhWlJ_WJ0R(%bL0Z?0C_E>LM}7SGJK1Cai_2BTzgC_m-hH74c}23|G`u&jgbtVZtIJ3RUV$;& zZoHB{w|hfhvu$QmrW}%(QgGaS?{99nFP=Zu79k>>nifyrA|(J{LV7)ev8_~+S&hF->TWOwm+2l z=6n;N&k={f!3__cV}79lDwcqN=sRFS(rmX8^#|#>{|22Jh$0V>4jQF{|ZNRZpe=<+ya|Zt%A^lx!~{Bim8jl=NJDrx9aJaU6RHfRO}oaC4=BzFw;3yOCzM^6GY@OPiF+M6q9p8*6}k?f zG{L<__|#qu36XNYVt?LLJOgqE|ir_G3RPq{WVJuO~Y5Sfn;)-!Gwj znPP4(1h~1V56<1w8Ci~wj;7yqMAhVgfF0uTw2;MwuGy#jzHznFOR*J+geUlD((cf+ zmliDVv~1;v=+xEeni7V)KSqnFZ}sB8UVC0%uF8|bFJI2m2gE~nIDW1+Yh2p2-5Qf7 zFf{tuRKi^4mCdT-EDqJC3)vnC%L4lhm^kB-8|j+xwkm7kooVPcm$u&F(+mR`HFu6U)LVraZ`p3i}$S>eF&-$8T>F zDctU0SQeI_;?{XBb^HRJk1=zgG*3 z#v?jHWNO)>MGGpYKRAGU4Vx81Itk-J_6~Vr) zl88m;9bLN>4bbF=7rCojsPmDJ&$xJ$G76-xn%I&hkxLnR^P@FWl1&L2M)w~?g*N#~qJ|uNf+nR* z4SGK&q#Ixu`2z(DSJaaVkmVZna&vRf8X}hn#c@r{D{W`4oe;V;Hl{JvJM!Y7tyi?A01!+IjIVT@mzov3op(YNgz@ty#DS7OWzKHv1J8 zterEniC+1y?Ujdj+E$nu(1;=H+J=NwnL*2tqWc;u6_-Et;d>%A-G~T*vbcj`qb7RQ zW&WbF;pDE2V;_!7Pu6!g1MOR{g^*qMKcL z(I)4UpU0mXtY(48X{v4(jO|l1_?vR0|2Q8UV0+B1+X7zs(;li%m%Ytk?s z`{Cz|Ke6{0B*l`3!?6=gNzkcNeq6^}aji7nrVAp;uq<|^cY^(#sWbwLy}tyELEb7i2gvzg{AU#G(p;`;bhZGV{k_SF0XZWR=~C>NFLK5>|Q zq`W0F?~TE@ZUX!+1BuIA_PVp`qP60-2TQQDs&Z{x&M^F8NXI5t9fOY_-$E^l+WQ93 z1<@y@qg4;pMU=a!N`%bhldK}5nx-Ns({!{3A5>E<9dzX1MfKaXWc(%wD+PMR7&C2L zNRifNyu$@F77UI6}Ln8z|IMnSS5;Y7s%^+Zg?opGKxq3joKG%;sp@A)F;oesWoh>y^n+vJu|VL zjC`Setq-Y4VDtLxBQW<&qUotkf1mmAqM8L8N9!`VdY!6CTtd5L@7?ryFJvzr${ZAU z&gzD9$~!thEqWh73`y;bCuDF<^r<4J5`qt zDBvacIKS1^pp@3VJQ`?%--6p-rrsWkyf#D-ItN zzo3E$e22hZ-RFHaGSIWafnidDn;sLXlB`8-<+IMojZYu4bt@mg$G;00BM7To1ZP-` z!dax4g!JDm)&C&SC0XwUi7Z+AUT%H;wCf6K3wY;Akd%K$S0 zkL(~baCX`KdcLV?p9KpRu#K^Xj2n{|?8;swBQ;)s;=~D{?#2iOKS5ZF;RW)sPi18s z()vNc!5s`+ODCPs1$?{3-=}|IN3*u>p|;(0bT%{7BPc8eQZ)VEzTLbzE zPK=&}$=n*goat9<0+*<0Pp|wq10Lqqj6p@sueJ8X*MlhD5Ky#NuU^+swVnY;W2MoQ zzt8^HcEaJ)e?6x2n59uRZpYDP7BRdpAQj$FvXr%7-0C#mp6po?EQ8UK=8ms7{|_zZ z2tUJ!BGzW!#7p^b{6A9=@aIKEn?NJC`0Vs#B-Vc_5Re#*vn8ZiXoGy{TkhfNsm% zB61;m!C0t!W*J}1EBpu~=BGbb6A|syrh{sL|BK*RI7lA#Pyjj&pT6BwDQkysKtVw2 z3Q`a45ET9NQ_ps*Ufpgk4xY@Ti5Cj5xeiGx^UMrx&tHNwFoH37yj@v4u#v+V3Qs3e zGNI;?<3oCw@LQLscj*rQE91{-TV)^%mpUoT{tf?9%bAYoq#5Y~{UY$N9LPfq1_COf z`Ur@zWL&73`kAyy%znX8u?q4fwe-w@)Tzt00n@LsFCE!2+s{ z+_F%Z*ATl3?Z3=O^pFG##)}c1h-jM5u83oG|KY=Ir>J0rhzG={C<&r}LZ7&mfeOYtyr@e}z%rL-*XGDHAXkoH zfx*HcQFVfqsIj^g;{q`&#A4;s^h{IJ9|bunLJ4qQ3z4bFB-gfW^~Bu(K{j0`11o`> zCV5y<1wzuuNFcyil2%vDi+DM-(vlF|oPl+-g zc1MQBw|IJv2z4tv{NEiJVzR4~Sfug3#0vo?5!|t{(rZ?igPPw@^zdL}Q1YZPH^d<5 zM;i>qkpJAI2bW(=e%*){nLGc=NHzlbIIS)iCNPP8~GSLTpZ&bPdJ{l$DoV{M}nl)NIg` zoEU%`2KZ-Ffziut3hfDFPwUSE==@kdFRx$_>KHjC30*R*)BxZy#bHHJ!c@U`{>c5@3VFAdfK~Gz^0`i z^9RdP7M`RjhZPcW6S!gruzIDSn3(CI+njKng|{-(4Zflb=OV{gkN zpwV;(O@tAY5&_og1(!f-LU=csrM!AgTuDqlTKyiSr?i#AFois7`RTOoUU@)0C8 z2(dR{KoGs6bDClv$)i=Bg79_JxP@ry2Dty|1>Nq?!fLPsiL3H9k!WUKSW=L<_Q^-8 zY&0h?NMusXOZ=r0GbZhbTMQMUL{K#~wd_pWhrKB46vWl|mQ)@{`@H~hpVWURr2-(( zxCs+#JzxFcEKh<~ZNr%}z2%{^>xoT6!ex?!)^FIrTHg5`enhQ432Y?>ifL)r(Sht_ z+yf|wDW=90PJg`^4@Cd0s|2!swosY;{N(8B6_8awS@v;c;o!)2f8b|~9UM-)H==_- zyCTBPr%%6ro5{iNtHA4rG5=k2UFRy68fi}Ti+mJLn0+)UkTcP>&0-q}Djb*Wb!8Sv z#xRFcDg=dwehKrPj@=!fUnav?{9?*_4YAHhKQg!tOm}(ND+SEi?916oYh-Ig3Z>JD z$IMZ>Y3DU9r$Inc0D`m?@xF9el$VB@irC^sS6D?OC07<#646ireWK;5rF4E#UJGCg z*~x=TLmem(%Bj{6qH>|Z`Nv@&#qm>R_!~;Oal1i7QSVc>V0N&BKC_?G!v;WTXYb5p zbo=w+0agE_o0^V$W73XReO0g;BR&OrR8{g^Qz;1K^iQ_Y?by-e+Y5I+G=W0P@)YGa z0$;NfwElc2CzDa5>Lc`;pA*?!>DIb$k-V22wK38)FB$tR(qlML){0t%4TVe(hhk{- zZ5iTr;_7DpyVmhk>$BM5z9l`9kD#*hd&x&u+1yH5pJoP#CUn-mX-lA zBN3DG9}utiXW-SzeGKr{Y_Mr4Fk_f{UcuRNp>T-E#;i=kMd@qOluvop&Jk+(5O<8Q za1yH&C5p!I6u0peB?LUOjp(w`1I3g*mM;W;=%e@Mg02#NCh;@2eiJ2)^ll6bafFir zC}l1Z7A^j+pW+UVpE1K1c5H%c{@u!5FJw11r9bnFB8PifQgQ>`M_lJfR9TGknWZXb z2OC}W*Mfr+PX;O3Awtr&j+AG^2clssVsKBk6MzSc)BmDHi_SadD8u~As@K^I7w+JX z1`$9+o5h1P^O)Q)s`GKH8Zy*iCdqKU+V z_1cgtRYZ-sAKhZs)md0x6?JecH5?+_Ks}Wx&)Vw>aBHd`1;utY<=)g49nVo*@?hO& zuNsDg59fwG)8B+~ZO^W(|L*PEhs%!RUT5{Hq@*K;4sl&XCW5Fr_T-2h6GtQ`dbOXd zFIm!U)t?_{-rL#RziM5hDp7q;)Vkg$&zl*T^ObiIGbJP zdGZ`2o7tNzWuib@U_u5XBVI6A*XhcakCuM)g!iT;$1WQE`D7xKQ#_gG>RZeg!>Ez( zeYo2SETKq6Z#A==0$O6ODeU{P{i)?Uy}VR?fGde`o_w8czSg=I8+KFFxBcJi<{akT z6w;q?-EX2klEE4nxZ822>hPxpTH<@xX-L;SW?eA~ufhto#`-R0V+=ISzCrnjK7;Mn2J*11MyG%>qA@%IEyyAhHl7M{*Y<*a=5s*43Eg) zBz1|U3Irjiya>XR7RLx`L!_{{WqnQ}H=KVMv;z7bZ0fw;ySYZusNKep+Ifm=E zZq)_f6yFKBVbfGOK8~tr08Eb!MgMDn71>ZTvs$!`(h%cuF8eve7fE5cr`q7(feU#A zyjP2iDb`{vjF8^t(sJ#8&V!^mCe7PnvUzds@3_}|D^t^kE$ZNnqgt1LzSN~Y5aBUs z&_8>!5NXIntmMD(cSZkj8n##c!{x7;eyt8-0E;73nvAf?-AAyACXfA~MjL@NkZLnu zAf8sF>TL?|qU>3yoV?68fI=Fek$53{4*z!z$fZ7k?6=A0>^+f0EEV~@~QjZ>q$(4o?+ZYfE`MA z5hJ5xM*ltwETtFu9ZwOFZ(*L6xlB&Y=A!3qn)p{QoETaV8F8lm)B#dZl zY6QjWvFez-Xq@7dy*`zNO7ZYvbzmEYLVRUSiVzCu=E;>oVPSOyAo%$c&G`()Mbqr? zKc{SUvVMpg?L>82Xz0H}t}&>_9)&U}+jME0@qA~#^<|dJZ6Tt`L2j&Jbd#o0fCnZD zh&TT1}2v`lN?`9lEeGoZ+N?z3PUcTTzEt}XhxAB3xSCDniO~7XjuKVM`6W} z4e8j7fS@71j!*(f&qZR#XKMN11B)C*@M2u>CKQN_{epgo z^%#g2v1vYAvjrZ+82rh*rt;w$Hdow8Qvvw-RTZ%G*8%wXvjQ=}-rvWf_OHNk#KE?wEhYfST+yt9X#hp{8m@sYotN9mpzb*k4}FZ0?yC3$k5g%*}DB;x&hy@JzBg2keDn$y8yM_RHp9N@Ji&`3!Lg-M)E6agyd|0;U?&&$~kV~#LTMNQ2M9)b5W8#ivTsi&M1aWj*k9OOcp zxDbYMcr$+wfs~O@T;nDd56Lj~n26>d0q3kab2c)GDic_L-;Uvb7bg5F&GikYvaxAO z!SbQ(b!JDRr_^H_Yri&;@nU#MvYD_Ctn^zxm#3$xq=+tRM3?)_8mMmyAGZ42`&M8_ zvM@y~Z;`)npH=@lqUQh4QCLD5`rlE2-Un`!0}h_S>*XhHA+J(hVvg9suqR(hZ?@w1 zsL&KEG{T$0uj9Ngh=@qDWo;JC%vLhS-*fGJ{a+L?Z^s5RVL(Wo9ocQg*q6Wj8vNnpPi`9ndZ^b(NR?w6@6=izX5=MCQL!bE(1vPyMQtB z)xnJa3SzZuF5aY=?J@m)EFz*FYX}6%q}9ZF?iwfv>+bx(;oG>mxt%_9W&?yO!9WpW zLWa|U5CAsvPY)g3Y(#d=|BflJsGLzH{k<@%js8Vq%_jfLAQm!wz2Y~>=|b@lVyB{g zOb!&}FVvh&RPsRniDgy(dr;dX-jb%Iu%SdJ8;czWgXa+CN~ji*9^PO_7hQqk1Y6Ze z7K*YKqP5iP`XN)q0T98kV2X&Ar0mJ`=V^MiZu{SJVp2O?mP0@$jKHl+c8{RvLm`8I zWfGb<;UAdj#E=>Mr2~KoM@r@IkplV*KOwXMekuC~uI#zD=X7sbJ)PK5f{;hE{~lB( zLM7SMMCQ??KHw)vsuhk6fA_dWQ~$kdLQPA>yH-_Ggs*F$5TcTARIXC-NQyRCwEt(( zmMhKt_`v^pRu55MN`5B!Lc$u8d|}4rm5Y}W*9N{f38DzUhkGU3@>grj9M(nCT8TTT zbdBdGaI(zS2_rNOi9EB*e?y9%<9{JVb&DL_gap3C1`e*6)}qaaHmySdpEY-GO)xqU z?PKMycp?6?6wgX2XVVhi`NrKU+iV!Brv|uq@!~9mjN+OLZvQt%I`;YRt7tdv(W8fi z_+GtKc()|38&uFpp`>uT&M*d-UF_(ARsSZ)YKmAalO~RD8FlRi5GX7J`f5{V-T)@M zC{m-s;+CX1z$mcl@CY!K*zRlGNuLD9DW~Wbpi`!eAmje>oTjnQ|J9Sn!vDWUEc(TI zW5hOmh1rDVN}5Wt%nuONC$HV0RqLrMsN5f2OaOnCiHNojn&iY#13jk%ki35KWY6U* zRtQW%&;0^v6hZe@3%~5wY=0{@|RGtFn9W~&jC+?^7*Zq9e5{%;E#ZsE6 zRmcG9JM9LM{aRlBs+C{Oi2T|)=SuAwy6>(74vvVAc~;nk%YARg47Me=nhMRh-VnU*8Eu1Bvd4%p;NPnnYS zJ=W`DyQWS2L!Pi*l=Yekk1l;gcF>!~+HH)fH-cMbAuVVIa2nVqvk17c3oxpv3WNg| zae(G8JHT`CDksQ@7rObb&D1%fGm#N}5nD;jno&>>$RLSLzWV&6Ew&ZrT{^J?EXjCG zgx6bf2UrGRWt*?dd;s$>&gQ0_G#E15*LPkcVS?fDuhB;=@3iHHqTNlSsGIptS*1&t zE*F8z+BWqMp(yP}v}dVx!BD_GM$c~|gBKZeW~Ri<0}Y@XXN*N2Bq04iJgsM+SR2k!(!P$M}v-IyRQ&;u@s})I{
v-FBLebUz)uNox<0Wi2rpK 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 diff --git a/doc/include/quick/graph1.png b/doc/include/quick/graph1.png deleted file mode 100644 index 236cd2736b3be71af1b00a77cdd07a6dc2ed9292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19249 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 EZ_GZoDF6Tf diff --git a/doc/include/quick/graph2.png b/doc/include/quick/graph2.png deleted file mode 100644 index 92e1ca2c7ed99726b46feac6f53cd389ce8e5285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27858 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 Date: Mon, 19 Oct 2026 15:54:19 +0200 Subject: [PATCH 16/27] Rename the "Nonlinear linearization" example heading Use "Linearization of nonlinear problems", as in the quickstart guide. --- doc/examples/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/examples/index.rst b/doc/examples/index.rst index d9299c63..eb252207 100644 --- a/doc/examples/index.rst +++ b/doc/examples/index.rst @@ -45,8 +45,8 @@ operators, products, contractions, and Lie derivatives. :language: python :linenos: -Nonlinear linearization ------------------------ +Linearization of nonlinear problems +----------------------------------- This example constructs a nonlinear Poisson residual and derives its Jacobian form symbolically. From d27b7de53258eb72946722e6df9be86397601495 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 15:56:18 +0200 Subject: [PATCH 17/27] Draw expression trees in the documentation Add an example that writes the expression trees of an operator and of an expanded derivative with SymPy's dotprint, and draw them in the quickstart guide with sphinx.ext.graphviz. The graphs are generated from the example at build time, so they cannot get out of date like the removed pre-rendered images. Install Graphviz in the documentation workflow and mention it in the README. --- .github/workflows/documentation.yml | 5 +++++ .gitignore | 1 + CHANGELOG.md | 1 + README.md | 4 +++- doc/conf.py | 15 +++++++++++++ doc/examples/expression_trees.py | 34 +++++++++++++++++++++++++++++ doc/examples/index.rst | 11 ++++++++++ doc/quick.rst | 34 +++++++++++++++++++++++++++++ 8 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 doc/examples/expression_trees.py diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 6b1a37c7..5704a992 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -44,6 +44,11 @@ jobs: run: | pip install --upgrade pip setuptools wheel + - name: Install Graphviz + run: | + sudo apt-get update + sudo apt-get install --yes graphviz + - name: Install project and documentation dependencies run: | pip install .[docs] diff --git a/.gitignore b/.gitignore index 27146ff3..eb4f669d 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,7 @@ instance/ # Sphinx documentation doc/_build/ doc/source/ +doc/_generated/ # PyBuilder target/ diff --git a/CHANGELOG.md b/CHANGELOG.md index de186193..505448f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. - #194: Add `sympde.api` as the supported flat public API. It contains the objects used by PSYDAC, IGA-Python, GeLaTo and the SymPDE documentation. - #194: Add example scripts to the documentation, which are run by the documentation workflow. +- #194: Draw expression trees in the documentation with Graphviz, generated from the current code at build time. - #106: Accept the connectivity of a `Domain` as an iterable of `Interface` objects, in addition to a `Connectivity` object. - [DEVELOPER] Add a `CHANGELOG.md` file listing changes between different versions. - [DEVELOPER] Add Python version 3.14 to the testing workflow. diff --git a/README.md b/README.md index 81b2c76e..2a932258 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,9 @@ pytest -n auto --dist loadgroup --pyargs sympde -ra ``` The documentation dependencies are installed separately, and the HTML pages -are built with warnings treated as errors: +are built with warnings treated as errors. Drawing the expression trees also +requires [Graphviz](https://graphviz.org) (for example `sudo apt install +graphviz` on Ubuntu): ```bash pip install --editable ".[docs]" diff --git a/doc/conf.py b/doc/conf.py index 7792be24..2353a915 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,5 +1,6 @@ """Sphinx configuration for the SymPDE documentation.""" +import runpy from pathlib import Path from sphinx.ext.apidoc import main as sphinx_apidoc @@ -44,6 +45,7 @@ 'sphinx.ext.todo', 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', + 'sphinx.ext.graphviz', 'sphinxcontrib.bibtex', ] @@ -182,6 +184,9 @@ bibtex_bibfiles = ['math/refs_feec.bib'] +# Draw graphs as SVG, so that they scale with the page +graphviz_output_format = 'svg' + # -- APIDOC ---------------------------------------------- doc_dir = Path(__file__).resolve().parent @@ -199,3 +204,13 @@ apidoc_args.extend(str(path) for path in (doc_dir.parent / 'sympde').glob('*/tests')) apidoc_args.append(str(doc_dir.parent / 'sympde' / 'api')) sphinx_apidoc(apidoc_args) + + +# -- Expression trees ------------------------------------ +# Run the example and write its graphs, which the documentation draws with +# Graphviz. They are generated at build time, so they always match the code. +generated_dir = doc_dir / '_generated' +generated_dir.mkdir(exist_ok=True) +trees = runpy.run_path(str(doc_dir / 'examples' / 'expression_trees.py')) +for name, graph in trees['graphs'].items(): + (generated_dir / f'{name}.dot').write_text(graph) diff --git a/doc/examples/expression_trees.py b/doc/examples/expression_trees.py new file mode 100644 index 00000000..67fd3cd8 --- /dev/null +++ b/doc/examples/expression_trees.py @@ -0,0 +1,34 @@ +"""Write the expression trees of symbolic expressions in the DOT language.""" + +from sympy.printing.dot import dotprint + +from sympde.api import Domain, ScalarFunctionSpace, div, dx, dy, elements_of, grad + + +domain = Domain('Omega', dim=2) +space = ScalarFunctionSpace('V', domain) +u, v = elements_of(space, names='u, v') + + +# [operator-start] +def L(w): + return -div(grad(w)) + w + + +operator_graph = dotprint(L(u)) +# [operator-end] + + +# [derivative-start] +expr = dx(dy(u * v)) +assert expr == u * dx(dy(v)) + v * dx(dy(u)) + dx(u) * dy(v) + dx(v) * dy(u) + +derivative_graph = dotprint(expr) +# [derivative-end] + + +# Graphs drawn in the documentation, by file name +graphs = { + 'operator': operator_graph, + 'derivative': derivative_graph, +} diff --git a/doc/examples/index.rst b/doc/examples/index.rst index eb252207..08fcf281 100644 --- a/doc/examples/index.rst +++ b/doc/examples/index.rst @@ -45,6 +45,17 @@ operators, products, contractions, and Lie derivatives. :language: python :linenos: +Expression trees +---------------- + +This example writes the expression trees of a differential operator and of an +expanded derivative in the DOT language of Graphviz. The quickstart guide draws +both trees. + +.. literalinclude:: expression_trees.py + :language: python + :linenos: + Linearization of nonlinear problems ----------------------------------- diff --git a/doc/quick.rst b/doc/quick.rst index c3a6ab0e..abc68a59 100644 --- a/doc/quick.rst +++ b/doc/quick.rst @@ -49,6 +49,40 @@ for a specific domain with ``TerminalExpr``: :start-after: # [lowering-start] :end-before: # [lowering-end] +Expression trees +^^^^^^^^^^^^^^^^ + +Like any SymPy expression, a SymPDE expression is a tree of operators and +operands. SymPy's ``dotprint`` function writes this tree in the DOT language +of `Graphviz `_. For the operator +:math:`\mathcal{L} u := - \nabla^2 u + u`: + +.. literalinclude:: examples/expression_trees.py + :language: python + :start-after: # [operator-start] + :end-before: # [operator-end] + +.. graphviz:: /_generated/operator.dot + :caption: Expression tree of :math:`\mathcal{L} u := - \nabla^2 u + u`. + :align: center + +Generic operators such as ``grad`` and ``div`` are kept unevaluated. The +atomic derivatives ``dx`` and ``dy`` are linear operators that apply the +product rule immediately, so the tree of :math:`\partial_x \partial_y (uv)` +contains the expanded result: + +.. literalinclude:: examples/expression_trees.py + :language: python + :start-after: # [derivative-start] + :end-before: # [derivative-end] + +.. graphviz:: /_generated/derivative.dot + :caption: Expression tree of :math:`\partial_x \partial_y (uv)`. + :align: center + +To draw a tree outside of the documentation, save the output of ``dotprint`` +to a file such as ``tree.dot`` and run ``dot -Tpng tree.dot -o tree.png``. + Mappings and multipatch domains ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From 23f35db8cb4dee03efe7ece434468b1292b66102 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 16:17:39 +0200 Subject: [PATCH 18/27] Remove a duplicate import in test_logical_expr grad, div and dot were imported twice from sympde.calculus.core. Import curl together with the other operators instead. --- sympde/topology/tests/test_logical_expr.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sympde/topology/tests/test_logical_expr.py b/sympde/topology/tests/test_logical_expr.py index ee8b3b00..f3aefebe 100644 --- a/sympde/topology/tests/test_logical_expr.py +++ b/sympde/topology/tests/test_logical_expr.py @@ -6,7 +6,7 @@ from sympy import cos, sin, sqrt, pi from sympde.core.basic import Constant -from sympde.calculus.core import grad, dot, inner, rot, div +from sympde.calculus.core import grad, dot, inner, rot, div, curl from sympde.calculus.core import laplace, bracket, convect from sympde.calculus.core import jump, avg, Dn, minus, plus from sympde.topology.domain import Domain @@ -28,7 +28,6 @@ from sympde.topology.analytical_mapping import TwistedTargetMapping from sympde.expr.expr import BilinearForm, integral -from sympde.calculus.core import grad, div, curl, dot from sympde.topology.mapping import Jacobian From 13f9ce1b6d4a4f4849c488f50ad27d7a84b78350 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 16:25:49 +0200 Subject: [PATCH 19/27] Use sympde.api in the calculus docstring examples The examples imported from the package initializers, which no longer re-export objects. Import from sympde.api instead, and Dot, which is not part of it, from sympde.calculus.core. --- sympde/calculus/core.py | 76 ++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/sympde/calculus/core.py b/sympde/calculus/core.py index d7c38f9c..157e9e15 100644 --- a/sympde/calculus/core.py +++ b/sympde/calculus/core.py @@ -4,11 +4,11 @@ but knowning properties between them. For instance, the following statement will naturally give 0 ->>> from sympde.calculus import grad, curl ->>> from sympde.topology import Domain ->>> from sympde.topology import ScalarFunctionSpace ->>> from sympde.topology import ScalarFunction ->>> from sympde.topology import element_of +>>> from sympde.api import grad, curl +>>> from sympde.api import Domain +>>> from sympde.api import ScalarFunctionSpace +>>> from sympde.api import ScalarFunction +>>> from sympde.api import element_of >>> domain = Domain('Omega', dim=2) >>> V = ScalarFunctionSpace('V', domain) @@ -276,7 +276,7 @@ class Dot(BasicOperator): Examples - >>> from sympde.calculus import Dot + >>> from sympde.calculus.core import Dot >>> from sympy import Tuple >>> from sympy.abc import x,y @@ -287,10 +287,10 @@ class Dot(BasicOperator): This operator implements the properties of addition and multiplication - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = VectorFunctionSpace('V', domain) @@ -444,10 +444,10 @@ class Inner(BasicOperator): Examples - >>> from sympde.calculus import inner, grad - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import inner, grad + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = VectorFunctionSpace('V', domain) @@ -673,10 +673,10 @@ class Grad(DiffOperator): Examples - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = ScalarFunctionSpace('V', domain) @@ -791,10 +791,10 @@ class Curl(DiffOperator): Examples - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = VectorFunctionSpace('V', domain) @@ -880,10 +880,10 @@ class Rot(DiffOperator): Examples - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = ScalarFunctionSpace('V', domain) @@ -959,10 +959,10 @@ class Div(DiffOperator): Examples - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = VectorFunctionSpace('V', domain) @@ -1064,10 +1064,10 @@ class Laplace(DiffOperator): Examples - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = ScalarFunctionSpace('V', domain) @@ -1148,10 +1148,10 @@ class Hessian(DiffOperator): Examples - >>> from sympde.core import Constant - >>> from sympde.topology import Domain - >>> from sympde.topology import VectorFunctionSpace - >>> from sympde.topology import VectorFunction + >>> from sympde.api import Constant + >>> from sympde.api import Domain + >>> from sympde.api import VectorFunctionSpace + >>> from sympde.api import VectorFunction >>> domain = Domain('Omega', dim=2) >>> V = ScalarFunctionSpace('V', domain) From 38c3b1008c610ab9b2e0f9c6d44831871d746de0 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 16:25:55 +0200 Subject: [PATCH 20/27] Use defining-module paths in the plotting docstrings sympde.topology.Domain and sympde.topology.InteriorDomain no longer exist, since the package initializers are empty. --- sympde/utilities/utils.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sympde/utilities/utils.py b/sympde/utilities/utils.py index 164957ae..5236fffa 100644 --- a/sympde/utilities/utils.py +++ b/sympde/utilities/utils.py @@ -91,7 +91,7 @@ def plot_domain(domain, draw=True, isolines=False, refinement=None): Parameters ---------- - domain : sympde.topology.Domain + domain : sympde.topology.domain.Domain Domain to plot draw : bool, default=True @@ -123,7 +123,7 @@ def plot_2d(domain, draw=True, isolines=False, refinement=40): Parameters ---------- - domain : sympde.topology.Domain + domain : sympde.topology.domain.Domain Domain to plot draw : bool @@ -159,7 +159,7 @@ def plot_3d(domain, draw=True, refinement=15): Parameters ---------- - domain : sympde.topology.Domain + domain : sympde.topology.domain.Domain Domain to plot draw : bool @@ -197,7 +197,7 @@ def plot_3d_single_patch(patch, mapping, ax, refinement=15): Parameters ---------- - patch : sympde.topology.InteriorDomain + patch : sympde.topology.basic.InteriorDomain mapping : sympde.topology.mapping @@ -253,7 +253,7 @@ def plot_2d_single_patch(patch, mapping, ax, isolines=False, refinement=40): Parameters ---------- - patch : sympde.topology.InteriorDomain + patch : sympde.topology.basic.InteriorDomain mapping : sympde.topology.mapping From 74c5b2b852ab5a950ac27525c56c187f226f6114 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Mon, 19 Oct 2026 16:26:06 +0200 Subject: [PATCH 21/27] Record the removal of the notebooks in the changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 505448f4..d29c80b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ All notable changes to this project will be documented in this file. - #194: Remove the re-exports of public objects from the package and subpackage initializers. Replace imports such as `from sympde.topology import Square` with `from sympde.api import Square`. `from sympde import __version__` keeps working. - #194: Remove the `sympde.old_sympy_utilities` module. Use `sympy.utilities.iterables.is_sequence` and Python's `metaclass` keyword instead of its `is_sequence` and `with_metaclass`. +- #194: Remove the outdated Jupyter notebooks and the Binder badge. The example scripts in the documentation replace them. - [DEVELOPER] Remove obsolete CI configuration, the standalone pytest configuration, and the legacy test runner script. ### Deprecated From d2ec86dcdb348f78087e802931fbc2fab5ade473 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Tue, 20 Oct 2026 11:02:12 +0200 Subject: [PATCH 22/27] Make module-level names used outside their module public Remove the leading underscore from the module-level names that other modules or downstream projects use: - partial_derivatives, logical_partial_derivatives and split_test_function, used by PSYDAC, are also added to sympde.api. - _coeffs_registery becomes coefficient_types, since it is a tuple of types, not a registry. - diff_ops, generic_ops, sanitize_arguments and get_domain are used by other SymPDE modules only, so they are not added to sympde.api. Remove the names that are private to sympde.expr.evaluation from its __all__, and delete the unused _is_op_test_function from sympde.calculus.core (sympde/exterior/compiler.py defines its own copy). --- CHANGELOG.md | 3 +++ sympde/api/__init__.py | 6 +++++ sympde/calculus/core.py | 48 ++++++++++++++++------------------ sympde/calculus/matrices.py | 4 +-- sympde/core/algebra.py | 4 +-- sympde/core/basic.py | 2 +- sympde/expr/basic.py | 4 +-- sympde/expr/evaluation.py | 40 ++++++++++++---------------- sympde/expr/expr.py | 20 +++++++------- sympde/exterior/calculus.py | 18 ++++++------- sympde/exterior/compiler.py | 6 ++--- sympde/topology/derivatives.py | 32 +++++++++++------------ sympde/topology/mapping.py | 18 ++++++------- sympde/topology/space.py | 6 ++--- 14 files changed, 105 insertions(+), 106 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d29c80b5..38bc5ad1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ All notable changes to this project will be documented in this file. - Convert the README to Markdown and expand the installation, testing, and documentation-build instructions. - #194: Use explicit internal imports and load optional dependencies only when needed. +- #194: Remove the leading underscore from the module-level names used outside their module, and add those used by PSYDAC to `sympde.api`: `partial_derivatives`, `logical_partial_derivatives` (`sympde.topology.derivatives`) and `split_test_function` (`sympde.expr.evaluation`). Rename `_coeffs_registery` to `coefficient_types` (`sympde.core.basic`), and `_diff_ops`, `_generic_ops`, `_sanitize_arguments` and `_get_domain` to `diff_ops`, `generic_ops`, `sanitize_arguments` and `get_domain`. +- #194: List only public names in the `__all__` of every module. - #106: Require SymPy 1.12 or newer and support maintained SymPy releases below 1.15. - #106: Update SymPDE's symbolic objects for modern SymPy's structural arguments, traversal, substitution, and reconstruction requirements. - #106: Order the parameters of `Domain` like its `args` (`name`, `interiors`, `boundaries`, `mapping`, `logical_domain`, `connectivity`) and allow passing them positionally. `dim` is now keyword-only. @@ -43,6 +45,7 @@ All notable changes to this project will be documented in this file. - #194: Remove the re-exports of public objects from the package and subpackage initializers. Replace imports such as `from sympde.topology import Square` with `from sympde.api import Square`. `from sympde import __version__` keeps working. - #194: Remove the `sympde.old_sympy_utilities` module. Use `sympy.utilities.iterables.is_sequence` and Python's `metaclass` keyword instead of its `is_sequence` and `with_metaclass`. - #194: Remove the outdated Jupyter notebooks and the Binder badge. The example scripts in the documentation replace them. +- #194: Remove the unused `_is_op_test_function` from `sympde.calculus.core`. - [DEVELOPER] Remove obsolete CI configuration, the standalone pytest configuration, and the legacy test runner script. ### Deprecated diff --git a/sympde/api/__init__.py b/sympde/api/__init__.py index c608de66..4cebf564 100644 --- a/sympde/api/__init__.py +++ b/sympde/api/__init__.py @@ -96,6 +96,8 @@ get_index_logical_derivatives, get_index_logical_derivatives_atom, get_max_logical_partial_derivatives, + logical_partial_derivatives, + partial_derivatives, ) from sympde.topology.datatype import ( H1Space, @@ -133,6 +135,7 @@ Stiffness, TensorExpr, TerminalExpr, + split_test_function, ) from sympde.expr.expr import ( BilinearForm, @@ -242,6 +245,8 @@ 'get_index_logical_derivatives', 'get_index_logical_derivatives_atom', 'get_max_logical_partial_derivatives', + 'logical_partial_derivatives', + 'partial_derivatives', 'trace_0', 'trace_1', # Expressions @@ -268,6 +273,7 @@ 'find', 'integral', 'linearize', + 'split_test_function', # Exterior calculus 'DifferentialForm', 'd', diff --git a/sympde/calculus/core.py b/sympde/calculus/core.py index 157e9e15..df13f455 100644 --- a/sympde/calculus/core.py +++ b/sympde/calculus/core.py @@ -105,7 +105,7 @@ from sympy.utilities.iterables import is_sequence from sympde.core.basic import CalculusFunction -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.topology.space import ScalarFunction, VectorFunction from sympde.topology.domain import NormalVector, MinusNormalVector, PlusNormalVector from sympde.topology.datatype import H1SpaceType, HcurlSpaceType @@ -145,17 +145,16 @@ # 'D', 'Dn', - '_diff_ops', - '_generic_ops', - '_is_op_test_function', 'avg', 'bracket', 'conv', 'convect', 'cross', 'curl', + 'diff_ops', 'div', 'dot', + 'generic_ops', 'grad', 'hessian', 'inner', @@ -250,12 +249,12 @@ def __radd__(self, o): def is_constant(atom): """ Determine whether the given atom represents a constant number. """ - if isinstance(atom, _coeffs_registery): + if isinstance(atom, coefficient_types): return True if (isinstance(atom, Pow) and - isinstance(atom.base, _coeffs_registery) and - isinstance(atom.exp , _coeffs_registery)): + isinstance(atom.base, coefficient_types) and + isinstance(atom.exp , coefficient_types)): return True return False @@ -1255,7 +1254,7 @@ def eval(cls, arg1, arg2): # Derivative of product: d(a*b*c) = da * (b*c) + a * d(b*c) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] fields = [a for a in expr.args if a not in coeffs] terms = [] @@ -1270,7 +1269,7 @@ def eval(cls, arg1, arg2): return Mul(a, b) # Derivative of constant: d(const) = 0 - elif isinstance(expr, _coeffs_registery): + elif isinstance(expr, coefficient_types): return S.Zero # Automatic evaluation to canonical form: reorder arguments by using @@ -1343,11 +1342,11 @@ def eval(cls, *_args): # return is done at the end alpha = S.One if isinstance(left, Mul): - coeffs = [a for a in left.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in left.args if isinstance(a, coefficient_types)] for a in left.args: if ( isinstance(a, Pow) and - isinstance(a.base, _coeffs_registery) and - isinstance(a.exp, _coeffs_registery) ): + isinstance(a.base, coefficient_types) and + isinstance(a.exp, coefficient_types) ): coeffs += [a] vectors = [a for a in left.args if not(a in coeffs)] @@ -1364,11 +1363,11 @@ def eval(cls, *_args): left = b if isinstance(right, Mul): - coeffs = [a for a in right.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in right.args if isinstance(a, coefficient_types)] for a in right.args: if ( isinstance(a, Pow) and - isinstance(a.base, _coeffs_registery) and - isinstance(a.exp, _coeffs_registery) ): + isinstance(a.base, coefficient_types) and + isinstance(a.exp, coefficient_types) ): coeffs += [a] vectors = [a for a in right.args if not(a in coeffs)] @@ -1434,7 +1433,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -1507,7 +1506,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -1580,7 +1579,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -1649,7 +1648,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -1744,7 +1743,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -1806,10 +1805,10 @@ def __getitem__(self, key): #============================================================================== -_generic_ops = (Dot, Cross, Inner, Outer, Convect, Convolution) +generic_ops = (Dot, Cross, Inner, Outer, Convect, Convolution) -_diff_ops = (Grad, Curl, Rot, Div, - Bracket, Laplace, Hessian) +diff_ops = (Grad, Curl, Rot, Div, + Bracket, Laplace, Hessian) # ... alias for ufl compatibility # user friendly functions @@ -1837,9 +1836,6 @@ def __getitem__(self, key): plus = PlusInterfaceOperator -_is_op_test_function = lambda op: (isinstance(op, (Grad, Curl, Div)) and - isinstance(op._args[0], (ScalarFunction, VectorFunction))) - _is_sympde_atom = lambda a: isinstance(a, (ScalarFunction, VectorFunction, minus, plus)) def add_basicop(expr): diff --git a/sympde/calculus/matrices.py b/sympde/calculus/matrices.py index 2ba04189..11152987 100644 --- a/sympde/calculus/matrices.py +++ b/sympde/calculus/matrices.py @@ -2,7 +2,7 @@ from sympy import Add, Mul, Pow from sympy import sympify from sympy.core.decorators import call_highest_priority -from sympde.core.basic import _coeffs_registery, new_basic, Basic +from sympde.core.basic import coefficient_types, new_basic, Basic class MatrixSymbolicExpr(Expr): is_commutative = False @@ -257,7 +257,7 @@ def __new__(cls, *args, **options): return Add(*[SymbolicTrace(a) for a in arg.args]) elif isinstance(arg, Mul): - coeffs = [a for a in arg.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in arg.args if isinstance(a, coefficient_types)] mats = [a for a in arg.args if not a in coeffs] if coeffs: return Mul(*coeffs)*SymbolicTrace(arg.func(*mats)) diff --git a/sympde/core/algebra.py b/sympde/core/algebra.py index 037d9323..ada0c875 100644 --- a/sympde/core/algebra.py +++ b/sympde/core/algebra.py @@ -8,7 +8,7 @@ from sympy.utilities.iterables import is_sequence from .basic import CalculusFunction -from .basic import _coeffs_registery +from .basic import coefficient_types # TODO update default name @@ -47,7 +47,7 @@ def eval(cls, expr): return Add(*args) if isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One diff --git a/sympde/core/basic.py b/sympde/core/basic.py index 1c371e56..f8b07cf8 100644 --- a/sympde/core/basic.py +++ b/sympde/core/basic.py @@ -113,4 +113,4 @@ class BasicDerivable(Basic): pass #============================================================================== -_coeffs_registery = (int, float, complex, Number, NumberSymbol, Constant) +coefficient_types = (int, float, complex, Number, NumberSymbol, Constant) diff --git a/sympde/expr/basic.py b/sympde/expr/basic.py index 7aa5f529..4342a219 100644 --- a/sympde/expr/basic.py +++ b/sympde/expr/basic.py @@ -7,10 +7,10 @@ from sympde.topology.space import ScalarFunction from sympde.topology.space import VectorFunction -__all__ = ('BasicExpr', 'BasicForm', '_sanitize_arguments') +__all__ = ('BasicExpr', 'BasicForm', 'sanitize_arguments') #============================================================================== -def _sanitize_arguments(arguments, is_bilinear=False, is_linear=False): +def sanitize_arguments(arguments, is_bilinear=False, is_linear=False): if is_bilinear or is_linear: if is_bilinear: diff --git a/sympde/expr/evaluation.py b/sympde/expr/evaluation.py index 17ad00d8..f5b50f34 100644 --- a/sympde/expr/evaluation.py +++ b/sympde/expr/evaluation.py @@ -6,7 +6,7 @@ from sympy.core.containers import Tuple from sympy.simplify.simplify import simplify -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.core.basic import CalculusFunction from sympde.core.basic import new_basic from sympde.core.algebra import (Dot_1d, @@ -16,7 +16,7 @@ from sympde.calculus.core import Jump, is_zero from sympde.calculus.core import jump, minus, plus -from sympde.calculus.core import _generic_ops, _diff_ops +from sympde.calculus.core import generic_ops, diff_ops from sympde.calculus.core import MinusInterfaceOperator, PlusInterfaceOperator from sympde.calculus.matrices import SymbolicDeterminant, Inverse, Transpose from sympde.calculus.matrices import MatrixElement, SymbolicTrace @@ -36,8 +36,8 @@ from sympde.topology.space import Trace from sympde.topology.space import ScalarFunctionSpace -from sympde.topology.derivatives import _partial_derivatives -from sympde.topology.derivatives import _logical_partial_derivatives +from sympde.topology.derivatives import partial_derivatives +from sympde.topology.derivatives import logical_partial_derivatives from sympde.topology.derivatives import get_atom_derivatives from sympde.topology.derivatives import get_atom_logical_derivatives from sympde.topology.derivatives import dx, dy, dz @@ -59,7 +59,7 @@ from .expr import BilinearForm from .expr import Integral from .expr import Functional -from .expr import _get_domain +from .expr import get_domain __all__ = ( 'Advection', @@ -74,14 +74,8 @@ 'Stiffness', 'TensorExpr', 'TerminalExpr', - '_get_trials_tests', - '_replace_atomic_expr', - '_split_expr_over_interface', - '_split_test_function', - '_tensorize_atomic_expr', - '_to_matrix_form', - '_unpack_functions', 'is_sequence', + 'split_test_function', ) #============================================================================== @@ -688,7 +682,7 @@ def eval(cls, expr, domain): if isinstance(expr.expr, Add): for a in expr.expr.args: - domains = _get_domain(a) + domains = get_domain(a) if not isinstance(domains, Union): domains = (domains, ) @@ -700,7 +694,7 @@ def eval(cls, expr, domain): domains = expr.domain else: - domains = _get_domain(expr.expr) + domains = get_domain(expr.expr) if isinstance(domains, Union): domains = list(domains._args) @@ -806,7 +800,7 @@ def eval(cls, expr, domain): elif isinstance(expr, BasicExpr): return cls.eval(expr.expr, domain=domain) - elif isinstance(expr, _diff_ops): + elif isinstance(expr, diff_ops): op = type(expr) if domain.mapping is None: new = eval('Logical{0}_{1}d'.format(op, dim)) @@ -816,7 +810,7 @@ def eval(cls, expr, domain): args = [cls.eval(i, domain=domain) for i in expr.args] return new(*args) - elif isinstance(expr, _generic_ops): + elif isinstance(expr, generic_ops): # if i = Dot(...) then type(i) is Grad op = type(expr) new = eval('{0}_{1}d'.format(op, dim)) @@ -870,7 +864,7 @@ def eval(cls, expr, domain): #============================================================================== # TODO use random_string for space name and use it for 1d test function -def _split_test_function(expr): +def split_test_function(expr): if isinstance(expr, ScalarFunction): @@ -921,10 +915,10 @@ def _split_test_function(expr): #============================================================================== def _tensorize_atomic_expr(expr, d_atoms): - if (isinstance(expr, _partial_derivatives) or - isinstance(expr,_logical_partial_derivatives)): + if (isinstance(expr, partial_derivatives) or + isinstance(expr,logical_partial_derivatives)): - if isinstance(expr, _partial_derivatives): + if isinstance(expr, partial_derivatives): atom = get_atom_derivatives(expr) else: @@ -1107,7 +1101,7 @@ def eval(cls, *_args, **kwargs): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] stests = [a for a in expr.args if not(a in coeffs) and a.atoms(ScalarFunction)] vtests = [a for a in expr.args if not(a in coeffs) and a.atoms(VectorFunction)] vectors = [a for a in expr.args if (not(a in coeffs) and @@ -1136,7 +1130,7 @@ def eval(cls, *_args, **kwargs): return Mul(a, b, sb, vb) - elif isinstance(expr, _coeffs_registery): + elif isinstance(expr, coefficient_types): return expr elif isinstance(expr, Pow): @@ -1183,7 +1177,7 @@ def eval(cls, *_args, **kwargs): # Prepare dictionary for '_tensorize_atomic_expr', which should # process all variables but leave fields unchanged: d_atoms = dict( - [(v,_split_test_function(v)[v]) for v in variables] + [(f, (f,)) for f in fields]) + [(v,split_test_function(v)[v]) for v in variables] + [(f, (f,)) for f in fields]) expr = cls.eval(terminal_expr, d_atoms=d_atoms, domain=domain) diff --git a/sympde/expr/expr.py b/sympde/expr/expr.py index 35645459..7a735340 100644 --- a/sympde/expr/expr.py +++ b/sympde/expr/expr.py @@ -25,7 +25,7 @@ from .errors import UnconsistentLinearExpressionError from .basic import BasicForm from .basic import BasicExpr -from .basic import _sanitize_arguments +from .basic import sanitize_arguments __all__ = ( 'BilinearForm', @@ -37,9 +37,9 @@ 'SemiNorm', 'Norm', # - '_get_domain', 'add_int', 'expand', + 'get_domain', 'integral', 'is_linear_expression', 'linearize', @@ -100,7 +100,7 @@ def expand(expr): return expr #============================================================================== -def _get_domain(expr): +def get_domain(expr): # expr is an integral of BasicExpr or Add of Integral of BasicExpr if isinstance(expr, Integral): return expr.domain @@ -108,7 +108,7 @@ def _get_domain(expr): elif isinstance(expr, (Add, Mul)): domains = [] for a in expr.args: - a = _get_domain(a) + a = get_domain(a) if isinstance(a, Union): domains.extend(list(a.args)) elif isinstance(a, BasicDomain): @@ -124,7 +124,7 @@ def __new__(cls, arguments, expr, **options): if expr.atoms(Integral): raise TypeError('') - args = _sanitize_arguments(arguments, is_linear=True) + args = sanitize_arguments(arguments, is_linear=True) if not is_linear_expression(expr, args): msg = '> Expression is not linear' @@ -141,7 +141,7 @@ def expr(self): return self._args[1] def __call__(self, *args): - args = _sanitize_arguments(args, is_linear=True) + args = sanitize_arguments(args, is_linear=True) expr, _ = self.expr._xreplace(dict(list(zip(self.variables, args)))) return expr @@ -343,7 +343,7 @@ def __new__(cls, arguments, expr, check_linearity=True, ignore_linearity_errors= raise ValueError('Expecting an integral Expression') # TODO: why do we 'sanitize' here? - args = _sanitize_arguments(arguments, is_linear=True) + args = sanitize_arguments(arguments, is_linear=True) # Check linearity with respect to the given arguments if check_linearity and not is_linear_expression(expr, args): @@ -360,7 +360,7 @@ def __new__(cls, arguments, expr, check_linearity=True, ignore_linearity_errors= # Compute 'domain' property (scalar or tuple) # TODO: is this is useful? - obj._domain = _get_domain(expr) + obj._domain = get_domain(expr) return obj @@ -429,7 +429,7 @@ def __new__(cls, arguments, expr, check_linearity=True, ignore_linearity_errors= raise ValueError('Expecting integral Expression') # TODO: why do we 'sanitize' here? - args = _sanitize_arguments(arguments, is_bilinear=True) + args = sanitize_arguments(arguments, is_bilinear=True) # Distinguish between trial and test functions trial_functions, test_functions = args @@ -456,7 +456,7 @@ def __new__(cls, arguments, expr, check_linearity=True, ignore_linearity_errors= # Compute 'domain' property (scalar or tuple) # TODO: is this is useful? - obj._domain = _get_domain(expr) + obj._domain = get_domain(expr) return obj diff --git a/sympde/exterior/calculus.py b/sympde/exterior/calculus.py index 2915ef39..ae1e35f9 100644 --- a/sympde/exterior/calculus.py +++ b/sympde/exterior/calculus.py @@ -8,7 +8,7 @@ from sympy.core.singleton import S from sympy.utilities.iterables import is_sequence -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.core.algebra import LinearOperator from sympde.core.basic import CalculusFunction @@ -62,7 +62,7 @@ def eval(cls, *_args): if isinstance(expr, ExteriorDerivative): return 0 - if isinstance(expr, _coeffs_registery): + if isinstance(expr, coefficient_types): return 0 if isinstance(expr, DifferentialForm): @@ -75,7 +75,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -139,7 +139,7 @@ def eval(cls, *_args): # return is done at the end alpha = S.One if isinstance(left, Mul): - coeffs = [a for a in left.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in left.args if isinstance(a, coefficient_types)] vectors = [a for a in left.args if not(a in coeffs)] a = S.One @@ -154,7 +154,7 @@ def eval(cls, *_args): left = b if isinstance(right, Mul): - coeffs = [a for a in right.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in right.args if isinstance(a, coefficient_types)] vectors = [a for a in right.args if not(a in coeffs)] a = S.One @@ -389,7 +389,7 @@ def eval(cls, *_args): if isinstance(expr, AdjointExteriorDerivative): return 0 - if isinstance(expr, _coeffs_registery): + if isinstance(expr, coefficient_types): return 0 if isinstance(expr, DifferentialForm): @@ -402,7 +402,7 @@ def eval(cls, *_args): return Add(*args) elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One @@ -540,7 +540,7 @@ def eval(cls, *_args): c = (-1)**(k*(n-k)) return c*arg - if isinstance(expr, _coeffs_registery): + if isinstance(expr, coefficient_types): return 0 elif isinstance(expr, Add): @@ -550,7 +550,7 @@ def eval(cls, *_args): # TODO improve elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] a = S.One diff --git a/sympde/exterior/compiler.py b/sympde/exterior/compiler.py index b2cc907b..d1475efe 100644 --- a/sympde/exterior/compiler.py +++ b/sympde/exterior/compiler.py @@ -9,7 +9,7 @@ from sympy import Tuple from sympy.utilities.iterables import is_sequence -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.core.basic import CalculusFunction from sympde.topology.datatype import H1SpaceType, HcurlSpaceType, HdivSpaceType from sympde.topology.datatype import L2SpaceType, UndefinedSpaceType @@ -140,7 +140,7 @@ def eval(cls, *_args, **kwargs): if isinstance(expr, (tuple, list, Tuple)): return expr - if isinstance(expr, _coeffs_registery): + if isinstance(expr, coefficient_types): return expr if _is_test_function(expr): @@ -436,7 +436,7 @@ def eval(cls, *_args, **kwargs): if isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] alpha = S.One diff --git a/sympde/topology/derivatives.py b/sympde/topology/derivatives.py index 793f5661..41713a92 100644 --- a/sympde/topology/derivatives.py +++ b/sympde/topology/derivatives.py @@ -19,7 +19,7 @@ from sympy.utilities.iterables import is_sequence from sympde.core.basic import CalculusFunction -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.core.basic import BasicMapping from sympde.core.algebra import LinearOperator from sympde.calculus.core import minus, plus @@ -52,21 +52,21 @@ def eval(cls, expr): types = (VectorFunction, ScalarFunction, DifferentialOperator) - if isinstance(expr, _logical_partial_derivatives): + if isinstance(expr, logical_partial_derivatives): atom = get_atom_logical_derivatives(expr) indices = get_index_logical_derivatives(expr) - if cls in _logical_partial_derivatives: + if cls in logical_partial_derivatives: indices[cls.coordinate] += 1 for i,n in enumerate(list(indices.values())[::-1]): - d = _logical_partial_derivatives[-i-1] + d = logical_partial_derivatives[-i-1] for _ in range(n): atom = d(atom, evaluate=False) - if cls in _partial_derivatives: + if cls in partial_derivatives: atom = cls(atom, evaluate=False) - elif cls not in _logical_partial_derivatives: + elif cls not in logical_partial_derivatives: raise NotImplementedError('TODO') return atom @@ -124,7 +124,7 @@ def eval(cls, expr): return v elif isinstance(expr, Mul): - coeffs = [a for a in expr.args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in expr.args if isinstance(a, coefficient_types)] vectors = [a for a in expr.args if not(a in coeffs)] c = S.One @@ -188,7 +188,7 @@ class dz(DifferentialOperator): grad_index = 2 # index in grad -_partial_derivatives = (dx, dy, dz) +partial_derivatives = (dx, dy, dz) #============================================================================== class dx1(DifferentialOperator): @@ -206,7 +206,7 @@ class dx3(DifferentialOperator): grad_index = 2 # index in grad logical = True -_logical_partial_derivatives = (dx1, dx2, dx3) +logical_partial_derivatives = (dx1, dx2, dx3) #============================================================================== @cacheit @@ -226,10 +226,10 @@ def find_partial_derivatives(expr): args += find_partial_derivatives(a) return args - elif isinstance(expr, _partial_derivatives): + elif isinstance(expr, partial_derivatives): return (expr,) - elif isinstance(expr, _logical_partial_derivatives): + elif isinstance(expr, logical_partial_derivatives): return (expr,) return () @@ -243,7 +243,7 @@ def get_number_derivatives(expr): form d(a) where a is a single atom. """ n = 0 - if isinstance(expr, _partial_derivatives): + if isinstance(expr, partial_derivatives): assert(len(expr.args) == 1) n += 1 + get_number_derivatives(expr.args[0]) @@ -300,7 +300,7 @@ def get_index_derivatives(expr): for c in coord: d[c] = 0 - ops = [a for a in preorder_traversal(expr) if isinstance(a, _partial_derivatives)] + ops = [a for a in preorder_traversal(expr) if isinstance(a, partial_derivatives)] for i in ops: if isinstance(i, dx): @@ -320,7 +320,7 @@ def get_atom_derivatives(expr): """ """ - if isinstance(expr, _partial_derivatives): + if isinstance(expr, partial_derivatives): assert(len(expr.args) == 1) return get_atom_derivatives(expr.args[0]) @@ -338,7 +338,7 @@ def get_index_logical_derivatives(expr): for c in coord: d[c] = 0 - ops = [a for a in preorder_traversal(expr) if isinstance(a, _logical_partial_derivatives)] + ops = [a for a in preorder_traversal(expr) if isinstance(a, logical_partial_derivatives)] for i in ops: if isinstance(i, dx1): @@ -358,7 +358,7 @@ def get_atom_logical_derivatives(expr): """ """ - if isinstance(expr, _logical_partial_derivatives): + if isinstance(expr, logical_partial_derivatives): assert(len(expr.args) == 1) return get_atom_logical_derivatives(expr.args[0]) diff --git a/sympde/topology/mapping.py b/sympde/topology/mapping.py index eb1e7336..103d9cd4 100644 --- a/sympde/topology/mapping.py +++ b/sympde/topology/mapping.py @@ -19,11 +19,11 @@ from sympde.core.basic import Constant from sympde.core.basic import BasicMapping from sympde.core.basic import CalculusFunction -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.core.basic import new_basic from sympde.calculus.core import PlusInterfaceOperator, MinusInterfaceOperator from sympde.calculus.core import grad, div, curl, laplace #, hessian -from sympde.calculus.core import dot, inner, outer, _diff_ops +from sympde.calculus.core import dot, inner, outer, diff_ops from sympde.calculus.core import has, DiffOperator from sympde.calculus.matrices import MatrixSymbolicExpr, MatrixElement, SymbolicTrace from sympde.calculus.matrices import SymbolicDeterminant, Transpose @@ -36,9 +36,9 @@ from .space import Trace from .datatype import HcurlSpaceType, H1SpaceType, L2SpaceType, HdivSpaceType, UndefinedSpaceType from .derivatives import dx, dy, dz, DifferentialOperator -from .derivatives import _partial_derivatives +from .derivatives import partial_derivatives from .derivatives import get_atom_derivatives, get_index_derivatives_atom -from .derivatives import _logical_partial_derivatives +from .derivatives import logical_partial_derivatives from .derivatives import get_atom_logical_derivatives, get_index_logical_derivatives_atom from .derivatives import LogicalGrad_1d, LogicalGrad_2d, LogicalGrad_3d @@ -966,7 +966,7 @@ def eval(cls, expr, domain, **options): v *= i return v - elif isinstance(expr, _logical_partial_derivatives): + elif isinstance(expr, logical_partial_derivatives): if mapping.is_analytical: Ms = [mapping[i] for i in range(dim)] expr = expr.subs(list(zip(Ms, mapping.expressions))) @@ -1099,7 +1099,7 @@ def eval(cls, expr, domain, **options): args = [cls.eval(arg, domain) for arg in expr.args] return type(expr)(*args) - elif isinstance(expr, _diff_ops): + elif isinstance(expr, diff_ops): raise NotImplementedError('TODO') # TODO MUST BE MOVED AFTER TREATING THE CASES OF GRAD, CURL, DIV IN FEEC @@ -1327,7 +1327,7 @@ def eval(cls, *_args, **kwargs): v = Pow(cls.eval(b, code=code), e) return v - elif isinstance(expr, _coeffs_registery): + elif isinstance(expr, coefficient_types): return expr elif isinstance(expr, (list, tuple, Tuple)): @@ -1380,7 +1380,7 @@ def eval(cls, *_args, **kwargs): return Symbol(name) - elif isinstance(expr, _partial_derivatives): + elif isinstance(expr, partial_derivatives): atom = get_atom_derivatives(expr) indices = get_index_derivatives_atom(expr, atom) code = None @@ -1393,7 +1393,7 @@ def eval(cls, *_args, **kwargs): code += k*n return cls.eval(atom, code=code) - elif isinstance(expr, _logical_partial_derivatives): + elif isinstance(expr, logical_partial_derivatives): atom = get_atom_logical_derivatives(expr) indices = get_index_logical_derivatives_atom(expr, atom) code = None diff --git a/sympde/topology/space.py b/sympde/topology/space.py index cead6f83..50423cd7 100644 --- a/sympde/topology/space.py +++ b/sympde/topology/space.py @@ -15,7 +15,7 @@ from sympde.core.utils import expand_name_patterns from sympde.core.utils import random_string from sympde.core.basic import CalculusFunction -from sympde.core.basic import _coeffs_registery +from sympde.core.basic import coefficient_types from sympde.core.basic import new_basic from .basic import BasicDomain, Union, Interval @@ -469,7 +469,7 @@ def __new__(cls, base, *args, **kw_args): return Add(*[cls(b, *args, **kw_args) for b in base.args]) elif isinstance(base, Mul): - scalar_types = (*_coeffs_registery, ScalarFunction) + scalar_types = (*coefficient_types, ScalarFunction) scalars = [s for s in base.args if isinstance(s, scalar_types)] others = [s for s in base.args if s not in scalars] return Mul(*scalars) * Mul(*[cls(b, *args, **kw_args) for b in others]) @@ -652,7 +652,7 @@ def eval(cls, expr, boundary, order): if isinstance(expr, Mul): args = expr.args - coeffs = [a for a in args if isinstance(a, _coeffs_registery)] + coeffs = [a for a in args if isinstance(a, coefficient_types)] a = Mul(*coeffs) args = [a for a in args if not(a in coeffs)] From 9db4bd0c5c2b575bf0ec36b05d5d4e388394e747 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Tue, 20 Oct 2026 12:41:19 +0200 Subject: [PATCH 23/27] Update CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yaman Güçlü --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38bc5ad1..dcb915cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ All notable changes to this project will be documented in this file. - Convert the README to Markdown and expand the installation, testing, and documentation-build instructions. - #194: Use explicit internal imports and load optional dependencies only when needed. -- #194: Remove the leading underscore from the module-level names used outside their module, and add those used by PSYDAC to `sympde.api`: `partial_derivatives`, `logical_partial_derivatives` (`sympde.topology.derivatives`) and `split_test_function` (`sympde.expr.evaluation`). Rename `_coeffs_registery` to `coefficient_types` (`sympde.core.basic`), and `_diff_ops`, `_generic_ops`, `_sanitize_arguments` and `_get_domain` to `diff_ops`, `generic_ops`, `sanitize_arguments` and `get_domain`. +- #194: Remove the leading underscore from `partial_derivatives`, `logical_partial_derivatives` (`sympde.topology.derivatives`) and `split_test_function` (`sympde.expr.evaluation`), and add them to `sympde.api`. - #194: List only public names in the `__all__` of every module. - #106: Require SymPy 1.12 or newer and support maintained SymPy releases below 1.15. - #106: Update SymPDE's symbolic objects for modern SymPy's structural arguments, traversal, substitution, and reconstruction requirements. From 3b2a5842869f05565b87f478eea2e1a822cfdf90 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Tue, 20 Oct 2026 12:41:35 +0200 Subject: [PATCH 24/27] Update CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yaman Güçlü --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcb915cd..4bcce7b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,9 @@ All notable changes to this project will be documented in this file. - #106: Store only `axis` and `weight` in the `args` of the 1D forms (`Mass`, `Stiffness`, `Advection`, `AdvectionT`, `Bilaplacian`). Their name is now a class attribute. - [DEVELOPER] Modernize the package metadata and consolidate the pytest and coverage configuration in `pyproject.toml`. - [DEVELOPER] Modernize the Sphinx configuration, API-documentation generation, and API docstring markup. +- [DEVELOPER] Remove the leading underscore from the module-level names used by other SymPDE modules, and rename `_coeffs_registery` to `coefficient_types`. +- [DEVELOPER] Modernize the package metadata and consolidate the pytest and coverage configuration in `pyproject.toml`. +- [DEVELOPER] Modernize the Sphinx configuration, API-documentation generation, and API docstring markup. - [DEVELOPER] Test the minimum supported SymPy version in a dedicated CI job. ### Fixed From 3ce21d0b2960ed7b28443568f0cb2e4f11c88de7 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Tue, 20 Oct 2026 12:41:50 +0200 Subject: [PATCH 25/27] Update CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yaman Güçlü --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bcce7b3..cb847b74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,7 +41,13 @@ All notable changes to this project will be documented in this file. - #106: Preserve symbol assumptions and free-symbol information with modern SymPy. - #106: Keep same-named functions from different function spaces distinct during symbolic simplification. - #106: Fix form-linearity checks involving integral sums with modern SymPy. +- #194: Fix plotting of unmapped two-dimensional domains with `plot_2d()`. +- #106: Preserve symbol assumptions and free-symbol information with modern SymPy. +- #106: Keep same-named functions from different function spaces distinct during symbolic simplification. +- #106: Fix form-linearity checks involving integral sums with modern SymPy. - #106: Raise a `ValueError` when a `Domain` is created without `interiors` or `dim`, instead of failing with a `TypeError` when only a connectivity is given. +- #191: Fix the rendering of the `Domain.join()` API documentation. +- #166: Restore warning-free documentation builds, including bibliography and mathematical notation support. ### Removed From 0d3efd0664591337c6e19d3f20e6ed2f1865e703 Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Tue, 20 Oct 2026 12:57:30 +0200 Subject: [PATCH 26/27] Update CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yaman Güçlü --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb847b74..19a37036 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ All notable changes to this project will be documented in this file. ### Changed -- Convert the README to Markdown and expand the installation, testing, and documentation-build instructions. +- #190: Convert the README to Markdown and expand the installation, testing, and documentation-build instructions. - #194: Use explicit internal imports and load optional dependencies only when needed. - #194: Remove the leading underscore from `partial_derivatives`, `logical_partial_derivatives` (`sympde.topology.derivatives`) and `split_test_function` (`sympde.expr.evaluation`), and add them to `sympde.api`. - #194: List only public names in the `__all__` of every module. From 309b06ee3ba7ab59099f2adbffd212b0bf431adb Mon Sep 17 00:00:00 2001 From: Frederik Schnack Date: Tue, 20 Oct 2026 14:53:39 +0200 Subject: [PATCH 27/27] Draw the expression trees without writing files Pass the DOT text of the expression-tree example directly to Graphviz through a small `expression-tree` directive, instead of writing it to doc/_generated and reading it back. The documentation build no longer creates files in the source tree besides the API pages, so the doc/_generated entry is removed from .gitignore. --- .gitignore | 1 - doc/conf.py | 25 +++++++++++++++++++------ doc/quick.rst | 4 ++-- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index eb4f669d..27146ff3 100644 --- a/.gitignore +++ b/.gitignore @@ -66,7 +66,6 @@ instance/ # Sphinx documentation doc/_build/ doc/source/ -doc/_generated/ # PyBuilder target/ diff --git a/doc/conf.py b/doc/conf.py index 2353a915..370977ce 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -3,7 +3,9 @@ import runpy from pathlib import Path +from docutils.statemachine import StringList from sphinx.ext.apidoc import main as sphinx_apidoc +from sphinx.ext.graphviz import Graphviz from sympde import __version__ @@ -207,10 +209,21 @@ # -- Expression trees ------------------------------------ -# Run the example and write its graphs, which the documentation draws with -# Graphviz. They are generated at build time, so they always match the code. -generated_dir = doc_dir / '_generated' -generated_dir.mkdir(exist_ok=True) +# Run the example and draw its graphs with Graphviz. They are generated at +# build time, so they always match the code. trees = runpy.run_path(str(doc_dir / 'examples' / 'expression_trees.py')) -for name, graph in trees['graphs'].items(): - (generated_dir / f'{name}.dot').write_text(graph) + + +class ExpressionTree(Graphviz): + """Draw a graph of the expression-tree example, given by its name.""" + required_arguments = 1 + optional_arguments = 0 + + def run(self): + graph = trees['graphs'][self.arguments.pop()] + self.content = StringList(graph.splitlines()) + return super().run() + + +def setup(app): + app.add_directive('expression-tree', ExpressionTree) diff --git a/doc/quick.rst b/doc/quick.rst index abc68a59..a4bf4fb6 100644 --- a/doc/quick.rst +++ b/doc/quick.rst @@ -62,7 +62,7 @@ of `Graphviz `_. For the operator :start-after: # [operator-start] :end-before: # [operator-end] -.. graphviz:: /_generated/operator.dot +.. expression-tree:: operator :caption: Expression tree of :math:`\mathcal{L} u := - \nabla^2 u + u`. :align: center @@ -76,7 +76,7 @@ contains the expanded result: :start-after: # [derivative-start] :end-before: # [derivative-end] -.. graphviz:: /_generated/derivative.dot +.. expression-tree:: derivative :caption: Expression tree of :math:`\partial_x \partial_y (uv)`. :align: center