diff --git a/.gitignore b/.gitignore index d8b3dc5..0645c26 100644 --- a/.gitignore +++ b/.gitignore @@ -197,4 +197,11 @@ Thumbs.db !examples/read_and_plot_mesh/mesh/* !dg_maxwell/tests/mesh/* !dg_maxwell/tests/msh_parser/mesh/* +examples/results !docs/quazar_logo.png +!dg_maxwell/tests/wave_equation_2d/files/* + +*.kate-swp + +*.ipynb_checkpoints* + diff --git a/.travis.yml b/.travis.yml index c10b6b0..b11ca3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -54,4 +54,6 @@ install: script: - python -c "import dg_maxwell" - - pytest --verbose -r P --color=yes + - pytest --verbose -r P --color=yes --cov dg_maxwell +after_success: + - coveralls diff --git a/README.md b/README.md index 6958889..b25a3c5 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.org/QuazarTech/DG_Maxwell.svg?branch=master)](https://travis-ci.org/QuazarTech/DG_Maxwell) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e8733cdbf1454af0ac35ae5b2d017d9f)](https://www.codacy.com/app/aman2official/DG_Maxwell_2?utm_source=github.com&utm_medium=referral&utm_content=QuazarTech/DG_Maxwell&utm_campaign=Badge_Grade) [![Documentation Status](http://readthedocs.org/projects/dg-maxwell/badge/?version=latest)](http://dg-maxwell.readthedocs.io/en/latest/?badge=latest) - +[![Coverage Status](https://coveralls.io/repos/github/QuazarTech/DG_Maxwell/badge.svg?branch=master)](https://coveralls.io/github/QuazarTech/DG_Maxwell?branch=master) ``` _____ _____ __ __ _ _ | __ \ / ____| | \/ | | | | @@ -67,6 +67,8 @@ solving the wave equation in a rectangular domain in the - [arrayfire](http://arrayfire.org) - [gmshtranslate](https://github.com/amanabt/gmshtranslator) - [texlive](https://www.tug.org/texlive/) +- [coveralls](https://pypi.python.org/pypi/coveralls) +- [python-coveralls](https://pypi.python.org/pypi/python-coveralls/) ## Documentation The documenation for the project can be generated using `sphinx` @@ -79,12 +81,12 @@ The unit tests are located in the ### Dependencies - [pytest](https://docs.pytest.org/en/latest/#) - +- [pytest-cov](https://pypi.python.org/pypi/pytest-cov) ### Running Unit Tests To run the unit tests, enter the following commands ``` $ cd path/to/the/DG_Maxwell/repo -$ pytest +$ pytest --verbose -r P --color=yes --cov dg_maxwell ``` * The parameters of the simulation are stored in params.py in the app folder, These can be changed accordingly. diff --git a/dg_maxwell/__init__.py b/dg_maxwell/__init__.py index ac983a9..1841d1d 100644 --- a/dg_maxwell/__init__.py +++ b/dg_maxwell/__init__.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- import arrayfire as af -af.set_backend('cpu') from dg_maxwell import params + +af.set_backend(params.backend) diff --git a/dg_maxwell/isoparam.py b/dg_maxwell/isoparam.py index c16b337..7f4f070 100644 --- a/dg_maxwell/isoparam.py +++ b/dg_maxwell/isoparam.py @@ -2,8 +2,11 @@ # -*- coding: utf-8 -*- import arrayfire as af -af.set_backend('cpu') + from dg_maxwell import utils +from dg_maxwell import params + +af.set_backend(params.backend) def isoparam_1D(x_nodes, xi): ''' @@ -12,14 +15,14 @@ def isoparam_1D(x_nodes, xi): Parameters ---------- - + x_nodes : arrayfire.Array [2 1 1 1] Element nodes. - + xi : arrayfire.Array [N 1 1 1] Value of :math:`\\xi` coordinate for which the corresponding :math:`x` coordinate is to be found. - + Returns ------- x : arrayfire.Array @@ -27,12 +30,12 @@ def isoparam_1D(x_nodes, xi): ''' N_0 = (1 - xi) / 2 N_1 = (1 + xi) / 2 - + N0_x0 = af.broadcast(utils.multiply, N_0, x_nodes[0]) N1_x1 = af.broadcast(utils.multiply, N_1, x_nodes[1]) - + x = N0_x0 + N1_x1 - + return x def isoparam_x_2D(x_nodes, xi, eta): @@ -43,7 +46,7 @@ def isoparam_x_2D(x_nodes, xi, eta): Here :math:`P_i` corresponds to :math:`(\\xi_i, \\eta_i)` coordinates, :math:`i \in \\{0, 1, ..., 7\\}` respectively, where, - + .. math:: (\\xi_0, \\eta_0) &\equiv (-1, 1) \\\\ (\\xi_1, \\eta_1) &\equiv (-1, 0) \\\\ (\\xi_2, \\eta_2) &\equiv (-1, -1) \\\\ @@ -52,12 +55,12 @@ def isoparam_x_2D(x_nodes, xi, eta): (\\xi_5, \\eta_5) &\equiv ( 1, 0) \\\\ (\\xi_6, \\eta_6) &\equiv ( 1, 1) \\\\ (\\xi_7, \\eta_7) &\equiv ( 0, 1) - + Parameters ---------- x_nodes : np.ndarray [8] :math:`x` nodes. - + xi : float :math:`\\xi` coordinate for which :math:`x` has to be found. @@ -68,7 +71,6 @@ def isoparam_x_2D(x_nodes, xi, eta): ------- x : float :math:`x` coordinate corresponding to :math:`(\\xi, \\eta)` coordinate. - ''' N_0 = (-1.0 / 4.0) * (1 - xi) * (1 + eta) * (1 + xi - eta) N_1 = (1.0 / 2.0) * (1 - xi) * (1 - eta**2) @@ -95,12 +97,12 @@ def isoparam_y_2D(y_nodes, xi, eta): ''' This function allows isoparametric mapping of a :math:`2^{nd}` order element with :math:`8` nodes - + .. math:: (P_0, P_1, P_2, P_3, P_4, P_5, P_6, P_7) - + Here :math:`P_i` corresponds to :math:`(\\xi_i, \\eta_i)` coordinates, :math:`i \in \\{0, 1, ..., 7\\}` respectively, where, - + .. math:: (\\xi_0, \\eta_0) &\equiv (-1, 1) \\\\ (\\xi_1, \\eta_1) &\equiv (-1, 0) \\\\ (\\xi_2, \\eta_2) &\equiv (-1, -1) \\\\ @@ -109,12 +111,12 @@ def isoparam_y_2D(y_nodes, xi, eta): (\\xi_5, \\eta_5) &\equiv ( 1, 0) \\\\ (\\xi_6, \\eta_6) &\equiv ( 1, 1) \\\\ (\\xi_7, \\eta_7) &\equiv ( 0, 1) - + Parameters ---------- y_nodes : np.ndarray [8] :math:`y` nodes. - + xi : float :math:`\\xi` coordinate for which :math:`y` has to be found. @@ -125,6 +127,5 @@ def isoparam_y_2D(y_nodes, xi, eta): ------- float :math:`y` coordinate corresponding to :math:`(\\xi, \\eta)` coordinate. - ''' return isoparam_x_2D(y_nodes, xi, eta) diff --git a/dg_maxwell/lagrange.py b/dg_maxwell/lagrange.py index 0bc2185..f648bef 100644 --- a/dg_maxwell/lagrange.py +++ b/dg_maxwell/lagrange.py @@ -4,15 +4,16 @@ import numpy as np from scipy import special as sp import arrayfire as af -af.set_backend('cpu') from dg_maxwell import utils from dg_maxwell import params +af.set_backend(params.backend) + def LGL_points(N): ''' Calculates : math: `N` Legendre-Gauss-Lobatto (LGL) points. - LGL points are the roots of the polynomial + LGL points are the roots of the polynomial :math: `(1 - \\xi ** 2) P_{n - 1}'(\\xi) = 0` @@ -24,13 +25,13 @@ def LGL_points(N): N : int Number of LGL nodes required - + Returns ------- lgl : arrayfire.Array [N 1 1 1] The Lagrange-Gauss-Lobatto Nodes. - + **See:** `document`_ .. _document: https://goo.gl/KdG2Sv @@ -43,18 +44,20 @@ def LGL_points(N): return lgl_points + + def lobatto_weights(n): ''' Calculates and returns the weight function for an index n and points x. - - + + Parameters ---------- n : int Lobatto weights for n quadrature points. - - + + Returns ------- Lobatto_weights : arrayfire.Array @@ -62,22 +65,21 @@ def lobatto_weights(n): the given x points and index. **See:** Gauss-Lobatto weights Wikipedia `link`_. - + .. _link: https://goo.gl/kYqTyK **Examples** - + lobatto_weight_function(4) returns the Gauss-Lobatto weights which are to be used with the Lobatto nodes 'LGL_points(4)' to integrate using Lobatto quadrature. - ''' xi_LGL = LGL_points(n) - + P = sp.legendre(n - 1) - + Lobatto_weights = (2 / (n * (n - 1)) / (P(xi_LGL))**2) Lobatto_weights = af.np_to_af_array(Lobatto_weights) - + return Lobatto_weights @@ -102,14 +104,14 @@ def gauss_nodes(n): The Gauss nodes :math: `x_i`. **See:** A Wikipedia article about the Gauss-Legendre quadrature `here`_ - + .. _here: https://goo.gl/9gqLpe ''' legendre = sp.legendre(n) gauss_nodes = legendre.r gauss_nodes.sort() - + return gauss_nodes @@ -122,51 +124,51 @@ def gaussian_weights(N): Where :math:`x_i` are the Gaussian nodes and :math:`P_{n}(\\xi)` are the Legendre polynomials. - + Parameters ---------- - + N : int Number of Gaussian nodes for which the weight is to be calculated. - - + + Returns ------- - + gaussian_weight : arrayfire.Array [N_quad 1 1 1] The gaussian weights. ''' index = np.arange(N) # Index `i` in `w_i`, varies from 0 to N_quad - 1 - + gaussian_nodes = gauss_nodes(N) gaussian_weight = 2 / ((1 - (gaussian_nodes[index]) ** 2) *\ (np.polyder(sp.legendre(N))(gaussian_nodes[index])) ** 2) gaussian_weight = af.np_to_af_array(gaussian_weight) - + return gaussian_weight -def lagrange_polynomials(x): +def lagrange_polynomials(x): ''' A function to get the analytical form and the coefficients of Lagrange basis polynomials evaluated using x nodes. - + It calculates the Lagrange basis polynomials using the formula: - + .. math:: \\ L_i = \\prod_{m = 0, m \\notin i}^{N - 1}\\frac{(x - x_m)}{(x_i - x_m)} Parameters ---------- - + x : numpy.array [N_LGL 1 1 1] Contains the :math: `x` nodes using which the lagrange basis functions need to be evaluated. Returns ------- - + lagrange_basis_poly : list A list of size `x.shape[0]` containing the analytical form of the Lagrange basis polynomials @@ -181,7 +183,7 @@ def lagrange_polynomials(x): :math:`i^{th}` row of the matrix. **Examples** - + lagrange_polynomials(4)[0] gives the lagrange polynomials obtained using 4 LGL points in poly1d form @@ -191,59 +193,56 @@ def lagrange_polynomials(x): lagrange_polynomials(4)[1][2] gives the coefficients of :math:`L_2(\\xi)` in the form [a^2_3, a^2_2, a^2_1, a^2_0] - ''' X = np.array(x) lagrange_basis_poly = [] lagrange_basis_coeffs = np.zeros([X.shape[0], X.shape[0]]) - + for j in np.arange(X.shape[0]): lagrange_basis_j = np.poly1d([1]) - + for m in np.arange(X.shape[0]): if m != j: lagrange_basis_j *= np.poly1d([1, -X[m]]) \ / (X[j] - X[m]) lagrange_basis_poly.append(lagrange_basis_j) lagrange_basis_coeffs[j] = lagrange_basis_j.c - + return lagrange_basis_poly, lagrange_basis_coeffs def lagrange_function_value(lagrange_coeff_array): ''' - Funtion to calculate the value of lagrange basis functions over LGL nodes. Parameters ---------- - + lagrange_coeff_array : arrayfire.Array[N_LGL N_LGL 1 1] Contains the coefficients of the Lagrange basis polynomials - + Returns ------- - + L_i : arrayfire.Array [N 1 1 1] The value of lagrange basis functions calculated over the LGL nodes. **Examples** - + lagrange_function_value(4) gives the value of the four Lagrange basis functions evaluated over 4 LGL points arranged in a 2D array where Lagrange polynomials evaluated at the same LGL point are in the same column. - + Also the value lagrange basis functions at LGL points has the property, - + L_i(xi_k) = 0 for i != k = 1 for i = k - + It follows then that lagrange_function_value returns an identity matrix. - ''' xi_tile = af.transpose(af.tile(params.xi_LGL, 1, params.N_LGL)) power = af.flip(af.range(params.N_LGL)) @@ -263,64 +262,62 @@ def integrate(integrand_coeffs): quadrature points. The number of quadrature points and the quadrature scheme are set in params.py module. - + Parameters ---------- - + integrand_coeffs : arrayfire.Array [M N 1 1] The coefficients of M number of polynomials of order N arranged in a 2D array. Returns ------- - + Integral : arrayfire.Array [M 1 1 1] The value of the definite integration performed using the specified quadrature method for M polynomials. - ''' - - integrand = integrand_coeffs if (params.scheme == 'gauss_quadrature'): - #print('gauss_quad') gaussian_nodes = params.gauss_points Gauss_weights = params.gauss_weights - nodes_tile = af.transpose(af.tile(gaussian_nodes, 1, integrand.shape[1])) + nodes_tile = af.transpose(af.tile(gaussian_nodes, + 1, integrand.shape[1])) power = af.flip(af.range(integrand.shape[1])) - nodes_power = af.broadcast(utils.power, nodes_tile, power) - weights_tile = af.transpose(af.tile(Gauss_weights, 1, integrand.shape[1])) + nodes_power = af.broadcast(utils.power, + nodes_tile, power) + weights_tile = af.transpose(af.tile(Gauss_weights, 1, + integrand.shape[1])) nodes_weight = nodes_power * weights_tile value_at_gauss_nodes = af.matmul(integrand, nodes_weight) integral = af.sum(value_at_gauss_nodes, 1) if (params.scheme == 'lobatto_quadrature'): - #print('lob_quad') lobatto_nodes = params.lobatto_quadrature_nodes Lobatto_weights = params.lobatto_weights_quadrature - nodes_tile = af.transpose(af.tile(lobatto_nodes, 1, integrand.shape[1])) + nodes_tile = af.transpose(af.tile(lobatto_nodes, 1, + integrand.shape[1])) power = af.flip(af.range(integrand.shape[1])) nodes_power = af.broadcast(utils.power, nodes_tile, power) - weights_tile = af.transpose(af.tile(Lobatto_weights, 1, integrand.shape[1])) + weights_tile = af.transpose(af.tile(Lobatto_weights, 1, + integrand.shape[1])) nodes_weight = nodes_power * weights_tile value_at_lobatto_nodes = af.matmul(integrand, nodes_weight) integral = af.sum(value_at_lobatto_nodes, 1) - return integral def lagrange_interpolation_u(u): ''' - Calculates the coefficients of the Lagrange interpolation using the value of u at the mapped LGL points in the domain. @@ -342,14 +339,15 @@ def lagrange_interpolation_u(u): The coefficients of the polynomials obtained by Lagrange interpolation. Each polynomial is of order N_LGL - 1. - ''' - lagrange_coeffs_tile = af.tile(params.lagrange_coeffs, 1, 1,\ - params.N_Elements) + lagrange_coeffs_tile = af.tile(params.lagrange_coeffs, 1, 1, + params.N_Elements) reordered_u = af.reorder(u, 0, 2, 1) - lagrange_interpolated_coeffs = af.sum(af.broadcast(utils.multiply,\ - reordered_u, lagrange_coeffs_tile), 0) + lagrange_interpolated_coeffs = af.sum(af.broadcast(utils.multiply, + reordered_u, + lagrange_coeffs_tile), + 0) return lagrange_interpolated_coeffs @@ -368,11 +366,39 @@ def L1_norm(u): ------- L1_norm : float64 The L1 norm of error. - ''' - interpolated_coeffs = af.reorder(lagrange_interpolation_u(\ - u), 2, 1, 0) + interpolated_coeffs = af.reorder(lagrange_interpolation_u(u), + 2, 1, 0) L1_norm = af.sum(integrate(interpolated_coeffs)) - + return L1_norm + + + +def Li_basis_value(L_basis, i, xi): + ''' + Finds the value of the :math:`i^{th}` Lagrange basis polynomial + at the given :math:`\\xi` coordinates. + + Parameters + ---------- + L_basis : af.Array [N_LGL N_LGL 1 1] + Lagrange basis polynomial coefficient array + + i : af.Array [N 1 1 1] + Index of the Lagrange basis polynomials + to be evaluated. + + xi : af.Array [N 1 1 1] + :math:`\\xi` coordinates at which the :math:`i^{th}` Lagrange + basis polynomial is to be evaluated. + + Returns + ------- + af.Array [i.shape[0] xi.shape[0] 1 1] + Evaluated :math:`i^{th}` lagrange basis polynomials at given + :math:`\\xi` coordinates + ''' + + return utils.polyval_1d(L_basis[i], xi) diff --git a/dg_maxwell/msh_parser.py b/dg_maxwell/msh_parser.py index 00c74ae..57519e6 100644 --- a/dg_maxwell/msh_parser.py +++ b/dg_maxwell/msh_parser.py @@ -5,11 +5,13 @@ import matplotlib.lines as lines import gmshtranslator.gmshtranslator as gmsh import arrayfire as af -af.set_backend('cpu') from dg_maxwell import msh_parser from dg_maxwell import isoparam from dg_maxwell import utils +from dg_maxwell import params + +af.set_backend(params.backend) def read_order_2_msh(msh_file): ''' @@ -20,10 +22,10 @@ def read_order_2_msh(msh_file): msh_file : str **.msh** file to be parsed - + Returns ------- - + tuple(np.ndarray, np.ndarray) Tuple of Nodes and Elements respectively. Nodes is a :math:`N \\times 2` array, where, :math:`N` is the @@ -33,47 +35,47 @@ def read_order_2_msh(msh_file): of all the nodes which defines each element. A tag of a node is the array index of a node. ''' - + msh_handler = gmsh.gmshTranslator(msh_file) - + nodes = [] elements = [] - + def is_node(tag, x, y, z, physgroups): return True - + def save_node (tag, x, y, z): nodes.append([x, y]) return - + def is_9_node_quadrangle (eletag, eletype, physgrp, nodes): return eletype == msh_handler.quadrangle_9_node def save_element (eletag, eletype, physgrp, node_tags): - + temp_nodes = node_tags.copy() for j, k in zip(np.arange (0,8,2), np.arange(4)): node_tags[j] = temp_nodes[k] node_tags[j + 1] = temp_nodes[k + 4] - + # The node tag starts from 1, but now they will start from 0 # because the nodes array indices represent the node tag. # Therefore (node_tags - 1) instead of (node_tags) elements.append(node_tags - 1) - + msh_handler.add_nodes_rule (is_node, save_node) msh_handler.parse() - + msh_handler.clear_rules() msh_handler.add_elements_rule (is_9_node_quadrangle, save_element) msh_handler.parse() - + nodes = np.array(nodes) - elements = np.array(elements) - + elements = np.array(elements, dtype = np.int) + return nodes, elements @@ -83,38 +85,38 @@ def plot_element_grid(x_nodes, y_nodes, xi_LGL, eta_LGL, axes_handler, Uses the :math:`\\xi_{LGL}` and :math:`\\eta_{LGL}` points to plot a grid in the :math:`x-y` plane using the points corresponding to the :math:`(\\xi_{LGL}, \\eta_{LGL})` points. - + **Usage** - + .. code-block:: python :linenos: - + # Plots a grid for an element using 8 LGL points - + N_LGL = 8 xi_LGL = lagrange.LGL_points(N) eta_LGL = lagrange.LGL_points(N) - + # 8 x_nodes and y_nodes of an element x_nodes = [0., 0., 0., 0.5, 1., 1., 1., 0.5] y_nodes = [1., 0.5, 0., 0., 0., 0.5, 1., 1.] - + axes_handler = pyplot.axes() msh_parser.plot_element_grid(x_nodes, y_nodes, xi_LGL, eta_LGL, axes_handler) - + pyplot.title(r'Gird plot of an element.') pyplot.xlabel(r'$x$') pyplot.ylabel(r'$y$') - + pyplot.xlim(-.1, 1.1) pyplot.ylim(-.1, 1.1) - + pyplot.show() - + Parameters ---------- - + x_nodes : np.array [8] x_nodes of the element. @@ -151,8 +153,12 @@ def plot_element_grid(x_nodes, y_nodes, xi_LGL, eta_LGL, axes_handler, for m in np.arange (N): for n in np.arange (N): - xy_map[m][n][0] = isoparam.isoparam_x_2D(x_nodes, xi_LGL[m], eta_LGL[n]) - xy_map[m][n][1] = isoparam.isoparam_y_2D(y_nodes, xi_LGL[m], eta_LGL[n]) + xy_map[m][n][0] = isoparam.isoparam_x_2D(x_nodes, + xi_LGL[m], + eta_LGL[n]) + xy_map[m][n][1] = isoparam.isoparam_y_2D(y_nodes, + xi_LGL[m], + eta_LGL[n]) array3d = xy_map.copy() N = array3d.shape[0] @@ -161,14 +167,18 @@ def plot_element_grid(x_nodes, y_nodes, xi_LGL, eta_LGL, axes_handler, for n in np.arange (1, N): line = [array3d[m][n].tolist(), array3d[m][n-1].tolist()] (line1_xs, line1_ys) = zip(*line) - axes_handler.add_line(lines.Line2D(line1_xs, line1_ys, linewidth=grid_width, color=grid_color)) + axes_handler.add_line(lines.Line2D(line1_xs, line1_ys, + linewidth = grid_width, + color = grid_color)) #Plot the horizontal lines for n in np.arange (0, N): for m in np.arange (1, N): line = [array3d[m][n].tolist(), array3d[m-1][n].tolist()] (line1_xs, line1_ys) = zip(*line) - axes_handler.add_line(lines.Line2D(line1_xs, line1_ys, linewidth=grid_width, color=grid_color)) + axes_handler.add_line(lines.Line2D(line1_xs, line1_ys, + linewidth = grid_width, + color=grid_color)) return @@ -177,93 +187,96 @@ def plot_element_boundary(x_nodes, y_nodes, axes_handler, grid_width = 2., grid_color = 'blue'): ''' Plots the boundary of a given :math:`2^{nd}` order element. - + Parameters ---------- - + x_nodes : np.ndarray [8] :math:`x` nodes of the element. - + y_nodes : np.ndarray [8] :math:`y` nodes of the element. - + axes_handler : matplotlib.axes.Axes The plot handler being used to plot the element grid. - You may generate it by calling the function pyplot.axes() - + You may generate it by calling the function + ``pyplot.axes()``. + grid_width : float Grid line width. - + grid_color : str Grid line color. Returns ------- - - None + None ''' - + xi = np.linspace(-1, 1, 20) eta = np.linspace(-1, 1, 20) - + left_edge = np.zeros([xi.size, 2]) bottom_edge = np.zeros([xi.size, 2]) right_edge = np.zeros([xi.size, 2]) top_edge = np.zeros([xi.size, 2]) - + left_edge[:, 0] = isoparam.isoparam_x_2D(x_nodes, -1., eta) bottom_edge[:, 0] = isoparam.isoparam_x_2D(x_nodes, xi, -1) right_edge[:, 0] = isoparam.isoparam_x_2D(x_nodes, 1., eta) top_edge[:, 0] = isoparam.isoparam_x_2D(x_nodes, xi, 1.) - + left_edge[:, 1] = isoparam.isoparam_y_2D(y_nodes, -1., eta) bottom_edge[:, 1] = isoparam.isoparam_y_2D(y_nodes, xi, -1) right_edge[:, 1] = isoparam.isoparam_y_2D(y_nodes, 1., eta) top_edge[:, 1] = isoparam.isoparam_y_2D(y_nodes, xi, 1.) - + # Plot edges utils.plot_line(left_edge, axes_handler, grid_width, grid_color) utils.plot_line(bottom_edge, axes_handler, grid_width, grid_color) utils.plot_line(right_edge, axes_handler, grid_width, grid_color) utils.plot_line(top_edge, axes_handler, grid_width, grid_color) - + return + + def plot_mesh_grid(nodes, elements, xi_LGL, eta_LGL, axes_handler): ''' Plots the mesh grid. - + Parameters ---------- - + nodes : np.ndarray [N, 2] - Array of nodes in the mesh. First column and the second column are - the :math:`x` and :math:`y` coordinates respectivily. - + Array of nodes in the mesh. First column and the second + column are the :math:`x` and :math:`y` coordinates + respectivily. + elements : np.ndarray [N_e, 8] Array of elements. - + xi_LGL : np.array [N_LGL] LGL points on the :math:`\\xi` axis - + eta_LGL : np.array [N_LGL] LGL points on the :math:`\\eta` axis - + axes_handler : matplotlib.axes.Axes The plot handler being used to plot the element grid. You may generate it by calling the function pyplot.axes() Returns ------- - + None ''' for element in elements: msh_parser.plot_element_grid(nodes[element, 0], nodes[element, 1], - xi_LGL, eta_LGL, axes_handler) + xi_LGL, eta_LGL, axes_handler) msh_parser.plot_element_boundary(nodes[element, 0], nodes[element, 1], axes_handler) - + return diff --git a/dg_maxwell/params.py b/dg_maxwell/params.py index 0dffa00..7ed1287 100644 --- a/dg_maxwell/params.py +++ b/dg_maxwell/params.py @@ -2,20 +2,20 @@ # -*- coding: utf-8 -*- import numpy as np + import arrayfire as af -af.set_backend('cpu') +backend = 'cpu' +af.set_backend(backend) from dg_maxwell import lagrange from dg_maxwell import utils -from dg_maxwell import isoparam from dg_maxwell import wave_equation - # The domain of the function. x_nodes = af.np_to_af_array(np.array([-1., 1.])) # The number of LGL points into which an element is split. -N_LGL = 8 +N_LGL = 4 # Number of elements the domain is to be divided into. N_Elements = 10 @@ -33,7 +33,7 @@ # Wave speed. c = 1 -# The total time for which the wave is to be evolved by the simulation. +# The total time for which the wave is to be evolved by the simulation. total_time = 2.01 # The c_lax to be used in the Lax-Friedrichs flux. diff --git a/dg_maxwell/tests/isoparam/test_isoparam.py b/dg_maxwell/tests/isoparam/test_isoparam.py index beef0bd..bf71fd8 100644 --- a/dg_maxwell/tests/isoparam/test_isoparam.py +++ b/dg_maxwell/tests/isoparam/test_isoparam.py @@ -6,18 +6,20 @@ sys.path.insert(0, os.path.abspath('./')) import arrayfire as af -af.set_backend('cpu') import numpy as np from dg_maxwell import isoparam +from dg_maxwell import params + +af.set_backend(params.backend) def test_isoparam_x(): ''' - This test tests the function isoparam_x function. It uses a list of + This test tests the function ``isoparam_x`` function. It uses a list of analytically calculated values at this sage worksheet `isoparam.sagews`_ for an element at :math:`5` random :math:`(\\xi, \\eta)` coordinates and finds the :math:`L_1` norm of the :math:`x` coordinates got by the - isoparam_x function. + ``isoparam_x`` function. .. _isoparam.sagews: https://goo.gl/3EP3Pg diff --git a/dg_maxwell/tests/lagrange/files/Li_value.csv b/dg_maxwell/tests/lagrange/files/Li_value.csv new file mode 100644 index 0000000..c8199a2 --- /dev/null +++ b/dg_maxwell/tests/lagrange/files/Li_value.csv @@ -0,0 +1,3 @@ +1.00000000000000, -0.132053542476430, 0.0258385534173595, 0.0466392318246838, -0.0295830894993247, -0.0236664715994598, 0.0233196159123419, 0.00738244383353131, -0.0165066928095537, 0.000000000000000 +0.000000000000000, 0.758576206458160, -0.0882186919073414, -0.140270136955740, 0.0839718544026725, 0.0649858563619554, -0.0626703672768669, -0.0195428257173647, 0.0432111816452180, -0.000000000000000 +-0.000000000000000, 0.487391303737210, 0.981920359634066, 0.371926962822827, -0.169103048286541, -0.115634278542167, 0.103881206003751, 0.0309356866966560, -0.0662242146131606, 0.000000000000000 diff --git a/dg_maxwell/tests/lagrange/test_lagrange.py b/dg_maxwell/tests/lagrange/test_lagrange.py new file mode 100644 index 0000000..2876750 --- /dev/null +++ b/dg_maxwell/tests/lagrange/test_lagrange.py @@ -0,0 +1,39 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- + +import numpy as np +from scipy import special as sp +import arrayfire as af + +from dg_maxwell import utils +from dg_maxwell import params +from dg_maxwell import lagrange + +af.set_backend(params.backend) + +def test_Li_basis_value(): + ''' + This test compares the output of the lagrange basis value calculated by the + function ``Li_basis_value`` to the analytical value of the lagrange + polynomials created using the same LGL points. + The analytical values were calculated in this sage worksheet_ + + .. _worksheet: https://goo.gl/ADyA3U + ''' + + threshold = 1e-11 + + Li_value_ref = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/lagrange/files/Li_value.csv')) + + N_LGL = 8 + xi_LGL = lagrange.LGL_points(N_LGL) + L_basis_poly1d, L_basis_af = lagrange.lagrange_polynomials(xi_LGL) + L_basis_af = af.np_to_af_array(L_basis_af) + + Li_indexes = af.np_to_af_array(np.arange(3, dtype = np.int32)) + xi = af.np_to_af_array(np.linspace(-1., 1, 10)) + + Li_value = lagrange.Li_basis_value(L_basis_af, Li_indexes, xi) + + assert af.all_true(af.abs(Li_value - Li_value_ref) < threshold) diff --git a/dg_maxwell/tests/msh_parser/test_msh_parser.py b/dg_maxwell/tests/msh_parser/test_msh_parser.py index c77deb7..2b4c13c 100644 --- a/dg_maxwell/tests/msh_parser/test_msh_parser.py +++ b/dg_maxwell/tests/msh_parser/test_msh_parser.py @@ -6,16 +6,17 @@ sys.path.insert(0, os.path.abspath('./')) import arrayfire as af -af.set_backend('cpu') - import numpy as np from dg_maxwell import msh_parser +from dg_maxwell import params + +af.set_backend(params.backend) def test_read_order_2_msh(): ''' This test reads the mesh - :download:`rectangular.msh <./2d_solver/tests/msh_parser/mesh/rectangular.msh>` + :download:`rectangular.msh <../dg_maxwell/tests/msh_parser/mesh/rectangular.msh>` and stores them in the variables nodes and elements. The variables nodes and elements are compared against the test_nodes and test_elements respectively, which are created by manually reading the mesh file. diff --git a/dg_maxwell/tests/test_waveEqn.py b/dg_maxwell/tests/test_waveEqn.py index fca055b..702e786 100644 --- a/dg_maxwell/tests/test_waveEqn.py +++ b/dg_maxwell/tests/test_waveEqn.py @@ -7,7 +7,7 @@ import numpy as np import arrayfire as af -af.set_backend('cpu') + from dg_maxwell import params from dg_maxwell import lagrange @@ -15,6 +15,8 @@ from dg_maxwell import isoparam from dg_maxwell import utils +af.set_backend(params.backend) + # This test uses the initial paramters N_LGL = 8, N_Elements = 10 and c = 1. diff --git a/dg_maxwell/tests/utils/__init__.py b/dg_maxwell/tests/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dg_maxwell/tests/utils/test_utils.py b/dg_maxwell/tests/utils/test_utils.py new file mode 100644 index 0000000..6dab4d7 --- /dev/null +++ b/dg_maxwell/tests/utils/test_utils.py @@ -0,0 +1,171 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- + +import numpy as np +import arrayfire as af + +from dg_maxwell import params +from dg_maxwell import utils +from dg_maxwell import lagrange + +af.set_backend(params.backend) + +def test_matmul_3D(): + ''' + ''' + M = 3 + N = 2 + P = 4 + Q = 2 + + a = af.range(M * N * Q, dtype = af.Dtype.u32) + b = af.range(N * P * Q, dtype = af.Dtype.u32) + + a = af.moddims(a, d0 = M, d1 = N, d2 = Q) + b = af.moddims(b, d0 = N, d1 = P, d2 = Q) + + a_init = a + b_init = b + + ref_a_0 = np.matmul(np.array(a_init[:, :, 0]), + np.array(b_init[:, :, 0])) + + ref_a_1 = np.matmul(np.array(a_init[:, :, 1]), + np.array(b_init[:, :, 1])) + + test_matmul = np.array(utils.matmul_3D(a, b)) + + diff_mat_0 = np.abs(test_matmul[:, :, 0] - ref_a_0) + diff_mat_1 = np.abs(test_matmul[:, :, 1] - ref_a_1) + + assert np.all(diff_mat_0 == 0) and np.all(diff_mat_1 == 0) + + + +def test_poly1d_prod(): + ''' + Checks the product of the polynomials of different degrees using the + poly1d_product function and compares it to the analytically calculated + product coefficients. + ''' + + N = 3 + + N_a = 3 + poly_a = af.range(N * N_a, dtype = af.Dtype.u32) + poly_a = af.moddims(poly_a, d0 = N, d1 = N_a) + + N_b = 2 + poly_b = af.range(N * N_b, dtype = af.Dtype.u32) + poly_b = af.moddims(poly_b, d0 = N, d1 = N_b) + + ref_poly = af.np_to_af_array(np.array([[0., 0., 9., 18.], + [1., 8., 23., 28.], + [4., 20., 41., 40.]])) + + test_poly1d_prod = utils.poly1d_product(poly_a, poly_b) + test_poly1d_prod_commutative = utils.poly1d_product(poly_b, poly_a) + + diff = af.abs(test_poly1d_prod - ref_poly) + diff_commutative = af.abs(test_poly1d_prod_commutative - ref_poly) + + assert af.all_true(diff == 0.) and af.all_true(diff_commutative == 0.) + + + +def test_integrate_1d(): + ''' + Tests the ``integrate_1d`` by comparing the integral agains the + analytically calculated integral. The polynomials to be integrated + are all the Lagrange polynomials obtained for the LGL points. + + The analytical integral is calculated in this `sage worksheet`_ + + .. _sage worksheet: https://goo.gl/1uYyNJ + ''' + + threshold = 1e-12 + + N_LGL = 8 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + _, Li_xi = lagrange.lagrange_polynomials(xi_LGL) + _, Lj_eta = lagrange.lagrange_polynomials(eta_LGL) + + Li_xi = af.np_to_af_array(Li_xi) + Lp_xi = Li_xi.copy() + + Li_Lp = utils.poly1d_product(Li_xi, Lp_xi) + + test_integral_gauss = utils.integrate_1d(Li_Lp, order = 9, + scheme = 'gauss') + + test_integral_lobatto = utils.integrate_1d(Li_Lp, order = N_LGL + 1, + scheme = 'lobatto') + + + ref_integral = af.np_to_af_array(np.array([0.0333333333333, + 0.196657278667, + 0.318381179651, + 0.384961541681, + 0.384961541681, + 0.318381179651, + 0.196657278667, + 0.0333333333333])) + + diff_gauss = af.abs(ref_integral - test_integral_gauss) + diff_lobatto = af.abs(ref_integral - test_integral_lobatto) + + assert af.all_true(diff_gauss < threshold) and af.all_true(diff_lobatto < threshold) + + +def test_integrate_2d(): + ''' + Tests the ``integrate_2d`` by comparing the integral agains the + analytically calculated integral. The integral to be calculated is + + .. math:: \\iint L_i(\\xi) L_i(\\eta) L_i(\\xi) L_i(\\eta) d\\xi d\\eta + + where :math:`L_i` are the Lagrange polynomials with + :math:`i \in \{0 ... 7\}`. The analytical integral is calculated + in this `sagews`_ + + .. _sagews: https://goo.gl/KziEMs + ''' + threshold = 1e-12 + + N_LGL = 8 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + _, Li_xi = lagrange.lagrange_polynomials(xi_LGL) + _, Lj_eta = lagrange.lagrange_polynomials(eta_LGL) + + Li_xi = af.np_to_af_array(Li_xi) + Lj_eta = af.np_to_af_array(Lj_eta) + Lp_xi = Li_xi.copy() + Lq_eta = Lj_eta.copy() + + Li_Lp = utils.poly1d_product(Li_xi, Lp_xi) + Lj_Lq = utils.poly1d_product(Lj_eta, Lq_eta) + + test_gauss_integral_Li_Lp_Lj_Lq = utils.integrate_2d(Li_Lp, Lj_Lq, + order = 9, + scheme = 'gauss') + + test_lobatto_integral_Li_Lp_Lj_Lq = utils.integrate_2d(Li_Lp, Lj_Lq, + order = N_LGL + 1, + scheme = 'lobatto') + + ref_integral = af.np_to_af_array(np.array([0.00111111111111037, + 0.0386740852528278, + 0.101366575556200, + 0.148195388573733, + 0.148195388573733, + 0.101366575556200, + 0.0386740852528278, + 0.00111111111111037])) + + diff_gauss = af.abs(test_gauss_integral_Li_Lp_Lj_Lq - ref_integral) + diff_lobatto = af.abs(test_lobatto_integral_Li_Lp_Lj_Lq - ref_integral) + + assert af.all_true(diff_gauss < threshold) and af.all_true(diff_lobatto < threshold) \ No newline at end of file diff --git a/dg_maxwell/tests/wave_equation_2d/__init__.py b/dg_maxwell/tests/wave_equation_2d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/dg_maxwell/tests/wave_equation_2d/files/A_matrix_ref.csv b/dg_maxwell/tests/wave_equation_2d/files/A_matrix_ref.csv new file mode 100644 index 0000000..feba15f --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/A_matrix_ref.csv @@ -0,0 +1,16 @@ +2.040816326530589878e-02,7.605673392856429973e-03,-7.605673392856370126e-03,3.401360544217670034e-03,7.605673392856350176e-03,2.834467120181410199e-03,-2.834467120181379841e-03,1.267612232142729944e-03,-7.605673392856359717e-03,-2.834467120181420174e-03,2.834467120181389816e-03,-1.267612232142729944e-03,3.401360544217660060e-03,1.267612232142749894e-03,-1.267612232142729944e-03,5.668934240362800015e-04 +7.605673392856429973e-03,1.020408163265300039e-01,1.700680272108820099e-02,-7.605673392856339768e-03,2.834467120181410199e-03,3.802836696428189833e-02,6.338061160713589874e-03,-2.834467120181379841e-03,-2.834467120181420174e-03,-3.802836696428200242e-02,-6.338061160713609823e-03,2.834467120181379841e-03,1.267612232142749894e-03,1.700680272108839874e-02,2.834467120181379841e-03,-1.267612232142729944e-03 +-7.605673392856370126e-03,1.700680272108820099e-02,1.020408163265300039e-01,7.605673392856359717e-03,-2.834467120181379841e-03,6.338061160713589874e-03,3.802836696428189833e-02,2.834467120181379841e-03,2.834467120181389816e-03,-6.338061160713609823e-03,-3.802836696428200242e-02,-2.834467120181389816e-03,-1.267612232142729944e-03,2.834467120181379841e-03,1.700680272108839874e-02,1.267612232142729944e-03 +3.401360544217670034e-03,-7.605673392856339768e-03,7.605673392856359717e-03,2.040816326530589878e-02,1.267612232142729944e-03,-2.834467120181379841e-03,2.834467120181379841e-03,7.605673392856350176e-03,-1.267612232142729944e-03,2.834467120181379841e-03,-2.834467120181389816e-03,-7.605673392856359717e-03,5.668934240362800015e-04,-1.267612232142729944e-03,1.267612232142729944e-03,3.401360544217660060e-03 +7.605673392856350176e-03,2.834467120181410199e-03,-2.834467120181379841e-03,1.267612232142729944e-03,1.020408163265300039e-01,3.802836696428189833e-02,-3.802836696428200242e-02,1.700680272108839874e-02,1.700680272108820099e-02,6.338061160713649722e-03,-6.338061160713600282e-03,2.834467120181369867e-03,-7.605673392856359717e-03,-2.834467120181420174e-03,2.834467120181389816e-03,-1.267612232142729944e-03 +2.834467120181410199e-03,3.802836696428189833e-02,6.338061160713589874e-03,-2.834467120181379841e-03,3.802836696428189833e-02,5.102040816326529615e-01,8.503401360544129983e-02,-3.802836696428200242e-02,6.338061160713649722e-03,8.503401360544120269e-02,1.417233560090670058e-02,-6.338061160713589874e-03,-2.834467120181420174e-03,-3.802836696428200242e-02,-6.338061160713609823e-03,2.834467120181379841e-03 +-2.834467120181379841e-03,6.338061160713589874e-03,3.802836696428189833e-02,2.834467120181379841e-03,-3.802836696428200242e-02,8.503401360544129983e-02,5.102040816326529615e-01,3.802836696428189833e-02,-6.338061160713600282e-03,1.417233560090670058e-02,8.503401360544120269e-02,6.338061160713589874e-03,2.834467120181389816e-03,-6.338061160713609823e-03,-3.802836696428200242e-02,-2.834467120181389816e-03 +1.267612232142729944e-03,-2.834467120181379841e-03,2.834467120181379841e-03,7.605673392856350176e-03,1.700680272108839874e-02,-3.802836696428200242e-02,3.802836696428189833e-02,1.020408163265300039e-01,2.834467120181369867e-03,-6.338061160713589874e-03,6.338061160713589874e-03,1.700680272108820099e-02,-1.267612232142729944e-03,2.834467120181379841e-03,-2.834467120181389816e-03,-7.605673392856359717e-03 +-7.605673392856359717e-03,-2.834467120181420174e-03,2.834467120181389816e-03,-1.267612232142729944e-03,1.700680272108820099e-02,6.338061160713649722e-03,-6.338061160713600282e-03,2.834467120181369867e-03,1.020408163265300039e-01,3.802836696428189833e-02,-3.802836696428200242e-02,1.700680272108839874e-02,7.605673392856350176e-03,2.834467120181410199e-03,-2.834467120181379841e-03,1.267612232142729944e-03 +-2.834467120181420174e-03,-3.802836696428200242e-02,-6.338061160713609823e-03,2.834467120181379841e-03,6.338061160713649722e-03,8.503401360544120269e-02,1.417233560090670058e-02,-6.338061160713589874e-03,3.802836696428189833e-02,5.102040816326529615e-01,8.503401360544129983e-02,-3.802836696428200242e-02,2.834467120181410199e-03,3.802836696428189833e-02,6.338061160713589874e-03,-2.834467120181379841e-03 +2.834467120181389816e-03,-6.338061160713609823e-03,-3.802836696428200242e-02,-2.834467120181389816e-03,-6.338061160713600282e-03,1.417233560090670058e-02,8.503401360544120269e-02,6.338061160713589874e-03,-3.802836696428200242e-02,8.503401360544129983e-02,5.102040816326529615e-01,3.802836696428189833e-02,-2.834467120181379841e-03,6.338061160713589874e-03,3.802836696428189833e-02,2.834467120181379841e-03 +-1.267612232142729944e-03,2.834467120181379841e-03,-2.834467120181389816e-03,-7.605673392856359717e-03,2.834467120181369867e-03,-6.338061160713589874e-03,6.338061160713589874e-03,1.700680272108820099e-02,1.700680272108839874e-02,-3.802836696428200242e-02,3.802836696428189833e-02,1.020408163265300039e-01,1.267612232142729944e-03,-2.834467120181379841e-03,2.834467120181379841e-03,7.605673392856350176e-03 +3.401360544217660060e-03,1.267612232142749894e-03,-1.267612232142729944e-03,5.668934240362800015e-04,-7.605673392856359717e-03,-2.834467120181420174e-03,2.834467120181389816e-03,-1.267612232142729944e-03,7.605673392856350176e-03,2.834467120181410199e-03,-2.834467120181379841e-03,1.267612232142729944e-03,2.040816326530589878e-02,7.605673392856429973e-03,-7.605673392856370126e-03,3.401360544217670034e-03 +1.267612232142749894e-03,1.700680272108839874e-02,2.834467120181379841e-03,-1.267612232142729944e-03,-2.834467120181420174e-03,-3.802836696428200242e-02,-6.338061160713609823e-03,2.834467120181379841e-03,2.834467120181410199e-03,3.802836696428189833e-02,6.338061160713589874e-03,-2.834467120181379841e-03,7.605673392856429973e-03,1.020408163265300039e-01,1.700680272108820099e-02,-7.605673392856339768e-03 +-1.267612232142729944e-03,2.834467120181379841e-03,1.700680272108839874e-02,1.267612232142729944e-03,2.834467120181389816e-03,-6.338061160713609823e-03,-3.802836696428200242e-02,-2.834467120181389816e-03,-2.834467120181379841e-03,6.338061160713589874e-03,3.802836696428189833e-02,2.834467120181379841e-03,-7.605673392856370126e-03,1.700680272108820099e-02,1.020408163265300039e-01,7.605673392856359717e-03 +5.668934240362800015e-04,-1.267612232142729944e-03,1.267612232142729944e-03,3.401360544217660060e-03,-1.267612232142729944e-03,2.834467120181379841e-03,-2.834467120181389816e-03,-7.605673392856359717e-03,1.267612232142729944e-03,-2.834467120181379841e-03,2.834467120181379841e-03,7.605673392856350176e-03,3.401360544217670034e-03,-7.605673392856339768e-03,7.605673392856359717e-03,2.040816326530589878e-02 diff --git a/dg_maxwell/tests/wave_equation_2d/files/circle.msh b/dg_maxwell/tests/wave_equation_2d/files/circle.msh new file mode 100644 index 0000000..a4ce3cc --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/circle.msh @@ -0,0 +1,59 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +25 +1 -0 0 0 +2 -0 3 0 +3 -0 1 0 +4 -1 0 0 +5 -3 0 0 +6 -0 -1 0 +7 -0 -3 0 +8 1 -0 0 +9 3 -0 0 +10 -0.7071067811853416 0.7071067811877534 0 +11 -2.121320343556453 2.121320343562832 0 +12 -2.121320343562832 -2.121320343556453 0 +13 -0.7071067811877534 -0.7071067811853416 0 +14 2.121320343556453 -2.121320343562832 0 +15 0.7071067811853416 -0.7071067811877534 0 +16 2.121320343562832 2.121320343556453 0 +17 0.7071067811877534 0.7071067811853416 0 +18 0 1.999999999999303 0 +19 -1.999999999999303 0 0 +20 0 -1.999999999999303 0 +21 1.999999999999303 0 0 +22 -1.414213562370549 1.414213562374944 0 +23 -1.414213562374944 -1.414213562370549 0 +24 1.414213562370549 -1.414213562374944 0 +25 1.414213562374944 1.414213562370549 0 +$EndNodes +$Elements +25 +1 15 2 0 1 1 +2 15 2 0 2 2 +3 15 2 0 3 3 +4 15 2 0 4 4 +5 15 2 0 5 5 +6 15 2 0 6 6 +7 15 2 0 7 7 +8 15 2 0 8 8 +9 15 2 0 9 9 +10 8 2 0 1 3 4 10 +11 8 2 0 2 2 5 11 +12 8 2 0 3 5 7 12 +13 8 2 0 4 4 6 13 +14 8 2 0 5 7 9 14 +15 8 2 0 6 6 8 15 +16 8 2 0 7 9 2 16 +17 8 2 0 8 8 3 17 +18 8 2 0 9 3 2 18 +19 8 2 0 10 4 5 19 +20 8 2 0 11 6 7 20 +21 8 2 0 12 8 9 21 +22 10 2 0 14 2 5 4 3 11 19 10 18 22 +23 10 2 0 16 4 5 7 6 19 12 20 13 23 +24 10 2 0 18 6 7 9 8 20 14 21 15 24 +25 10 2 0 20 8 3 2 9 17 18 16 21 25 +$EndElements diff --git a/dg_maxwell/tests/wave_equation_2d/files/dx_deta_data.csv b/dg_maxwell/tests/wave_equation_2d/files/dx_deta_data.csv new file mode 100644 index 0000000..84586f2 --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/dx_deta_data.csv @@ -0,0 +1,16 @@ +2.573593199999999470e-01,2.547486713472417730e-01,2.487120923148129492e-01,2.395164516495871254e-01,2.275389840692281229e-01,2.132701872702645329e-01,1.972942686248270183e-01,1.802652999817789814e-01,1.628804600182205409e-01,1.458514913751732811e-01,1.298755727297351004e-01,1.156067759307718434e-01,1.036293083504124524e-01,9.443366768518662857e-02,8.839708865275781868e-02,8.578643999999990832e-02 +2.951752990417260136e-01,2.921810457278344320e-01,2.852574611415602535e-01,2.747106273092423390e-01,2.609732092324651420e-01,2.446077775780000074e-01,2.262843822425076867e-01,2.067532033771612987e-01,1.868138620118065529e-01,1.672826831464607478e-01,1.489592878109678997e-01,1.325938561565025708e-01,1.188564380797250131e-01,1.083096042474078757e-01,1.013860196611326703e-01,9.839176634724178250e-02 +3.826168419444393454e-01,3.787355830767026310e-01,3.697609836507477210e-01,3.560897982008319751e-01,3.382828626677052419e-01,3.170694013888746277e-01,2.933179571463314650e-01,2.680009404407628359e-01,2.421548488184892822e-01,2.168378321129203201e-01,1.930863878703776293e-01,1.718729265915469040e-01,1.540659910584208092e-01,1.403948056085043417e-01,1.314202061825502643e-01,1.275389473148129671e-01 +5.158182799487629477e-01,5.105858279139342537e-01,4.984868768703806241e-01,4.800563045834959630e-01,4.560501923298444504e-01,4.274516312916062932e-01,3.954315324030522882e-01,3.613008340675161190e-01,3.264568725308345520e-01,2.923261741952989379e-01,2.603060753067440447e-01,2.317075142685054434e-01,2.077014020148550133e-01,1.892708297279697416e-01,1.771718786844165561e-01,1.719394266495877233e-01 +6.893152622076841318e-01,6.823228596764370213e-01,6.661543911765362980e-01,6.415246421691250811e-01,6.094440040723990704e-01,5.712262336537271556e-01,5.284360811537567315e-01,4.828254229296476407e-01,4.362615933472637764e-01,3.906509351231546856e-01,3.478607826231841504e-01,3.096430122045126243e-01,2.775623741077860585e-01,2.529326251003765069e-01,2.367641566004747844e-01,2.297717540692277849e-01 +8.960027918107946743e-01,8.869137544240462967e-01,8.658972562997788724e-01,8.338824075329608343e-01,7.921825600558013436e-01,7.425053936425082268e-01,6.868848406038438048e-01,6.275980681417883122e-01,5.670723209392711794e-01,5.077855484772155759e-01,4.521649954385511538e-01,4.024878290252579816e-01,3.607879815480985464e-01,3.287731327812808968e-01,3.077566346570138611e-01,2.986675972702648174e-01 +1.127418460874480832e+00,1.115981946797677260e+00,1.089537399766359549e+00,1.049253896353530724e+00,9.967839952649545365e-01,9.342764283129676439e-01,8.642904429198776661e-01,7.896913430395040567e-01,7.135332714598030535e-01,6.389341715794296661e-01,5.689481861863396883e-01,5.064406192343525737e-01,4.539707181457773855e-01,4.136872147329477278e-01,3.872426677016299057e-01,3.758061536248267220e-01 +1.374087854945336362e+00,1.360149130646234550e+00,1.327918745774693710e+00,1.278821560731898455e+00,1.214871699754749734e+00,1.138688018564815829e+00,1.053389705753407846e+00,9.624689689615282262e-01,8.696481709655866643e-01,7.787274341737068228e-01,6.934291213622991723e-01,6.172454401723653783e-01,5.532955791952163249e-01,5.041983941524209589e-01,4.719680092808798966e-01,4.580292849817787504e-01 +1.625912145054663638e+00,1.609418919353765354e+00,1.571281784225305733e+00,1.513186729268101605e+00,1.437517000245250642e+00,1.347371401435184524e+00,1.246440764246592225e+00,1.138857301038471714e+00,1.029025559034413062e+00,9.214420958262932171e-01,8.205114586377004748e-01,7.303658598276345781e-01,6.546961308047840600e-01,5.966010758475789322e-01,5.584639407191200888e-01,5.419707150182212496e-01 +1.872581539125519168e+00,1.853586103202321977e+00,1.809663130233640338e+00,1.742754393646470223e+00,1.655604704735044619e+00,1.551782991687032265e+00,1.435540027080121961e+00,1.311634926960495218e+00,1.185140458540197006e+00,1.061235358420570485e+00,9.449923938136605139e-01,8.411706807656473828e-01,7.540209918542229994e-01,6.871122552670519967e-01,6.431892822983702462e-01,6.241938463751731669e-01 +2.103997208189205104e+00,2.082654295575953718e+00,2.033303273700221681e+00,1.958125882467039336e+00,1.860206139944198700e+00,1.743554026357491793e+00,1.612945629396156155e+00,1.473728201858211406e+00,1.331601409060728436e+00,1.192383981522784353e+00,1.061775584561448493e+00,9.451234709747420304e-01,8.472037284519016165e-01,7.720263372187190498e-01,7.226753153429863463e-01,7.013324027297351826e-01 +2.310684737792316312e+00,2.287245190323562660e+00,2.233046138823464588e+00,2.150483647830874201e+00,2.042944695927601195e+00,1.914833186346272864e+00,1.771394388846243118e+00,1.618500847070351689e+00,1.462412136652736727e+00,1.309518594876844855e+00,1.166079797376816218e+00,1.037968287795487443e+00,9.304293358922138824e-01,8.478668448996234952e-01,7.936677933995250900e-01,7.702282459307721041e-01 +2.484181720051236830e+00,2.458982222086065761e+00,2.400713653129619374e+00,2.311951985416504929e+00,2.196338507670154705e+00,2.058607788708394004e+00,1.904398937596948560e+00,1.740025435932483600e+00,1.572216857469166396e+00,1.407843355804700991e+00,1.253634504693255547e+00,1.115903785731494402e+00,1.000290307985145288e+00,9.115286402720300662e-01,8.532600713155835681e-01,8.280605733504122767e-01 +2.617383158055560877e+00,2.590832466923297162e+00,2.529439546349252055e+00,2.435918491799168084e+00,2.314105837332294691e+00,2.168990018611125947e+00,2.006512512853668273e+00,1.833325329559237105e+00,1.656518881181510583e+00,1.483331697887079637e+00,1.320854192129622184e+00,1.175738373408452997e+00,1.053925718941578937e+00,9.604046643914954107e-01,8.990117438174499709e-01,8.724610526851870329e-01 +2.704824700958273986e+00,2.677387004272165250e+00,2.613943068858440189e+00,2.517297662690757942e+00,2.391415490767535346e+00,2.241451642422000567e+00,2.073546087757492717e+00,1.894573066622838642e+00,1.711859867988193340e+00,1.532886846853539931e+00,1.364981292189032525e+00,1.215017443843497524e+00,1.089135271920274928e+00,9.924898657525923484e-01,9.290459303388671763e-01,9.016082336527582175e-01 +2.742640680000000053e+00,2.714819378652757909e+00,2.650488437685186938e+00,2.552491838350412934e+00,2.424849715930771588e+00,2.272789232729735431e+00,2.102536201375174052e+00,1.921060970018221070e+00,1.735793269981779297e+00,1.554318038624826981e+00,1.384065007270264935e+00,1.232004524069227891e+00,1.104362401649587877e+00,1.006365802314813207e+00,9.420348613472420141e-01,9.142135600000000917e-01 diff --git a/dg_maxwell/tests/wave_equation_2d/files/dx_dxi_data.csv b/dg_maxwell/tests/wave_equation_2d/files/dx_dxi_data.csv new file mode 100644 index 0000000..de4a088 --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/dx_dxi_data.csv @@ -0,0 +1,16 @@ +1.000000000000000222e+00,1.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000444e+00,1.000000000000000000e+00,1.000000000000000444e+00,1.000000000000000444e+00,1.000000000000000222e+00,1.000000000000000222e+00,9.999999999999996669e-01,1.000000000000000222e+00,9.999999999999997780e-01,1.000000000000000222e+00,9.999999999999997780e-01,9.999999999999997780e-01,1.000000000000000000e+00 +9.971975490166753442e-01,9.971975490166756773e-01,9.971975490166756773e-01,9.971975490166753442e-01,9.971975490166755662e-01,9.971975490166762324e-01,9.971975490166753442e-01,9.971975490166753442e-01,9.971975490166755662e-01,9.971975490166751221e-01,9.971975490166747891e-01,9.971975490166757883e-01,9.971975490166751221e-01,9.971975490166754552e-01,9.971975490166755662e-01,9.971975490166749001e-01 +9.892484570105608555e-01,9.892484570105614106e-01,9.892484570105609665e-01,9.892484570105610775e-01,9.892484570105614106e-01,9.892484570105610775e-01,9.892484570105606334e-01,9.892484570105606334e-01,9.892484570105610775e-01,9.892484570105608555e-01,9.892484570105610775e-01,9.892484570105609665e-01,9.892484570105609665e-01,9.892484570105611885e-01,9.892484570105611885e-01,9.892484570105608555e-01 +9.731975781421600136e-01,9.731975781421596805e-01,9.731975781421601246e-01,9.731975781421604577e-01,9.731975781421601246e-01,9.731975781421602356e-01,9.731975781421604577e-01,9.731975781421600136e-01,9.731975781421604577e-01,9.731975781421601246e-01,9.731975781421604577e-01,9.731975781421600136e-01,9.731975781421604577e-01,9.731975781421603466e-01,9.731975781421606797e-01,9.731975781421604577e-01 +9.451542029669721678e-01,9.451542029669717238e-01,9.451542029669716127e-01,9.451542029669712797e-01,9.451542029669715017e-01,9.451542029669717238e-01,9.451542029669716127e-01,9.451542029669712797e-01,9.451542029669717238e-01,9.451542029669718348e-01,9.451542029669717238e-01,9.451542029669713907e-01,9.451542029669719458e-01,9.451542029669718348e-01,9.451542029669719458e-01,9.451542029669715017e-01 +9.012067345509893190e-01,9.012067345509894301e-01,9.012067345509890970e-01,9.012067345509895411e-01,9.012067345509889860e-01,9.012067345509895411e-01,9.012067345509890970e-01,9.012067345509893190e-01,9.012067345509893190e-01,9.012067345509890970e-01,9.012067345509890970e-01,9.012067345509890970e-01,9.012067345509890970e-01,9.012067345509893190e-01,9.012067345509892080e-01,9.012067345509895411e-01 +8.384034653351120081e-01,8.384034653351120081e-01,8.384034653351115640e-01,8.384034653351125632e-01,8.384034653351117861e-01,8.384034653351120081e-01,8.384034653351120081e-01,8.384034653351117861e-01,8.384034653351123412e-01,8.384034653351120081e-01,8.384034653351122302e-01,8.384034653351118971e-01,8.384034653351116750e-01,8.384034653351124522e-01,8.384034653351120081e-01,8.384034653351123412e-01 +7.556435469989850606e-01,7.556435469989848386e-01,7.556435469989848386e-01,7.556435469989852827e-01,7.556435469989850606e-01,7.556435469989852827e-01,7.556435469989851716e-01,7.556435469989850606e-01,7.556435469989855047e-01,7.556435469989849496e-01,7.556435469989850606e-01,7.556435469989850606e-01,7.556435469989852827e-01,7.556435469989855047e-01,7.556435469989857268e-01,7.556435469989850606e-01 +6.543172769989848980e-01,6.543172769989850091e-01,6.543172769989848980e-01,6.543172769989857862e-01,6.543172769989855642e-01,6.543172769989851201e-01,6.543172769989853421e-01,6.543172769989852311e-01,6.543172769989853421e-01,6.543172769989850091e-01,6.543172769989851201e-01,6.543172769989857862e-01,6.543172769989853421e-01,6.543172769989855642e-01,6.543172769989855642e-01,6.543172769989855642e-01 +5.385729953351119370e-01,5.385729953351118260e-01,5.385729953351116039e-01,5.385729953351118260e-01,5.385729953351119370e-01,5.385729953351119370e-01,5.385729953351120480e-01,5.385729953351120480e-01,5.385729953351118260e-01,5.385729953351119370e-01,5.385729953351121591e-01,5.385729953351118260e-01,5.385729953351117150e-01,5.385729953351121591e-01,5.385729953351121591e-01,5.385729953351122701e-01 +4.151473145509892992e-01,4.151473145509891327e-01,4.151473145509890772e-01,4.151473145509890772e-01,4.151473145509890217e-01,4.151473145509892992e-01,4.151473145509889662e-01,4.151473145509891882e-01,4.151473145509891882e-01,4.151473145509889662e-01,4.151473145509890217e-01,4.151473145509894103e-01,4.151473145509890217e-01,4.151473145509891882e-01,4.151473145509891882e-01,4.151473145509890217e-01 +2.927655029669716802e-01,2.927655029669715692e-01,2.927655029669714581e-01,2.927655029669717912e-01,2.927655029669716802e-01,2.927655029669720133e-01,2.927655029669717357e-01,2.927655029669717357e-01,2.927655029669717357e-01,2.927655029669716247e-01,2.927655029669716802e-01,2.927655029669717912e-01,2.927655029669716802e-01,2.927655029669714581e-01,2.927655029669717357e-01,2.927655029669717357e-01 +1.811892881421601487e-01,1.811892881421601764e-01,1.811892881421602597e-01,1.811892881421601487e-01,1.811892881421599821e-01,1.811892881421601487e-01,1.811892881421603152e-01,1.811892881421601764e-01,1.811892881421603430e-01,1.811892881421601764e-01,1.811892881421601209e-01,1.811892881421602874e-01,1.811892881421601209e-01,1.811892881421602042e-01,1.811892881421600654e-01,1.811892881421601209e-01 +9.004792701056091309e-02,9.004792701056103799e-02,9.004792701056096860e-02,9.004792701056103799e-02,9.004792701056102411e-02,9.004792701056091309e-02,9.004792701056110737e-02,9.004792701056094084e-02,9.004792701056113513e-02,9.004792701056096860e-02,9.004792701056102411e-02,9.004792701056094084e-02,9.004792701056099635e-02,9.004792701056113513e-02,9.004792701056094084e-02,9.004792701056105186e-02 +2.762949901667551694e-02,2.762949901667560368e-02,2.762949901667552388e-02,2.762949901667565225e-02,2.762949901667555511e-02,2.762949901667552388e-02,2.762949901667549613e-02,2.762949901667556205e-02,2.762949901667558286e-02,2.762949901667554470e-02,2.762949901667551694e-02,2.762949901667560021e-02,2.762949901667548919e-02,2.762949901667552388e-02,2.762949901667565572e-02,2.762949901667552388e-02 +0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00 diff --git a/dg_maxwell/tests/wave_equation_2d/files/dy_deta_data.csv b/dg_maxwell/tests/wave_equation_2d/files/dy_deta_data.csv new file mode 100644 index 0000000..76b68df --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/dy_deta_data.csv @@ -0,0 +1,16 @@ +2.742640680000000053e+00,2.714819378652757909e+00,2.650488437685186938e+00,2.552491838350412934e+00,2.424849715930771588e+00,2.272789232729735431e+00,2.102536201375174052e+00,1.921060970018221070e+00,1.735793269981779297e+00,1.554318038624826981e+00,1.384065007270264935e+00,1.232004524069227891e+00,1.104362401649587877e+00,1.006365802314813207e+00,9.420348613472420141e-01,9.142135600000000917e-01 +2.704824700958273986e+00,2.677387004272165250e+00,2.613943068858440189e+00,2.517297662690757054e+00,2.391415490767535346e+00,2.241451642422000567e+00,2.073546087757492273e+00,1.894573066622838642e+00,1.711859867988193784e+00,1.532886846853539931e+00,1.364981292189032080e+00,1.215017443843497080e+00,1.089135271920274928e+00,9.924898657525923484e-01,9.290459303388672874e-01,9.016082336527582175e-01 +2.617383158055560877e+00,2.590832466923298050e+00,2.529439546349252055e+00,2.435918491799168528e+00,2.314105837332294691e+00,2.168990018611125947e+00,2.006512512853668273e+00,1.833325329559237549e+00,1.656518881181510139e+00,1.483331697887079637e+00,1.320854192129622628e+00,1.175738373408452997e+00,1.053925718941578937e+00,9.604046643914956327e-01,8.990117438174498599e-01,8.724610526851870329e-01 +2.484181720051236830e+00,2.458982222086065761e+00,2.400713653129619374e+00,2.311951985416504929e+00,2.196338507670154705e+00,2.058607788708393560e+00,1.904398937596949004e+00,1.740025435932483155e+00,1.572216857469165951e+00,1.407843355804700991e+00,1.253634504693255991e+00,1.115903785731494402e+00,1.000290307985145288e+00,9.115286402720300662e-01,8.532600713155835681e-01,8.280605733504122767e-01 +2.310684737792316312e+00,2.287245190323562660e+00,2.233046138823464588e+00,2.150483647830874201e+00,2.042944695927600307e+00,1.914833186346272864e+00,1.771394388846243562e+00,1.618500847070351689e+00,1.462412136652736283e+00,1.309518594876844855e+00,1.166079797376815996e+00,1.037968287795487443e+00,9.304293358922138824e-01,8.478668448996234952e-01,7.936677933995250900e-01,7.702282459307721041e-01 +2.103997208189205104e+00,2.082654295575953718e+00,2.033303273700221681e+00,1.958125882467039780e+00,1.860206139944198256e+00,1.743554026357491793e+00,1.612945629396156599e+00,1.473728201858211850e+00,1.331601409060728436e+00,1.192383981522784353e+00,1.061775584561448493e+00,9.451234709747420304e-01,8.472037284519016165e-01,7.720263372187190498e-01,7.226753153429862353e-01,7.013324027297351826e-01 +1.872581539125519168e+00,1.853586103202321977e+00,1.809663130233640338e+00,1.742754393646469779e+00,1.655604704735045063e+00,1.551782991687032265e+00,1.435540027080121961e+00,1.311634926960495218e+00,1.185140458540197450e+00,1.061235358420570485e+00,9.449923938136605139e-01,8.411706807656473828e-01,7.540209918542227774e-01,6.871122552670519967e-01,6.431892822983701352e-01,6.241938463751731669e-01 +1.625912145054663638e+00,1.609418919353764910e+00,1.571281784225306177e+00,1.513186729268101605e+00,1.437517000245250198e+00,1.347371401435184524e+00,1.246440764246591781e+00,1.138857301038472158e+00,1.029025559034413284e+00,9.214420958262934391e-01,8.205114586377006969e-01,7.303658598276348002e-01,6.546961308047838379e-01,5.966010758475789322e-01,5.584639407191200888e-01,5.419707150182212496e-01 +1.374087854945336362e+00,1.360149130646234994e+00,1.327918745774693710e+00,1.278821560731898677e+00,1.214871699754749734e+00,1.138688018564815607e+00,1.053389705753408068e+00,9.624689689615282262e-01,8.696481709655868864e-01,7.787274341737068228e-01,6.934291213622993943e-01,6.172454401723651563e-01,5.532955791952163249e-01,5.041983941524210699e-01,4.719680092808800076e-01,4.580292849817787504e-01 +1.127418460874480832e+00,1.115981946797677260e+00,1.089537399766359105e+00,1.049253896353530280e+00,9.967839952649545365e-01,9.342764283129678660e-01,8.642904429198778882e-01,7.896913430395040567e-01,7.135332714598030535e-01,6.389341715794296661e-01,5.689481861863394663e-01,5.064406192343525737e-01,4.539707181457773855e-01,4.136872147329478389e-01,3.872426677016298502e-01,3.758061536248267220e-01 +8.960027918107946743e-01,8.869137544240462967e-01,8.658972562997784284e-01,8.338824075329608343e-01,7.921825600558011216e-01,7.425053936425082268e-01,6.868848406038438048e-01,6.275980681417878682e-01,5.670723209392715125e-01,5.077855484772155759e-01,4.521649954385511538e-01,4.024878290252579816e-01,3.607879815480984353e-01,3.287731327812809523e-01,3.077566346570137501e-01,2.986675972702648174e-01 +6.893152622076841318e-01,6.823228596764370213e-01,6.661543911765358539e-01,6.415246421691255252e-01,6.094440040723990704e-01,5.712262336537273777e-01,5.284360811537565095e-01,4.828254229296478628e-01,4.362615933472637764e-01,3.906509351231547966e-01,3.478607826231841504e-01,3.096430122045126243e-01,2.775623741077860585e-01,2.529326251003763959e-01,2.367641566004748954e-01,2.297717540692277849e-01 +5.158182799487629477e-01,5.105858279139342537e-01,4.984868768703801800e-01,4.800563045834959630e-01,4.560501923298448945e-01,4.274516312916067373e-01,3.954315324030518441e-01,3.613008340675165631e-01,3.264568725308341079e-01,2.923261741952990489e-01,2.603060753067442668e-01,2.317075142685054434e-01,2.077014020148549578e-01,1.892708297279697416e-01,1.771718786844164450e-01,1.719394266495877233e-01 +3.826168419444393454e-01,3.787355830767026310e-01,3.697609836507481651e-01,3.560897982008319751e-01,3.382828626677056860e-01,3.170694013888750717e-01,2.933179571463312429e-01,2.680009404407626139e-01,2.421548488184899484e-01,2.168378321129203201e-01,1.930863878703775183e-01,1.718729265915470150e-01,1.540659910584209202e-01,1.403948056085043417e-01,1.314202061825503753e-01,1.275389473148129671e-01 +2.951752990417260136e-01,2.921810457278348760e-01,2.852574611415602535e-01,2.747106273092423390e-01,2.609732092324651420e-01,2.446077775780000074e-01,2.262843822425076867e-01,2.067532033771612987e-01,1.868138620118065529e-01,1.672826831464600816e-01,1.489592878109678997e-01,1.325938561565029039e-01,1.188564380797250131e-01,1.083096042474077647e-01,1.013860196611326703e-01,9.839176634724178250e-02 +2.573593199999999470e-01,2.547486713472422171e-01,2.487120923148129492e-01,2.395164516495871254e-01,2.275389840692281229e-01,2.132701872702645329e-01,1.972942686248270183e-01,1.802652999817787594e-01,1.628804600182207629e-01,1.458514913751728370e-01,1.298755727297351004e-01,1.156067759307718434e-01,1.036293083504124524e-01,9.443366768518662857e-02,8.839708865275792971e-02,8.578643999999990832e-02 diff --git a/dg_maxwell/tests/wave_equation_2d/files/dy_dxi_data.csv b/dg_maxwell/tests/wave_equation_2d/files/dy_dxi_data.csv new file mode 100644 index 0000000..abfce7c --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/dy_dxi_data.csv @@ -0,0 +1,16 @@ +0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00 +-2.762949901667560021e-02,-2.762949901667553776e-02,-2.762949901667554470e-02,-2.762949901667557245e-02,-2.762949901667553429e-02,-2.762949901667555164e-02,-2.762949901667557245e-02,-2.762949901667554123e-02,-2.762949901667560715e-02,-2.762949901667556898e-02,-2.762949901667559327e-02,-2.762949901667561409e-02,-2.762949901667557245e-02,-2.762949901667559327e-02,-2.762949901667560715e-02,-2.762949901667554470e-02 +-9.004792701056105186e-02,-9.004792701056099635e-02,-9.004792701056099635e-02,-9.004792701056098247e-02,-9.004792701056099635e-02,-9.004792701056105186e-02,-9.004792701056109350e-02,-9.004792701056099635e-02,-9.004792701056107962e-02,-9.004792701056096860e-02,-9.004792701056102411e-02,-9.004792701056105186e-02,-9.004792701056096860e-02,-9.004792701056107962e-02,-9.004792701056105186e-02,-9.004792701056099635e-02 +-1.811892881421601487e-01,-1.811892881421601487e-01,-1.811892881421601487e-01,-1.811892881421602042e-01,-1.811892881421601209e-01,-1.811892881421601487e-01,-1.811892881421602042e-01,-1.811892881421601764e-01,-1.811892881421602319e-01,-1.811892881421601209e-01,-1.811892881421602042e-01,-1.811892881421601764e-01,-1.811892881421602319e-01,-1.811892881421601764e-01,-1.811892881421602319e-01,-1.811892881421602042e-01 +-2.927655029669715137e-01,-2.927655029669715137e-01,-2.927655029669716247e-01,-2.927655029669717357e-01,-2.927655029669716247e-01,-2.927655029669717912e-01,-2.927655029669716802e-01,-2.927655029669715692e-01,-2.927655029669716802e-01,-2.927655029669714581e-01,-2.927655029669715137e-01,-2.927655029669716247e-01,-2.927655029669715692e-01,-2.927655029669715692e-01,-2.927655029669716802e-01,-2.927655029669716247e-01 +-4.151473145509891882e-01,-4.151473145509891327e-01,-4.151473145509890217e-01,-4.151473145509891882e-01,-4.151473145509890217e-01,-4.151473145509892992e-01,-4.151473145509891882e-01,-4.151473145509890772e-01,-4.151473145509891882e-01,-4.151473145509889662e-01,-4.151473145509889662e-01,-4.151473145509892437e-01,-4.151473145509890772e-01,-4.151473145509892437e-01,-4.151473145509891882e-01,-4.151473145509890772e-01 +-5.385729953351117150e-01,-5.385729953351118260e-01,-5.385729953351118260e-01,-5.385729953351119370e-01,-5.385729953351119370e-01,-5.385729953351119370e-01,-5.385729953351119370e-01,-5.385729953351118260e-01,-5.385729953351120480e-01,-5.385729953351119370e-01,-5.385729953351119370e-01,-5.385729953351119370e-01,-5.385729953351118260e-01,-5.385729953351119370e-01,-5.385729953351119370e-01,-5.385729953351120480e-01 +-6.543172769989852311e-01,-6.543172769989854531e-01,-6.543172769989852311e-01,-6.543172769989855642e-01,-6.543172769989853421e-01,-6.543172769989854531e-01,-6.543172769989855642e-01,-6.543172769989853421e-01,-6.543172769989853421e-01,-6.543172769989851201e-01,-6.543172769989853421e-01,-6.543172769989854531e-01,-6.543172769989852311e-01,-6.543172769989854531e-01,-6.543172769989854531e-01,-6.543172769989854531e-01 +-7.556435469989851716e-01,-7.556435469989850606e-01,-7.556435469989850606e-01,-7.556435469989850606e-01,-7.556435469989849496e-01,-7.556435469989853937e-01,-7.556435469989850606e-01,-7.556435469989851716e-01,-7.556435469989853937e-01,-7.556435469989850606e-01,-7.556435469989849496e-01,-7.556435469989851716e-01,-7.556435469989852827e-01,-7.556435469989853937e-01,-7.556435469989856157e-01,-7.556435469989851716e-01 +-8.384034653351120081e-01,-8.384034653351120081e-01,-8.384034653351115640e-01,-8.384034653351124522e-01,-8.384034653351117861e-01,-8.384034653351120081e-01,-8.384034653351120081e-01,-8.384034653351117861e-01,-8.384034653351122302e-01,-8.384034653351116750e-01,-8.384034653351121191e-01,-8.384034653351117861e-01,-8.384034653351116750e-01,-8.384034653351121191e-01,-8.384034653351120081e-01,-8.384034653351120081e-01 +-9.012067345509890970e-01,-9.012067345509894301e-01,-9.012067345509893190e-01,-9.012067345509895411e-01,-9.012067345509890970e-01,-9.012067345509893190e-01,-9.012067345509893190e-01,-9.012067345509892080e-01,-9.012067345509893190e-01,-9.012067345509892080e-01,-9.012067345509892080e-01,-9.012067345509893190e-01,-9.012067345509892080e-01,-9.012067345509893190e-01,-9.012067345509890970e-01,-9.012067345509893190e-01 +-9.451542029669717238e-01,-9.451542029669717238e-01,-9.451542029669718348e-01,-9.451542029669713907e-01,-9.451542029669716127e-01,-9.451542029669717238e-01,-9.451542029669716127e-01,-9.451542029669713907e-01,-9.451542029669716127e-01,-9.451542029669713907e-01,-9.451542029669716127e-01,-9.451542029669712797e-01,-9.451542029669719458e-01,-9.451542029669719458e-01,-9.451542029669716127e-01,-9.451542029669717238e-01 +-9.731975781421600136e-01,-9.731975781421597915e-01,-9.731975781421602356e-01,-9.731975781421606797e-01,-9.731975781421600136e-01,-9.731975781421602356e-01,-9.731975781421604577e-01,-9.731975781421600136e-01,-9.731975781421603466e-01,-9.731975781421600136e-01,-9.731975781421601246e-01,-9.731975781421600136e-01,-9.731975781421601246e-01,-9.731975781421597915e-01,-9.731975781421604577e-01,-9.731975781421604577e-01 +-9.892484570105611885e-01,-9.892484570105609665e-01,-9.892484570105609665e-01,-9.892484570105609665e-01,-9.892484570105610775e-01,-9.892484570105612995e-01,-9.892484570105607444e-01,-9.892484570105607444e-01,-9.892484570105610775e-01,-9.892484570105608555e-01,-9.892484570105611885e-01,-9.892484570105610775e-01,-9.892484570105608555e-01,-9.892484570105614106e-01,-9.892484570105606334e-01,-9.892484570105610775e-01 +-9.971975490166754552e-01,-9.971975490166746781e-01,-9.971975490166755662e-01,-9.971975490166755662e-01,-9.971975490166755662e-01,-9.971975490166760103e-01,-9.971975490166755662e-01,-9.971975490166754552e-01,-9.971975490166757883e-01,-9.971975490166753442e-01,-9.971975490166753442e-01,-9.971975490166757883e-01,-9.971975490166757883e-01,-9.971975490166756773e-01,-9.971975490166753442e-01,-9.971975490166749001e-01 +-1.000000000000000000e+00,-1.000000000000000444e+00,-1.000000000000000000e+00,-1.000000000000000222e+00,-1.000000000000000000e+00,-1.000000000000000222e+00,-1.000000000000000222e+00,-1.000000000000000000e+00,-1.000000000000000000e+00,-9.999999999999998890e-01,-1.000000000000000000e+00,-9.999999999999995559e-01,-1.000000000000000000e+00,-1.000000000000000000e+00,-9.999999999999995559e-01,-1.000000000000000000e+00 diff --git a/dg_maxwell/tests/wave_equation_2d/files/jacobian_data.csv b/dg_maxwell/tests/wave_equation_2d/files/jacobian_data.csv new file mode 100644 index 0000000..d0a69b2 --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/files/jacobian_data.csv @@ -0,0 +1,16 @@ +2.742640680000000497e+00,2.714819378652757909e+00,2.650488437685186494e+00,2.552491838350414710e+00,2.424849715930771143e+00,2.272789232729737652e+00,2.102536201375174052e+00,1.921060970018221070e+00,1.735793269981779963e+00,1.554318038624826759e+00,1.384065007270264713e+00,1.232004524069228113e+00,1.104362401649587655e+00,1.006365802314813429e+00,9.420348613472419030e-01,9.142135600000005358e-01 +2.705400107949974320e+00,2.677956574344929397e+00,2.614499142276875077e+00,2.517833176387739069e+00,2.391924225101762502e+00,2.241928474412686167e+00,2.073987200601544956e+00,1.894976105898704910e+00,1.712224038034592999e+00,1.533212943331752065e+00,1.365271669520615294e+00,1.215275918831535185e+00,1.089366967545558174e+00,9.927010016564241646e-01,9.292435695883677349e-01,9.018000359833248103e-01 +2.623696103968316873e+00,2.597081374417928856e+00,2.535540378394626426e+00,2.441793757573416102e+00,2.319687299466528962e+00,2.174221471495910496e+00,2.011352081308875217e+00,1.837747182588425066e+00,1.660514289369330765e+00,1.486909390648881057e+00,1.324040000461844890e+00,1.178574172491225536e+00,1.056467714384341505e+00,9.627210935631290711e-01,9.011800975398249758e-01,8.745653679894391797e-01 +2.511060380573518991e+00,2.485588225923987427e+00,2.426689195406916966e+00,2.336967133083941217e+00,2.220102726150301020e+00,2.080881771104528433e+00,1.925004391750926080e+00,1.758852381085110883e+00,1.589228126346248438e+00,1.423076115680433684e+00,1.267198736326831776e+00,1.127977781281058078e+00,1.011113374347419214e+00,9.213913120244424659e-01,8.624922815073717830e-01,8.370201268578396636e-01 +2.385761121099085447e+00,2.361560000049341301e+00,2.305599968914621378e+00,2.220354942689445110e+00,2.109321946167513673e+00,1.977047969659381010e+00,1.828948706815012093e+00,1.671087505903385839e+00,1.509927322228727276e+00,1.352066121317101022e+00,1.203966858472733437e+00,1.071692881964598332e+00,9.606598854426676715e-01,8.754148592174929577e-01,8.194548280827722575e-01,7.952537070330280011e-01 +2.268109606347032514e+00,2.245101940302075327e+00,2.191901524273136115e+00,2.110860274516516810e+00,2.005302763412105449e+00,1.879551750817177735e+00,1.738755860658869334e+00,1.588679433018791665e+00,1.435466708777250577e+00,1.285390281137173130e+00,1.144594390978865395e+00,1.018843378383937681e+00,9.132858672795258759e-01,8.322446175229071264e-01,7.790442014939683579e-01,7.560365354490107270e-01 +2.177175988994663580e+00,2.155090752048567815e+00,2.104023260398866224e+00,2.026231136687351331e+00,1.924905663706922621e+00,1.804196292146000635e+00,1.669045226014103989e+00,1.524985700029238611e+00,1.377915618630312977e+00,1.233856092645447156e+00,1.098705026513551619e+00,9.779956549526278575e-01,8.766701819722015898e-01,7.988780582606838099e-01,7.478105666109835514e-01,7.257253296648883412e-01 +2.127699444003043894e+00,2.106116096304733176e+00,2.056209118578109507e+00,1.980184828761630156e+00,1.881161987423318971e+00,1.763195748564177379e+00,1.631116004106753170e+00,1.490330245449329682e+00,1.346602346554728769e+00,1.205816587897305503e+00,1.073736843439881739e+00,9.557706045807399242e-01,8.567477632424288503e-01,7.807234734259487219e-01,7.308164956993241645e-01,7.092331480010147793e-01 +2.127699444003043006e+00,2.106116096304733620e+00,2.056209118578109063e+00,1.980184828761630822e+00,1.881161987423318527e+00,1.763195748564176490e+00,1.631116004106753170e+00,1.490330245449329905e+00,1.346602346554728324e+00,1.205816587897305059e+00,1.073736843439881739e+00,9.557706045807399242e-01,8.567477632424289613e-01,7.807234734259488329e-01,7.308164956993240535e-01,7.092331480010145572e-01 +2.177175988994663136e+00,2.155090752048568703e+00,2.104023260398865780e+00,2.026231136687351331e+00,1.924905663706922843e+00,1.804196292146000857e+00,1.669045226014103545e+00,1.524985700029238611e+00,1.377915618630312755e+00,1.233856092645447156e+00,1.098705026513552063e+00,9.779956549526278575e-01,8.766701819722017008e-01,7.988780582606838099e-01,7.478105666109835514e-01,7.257253296648883412e-01 +2.268109606347032070e+00,2.245101940302074439e+00,2.191901524273136115e+00,2.110860274516517254e+00,2.005302763412105005e+00,1.879551750817177735e+00,1.738755860658869778e+00,1.588679433018791887e+00,1.435466708777250577e+00,1.285390281137172463e+00,1.144594390978865617e+00,1.018843378383937681e+00,9.132858672795259869e-01,8.322446175229070153e-01,7.790442014939685800e-01,7.560365354490107270e-01 +2.385761121099085447e+00,2.361560000049341301e+00,2.305599968914621822e+00,2.220354942689445554e+00,2.109321946167514561e+00,1.977047969659381010e+00,1.828948706815011871e+00,1.671087505903385839e+00,1.509927322228727720e+00,1.352066121317101022e+00,1.203966858472732993e+00,1.071692881964598776e+00,9.606598854426672274e-01,8.754148592174931798e-01,8.194548280827723685e-01,7.952537070330283342e-01 +2.511060380573519435e+00,2.485588225923988315e+00,2.426689195406917410e+00,2.336967133083943438e+00,2.220102726150299688e+00,2.080881771104527989e+00,1.925004391750926080e+00,1.758852381085110883e+00,1.589228126346247993e+00,1.423076115680433462e+00,1.267198736326831554e+00,1.127977781281058078e+00,1.011113374347419214e+00,9.213913120244427990e-01,8.624922815073718940e-01,8.370201268578398857e-01 +2.623696103968317761e+00,2.597081374417930633e+00,2.535540378394626426e+00,2.441793757573412993e+00,2.319687299466530739e+00,2.174221471495912272e+00,2.011352081308874773e+00,1.837747182588425288e+00,1.660514289369331431e+00,1.486909390648881502e+00,1.324040000461844668e+00,1.178574172491226424e+00,1.056467714384341949e+00,9.627210935631287381e-01,9.011800975398251978e-01,8.745653679894391797e-01 +2.705400107949973432e+00,2.677956574344929841e+00,2.614499142276873300e+00,2.517833176387741290e+00,2.391924225101762946e+00,2.241928474412685279e+00,2.073987200601545844e+00,1.894976105898705132e+00,1.712224038034593221e+00,1.533212943331752287e+00,1.365271669520615294e+00,1.215275918831535185e+00,1.089366967545558174e+00,9.927010016564247197e-01,9.292435695883678459e-01,9.018000359833248103e-01 +2.742640680000000497e+00,2.714819378652758353e+00,2.650488437685186494e+00,2.552491838350412490e+00,2.424849715930771588e+00,2.272789232729736764e+00,2.102536201375173164e+00,1.921060970018220626e+00,1.735793269981779741e+00,1.554318038624826759e+00,1.384065007270264713e+00,1.232004524069228113e+00,1.104362401649587877e+00,1.006365802314813651e+00,9.420348613472421251e-01,9.142135600000005358e-01 diff --git a/dg_maxwell/tests/wave_equation_2d/test_wave_equation_2d.py b/dg_maxwell/tests/wave_equation_2d/test_wave_equation_2d.py new file mode 100644 index 0000000..af289ab --- /dev/null +++ b/dg_maxwell/tests/wave_equation_2d/test_wave_equation_2d.py @@ -0,0 +1,196 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import sys +sys.path.insert(0, os.path.abspath('./')) +import csv + +import numpy as np +import arrayfire as af + +from dg_maxwell import params +from dg_maxwell import utils +from dg_maxwell import msh_parser +from dg_maxwell import lagrange +from dg_maxwell import wave_equation_2d + +af.set_backend(params.backend) + +def test_dx_dxi(): + ''' + This test checks the derivative :math:`\\frac{\\partial x}{\\partial \\xi}` + calculated using the function :math:`dg_maxwell.wave_equation_2d.dx_dxi` + for the :math:`0^{th}` element of a mesh for a circular ring. You may + download the file from this + :download:`link <../dg_maxwell/tests/wave_equation_2d/files/circle.msh>`. + ''' + threshold = 1e-7 + + dx_dxi_reference = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/wave_equation_2d/files/dx_dxi_data.csv')) + + nodes, elements = msh_parser.read_order_2_msh( + 'dg_maxwell/tests/wave_equation_2d/files/circle.msh') + + N_LGL = 16 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + Xi = af.data.tile(af.array.transpose(xi_LGL), d0 = N_LGL) + Eta = af.data.tile(eta_LGL, d0 = 1, d1 = N_LGL) + + dx_dxi = wave_equation_2d.dx_dxi(nodes[elements[0]][:, 0], + Xi, Eta) + + check = af.abs((dx_dxi - dx_dxi_reference)) < threshold + + assert af.all_true(check) + + +def test_dx_deta(): + ''' + This test checks the derivative :math:`\\frac{\\partial x}{\\partial \\eta}` + calculated using the function :math:`dg_maxwell.wave_equation_2d.dx_deta` + for the :math:`0^{th}` element of a mesh for a circular ring. You may + download the file from this + :download:`link <../dg_maxwell/tests/wave_equation_2d/files/circle.msh>`. + ''' + + threshold = 1e-7 + + dx_deta_reference = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/wave_equation_2d/files/dx_deta_data.csv')) + + nodes, elements = msh_parser.read_order_2_msh( + 'dg_maxwell/tests/wave_equation_2d/files/circle.msh') + + + N_LGL = 16 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + Xi = af.data.tile(af.array.transpose(xi_LGL), d0 = N_LGL) + Eta = af.data.tile(eta_LGL, d0 = 1, d1 = N_LGL) + + dx_deta = wave_equation_2d.dx_deta(nodes[elements[0]][:, 0], + Xi, Eta) + + check = af.abs(dx_deta - dx_deta_reference) < threshold + + assert af.all_true(check) + + +def test_dy_dxi(): + ''' + This test checks the derivative :math:`\\frac{\\partial y}{\\partial \\xi}` + calculated using the function :math:`dg_maxwell.wave_equation_2d.dy_dxi` + for the :math:`0^{th}` element of a mesh for a circular ring. You may + download the file from this + :download:`link <../dg_maxwell/tests/wave_equation_2d/files/circle.msh>`. + ''' + threshold = 1e-7 + + dy_dxi_reference = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/wave_equation_2d/files/dy_dxi_data.csv')) + + nodes, elements = msh_parser.read_order_2_msh( + 'dg_maxwell/tests/wave_equation_2d/files/circle.msh') + + + N_LGL = 16 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + Xi = af.data.tile(af.array.transpose(xi_LGL), d0 = N_LGL) + Eta = af.data.tile(eta_LGL, d0 = 1, d1 = N_LGL) + + dy_dxi = wave_equation_2d.dy_dxi(nodes[elements[0]][:, 1], + Xi, Eta) + + check = af.abs(dy_dxi - dy_dxi_reference) < threshold + + assert af.all_true(check) + + +def test_dy_deta(): + ''' + This test checks the derivative :math:`\\frac{\\partial y}{\\partial \\eta}` + calculated using the function :math:`dg_maxwell.wave_equation_2d.dy_deta` + for the :math:`0^{th}` element of a mesh for a circular ring. You may + download the file from this + :download:`link <../dg_maxwell/tests/wave_equation_2d/files/circle.msh>`. + ''' + + threshold = 1e-7 + + dy_deta_reference = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/wave_equation_2d/files/dy_deta_data.csv')) + + nodes, elements = msh_parser.read_order_2_msh( + 'dg_maxwell/tests/wave_equation_2d/files/circle.msh') + + + N_LGL = 16 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + Xi = af.data.tile(af.array.transpose(xi_LGL), d0 = N_LGL) + Eta = af.data.tile(eta_LGL, d0 = 1, d1 = N_LGL) + + dy_deta = wave_equation_2d.dy_deta(nodes[elements[0]][:, 1], + Xi, Eta) + + check = af.abs(dy_deta - dy_deta_reference) < threshold + + assert af.all_true(check) + + +def test_jacobian(): + ''' + This test checks the derivative Jacobian + calculated using the function :math:`dg_maxwell.wave_equation_2d.jacobian` + for the :math:`0^{th}` element of a mesh for a circular ring. You may + download the file from this + :download:`link <../dg_maxwell/tests/wave_equation_2d/files/circle.msh>`. + ''' + + threshold = 1e-7 + + jacobian_reference = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/wave_equation_2d/files/jacobian_data.csv')) + + nodes, elements = msh_parser.read_order_2_msh( + 'dg_maxwell/tests/wave_equation_2d/files/circle.msh') + + + N_LGL = 16 + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + Xi = af.data.tile(af.array.transpose(xi_LGL), d0 = N_LGL) + Eta = af.data.tile(eta_LGL, d0 = 1, d1 = N_LGL) + + jacobian = wave_equation_2d.jacobian(nodes[elements[0]][:, 0], + nodes[elements[0]][:, 1], + Xi, Eta) + + check = af.abs(jacobian - jacobian_reference) < threshold + + assert af.all_true(check) + + +def test_A_matrix(): + ''' + Compares the tensor product calculated using the ``A_matrix`` function + with an analytic value of the tensor product for :math:`N_{LGL} = 4`. + The analytic value of the tensor product is calculated in this + `document`_ + + .. _document: https://goo.gl/QNWxXp + ''' + threshold = 1e-12 + + A_matrix_ref = af.np_to_af_array(utils.csv_to_numpy( + 'dg_maxwell/tests/wave_equation_2d/files/A_matrix_ref.csv')) + + params.N_LGL = 4 + + A_matrix_test = wave_equation_2d.A_matrix() + + assert af.all_true(af.abs(A_matrix_test - A_matrix_ref) < threshold) \ No newline at end of file diff --git a/dg_maxwell/utils.py b/dg_maxwell/utils.py index 2c6d6df..c7da81d 100644 --- a/dg_maxwell/utils.py +++ b/dg_maxwell/utils.py @@ -1,14 +1,19 @@ #! /usr/bin/env python3 # -*- coding: utf-8 -*- +import csv + import numpy as np import matplotlib.lines as lines import arrayfire as af -af.set_backend('cpu') + +from dg_maxwell import params +from dg_maxwell import lagrange + +af.set_backend(params.backend) def add(a, b): ''' - For broadcasting purposes, To sum two arrays of different shapes, A function which can sum two variables is required. @@ -16,19 +21,18 @@ def add(a, b): ---------- a : arrayfire.Array [N M 1 1] One of the arrays which need to be broadcasted and summed. - + b : arrayfire.Array [1 M L 1] One of the arrays which need to be broadcasted and summed. - + Returns ------- - add : arrayfire.Array [N M L 1] - returns the sum of a and b. When used along with af.broadcast + add : arrayfire.Array [N M L 1] + Sum of a and b. When used along with ``af.broadcast`` can be used to sum different size arrays. - ''' add = a + b - + return add @@ -37,15 +41,15 @@ def divide(a, b): For broadcasting purposes, To divide two arrays of different shapes, A function which can sum two variables is required. - + Parameters ---------- a : arrayfire.Array [N M 1 1] One of the arrays which need to be broadcasted and divided. - + b : arrayfire.Array [1 M L 1] One of the arrays which need to be broadcasted and divided. - + Returns ------- quotient : arrayfire.Array [N M L 1] @@ -55,57 +59,54 @@ def divide(a, b): ''' quotient = a / b - + return quotient def multiply(a, b): ''' - For broadcasting purposes, To divide two arrays of different shapes, A function which can sum two variables is required. - + Parameters ---------- a : arrayfire.Array [N M 1 1] One of the arrays which need to be broadcasted and multiplying. - + b : arrayfire.Array [1 M L 1] One of the arrays which need to be broadcasted and multiplying. - + Returns ------- product : arrayfire.Array [N M L 1] The product a * b . When used along with af.broadcast can be used to give quotient of two different size arrays by multiplying elements of the broadcasted array. - ''' + product = a * b - + return product def power(a, b): ''' - For broadcasting purposes, To divide two arrays of different shapes, A function which can sum two variables is required. - + Parameters ---------- a : arrayfire.Array [N M 1 1] One of the arrays which need to be broadcasted and multiplying. - + b : arrayfire.Array [1 M L 1] One of the arrays which need to be broadcasted and multiplying. - + Returns ------- power : arrayfire.Array [N M L 1] The quotient a / b. When used along with af.broadcast can be used to give quotient of two different size arrays by multiplying elements of the broadcasted array. - ''' power = a ** b @@ -115,26 +116,23 @@ def power(a, b): def linspace(start, end, number_of_points): ''' - Linspace implementation using arrayfire. - + Returns ------- X : arrayfire.Array - An array which contains 'number_of_points' evenly spaced points - between 'start' and 'end' - + An array which contains ``number_of_points`` evenly spaced points + between ``start`` and ``end``. ''' X = af.range(number_of_points, dtype = af.Dtype.f64) d = (end - start) / (number_of_points - 1) X = X * d X = X + start - + return X def plot_line(points, axes_handler, grid_width = 2., grid_color = 'blue'): ''' - Plots curves using the given :math:`(x, y)` points. It joins the points using lines in the given order. @@ -143,27 +141,337 @@ def plot_line(points, axes_handler, grid_width = 2., grid_color = 'blue'): points : np.ndarray [N, 2] :math:`(x, y)` coordinates of :math:`N` points. First and second column stores :math:`x` and :math:`y` coordinates of an point. - + axes_handler : matplotlib.axes.Axes The plot handler being used to plot the element grid. You may generate it by calling the function pyplot.axes() - + grid_width : float Grid line width. - + grid_color : str Grid line color. Returns ------- - - None + None ''' - + for point_id in np.arange(1, len(points)): line = [points[point_id].tolist(), points[point_id - 1].tolist()] (line1_xs, line1_ys) = zip(*line) - axes_handler.add_line(lines.Line2D(line1_xs, line1_ys, linewidth=grid_width, color=grid_color)) - + axes_handler.add_line(lines.Line2D(line1_xs, line1_ys, + linewidth = grid_width, + color = grid_color)) + return + +def csv_to_numpy(filename, delimeter_ = ','): + ''' + Reads a text file data and converts it into a numpy :math:`2D` numpy + array. + + Parameters + ---------- + filename : str + File which is to be read. + + delimeter : str + Delimeter used in the document. + + Returns + ------- + content : np.array + Read content from the file. + ''' + + csv_handler = csv.reader(open(filename, newline='\n'), + delimiter = delimeter_) + + content = list() + + for line in csv_handler: + content.append(list()) + for item in line: + try: + content[-1].append(float(item)) + except ValueError: + if content[-1] == []: + content.pop() + print('popping string') + break + + content = np.array(content, dtype = np.float64) + + return content + + +def af_meshgrid(arr_0, arr_1): + ''' + Creates a meshgrid from the given two arrayfire array. + + Parameters + ---------- + + arr_0 : af.Array [N_0 1 1 1] + + arr_1 : af.Array [N_1 1 1 1] + + Returns + ------- + + tuple(af.Array[N_1 N_0 1 1], af.Array[N_1 N_0 1 1]) + ''' + + Arr_0 = af.data.tile(af.array.transpose(arr_0), d0 = arr_1.shape[0]) + Arr_1 = af.data.tile(arr_1, d0 = 1, d1 = arr_0.shape[0]) + + return Arr_0, Arr_1 + + +def outer_prod(a, b): + ''' + Calculates the outer product of two matrices. + + Parameters + ---------- + a : af.Array [N_a N 1 1] + + b : af.Array [N_b N 1 1] + + Returns + ------- + + af.Array [N_a N_b N 1] + Outer product of two elements + ''' + + if id(a) == id(b): + array_a = a.copy() + array_b = b.copy() + else: + array_a = a + array_b = b + + a_n1 = array_a.shape[0] + b_n1 = array_b.shape[0] + + if (a.numdims() == 1) & (b.numdims() == 1): + a_n2 = 1 + b_n2 = 1 + else: + a_n2 = array_a.shape[1] + b_n2 = array_b.shape[1] + + a_reorder = af.reorder(array_a, d0 = 0, d1 = 2, d2 = 1) + b_reorder = af.reorder(array_b, d0 = 0, d1 = 2, d2 = 1) + b_reorder = af.transpose(b_reorder) + + a_tile = af.tile(a_reorder, d0 = 1, d1 = b_n1) + b_tile = af.tile(b_reorder, d0 = a_n1) + + return a_tile * b_tile + + +def matmul_3D(a, b): + ''' + Finds the matrix multiplication of :math:`Q` pairs of matrices ``a`` and + ``b``. + + Parameters + ---------- + a : af.Array [M N Q 1] + First set of :math:`Q` 2D arrays :math:`N \\neq 1` and :math:`M \\neq 1`. + + b : af.Array [N P Q 1] + Second set of :math:`Q` 2D arrays :math:`P \\neq 1`. + + Returns + ------- + matmul : af.Array [M P Q 1] + Matrix multiplication of :math:`Q` sets of 2D arrays. + ''' + shape_a = shape(a) + shape_b = shape(b) + + P = shape_b[1] + + a = af.transpose(a) + a = af.reorder(a, d0 = 0, d1 = 3, d2 = 2, d3 = 1) + a = af.tile(a, d0 = 1, d1 = P) + b = af.tile(b, d0 = 1, d1 = 1, d2 = 1, d3 = a.shape[3]) + + matmul = af.sum(a * b, dim = 0) + matmul = af.reorder(matmul, d0 = 3, d1 = 1, d2 = 2, d3 = 0) + + return matmul + + +def shape(array): + ''' + ''' + af_shape = array.shape + + shape = [1, 1, 1, 1] + + for dim in np.arange(array.numdims()): + shape[dim] = af_shape[dim] + + return shape + + +def polyval_1d(polynomials, xi): + ''' + Finds the value of the polynomials at the given :math:`\\xi` coordinates. + + Parameters + ---------- + polynomials : af.Array [number_of_polynomials N 1 1] + ``number_of_polynomials`` :math:`2D` polynomials of degree + :math:`N - 1` of the form + + .. math:: P(x) = a_0x^0 + a_1x^1 + ... \\ + a_{N - 1}x^{N - 1} + a_Nx^N + + xi : af.Array [N 1 1 1] + :math:`\\xi` coordinates at which the :math:`i^{th}` Lagrange + basis polynomial is to be evaluated. + + Returns + ------- + af.Array [i.shape[0] xi.shape[0] 1 1] + Evaluated polynomials at given :math:`\\xi` coordinates + ''' + + N = int(polynomials.shape[1]) + xi_ = af.tile(af.transpose(xi), d0 = N) + power = af.tile(af.flip(af.range(N), dim = 0), + d0 = 1, d1 = xi.shape[0]) + + xi_power = xi_**power + + return af.matmul(polynomials, xi_power) + + +def poly1d_product(poly_a, poly_b): + ''' + Finds the product of two polynomials using the arrayfire convolve1 + function. + + Parameters + ---------- + poly_a : af.Array[N degree_a 1 1] + :math:`N` polynomials of degree :math:`degree` + + poly_b : af.Array[N degree_b 1 1] + :math:`N` polynomials of degree :math:`degree_b` + ''' + return af.transpose(af.convolve1(af.transpose(poly_a), + af.transpose(poly_b), + conv_mode = af.CONV_MODE.EXPAND)) + + +def integrate_1d(polynomials, order, scheme = 'gauss'): + ''' + Integrates single variables using the Gauss-Legendre or Gauss-Lobatto + quadrature. + + Parameters + ---------- + polynomials : af.Array [number_of_polynomials degree 1 1] + The polynomials to be integrated. + + order : int + Order of the quadrature. + + scheme : str + Possible options are + + - ``gauss`` for using Gauss-Legendre quadrature + - ``lobatto`` for using Gauss-Lobatto quadrature + + Returns + ------- + integral : af.Array [number_of_polynomials 1 1 1] + The integral for the respective polynomials using the given + quadrature scheme. + ''' + integral = 0.0 + + if scheme == 'gauss': + + N_g = order + xi_gauss = af.np_to_af_array(lagrange.gauss_nodes(N_g)) + gauss_weights = lagrange.gaussian_weights(N_g) + + polyval_gauss = polyval_1d(polynomials, xi_gauss) + + integral = af.sum(af.transpose(af.broadcast(multiply, + af.transpose(polyval_gauss), + gauss_weights)), dim = 1) + + return integral + + elif scheme == 'lobatto': + N_l = order + xi_lobatto = lagrange.LGL_points(N_l) + lobatto_weights = lagrange.lobatto_weights(N_l) + + polyval_lobatto = polyval_1d(polynomials, xi_lobatto) + + integral = af.sum(af.transpose(af.broadcast(multiply, + af.transpose(polyval_lobatto), + lobatto_weights)), dim = 1) + + return integral + + else: + return -1. + + + +def integrate_2d(poly_xi, poly_eta, order, scheme = 'gauss'): + ''' + Integrates functions defined by polynomials of :math:`\\xi` and + :math:`\\eta` using the Gauss-Legendre or Gauss-Lobatto quadrature. + + Parameters + ---------- + poly_xi : af.Array [number_of_polynomials N 1 1] + ``number_of_polynomials`` polynomials of :math:`\\xi` with + degree :math:`N - 1` of the form + + .. math:: P_0(\\xi) = a_0\\xi^0 + a_1\\xi^1 + ... \\ + a_{N - 1}\\xi^{N - 1} + + poly_eta : af.Array [number_of_polynomials N 1 1] + ``number_of_polynomials`` polynomials of :math:`\\eta` with + degree :math:`N - 1` of the form + + .. math:: P_1(\\eta) = a_0\\eta^0 + a_1\\eta^1 + ... \\ + a_{N - 1}\\eta^{N - 1} + + order : int + Order of the Gauss-Legendre or Gauss-Lobatto quadrature. + + scheme : str + Possible options are + + - ``gauss`` for using Gauss-Legendre quadrature + - ``lobatto`` for using Gauss-Lobatto quadrature + + Returns + ------- + integrate_poly_xi_eta : af.Array [number_of_polynomials 1 1 1] + Integral + + .. math:: \\iint P_0(\\xi) P_1(\\eta) d\\xi d\\eta + ''' + + integrate_poly_xi = integrate_1d(poly_xi, order, scheme) + integrate_poly_eta = integrate_1d(poly_eta, order, scheme) + integrate_poly_xi_eta = integrate_poly_xi * integrate_poly_eta + + return integrate_poly_xi_eta + diff --git a/dg_maxwell/wave_equation.py b/dg_maxwell/wave_equation.py index c83cc23..680e7f5 100644 --- a/dg_maxwell/wave_equation.py +++ b/dg_maxwell/wave_equation.py @@ -1,20 +1,19 @@ #! /usr/bin/env python3 # -*- coding: utf-8 -*- - + import os import arrayfire as af -af.set_backend('cpu') import numpy as np from matplotlib import pyplot as plt from tqdm import trange import h5py -from scipy import integrate from dg_maxwell import params from dg_maxwell import lagrange from dg_maxwell import utils -from dg_maxwell import isoparam + +af.set_backend(params.backend) plt.rcParams['figure.figsize' ] = 9.6, 6. plt.rcParams['figure.dpi' ] = 100 @@ -48,17 +47,17 @@ def mapping_xi_to_x(x_nodes, xi): ''' Maps points in :math: `\\xi` space to :math:`x` space using the formula :math: `x = \\frac{1 - \\xi}{2} x_0 + \\frac{1 + \\xi}{2} x_1` - + Parameters ---------- - + x_nodes : arrayfire.Array [2 1 1 1] Element nodes. - + xi : arrayfire.Array [N 1 1 1] Value of :math: `\\xi`coordinate for which the corresponding :math: `x` coordinate is to be found. - + Returns ------- @@ -68,58 +67,56 @@ def mapping_xi_to_x(x_nodes, xi): N_0 = (1 - xi) / 2 N_1 = (1 + xi) / 2 - + N0_x0 = af.broadcast(utils.multiply, N_0, x_nodes[0]) N1_x1 = af.broadcast(utils.multiply, N_1, x_nodes[1]) - + x = N0_x0 + N1_x1 - + return x def dx_dxi_numerical(x_nodes, xi): ''' - Differential :math: `\\frac{dx}{d \\xi}` calculated by central differential method about xi using the mapping_xi_to_x function. - + Parameters ---------- - + x_nodes : arrayfire.Array [N_Elements 1 1 1] Contains the nodes of elements. - + xi : arrayfire.Array [N_LGL 1 1 1] Values of :math: `\\xi` - + Returns ------- dx_dxi : arrayfire.Array [N_Elements 1 1 1] - :math:`\\frac{dx}{d \\xi}`. + :math:`\\frac{dx}{d \\xi}`. ''' dxi = 1e-7 x2 = mapping_xi_to_x(x_nodes, xi + dxi) x1 = mapping_xi_to_x(x_nodes, xi - dxi) - + dx_dxi = (x2 - x1) / (2 * dxi) - + return dx_dxi def dx_dxi_analytical(x_nodes, xi): ''' - The analytical result for :math:`\\frac{dx}{d \\xi}` for a 1D element is :math: `\\frac{x_1 - x_0}{2}` - + Parameters ---------- x_nodes : arrayfire.Array [2 N_Elements 1 1] Contains the nodes of elements. - + xi : arrayfire.Array [N_LGL 1 1 1] Values of :math: `\\xi`. @@ -129,26 +126,23 @@ def dx_dxi_analytical(x_nodes, xi): analytical_dx_dxi : arrayfire.Array [N_Elements 1 1 1] The analytical solution of :math: `\\frac{dx}{d\\xi}` for an element. - ''' analytical_dx_dxi = (x_nodes[1] - x_nodes[0]) / 2 - + return analytical_dx_dxi def A_matrix(): ''' - - Calculates A matrix whose elements :math:`A_{p i}` are given by - :math: `A_{p i} &= \\int^1_{-1} L_p(\\xi)L_i(\\xi) \\frac{dx}{d\\xi}` + Calculates A matrix whose elements :math:`A_{pi}` are given by + :math:`A_{pi} = \\int^1_{-1} L_p(\\xi)L_i(\\xi) \\frac{dx}{d\\xi}` The integrals are computed using the integrate() function. - Since elements are taken to be of equal size, :math: `\\frac {dx}{dxi} + Since elements are taken to be of equal size, :math:`\\frac {dx}{d\\xi}` is same everywhere - + Returns ------- - A_matrix : arrayfire.Array [N_LGL N_LGL 1 1] The value of integral of product of lagrange basis functions obtained by LGL points, using the integrate() function @@ -166,19 +160,18 @@ def A_matrix(): lag_prod_coeffs = af.moddims(lag_prod_coeffs, params.N_LGL ** 2, 2 * params.N_LGL - 1) - dx_dxi = params.dx_dxi + dx_dxi = params.dx_dxi A_matrix = dx_dxi * af.moddims(lagrange.integrate(lag_prod_coeffs),\ params.N_LGL, params.N_LGL) - + return A_matrix def flux_x(u): ''' - A function which returns the value of flux for a given wave function u. :math:`f(u) = c u^k` - + Parameters ---------- @@ -189,7 +182,7 @@ def flux_x(u): Returns ------- - flux : list [N_Elements] + flux : list [N_Elements] The analytical value of the flux for each element arranged in a list of numpy.poly1d polynomials. @@ -201,13 +194,12 @@ def flux_x(u): def volume_integral_flux(u_n): ''' - Calculates the volume integral of flux in the wave equation. :math:`\\int_{-1}^1 f(u) \\frac{d L_p}{d\\xi} d\\xi` This will give N values of flux integral as p varies from 0 to N - 1. - + This integral is carried out using the analytical form of the integrand obtained as a linear combination of Lagrange basis polynomials. @@ -215,13 +207,13 @@ def volume_integral_flux(u_n): Calculation of volume integral flux using N_LGL Lobatto quadrature points can be vectorized and is much faster. - + Parameters ---------- u : arrayfire.Array [N_LGL N_Elements 1 1] Amplitude of the wave at the mapped LGL nodes of each element. - + Returns ------- @@ -293,11 +285,11 @@ def volume_integral_flux(u_n): def lax_friedrichs_flux(u_n): ''' - Calculates the lax-friedrichs_flux :math:`f_i` using. - :math:`f_i = \\frac{F(u^{i + 1}_0) + F(u^i_{N_{LGL} - 1})}{2} - \\frac - {\Delta x}{2\Delta t} (u^{i + 1}_0 - u^i_{N_{LGL} - 1})` + .. math:: f_i = \\frac{F(u^{i + 1}_0) + F(u^i_{N_{LGL} - 1})}{2} \\ + - \\frac{\Delta x}{2\Delta t} \\ + (u^{i + 1}_0 - u^i_{N_{LGL} - 1}) The algorithm used is explained in this `document`_ @@ -309,7 +301,7 @@ def lax_friedrichs_flux(u_n): u_n : arrayfire.Array [N_LGL N_Elements 1 1] Amplitude of the wave at the mapped LGL nodes of each element. - + Returns ------- @@ -318,21 +310,20 @@ def lax_friedrichs_flux(u_n): Periodic boundary conditions are used. ''' - + u_iplus1_0 = af.shift(u_n[0, :], 0, -1) u_i_N_LGL = u_n[-1, :] flux_iplus1_0 = flux_x(u_iplus1_0) flux_i_N_LGL = flux_x(u_i_N_LGL) - + boundary_flux = (flux_iplus1_0 + flux_i_N_LGL) / 2 \ - params.c_lax * (u_iplus1_0 - u_i_N_LGL) / 2 - - - return boundary_flux + + + return boundary_flux def analytical_u_LGL(t_n): ''' - Calculates the analytical u at the LGL points. Parameters @@ -349,8 +340,8 @@ def analytical_u_LGL(t_n): ''' - time = t_n * params.delta_t - u_t_n = af.sin(2 * np.pi * (params.element_LGL - params.c * time)) + time = t_n * params.delta_t + u_t_n = af.sin(2 * np.pi * (params.element_LGL - params.c * time)) return u_t_n @@ -361,12 +352,12 @@ def surface_term(u_n): :math:`L_p(1) f_i - L_p(-1) f_{i - 1}` using the lax_friedrichs_flux function and lagrange_basis_value from params module. - + Parameters ---------- u_n : arrayfire.Array [N_LGL N_Elements 1 1] Amplitude of the wave at the mapped LGL nodes of each element. - + Returns ------- surface_term : arrayfire.Array [N_LGL N_Elements 1 1] @@ -375,9 +366,9 @@ def surface_term(u_n): from zero to :math:`N_{LGL}` and i from zero to :math:`N_{Elements}`. p varies along the rows and i along columns. - + **See:** `PDF`_ describing the algorithm to obtain the surface term. - + .. _PDF: https://goo.gl/Nhhgzx ''' @@ -386,17 +377,16 @@ def surface_term(u_n): L_p_1 = params.lagrange_basis_value[:, -1] f_i = lax_friedrichs_flux(u_n) f_iminus1 = af.shift(f_i, 0, 1) - surface_term = af.blas.matmul(L_p_1, f_i) - af.blas.matmul(L_p_minus1,\ - f_iminus1) - + surface_term = af.blas.matmul(L_p_1, f_i) - af.blas.matmul(L_p_minus1, + f_iminus1) + return surface_term def b_vector(u_n): ''' - Calculates the b vector for N_Elements number of elements. - + Parameters ---------- @@ -413,17 +403,15 @@ def b_vector(u_n): **See:** `Report`_ for the b-vector can be found here .. _Report: https://goo.gl/sNsXXK - ''' volume_integral = volume_integral_flux(u_n) Surface_term = surface_term(u_n) b_vector_array = (volume_integral - Surface_term) - + return b_vector_array def RK4_timestepping(A_inverse, u, delta_t): ''' - Implementing the Runge-Kutta (RK4) method to evolve the wave. Parameters @@ -442,10 +430,9 @@ def RK4_timestepping(A_inverse, u, delta_t): ------- delta_u : arrayfire.Array [N_LGL N_Elements 1 1] The change in u at the mapped LGL points. - ''' - k1 = af.matmul(A_inverse, b_vector(u )) + k1 = af.matmul(A_inverse, b_vector(u)) k2 = af.matmul(A_inverse, b_vector(u + k1 * delta_t / 2)) k3 = af.matmul(A_inverse, b_vector(u + k2 * delta_t / 2)) k4 = af.matmul(A_inverse, b_vector(u + k3 * delta_t )) @@ -456,7 +443,6 @@ def RK4_timestepping(A_inverse, u, delta_t): def RK6_timestepping(A_inverse, u, delta_t): ''' - Implementing the Runge-Kutta (RK4) method to evolve the wave. Parameters @@ -475,10 +461,8 @@ def RK6_timestepping(A_inverse, u, delta_t): ------- delta_u : arrayfire.Array [N_LGL N_Elements 1 1] The change in u at the mapped LGL points. - ''' - - k1 = af.matmul(A_inverse, b_vector(u )) + k1 = af.matmul(A_inverse, b_vector(u)) k2 = af.matmul(A_inverse, b_vector(u + 0.25 * k1 * delta_t)) k3 = af.matmul(A_inverse, b_vector(u + (3 / 32)\ * (k1 \ @@ -514,10 +498,9 @@ def RK6_timestepping(A_inverse, u, delta_t): def time_evolution(): ''' - Solves the wave equation :math: `u^{t_n + 1} = b(t_n) \\times A` - iterated over time.shape[0] time steps t_n + iterated over time.shape[0] time steps t_n Second order time stepping is used. It increases the accuracy of the wave evolution. @@ -525,30 +508,26 @@ def time_evolution(): The second order time-stepping would be `U^{n + 1/2} = U^n + dt / 2 (A^{-1} B(U^n))` `U^{n + 1} = U^n + dt (A^{-1} B(U^{n + 1/2}))` - + Returns ------- u_diff : arrayfire.Array [N_LGL N_Elements 1 1] The absolute of the difference between the numerical and analytical value of u at the LGL points. - ''' - # Creating a folder to store hdf5 files. If it doesn't exist. results_directory = 'results/hdf5_%02d' %(int(params.N_LGL)) - + if not os.path.exists(results_directory): os.makedirs(results_directory) A_inverse = af.inverse(A_matrix()) - element_LGL = params.element_LGL delta_t = params.delta_t u = params.u_init time = params.time - element_boundaries = af.np_to_af_array(params.np_element_array) for t_n in trange(0, time.shape[0]): @@ -576,6 +555,5 @@ def time_evolution(): u_diff = af.abs(u - u_analytical) - return u_diff diff --git a/dg_maxwell/wave_equation_2d.py b/dg_maxwell/wave_equation_2d.py new file mode 100644 index 0000000..e2abcf0 --- /dev/null +++ b/dg_maxwell/wave_equation_2d.py @@ -0,0 +1,289 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- + +import arrayfire as af + +from dg_maxwell import params +from dg_maxwell import lagrange +from dg_maxwell import utils + +af.set_backend(params.backend) + +def dx_dxi(x_nodes, xi, eta): + ''' + Computes the derivative :math:`\\frac{\\partial x}{\\partial \\xi}`. + The derivative is obtained by finding the derivative of the analytical + function :math:`x \\equiv x(\\xi, \\eta)`. + + The derivation of the analytical form of + :math:`\\frac{\\partial x}{\\partial \\xi}` is given in this `worksheet`_. + + .. _worksheet: https://goo.gl/ffCJvn + + Parameters + ---------- + x_nodes : np.ndarray [8] + :math:`x` nodes. + + xi : af.Array + :math:`\\xi` coordinates for which + :math:`\\frac{\\partial x}{\\partial \\xi}` has to be found. + This could be a single number or a meshgrid. + + eta : af.Array + :math:`\\eta` coordinate for which + :math:`\\frac{\\partial x}{\\partial \\xi}` has to be found. + This could be a single number or a meshgrid. + + Returns + ------- + dx_dxi : af.Array + :math:`\\frac{\\partial x}{\\partial \\xi}` calculated at + :math:`(\\xi, \\eta)` coordinate. + ''' + + dN_0_dxi = -0.25*eta**2 + (0.5*eta + 0.5)*xi - 0.25*eta + dN_1_dxi = 0.5*eta**2 - 0.5 + dN_2_dxi = -0.25*eta**2 + (-0.5*eta + 0.5)*xi + 0.25*eta + dN_3_dxi = (eta - 1.0)*xi + dN_4_dxi = 0.25*eta**2 + (-0.5*eta + 0.5)*xi - 0.25*eta + dN_5_dxi = -0.5*eta**2 + 0.5 + dN_6_dxi = 0.25*eta**2 + (0.5*eta + 0.5)*xi + 0.25*eta + dN_7_dxi = (-1.0*eta - 1.0)*xi + + dx_dxi = dN_0_dxi * x_nodes[0] \ + + dN_1_dxi * x_nodes[1] \ + + dN_2_dxi * x_nodes[2] \ + + dN_3_dxi * x_nodes[3] \ + + dN_4_dxi * x_nodes[4] \ + + dN_5_dxi * x_nodes[5] \ + + dN_6_dxi * x_nodes[6] \ + + dN_7_dxi * x_nodes[7] + + return dx_dxi + + +def dx_deta(x_nodes, xi, eta): + ''' + Computes the derivative :math:`\\frac{\\partial x}{\\partial \\eta}`. + The derivative is obtained by finding the derivative of the analytical + function :math:`x \\equiv x(\\xi, \\eta)`. + + Parameters + ---------- + y_nodes : np.ndarray [8] + :math:`y` nodes. + + xi : af.Array + :math:`\\xi` coordinate for which + :math:`\\frac{\\partial x}{\\partial \\eta}` has to be found. + + eta : af.Array + :math:`\\eta` coordinate for which + :math:`\\frac{\\partial x}{\\partial \\eta}` has to be found. + + Returns + ------- + dx_deta : af.Array + :math:`\\frac{\\partial x}{\\partial \\eta}` calculated at + :math:`(\\xi, \\eta)` coordinate. + ''' + + dN_0_deta = -(eta - xi - 1) * (0.25 * xi - 0.25) \ + - (eta + 1) * (0.25 * xi - 0.25) + dN_1_deta = -2 * eta * (-0.5 * xi + 0.5) + dN_2_deta = -(eta + xi + 1) * (0.25 * xi - 0.25) \ + - (eta - 1) * (0.25 * xi - 0.25) + dN_3_deta = 0.5 * xi**2 - 0.5 + dN_4_deta = -(eta - xi + 1) * (-0.25 * xi - 0.25) \ + - (eta - 1) * (-0.25 * xi - 0.25) + dN_5_deta = -2 * eta * (0.5 * xi + 0.5) + dN_6_deta = -(eta + xi - 1) * (-0.25 * xi - 0.25) \ + - (eta + 1) * (-0.25 * xi - 0.25) + dN_7_deta = -0.5 * xi**2 + 0.5 + + dx_deta = dN_0_deta * x_nodes[0] \ + + dN_1_deta * x_nodes[1] \ + + dN_2_deta * x_nodes[2] \ + + dN_3_deta * x_nodes[3] \ + + dN_4_deta * x_nodes[4] \ + + dN_5_deta * x_nodes[5] \ + + dN_6_deta * x_nodes[6] \ + + dN_7_deta * x_nodes[7] + + return dx_deta + + +def dy_dxi(y_nodes, xi, eta): + ''' + Computes the derivative :math:`\\frac{\\partial y}{\\partial \\xi}`. + The derivative is obtained by finding the derivative of the analytical + function :math:`y \\equiv y(\\xi, \\eta)`. + + Parameters + ---------- + y_nodes : np.ndarray [8] + :math:`y` nodes. + + xi : af.Array + :math:`\\xi` coordinate for which + :math:`\\frac{\\partial y}{\\partial \\xi}` has to be found. + + eta : af.Array + :math:`\\eta` coordinate for which + :math:`\\frac{\\partial y}{\\partial \\xi}` has to be found. + + Returns + ------- + af.Array + :math:`\\frac{\\partial y}{\\partial \\xi}` calculated at + :math:`(\\xi, \\eta)` coordinate. + ''' + return dx_dxi(y_nodes, xi, eta) + + +def dy_deta(y_nodes, xi, eta): + ''' + Computes the derivative :math:`\\frac{\\partial y}{\\partial \\eta}`. + The derivative is obtained by finding the derivative of the analytical + function :math:`y \\equiv y(\\xi, \\eta)`. + + Parameters + ---------- + y_nodes : np.ndarray [8] + :math:`y` nodes. + + xi : af.Array + :math:`\\xi` coordinate for which + :math:`\\frac{\\partial y}{\\partial \\eta}` has to be found. + + eta : af.Array + :math:`\\eta` coordinate for which + :math:`\\frac{\\partial y}{\\partial \\eta}` has to be found. + + Returns + ------- + af.Array + :math:`\\frac{\\partial y}{\\partial \\eta}` calculated at + :math:`(\\xi, \\eta)` coordinate. + ''' + return dx_deta(y_nodes, xi, eta) + + +def jacobian(x_nodes, y_nodes, xi, eta): + ''' + Calculates the jocobian for the corrdinate transformation from + :math:`xy` space to :math:`\\xi \\eta` space. + + Parameters + ---------- + x_nodes : np.ndarray [8] + :math:`x` nodes. + + y_nodes : np.ndarray [8] + :math:`y` nodes. + + xi : af.Array + :math:`\\xi` coordinate at which + Jacobian has to be found. + + eta : af.Array + :math:`\\eta` coordinate at which + Jacobian has to be found. + + Returns + ------- + float + Returns the Jacobian calculated using this formula. + + .. math:: J\\Big(\\frac{x, y}{\\xi, \\eta}\Big) = + \\frac{\\partial x}{\\partial \\xi} \ + \\frac{\\partial y}{\\partial \\eta} \ + - \\frac{\\partial x}{\\partial \\eta} \ + \\frac{\\partial y}{\\partial \\xi} + ''' + + dx_dxi_ = dx_dxi (x_nodes, xi, eta) + dy_deta_ = dy_deta (y_nodes, xi, eta) + dx_deta_ = dx_deta (x_nodes, xi, eta) + dy_dxi_ = dy_dxi (y_nodes, xi, eta) + + return (dx_dxi_ * dy_deta_) - (dx_deta_ * dy_dxi_) + + +def A_matrix(): + ''' + Calculates the tensor product for the given ``params.N_LGL``. + A tensor product element is given by: + + .. math:: [A^{pq}_{ij}] = \\iint L_p(\\xi) L_q(\\eta) \\ + L_i(\\xi) L_j(\\eta) d\\xi d\\eta + + This function finds :math:`L_p(\\xi) L_i(\\xi)` and + :math:`L_q(\\eta) L_j(\\eta)` and passes it to the ``integrate_2d`` + function. + + Returns + ------- + A : af.Array [N_LGL^2 N_LGL^2 1 1] + The tensor product. + ''' + + N_LGL = params.N_LGL + xi_LGL = lagrange.LGL_points(N_LGL) + eta_LGL = lagrange.LGL_points(N_LGL) + + _, Lp = lagrange.lagrange_polynomials(xi_LGL) + Lp = af.np_to_af_array(Lp) + Li = Lp.copy() + + _, Lq = lagrange.lagrange_polynomials(eta_LGL) + Lq = af.np_to_af_array(Lq) + Lj = Lq.copy() + + Li = af.reorder(Li, d0 = 0, d1 = 2, d2 = 1) + Li = af.transpose(af.tile(Li, d0 = 1, d1 = N_LGL)) + Li = af.moddims(Li, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL) + Li = af.transpose(af.tile(Li, d0 = 1, d1 = N_LGL * N_LGL)) + Li = af.transpose(af.moddims(af.transpose(Li), + d0 = N_LGL * N_LGL * N_LGL * N_LGL, + d1 = 1, d2 = N_LGL)) + Li = af.reorder(Li, d0 = 2, d1 = 1, d2 = 0) + + Lp = af.reorder(Lp, d0 = 0, d1 = 2, d2 = 1) + Lp = af.transpose(af.tile(Lp, d0 = 1, d1 = N_LGL)) + Lp = af.moddims(Lp, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL) + Lp = af.tile(Lp, d0 = 1, d1 = N_LGL * N_LGL) + Lp = af.moddims(af.transpose(Lp), + d0 = N_LGL * N_LGL * N_LGL * N_LGL, + d1 = 1, d2 = N_LGL) + Lp = af.reorder(af.transpose(Lp), d0 = 2, d1 = 1, d2 = 0) + + Lp_Li = af.transpose(af.convolve1(Li, Lp, conv_mode = af.CONV_MODE.EXPAND)) + + Lj = af.reorder(Lj, d0 = 0, d1 = 2, d2 = 1) + Lj = af.tile(Lj, d0 = 1, d1 = N_LGL) + Lj = af.moddims(Lj, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL) + Lj = af.transpose(af.tile(Lj, d0 = 1, d1 = N_LGL * N_LGL)) + Lj = af.moddims(af.transpose(Lj), + d0 = N_LGL * N_LGL * N_LGL * N_LGL, + d1 = 1, d2 = N_LGL) + Lj = af.reorder(Lj, d0 = 2, d1 = 0, d2 = 1) + + Lq = af.reorder(Lq, d0 = 0, d1 = 2, d2 = 1) + Lq = af.tile(Lq, d0 = 1, d1 = N_LGL) + Lq = af.moddims(Lq, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL) + Lq = af.tile(Lq, d0 = 1, d1 = N_LGL * N_LGL) + Lq = af.moddims(af.transpose(Lq), + d0 = N_LGL * N_LGL * N_LGL * N_LGL, + d1 = 1, d2 = N_LGL) + Lq = af.reorder(af.transpose(Lq), d0 = 2, d1 = 1, d2 = 0) + + Lq_Lj = af.transpose(af.convolve1(Lj, Lq, conv_mode = af.CONV_MODE.EXPAND)) + + A = af.moddims(utils.integrate_2d(Lp_Li, Lq_Lj, + order = 9, + scheme = 'gauss'), + d0 = N_LGL * N_LGL, d1 = N_LGL * N_LGL) + + return A diff --git a/docs/conf.py b/docs/conf.py index 51eec9e..90a253e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,7 +31,7 @@ def __getattr__(cls, name): MOCK_MODULES = ['gmshtranslator', 'gmshtranslator.gmshtranslator', 'arrayfire', 'lagrange', 'scipy', 'numpy', 'matplotlib', 'matplotlib.lines', - 'dg_maxwell.params', 'tqdm'] + 'dg_maxwell.params', 'tqdm', 'h5py'] sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) # -- General configuration ------------------------------------------------ @@ -149,7 +149,7 @@ def __getattr__(cls, name): # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "docs/quazar_logo.png" +html_logo = "quazar_logo.png" # The name of an image file (relative to this directory) to use as a favicon of # the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/docs/submodules.rst b/docs/submodules.rst index 6867920..3f17743 100644 --- a/docs/submodules.rst +++ b/docs/submodules.rst @@ -4,16 +4,22 @@ Submodules ========== -+---------------------+--------------------------------------------------------+ -|:ref:`utils` | Utility functions like add, linspace etc. | -+---------------------+--------------------------------------------------------+ -|:ref:`lagrange` | Functions related to Lagrange polynomials, LGL_points. | -+---------------------+--------------------------------------------------------+ -|:ref:`msh_parser` | Functions for parsing the **.msh** files | -| | and plotting meshes. | -+---------------------+--------------------------------------------------------+ -|:ref:`isoparam` | Functions for isoparametric mapping. | -+---------------------+--------------------------------------------------------+ -|:ref:`wave_equation` | Functions related to time_evolution of | -| | 1D wave equation. | -+---------------------+--------------------------------------------------------+ ++------------------------+------------------------------------------------+ +|:ref:`utils` | Utility functions like add, linspace etc. | ++------------------------+------------------------------------------------+ +|:ref:`lagrange` | Functions related to Lagrange polynomials, | +| | LGL_points. | ++------------------------+------------------------------------------------+ +|:ref:`msh_parser` | Functions for parsing the **.msh** files | +| | and plotting meshes. | ++------------------------+------------------------------------------------+ +|:ref:`isoparam` | Functions for isoparametric mapping. | ++------------------------+------------------------------------------------+ +|:ref:`wave_equation` | Functions related to time_evolution of | +| | 1D wave equation. | ++------------------------+------------------------------------------------+ +|:ref:`wave_equation_2d` | Functions related to time_evolution of | +| | 2D wave equation. | ++------------------------+------------------------------------------------+ +|:ref:`unit_tests` | Unit tests | ++------------------------+------------------------------------------------+ diff --git a/docs/unit_tests.rst b/docs/unit_tests.rst new file mode 100644 index 0000000..73a70e5 --- /dev/null +++ b/docs/unit_tests.rst @@ -0,0 +1,29 @@ +.. _unit_tests: + +========== +unit_tests +========== + +.. automodule:: + dg_maxwell.tests.isoparam.test_isoparam + :members: + +.. automodule:: + dg_maxwell.tests.lagrange.test_lagrange + :members: + +.. automodule:: + dg_maxwell.tests.msh_parser.test_msh_parser + :members: + +.. automodule:: + dg_maxwell.tests.wave_equation_2d.test_wave_equation_2d + :members: + +.. automodule:: + dg_maxwell.tests.test_waveEqn + :members: + +.. automodule:: + dg_maxwell.tests.utils.test_utils + :members: diff --git a/docs/wave_equation_2d.rst b/docs/wave_equation_2d.rst new file mode 100644 index 0000000..4b4bf80 --- /dev/null +++ b/docs/wave_equation_2d.rst @@ -0,0 +1,9 @@ +.. _wave_equation_2d: + +================ +wave_equation_2d +================ + +.. automodule:: + dg_maxwell.wave_equation_2d + :members: diff --git a/examples/1D_wave_equation_solver.ipynb b/examples/1D_wave_equation_solver.ipynb index 81d894c..e278f9b 100644 --- a/examples/1D_wave_equation_solver.ipynb +++ b/examples/1D_wave_equation_solver.ipynb @@ -32,9 +32,9 @@ "You will also have to change the **arrayfire** backend you want to use in all the files where the\n", "function **arrayfire.set_backend(< backend \\>)** is being used. You may choose from the following\n", "three backends:\n", - "1. cuda\n", - "2. opencl\n", - "3. cpu\n", + "1. ``cuda``\n", + "2. ``opencl``\n", + "3. ``cpu``\n", "\n", "**Caution:** If you change the backend, make sure to change the backend\n", "in every file. Failing to do so may result in unexpected errors.\n", @@ -43,7 +43,7 @@ "The time evolution of the wave will be stored in the **results/1D_Wave_images**\n", "directory.\n", "\n", - "To create a video from the images on Ubuntu16.04, follow these steps\n", + "To create a video from the images on Ubuntu16.04, enter the following in the terminal\n", "```\n", "sudo apt-get install ffmpeg\n", "cd results/1D_Wave_images\n", diff --git a/examples/A_matrix_2d_from_integrate.ipynb b/examples/A_matrix_2d_from_integrate.ipynb new file mode 100644 index 0000000..2f90223 --- /dev/null +++ b/examples/A_matrix_2d_from_integrate.ipynb @@ -0,0 +1,633 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculates A matrix given by\n", + "\n", + "$$[A^{pq}_{ij}] = \\iint L_p(\\xi) L_q(\\eta) L_i(\\xi) L_j(\\eta) d\\xi d\\eta$$" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "\n", + "from dg_maxwell import params\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "from dg_maxwell import wave_equation_2d as w2d\n", + "\n", + "af.set_backend(params.backend)\n", + "\n", + "plt.rcParams['figure.figsize'] = 12, 7.5\n", + "plt.rcParams['lines.linewidth'] = 1.5\n", + "plt.rcParams['font.family'] = 'serif'\n", + "plt.rcParams['font.weight'] = 'bold'\n", + "plt.rcParams['font.size'] = 20 \n", + "plt.rcParams['font.sans-serif'] = 'serif'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['axes.linewidth'] = 1.5\n", + "plt.rcParams['axes.titlesize'] = 'medium'\n", + "plt.rcParams['axes.labelsize'] = 'medium'\n", + "\n", + "plt.rcParams['xtick.major.size'] = 8\n", + "plt.rcParams['xtick.minor.size'] = 4\n", + "plt.rcParams['xtick.major.pad'] = 8\n", + "plt.rcParams['xtick.minor.pad'] = 8\n", + "plt.rcParams['xtick.color'] = 'k'\n", + "plt.rcParams['xtick.labelsize'] = 'medium'\n", + "plt.rcParams['xtick.direction'] = 'in' \n", + "\n", + "plt.rcParams['ytick.major.size'] = 8\n", + "plt.rcParams['ytick.minor.size'] = 4\n", + "plt.rcParams['ytick.major.pad'] = 8\n", + "plt.rcParams['ytick.minor.pad'] = 8\n", + "plt.rcParams['ytick.color'] = 'k'\n", + "plt.rcParams['ytick.labelsize'] = 'medium'\n", + "plt.rcParams['ytick.direction'] = 'in'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['text.latex.unicode'] = True\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[4 1 1 1]\n", + " -1.0000 \n", + " -0.4472 \n", + " 0.4472 \n", + " 1.0000 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "# Calculating A matrix using the integrate function\n", + "N_LGL = 4\n", + "xi_LGL = lagrange.LGL_points(N_LGL)\n", + "eta_LGL = lagrange.LGL_points(N_LGL)\n", + "\n", + "print(xi_LGL)\n", + "_, Lp = lagrange.lagrange_polynomials(xi_LGL)\n", + "Lp = af.np_to_af_array(Lp)\n", + "Li = Lp.copy()\n", + "\n", + "_, Lq = lagrange.lagrange_polynomials(eta_LGL)\n", + "Lq = af.np_to_af_array(Lq)\n", + "Lj = Lq.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(256, 7)\n" + ] + } + ], + "source": [ + "Li = af.reorder(Li, d0 = 0, d1 = 2, d2 = 1)\n", + "Li = af.transpose(af.tile(Li, d0 = 1, d1 = N_LGL))\n", + "Li = af.moddims(Li, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Li = af.transpose(af.tile(Li, d0 = 1, d1 = N_LGL * N_LGL))\n", + "Li = af.transpose(af.moddims(af.transpose(Li), d0 = N_LGL * N_LGL * N_LGL * N_LGL, d1 = 1, d2 = N_LGL))\n", + "Li = af.reorder(Li, d0 = 2, d1 = 1, d2 = 0)\n", + "# print(Li.shape)\n", + "\n", + "Lp = af.reorder(Lp, d0 = 0, d1 = 2, d2 = 1)\n", + "Lp = af.transpose(af.tile(Lp, d0 = 1, d1 = N_LGL))\n", + "Lp = af.moddims(Lp, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Lp = af.tile(Lp, d0 = 1, d1 = N_LGL * N_LGL)\n", + "Lp = af.moddims(af.transpose(Lp), d0 = N_LGL * N_LGL * N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Lp = af.reorder(af.transpose(Lp), d0 = 2, d1 = 1, d2 = 0)\n", + "# print(af.transpose(bar))\n", + "\n", + "Lp_Li = af.transpose(af.convolve1(Li, Lp, conv_mode = af.CONV_MODE.EXPAND))\n", + "print(Lp_Li.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(256, 7)\n" + ] + } + ], + "source": [ + "Lj = af.reorder(Lj, d0 = 0, d1 = 2, d2 = 1)\n", + "Lj = af.tile(Lj, d0 = 1, d1 = N_LGL)\n", + "Lj = af.moddims(Lj, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Lj = af.transpose(af.tile(Lj, d0 = 1, d1 = N_LGL * N_LGL))\n", + "Lj = af.moddims(af.transpose(Lj), d0 = N_LGL * N_LGL * N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Lj = af.reorder(Lj, d0 = 2, d1 = 0, d2 = 1)\n", + "# print(foo.shape)\n", + "\n", + "Lq = af.reorder(Lq, d0 = 0, d1 = 2, d2 = 1)\n", + "Lq = af.tile(Lq, d0 = 1, d1 = N_LGL)\n", + "Lq = af.moddims(Lq, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Lq = af.tile(Lq, d0 = 1, d1 = N_LGL * N_LGL)\n", + "Lq = af.moddims(af.transpose(Lq), d0 = N_LGL * N_LGL * N_LGL * N_LGL, d1 = 1, d2 = N_LGL)\n", + "Lq = af.reorder(af.transpose(Lq), d0 = 2, d1 = 1, d2 = 0)\n", + "# print(bar)\n", + "\n", + "Lq_Lj = af.transpose(af.convolve1(Lj, Lq, conv_mode = af.CONV_MODE.EXPAND))\n", + "print(Lq_Lj.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "A = af.moddims(utils.integrate_2d(Lp_Li, Lq_Lj, order = 9, scheme = 'gauss'), d0 = N_LGL * N_LGL, d1 = N_LGL * N_LGL)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#plot the matrix structure for the matrices.\n", + "\n", + "A_matrix_structure = np.zeros((A.shape[0], A.shape[1]))\n", + "threshold = 1e-2\n", + "non_zero_indices = np.where(af.abs(A) > threshold)\n", + "A_matrix_structure[non_zero_indices] = 1.\n", + "\n", + "plt.gca().invert_yaxis()\n", + "plt.contourf(A_matrix_structure, 100, cmap = 'Blues')\n", + "plt.axes().set_aspect('equal')\n", + "plt.colorbar()\n", + "plt.title('Tensor product Structure')\n", + "plt.savefig('tensor_product_structure.png')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "0.0204081632653059\n", + "0.00760567339285643\n", + "-0.00760567339285637\n", + "0.00340136054421767\n", + "0.00760567339285635\n", + "0.00283446712018141\n", + "-0.00283446712018138\n", + "0.00126761223214273\n", + "-0.00760567339285636\n", + "-0.00283446712018142\n", + "0.00283446712018139\n", + "-0.00126761223214273\n", + "0.00340136054421766\n", + "0.00126761223214275\n", + "-0.00126761223214273\n", + "0.000566893424036280\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "A_ref = af.np_to_af_array(np.array([[0.0204081632653059, #pq = 00\n", + " 0.00760567339285643,\n", + " -0.00760567339285637,\n", + " 0.00340136054421767,\n", + " 0.00760567339285635,\n", + " 0.00283446712018141,\n", + " -0.00283446712018138,\n", + " 0.00126761223214273,\n", + " -0.00760567339285636,\n", + " -0.00283446712018142,\n", + " 0.00283446712018139,\n", + " -0.00126761223214273,\n", + " 0.00340136054421766,\n", + " 0.00126761223214275,\n", + " -0.00126761223214273,\n", + " 0.000566893424036280],\n", + " [0.00760567339285643, # pq = 01\n", + " 0.102040816326530,\n", + " 0.0170068027210882,\n", + " -0.00760567339285634,\n", + " 0.00283446712018141,\n", + " 0.0380283669642819,\n", + " 0.00633806116071359,\n", + " -0.00283446712018138,\n", + " -0.00283446712018142,\n", + " -0.0380283669642820,\n", + " -0.00633806116071361,\n", + " 0.00283446712018138,\n", + " 0.00126761223214275,\n", + " 0.0170068027210884,\n", + " 0.00283446712018138,\n", + " -0.00126761223214273],\n", + " [-0.00760567339285637, # pq = 02\n", + " 0.0170068027210882,\n", + " 0.102040816326530,\n", + " 0.00760567339285636,\n", + " -0.00283446712018138,\n", + " 0.00633806116071359,\n", + " 0.0380283669642819,\n", + " 0.00283446712018138,\n", + " 0.00283446712018139,\n", + " -0.00633806116071361,\n", + " -0.0380283669642820,\n", + " -0.00283446712018139,\n", + " -0.00126761223214273,\n", + " 0.00283446712018138,\n", + " 0.0170068027210884,\n", + " 0.00126761223214273],\n", + " [0.00340136054421767, # pq = 03\n", + " -0.00760567339285634,\n", + " 0.00760567339285636,\n", + " 0.0204081632653059,\n", + " 0.00126761223214273,\n", + " -0.00283446712018138,\n", + " 0.00283446712018138,\n", + " 0.00760567339285635,\n", + " -0.00126761223214273,\n", + " 0.00283446712018138,\n", + " -0.00283446712018139,\n", + " -0.00760567339285636,\n", + " 0.000566893424036280,\n", + " -0.00126761223214273,\n", + " 0.00126761223214273,\n", + " 0.00340136054421766],\n", + " [0.00760567339285635, # pq = 10\n", + " 0.00283446712018141,\n", + " -0.00283446712018138,\n", + " 0.00126761223214273,\n", + " 0.102040816326530,\n", + " 0.0380283669642819,\n", + " -0.0380283669642820,\n", + " 0.0170068027210884,\n", + " 0.0170068027210882,\n", + " 0.00633806116071365,\n", + " -0.00633806116071360,\n", + " 0.00283446712018137,\n", + " -0.00760567339285636,\n", + " -0.00283446712018142,\n", + " 0.00283446712018139,\n", + " -0.00126761223214273],\n", + " [0.00283446712018141, # pq = 11\n", + " 0.0380283669642819,\n", + " 0.00633806116071359,\n", + " -0.00283446712018138,\n", + " 0.0380283669642819,\n", + " 0.510204081632653,\n", + " 0.0850340136054413,\n", + " -0.0380283669642820,\n", + " 0.00633806116071365,\n", + " 0.0850340136054412,\n", + " 0.0141723356009067,\n", + " -0.00633806116071359,\n", + " -0.00283446712018142,\n", + " -0.0380283669642820,\n", + " -0.00633806116071361,\n", + " 0.00283446712018138],\n", + " [-0.00283446712018138, # pq = 12\n", + " 0.00633806116071359,\n", + " 0.0380283669642819,\n", + " 0.00283446712018138,\n", + " -0.0380283669642820,\n", + " 0.0850340136054413,\n", + " 0.510204081632653,\n", + " 0.0380283669642819,\n", + " -0.00633806116071360,\n", + " 0.0141723356009067,\n", + " 0.0850340136054412,\n", + " 0.00633806116071359,\n", + " 0.00283446712018139,\n", + " -0.00633806116071361,\n", + " -0.0380283669642820,\n", + " -0.00283446712018139],\n", + " [0.00126761223214273, # pq = 13\n", + " -0.00283446712018138,\n", + " 0.00283446712018138,\n", + " 0.00760567339285635,\n", + " 0.0170068027210884,\n", + " -0.0380283669642820,\n", + " 0.0380283669642819,\n", + " 0.102040816326530,\n", + " 0.00283446712018137,\n", + " -0.00633806116071359,\n", + " 0.00633806116071359,\n", + " 0.0170068027210882,\n", + " -0.00126761223214273,\n", + " 0.00283446712018138,\n", + " -0.00283446712018139,\n", + " -0.00760567339285636],\n", + " [-0.00760567339285636, # pq = 20\n", + " -0.00283446712018142,\n", + " 0.00283446712018139,\n", + " -0.00126761223214273,\n", + " 0.0170068027210882,\n", + " 0.00633806116071365,\n", + " -0.00633806116071360,\n", + " 0.00283446712018137,\n", + " 0.102040816326530,\n", + " 0.0380283669642819,\n", + " -0.0380283669642820,\n", + " 0.0170068027210884,\n", + " 0.00760567339285635,\n", + " 0.00283446712018141,\n", + " -0.00283446712018138,\n", + " 0.00126761223214273],\n", + " [-0.00283446712018142, # pq = 21\n", + " -0.0380283669642820,\n", + " -0.00633806116071361,\n", + " 0.00283446712018138,\n", + " 0.00633806116071365,\n", + " 0.0850340136054412,\n", + " 0.0141723356009067,\n", + " -0.00633806116071359,\n", + " 0.0380283669642819,\n", + " 0.510204081632653,\n", + " 0.0850340136054413,\n", + " -0.0380283669642820,\n", + " 0.00283446712018141,\n", + " 0.0380283669642819,\n", + " 0.00633806116071359,\n", + " -0.00283446712018138],\n", + " [0.00283446712018139, # pq = 22\n", + " -0.00633806116071361,\n", + " -0.0380283669642820,\n", + " -0.00283446712018139,\n", + " -0.00633806116071360,\n", + " 0.0141723356009067,\n", + " 0.0850340136054412,\n", + " 0.00633806116071359,\n", + " -0.0380283669642820,\n", + " 0.0850340136054413,\n", + " 0.510204081632653,\n", + " 0.0380283669642819,\n", + " -0.00283446712018138,\n", + " 0.00633806116071359,\n", + " 0.0380283669642819,\n", + " 0.00283446712018138],\n", + " [-0.00126761223214273, # pq = 23\n", + " 0.00283446712018138,\n", + " -0.00283446712018139,\n", + " -0.00760567339285636,\n", + " 0.00283446712018137,\n", + " -0.00633806116071359,\n", + " 0.00633806116071359,\n", + " 0.0170068027210882,\n", + " 0.0170068027210884,\n", + " -0.0380283669642820,\n", + " 0.0380283669642819,\n", + " 0.102040816326530,\n", + " 0.00126761223214273,\n", + " -0.00283446712018138,\n", + " 0.00283446712018138,\n", + " 0.00760567339285635],\n", + " [0.00340136054421766, # pq = 30\n", + " 0.00126761223214275,\n", + " -0.00126761223214273,\n", + " 0.000566893424036280,\n", + " -0.00760567339285636,\n", + " -0.00283446712018142,\n", + " 0.00283446712018139,\n", + " -0.00126761223214273,\n", + " 0.00760567339285635,\n", + " 0.00283446712018141,\n", + " -0.00283446712018138,\n", + " 0.00126761223214273,\n", + " 0.0204081632653059,\n", + " 0.00760567339285643,\n", + " -0.00760567339285637,\n", + " 0.00340136054421767],\n", + " [0.00126761223214275, # pq = 31\n", + " 0.0170068027210884,\n", + " 0.00283446712018138,\n", + " -0.00126761223214273,\n", + " -0.00283446712018142,\n", + " -0.0380283669642820,\n", + " -0.00633806116071361,\n", + " 0.00283446712018138,\n", + " 0.00283446712018141,\n", + " 0.0380283669642819,\n", + " 0.00633806116071359,\n", + " -0.00283446712018138,\n", + " 0.00760567339285643,\n", + " 0.102040816326530,\n", + " 0.0170068027210882,\n", + " -0.00760567339285634],\n", + " [-0.00126761223214273, # pq = 32\n", + " 0.00283446712018138,\n", + " 0.0170068027210884,\n", + " 0.00126761223214273,\n", + " 0.00283446712018139,\n", + " -0.00633806116071361,\n", + " -0.0380283669642820,\n", + " -0.00283446712018139,\n", + " -0.00283446712018138,\n", + " 0.00633806116071359,\n", + " 0.0380283669642819,\n", + " 0.00283446712018138,\n", + " -0.00760567339285637,\n", + " 0.0170068027210882,\n", + " 0.102040816326530,\n", + " 0.00760567339285636],\n", + " [0.000566893424036280, # pq = 33\n", + " -0.00126761223214273,\n", + " 0.00126761223214273,\n", + " 0.00340136054421766,\n", + " -0.00126761223214273,\n", + " 0.00283446712018138,\n", + " -0.00283446712018139,\n", + " -0.00760567339285636,\n", + " 0.00126761223214273,\n", + " -0.00283446712018138,\n", + " 0.00283446712018138,\n", + " 0.00760567339285635,\n", + " 0.00340136054421767,\n", + " -0.00760567339285634,\n", + " 0.00760567339285636,\n", + " 0.0204081632653059]]))\n", + "\n", + "A_ref_np = np.array(A_ref)\n", + "np.savetxt('A_matrix_ref.csv', A_ref_np, delimiter = ',')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n", + "[[ True True True True True True True True True True True True\n", + " True True True True]]\n" + ] + } + ], + "source": [ + "print(np.abs(np.array(A[0]) - np.array(A_ref[0])) < 1e-5)\n", + "print(np.abs(np.array(A[1]) - np.array(A_ref[1])) < 1e-5)\n", + "print(np.abs(np.array(A[2]) - np.array(A_ref[2])) < 1e-5)\n", + "print(np.abs(np.array(A[3]) - np.array(A_ref[3])) < 1e-5)\n", + "print(np.abs(np.array(A[4]) - np.array(A_ref[4])) < 1e-5)\n", + "print(np.abs(np.array(A[5]) - np.array(A_ref[5])) < 1e-4)\n", + "print(np.abs(np.array(A[6]) - np.array(A_ref[6])) < 1e-4)\n", + "print(np.abs(np.array(A[7]) - np.array(A_ref[7])) < 1e-5)\n", + "print(np.abs(np.array(A[8]) - np.array(A_ref[8])) < 1e-5)\n", + "print(np.abs(np.array(A[9]) - np.array(A_ref[9])) < 1e-4)\n", + "print(np.abs(np.array(A[10]) - np.array(A_ref[10])) < 1e-4)\n", + "print(np.abs(np.array(A[11]) - np.array(A_ref[11])) < 1e-5)\n", + "print(np.abs(np.array(A[12]) - np.array(A_ref[12])) < 1e-5)\n", + "print(np.abs(np.array(A[13]) - np.array(A_ref[13])) < 1e-5)\n", + "print(np.abs(np.array(A[14]) - np.array(A_ref[14])) < 1e-5)\n", + "print(np.abs(np.array(A[15]) - np.array(A_ref[15])) < 1e-5)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "af.all_true(af.abs(A - A_ref) < 1e-4)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# A matrix from the wave_equation_2d module\n", + "A = w2d.A_matrix()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "af.display(A[7, 0], 14)" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/A_matrix_2d_old_derivation.ipynb b/examples/A_matrix_2d_old_derivation.ipynb new file mode 100644 index 0000000..7da6233 --- /dev/null +++ b/examples/A_matrix_2d_old_derivation.ipynb @@ -0,0 +1,733 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculates A matrix given by\n", + "\n", + "$$[A^{pq}_{ij}] = \\iint L_p(\\xi) L_q(\\eta) L_i(\\xi) L_j(\\eta) J \\Big(\\frac{x, y}{\\xi, \\eta} \\Big) d\\xi d\\eta$$" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmshtranslator friendly reminder: rules and actions prototypes\n", + "\n", + "\n", + "def node_condition(tag,x,y,z,physgroups): \n", + "def node_action(tag,x,y,z):\n", + "def element_condition(eletag,eletype,physgrp,nodes):\n", + "def element_action(eletag,eletype,physgrp,nodes):\n" + ] + } + ], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "af.set_backend('cpu')\n", + "\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "from dg_maxwell import wave_equation_2d as w2d\n", + "from dg_maxwell import msh_parser\n", + "\n", + "plt.rcParams['figure.figsize'] = 12, 7.5\n", + "plt.rcParams['lines.linewidth'] = 1.5\n", + "plt.rcParams['font.family'] = 'serif'\n", + "plt.rcParams['font.weight'] = 'bold'\n", + "plt.rcParams['font.size'] = 20 \n", + "plt.rcParams['font.sans-serif'] = 'serif'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['axes.linewidth'] = 1.5\n", + "plt.rcParams['axes.titlesize'] = 'medium'\n", + "plt.rcParams['axes.labelsize'] = 'medium'\n", + "\n", + "plt.rcParams['xtick.major.size'] = 8\n", + "plt.rcParams['xtick.minor.size'] = 4\n", + "plt.rcParams['xtick.major.pad'] = 8\n", + "plt.rcParams['xtick.minor.pad'] = 8\n", + "plt.rcParams['xtick.color'] = 'k'\n", + "plt.rcParams['xtick.labelsize'] = 'medium'\n", + "plt.rcParams['xtick.direction'] = 'in' \n", + "\n", + "plt.rcParams['ytick.major.size'] = 8\n", + "plt.rcParams['ytick.minor.size'] = 4\n", + "plt.rcParams['ytick.major.pad'] = 8\n", + "plt.rcParams['ytick.minor.pad'] = 8\n", + "plt.rcParams['ytick.color'] = 'k'\n", + "plt.rcParams['ytick.labelsize'] = 'medium'\n", + "plt.rcParams['ytick.direction'] = 'in'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['text.latex.unicode'] = True\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "N_LGL = 8\n", + "xi_LGL = lagrange.LGL_points(N_LGL)\n", + "eta_LGL = lagrange.LGL_points(N_LGL)\n", + "\n", + "N_quad = N_LGL + 1\n", + "xi_quad = lagrange.LGL_points(N_quad)\n", + "eta_quad = lagrange.LGL_points(N_quad)\n", + "xi_quad, eta_quad = utils.af_meshgrid(xi_quad, eta_quad)\n", + "xi_quad = af.moddims(xi_quad, d0 = xi_quad.shape[0] * xi_quad.shape[1])\n", + "eta_quad = af.moddims(eta_quad, d0 = eta_quad.shape[0] * eta_quad.shape[1])\n", + "\n", + "L_basis_poly1d, L_basis_af = lagrange.lagrange_polynomials(xi_LGL)\n", + "L_basis_af = af.np_to_af_array(L_basis_af)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "lagrange_basis_index = af.range(N_LGL)\n", + "Li_xi = lagrange.Li_basis_value(L_basis_af, lagrange_basis_index, xi_quad)\n", + "Lj_eta = lagrange.Li_basis_value(L_basis_af, lagrange_basis_index, eta_quad)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(8, 81)\n", + "(8, 81)\n" + ] + } + ], + "source": [ + "print(Li_xi.shape)\n", + "print(Lj_eta.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(64, 81)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Li_Lj = utils.outer_prod(Li_xi, Lj_eta)\n", + "Li_Lj = af.reorder(af.moddims(Li_Lj, d0 = N_LGL * N_LGL, d1 = 1, d2 = N_quad * N_quad), d0 = 0, d1 = 2, d2 = 1)\n", + "Li_Lj.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(64, 64, 81)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Lp_Li_Lq_Lj = utils.outer_prod(Li_Lj, Li_Lj)\n", + "Lp_Li_Lq_Lj.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmshTranslator: Initializing...\n", + "gmshTranslator: Mesh has 49 nodes.\n", + "gmshTranslator: Mesh has 25 elements.\n", + "gmshTranslator: Processed 78 lines.\n", + "gmshTranslator: There are 1 physical groups available: \n", + "gmshTranslator: > 0\n", + "gmshTranslator: Parsing nodes\n", + "gmshTranslator: Parsing elements\n", + "gmshTranslator: No rules for elements... skipping elements.\n", + "gmshTranslator: Parsing nodes\n", + "gmshTranslator: No rules for nodes... skipping nodes.\n", + "gmshTranslator: Parsing elements\n", + "(64, 64, 81)\n" + ] + } + ], + "source": [ + "nodes, elements = msh_parser.read_order_2_msh('read_and_plot_mesh/mesh/rectangular.msh')\n", + "jacobian = w2d.jacobian(nodes[elements[0], 0], nodes[elements[0], 1], xi_quad, eta_quad)\n", + "jacobian = af.reorder(jacobian, d0 = 2, d1 = 1, d2 = 0)\n", + "jacobian = af.tile(jacobian, d0 = Lp_Li_Lq_Lj.shape[0], d1 = Lp_Li_Lq_Lj.shape[1])\n", + "print(jacobian.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Calculating the gaussian weights\n", + "\n", + "g_weights_xi = lagrange.gaussian_weights(N_quad)\n", + "g_weights_eta = lagrange.gaussian_weights(N_quad)\n", + "\n", + "g_weights_xi_eta = utils.outer_prod(g_weights_xi, g_weights_eta)\n", + "g_weights_xi_eta = af.moddims(g_weights_xi_eta, d0 = g_weights_xi_eta.shape[0] * g_weights_xi_eta.shape[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(81,)\n" + ] + } + ], + "source": [ + "print(g_weights_xi_eta.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(64, 64, 81)\n" + ] + } + ], + "source": [ + "g_weights_xi_eta = af.reorder(g_weights_xi_eta, d0 = 2, d1 = 1, d2 = 0)\n", + "g_weights_xi_eta = af.tile(g_weights_xi_eta, d0 = Lp_Li_Lq_Lj.shape[0], d1 = Lp_Li_Lq_Lj.shape[1])\n", + "print(g_weights_xi_eta.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "A = af.sum(g_weights_xi_eta * Lp_Li_Lq_Lj * jacobian, dim = 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(64, 64)\n" + ] + } + ], + "source": [ + "print(A.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n5f8D9xXhQtTCKe8AAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#plot the matrix structure for the matrices.\n", + "\n", + "A_matrix_structure = np.zeros((A.shape[0], A.shape[1]))\n", + "threshold = 1e-4\n", + "non_zero_indices = np.where(af.abs(A) > threshold)\n", + "A_matrix_structure[non_zero_indices] = 1.\n", + "\n", + "plt.gca().invert_yaxis()\n", + "plt.contourf(A_matrix_structure, 100, cmap = 'Blues')\n", + "plt.axes().set_aspect('equal')\n", + "plt.colorbar()\n", + "plt.title('Tensor product Structure')\n", + "plt.savefig('tensor_product_structure.png')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: long int\n", + "\n", + "[3 1 1 1]\n", + " 1 \n", + " 2 \n", + " 3 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: long int\n", + "\n", + "[3 3 1 1]\n", + " 1 2 3 \n", + " 2 4 6 \n", + " 3 6 9 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: long int\n", + "\n", + "[9 1 1 1]\n", + " 1 \n", + " 2 \n", + " 3 \n", + " 2 \n", + " 4 \n", + " 6 \n", + " 3 \n", + " 6 \n", + " 9 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: long int\n", + "\n", + "[9 9 1 1]\n", + " 1 2 3 2 4 6 3 6 9 \n", + " 2 4 6 4 8 12 6 12 18 \n", + " 3 6 9 6 12 18 9 18 27 \n", + " 2 4 6 4 8 12 6 12 18 \n", + " 4 8 12 8 16 24 12 24 36 \n", + " 6 12 18 12 24 36 18 36 54 \n", + " 3 6 9 6 12 18 9 18 27 \n", + " 6 12 18 12 24 36 18 36 54 \n", + " 9 18 27 18 36 54 27 54 81 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "x = af.range(3, dtype = af.Dtype.u32) + 1\n", + "print(x)\n", + "x_x = utils.outer_prod(x, x)\n", + "print(x_x)\n", + "x_x = af.moddims(x_x, x.shape[0] * x.shape[0])\n", + "print(x_x)\n", + "x_x_x_x = utils.outer_prod(x_x, x_x)\n", + "print(x_x_x_x)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1 2 3 2 4 6 3 6 9]\n", + " [ 2 4 6 4 8 12 6 12 18]\n", + " [ 3 6 9 6 12 18 9 18 27]\n", + " [ 2 4 6 4 8 12 6 12 18]\n", + " [ 4 8 12 8 16 24 12 24 36]\n", + " [ 6 12 18 12 24 36 18 36 54]\n", + " [ 3 6 9 6 12 18 9 18 27]\n", + " [ 6 12 18 12 24 36 18 36 54]\n", + " [ 9 18 27 18 36 54 27 54 81]]\n" + ] + } + ], + "source": [ + "print(np.outer(x_x, x_x))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "N_quad = N_LGL + 1\n", + "xi_quad = af.range(N_quad, dtype = af.Dtype.u32)\n", + "eta_quad = af.range(N_quad, dtype = af.Dtype.u32)\n", + "xi_quad, eta_quad = utils.af_meshgrid(xi_quad, eta_quad)\n", + "xi_quad = af.moddims(xi_quad, d0 = xi_quad.shape[0] * xi_quad.shape[1])\n", + "eta_quad = af.moddims(eta_quad, d0 = eta_quad.shape[0] * eta_quad.shape[1])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[81 1 1 1]\n", + " 0 \n", + " 0 \n", + " 0 \n", + " 0 \n", + " 0 \n", + " 0 \n", + " 0 \n", + " 0 \n", + " 0 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 1 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 2 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 3 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 4 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 5 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 6 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 7 \n", + " 8 \n", + " 8 \n", + " 8 \n", + " 8 \n", + " 8 \n", + " 8 \n", + " 8 \n", + " 8 \n", + " 8 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[81 1 1 1]\n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + " 0 \n", + " 1 \n", + " 2 \n", + " 3 \n", + " 4 \n", + " 5 \n", + " 6 \n", + " 7 \n", + " 8 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(xi_quad)\n", + "print(eta_quad)\n", + "# for xi, eta in zip(xi_quad, eta_quad):\n", + "# print(np.array(xi)[0], np.array(eta)[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmshTranslator: Ending\n", + "gmshTranslator: Ending\n", + "gmshTranslator: Ending\n" + ] + }, + { + "data": { + "text/plain": [ + "\u001b[0;31mSignature:\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md1\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md2\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md3\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mDocstring:\u001b[0m\n", + "Tile an array along specified dimensions.\n", + "\n", + "Parameters\n", + "----------\n", + "\n", + "a : af.Array.\n", + " Multi dimensional array.\n", + "\n", + "d0: int.\n", + " The number of times `a` has to be tiled along first dimension.\n", + "\n", + "d1: optional: int. default: 1.\n", + " The number of times `a` has to be tiled along second dimension.\n", + "\n", + "d2: optional: int. default: 1.\n", + " The number of times `a` has to be tiled along third dimension.\n", + "\n", + "d3: optional: int. default: 1.\n", + " The number of times `a` has to be tiled along fourth dimension.\n", + "\n", + "Returns\n", + "-------\n", + "\n", + "out : af.Array\n", + " An array containing the input after tiling the the specified number of times.\n", + "\n", + "Examples\n", + "---------\n", + "\n", + ">>> import arrayfire as af\n", + ">>> a = af.randu(2, 3)\n", + ">>> b = af.tile(a, 2)\n", + ">>> c = af.tile(a, 1, 2)\n", + ">>> d = af.tile(a, 2, 2)\n", + ">>> af.display(a)\n", + "[2 3 1 1]\n", + " 0.9508 0.2591 0.7928\n", + " 0.5367 0.8359 0.8719\n", + "\n", + ">>> af.display(b)\n", + "[4 3 1 1]\n", + " 0.4107 0.9518 0.4198\n", + " 0.8224 0.1794 0.0081\n", + " 0.4107 0.9518 0.4198\n", + " 0.8224 0.1794 0.0081\n", + "\n", + ">>> af.display(c)\n", + "[2 6 1 1]\n", + " 0.4107 0.9518 0.4198 0.4107 0.9518 0.4198\n", + " 0.8224 0.1794 0.0081 0.8224 0.1794 0.0081\n", + "\n", + ">>> af.display(d)\n", + "[4 6 1 1]\n", + " 0.4107 0.9518 0.4198 0.4107 0.9518 0.4198\n", + " 0.8224 0.1794 0.0081 0.8224 0.1794 0.0081\n", + " 0.4107 0.9518 0.4198 0.4107 0.9518 0.4198\n", + " 0.8224 0.1794 0.0081 0.8224 0.1794 0.0081\n", + "\u001b[0;31mFile:\u001b[0m /usr/local/lib/python3.5/dist-packages/arrayfire/data.py\n", + "\u001b[0;31mType:\u001b[0m function\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "af.tile?" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/Lp_Li_Lq_Lj_product_to_find_A_matrix.ipynb b/examples/Lp_Li_Lq_Lj_product_to_find_A_matrix.ipynb new file mode 100644 index 0000000..25d3587 --- /dev/null +++ b/examples/Lp_Li_Lq_Lj_product_to_find_A_matrix.ipynb @@ -0,0 +1,515 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "from dg_maxwell import params\n", + "\n", + "af.set_backend(params.backend)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3, 81)\n" + ] + } + ], + "source": [ + "# Prototype implementation for Lp_Li\n", + "N = 3\n", + "\n", + "N_a = 3\n", + "foo = af.range(N * N_a, dtype = af.Dtype.u32)\n", + "foo = af.moddims(foo, d0 = N, d2 = 1, d1 = N_a)\n", + "\n", + "N_b = 3\n", + "bar = af.range(N * N_b, dtype = af.Dtype.u32)\n", + "bar = af.moddims(bar, d0 = N, d2 = 1, d1 = N_b)\n", + "\n", + "foo_init = foo.copy()\n", + "bar_init = bar.copy()\n", + "\n", + "# print(foo)\n", + "# print(bar)\n", + "\n", + "foo = af.reorder(foo, d0 = 0, d1 = 2, d2 = 1)\n", + "foo = af.transpose(af.tile(foo, d0 = 1, d1 = N))\n", + "foo = af.moddims(foo, d0 = N * N, d1 = 1, d2 = N)\n", + "foo = af.transpose(af.tile(foo, d0 = 1, d1 = N * N))\n", + "foo = af.transpose(af.moddims(af.transpose(foo), d0 = N * N * N * N, d1 = 1, d2 = N))\n", + "foo = af.reorder(foo, d0 = 2, d1 = 1, d2 = 0)\n", + "print(foo.shape)\n", + "\n", + "bar = af.reorder(bar, d0 = 0, d1 = 2, d2 = 1)\n", + "bar = af.transpose(af.tile(bar, d0 = 1, d1 = N))\n", + "bar = af.moddims(bar, d0 = N * N, d1 = 1, d2 = N)\n", + "bar = af.tile(bar, d0 = 1, d1 = N * N)\n", + "bar = af.moddims(af.transpose(bar), d0 = N * N * N * N, d1 = 1, d2 = N)\n", + "bar = af.reorder(af.transpose(bar), d0 = 2, d1 = 1, d2 = 0)\n", + "# print(af.transpose(bar))\n", + "\n", + "foo_bar = af.transpose(af.convolve1(foo, bar, conv_mode = af.CONV_MODE.EXPAND))\n", + "# print(foo_bar)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(81, 5)\n" + ] + } + ], + "source": [ + "# Prototype implementation for Lq_Lj\n", + "N = 3\n", + "\n", + "N_a = 3\n", + "foo = af.range(N * N_a, dtype = af.Dtype.u32)\n", + "foo = af.moddims(foo, d0 = N, d2 = 1, d1 = N_a)\n", + "\n", + "N_b = 3\n", + "bar = af.range(N * N_b, dtype = af.Dtype.u32)\n", + "bar = af.moddims(bar, d0 = N, d2 = 1, d1 = N_b)\n", + "\n", + "# print(foo)\n", + "# print(bar)\n", + "\n", + "foo = af.reorder(foo, d0 = 0, d1 = 2, d2 = 1)\n", + "foo = af.tile(foo, d0 = 1, d1 = N)\n", + "foo = af.moddims(foo, d0 = N * N, d1 = 1, d2 = N)\n", + "foo = af.transpose(af.tile(foo, d0 = 1, d1 = N * N))\n", + "foo = af.moddims(af.transpose(foo), d0 = N * N * N * N, d1 = 1, d2 = N)\n", + "foo = af.reorder(foo, d0 = 2, d1 = 0, d2 = 1)\n", + "# print(foo.shape)\n", + "\n", + "bar = af.reorder(bar, d0 = 0, d1 = 2, d2 = 1)\n", + "bar = af.tile(bar, d0 = 1, d1 = N)\n", + "bar = af.moddims(bar, d0 = N * N, d1 = 1, d2 = N)\n", + "bar = af.tile(bar, d0 = 1, d1 = N * N)\n", + "bar = af.moddims(af.transpose(bar), d0 = N * N * N * N, d1 = 1, d2 = N)\n", + "bar = af.reorder(af.transpose(bar), d0 = 2, d1 = 1, d2 = 0)\n", + "# print(bar)\n", + "\n", + "foo_bar = af.transpose(af.convolve1(foo, bar, conv_mode = af.CONV_MODE.EXPAND))\n", + "print(foo_bar.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "foo = af.reorder(foo, d0 = 0, d1 = 2, d2 = 1)\n", + "# foo = af.tile(foo, d0 = 1, d1 = N)\n", + "# foo = af.moddims()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Poly1d square using convolve1\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 81 81 1]\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 \n", + " 9 9 9 8 9 9 9 9 9 11 12 12 12 12 12 11 12 11 14 14 15 14 15 14 14 14 15 9 9 8 9 8 9 8 9 8 12 12 12 11 12 11 12 11 12 14 15 15 15 14 15 15 15 15 9 8 9 9 9 9 9 9 9 12 12 12 12 12 12 12 12 12 15 15 15 15 15 15 15 15 15 \n", + " 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 36 35 36 35 36 36 36 36 36 42 42 42 42 42 42 42 42 42 47 47 47 48 48 48 48 48 48 36 36 36 36 36 36 36 36 36 42 42 42 42 42 42 42 42 42 48 48 48 48 48 48 48 48 48 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 2 1 2 1 2 2 2 1 2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 2 1 2 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 2 1 1 1 2 1 2 1 2 \n", + " 12 12 12 12 11 12 12 12 11 15 15 16 15 15 16 16 16 15 20 20 20 20 20 20 20 20 20 12 12 11 12 12 12 11 12 12 16 16 16 15 15 15 15 15 15 20 20 20 20 20 20 20 20 20 12 11 12 11 12 11 12 12 12 16 16 16 16 16 16 16 16 16 20 20 20 20 19 20 20 20 20 \n", + " 42 41 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 49 56 56 56 56 56 56 56 56 56 42 42 41 42 42 42 42 42 42 49 49 49 49 48 49 49 49 49 55 56 55 55 56 56 56 56 56 42 42 42 42 42 42 42 42 42 49 49 49 49 49 49 49 49 48 56 56 56 56 56 56 56 56 56 \n", + "\n", + " 0 0 0 0 0 0 0 0 0 2 1 2 2 1 2 1 2 1 4 3 4 3 4 4 4 3 4 0 0 0 0 0 0 0 0 0 1 2 2 1 2 1 2 1 2 3 4 3 4 3 4 3 4 3 0 0 0 0 0 0 0 0 0 2 1 2 2 2 1 1 2 1 4 3 3 3 4 3 4 3 4 \n", + " 15 15 15 15 15 15 14 15 14 20 20 20 20 20 20 20 20 20 25 25 24 25 25 25 25 25 25 15 15 14 15 15 14 14 14 14 20 19 19 19 20 20 20 19 20 25 25 25 25 25 25 25 25 25 15 15 14 15 14 15 15 15 15 20 20 20 20 20 20 20 20 20 25 25 25 25 25 25 25 25 25 \n", + " 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 56 64 64 64 64 64 64 63 64 64 48 48 47 48 48 48 48 48 48 56 56 56 56 55 56 56 56 56 63 63 64 64 64 64 64 64 64 48 48 48 48 48 48 48 48 48 56 56 56 56 56 56 56 56 55 64 64 64 63 64 64 64 63 64 \n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print('Poly1d square using convolve1')\n", + "# print(af.transpose(af.convolve1(af.transpose(foo), af.transpose(bar), conv_mode = af.CONV_MODE.EXPAND)))\n", + "# print(utils.poly1d_product(foo, bar))\n", + "print(af.transpose(af.convolve1(af.transpose(foo),\n", + " af.transpose(bar),\n", + " conv_mode = af.CONV_MODE.EXPAND)))\n" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/integrate_1d.ipynb b/examples/integrate_1d.ipynb new file mode 100644 index 0000000..cf90c60 --- /dev/null +++ b/examples/integrate_1d.ipynb @@ -0,0 +1,142 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Numerical integration of single variable polynomials\n", + "This example uses the `integrate_1d` function to calculate\n", + "the integral\n", + "$$\\int_{-1}^{1} P(x) dx$$\n", + "where $P(x)$ is a polynomial.\n", + "\n", + "For this example,\n", + "$$P(x) = L^2_i$$\n", + "\n", + "Where,\n", + "\n", + "$L_i$, $i \\in \\{0 ... 7\\}$, are the Lagrange polynomials created using $8$ Legendre-Gauss-Lobatto(LGL) points." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import arrayfire as af\n", + "\n", + "from dg_maxwell import params\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "from dg_maxwell import wave_equation_2d as w2d\n", + "\n", + "af.set_backend(params.backend)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "N_LGL = 8\n", + "xi_LGL = lagrange.LGL_points(N_LGL)\n", + "eta_LGL = lagrange.LGL_points(N_LGL)\n", + "_, Li_xi = lagrange.lagrange_polynomials(xi_LGL)\n", + "_, Lj_eta = lagrange.lagrange_polynomials(eta_LGL)\n", + "\n", + "Li_xi = af.np_to_af_array(Li_xi)\n", + "Lp_xi = Li_xi.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "Li_Lp = utils.poly1d_product(Li_xi, Lp_xi)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[8 1 1 1]\n", + " 0.0333 \n", + " 0.1967 \n", + " 0.3184 \n", + " 0.3850 \n", + " 0.3850 \n", + " 0.3184 \n", + " 0.1967 \n", + " 0.0333 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[8 1 1 1]\n", + " 0.0333 \n", + " 0.1967 \n", + " 0.3184 \n", + " 0.3850 \n", + " 0.3850 \n", + " 0.3184 \n", + " 0.1967 \n", + " 0.0333 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(utils.integrate_1d(Li_Lp, order = 9,\n", + " scheme = 'gauss'))\n", + "print(utils.integrate_1d(Li_Lp, order = N_LGL + 1,\n", + " scheme = 'lobatto'))" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/integrate_2d.ipynb b/examples/integrate_2d.ipynb new file mode 100644 index 0000000..36d46ef --- /dev/null +++ b/examples/integrate_2d.ipynb @@ -0,0 +1,134 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Numerical integration of double variable polynomials\n", + "This example uses the `integrate_2d` function to calculate\n", + "the integral\n", + "$$\\int_{-1}^{1} P_0(x) P_1(y) \\partial x \\partial y$$\n", + "where $P_0(x)$ and $P_1(y)$ are polynomials.\n", + "\n", + "For this example,\n", + "$$P_0(x) = L^2_i$$\n", + "$$P_1(y) = L^2_i$$\n", + "\n", + "Where,\n", + "\n", + "$L_i$, $i \\in \\{0 ... 7\\}$, are the Lagrange polynomials created using $8$ Legendre-Gauss-Lobatto(LGL) points." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as n\n", + "import arrayfire as af\n", + "\n", + "from dg_maxwell import params\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "from dg_maxwell import wave_equation_2d as w2d\n", + "\n", + "af.set_backend(params.backend)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "N_LGL = 8\n", + "xi_LGL = lagrange.LGL_points(N_LGL)\n", + "eta_LGL = lagrange.LGL_points(N_LGL)\n", + "_, Li_xi = lagrange.lagrange_polynomials(xi_LGL)\n", + "_, Lj_eta = lagrange.lagrange_polynomials(eta_LGL)\n", + "\n", + "Li_xi = af.np_to_af_array(Li_xi)\n", + "Lj_eta = af.np_to_af_array(Lj_eta)\n", + "Lp_xi = Li_xi.copy()\n", + "Lq_eta = Lj_eta.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "Li_Lp = utils.poly1d_product(Li_xi, Lp_xi)\n", + "Lj_Lq = utils.poly1d_product(Lj_eta, Lq_eta)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "integral_Li_Lp_Lj_Lq = utils.integrate_2d(Li_Lp, Lj_Lq, order = 9, scheme = 'gauss')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "ref_integral = af.np_to_af_array(np.array([0.00111111111111037,\n", + " 0.0386740852528278,\n", + " 0.101366575556200,\n", + " 0.148195388573733,\n", + " 0.148195388573733,\n", + " 0.101366575556200,\n", + " 0.0386740852528278,\n", + " 0.00111111111111037]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "af.display(af.abs(integral_Li_Lp_Lj_Lq - ref_integral), 16)" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/matmul3d.ipynb b/examples/matmul3d.ipynb new file mode 100644 index 0000000..f26e990 --- /dev/null +++ b/examples/matmul3d.ipynb @@ -0,0 +1,229 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "af.set_backend('cpu')\n", + "\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "\n", + "plt.rcParams['figure.figsize'] = 12, 7.5\n", + "plt.rcParams['lines.linewidth'] = 1.5\n", + "plt.rcParams['font.family'] = 'serif'\n", + "plt.rcParams['font.weight'] = 'bold'\n", + "plt.rcParams['font.size'] = 20 \n", + "plt.rcParams['font.sans-serif'] = 'serif'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['axes.linewidth'] = 1.5\n", + "plt.rcParams['axes.titlesize'] = 'medium'\n", + "plt.rcParams['axes.labelsize'] = 'medium'\n", + "\n", + "plt.rcParams['xtick.major.size'] = 8\n", + "plt.rcParams['xtick.minor.size'] = 4\n", + "plt.rcParams['xtick.major.pad'] = 8\n", + "plt.rcParams['xtick.minor.pad'] = 8\n", + "plt.rcParams['xtick.color'] = 'k'\n", + "plt.rcParams['xtick.labelsize'] = 'medium'\n", + "plt.rcParams['xtick.direction'] = 'in' \n", + "\n", + "plt.rcParams['ytick.major.size'] = 8\n", + "plt.rcParams['ytick.minor.size'] = 4\n", + "plt.rcParams['ytick.major.pad'] = 8\n", + "plt.rcParams['ytick.minor.pad'] = 8\n", + "plt.rcParams['ytick.color'] = 'k'\n", + "plt.rcParams['ytick.labelsize'] = 'medium'\n", + "plt.rcParams['ytick.direction'] = 'in'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['text.latex.unicode'] = True" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "M = 2\n", + "N = 3\n", + "P = 4\n", + "Q = 3\n", + "\n", + "a = af.range(M * N * Q, dtype = af.Dtype.u32)\n", + "b = af.range(N * P * Q, dtype = af.Dtype.u32)\n", + "\n", + "a = af.moddims(a, d0 = M, d1 = N, d2 = Q)\n", + "b = af.moddims(b, d0 = N, d1 = P, d2 = Q)\n", + "\n", + "a_init = a\n", + "b_init = b" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[2 3 3 1]\n", + " 0 2 4 \n", + " 1 3 5 \n", + "\n", + " 6 8 10 \n", + " 7 9 11 \n", + "\n", + " 12 14 16 \n", + " 13 15 17 \n", + "\n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 4 3 1]\n", + " 0 3 6 9 \n", + " 1 4 7 10 \n", + " 2 5 8 11 \n", + "\n", + " 12 15 18 21 \n", + " 13 16 19 22 \n", + " 14 17 20 23 \n", + "\n", + " 24 27 30 33 \n", + " 25 28 31 34 \n", + " 26 29 32 35 \n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(a)\n", + "print(b)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[2 4 3 1]\n", + " 10 28 46 64 \n", + " 13 40 67 94 \n", + "\n", + " 316 388 460 532 \n", + " 355 436 517 598 \n", + "\n", + " 1054 1180 1306 1432 \n", + " 1129 1264 1399 1534 \n", + "\n", + "\n", + "\n" + ] + } + ], + "source": [ + "a_dot_b = utils.matmul_3D(a, b)\n", + "print(a_dot_b)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "matmul_0 = \n", + " [[10 28 46 64]\n", + " [13 40 67 94]]\n", + "\n", + "matmul_1 = \n", + " [[316 388 460 532]\n", + " [355 436 517 598]]\n", + "\n", + "matmul_2 = \n", + " [[1054 1180 1306 1432]\n", + " [1129 1264 1399 1534]]\n" + ] + } + ], + "source": [ + "print('matmul_0 = \\n', np.matmul(np.array(a_init[:, :, 0]),\n", + " np.array(b_init[:, :, 0])), end = '\\n\\n')\n", + "print('matmul_1 = \\n', np.matmul(np.array(a_init[:, :, 1]),\n", + " np.array(b_init[:, :, 1])), end = '\\n\\n')\n", + "print('matmul_2 = \\n', np.matmul(np.array(a_init[:, :, 2]),\n", + " np.array(b_init[:, :, 2])))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/outer_product.ipynb b/examples/outer_product.ipynb new file mode 100644 index 0000000..dc9d2e0 --- /dev/null +++ b/examples/outer_product.ipynb @@ -0,0 +1,154 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "af.set_backend('cpu')\n", + "\n", + "from dg_maxwell import utils" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "a_n1 = 4\n", + "a_n2 = 1\n", + "a = af.range(a_n1)\n", + "a = af.tile(a, d0 = 1, d1 = a_n2)\n", + "\n", + "b_n1 = 6\n", + "b_n2 = 1\n", + "b = af.range(b_n1)\n", + "b = af.tile(b, d0 = 1, d1 = b_n2)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "a_reorder = af.reorder(a, d0 = 0, d1 = 2, d2 = 1)\n", + "b_reorder = af.reorder(b, d0 = 0, d1 = 2, d2 = 1)\n", + "b_reorder = af.transpose(b_reorder)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "a_tile = af.tile(a_reorder, d0 = 1, d1 = b.shape[0])\n", + "b_tile = af.tile(b_reorder, d0 = a.shape[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: float\n", + "\n", + "[4 6 1 1]\n", + " 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 \n", + " 0.0000 1.0000 2.0000 3.0000 4.0000 5.0000 \n", + " 0.0000 2.0000 4.0000 6.0000 8.0000 10.0000 \n", + " 0.0000 3.0000 6.0000 9.0000 12.0000 15.0000 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "# Calculate the outer product along the first two dimension\n", + "print(a_tile * b_tile)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "tuple index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mouter_prod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/workspace/quazar/git/amanabt/DG_Maxwell/dg_maxwell/utils.py\u001b[0m in \u001b[0;36mouter_prod\u001b[0;34m(a, b)\u001b[0m\n\u001b[1;32m 241\u001b[0m '''\n\u001b[1;32m 242\u001b[0m \u001b[0ma_n1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 243\u001b[0;31m \u001b[0ma_n2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 244\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma_n1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 245\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md0\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma_n2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: tuple index out of range" + ] + } + ], + "source": [ + "utils.outer_prod(a, b)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "print(a.numdims())" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/pol1d_multiplication.ipynb b/examples/pol1d_multiplication.ipynb new file mode 100644 index 0000000..c2fa208 --- /dev/null +++ b/examples/pol1d_multiplication.ipynb @@ -0,0 +1,239 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Product of two polynomial using convolve\n", + "\n", + "This example illustrates the use of `af.convolve1` to find\n", + "the product of two polynomials.\n", + "\n", + "It is assumed that the initial polynomials are of the form\n", + "\n", + "$$\n", + "P = \n", + "\\begin{bmatrix}\n", + "a^0_0 & a^0_1 & ... &a^0_{N - 1} \\\\ \n", + "a^1_0 & a^1_1 & ... &a^1_{N - 1} \\\\\n", + "... & ... & ... & ... \\\\\n", + "a^M_0 & a^M_1 & ... &a^M_{N - 1}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "where,\n", + "$a^m_n$ is the $n^{th}$ coefficient of the $m^{th}$ polynomial.\n", + "\n", + "The degree of the two polynomial sets could be different, but the\n", + "pairs of polynomials to be multiplied should be the same." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "from dg_maxwell import params\n", + "\n", + "af.set_backend(params.backend)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 3 1 1]\n", + " 0 3 6 \n", + " 1 4 7 \n", + " 2 5 8 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 2 1 1]\n", + " 0 3 \n", + " 1 4 \n", + " 2 5 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "N = 3\n", + "\n", + "N_a = 3\n", + "foo = af.range(N * N_a, dtype = af.Dtype.u32)\n", + "foo = af.moddims(foo, d0 = N, d1 = N_a)\n", + "\n", + "N_b = 2\n", + "bar = af.range(N * N_b, dtype = af.Dtype.u32)\n", + "bar = af.moddims(bar, d0 = N, d1 = N_b)\n", + "\n", + "print(foo)\n", + "print(bar)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "original polynomials\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 3 1 1]\n", + " 0 3 6 \n", + " 1 4 7 \n", + " 2 5 8 \n", + "\n", + "\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 2 1 1]\n", + " 0 3 \n", + " 1 4 \n", + " 2 5 \n", + "\n", + "\n", + "Poly1d square using convolve1\n", + "arrayfire.Array()\n", + "Type: unsigned int\n", + "\n", + "[3 4 1 1]\n", + " 0 0 9 18 \n", + " 1 8 23 28 \n", + " 4 20 41 40 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "print('original polynomials')\n", + "print(foo)\n", + "print(bar)\n", + "\n", + "print('Poly1d square using convolve1')\n", + "# print(af.transpose(af.convolve1(af.transpose(foo), af.transpose(bar), conv_mode = af.CONV_MODE.EXPAND)))\n", + "print(utils.poly1d_product(foo, bar))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + "3 x + 6\t<---------- original foo polynomial\n", + "\n", + " \n", + "3\t<---------- original bar polynomial\n", + "\n", + " \n", + "9 x + 18\t<---------- foo_poly * bar_poly\n", + "\n", + "\n", + "*********************************************************\n", + "\n", + " 2\n", + "1 x + 4 x + 7\t<---------- original foo polynomial\n", + "\n", + " \n", + "1 x + 4\t<---------- original bar polynomial\n", + "\n", + " 3 2\n", + "1 x + 8 x + 23 x + 28\t<---------- foo_poly * bar_poly\n", + "\n", + "\n", + "*********************************************************\n", + "\n", + " 2\n", + "2 x + 5 x + 8\t<---------- original foo polynomial\n", + "\n", + " \n", + "2 x + 5\t<---------- original bar polynomial\n", + "\n", + " 3 2\n", + "4 x + 20 x + 41 x + 40\t<---------- foo_poly * bar_poly\n", + "\n", + "\n", + "*********************************************************\n", + "\n" + ] + } + ], + "source": [ + "for poly_foo, poly_bar in zip(foo, bar):\n", + " foo_poly = np.poly1d(np.array(af.transpose(poly_foo)))\n", + " bar_poly = np.poly1d(np.array(af.transpose(poly_bar)))\n", + " print(foo_poly, end = '')\n", + " print('\\t<---------- original foo polynomial\\n')\n", + " print(bar_poly, end = '')\n", + " print('\\t<---------- original bar polynomial\\n')\n", + "\n", + " print(foo_poly * bar_poly, end = '')\n", + " print('\\t<---------- foo_poly * bar_poly\\n')\n", + " print('\\n*********************************************************\\n')" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/polyval.ipynb b/examples/polyval.ipynb new file mode 100644 index 0000000..bbd7060 --- /dev/null +++ b/examples/polyval.ipynb @@ -0,0 +1,153 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Finding the value from a given polynomial\n", + "\n", + "This example illustraites the usage of the function `utils.polyval_1d`\n", + "to find the value of polynomials at certain coordinates." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "af.set_backend('cpu')\n", + "\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "\n", + "plt.rcParams['figure.figsize'] = 12, 7.5\n", + "plt.rcParams['lines.linewidth'] = 1.5\n", + "plt.rcParams['font.family'] = 'serif'\n", + "plt.rcParams['font.weight'] = 'bold'\n", + "plt.rcParams['font.size'] = 20 \n", + "plt.rcParams['font.sans-serif'] = 'serif'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['axes.linewidth'] = 1.5\n", + "plt.rcParams['axes.titlesize'] = 'medium'\n", + "plt.rcParams['axes.labelsize'] = 'medium'\n", + "\n", + "plt.rcParams['xtick.major.size'] = 8\n", + "plt.rcParams['xtick.minor.size'] = 4\n", + "plt.rcParams['xtick.major.pad'] = 8\n", + "plt.rcParams['xtick.minor.pad'] = 8\n", + "plt.rcParams['xtick.color'] = 'k'\n", + "plt.rcParams['xtick.labelsize'] = 'medium'\n", + "plt.rcParams['xtick.direction'] = 'in' \n", + "\n", + "plt.rcParams['ytick.major.size'] = 8\n", + "plt.rcParams['ytick.minor.size'] = 4\n", + "plt.rcParams['ytick.major.pad'] = 8\n", + "plt.rcParams['ytick.minor.pad'] = 8\n", + "plt.rcParams['ytick.color'] = 'k'\n", + "plt.rcParams['ytick.labelsize'] = 'medium'\n", + "plt.rcParams['ytick.direction'] = 'in'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['text.latex.unicode'] = True" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "N_LGL = 8\n", + "xi_LGL = lagrange.LGL_points(N_LGL)\n", + "L_basis_poly1d, L_basis_af = lagrange.lagrange_polynomials(xi_LGL)\n", + "L_basis_af = af.np_to_af_array(L_basis_af)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[3 8 1 1]\n", + " -3.3516 3.3516 3.8672 -3.8672 -1.0547 1.0547 0.0391 -0.0391 \n", + " 8.1407 -7.0966 -11.3475 9.8921 3.3316 -2.9043 -0.1249 0.1088 \n", + " -10.3581 6.1289 18.6834 -11.0549 -8.6700 5.1301 0.3448 -0.2040 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "i = af.np_to_af_array(np.arange(3, dtype = np.int32))\n", + "print(L_basis_af[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[3 10 1 1]\n", + " 1.0000 -0.1321 0.0258 0.0466 -0.0296 -0.0237 0.0233 0.0074 -0.0165 -0.0000 \n", + " -0.0000 0.7586 -0.0882 -0.1403 0.0840 0.0650 -0.0627 -0.0195 0.0432 0.0000 \n", + " 0.0000 0.4874 0.9819 0.3719 -0.1691 -0.1156 0.1039 0.0309 -0.0662 -0.0000 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(utils.polyval_1d(L_basis_af[i], af.np_to_af_array(np.linspace(-1., 1, 10))))" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/polyval_2d.ipynb b/examples/polyval_2d.ipynb new file mode 100644 index 0000000..5bfd572 --- /dev/null +++ b/examples/polyval_2d.ipynb @@ -0,0 +1,209 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "sys.path.insert(0, os.path.abspath('../'))\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "import arrayfire as af\n", + "af.set_backend('cpu')\n", + "\n", + "from dg_maxwell import utils\n", + "from dg_maxwell import lagrange\n", + "\n", + "plt.rcParams['figure.figsize'] = 12, 7.5\n", + "plt.rcParams['lines.linewidth'] = 1.5\n", + "plt.rcParams['font.family'] = 'serif'\n", + "plt.rcParams['font.weight'] = 'bold'\n", + "plt.rcParams['font.size'] = 20\n", + "plt.rcParams['font.sans-serif'] = 'serif'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['axes.linewidth'] = 1.5\n", + "plt.rcParams['axes.titlesize'] = 'medium'\n", + "plt.rcParams['axes.labelsize'] = 'medium'\n", + "\n", + "plt.rcParams['xtick.major.size'] = 8\n", + "plt.rcParams['xtick.minor.size'] = 4\n", + "plt.rcParams['xtick.major.pad'] = 8\n", + "plt.rcParams['xtick.minor.pad'] = 8\n", + "plt.rcParams['xtick.color'] = 'k'\n", + "plt.rcParams['xtick.labelsize'] = 'medium'\n", + "plt.rcParams['xtick.direction'] = 'in' \n", + "\n", + "plt.rcParams['ytick.major.size'] = 8\n", + "plt.rcParams['ytick.minor.size'] = 4\n", + "plt.rcParams['ytick.major.pad'] = 8\n", + "plt.rcParams['ytick.minor.pad'] = 8\n", + "plt.rcParams['ytick.color'] = 'k'\n", + "plt.rcParams['ytick.labelsize'] = 'medium'\n", + "plt.rcParams['ytick.direction'] = 'in'\n", + "plt.rcParams['text.usetex'] = True\n", + "plt.rcParams['text.latex.unicode'] = True" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "N_LGL = 8\n", + "xi_LGL = lagrange.LGL_points(N_LGL)\n", + "L_basis_poly1d, L_basis_af = lagrange.lagrange_polynomials(xi_LGL)\n", + "L_basis_af = af.np_to_af_array(L_basis_af)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: float\n", + "\n", + "[1 1 1 1]\n", + " 0.2000 \n", + "\n", + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[1 10 1 1]\n", + " -1.0000 -0.7778 -0.5556 -0.3333 -0.1111 0.1111 0.3333 0.5556 0.7778 1.0000 \n", + "\n", + "arrayfire.Array()\n", + "Type: float\n", + "\n", + "[1 10 1 1]\n", + " 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 \n", + "\n" + ] + } + ], + "source": [ + "# Polyval 2D\n", + "polynomials = L_basis_af\n", + "\n", + "x = utils.linspace(-1, 1, 10)\n", + "y = utils.linspace(-1, 1, 2)\n", + "y = af.Array([0.2])\n", + "print(y)\n", + "x, y = utils.af_meshgrid(x, y)\n", + "\n", + "print(x)\n", + "print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 10, 1, 1]\n", + "(1, 10)\n", + "(8, 10)\n", + "(8, 10)\n", + "(8, 8)\n", + "(8, 10)\n", + "(8, 8)\n" + ] + } + ], + "source": [ + "N = int(polynomials.shape[1])\n", + "print(utils.shape(x))\n", + "print(y.shape)\n", + "x = af.reorder(x, d0 = 2, d1 = 1, d2 = 0)\n", + "y = af.reorder(y, d0 = 2, d1 = 1, d2 = 0)\n", + "x = af.tile(x, d0 = N)\n", + "y = af.tile(y, d0 = N)\n", + "print(x.shape)\n", + "print(y.shape)\n", + "\n", + "power_x = af.tile(af.range(N), d0 = 1, d1 = utils.shape(x)[1], d2 = utils.shape(x)[2])\n", + "power_y = af.flip(power_x, dim = 0)\n", + "\n", + "x_power = x ** power_x\n", + "y_power = y ** power_y\n", + "\n", + "xy = x_power * y_power\n", + "print(af.tile(polynomials, d0 = 1, d1 = 1, d2 = utils.shape(xy)[2]).shape)\n", + "print(xy.shape)\n", + "print(af.tile(polynomials, d0 = 1, d1 = 1, d2 = utils.shape(xy)[2]).shape)\n", + "polyval = utils.matmul_3D(af.tile(polynomials, d0 = 1, d1 = 1, d2 = utils.shape(xy)[2]), xy)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arrayfire.Array()\n", + "Type: double\n", + "\n", + "[8 10 1 1]\n", + " 0.0034 -0.0032 -0.0009 0.0000 -0.0000 -0.0000 -0.0000 0.0004 0.0019 -0.0023 \n", + " -0.0099 0.0094 0.0027 -0.0000 0.0001 0.0000 0.0000 -0.0011 -0.0051 0.0062 \n", + " 0.0216 -0.0219 -0.0076 -0.0005 -0.0001 -0.0000 -0.0000 0.0018 0.0086 -0.0107 \n", + " -0.9992 -0.1683 -0.0128 0.0000 0.0001 0.0001 0.0000 -0.0034 -0.0173 0.0227 \n", + " -0.0227 0.0173 0.0034 -0.0000 -0.0001 -0.0001 -0.0000 0.0128 0.1683 0.9992 \n", + " 0.0107 -0.0086 -0.0018 0.0000 0.0000 0.0001 0.0005 0.0076 0.0219 -0.0216 \n", + " -0.0062 0.0051 0.0011 -0.0000 -0.0000 -0.0001 0.0000 -0.0027 -0.0094 0.0099 \n", + " 0.0023 -0.0019 -0.0004 0.0000 0.0000 0.0000 -0.0000 0.0009 0.0032 -0.0034 \n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(polyval)" + ] + }, + { + "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.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/read_and_plot_mesh/mesh/rectangular.msh b/examples/read_and_plot_mesh/mesh/rectangular.msh new file mode 100644 index 0000000..3a4c9de --- /dev/null +++ b/examples/read_and_plot_mesh/mesh/rectangular.msh @@ -0,0 +1,83 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +49 +1 -2 -1 0 +2 2 -1 0 +3 2 1 0 +4 -2 1 0 +5 -0.6666666666703636 -1 0 +6 0.6666666666629708 -1 0 +7 -1.333333333335049 -1 0 +8 -5.547118320237132e-12 -1 0 +9 1.333333333331486 -1 0 +10 2 -0.3333333333351818 0 +11 2 0.3333333333314854 0 +12 2 -0.6666666666675247 0 +13 2 -2.773559160118566e-12 0 +14 2 0.6666666666657428 0 +15 0.6666666666703636 1 0 +16 -0.6666666666629708 1 0 +17 1.333333333335049 1 0 +18 5.547118320237132e-12 1 0 +19 -1.333333333331486 1 0 +20 -2 0.3333333333351818 0 +21 -2 -0.3333333333314854 0 +22 -2 0.6666666666675247 0 +23 -2 2.773559160118566e-12 0 +24 -2 -0.6666666666657428 0 +25 0.6666666666678993 0.3333333333327175 0 +26 0.6666666666654351 -0.3333333333339497 0 +27 -0.6666666666654351 0.3333333333339497 0 +28 -0.6666666666678991 -0.3333333333327175 0 +29 0.6666666666691314 0.6666666666663588 0 +30 1.33333333333395 0.3333333333321015 0 +31 1.333333333334499 0.6666666666660508 0 +32 0.6666666666666672 -6.160627563644994e-13 0 +33 1.333333333332718 -0.3333333333345657 0 +34 1.333333333333334 -1.694810958241533e-12 0 +35 0.6666666666642029 -0.6666666666669748 0 +36 1.333333333332102 -0.6666666666672498 0 +37 -0.6666666666642029 0.6666666666669748 0 +38 1.232125512728999e-12 0.3333333333333336 0 +39 3.389621916483065e-12 0.6666666666666669 0 +40 -0.6666666666666671 6.160627563644994e-13 0 +41 -1.232014490426536e-12 -0.3333333333333336 0 +42 5.551115123125783e-17 0 0 +43 -0.6666666666691313 -0.6666666666663588 0 +44 -3.389566405331834e-12 -0.6666666666666669 0 +45 -1.333333333332718 0.3333333333345657 0 +46 -1.333333333332102 0.6666666666672497 0 +47 -1.333333333333949 -0.3333333333321015 0 +48 -1.333333333333333 1.694810958241533e-12 0 +49 -1.333333333334499 -0.6666666666660508 0 +$EndNodes +$Elements +25 +1 15 2 0 1 1 +2 15 2 0 2 2 +3 15 2 0 3 3 +4 15 2 0 4 4 +5 8 2 0 1 1 5 7 +6 8 2 0 1 5 6 8 +7 8 2 0 1 6 2 9 +8 8 2 0 2 2 10 12 +9 8 2 0 2 10 11 13 +10 8 2 0 2 11 3 14 +11 8 2 0 3 3 15 17 +12 8 2 0 3 15 16 18 +13 8 2 0 3 16 4 19 +14 8 2 0 4 4 20 22 +15 8 2 0 4 20 21 23 +16 8 2 0 4 21 1 24 +17 10 2 0 6 3 15 25 11 17 29 30 14 31 +18 10 2 0 6 11 25 26 10 30 32 33 13 34 +19 10 2 0 6 10 26 6 2 33 35 9 12 36 +20 10 2 0 6 15 16 27 25 18 37 38 29 39 +21 10 2 0 6 25 27 28 26 38 40 41 32 42 +22 10 2 0 6 26 28 5 6 41 43 8 35 44 +23 10 2 0 6 16 4 20 27 19 22 45 37 46 +24 10 2 0 6 27 20 21 28 45 23 47 40 48 +25 10 2 0 6 28 21 1 5 47 24 7 43 49 +$EndElements diff --git a/examples/read_and_plot_mesh/read_and_plot_mesh.ipynb b/examples/read_and_plot_mesh/read_and_plot_mesh.ipynb index 6b808f5..ebc19be 100644 --- a/examples/read_and_plot_mesh/read_and_plot_mesh.ipynb +++ b/examples/read_and_plot_mesh/read_and_plot_mesh.ipynb @@ -2,9 +2,17 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmshTranslator: Ending\n" + ] + } + ], "source": [ "import os\n", "import sys\n", @@ -50,9 +58,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gmshTranslator: Initializing...\n", + "gmshTranslator: Mesh has 25 nodes.\n", + "gmshTranslator: Mesh has 25 elements.\n", + "gmshTranslator: Processed 54 lines.\n", + "gmshTranslator: There are 1 physical groups available: \n", + "gmshTranslator: > 0\n", + "gmshTranslator: Parsing nodes\n", + "gmshTranslator: Parsing elements\n", + "gmshTranslator: No rules for elements... skipping elements.\n", + "gmshTranslator: Parsing nodes\n", + "gmshTranslator: No rules for nodes... skipping nodes.\n", + "gmshTranslator: Parsing elements\n" + ] + } + ], "source": [ "# This function reads the mesh\n", "nodes, elements = msh_parser.read_order_2_msh('mesh/circle.msh')" @@ -60,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -74,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -86,9 +113,9 @@ }, { "data": { - "image/png": "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\nVBIRERGR2xgqiYiIiMgafOsuAAAB+klEQVRtDJVERERE5DaGSiIiIiJyG0MlEREREbmNoZKIiIiI\n3MZQSURERERuY6gkIiIiIrcxVBIRERGR24K8PQAiIqo4wzBmOr6MAXBKRMYZhhEBYFKhm50UkRet\nHx0R1WSGiHh7DEREdB6O4DgTwAQRSXNctgfAEgARzssNw9gEoBOASOftiIiswNPfRET+oUigdNgM\n4CkACYUujwGwhIGSiKzG099ERD7OMIwYACglKHZyXL7EeYGIRFo4NCKic3j6m4jIxxmGEVE8UDpO\nh58GsEJErvbOyIiIXHj6m4jIx5VxKvsKx+cEK8dCRFQWhkoiIv/knJ1c4dVREBE58PQ3EZEfcuz8\njhERo9jlJU6VExFZgTOVRER+xrGeMga6+7u4mY7riYgsxVBJROTjDMNIcMxMOjkLnW8sdrsYAGmc\nqSQib2CoJCLyYY6gOACAs+B5BLTY+Ty4Nus4L58gIhO8MU4iIq6pJCLycYZhPAWgofPfzuBoGMbb\ncITNwpcTEXkDQyURERERuY2nv4mIiIjIbQyVREREROQ2hkoiIiIichtDJRERERG5jaGSiIiIiNzG\nUElEREREbmOoJCIiIiK3MVQSERERkdsYKomIiIjIbQyVREREROQ2hkoiIiIichtDJRERERG5jaGS\niIiIiNzGUElEREREbvt/DL7TivfFEpEAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdwAAAISCAYAAABmqX6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FMUbx7+b0GsSWughdKSGJjWA4WdDAQlFKYpCULEh\nGhALqAgGG1aMFEVQgQBSFMHQAkjvvSW0IJ0kBCH13t8f727uuFzZu9u9ksznefaB3O3Ozs7uzXdn\n5i0SEUEgEAgEAoG++Hm6AgKBQCAQFAaE4Ao8iiRJAZIkhflKuQLriDYXCGwjBFdwD5IkhUmSFCdv\nMfIWafJdhMpyIiVJSrSzTwCAmQD2SJIU6nrt88oNBRAHYI9WZWqBLEgxctvEebo+WqJlm3uinSRJ\nipYkKV6SJLL03Mp1Ur5PKWj3zxKSJEXI7RIt348oT9fJ15HEGq5AQZKkaAA9AYwioiSTz0MBRADo\nDyCWiBarKCsMwEAiGqdi3xQArU3PqQWSJBERSU4cF0ZEe7Wsi1xuHLj91kqSFA+gPxGlan0eT+Js\nm5uV4ZF2kp/ZtwBEgp/HfM+AXLeRBe2+mSO3RRARrTX5LFL+7AfP1cy3ESNcAQBAkqQYAD2JqKe5\n8Ml/rwWLriqIaK8asZW5qb6mbkH1dTpartKBye1coDttF/BUO0UAGCn/f5SVfXYVkvs2ylRsAUB+\n0e7pofoUCITgCpS32WhY72QU0S0sb7YDdSo3QKdyCxoeaydZTH8AkG/6VF4CKQxiCwBtrCzziGfY\nBYTgCgCeRturYkpX9bqVI+u93oKydghAGP4UbmIBwMKaZQR4pqcwsBZAvKkRnDylXODXrvWkiKcr\nIPAKIqBi9CqvqQUAeaPimQBCAdQBMAA83RQLYDeMa2H3rOfJx0UAUMRd9bqthXMqgt4WPNWnZm05\nQj7+JoAgADdNjhsA+Q1eFl4ASFSzZmWrXPm7nmblxtp7wVGM1Uyucaq96UyTNgoDEAhjG/UEEE9E\ni03KDQUAIppm57wLlfVM+TulDgFyueNM6yU/I87eG4vtZKd9rT6L5tOiNs4dBmAvwMshkiQlgWd8\nTO99qJrrKAgQ0Ti5zfdIkjQO8u9UrN+6CBGJrZBvAAhAtBPHhQJIARAp/x2t/F8p12z/CHCnb/4Z\ngTszteck0/PIn8cDiDK/LrO/IwHEmH0WbXocWERITV0cKddSfVSUGWryd5h529k4NkBuowgL99n8\ns0QAYXbqnSi3e4SF42PN6mnp3jjans7cN5vPoopzRgEIMCufzK7N4d+IuzbwyDPegU3t7y1eboc9\npu0jNifvk6crIDbPb84KrsmxYda+M/s70bzDlj9PUdsBWCpX/ixMrkuAjfOnWOo0TD93UnDtlmut\n3jbKjAUQZ6GtVXV6lu6L3P7mYhqnfCZfe4qFsmLkLcr8OZHFMEDFeS0+IyqfG9Xt68h5zMoyvy7l\npSXW5O8oZ8r21U2+38qMVIp8H1X/TsWWfxNTygKApwjrWvpCNpwYBR5BKFN697gGkQoXGrmcUPB0\ns+YQTwMCQBtYWGeTp8dukuUp2SRwp+LwdKFe5QIYByBInupsA6MldxDUG+5YmrK2NY3dBsg3pQwA\nN+RzLgJwRpKknmChXkuWp1g1c+9ytH3VPItqIKJUSZIWg6enR8HKcyXXMQr8grQYPP1u8X7L+5ka\nXt1U/k/3ut+oKk9PJEmKBc8qJMl/14HRzzrQ3fUpKAjBFQDckbSx9IX8gxsnr8ulgH0inekAlPVC\nPa08k5TzWDu/FW6C1xqdvi4dyg0Cd3BTSV43kyTJobaz0ta2XLBCce+adj7kjjcKLEKxkiQtJqL+\nKs7rLHq1bx7yy6Cll4RYAJHyC0goWV8PXgR+Ce1v6Uu5/Bjwvdxr9nki5fdbtlme3ih2GmRiYyDf\n056SJO2RJCnCRlsIbCAEVwAAU8HGEVYDPshv/K6cQ3lTDtBRdK11nLDxOcDiZjEqljzCTLJRZ6fK\nVUE8eISRT0x0bMMkcJ0tYvJ8TAMwTe6Y4yRJiiL9jGn0al9TIsAidw/ERoKp4JeLeDvHWxv9BsjH\nWvRvlyTJUrs5bA0tB+RwxGVnlHl9TGgD6+0a6+B5BCYIwRUo07HTwJaerS3t42roRblzSQWLormo\nu/wDloUxFdanrHcDCLUiVmGQO1wLLxa2RFx1uY4gd9KhFo5V2qmNJEm7dRDd3fL58714KRbEkiSl\nKh213FbjoJ/fslInTdvXArZeYH4AG1DZEtyBNr5XomZZe4ZiLHxmqzyLaDwaTgJHlbNEAAqPa5Tm\nCD9cAQB2AwCwUJkysrDLKLj+QxsJdhfKw+RcDomuhXXGGNgIuSd/PgpmHZzsfjLO7LgkkxeMIFvC\n5mC5qjA5Jm+0KbfTXnA7qRrhKlODZlgdwcpljkP+a4mA8UXGPHpYEIBdrpzXFnq0r1k5AeBpaWvE\nyv/aevYtjkhN3KOsTnlbEWKP+vuarNve0w/Iv4kKJt8HSJIUa+V+CyzhaastsXnXBh41KC4GceCO\nLhrc0YdBtjI22Y/kf03dgULNvjN1rYiQy4sAW7iGwWgBqcqNQy43VD4+Uq5jhI3zh1k4fxSsuI7I\ndYqVy85nVW2lTlbLtVAfu9cplxen1AFGa1Gbx1u6dvnexcLo3qHcwxiTto8yO7dilZznngSj1Wqk\n6eboeR2oe6TK9rX6LNo5X5x8/cpxFi3AIVsq26izJctuRWzJwneRcrvkq6ut8jzQF0TB+Pu35C6m\nuGIJy2WVm0heIPA5tAiQLxBogWxR3JPMpnTlGZi9sGwUpYzQQy0cZ7U8KiRBNwoyYkpZIBAInKc/\nzNZb5axbSqjUxebLH/IUbKT5cfbK07LSAs8gRrgCn0OMcAWeRhZNZcp1GnhaXgl1CSLqabJvDIy+\nzIrvbQBM4pc7Up7AdxGCK/AZzPKVLgYbzWiaQ1cgEAj0QgiuQCAQCARuQKzhCgQCgUDgBoTgCgQC\ngUDgBoTgCgQCgUDgBoTgCgQCgUDgBoTgCgoEcpi5MK33FbgPX7kvvlBPX6hjYUQIrkA3JEmKkSQp\nUZIkkmOuxphsmsVglcuZCc54ZDPJgvy9ktfT9PNISZK0yDwjcAJr98XNdbD7DDjyrHkKX6hjYUW4\nBQl0RQ5VF0NEgWafh4I71/6kUW5NSZJSALRW45trHjxDHg0MJE7iIPAQngxq4sgz4Miz5il8oY6F\nDZGeT+ARiNP1TQWPagLt7a8SW8nV7dVnL0T4vEKNg8+A08+aG/GFOhYqxJSywJMkAQgQ014CgaAw\nIARX4EnaAlZzgroVSZLCrOQBFhQSxDMg0BsxpSzwCHLHFgXOjmLpe9MMK20BLJSn/JTvlfywilg7\nLdqykYkSo1kyKX8mONdqoHwupS67zFOl2aqv/J2SKF0JSG83ebqFMqcqx5jULxRAHQAD5HJjlTVx\ne21o5ZzWrrsngHgiMs1+EwoARDTNTr0daguTxO3K8fna20b9o83KV56LgQCmwkqbAdgNs2fArE00\nedbMylVzf9U+f7rUUaAxnk7IK7aCvYFFNQXGhOVRYGOpWFhJXA3Lya4TYUyEHgHu/E2/j4CcmF5l\nvcjeZ+AOm2CWON3CflbrK9fL/Hir126yT6TpPuCO1/yalQTgkSb1iLRXJxVtY/W6LXyWCCBMq7aQ\nz2GelD3fvbLx3MSY/B0DIFppK3ttZuXeuvysuXB/1T5/utRRbNpvHq+A2Ar2JgtsioXPY0w7apPP\nA2zsHyP/P9G8E5I/T9FScJXPzOtpKjL26itff7TZd5EAAuzULxZAnIW6BKion902VNM+Vq7bXEzj\nlM+0aAt77W2nzolm4hkBTgBv99qsPQNaPGs63F/zlxxd6ig27TcxpSzwFLHgka65hXIbIN90GyDn\nE5UNrELBU4Duwtb0nM36AlgE4IwkST3B4rSW1E2PjgMQJE8VtoHR4jQIxilTAHnWtY7USS2Wrtsd\nbeHsdGgSuH0UrPp5W2izfOj8rKm+v7DRHh76PQicRAiuwCMQuwUFSJIUadbphgK4aU2UFKMWsrP+\nqSV2zmWzvgAgSVId8OhuFIBYSZIWE5HFtWsTgsCiNJWIfpDLUXvNduukBivXbcvVRJO2cOHexsrl\n/iD/PRAsbM6irFHr8aypvr8qnj+3/h4EziOslAWextwlyHyUYk4SkGdY4w3YrK8kSWFElEpE04io\nNXhEHyAHBLFFPNgAKp94qbh2e22oF3q1hVpSAcRIkhQllznVxZcOPZ81V+6vKd72exDYQAiuwJOk\nAqhr9tluIM/q8h4kSYogdiFKRX6hBmxMIeqIzfoCGGjqZyyPRMYh/3WbHhcAvr5FZl8p19fGTgdr\nr056oXlbOEgYEa0loh/kzaVAJno9axrcX93rKNAHIbgCT7II8rofwGt/Jp1wjOmOcoetrFONBLtw\nmH8P6NDJWOn8goB7RMNWfc2nNYMA7LJ2PpPpwbzRolzeXvD1BdiaQlRZJ7vYum4Xzmu3LRw9rwkV\ndHihUPWsycsjquKDO3p/VbSHW38PAhfwtNWW2AruBu54E8GWlnHI794QAF53i5I3U2vVCBgtW+9x\noTD5Plr+NxLsVpECM0tVC3VSguQrdQqz8Fmolf2U+hLY4CvCXn3lv8NgdIuKtFU/s/Li5P0j5DJM\nPwszq1++Mu21oQPtY/G65bKVNo9ypS0cbW8rdQ+Q65NiUq+8585Wm1l6Bhx51mDmbqTB/XXm+XP4\n9yA2924ieYFAIPB55KnqcWC3pySTz0LB4u/qeq7aepgbAQoEeYgpZYFAUBAYBfZrzXOhIaIk4qhb\nI8EWy+5AWAsLrCIEVyAQFATiYSVMKFhsF+pdAXl0q0mqSUHBRPjhCgQCn4eI1kqSdFOOpWwaKCIU\nHPbQHUIoRrcCm4g1XIFAIBAI3ICYUhbkIbs25POhdHY/LfHEOQsShan9fPFafbHOAscRgisAkBes\nIA7sbmBrv1A1+2mJtXNKkhQpSVKiu+rhq3jinnkKtc+xNyH72c4EsMc0MIgG5Yrfh5chppQFecg/\n/BQiklTsS2r20xLzc8qd60AiciVebqHBE/dMC+SQkKqjRjnyHHsTkiSlAGhtamntYnni9+FlCKMp\nQR5ElCpJvtNHyZ2wS+H7BD6BEoVJFb72HJtgKzGEw4jfh/chppQFAoG34y4fWoFAV4TgCjTBktGH\n8plemUzksvUMxi/wIPLzEwMOU+jperj12dYC8fvwPsSUsiAfJiHxAHU5TpXweZEAJPmzABjj6baG\nydSWWYLytgAWOrJGZ1L+W2bnDAMbn4SBU78pnU1bALvMr8FWPeTvFL/KAAA9AYwjFXlHLZQ7VTnO\npI6hAOoAGCCXHav4ijrbPs4cZ+0YG23ZE+zXutjkWCUn6zQXyza/TwMgB9+XhRcAEknOH2sPtc+x\nLEqh4CndINP91D7bTjx7SuxkZb3W4rqts88SOFnEPb8PG2Vq8twLVODpYM5i864NHBg90uyzWJgE\np1f2s3Sshc9SwGnTlL+jLZSVCHWB9e2eE9xJEPInSjDfz2o9wB2h+fGxKut4T5IAcAccb7bPPYHu\n5bpE2quXnfPaPc6RNrDXlhY+S3TkPjtwnwIs3XcNn+NIcPxle+2i5tlWe00RFp6JCPnYULO6Of0s\nufO5F5vK59LTFRCbd21WOhalIwmws5+lz/I6YrmcFAv7xJh3eg7UzeJnph2ho/UAj1yizb6LNL1+\nG3WMBcf0Na9PgIo6OtU+ao8zbStHjrHSluaddpzymQZl5xMxHZ/jFEv31fxze8+2g9eUaC5sJuc0\nFVinnyVn7rkrz73Y1G1iSllgFzJafbYB4EqIvDZAviktALgB7cPi2XKtsFePRQDOSJLUEywka0l9\nBphxAILk6b42MFqeBsHsGin/dK+z7ePMcY4cY6ktXWlfteVoivlzLE8l3yTL06VJ4BGfM5l/rF6T\nyTS3mrzErjxLltDzuReoQAiuQC1JMK6HOYvd9WCtsNKJqq6HJEl1wG/8owDESpK0mIisBcc3JQjc\nWU0lea1RkiS1LxPOto8zx6k+xkpb2nJhcbVsPTF9jm09zzfB65sOP6sqnj211+3Ks2Tt3Ho99wIV\nCCtlgVpC4fpoJAnciXgam/WQAy2kEtE0ImoNNoIJkCQpSkXZ8WADKEvGOfYsWp1tH2eO0/Ne6Fa2\nBpbBps+xrec5CDz1qzVKrl411+DKs2Tt3Ho99wIVCMEV2EWeBkuFimkwCx2B6Shit7xPPjcPN7sv\n2KvHQNMQe/JoZByAurYKla89FDw1Z4rSJm3sdJTOto8zx+l5LzQr28JI0OlZFgvP8W4AoVbuSRjM\n7qOdZ1sVxFGkUq0cm1e+Bs+SJXR57gXqEYIrMCfVwhpPDICRKqbB9sKkI5F/xHlv1SY/4BjTg+T9\n1KxpqcZKZ+RIPczD4QUB2GXrnCbtkzeKkMvcC+4oA2y1obPt48xxjhxjqy3dVHaSiRAEqZyOtfsc\ny/+OslDPGOR3hbH5bJsdb++aRoJddkyPUV5EAkzqds9xjjxLlnD1uZd9j2O92ffY6/G01ZbYvGsD\nuw3kuQjIf0eYfK8Ewif5X1PryzAYfRYj5b/3wMyqVS5XsYq8x/XBSp3yndPCZ6FW9gsAW3uSXJcI\ne/WQ/w4zuY5ImLmY2KhrhHzuSPn/YWafhZnVMV+5jraPiuuxdc9UH2OtLeXjU9TeZyfuU5j8XSQs\nWPc68xxbaLdouZ73uNWofbadfPai5X+V8pQ2jDTZx6lnyUJ9QlXcF5vPPYwuSMJNyMlNJC8QCAQC\ngcANiCllgUAgEAjcgBBcgUAgEAjcgBBcgUAgEAjcgBBcgUAgEAjcgBBcgUAgEAjcgM+GdpR9x3qC\n44DWBbCH1Kft2gegEoDT+tVQIBAIBIWMegCuEVErS1/6pOAqTuJENM7ksz2SJAWQWU5OK1QqX758\n9ZYtW1bXrZICgUAgKFTs378faWlpVr/3ScGFHFjb7LO18udqBPd0y5Ytq2/cuFHregkEAoGgkNKt\nWzckJCRYnTn15TXcnhY+c3fmEYFAIBAIVOGTI1yynC4qEvlHvQKBQCAQeAW+PMLNQ04ftVfl+q1A\nIBAIBG7HJ0e4CnI2kJ6A1VGvQCBQSXo6cO4cb+fPA+eSchDzKXcRD3a+jXbhpVC7jh9q1wZq1wZq\n1gRKlPBwpQUCH8KnBZc4MfNiOW3UHnDqrb1qjr106RLatGlj9fuoqChERYm8y4KCARFw7ZospLKo\nnjuTi3MnMnDujAHn/i2GlDvFzY4ydg9rtpTBmi35yw0ufxe1quWgdl1/1G5YErVDpDxBrl0bKF9e\n3+sSCHwJnxZcBSJKlSQpFsA6AIFqjqlatSqElbKgIEEEJCcDCQnAvHlAaiohoEQGzp0lnL9cDHez\nzH/u/gBK5/1Vokg2alW8g1rVDahdrwhqNy6F9yb5AwA+/xy4eTUH547dwbmkHJz7tyiSb5bC5bSS\nuJwG7DwG4I/8dSpfKgu1q2WjVp0iOH+5GELqSHjlFaBFC6BiRd2aQiDwSgqE4MqsBRAgSVIEEa31\ndGUEAj1JTwcOHwYOHQIO7riLg6uScehGVaRmlzHZSwJQMu+vgBJ3UbvSHdSuaUDtesVQq0kZ1A71\nzxuNVq5cFJJ075D0vUn875gxAHcX5fK+y8kBLl0yGTGfzsK5I//hXFIOzl/0x7kbZZB2pxgOni6G\ng7KjxMFDwIoV/P+qxW+gea00NHukBpq3LobmzYFGjYDi5gNtgaCA4HOCK0lSKDiZ8wNWpo8D3Fwl\ngUA3cnOB06eBgwdlcT0IHNyXgzPnTX+6JQHUBwBUKJ2BpqF3cJtKoVHTohj4lD9CQlhQy5UrCVMB\ndpUiRXgdt2ZNoHNnACgmbwwRcOMGi/GRI8Cyxdm4eCYbftmZOHSmNC5lVsClUxWw5kuTMv0NaNiA\n0LylP5o1A5o3B5o143NIkmZVFwg8gs8JLlhQk+TNlFD5X1VruAKBt5GVBcyaBaxaBVSowCJ15AiQ\nkWG+ZxEU88tG4yopaN7SD827BaJZ8l9ofmMjgud/CknyDksmSeJp44oVgdatgWHDigIoCqAUDAbg\nzH29cGjElziYWhMHE1Jx6KgfTt0IwpFj/jhyDPjtN2NZ5cuz+NasCRgMQGQk0Lcv4Fcg/CwEhQWf\nE1wi2itJ0kILX40DMI2IzIVYIPBK7twBtm8HNm3ibds2S+IK1PK7gGaVr6B5U0LzByqh2SM10aBx\nURQtWtm40yo/4KvDPIvsA/j5AXWvbkPdYeXQp1IxAHwtd+4AR/dn4eCKszi4KQWHThTDwZs1cT2t\nIjZvNh6/YAEQGAh06QJ07cr/tmoFFC3qmesRCNTgc4ILAEQ0TZKkKEmS6sKYvCBObfICgcATpKYC\n//xjFNjdu3kd1JTKftdQUbqJvg2O4KGHgKb9GyOgfUPAr6btwmvWZBNkX+G//1hdzSynSpUC2nQs\nhjYdG+R9RlnZuBK/BweXnkbc3+Ww/mIjpPkF4EZKIFasMK4Jly4NdOzIAty1K9CunXBbEngXPim4\nACDEVeDtXL0KbN5sFNgDB3hdU8FPMqB1kUPoWmInuobdRufeFVCx1/1A/QaA1NCxk9WqBVy4wCfw\nhcXOCxdUL8xKxYoi+NHWCH60Nf4H8FvKgQM49/tebFp1G5uOVMAm6oyT/4UiPh6Ij+fjihUD2rc3\nCnCHDkDZsrpelUBgE58VXIHA2zh8GPj6ax7JHjwIHD9+7/fF/LLR1n8vupbeg65t76LjE8Eo91BH\nIGSE6yJZvjzP06am8lyroygWTmfP8nbmDP+Lb/n7vn2BkBCgTp17/3VWwc6f55cEZyhSBGjdGrVb\nt8bQycBQgwE4fBiXV87G5pWp2HSgPDbndsTBrEbYvNkPmzcDH30E+PsDYWFc7fr1gdGjgWrVnKuC\nQOAMQnAFAhc4exZYvhxYtgwwd+su5Z+BjtI2dC1/EF07ZKPdEzVQMqITULO9PpWpWZNHjtYENzXV\nKKTKv6b/L1LEKKQhIeyjozB4MO9z8iSwZo3x2JIljfubi3Ht2jzPa4kLF5wXXHP8/IDmzRHcvDn6\nvw30JwKOH0fKqp/wz/Lr2LS3DDZl3Y/dOS2wa5c/du3iwz79FHjkEaBPH6BXLzZUEwj0RAiuQOAA\nRDx6XbaMt/37jd/5IRdBuImHym/DSxEnEPZECIr26AIEd3dP5SpWBFauzC+kyv9zc1kMTYWxRw+j\nYAZY8Kh7Rf43MjL/d0r4KtNzHTpkrMO5c0C5cveKsPL/DRuAqlW1bgFGkoDGjRHYuDF6jQV6EQGJ\nibi9Zj62L7uMmM0dsCOrFdKzyubdR39/QteuEvr0AXr35ncFgUBrJDJdVCokSJK0MTw8PFxEmhKo\nITeXjZ2WLQOW/W7AmbNGX5QySMcjAVvR5/4reHhwEAIeut99IZTS041WWAkJwNatPOLs3j3/aDMk\nBAgKcnjqWtndqW7CYACuXLE8ql6/nguPiADCw3mRtW1bXnh1B2fP4uKyXVixKAPL9odg/d37kQOj\niXOrVoQ+fViAmzXzjWVxgeeR8+EmEFE3S98LwRUILHD3LhvfLFucjZUrCNfTjEJQpcgN9G5yCn36\nSujxfAMUD3ZizdQZUlOBLVtYXBMSgKNH2cFVEazNm9mZd+pUzU7pkuDaIiICGDWKp7GVF4ZTp9i0\nODyct/bt3WZmnHr0X6z67iyW/VUcf51thNsG41R4aPUM9OlfFH2e8EfHjrwWLBBYwp7giillgUAm\nORn44APg2P5M7N2diztUCpBHPfUDr6NvRDr6RFVG+x4V4OfnhgW/69dZRBWBPX2aRSg8HPjkk/yC\n9O+/vL7qC5w/DzRtCjRuzAZZgPGFYtMmIDqao36EhRkFuEMH62vCLhLQpBqe+qYangL7Qq9fkoJl\nP6Zg+daKSLpYDp9PBz6fDlQskoLG7cuhWw9/REcDZcrYLVogyEOMcAWFnj17gJkzgbk/GZCRaZwu\nblstGX2iKqPvgGJo1MgN04qXLxtHewkJbFjUsaNxBNumje0p140bgXffxT0RIlxElxEuETvcXrtm\nW7HS03maXGmT/ft5flcR4E6deI1YR3JzgR07gN9/vYvff0xB4h2jWXPlSoSoURKee45n7AUCMaVs\nASG4gtRU4NdfOZTivn3Gz8sXu4vHHyNMCVuMGgf+BBZaCmqmEUpqH2W7do2DEisC26oVT7mqJTER\neOAB2Z1HG3QR3GvXgIYNgZs3HTvONDRXQgKwaxdbUisC3KWLcy5RaiAC1a2HPe+vxDvf18SWHUXw\nXy7HpZYkQkSEhJEj2eDKXcvQAu9DTCkLBDJEbGM0cyYQF8frtAAQJN3EsOYHMOLzJrivRxX+8GYv\noM7LQFqaNkldiVgITQU2PZ2FNTycnUKbNnVtgbBGDZ5Wzs317oVGZ31wS5Viq+oePfjvzEwW3YQE\n4JtvgCFD2EhMEeCuXYFKlbSp89atkEqWQJshjbF6qAQiYNOc05j1/kXEXWiP+PgSiI9ne7mnnwZG\njLjXq0ogAMQI19NVEbiBa9eAn3/m0axpMIoeRRIwskcS+n7XE8Xr1sh/4BNPAI8+Cjz3nOMnJWIj\nIEVcN20CsrPvFYMmTbSfpw4O5jny6tU1KU6XEe6yZcDs2ew+pCXZ2Xztygj4n3+4HZSXmvBw512R\nnn+e543Hj8/3VcqmQ5j/8g7MPNoRh3Ka5H3euTMwciR7VJUq5eQ1CXwKMaVsASG4BR+DAVi3jkez\ny5ZxXwwAwaVvYXjuLDwXeQt1p47gUaE1fv8dmD6dO297ELHVsKnAFi16r8DWr6//QnC7dsCXX7KB\nkQboIrhffQWcOAF8+62GhVogN5fXfRUB3ryZo1uYCrCakXZGBgv3/v0cXMQKtG8/do35FbN2Nsdv\nhgG4nclzy+XLc9yQESN4lUBQcBFTyoJCxfHjwIsvcvyF69f5Mz8/wqOhxzHyymQ8OjQIRSZE2+w4\n83jkER6inD2b3yrGYOAIGIrAbt7MBjzh4Xzcxx/zMe524FRiKmskuLqgZZQpW/j7s9tU69bAmDF8\nz44c4fsMs208AAAgAElEQVS1YgXwxhs89DQV4NDQ/Pfszz+BFi3sPjNSq5Zot7El2u3bh8/eGYaF\n/9TArIA3sONcML77DvjuO56AeOABfucICtLx2gVeiRBcQYHg6lXg88+5I1PWZmvXyMVzIesw/PBY\n1HiwC/DWx+qEVqF4caB/f+CXX4Bx49i6Shm9btkCVK7MnXRkJJ/Y1mjZXfhC1qDz5z0z1PPzYyvn\nZs2Al17iYfvx43w/165lC29JMs5IhIezcde8ecDQoerP06oVyv65ACP27sWI90fh4J3/MLvJp/hp\nXwtcvizhl1847sf48TzqFdPNhQgiKnQbgI3h4eEk8H0uXCB65RWikiWJuAclqlEthz7t/gflBlYg\nev55onPnnCvcYCCaMIFIkojKlCFq2pRo9GiiRYuILl/W9kK04vPPiV5+WbPilDbVlPvvJ9q8WeNC\nNcBgIDp9mmj2bKJhw4hq1yYKDOQG2LLF+XJ37yZ6/HFKr1qfRnc5QJUrGfLatVIloo8/JkpL0+wq\nBB4kPDycAGwka9pj7YuCvAnB9X0SE4lGjiQqWtQoCo8/lEk7nv6WKCiIaNQo14R2zRqiDh2IGjQg\nKl2a6K+/tL0AvYiLI+rTR7PidBHc6tWJzp7VuFCdGDeOqGpVouBgon79iA4edL6s3buJHnuMcqvV\noGVRf1KbsNy89g0MJJo4kejGDc1qLvAA9gTXz9boVyDwNo4dA4YNAxo0YIOonBxgYJ9MHBjxFZbv\nrIp2xQ8Ae/cC33/v+DohEcdz7NwZePVV4OWX2RAqOhpYtUqfC9KaWrW8e0o5O5vn/30lL15CAltU\nnz7N6+I9e/Iyw6FDjpfVujWwYgX8lv+O3v/OwM4rtbHmpZXo0smAlBTg/fc5acK4cRyCWlAAsabE\nBXmDGOH6HHv3EkVG8uwuQOTvT/TMkxl0/PkveEQ7ciTRmTPOFW4wEP39N1HHjkQNGxL98gtRTo7x\n+8REnvvLytLkWnTl33+5rhqh+Qj37Fke4foCJ08SValClJ1t/Oz2baJPPuHP+/cnOnTI+fJ37iR6\n9FGiGjUo4bWl9L8I44i3RAleGTh/3vXLELgPMcIV+CxEbPzbqxeH1F28mD1tXhiegdPPf4of11RD\nw5wj7Hv5ww+Ox9cjYmOZLl14NDt6NFuxPvXUvYEjQkN5SL16tabXpwtVqnCwDsVyzNtwJfG8u5k3\nD3jyyXujfZUuzdbNiYmc3eiBB4CBA/m5cZS2bYE//gCWLEHXk7Ow5kQIdkYvRu/HcpGRAXz9NVC3\nLhvKHzum3WUJPIcQXIFXsnAhR+nr2pW9MkqVAsa8kIEzL0zDd8urIyTzBLB7N88rOyO069Zx4aNH\nAy+8YFloTRk6lDtgb8fPj62lk5NdK+e//+4Vkfh4DuSRmelaue5yCXIVImD+fOvWyaVLA2++ycLb\nujVHvxo0iJcgHKVdO37I4+LQ9tAcLNtfBwffWYRBA3KRk8MBW5o04SBapmFIBb6HEFyBV3HjBvvR\nPvkkD9QkCYh+5S7OPv8xPl9UA9Vun+RwfjNncg/kCETsjxEeziI7ahSLyuDB9kMhDhjAmXhSU52/\nOHehxjXo7l12iVm9GpgxgxcOBwzgzr9yZY5RaJp0fupU4MEH2de4Rg2eFRg6FHjvPWDOHG7XM2eM\nEUascf68Y65ZnuKffzi3sD33pTJleI0/MZH37d6dH15nhLd9e7YViItDs90/4rftoTg+aQGe6JML\ngN3Bu3QBYmJcf+8ReAbhhyvwCnJyeFb4nXeAlBTWv57dsvD9fd+g9i9TOCr8zp08vesMGzYAkyZx\nrOH33ss/VWiPwEDO4bp4MTtPejO1arEA1KplTPhungQ+JYWFzzRRfd++xv9XrsyjZSUGxPr1/G9O\nDnDx4r1lbdoEzJ3L/798mcMnKknvTcsPCQHOnePhmrej+N6qDVxSpgy/tIwezXGdu3Xj6eb33uMU\nhI7Qvj3w11/A9u1oMGkSlhwbh81vfIXoTY9h+04/jB/Po97p0znyqMCHsLa4W5A3CKMpr2LjRqLm\nzY0GOg+EZ9GRF78hqlCBaPhw9o10lg0biMLDierVI5o7914DGEdZtoyoSxfnj9eTCxfY2CsqiqhI\nEW7IOnWIevQgevZZog8+IJo3j/1fk5OJcnNVFeuw0VRmJhuZrV1LNGsW0TvvEA0eTNSpE1G1apTn\nAzN2LNGKFUQ3bzp3vXpy9y4b4rlisXTrFtHUqWzA9uSTRMeOOV/W1q1E//sfUe3atObVP6lRQ6Mf\n7yOPEJ044XzRAm0RfrhCcL2W8+eJBg40duohtXJo6cAFZAiqQPTMM0SnTjlf+MaNRN26EdWtS/TT\nT64JrUJmJlHFis5bQ2uFwUCUlMTXNXw4UWgov5z07Uv0xRdEr73G7acBmlspN2lC9NVX/AIQEcEB\nRVq04OglS5YQXb2q4cmcJC6OX1S04NYtoilTWHifeoro+HHny/rnH6KePSmrdj36YuBWKleOhbdo\nUaLoaD6VwLMIwRWC63XcucP9rRIdqmRJA33QfT3dCapO9PTTrgltQgJR9+4sQj/+qI3QmvLii0Qf\nfqhtmfYwGNhFZeZMoiFDiGrWNLqlfPMNu6aYjlhXreIRkQZoLriBgUTXrhn/zszkEdzUqUQPPURU\nrhyL8gsvEC1YwG5O7ubxx/nZ0ZK0NKKPPuIXtsGDXRPeLVuIevakKzVb03Odj5MksfAGB/MkjsrJ\nC4EOCMEVgus1GAxES5cShYQYO/KBTQ/TucAWHErv5EnnC9+0ySi0c+bo5zO7bRtHnzIY9CmfiMs+\ncoTou+94CqBqVfZdfeopothY7qxtnf/QIaLGjTWpiqaCm57Ob1m26p6dTbRrF9GnnxI99hhRQABR\n/fpEI0bwlLjejqnXrhGVL6/fcDEtjWjyZBbeIUNcmw/evJkoIoJ2VutN94deybtX99/PTShwP0Jw\nheB6BYsW8Qyv0ik0r3KZNpZ/nGjoUNeEdvNmnv6rU0dfoVUwGFgAtm/XrszcXKL9+4m+/JLoiSe4\nMw4J4dH+nDm8JuqIwKelcThKDV4KNBXco0f5ZcURtG4be3z9Na+56k1qKs+UVKzIvwFXhHfTJsrt\nEUE/VxxDweX/I4ADxERGcsAYgfsQgisE16NkZ3No37yYsSXv0Lel36Tsp4a51sls2UL0wAMstLNn\nuzcK1PvvcxIDZzEfxQUG3juKczYGtCnlymlikKSp4K5Zw/fMFcxH/8HBRDVqqB/926NdO56Sdxep\nqby+UrGi67M8CQl0q+ujFF3+eyril5N37z74QLvqCmwjBFcIrsdITORoicoPv4X/Ibra73nX168i\nIniUM2uWZ8ItJiZyB5mZqW7/rCz3r1M2bcojQxfRVHBnzmQjLy1xdH3bFsePs4Brve6vhtRUfpGr\nUMF1O4aNG2ln61FU2e9a3v0bMoRPIdAXEdpR4HaIgJ9+Alq0IGzdClTzu4RFnb/E/sNFUGnxDM4x\n6ihbtwL/+x8HqRg4EDhxAnjuOY716G5CQ4FGjayHeszIYN/UDz/kYPdBQRxo49IljtN3+jQH3Pju\nO76WqlW1r6M3JjHQI6yjJAH167Nv9Lx57Oe7bRs7qO7Zw/7blSsDTzzBjqv79gG5uZbLmj/fcf9s\nrShfnn12T59mn+X77weeeYb/dpTwcLTd/T0urz2MT0JnoKR0F/PnA82bEzZt0rzmAkewpsQFeYMY\n4erG9etE/Xpn5b1ZR9bcTje2uTB1bOKDSD/8oH5UqTexsZyujYjov//Y7/Tdd9nnt3RpojZtPOtr\nOmoU0bffulyMpiPcZ57hWQl3Y+qj3LAhG2L16kU0bRrRjh08os3N5WfMWxY9U1KIJk3iEe8zz7jk\ni3587nZqU+aYvLZroPHRuV7zMypoiCllIbhuY82Cm1S1+HUCiMoW+Y/mTr3o/HLatm1EDz5IVKsW\ni5u39RCnTrFlSvPmRKVKce7c8eM5b643ZBP/6CPO5eoimgpujx6clcnTXLrEVnyjR/PUe9mybAtQ\nqhT7rHkTKSmcKFcJApOY6FQxWVlE7ww5Q37gtd1W5RPp6EEPTJ0XcMSUskB37t4FXn05Fw8OCsSl\nzAro3OAqDp4qhWHjq6mOjJfH9u3Aww/zVGvfvhwwPyoKKFZMl7o7zI0bwIQJHH6vTBmgRQvO77p1\nK8cbfughjjfsaWrW5EQB3sSFC94RRzk4mHPafvMN57VNSuJ7VqoUT09/+y0vC3gDAQEckvTUKW67\ndu14KSUpyaFiihYFPpwXgs1b/FCn7HXsSwtFWBjh22/5lUrgHoTgClxi/36gTWvCV9/4o4iUgylP\nHcLGjPsRUj7FsYJ27GChHTCA191OnuTkAt4ktG+/zWn6btzgJPfz53M84dKlPV27/HjbGi6R9wiu\nOWXKcFvt2wcsW8ZxjOvX5zV2b8kSEBjIGepPngSqV+fUfiNG8PPnAB3LHMT+om0x/JEryMgpipde\nAh55hENgC/RHCK7AKQwG4JNPgHbtCEePSWhYOhnb/zHgrV+awb/PY/wWrubVeedO/sX3789Ce+oU\n8PzzQPHi+l+EGm7e5IwKDRoA166xIU5sLFC7No9mjx93uNNzC2oyBrmTa9d4BOmNLycrV3LC5Ro1\ngDZtOEft0qWcuadePe8S3qAg4IMP+HdStSrXd+RIThxhj9u3gYEDUe7LDzHnzyqIm5mCIP9UrF4N\nNGvG7xoCfRGCK3CYnTs5z3l0NJCdLeHF2n9i74VKaN1BHo1Om8bWot99Z72QXbvYkrRfP+Cxx7xT\naN99l0c6V65YTnJfrBhPfc+f77FqWqV6dbaKtmaR6268OQ+ukhnIFJPk8PjzT34OZszwLuH98EP+\n3VSpwjl5o6JsC+9LLwEdOgBDhgAAIkcE4uCuLPQs/Q+uX+cVnPr1+d1IoBPWFncL8gZhNOU0u3cb\nYyAX98ukP9pOIsrIyL/jyZPsq7pv372f79xJ9OijHKzg228tH+tJbt5ka+MKFYiee46TBNhixw7O\nRKRnqEdnCQ5mC10X0MxoaulSDvLhbVy9qi6U4/btRA8/zH6+M2Z4nxHf9etEEyZwlqOoKKKzZ+/9\nfu5cokaNiG7fzndo7sVL9FnlKSSBYzLXrOmZENYFAWE0JdCMJUs4Afbdu0CV4inY1+VVPLp5vOVR\naf36wJdf8ppsejqwezePZPv25bXaU6c407y3jGhTUoCJE7neFy/yMH7WLPtJ7tu25byxO3a4p56O\nUKuW9xhOeesId8ECoFcvoGxZ2/spyeEXLQKWL+fnJDYWyMpyTz3tUaEC8NFHvMZboQJPkY8axTNN\nJ04AY8cCCxdanNL3qxaM1w8Mx+81XkKZYpm4cIFts/bt88B1FHCE4ArsQsS/5chIFtvhtdfh/APP\novGa6bYF86mneA2sUiXg8ceBBx9kR/7Ro4ESJdx3AbZITTUKbXIyC+3s2eoT3UsST0fOm6dvPZ3B\nmwyn9Ah6oQWWppNtcf/9bFS1YAHw+++8tv/DD94lvFOmsMhWqMBW9E2bsmV98+bWjwsORu9d7yKp\ndg90qnUeyclA585iXVdrhOAKbJKRAQwbxnZDkkSY1vRnzG46HcWWLrA/Or1yhUeyALs2vPSSdwnt\npEn8QnDhAo9QHRFaU4YM4ZGPt3S6Ct5kOHX+vPdZKJ84wff+gQccP7ZDB4409ttvPPXToAEwc6b3\nPAMVK7Lw9urFPkHr1tmvW3AwKm1agnUlH8OwFgdw5w4H6IqJEa5DWiEEV2CVq1e5L5o/HyhdmrCs\n/cd4MyQO0pLF6sS2Rw8Oxbh7N7vUHDvmnorbIi2N3Svq1ePptu3bgTlzgLp1nS8zJARo3JhHPt6E\nmFK2zbx5PAvjSijHDh2ANWuAX38F4uI4bOmsWUB2tnb1dJYlS9g//Nw5NvCLjFQlusU3rsFPmU9i\nasQ6EAHjxwPDh3uPvZgvIwRXYJFDh3gdZ+tWoGZNwj/tx+LxiluBxQ6Ibf/+PIps2pTftgcM4Dlp\nT5CWxu4U9eqxG8/27cCPP/LfWjB0KPDzz9qUpRVihGsdg8Hx6WRbdOwI/P03v50uXMgj3tmzPSe8\nZ85w/O6FC3lJZ8ECfrFQKbrShvUYf/FlLB20EKVKAXPnAhERwoLZVYTgCvLx55/cf5w7B7Rra8DO\nZiPQotQp58RWYcQIFt4xY3Stez7S0th9ol49IDGR3yB++kk7oVXo3x9Yu5aNr7wFbxnhZmdzT12t\nmqdrYmTzZk4Y0KKFtuV26gTEx7OYL1jAI945c9wrvNnZnIRh/Hg26gN4hOug6GL9evQ98D42D/0B\n1asDW7aw7diRI/pfQkFFCK4gDyLgiy/Yvun2bWDQAAM2VhuMYL+rroktwMZFsbEsSnFxul1DHrdu\nAZMns7CeOsVCO3cuG0fpQUAAG4UtWqRP+c7gLSPcixfZV9QTWXisoYxuHY49qpLOnVl4587l6eZG\njXhGxR3C+/bbvIZr/nLrpOiGbZqOnYM+R5s2PHDu2NF6oiyBHaz5CxXkDcIPNx+pqURPPGH0u5z0\nbg4Z+j7BWVXU+Mpevsw5XidOtL3frl1ElSo5HYTdLmlpRJMnsw/wkCGuJbl3lBUriDp1ct/57JGb\nS1SsGGczcoaMDKMf7tmzzueJTUjgxMjewp07RIGBRMnJ7jtnQgInbwgNJZozR7+cu6tWsY/7tWvW\n98nMJOrbl/2i1fgTX7pE1Lgx/ff2R9S/Pz8Pfn5EY8aoTzVcWBB+uAK73LjB7qZLl8ovwfNzMPHI\nAEjZWa6PbM1p04ZdFAYN0tai89YtXieuV4+Ns7Zs4VFMgwbancMeDz3EfpCJie47py38/DhcYXKy\n5e+zszkI/rp1vN74zjtscd25M0eqMk3C0KkT+3CGhvK9fu45nqqfP5/bOjmZ10Ut4W0xlFes4MhM\n1au775xdu3I7z5nDz2WjRry0kZOj3Tn+/Rd49lngl194hGsNJ0e6pZbOx4ImH+Ddd/lWf/EFN6Ow\nYFaPRIWwtSRJ2hgeHh6+ceNGT1fF49y9yyGM4+O5f/5lbg4G/T6Qf4Rai60CEZ+0fn3gs89cu4D0\ndODrrzm5eM+eHI6xUSPXynSFl1/mzm7iRM/VwZQWLdg1pH59Dvt35ozx3ytXOB5vSAi/cZn+GxIC\nVK8OqYg/ALlTzcxk8TQt4+xZ4/9TUlhYTcuoU4etZcuW5SlVb6BXLzbgGzbMc3XYuJF/L8nJ/MwO\nHuzalHtuLls19ejB5akhK4tffHNy+LduL1HI5ctc/qBBeD31PXzxBX88dizHVddrdt6X6NatGxIS\nEhKIqJvFHawNfQvyBjGlTEQ8s/a///EUUaVKROvWZPG8stbTyJa4fp1jyP3xh+PHEnEovilTuOJP\nPUV09Khz5WjNzp1Edet6LtTjhQtE8+cTjRxJ1KAB5+wNDCQaOpRDVs6eTbR+PYeszMqyW5xDoR3v\n3CE6doxzAs+YQRQdTTRgAFHRojwH2bo10euvEy1fziE0PcGVKxzKMT3dM+c3Z8MGoq5dOTzo3LnO\nTzVPmsRT1jk5jh3n5PQyvf8+zZjBtxYgGjvWO6ObuhuRgF4IrkVMxbZyZaLD+9wotgqbNxNVqeJY\nvN/0dKKpU1lon3zSe4RWwWAgatiQaOtW95wrKYnoxx+JnnmGk6hXrMj3cfp0jmM9YQLR++87fQpN\nYin36kW0eDHRpk1EH35I1LMnUZkyRM2bE738Mn939aqLJ1HJl1/y2r63sX49UZcuRPXrE/38s2PC\nu3EjUdWqzgdAdkF0ly0TomuKEFwhuPnwCrFVmDyZ3/DtdTDp6UQff8wVHjSI6MgR18+tF5MnEz3/\nvPblGgxsBPbDD0SDB/MMQXAw0cCBnAji8OH8ViyxsZyEwUk0EdzmzYn27r33s6wsom3b+J4+/DBR\nuXL8TD3/PNFvv+kXPb91a6I1a/Qp21UMBqJ164g6d+bZiXnz7I9Yr15lI6nVq107txBdTRCCKwT3\nHrxKbIm4Q3ngAaL33rP8fXo6UUwMV3bgQBYVb+fMGc425GomJIOBr/fbb3lqNjiYRXbIEBbdEyfs\n925//cUjSifRRHADAngJwRbZ2ZyK6rPPiHr35qw39evzy8LPPxOdO+diJYhnQ6pWdXza1d0YDERr\n17LFe4MGvERgqc65ufyyMm6cNucVousyQnCF4ObhdWKrcOkSd4Tr1hk/u32baNo0ruiAAUSHDml7\nTr3p2pVT0jlCbi5PA0+fzh1fxYrsRjJ8OE8bJyU53pMdPsxp2ZzEZcG9dYvzOTpa79xcogMHiL76\niqhfP15CCAkhGjaM16FPn3a8zLfeYjXwFUyFt2FDol9+uVd4P/mEqEMHVWvxqhGi6xIFVnABRAKI\nBhALIB5ApAPHFjrB9VqxVfj7b6Jq1VhUPvmE13b79/c9oVWYNYs7LltkZ7OR1SefcAcXGMgda1QU\nj2pczGVLROyXXKqU072fy4J75Ahfk6sYDDxCnTGD1+6rVSOqXp0N5r7/no21bF1jbi7PDhw44Hpd\n3I3BQBQfz77MjRoR/for0T//8A/ZPO+tFgjRdZoCKbiy2IaZ/B0AIBFAlMrjC5Xger3YKnTqxJXs\n14/o4EF9z6U3qam8Lmk6lZqZyR3llClEDz3E3zdtSjR6NNHChdxx6UH58kQ3bjh1qMuCu3q1S1Pa\nVjEYiE6d4hebYcOIatc2vqR9/TU/P6br2evX81qyL2Mw8Itpy5Z8U6ZO1e9cQnSdwp7gelGsNYcI\nJaLFyh9ElCpJUgx4tPuD56rlffz3H6fY+vtvoHJlYP2abNz34SB9/WydYcMG4OhR9uNs2xZo1ky/\nc7mD8uW53UaPBu67D0hI4BSA9esD4eFAVBQHQLAVoEArlLy4QUH6n8scvZIWSBIHOalXj4NwABz8\nOyEB2LQJ+PJL9gvu0oXbOy6OMwP5MpLEvrZ167ID/fffAwMHsq+z1ijBMQYN4uAY9vx05eAY6NED\nvQHExb2H/v2NbvYxMYC/v/bV9DmsKbG3buDR7B4AAWafhwIgsBiLES4RpaSw7YnXj2zXr+f1yg0b\n2DimcmX3uNXoRXY2+1SWKcP+p2++SbRyJd8QT/DII+z76gQuj3DfeYd9RD1BcjJPvz77LF/Efffx\nmqgvD7m++45HuHfvEn3zDY/sk5L0O5+LI90iRbjpW7b07WZXS4EL7UhEqWBxdSJTeOGBiEe2N29y\nBKnlS7x4ZDtgAI9AunXj0djMmZztxJsy76ghJ4dHrU2acE7UpUuBChV4NNurFyc48ASezBrkybCO\n1avzc9SzJ48M33oLePFFHvGuX+97MQkPHADee49T7pUowbMnb74JdO/Okb70wMkwkFiwAL0PfIBP\nP+WP9+/XtxvxGawpsa9tAKIApKjct8CPcGNi+M2yWDGiRb/5wMjWnFde4TdrX3gtzs5mn8kGDdiH\nct06Y71ffln/drTHlCkc9ckJXB7hdu/OBj+e5JFH2LWIyHiv6tfnQBOm98qbSU9n47N58/J/5+Uj\n3TFj+Bny9+cl6IJMgTSasnghPM0crXLfAi24v//OEf0AoiULs31PbIm4rmFhbADjreTkWBdahV27\nPBvqkYjr+OSTTh3qsuDWq0d0/LgLBbjI5cuWQzlmZ7MI16/PLlzWnkNvYdgwjiZmDS8X3QkT+Dkq\nX54NygsqhUJw5dFtvAP7b2zQoAG1bt3a6hYbG+ty43uCffvYCwQgmvJhjm+KrcKpU7yfeZQiT5OT\nw247DRuyZbWtdUGDgV05/vnHvXU0JSHB6bSBLgmuwUBUvLjz6QG1YPp0jiNtDWW9vV49ovBw7xTe\nuXP5Gbp92/Z+Xiy6uRPfp379+FmqW9d+HBRfpcALLngtd4+DxxTIEe6//3KUN4Bo2JBcffLZuopa\nsVX49Vcehdy6pWu1VJGTw8EHGjZkn8j4eHUj148+Iho1Sv/6WSMpiahWLacOdUlwr1zhe+1JwsLU\nzWNmZxP99BOrQbduHJ/YGzh+nNtQrZucF4vu7benUFgYP09du6o71NcoDIIbBzOLZRXHFDjBvXOH\nqF07vqOdOuZSRu8Bvi+2Cs89x7GDPTUtm5PDwt+oEUf2+ftvx+py9iybi7sa6tFZMjPZMdKJTDQu\nCe6uXUStWjl5sAYcOcIBMhwJ5ZidzVG9QkN5/TkhQbfq2eXOHfYd/v57x47zYtFNHvs5VavGz9Sz\nz/rG8rkjFGjBBfvd2nUDsnBcgRJcg4HDDANEISEGuvroMwVHbIl4SrJJE6I5czSvlk1ycjiQfuPG\nRPffz0Hvne0hunUjWrJE2/o5QtWqROfPO3yYS4K7ZAnHRfYU48ezS5YzZGUZhbdHD8505G5eeIED\neTjzzHmx6O6K+oFKluTn6pNP9KueJyiwgiuv24aafRahRoALmuBOmsR3smxZAx164NWCJbYKhw9z\nGe5Ix5ebS7RgAbdN+/YcLcnVV/HZs4n69NGmfs7Qvr1T68guCe706UQvveTkwS6ihHJ0NWJZVha/\n6NWpw0k2Nm/Wpn72WLyYxT411fkyvFh04wYsIoCNO1es0K967qZACi44tGMUgDCTLQJArMrjC4zg\nLljAd9HPz0B/dpxcMMVWYeZMDoV4547rZVkiN5dDLCpC+9df2s15paWxiaanrEUiI3m07iAuCe7r\nr3MCCk+wfj1RixbalZeVxS9NivBu2aJd2eYkJXGyhp07XS/Li0X3wx7rCeD4ML4Y4toSBU5wwZGm\nyMqWqLKMAiG4O3YQlSjBd/GL5rMLttgSsfgNGqS9AZIitPfdxwvhq1bps7ik5K31BE6Kn0uC278/\nvxF6gmeeIfr0U+3Lzcri+M0hIUQREdpbn2dm8jP42Wfalemlomto1JgGNz9AANv0Xb6sX/XcRYET\nXC22giC4mzbxmyFAFBWyhgyPFnCxVUhLY0vShQtdLys3l2jRIhbatm31E1qFP/7gtWBP8MUXTk3v\nunnn4VUAACAASURBVCS4Tk5ju8x//3EOXr2S2BOxqMycycLbs6d21/nGG0SPPqr9c+ilonu3YQvq\nUPM8AWxm4GSODa9BCG4BFNysLKLSpfnuhZS6TFmP9C4cYquwezdPuSUmOnd8bi5RXBxPT7dpQ/Tn\nn+4xl8zK4jjRJ0/qfy5zliwhevxxhw9zSXCrVtUmxaCj/Por0YMPuudcmZlEP/zAYva//7kWA3zV\nKl53vnZNs+rdg5eK7uX6nalEkay8cNe+jBDcAii477/Pd66YXxYldn+2cImtwvTpLJaOOPPl5rIx\nSrNmfOwff7jfL+HVV4nee8+95yRy2kXHacFVXJEcccnRiocf5sAk7iQzkyg2ludGH3yQaNs2x45P\nTub0gnpbQ3up6C6q9ipJMBDA77++ihDcAia427cT+fvzg7m2/YTCKbZELJSPP85rk/bIzeURXvPm\nRK1bc+YeTzkA7t7NhjfuPv/ly0QVKjh8mNOC60KwDZe4dImnk+1FZdKLzEz2m61Vi3MeqxHenByO\ncvXBB7pXj4i8VnRjKn2Sl9nsyhX9qqYnQnALkOCmpxPVq8diOzZ0aeEVW4Xr13kKbuVKy9/n5hIt\nXcrWqmFh7H/gaU97g4H9et3lXqKQm+tUmEWnBdeFcJIu8fnnHHfY02RksPDWrMnCu3279X0nTmRf\nX3fOBnih6OYkX6JupbYTwO/Snv6pOoMQ3AIkuCOfyyWAqFnZJMpIK+Riq7B5M0/Fma4VGgycwaFl\nS55GXb7cu369U6YQRUW5/7x16zqcSMBpwXUhYYJLtGrl+exEpmRkEM2YwcL78MPsWmDKhg1EwcH6\nGnhZwwtF99yuK1TeL40AXhr3NYTgFhDBXTbnBgFExf0y6eBuFVM0hUFsFT76iFOtZWURLVvGQtuy\nJf/fm4RW4dw5DvV49657z9u9u+24wjk5HI1q0yYOmP/++0bBHTWKaOpUdvPZvp3n/Gy17UcfEY0b\np/kl2OTwYaLq1T2zbmyPjAxOHl+jBqcL3LGD6OpVru/q1Z6rlxeK7q/fpRBAVKpIBp085oX30gb2\nBLeI6sS5Ao9x+TIwYiT//+M3b6JZ62DbB3gqebynGD8e+PFHoGxZoHFjvubHHwckyXN1skWtWkCL\nFsCffwL9+rnvvNWqATt2AKVKAWfP8nbmjPH/yclAhQpAnTpASAj/q9C8Oe+zd6/xmDt3gNq1jfsr\nx4SEAIcOAZ06ue/aAGDePGDwYMDf373nVUPx4sALLwDPPgvMng306QNcuwYMHAg8+KDn6jV6NP/b\nvTv/nk3vuVYoSewHDeIk9osX82dWePKFAPzx23n8urkWhoSfxZbkEBQtqn21PII1JS7IG3xohGsw\nED38QAYBRBF1TlNuhUrs9mCNwjSyVdi/nw1lSpTwrulEW8yZ45SbjkPk5BDt2cM+uH36cBw9f3/2\njx00iGMNx8ZyjOiTJy3aBNicUr51i+jQIV4b/+orojFjeCTTqhUfVLIkp8abNYvL13O2ISeHR4uH\nDul3Di358EPOo9m4MY90PY23jHRzcogmTqSUyg2oZjke6b73rhfOUllBTCn7uOB++y3fpcDityk5\nmTg3bP36nEHH3ACmsIptlSrsVxsfz9lhfCFkTVoaUbly2vpcZmXxdO+0aRw8ISCAMxyNGsUvaR9/\nzClaHMDpNdymTdkFKzaW6KmnWAyrVmWhnzGDM/loKcBr1/Iygi+wbRub4p45Q/TOO9xWQnTZNSo8\nnA3I/v2XNqw3kIRc8vMzuOTe7E6E4Pqw4B49SlSiBFslx80w6Zhv3SIaMoTF9fBh/qywi63ChAkc\ngCA313P1UsuTT3In5ywZGWw0NnkyX3PZsuxj/NJL3CbmLx5//cVRkRzAacE1jxttMBCdPs0j+6ef\n5ghNlSoR9etH9OWXfC9duWdPP80Wyt7OzZt87b//zn8bDEJ0idj5tkoVHvmbrMFH9ztNAFFoqMEr\nUmLbQwiujwpuZiblJWt+uqEFXz6DgdOHVazIP9hGjYTYEnE+006d2MDH21m1iqd31XLnDt+DSZPY\nAKp0aX5IxozhDtxeYoQjR4gaNnSoik4JbloaT5faG8GeO0f0889EI0bwrE1gIE+zf/YZB+pQm79X\nCeV46ZKDFXUzBgPRE0/kD7FZmEX3oYd4BqZmTYtBPzLuGqhlqeN5+XO9HSG4Piq4/frx3QnxO0tp\nR5Ot73jkCK/NVa7MHZ1e+ILYKpw/z+3hiTi+jpCdzddx4oTl79PTeX317beJOndmgW3fnig6mqNk\nOZq67dYtdUJoglOCe/gwvwA6ysWLnNHohRd4tqZcOXal+fhjDpmYlWX5uF9+4Y7b2/n2W17ftmSd\nXhhF9/hxoiJF+Jm0sbRyZEYClZDuEsDvmt6MEFwfFNzvv1c6OgOt6z3d9s5r1/IPY+RI9rPcvVv7\nCvmS2CosX87t4u3R0F97jTtaIhbQP/5gQW3fngW2c2cW3DVrWIBdJSDAoRSBTgnuqlUOT11b5OpV\nXgd+5RUOXlKmDGfo+fBDDqyhCNeDD7LoejP79vFvyFYc7cIkunFxvKQwfjwvP9ianTAY6N2qM/Py\n5yqraN6IEFwfE9zcXF6GA4g6+O+wHfzdYOAOed48/nvhQn6Ip0/XziDFF8VW4dVX2TrXG31xFRYt\nYsvhli1ZYLt359f49ev1yfvbvDkb3qnEKcGNjWWjPq25eZNfpMaO5VjYpUvz9fj5eSZwhFrS04ka\nNFAX37mgi+7duzyDERpqzPf7yiu8LGKDnJWrKMg/xeunloXg+pjg/vQT35UqpdLoxog3be+8di3/\nkE3XuhITuTN6/HHXR3e+LLZEbFQUFsYuK97GuXO8dhUQQFSsGFFMjLpQna7y6KMsWipxSnDffts9\nc39pafxCVa4cP6cffOD4NLs7GDqUaPhw9fsXVNE9doxfkAYMuPc+XbzI6/d2Rrnbmwwnf79c8vPz\n3oT19gTXz30evwJ73LrFMRwA4BNpHIImvWp9ZyJg4kTgvfeAIibxS0JDgX/+AerVA1q1ArZsca4y\n3hLUAgAOHODgAN98w47zaileHFi4EPjgAw7Y4A1cuMABEFq1AgIDgVOngPffB06f5vrqTa1awPnz\n+p7j/Hk+j96UK8cBOH7/Hdi6lduwXj1g8mT+MXkDc+cCu3cDX3+t/hhJ4me2Tx8OYHPtmn71U8Po\n0cCbb3JwjDNnnCtj7lygSxcua8ECoHx543fVqgHDhgExMdaPlyS0/2wAXgz4FQYD8Oqr3AX6HNaU\nuCBv8NIR7ptv8miiQ9UzlPvSK7Z3jo9ni1NbYexWrmTjoY8+cszlwtdHtub89htRvXrkUb+C8+d5\nKi0oiNetTI1Ezp93X6jHKVN4jVglTo1wu3Xj2Re9OXSIQyWaPtsnTvCIsmJFdpfS05DQHseOcT2c\nDcZREEa66emcTKJRI6KDB63v9++/PMq1tTRgMNDN1hFUoSwHAlq0SH013IWYUvYRwT1+nNOHSpKB\ndpXrwdMs1jAYiDp2VGcocuECxxmOiFDnNlHQxFZhxAgOwODu9dwLF4hefJEFddw46x1njx7aXKc9\n5s/n4BMqcUpwQ0OtW15rSXQ0v7xY4vhx9lX3lPDeucPGGLGxrpXjy6K7fz8PCoYPV5cu8bXX2O7C\nFn/9Rd9XnUgAexI5mPxKd4Tg+oDgGgzs1QAQPdd0OxsR2OLvv/mNUW2Q9uxs/tFWrWo79GFBFVsi\n/mXedx/R7NnalGePCxeIRo9moY2Ott9Z/vgjBwLQm4QEfllTicOCq6QB1MPgy5ScHI4qduSI7f2O\nHycaPJiNCT/6yH2zHM8/z2uVWrzg+ZroGgycqKFiRaNBpxpUjnJz2neklrVvctjH9xyque4IwfUB\nwV25ku9EubK5dCWggf3RbYcOtuMpW2PtWu6kJkzIH1SgIIutwuHDfI32OmlXSE7mwAZBQbxGoDaT\n9q1bbPyjd4d65gwPDVTisOBeusRtrDfx8WwQp5Zjx3iGo1IlnlbXU3gXLeJRvpYGXL4iuikpHESg\nZUvnZjnGjLE/4Fi9mjbXHszZ04rr6yrsKEJwvVxwMzLYfRYg+iL8d/tTKmvWODa6NefyZQ4D2KkT\nrx0SFQ6xVZg1izstreeiLl4kevllFto33lAvtKY8+STR119rWy9zsrJ47UJlFCeHBXfnTseE0FmG\nDeOkDI5y9Ci3c6VKHI1MC99mUxITuexdu7Qtl8j7RXf7dg5b+dJLztsjXLrEo1wVg46nOp4hgIN3\neQtCcL1ccD/+mO9C4/rZlBVQye50Ct1/v3OjW1Nyc7mzqVyZpz0Li9gScRs++SQHCtGCixf5jTwo\niP1DXUmc8NdfRO3aaVMvW1SrZnzZsoPDgrt4Mbvq6Mnt2+xO5UpbHz3Ka9mVK/OPUAvhzcwkattW\n35jO3ii6NWqw33WlSkRLlrhepppR7po1lFy3K5UuzbHm3WGjpwYhuF4suBcvsu8+QPR33+/sj25X\nr+Z0Xlol2F6+nE8eEeEeH1BbuENsFdLS2Gp5wQLny/j3X75fQUFEr7+uTYai7Gyi4GBed9ST++8n\n2rJF1a4OC+4XX/BIX0/mz+ck7lpw5IhReGNi1Bn3WGPsWKJevfQ3zPMm0b16ldtOkrSb21VGuck2\nQtrKhqMfDdhHAJtnWIv86U6EH64XM24c8N9/QJ+HMtBz49v8gTXIxO9WqwTbO3dyUuiyZTlZeGKi\nNuU6irN+ts5Srhz75778suPXfOkSMGYM0LQp4OcHHDkCfPYZUKWK6/UqUgR48klOpK4nNWvq54vr\nDh/cn38Ghg7VpqwmTYDffgPWr2df7bp1gU8+4R+mI/z5J7BoEfDTT+xHqyfe4qebkACEhQHDh/Pv\n4eBBbcoNDuYy7fjlYtIkvL5vGEJDCUeOADNmaHN6XbGmxAV5gxeMcOfNo7xF/8ThH7JJvC3++osD\nums1ur1+nUdnSUn8tvj11zwl9Ntv2pSvFneObM358kui1q3Vje4vXeKprqAg/levzDR79/K6mJ7p\nBceO5dGcChwe4fbr59rMgT3+/Zenk/Wygj50iK2Lq1Qh+uQTdSPeCxd4fwvZbnTFUyPdnByOJBYc\nzLNuRJytqmVL7Ub3ly+rG+V26kTLX99IAGentOXq6w7ElLIXCm52NlHJktz6zwz4jztxO2HNqH17\nbTuyt99m31RTlOT2I0a4x8HNk2JLxO3au7ftlx1ToX3tNf1j9hoM3IEmJOh3junTee1eBQ4Lbrt2\npGu28E8/dSxMorMcOkTUvz8/n59+av33kJ1N1LUrJ1TwBO4W3YsXObCJnCT+nnq0bEm0bJl25xo7\nNn8qQ3Pi48nQoCHd14TXcp1JUqUlQnC9UHAXLuSW9/Mjuhb1lt3A3bRqFY9utRr1KKPbM2fyf3fr\nFvst3nefvu4znhZbhRs3iGrVIlqx4t7PL1/mtdmgIF6rdWdw/JiY/C9DWrJ0KcfaVoHDghscbHtU\n4iotWrBVvbs4eJAoMpKv67PP8gvve++x+Gg18+QM7hLdv/7idjBLEp/HsmXajnKvXOFRrooELqve\nWJfXp9raXW+E4HqZ4CpBogCid8ekqRvdtmvHKq0VEybYttI1GIjmzGHr5dmztTcC8RaxVdiyhQ0/\nzp/nH/nYsXxfXnnFtnuCXly4wB2NXtOmu3Zxx6gChwQ3I4MTMeglPgcOsA+xntPtts7drx8Lzuef\ns/CuW8d/e0OmIj1FNyuLfcpr1LA982IwcL7f33/X7txvvGF/NkZO4vJ4r1wC7K/O6YkQXC8T3A0b\nuNWDgojSn3+DR1G2+PNPHm1q1clcu8YnP3vW/r5HjvAP+KmntAuN521iq/DOO7ygHhDAVrZ6jtLU\n8MAD2r5kmXLlCj8DKnBIcBMTef1ZL954g+itt/QrXw0HDrDjZ1AQ+zOvWePZ+piih+ieOcPLWY8+\najNJfB7Ll/MshFb9ldpRbpcutH/ySgJ4uc4ZN3gtEFbKXsbkyfzva8/eQplFc4DoaOs7EwGTJrF1\nsp9Gt+rzz9kSuHZt+/s2acKWzGXKAK1bu55xx93WyGrJyQGOHgUMBmDgQOCrr4Dq1T1bp2HD9LNW\nrlQJuHPHcUtce1y4wBbQepCbC/z6q3bWyc7SvDln0KpRgy1l9+zxbH1M0dp6eckSoF07zhq2ciVQ\nsaL9Yx57jL0oli937dwKlSsDI0YAU6da30e2WG4x93U81suAu3eB6dO1Ob3mWFPigrzBQyPcbdso\nz5ru5shonrq0xR9/8NuqJ0a35ijJ7b/80rkpZm8d2WZns3HMww/z23zVqt7hRZ+eTlS+vH5rcvXq\ncbhDcwwGXuLYupXo11+NI9xPP+WgBnv28Lq3pWfg5595NkQP/v6bLcq9gWnTOLzq2bOcj3rKFE/X\n6F5cHenevcsJN0yTxDvCihWc91arfuvqVe63bAVrkUe52yeuMvaxN7U5vSOIKWUvEtxevbjF33rp\nFj9AtoIlGAycSF5LgRo/npOeO4uS3L53b8eS2/uC2Cqh6OLjORKTFoEsXGXwYKKvvtK+3NxcozV6\nTAwH2n/oITbxLFmSX6zatiUaMMAouK++yve9RQuO+VyuHHeqvXvzd198wcZD/frpE/hh6FC2rvY0\n27bxer/y0nrxYsES3ePH+R6bJ4l39NxhYdpEnVKIjub0lrZYv56oXj2KeIDXct9/X7vTq0UIrpcI\n7r59lLe+cPW58bweZYuVKzm9l9ZviefOuVZOZiZbVdeqRfTPP/b39yWxVZgwgeNNe8I4x5TVq1n4\nXCUnh2j3bjb26d2bnwN/f6Lq1XmW5euveTbl8OF8IQ4truEaDDx82LOHO9VPP2X3jVKleF2zZk1O\njTdzJgewd1WAldG+pxbmFFJSOFawuVFQQRHdn39mQ8nYWNfv2YoV+vRf9ka5XbvShvGr8+xk3J0C\nWwiulwhu//7c2q+NSOcnwVbnYTDw9NnixdpVYNw4HsloxcqVLKRTplj/Ufmi2Crfd+rEMXY9SXY2\nT3Fbmvq1RVYWj8RiYjgEYvny7Fb2wgsc2OTiRaJ33yWaONFuUQ4ZTT3yCBvNnDhB9MMPLLo1a/I1\nDBzIKdsOH3a8M//5Zzba8SQGA4/erYWt9GXRTU8nevpp+0niHT2vJ/qwDRvIULcederIfrnTpml3\nejUIwfUCwT16lEONFitGlPz0BDaxt4VeayCujm7NUZLb9+yZfwrWV8VW4dw5njpUM4rXk7FjecRt\ni4wMjnI0eTLfi7Jl+fl5+WXu8Cx1tDNnqgog4ZDgNm3K990Ug4Gjmf34I9EzzxDVqcOjqCeeYHuA\nffvsP+c9e+obvUoN337LLi+2opL5ougeOOBYknhH0HqWTrFBsdePhYfTqtfjCeAuSO/UzPeeWgiu\nxwV36FBu6VFDVI5uPbH+4SxKcvtq1YzJ7X1dbBWWL2c3F0fWq7Vm/36evjfttBQf0IkTOepP6dI8\nmnj9da6zmvquXs1JK+zgkOCWL6/u3OfPcwKCkSNZoAIDiR57jKemd+68N3XgxYv6+iSrYd8+fkk4\nedL+vr4iugYD0YwZjieJd/ScnrBD2bCBDKF1KawVj3L1znhpihBcDwtuYiIvl/n7EyUNeZfFzxbL\nl7vfwk8LlOT2Dz/MRje+LrYKr77K6eb0zgBji4YNed18wgSe6i5dmjP+jBvHUcic8ZE+epSFwQ6q\nBTc1levlTDtdusRW8C++yD7n5cqxEdfUqTwSHjbM8TK1Ij2d2+mXX9Qf4+2iW7cuh6N0Nkm8I3jK\n06JbN1oymqNP1azJpifuQAiuhwU3KopbeVi/2/yg2DJeUCK1LF2qXQXefJM7MneQnMxz51Wq6C/w\njuCs2BLxFGJYmHtfkxXu3GHrX39/Xo945x2eRdBi6i89nS347AikasE9dEi7QLbXrvFv4NVX+XkK\nDGRB9oQR27BhRM8+6/hx3iq627ezYVvp0s4niXcEg4EN/xYt0q7Mt96yP8rduJFyQ+tREznG8qxZ\n2p3eFkJwPSi4u3ZxPylJRMcGTVI3unV3lBYt+eknos6djcntly93z3lt4YrYKpw6xVNve/ZoWzdr\n3LnDLjBVq/Loes0afTLkBAbajR6kWnBXrWLLbi1RptP/+IM77fvu447bXcL700+cf9rZFxxvEt3c\nXM5+VKkSTyFXrswvSe5A62h5Six4e6Pc7t3pl/+zd93hUVTt92wSCB1CS4BACNJEilIERRIELJ8C\nigXB/il2RMEu+rNLs3fRz4YdVEBFBFQSBKT3XpIASaiBhPRk9/39cRh2s9mZbXeG4pznyRPYndw7\nOztzz33bee9kJ6H4eGsylm3CPYGEe/bZvMLnnFUSuHVrtQ6pKpSV0VX111/8/8KFXCwfeODENbdX\nQbYavvmGtatmPrWFhUwkatqU5TsrV7rfMyNxqEuXinP4QMCE+8EH6hsueCaMuVxcuLt3p4ty6lRz\niXfTJm6ywiWlk4F09+/nM9Crl7thycSJfDasgFl68HfeaXxMSoqUJbaR2rVp5Vrh6LMJ9wQRblER\npXkBkW8GfMx4mxFORKcNlfj0UybweOLQIRJHt24i27dbcx4aVJKthhEjKEahOp5bVESBi6ZN2cXH\nlyVtRmnMwIF+26kFTLhjx6pVGigv910S5XLR4u3enRmw06apJ97CQuZRTJ6sZrwTSbrz59O8e/RR\nlotpyM9n6McqK9fKjmee6NdPbjpvmwDcL5sNm3BPEOF+/TWvbqf2x6xbI9fdieolqQqadTt/fuX3\nXC6SScOG1jW3N4NsRZgdfNZZ7KSkAkVFjA03a0aiXb5c/1gzxB/uvdevklXAhHvTTdx0qcLvv5NU\n9eByseykWzeS4w8/qFvM77mHdcMqN1ZWk65nk/jffvN9zKRJbD1oBczq6W3U9UxEJDVVDrQ4R2pU\np5UbSKJ5OLAJ9wQR7oUX8uq+1+drprIb4aef6E5W9YDv3Uvr1qqON59+yg9shBUrqN97xx3mNrc3\ni2w1rF8v0qBBeL2CPYl20CBjovXEjTeqlTccN85vTXjAhJucrFaD+oYb6F73B5eLdetdu9JF/uOP\n4RHv999z86iqO5YnrCJdrUn8hRcat5fUrFxVYhf+8NtvtHJVtW88dIjP4s6dxsf17y//7b1FAP9p\nNOHCJtwTQLjbtvHKVq/mlCP1EoytW6eTC4XKBKMxY6yzbktLKXJu1CdTQ14exe3Nam5vNtlq+Phj\nxhGDTWIqLhZ55x0S7cCBzKoLBqoF/L/6ipacAQIm3Fat1JkPoVjzLhefoXPOobfop5+C38Du3Mmk\nomC/l2BgNulqTeKfey4wYnvlFSpoWQHNylXp6XrqKf+5AwsWyKImVwnAXDFPz7pq2IR7Agj38cd5\nZW9pu8h//84ff+TuXJV1m51trXX7yScUrQ8ULheb2qtubm8V2YrwnIcP95+0oaG4mEpF8fGMw4bS\ngUWEC2jTpqyhVYHUVJHzzzc8JCDCdTqZjq8qi/rzz7khCQUulzsfQgvTBHKPlZQwsef110ObNxiY\nQbqeTeJ9hXb0UFBAgl6zRt25GGH2bGZ+W2zluvoPkA5NcwRQqynkDZtwLSbc0lLev4DI37UvZXBf\nD04n408zZ6o7gTFj9PVeVaO0lFJ9gVi33li/npbu9deHn/lrJdlqyM2li9woJlVcTP3g5s2pM7xk\nSfjzqmzCnp7OBdoAARFuVhYtQ1UYMCD8jFaXi1Zuly60emfMMCbehx+me98qgROVpJuWxgzkyy4L\nrR3fq69SYMQKuFw8V5VW7tNPi9x+u/Exf/8tr8c8JwCXCbNgE67FhPvTT7yqZ9bLFNcTfjRwf/jB\nHOvWKG6jEv/7X3DWrTcKChjTbd069BrXE0G2GpYvp6XunYFdUkLZvObNeV7//KNuzjVrKks9horS\nUlqmnlKKXgiIcJcsUefq3rNHrZSj0+km3q5dubn1ft5++YXfldHm2AyoIN0ffuBm59VXQ78nNCvX\nWwfbLPz+O0VSVFu5O3YYHnYg+WqpGlUuDod6WXkNNuFaTLiXXcar+mr1sf6t206d1Fq3o0eLjBql\nbjwjaNZtamr4Y33zDYkr2Ob2J5JsNbz5JrNpS0r488EHJMRLL1VLtJ7o0sVd7xwumjUzXH0CItyp\nUynQoQITJ6qv5xXh8/bjj/QodevGDGeXiwQfGyuyYIH6OQNBqKSrNYlPTFTjOXntNWut3PPOYymH\nKjz9tH9FsIULZViNGQIE1CgrJNiEayHh7tolEhEhUiWiTPY/+JLxwdOm8cFXZd1mZdEyyMpSM54/\nfPyxSP/+6sbbto3X48orAxPAPxnIVoTf38CBzGxNSBC55BK2xjMTr7wSUKefgHDeeYZkc5xwjTLL\nX3tNzUbP5WIyWighikDhdNIq7NSJrua4OJEXXjBvvkAQLOlu2cJN1zXXsEevChQUsO551So14/nD\nnDlqrdycnICs3HndHj2ur6xqak/4I9wI2FCGTz8FXC5gSNQvaPT03foHulzAs8/yx+FQM/nEicDN\nNwNNmqgZzwilpcCLL/L8VaF1a2DhQqBlS+Ccc4BFi/SPLS8Hrr8eyM8HfvwRqFZN3XmEgtq1gR07\ngBEjgNmzgV69zJ3v+uuBn34CCgvDH6t+feDXX4GffwbefhsYMwa46ip+BzExFY+Li+NnGzYMeOIJ\n4MMPgTlzgAULgAYNwj+XNWuAo0eBCy4Ifyw9RETw861ezc+3dy8QG2vefIGgaVPgr7+Azz4Dxo0z\nPnbKFKB3b+Duu4Hvvwfq1VNzDjVqAI8+Cjz/vJrx/GHAAN5T332nZryYGOC++7guGeDCN69Eq6gM\n7N7NW9dy6DHx6fwDEyzc8nJ6EgGROdd/anzw1Kl0Q56q1u1HHwXU2i1kzJzJ/P1x4yrHpU4Wy1aE\n39/99zO7dfZsnrNVTRsuvji0xJOjRxlDGzuWuteASLVqjIXcey9dulOnsjTm4EG3het00hJbS97y\n3wAAIABJREFUuJCt9V58kYkq/ftTLDwqit/J+PG08EOpvRgzhudlBf78kxbdggV0q6sSMwkHRpau\nZ5N4szKKCwuttXLnzmUnLFWm5uHDtHL9qNq91OYTAczxoJ/WLmUA1wAYEMLfKSfc2bN5NVtGpIvz\ngIFL1Omk2+yXX9RN/sADIg8+qG48I5SU0HX699/mzrNrF1vRXXyxu7n9yUq2mlvv5ZdJYgZJSMow\nZQpJ0h+OHKEG8aOPsgayZk2e49ixJN5JkwxFZgOK4fboQem+adPoWu7SRaRWLW7KXniBcX5/etpl\nZXTvbt7s/zOFi337SLK//87/b958cpPumjUk2ltuIfGaiTfeUBeP9weXi8/4l1+qG/OZZ0RuvdXw\nkMyZyyUSZRIV5Tq+tKjCaUu4AAYAOHyyEO7VV/NqvtDXj9rO999zgVJl3WoNuq2ybidPppC+FSgr\nIzE0bcqC/pOZbEW4mbroIhbjm438fHYQ8l4xDh5k7eno0czKrVmTikPPPkurzjv796efWA6jg4AI\nNy6uct13Tg5LcR56iN6cmjWpRvV//yfyxx+VY8KzZ/N6mg2nkwlt3upvJyPpvvgi67cbNqSWthUo\nLOTz5qephTLMncvPqmqTqlm527YZHja48SIB6JBRidOOcAG0AvAhgDsB7DgZCHfdOpHISJdEoFz2\nrDdIYnA6WXv666/K5pZRo7i4WgHNul240Jr5NMydS7dlvXrm7/D9QY9sNezdywVr7lzzz+Xmm9kU\n4/vvqSzWqZNI7dr0Crz0Et2l/izLFStokerAL+EWF7O0yJ9bMDeXVvDjjzNRq2ZNim488QTJ9oor\nrOk5PGEC5/Xl8j6ZSHfTJmZg1qxpjdXviTff5PdhBVwuelymTFE35rPP+rVyf560SQCRJk1cSpWn\nTjvCrXDyJwnhXn45r2RC3RzjA7/7jgu1KutWq1nMzlYznj98+KH6nqeBYOdOuih79xbp08e6Dkje\n8Ee2GubNI+mq9ld5YtUqyikCvAEnTmQZUrCrx/79bK6hA7+Eu2MHN2HBIj+fm5Knn+b1BESGDTP3\nu128mHF2oyLMk4F0ly5luU+/fjyXkhJr57fayp03j618VFq5DRsaWrllZSJVHKUCqBUXswnXAsJN\nbM4v7tFRBsX6TieFu2fNUjav3H8/E02sQEkJs8IWLbJmPk/cfjvdtE4nY1uxsayjtBKBkq2GsWPp\nXlbdOm7VKsbYmjQhyTZpQtWuUOFyMWlKp8m6X8L96y9ugsLBp5+SXB55hBvI++5TT7w5OdwYBNJv\n+kSRrtPJkq9GjRgPF2GZ2QcfWHseIuwiNXiwNXO5XLyHVLrNn3uOMW8DnNcxTwCRKwerqw+yCddk\nws3OFnHAKVVRLIdnLdK3Xr/9lkkrqq1bM60oT3zwAR9+q7FjB2MynrW5f/9N8h892prdf7BkK8It\n9AUXqNPLXb1aZMgQxktff90di33kEf+9lv2hTZvKfWeFl1Yj3GXLdLzGX3xBec5w0K8f3eIiTGh6\n+GHe2yNHqtEEd7l47YKRPLWadA8coKeiZ8+KusCLF7No1F9oQDWKimjlhqoAFyz++EOtlXvkCK1c\nvYYaJSWS8mIqPZPRWcqWZZtwTSbcyZN5FS9PWEsLtlUrJoZ4ujPKy/meXl/KUDByJBNSrIBm3Zot\n6OALt91Gt6M3Dh3iDrx7d3Ob24dCthp27aILM5yM7jVrWL8QF0eBCe9ko7VrqYccoiVdWCiyvMfd\ncvulu6V7N5dcdWm+9OqQK03qFYgDruOEC4hERZRLy0ZHJfmcIzLwoiLpfb5Lnkj6WzaMeC30dXL3\nbpKrdyLc3r28v2NieP3DId533mECWbCkZRXppqTwO3zkEd8hgUsvpVSo1XjrLcOEOqVwuUSSkti4\nQhWef555Dp5z/PMPPSgNG4rzgiSJjT4sgLpKKJtwdQi3bdu20q1bN92fDz/8MKALfNmFhQKIfDTZ\nxS90xQqW6MTGUqT7vff4cypbt++/z4feamzfTus2Ryc27nIxwaNRI7WNrT3HD5VsNcycyc1KIOpZ\nnlizhqnvcXHUyTVSeurShRaCHxw9ypyh5GSRgZc5pV1CoUQ4nBVI1fPH870G1Qt0jwNEoqPK5Oz2\nhXLppS65/HIavgGFk8ePN5Zy3LuXYRONeIPVCV+1ytjS8QczSbe8nK7PuDjjUNM//5w4K7dZs8D7\nNYeLP/+krrpqK3f2bJJv27b8eeGF416EO4fTrfzM/6lZm23C1SFcFRZuXp5QDBvOytxXVsZs5GHD\neJnbtaOknIqH5r776HazAsXFfNjN0gU2wn//S2+BPyxfTmnFO+9UJ3qvgmw1PPggsz4D2XCtXUvJ\nvthYxvN0YqsV8OqrPrMyt21jJODhh0XO7eGUyEhXJaKMdJRLh0b7pFvrIzKgX7m8+iq7u6WlVSbM\nwkKqCs6ZI/LkkyIXnFcuPVvtl5b1Dvsk4RrVyqV/f5c89xy1Uiq1hXa5mLUfiB53djZDCDExzMwP\npAwuL48L7Fdf+T/WCGaQblYWy7X69g1sE/Gf/3DjbjXefjv0VomhIDlZ5LPPwh8nJ4dJnrVqscLh\nvvu4hnk9g7Nm8V7t0l5NqaFNuCYS7vff8wr2bmXwwOTkiFSvzpWvb19mhN51F92MoVi8mgsumObc\n4eC998ztZ6WHbduMrVtv5OZyc9OxY/jN7VWSrQhd8t270xrXw7p1rDOOjaUYRSBEqyEriyVTBQWS\nlkbtgo5nlQu8XMKRKJPEOgek2xk58vzj+bJqlbqS5txcVouNvCVPOjQ9LAm1DvggYZdccpFTPv/8\nWF+PlStFWrYMzh2enc0NTEwMBV/0iNflErnxRv9t2wKFStLVmsQ/+2zgKktLltDtfKKs3GXLrJnv\nr7+4eQ7Fyi0pYe33NdeI1KlDD9GLL3I8HRQXi9SKopfST0vdgGATromEe/31vIKTxhgQ7owZFWUQ\n09NZI9m+PeO9zzzjt0i7Au69l7EeK6BZtyq6kQSLW28NvqWHy0VTqmFDLoyhbGhUk62G7dvp+vZO\nQlm/XmToUMZ6J04MjmiPYfZskT51V8uZMVmVCK5BtXwZe91WmfNTvuUlzPv2iUybfEhGXLhNakQV\nVyT/CKd0qr1DhrRdJ+vWhTB4VpabeB98sHJp3KefMm/CyBUfLMIl3dJSKn41axZat6fLLqMQhtV4\n5x0mdFmFvn35/QUCl4vr07G4rFxwAS1bbaPudPoVBhrafYey8iCbcE0i3JISkbp1GOPatsVghz5m\njO9uJC4Xd42jRnGxPe88WpNGsb5du6y1bt99NzD5QNXQrNtQCW/9ei62N9wQXHN7s8hWw7ffMkaV\nl0cr/Lrr+N1PmBC0oEdxMaWU+19YMQZbq2qxDE3Klq8/KbKsPDtQbNsm8u74PLmo816Jiih3J2NF\nOmXYMJfMmxdC7ldWFi3dmBi6nLOzRTZu5OIbEpP7QaikqzWJ/89/QmsSL3LirNziYs67dKk18wVi\n5aalcV1t25bP1HPP6XcKGjzYMMfj69e4UU1ODj+Oe7oT7mEA14Twd2ET7u+/8+p1rJ1mfGD37v5j\nVKWlrCsdOpSukCFD2LvT+8G65x5rrdv4+BNj3d5yC91t4aCggMk4bdoEVsBvNtlquOIK1r02bMiE\noSCJdu5cCkrVret2F1d1lEib5kXy6qsnXvUyUBw+LPLgAy6Jq1ckDrg3DY0bu6R/f3JmUMjM5Oa1\nTh2RKlXMVa0KlnS1JvGTJoVfl3355bQ4rca771pv5Xpf38OH6cHq04cb8nvvZeWEP0/Wq69y7dTB\nkcMuqYISiYhwhbwX0nDaES6AegAmAJgKQI5ZuR8GQ7wqCPeee3j1nhpgUCqTm0tptmB2pEeOsNds\ncjJvqrvvpthERgZ38eHeEYHCajeShnCtW298/TUXu7ff1n8wrSLbnBzGmKtWZclFENi8mfsQh8NN\ntGfX3i7vPrzT1FO2AhlpTnn2uo0SH+V2iVev7pInngjhdr/6apHoaMbzzWwiEQjpFhXR1ZmYqC7p\ncOlSzmv1zsrq8NL8+Qy5FRQw0//aa7mZuuoqipcEU3+/fDmT8wxwSdxqAcIP0Z92hKviJ1zCdTpZ\nEw6ILJ9isBWfNYvEGSrS0hj0b9dOJDKSN6CZNacatEQJq1xInrj5ZrqHVGLbNtZhDhlSOQnLSrLt\n2pUhhvXraeEGoBD1zTfUhdCINgJl0rbGbpn60mZlVWYnC8pKnDLhprUSF7W/AvEOHBjgrfj993RF\n7t1Lla/rrz9xpLtli8jZZ6ttEq9h4EBrdKe98d571oSYXC5+4TVq0FvRuzeTToMtrdNQViZSt66P\nNHk33h+eIkD44lo24ZpAuEuW8MrFO3aLq9TggX7sscDKWvzB5WIW6sCBtNbOP5+1saHegP7w9tsn\nxrrdulWtdeuJ4mLG+hIS3PKUJ4JsNZb83/+469ZJ6tm/n+E+jXiqoETujP9Fdky1SPnnRMLplH9e\n/kMG1f6zQgLYY48ZGHY7dvDZ0LJpCwtPHOlOmcIN1Xvvqau998SyZSfWyjWrRDA93W1gnHEGY97n\nnadm7P/8h659HWT+tUW01tAh5C0eh024JhDuE0/wyo1MmGF84HnnBSRI4Be7d/MBdrkY7w3XxWIE\nq8sAPHHTTeqtW2/MmMFEpRdeYAzoRJCtCP99/fWVRB+Ki1k95I7RuqRr7S2y9dt/AdF6w+mU38em\nSHxU9nHiTUx0yfTpXtU0WtmVd5qp1aT7xhvMrm/XjlKcZmLgwKDDEkrw/vtqywT1QmguFzdRcXFq\nNi3jxzPGrweXS3pGLROA6TOhwiZcEwj3zDN55eaN+Eb/oPx8xm9VlCV8+SWJ1RuhJhEYwepCdw1b\ntnBTceSI+XNlZPC7iYzkvGZBj2w15OUxqesb3kdvvSUSHe2O0V7SYKms++JfSLTecDplztj5clb0\n1uPXpl49ZjWLCK/v4MG+r7FVpDtjBk+sUydrWkguX8641omwcsOVeQ00SdTlYuKmimd08WK6+A0w\nruMUASqqQQYLm3AVE+7s2bxqdSKOSukCA9fK3Ll0/arAHXcYiyaIsGpbS5Nv08Y4TV4PVku5eeKm\nmyi/ZgWOHuUGZdgwLloqvBDe8Ee2GlaulNIGcfJ/9+w/LlRRK7JAZo7fcNrFaMNFWYlT3rxlhUSA\nJUXVq5bLlDErxRXf/JiShg7MJF2Xi/HFhg3pderTxxw3si8MGnRirNwPPghe6lWvDNLoexNhad/k\nyaGfq4bSUvaKNhDS2TR2yrG8geCqCT1hE65iwr3sMl611o7txmKxTz1F37MKBOOi8hLorlQIbgQr\nxco9sXmzddatCN1L113Hf8+ZwxZ3Tz2lbjEOlGyFOhjnNk47Zrk5pe85hy27DKcqNm8ol7Pi3XKS\n1/XZI+npfv7IDNI9coQk27kzuy2VlXGza8YGzhdWrOCGUZWcaaAIpplJRkZ4Qj+TJ1MxTAUGDGA4\nTg9r1kg0isMSwbAJVzHh9uzJqza6xVTjA5OSaA6Hi+xslgMFKgHnCV9SZ9On+473ak2nrWrH5Ykb\nb/QtDmIG8vKYXOMp/5idzYdRRXP7IMj29tvluFXbotZBmT8/vKn/TXC5RD75qExqRbKpQkSEy78I\nk0rS1ZrE33NPRcKbMoWbXKus3MGD/Xu/zMCHH+q368zNZVKgCinbzZuZqKXier7wgnGHNadTzo/8\nRwBG50KBTbgKCdfpZLIwIJL+kIErp6iIMcJQ/RKe+O47NVbn4cPcLV5wAa1JbzHvN9+0ruG0JzTr\nNjfXmvnGjaMr2RtOJ3fi4TS3D5BsnU72p9cstI7ND5/ytbQnCtu2uqReNLVwq0S5tHC4PsIlXV9N\n4j1RVsawzvEAs8lYuZIemhNh5Xpm/GvNWq67jpv7K69U06zF5eIzqULoODWVyXUGmNp9vAAV1XiD\ngU24Cgl3zRpesRZVs4zVo+bPZ/arCtx7Lx9wldi5k/HSNm24OIwezZ1EIIpMqnHDDSwFsAKadWsk\nY7RgAXfUY8YEl/kdINkePUqHg1ZTe0e/INxrNnyisMAlF7XccnwD88wzfhxCoZKu1iT+3HONCcBq\nK/eKK5ghbTXef59ryKhR7nak777rPy4bLIYODVxb2QjFxX4Nob3Pvi8AS4ADai/pBZtwFRLu22/z\nit0Y+bXxzu2559S1z+vY0bwSHZeLcRgt7bpPH1rBVplbmzaRAK2ybl9+WWT4cP/HHTxIa79Hj8AS\nzwIk29Wr+SADInUcuTL78b8CP3cbhnA5XfJG/5nHE6qaNfOTEhAs6WpN4h9+2P9GrLycG9m5c4P6\nDCHDait31y56itq3P7Yg3hh6v+FA8O67bNWpAsnJ7Nakh+XLpV1VNjMIpdzYH+FGwEbASE3l76Qz\n9gDR0cYHJieHP+HBg8CuXcDZZ4c/li84HECvXkDfvsCECcBDDwG//w4kJADXXgv8/DNQVmbO3ADw\nwgvAgw8CdeqYN4eGo0eB118H/u///B/boAEwfTpwww28Pt9/r3/s4cPAgAG8hq+8wmvqA/v3Axdf\nDBQWAlVRgoXj/8Yl4/qG9FFsVIYjwoEH5g7El4O+AyDIzAQuuwwoLdX5g+rVgRkzgAMHgFtuAcrL\nfR/ndALPPw8MHQpMngxMmgRUrWp8MpGRvM+efZZGt9k45xygZ0/gww/NmyMvD/j0U6BfP65HaWnA\nRx8B110H9O8PtGlj3txJSUBKipqxkpONx+rSBUnChV5b75VCj4lP5x+EYOFqoQRAZPO9BkkKJSVs\neqzCSvzxx+DT70NBhw4VreicHKb+9+5NC3TkSMprqXSRbdxorXX70ku0ZoLFsmVUvbnrrsoWRICW\n7b59vMSASKOI/bJh0i/Bn4eNwOByyXeDv5QaDsZ1r7jCj0FqZOlqTeKTk0X27AnuPMrLWV0wZ06w\nnyA0rFpFkQiV7QjLyihPO3w4pREHD2bc2rP29733KPZhJpxOlvGFm9AowgxyP+pVUzpPFCA0OQLb\npayIcLds4dVqXOWQuOYZpP0vXChyzjlBja2LBx6g68ZM7N/PJAc9t9qOHXSRt27NBeTFF6nxHC6G\nD6eL1wrk5pLcN20K/e+HDaOogRb/DZBsV65kBQUg0iFqs+x9PwwZGxuBweWSFbe8KTGRRwTg12S4\nr/NFurNnk8D8BoQN8NVXrMW3KpY7ZIjIa6+FN4bLxUqFBx+khdGzJxuZ6OkQb9jAbG2zMWQIBYDC\nRUGBX0GijMffPSauEnxzJ5twFRHuRx/xal0d+ZPxLvLll0mUKnD22SRwMzFtWmBSbS4XMxLvuYe7\nzaQkXpRQikY161ZFFncgePFFJmeFA8/m9i+/zO/GD9lmZ1ObFRCJj9hjk62VOEa61RxFAjAPznDx\n1Ej32muprx1qk3hPlJczzvn77+GNEyhWrw7dyt29m/XpZ50l0rIl69IDUXhyufgs79oV/JzB4I03\nKACkAuefb5xFvnixtKjCzlVr1gQ3tE24igj3ppt4td5M9LODvPTS8MQ4NRw+TNe0Ko1kPYwaxQct\nGJSUUL95yBBax0OHspQm0LS+YcPMt9w15OaSJDdvVjPeunUiDgc3HQZmk9NJdyYgUhUlsulV241s\nOVwu+XbQl+I4Vuvst9R70ybKfdaqpa4N5tdf04VplZV71VXs/xoI8vKY/duvH2v977iD1RfBmnVX\nX83MbDOxahU9bCrwxBMiTz+t/35pqdwY9Y0AwTdlsglXEeEmJPBqrbrNoP62rIwEZNAGKmD8/LNI\n//7hj+MPXbqEp4t66BDLA84/nzvd+++nKIDeArNhA6XdrLRuVSnViNDKj4tjc1qD5vaPPcb7pS4O\ny8pxBlmRNszFsZiu1uT+++91jvvxR96/Dz5I8lHViau8nFUAVlm5a9YYW7llZczSvf56xmUHDeJF\nCUeT+a231Fmfeigvp483Ozv8sWbPpofOAJPPfFUAOjyCgU24Cgg3I+PY4hmZJ+W/GqhHLV3KMh4V\nePhh87WFc3K4mw+l4MwXtm1jzKtVK3e811tz77rrgreoQ8WRI7RuVTYouPhiquyI0Hpp2JALjscG\n45ZbeL9Eokzmjf1T3dw2QoPLJa9c+IsAIlFRruNfn4j4bhI/YgRdqqrwzTesUbXKyr366oq1+y4X\nN4ajR5OMe/Sg6abKil+9mmVQZmPgQAoBhYu8PMZxDTYZm0cxjhsbG9zXZhOuAsL98kteqcsjZxlb\nZpMm8eFVgR49xHStvxkzQpdUMYLLxdjz3XdT2i05mS24Fi2idWtFNxUR+hBvukndeAsX0tXh6ebX\nmttfeaVITo7MmiXH5RofH7xBdygb1sLldMn5zdK4EYp0yb59ot8kPi2NIQPVVq4KqddAsGYNmWLL\nFpEJE2gEJCRQ3izUxEEjOJ30CmRlqR/bE5Mmha656I1zz2VttQ5cKanSOOqgAMHt1+06XAU4Xn/b\ndDtQu7bxgUlJ4U949CiwcSNr68yEqnphbzgcwPnnA++/D2RlAaNGAb/8wtciIlgHZ2Z9LwDk5gJv\nvgk89ZS6MZ99Fhg7tmIdZuvWwKJFQIsWKDm7Jx6/8xAABzo1P4JxMzqom9tGWHBEODBncwLqRRfC\n6XTg4YGbgN69gTvvZJ11vXrug1u2BK66CnjtNTWTR0YCzzzDHzG5Ljc/H1i9GsjJATp0ALZuBd55\nB9i5E3jxRaB9e/VzRkQAffqYVLjqgeRkdXP4qe119DzXlHpcm3ADwHHC7WNwkNMJ/P23GsJdtAjo\n1g2oVi38sYyQkmIO4XoiOpqL148/UlDixhuBl14C4uMperFihTmL0FtvUfmgbVs14y1cyMXrllsq\nvxcdDbz5Jp7qPANr9zTAGfUPY9HGepWPs3FCUbOWA/+sro7qEcWYsuxMfPfIcuCee3yLlTz5JDeM\nhw6pmfyaa7iR/v13NeN5wukE5szhsxUfD0ydSuGa/v2Bjz/mMx5h8lKvkgz1cM45QEYGBYHChT8B\njOhoJCXuAgAsWBD+dBpswvWD/fuBzZuBGhFF6HpNK/0D160DGjcG4uLCn9QKIszLAzZtAnr0MHce\nDTt2kJgmTuSGYuFCWhVDhwJnnQWMG0dVLRXIzSXhmm3demDCBODVX9oj0uHEl7/GoFYtdVPbUId2\n7R147c1IAMCtT8frL6YtWwJXX63eylWpPrVmDfDww0Dz5rzXe/YEtm2jQtykScDy5YDLpWYuf1Cp\nBqWHqCh6yVQw4AUXAEuWGEiRAUn9qgCwLVxL8frr/N0a21H1wt76B6okyZQUNZayERYuBLp3N9+K\n1qBdH82aaN2ai8/27ZSIy8jgDrZfP0rI5eWFPtebbwKXX65Obu7vv3mevqxbUB1w7FiBwIEh/Y+i\nVy8109owB3fdVwWJDfNQXBqJq682OHDsWOCDD9Raufn5wOzZoY+RlUUy7dwZGDyYm9g//wSWLgXu\nvx9o1IjHNW0K1K8PrF+v5tz94eyzgT171FifRvBnmQaKevW4PqxYoXtIx2vao7qjGOnp6vYSNuH6\ngeYBalCjqGKcxxuq4reFhdy5nnde+GMZwaz4bbDzORyMpX3wAReT++6jxm2LFsDw4cCsWfo6t75w\n5Ajw9ttqrdvnnjO0bj/4AHA6HagVVYQpP9uu5JMdDgcw/fcaiIATBw4YeHkTEkiSr76qZuKIiNCs\n3Px8YMoUinF37Ahs2cJ7PC2N4Rm9uKwVbl4NmvV5GsVxI3v3Qh3JBQBMm6ZmSptw/aBmTf4e0s3A\n3SmijsD++Ye7V21is2CF2zrY+aKj6cabPp0u6D592OAgPh4YPRpYudL/QvXmm8DAgbSgVcCPdbt7\nNzBuHM9p5gfZljkMbISHzl2jMO7alQCABx4w8Cw++SSbAqiy3K6+GigoAH77zfg4pxOYOxe46Sbe\n/999B9x+O5CZGXhc1go3rydUWZ9G6N6dbvMjR8Ify9/51qiBfg3XAOB+QgVswvWD7dv5+/LrDLKT\nN25kx5v4+PAntIIICwqAtWthme8zIwMoKgLatQv8bxo0AO69F1i8mJuZ2rVpbXTsCIwfT6bzxpEj\nzMhUHbt96imgShWfb991F1BU5MC18Ytw4e0GMX4bJx0e/OwctK2yE1u2GDSR0jpnWWXlrl0LPPII\nPTxPPEGC2bqVWf7XXccuR4FCswbNzoz2ns9MVK0KnHsuN8Lhok8f5pMYeNCu6M1wwo4d4U8H2IRr\niAMHgL17gVo4ipZXd9M/8FSL3y5eDHTpAtSoYe48GrTPpNO6zi/atmWLtB07aG3s3Mnz79cP+Owz\nZn8CtG4HDQLOOEPNeS9YwLluvtnn22+9RUMlEuWY9L8Gaua0YRmq1ojC+LvTATDpbeNGnQOffJKt\n+VRauUVFbis3K4utHbt0oXemShVg3jwmPT3wAJMxQ0FCAgl682Y15+0P3brxGT182Nx5VFnSDRty\nY7N6te4hnS9vDoA5sSpgE64BtIvcsfpORDRuqH+gKndycTEfst4GyVkqcLLEb4OFw8HswsmTuUjd\ney/LjeLjgUsuYabzY4+FP48GP9at1n60T6PNSLg4COvdxkmDIa8loXEEiXTCBJ2DWrRgNv0rr6iZ\nNCKC2cXDhzMue9ZZZPs33gDS04GXXwbOPFPNXFbGcatUYaa0CuvTCCpd137GanNNF0SDiVO5ueFP\nZxOuAdau5e/OiUf1DxJRZ5UuW8YHzeyG7Cdj/DZYVKtGF/PMmfT7FxUx7pWczHjvqlXhudJSU7n4\n3XSTz7eXLuUaWQMF+PJbRQEeG9YjKgofj2Kcbvp0g9DgE08wm/7AgdDn0uKyN99MMZijR2kVZmYC\nn3wCXHih+nrZ0zGO27MnsGGD27MVDvxcn6iY2uhQIx2AmoRvm3ANoFm4nXsZuF63bePOrmXL8Ce0\nggiLi5kKf/755s6jISuLqjdnnWXeHI0aMcX/jTd4DWvVAoYMATp1otmyZ0/wY/qxbl/CxgbwAAAg\nAElEQVR6ib9HtpuHZv1MUO+xYRkGTUrGhdUXIy+PKQA+0aIFY6ihWLnr1gGPPsoxHn8c6NrVLaKS\nkGBuaEcjwNMpjlutGjcqixaFP1ZSEi1yp1P3kM6J+QDUuJVtwjXA2rW8STsNTNA/yLu+NBxYEb9d\nsoSSb0YSlSqRksLkBLOVbrTvoV07Zjbv3Am89x6t386dgQEDgM8/D2xXnJLCRK8bb/T59nff0bCu\nhmKM+dB2JZ/yiIrCU6N4X4wbJ/r6K088wQzhQKzc7GwmWp19NhXPIiNp3a5YQYW12FhrrE8tn0FV\n1o8/9OhB148K69MIqizpuDjGyA3YtFNPbog0j2c4sAlXB04nsGH9McLta5AQoyo+WVbGkqA+RvqR\nCnCqxm+NkJlJX2AHD+3iiAguaB99RCv7rrtYTNe8OXDDDRQf0MtOfPZZ4Omnda1bLUzcuf4exCbb\n1u3pgAtf6Id6EbkoLHTggQd0DmreHBg2jMITvlBQAHz1FXDppbwX16+nUlVGBvMLOnhpa1thfToc\n1sZxq1VjZvXChebOozqOa3B9Og9sAQBYtzZ81S6bcHWwYwdQVByB+Jo5iInROUhl/HbFCu5GdSdT\nhNMhfutrjqQkfSu6WjWWdvz8M0MAvXqxDqR5c+Chh5ilqC168+ez5EjHuj18GMjK4rGaRKCNUx+O\nKlG4+zKatuvWiT4Halbu/v38v9MJ/PEHcOutQLNmwJdfMkabmUnFtH799O/LxERavlrtoVk4HeO4\n553H57awMPyx/FyfTudRp3XdGlfYeyObcHVwPH7bukj/oPR0WqYqJAStIKbSUrqUL7jA3Hk07N9P\n11qXLubOE8y1a9SIEnhLlwJ//UUyvuIKup0nTGAyy9NP61a6f/UVUFbmwIDYdeh9Y6LCD2HjROO5\n785Ew8gc7NjhwNKlOgfFxzO7+Pbb6epISGDGcefO1Cb/7Tfg+usDi8tq1qfZ5GTFHN7zmW1R16zJ\na/7PP+GP5adeOTYWaFT9KHLzo3yW/wcDm3B1sHYNL37nCwxinada/HbFCm4OjCQqVSI1lSVOkSZb\ngqHKarZvz+yntDRmy/z2G3daU6YAX3xBST0PiAAffcjkihGPmOyJsGE5qtaIwi0X7wUAfPyRj8V3\n716Kq8+bRyGKsjKGJlatAsaMAZo0CX7SpCTzyal9e2bxZ2SYO4+GXr0oT6vC+jSCqo1EfDwrQ3QK\nsR0OoHMbGl7hxnFtwtXB2oUM+nc636BER1V8srycMQ+zCdcKUveEKn1pI+zbx4Wwc+fQx4iI4Pd4\nzTUsA7rjDvZIjY+na3nOHMDpxJQpwNr1kYipmo8rRypQFbNx0mHERLZz/PxzF9LTQdL4+mvgP/8h\nca1Zw2S8jh2ZtdyxY3gTWmF9OhzWELuGGjXo1Vq82Nx5LIzjdjqPhtfa1frZzIHAJlwdrFvK3Vnn\nwn+Ywl/kw7WsisBWr+birnX6MAunY/w2NZUuchVWdEoKs5mvu44WzNatlJEbOxZo3hwTHsgEALRp\nF4no6PCns3HyoX3HKNSrUYKy8kg8NyCVcdkvvuDGKzOTymb9+wN9+6pZ7Nu2BUpKGJ4yEyfCrWz2\nfL17UyiouDj8sfTiuHl5wPr16Fx9GwBg3fTwsr1twvWB/HxgR34cqqAU7b58mmn9MTEkxG7dgCuv\nZNwvI4MuyMWL+TAa1HIZwopM3vJy1q2ZnQWtISeHrtquXc2dRxWp+2pA0bgxY7rLlsE19w/szWdD\niYeeCkLP1sYph6uGMjt9Z1ETuhlnz2Zmu2dDEVWEYlUc93RMnKpTh0JBy5aF9velpSwfTElhvsm0\naaxmuOwy1vDXrcs2h0OHotM/HwEA1u4Mr9G1LZHjAxs28PeZicWoMn8u/+Nysf5u1y5msX7+Obvb\n/PCD+7VDhxjHad6cRe7ab89/16tXOeabksJEDDOxejXnb2ggUakSCxYwk1CntEYZUlJ0tY6DwubN\n1J1N8F1zvaLwTOSUA83q5ePaa+3u8qcznn8xAp98Biw70BKFdavAZ/pTUhIwYgQ32eF6VzQy1OlI\npQQdO3ITnJVFEjEb55/PnJHiYnN7bmvXztuQ8FyvtfXZ+/fBg7wW2trsctGjMWhQpfW6QyEQUcuF\nLUdiUVKCkD1cNuH6gJah2Oksj7qriAimq8XGsrh7714WTWuCugB3TJmZFb/ktWuBX391/7+8vCIB\nx8by/RtuYMlKfHxwHUEChdXxWyvcyYcO0cugwor242WYPp2/r7ykGA6HTbinM5o1A85N3I+laY0x\nZw4dWpXQuDEX6zVrwr//kpOZjGUmIiJISlZs7gEK63TowMXUjHUnL4/rqdPJa1dcXJFM9+yhBext\n/PTq5f53XFzFzdKmTYzV9+hRaboaNYDWsUexdW9drFoVeqM1m3B9YPKHAsCB0ioGC2t6OuvoPFG1\nKl/zft0Tubm8IbSbY/Fi7qzee899o9St69s61rtRAkFKim5tqSlITaXUoplYsIA7aRXNKrX4rQ+I\nAN9+WQ4gCkNurx/+XDZOelx5VSSWvgp88ongyit1qhA0t2m4hNuhA4VbMjPJ9mZBSwyygnC1+ULZ\n6HsaLt6WqfbvsjKuhbVrszi+alXG1bU1MxTDJTGR67oPwgUAZ0RVACzDtglXIQ4ddAGIRIfOBpcn\nPT20B61uXf5o2Y1t2zKOMH8+/+9yMfPW+0b75x/3/3Ny6LrWc1s3b17Rde10Ui908uTgzzcU5OYC\nW7bo3rjKoDJ+m5LCFoA+MHs2sHNXFCLgQlJfO+3h34CkK+sDrwK//Ax9F2JSEnU+R48ObzJNFS0l\nhTW8ZkFTXrMKycncdD/9tPs1EcZL9Yh01y66er1Dcx070vrU1rqYGK5vIoytjxlDDfVw0LKlYfJa\nfHMHdmSFV11lE64P1KtegmzUwOWXGxyUlqamYUF6esVxIiJ4szVpwgxZXygpoSXsedOuXk0lJe3m\nFXHfrPn5LG+YPbviDtCs2MrChSRbs1N5U1KAt98OfxxNZ1anj+68efzdPOYoqlSpG/58Nk56nN/b\ngSqOcpRJFP76i2qNlZCcDIwcyU1yuFrhVhDu2Wczhrt/f+g9dv3h6FH3mrR9O/Dnn5TD1Eh2925a\npd5eux493GtTXFzgXiuHg3kX6enhl2i1bEm3sg6uuaEqUpYATWOdAEKL29uE6wURICObrgNDASlf\nLuVQEMo40dEkB6NG67m57hv/zTe5C/zjD/drmZm0gv25rkNZSKyI3x45wpi3Citai9/qCJjs28ff\n999yFIBNuP8GOBzAtd3T8PWyNti6VYdwmzYF6tdnlmWnTuFNmJwMfPBBeGP4Q2QkS2lSU1lzHizK\nyiq7er3dviUlFdeQqCgS4ogRfK15c/XdkTRXcLiEm5hI8RsdtG3HtTBjWwngO5XOL2zC9UJODlBY\nEoU6VYtRr56OBZifT6FyFbvEtDT2wVSNunW5CHTqxGzBbt3Y2FqD5rr2fngWLXK/dvgwFxVfZKz9\nu27dykSVmkqxdjOxcCE9AFWrhj+WwQZBBEj5izvai24OQUnIximLfoNr4etlvJ1HjdI5SItThku4\nnTvzedy3j4mUZkGL43oTrkjFKgxfpHrgADfhnmvAWWfR1au9Vr9+xfVg1y7qSevkRyhBy5ZcR00e\nRytg0O0mFQBswvWC5p9PaFQAQIdwNTewCklHVZayvzm8o/yeruuePX3/XXFx5R3tqlXsTac9iA5H\nRTKuUYOZiSUldNXGx5vjWlZpRaekUJTeBzIygD1ZkagXlY+OXezs5H8TkobGAU8DqfOdEIn0/bgn\nJ/N5GDkyvMkiIyngkprKRhuqkZ/vrpL43//o3fJ8rvfsoRfMe0Pdvbv7tSZNgk9Q9BMXVQLNwg0X\nLVvygRfxuba3YNMg7N5fLeRqMJtwvXCccOMNRCxUxW9Vj2U0x7Bhwf9dtWrGrmsRd9a19vD+8gtv\n1pdf5mtZWUxwMLKSY2ODd12npLDZQLjIyKCKWDvffW21EHHH+COIiLAJ99+E1m0cqFclHwcO1cKs\nWfCd05GczOYFOot0UNDiuMESblkZnzO9etNdu7h5bt6cpFlYSA9XUpL7WYyPryjsoQqqrE9/c6iQ\nkaxVi9dg3z5a8l6oXh1oXDMf+wtqITublyxY2ITrheOE29rAVemd6BQqSkuZTBDKNxcMzLKiHQ7u\nlOvVc7vUYmJI1NOm8f9Op2/X9d9/u/9/5AjLIYyyrut6xE6PHmXcTM8yDwaa3rPOYjlr1rGPFW/C\nYmTjpIbDAdSpJThymMnIPgm3RQuuxFu2UGs5HCQnswuRJ0SYtasXM921i2tIbGzFZ6Z9e+Dii92v\nNWjgvscTEoDbbgNatQrvfANBYiI9AGbPocqK1ixyH4QLAAmxxdi/sxYyMmzCVYKMNBeACCR0MFhg\nVRHY7t2MkaqoI9VDeTndws2bmzeHJ7yvTWQkP2PTpvrFa8XFdGl5LiIrVgA//eT+f0SEezHJyuL/\np051Lyihuq79uKajHKy/veJGg65RNk5bXNinHJ/74wstjhsK4Wqu3l27+Oxs2EBmLylxu3qrV6+8\nAe3a1f3/YNcQjaCsIFyrLFxVhKtdG521KqEFsGwnDbPevYMf3iZcL2RsLQZQAy3OMJAkTEsLvfLZ\nexyz3cmZmdSAtkptPy0t+ASSatWA1q354wsitIK1hemFF+j6+f1392tZWUzYMLKSfbmuU1KABx7Q\nnTYjnW3aBg2xH5V/I64dURefzwT27CgBoPMMJSezduyuuyq+rrl6jazToqKK92j16kzGHD7c/Zpq\nV68VJKhBpfWphwYN6C3Mza3oCQsF/hKn2kUD80OvxbVXES9k7GTsVkdSlziRJUEn4xze8w0apHZM\nh4Ou6pgYZnP+/jvrFT2J0umk3KbnYpaeTpex9v/c3Iqua6eTx2jJXy1aUA7uGDIygKNFVRBbKx+N\nG9vx238jOp/NDdratV5hWhFKi+7axZjo1KmMj3rWx2v1rp4bv3btgIsucv+/YcOK4YzSUlYtXHyx\neR/KikQmDbGxlGEsLFRfDqTB4XATe5cu4Y2VmEhNAx1ons+MHfR8BQubcL2wK5uWrSHhqrJMrUqY\nMnsOT1hB8GlplcsMIiNJps2asWmCLxQVVXRdf/UVXXFvv+22QCIjjy+Qa10DAdyLTmcUArAJ99+I\n+HigbtVCHMqvgb3DR6PJwXVuAYdq1dyelPJyek+uuKKiqzfY5h1WWISJiW41F7MREeEWpujQwbx5\nNMs0XMJt2ZKhLB0ktOQGbNfWYoSyJtiE64GCAuDg0WqoGlmO2FidS3PkCB+uBg3CnzA9XaeiXiGs\ntHBdLpqFhrsVBQg1aa16daqZaIomRUWMY2kNKDTX9THy/WTsWQCAevF2/PbfCocDaFynGLkHa+DL\n8mF45JFL3Rarp5TgOeewj3L37uFN2LIla8zNhJUuZW0+swlX1UbFzzja0paRISENf8oKwzocjq4O\nh+NOh8MxQPsd7phaQXOLBgX6VSoZGWprcM22Pq2YQ8O+fXTJmlFeoEFE3Wfy3oxorusuXYBBg7Aq\nh4V3dePs/rf/ZkQ3ILH+XdYTuOQS9mD11u1VWQt6qtStnkzzqbpuCQkkApdL920AyNhXDRIC556S\nhOtwOFoBmCAik0VknohMBnDXsddDxvGSoGbl+gedijW4VhGuFXMdPEh1qXCTIwC/51u/RjEAc0Vy\nbJz8SO5Pb1ejGIN1QZXVaAU5NWtG1aiSEnPn0WBVprKKOapXZ5ljdrbPt+vWBWpHl6CgpApycoIf\nPmjCdTgcIxwOx1UOh6OO/6NNw10APvR67UMAYSkhHCdcowxlVS7a4mImXZjdDNpKl/KplgTmx1I+\neIheDBXlvjZOXfRJ4jKZk1Wkf5AqomzenJnN5QbkHi4iIxmcDkejMBhYFZdWXRrkAw4HkNCY90Eo\nmcqhWLjdAUwDcNjhcGxzOBzvOxyOIRYT8DUAVnq9tvzY6yGDNbhAizMNsulUWXEZGXy4QtEHCxRl\nZczcNVtYQ8OpZrGnpemSd1kZkHW4Ohxwmdqi1MbJj+NuxDTfbkYA6iysqlWZ2btnT/hjGcHKOK6V\nFm4ofl69sXSQ0JxzWEK4InK3iEQA6AFgMoAzAPyAigQcZqqYPhwORz0ArQBUMOhF5Mix90N2K2ds\nLgQAJLTy0wf3VCkJ2r2bpQrBZkqGilPJwvXTgCIzE3BJBJrWK1TSH8HGqYvjovV7DW4EM9SOzISV\ncVwrPk9MDDOiDx8Ofyx/iVNtWY9tlYULABCRlSIySUQu9iDgVdpvh8OxzOFwmJHeWf/Y/Ed03g+Z\ncJcujwAgxhaNyj64VmTzmj2HJ9LSzJ8vLc2tIh4OMjI4jk7y219/AYCgdi0FO2YbpzRiY4EqEeU4\nmF8dO3fqHKSVvqiwsBISzLcItfO1Ao0asSLg6FFz51FF7C1aGF7/Wo2YRDl/bmnQQztExQ3iOaDD\n8YiITHI4HI8CuANANxHJUzh+VwArRKTSSulwOATARSJiWGTmcDjmJycnJ8+fP9/rdVVnaeN0guJH\nxMYpCHttsOEL3mtD3759kZKSkiIifX0dH3QdrsPhOBtMWtoBYJqIpHufA09EJjocjnkAnjj2c1Ih\nOzsb3SvVzC0/Iediw4aNkxc6FSI2bASNUFzKTwJwALgbwI5jruNxxzKXrwJdygDodj52rHIci+WG\njCZNmmD58uUVfoYPygcAfP45dy4+fwYOgvw0Xf/9QH9m/Qa56OLwxzH62bYd0jLR3Dk8f267HfLh\nZHPnGDce8vAj4Y+TdxRSoybEJT7f37GD90nzmPyw71Ubpzb27+fv+jWL9e+n9Rsg7dqruceTkiF/\n/GnuczTiDsj7H1izLhw4CImpb/489WI4V7jjPDkW8tzzuu+PvI25Pq+9Fvy9FArhzj2WONUaQBsA\nUwFcBOBj0JIdBwDHSLglgEMhzGEELYpS3/NFDwLWi7L4RUJ7+uY1PWWfsEjRRAm0zjpmlhh44lRK\n/69dmzV3Bw74fDs+HnA4BJlHaqCsLPzpbJy6OF4uGGdQt6q6XO1UST48WeZSrQBocL4Z23gfhJKu\nEgrhzjtGpmeLyE4RmSgi3UWkvoj0EBFN+bkbSMY7QphDF8eSpXYC8LZw6wM4IiKhE24rluhkbCrQ\nP0hVirsfRRMlqFqVWbhmlxhoOJUK3LWxdMi7alWgab1CuCQCmZlqprNxakIrV9V0dH1CVTKlVaV8\np5sgjlZTryLY7ud8MzI4hyWEKyJpIvIEAMOtxLHs5R4i8mPwp+UX88B6YE90PfZ6yNCSXzO2G1iE\nqiys6tWZyq6jaKIMVqb/n0oWbgBjxTbkZmi5Hdr/V2PxQt4HjVoYSHyq7JEdF2duKZ/TyXmsqmA4\n1Sx2fxbu/moAQiuWCKcs6I9Q/1YBHgNwrddrdx17PWQcL3DPNBCjUG1hnUrNmQOZy+zPo7LEwM/5\nHijgAjt3bvhT2Th18cccbsCzDxjkmKosFzSbnLKy6HqtVs3ceTScSoI4RUVUAGzSxOfbublAbnE1\nVK9ShoYNgx/+lNRSPuZWfszhcExwOBzXHCtBmhCOOxnwKHA/WAMiOgdpBKZ7QBCwggytVJRp0oSx\nlCIDCbxw4XCou26+xikpYcbUX3+hYwN6Hw5lFoc/l41TFoUHGGLqVWMNO/ns3l05L0JlQw0r3K9W\n98g+VZq07NplqAB4PJ4fWxKS9/qUbc93LAPaW94xLNSqxUzEnIJq2L+fBe+V4KloUr++jwOCgFUu\nWK96Y9MQEUE/S3o6O6qYBY0oO3UK7u9cLnY00vrhzp4N/Pkn01C11w4fpr51ixa4s/4Q/IYHkZ+V\nC8Aia8DGSQURIOco3bu3Fr4PPLyG98qBA3T9ar1vV68GfvmF8Vfttfr1g48pnkrWYDDzWeFS7ttX\nzThG7mSNcEP0xp+yhGsWEpqWIWdbNWRk6BAu4LYawyXcli2BJUvCGyOQOU5E70uzCdfXZ8rNdROn\nr9+ZmewEovUzdTiA0lL2MdUaicfGHt/ddtoBoDWwdruBtraN0xpZWUBOSS3E1CxB05kfuIscS0v5\n5q5dwNKlwNSp3MxNnuy+30pL3eTr/Vv7d3WvuHB6uvntqaxs2SliTY9sVZsIfwlT6S4AEcflHYOF\nTbheSGgViVXbeI+ce67OQZpl2q1beJMlJgLffRfeGIHMcTr0viwtZbb1rl3A2rW0JjZsqEiqLlfl\nRW3AAPdr8fGV41atWgEdO/psjp2YCNSsVo7so7Vx8CBCitnYOLWxbq0AcKBzJ6lorFatyoVZ2/xd\nfTXwoVcDs6NHeV9q9+iuXUBqqvt+3b2b5WmeZDxjBntKt2nD15o0Ud/gJD0dOP98tWPqYd8+ug69\n+werhIhlGvcZGwsB1EJC69CS2mzC9UJC22rA70DGjnLoXh5VVqMV1md8PG/60lJYosIfymdyuSq6\ndX39zsnh4tOiBY/NyQHOPhsYNMhNrnXrBu/CS04GUlJ8Em5EBJCYKFi/Cfj1Zydu+a+JnZ1snJT4\n4X9HAMRwXdBDSgrvI2/Urs37yse9BYBEceCAm4wzMthUY/16YMwYvnboEF3XRlZyTExw931aGnD9\n9YEfHw6ssKZzcviw1gtLC4lISwOuuEL37V3bigHUsl3KqtDiWK1dxoZ8VC71PYbERGDrVgWTtaCb\ns7wciDLpq4iKIlHt3g2ccYY5c3giMRFYtaria3l5/l29depUXkx69XK/Fhfn3unn5THOetttQHRo\nrp3jSE4Gfv8duOcen2+XOrmTnfFFHm75b0x4c9k45TBvPu85Q+2Y1FTgoYeCH9zhYJ1848ZA9+7A\nihVA+/YkcA2lpXw+PK3k9euBWbPcr5WXG7uu4+Mruq6tTJqysgZX1VhGFm46f4faP8UmXC8cLw3a\nbiAv1LIlMGdO+JNFR7PMJStLTQccPWhuXjMI19PVu3s3MH068PPPwOWXu18rL6+8CPTrV9HV6x3L\nMkKdOlyYli0DLrggvPNPSgKefJLWhg8r4aKLuLc6kFEAwCbcfxNEgNw83hPX6HXazsxkZr6KnIXU\n1MqWctWqfH6NCDIvr7Lrev589/O3Zw+fmebNuflOTwe++YZua+2ZNMN1DZyaNbhGMdx99HTYFq4i\nHC8N2mPgojGjFtdMwg31fDVXr+eD7G2dajVrGpHWq8fC+hEjGB/VXlPdbkVzBYdLuImJXGi2b+cC\n5IXRo4F33wU2ZdaBy0XPlY1/B9J2Cg6X1UaDGCeuuEKHjFJSuGlTcWOkpADDhgX/d3XqAGedxR9f\ncLncrutffwX++INu2KlTfT/H3i7rUF3XAAns7LOD/0zBQJUVXVDAzYtOtmxxMbA3vxYiI1xo2jS0\n79smXC8ct3AP1tQ/yLMWN1wi0axPXzEgVdCrW9V2xr6I1NPV6+2m6tnT/X9fO+N165hh1KWLeZ8p\nKYlMOHZseOM4HG7y9kG4rVoBTeOcyNpbB5s2uHBWJ5tx/y1InbYPQBz6JEfo86le/DZYuFzAggXA\ne++FP5Y3IiJIIrGxtKJvu62y8n5JSWXXtZacqL3mdOqTsfbbOykxLQ248kr1n8kT6elA27bhj6Nl\nU+t82bt383d8wxJERQXhkfOATbheaNgQqF61HEeKqyMvj3xTCXXq8MY6cIDxl3BgVuKUZ+xnxQqW\nHx06VJFUy8oqPzx9+7r/76tsIRAkJXEh6tNH+cc6jj59gJtu4mcIVwZPI9wRIyq95XAASX0j8e23\nwF9fZeGs8SZr3No4aTB/Rh6AOCQlGWyqU1J04/9BYf16lhk2bRr+WEZISQFuuKHy69HR3F22aqX/\nt7m5FV3Xu3ezjl37/549TFz0XE9SU4HevWkde5XdKUNaGnDxxWrGMdRQ5u+EFqGLHtmE6wWHA0ho\nUorNGVHYvh3o2lXnQM0yVUG4CxYE9zciFV29vn4fOEDrs3lzukqOHGH5y2WXuR+GUFxEgSA5GXjr\nLeCpp9SPraF+fX4HK1fS4g4HSUnACy/oeiy0NfC1j2pj5PjwprJx6uCbJYwL6hpPe/eyAiBYARZf\n8BW/VQ2nk2vN5Mmh/X3duvzp2NH3+97VBlu30nJesoSu7N276cpu2tQ4ySvYagOVKl8GseDtW8Or\nwQVswvWJoyUsn/nlFwPC1dy0usW6ASIxEZgyxesEjhqTqa/6vRYteC7av+Pi3JnPTie1U4cOZZKW\n2ejTh7toFdanETTLNFzCbduWHoGMDJ8PbnIyPXAZObVNTSi3cfLgn8WCUlcVAIJ+/XQW/wULmEOg\nwmJLSQEGDw5/HCOsX08DIS7OnPEjIjh2XBzXot9+o8ds1iz3MZrr2jMnZPVqJlpqr4kYl0F51tNr\nNbgWyGp+92UpgGrYdzD079teOnygbkwkMvcCa1eZUItbVlYxVrJgAX8GDjRWqElKqpjmXyMI9aPI\nSLp1UlNZoG826tVjRvSKFSztMQvJycAnnwCPPhreOJ5xXB8P3OWXA82blGN3dhQW/i1I7muCV8DG\nSYUFMw8DqI9LLjGIqqiK34rw2Xz11fDHMoKq8w1nvkBd195Gxrx5vhXjatakdvvHH1dcM+Pigk9k\nS0tjeZYOMtLpSg7H628Trg/cdrsDDz8M1JQCAHV9H5SYyB2jJ7RCdqNEJG8N1kaNuOAPHQp07szX\nQ9Fg9YfkZOsIF3DHcc0k3D59gNtvpwUfrpWhEe4tt1R6KzISGH5TFCZOBH76Xw6S+ypocm3jpMb0\naSy8HTHCT/zWx/0SNDZvJqubWakA8HyHDDF3Dk+kpgIvvRT839WtSze9nqveUxP9s88YVtq1i40l\nPDXRmzXz77r2hB+XcjRKAFTHbbcF/5E02ITrA5rq2dp1Xg9bfr6bPFNSKH5fXFzR1VuzZuUvt1s3\n95fcpElln+TOnbRYzUyfT0oC7r7bvPG9kZzMXedjYXVMNEbjxtxurllj4PsPEB2NzA4AACAASURB\nVElJhhbGlVcCEycC02dVwesKktNtnLzYuxdYvL0hoqPKccklOkvkwYMMQZxzTvgTWhG/1azoN94w\ndx4NBQXMcg433OMLERFcR5s0AX78kaIjzzxT8ZjiYiZxeRo9K1dSOlMzfhyOiuv0qlVc1wsK3J7E\nY8I6xcXA1r11EOFwoUeP0CsVbML1AS0nYGNaNZRdfiWqZKbzCyoqcn9BLhdQWEhX7fXXu7+gmgbl\nRHrQrCvd6noF6NaNxH74MJOlzEZSEvDf/5qrogW4r124hNuhA11Ze/bwe/RCzya7UC+qHjJy6mDm\nTEP1NxunOJ571gVBBM6NTUPt8vrwKXiyYAF35iru7ZQU8xsWbNzozvuwAosX04AIJvQVClJSgPE+\nMhmrVQNat+aPL4hUdF0vX87XV65kPHn3bgoSHcuu3lg7GS6ZhPb19qJatdBj4HZRoQ/Urg0k1tiL\nUqmKbf8ZxTjh1q0k2C1bGE/4808uzBdcQDmidu1CI1vA7X41E1Wq0L0bbEZ0qGjYkA/36tXmzqMR\nbriIiOD3kJrqfi0vj9/9hRciontXNK6eDwCY+LyJ/X5tnHB8/xVV5lpE7GFM/5praBmVlroPUmWV\nilgTW7XCivaEFZ9J050OxYp2OBgH7tyZSRqtWgFXXUUFrtRUxnMLC0nAb72Fde2vBQB0TsgN65Rt\nwtVBp3OZKbG2YT9aTw0bVvYjanHRcNG1K+MHhw6FP5YRVJFToPAmMLPmWLCAHodwkZzMjdSsWVT8\nadGCu91Ro4DMTDz0CrMltmwor7D22jh9sH2rCzn50YiKdOGZP5LpNr7kEoYbmjUDRo5kmYsqQtmx\ng+uKURKRCmiKWFbBCsJdtIgu/VC0Arzha0MSGcmQVa9eWIvOAIBOQ3Qs5gBhE64OOvem4sW6xfn6\nB6myTKtUAc47D/j77/DHMoIVBOgJKwi+aVMmmXknsAUDEWZU//IL8L//sSY3OZmL4U8/MdEkOhp3\n3AF0aO/EoZLa+GVylrrPYOOkwf8e3QIAuOFGB4XH6tUD7riDz83SpUx4vPZaxvt+/TV80RqNCM1M\nCrDKitZQXEzL0OwWgCo/k58NybpFeQCAzueEl5xpE64OOnXmA7D2bwMXgkYoErrySKWxzMS55zIj\nMi/P3Hk0JCersz79zRPKRmLXLmDcOGrQXnstr0/r1rRo77mHtcsecDiAEXfygfto3EEVZ27jJEJZ\niQuf/sI6dZ/ZyYmJFHMZMoT3XG4u75k+fYCPPqK4TLCwwtW7bRtjzVZ1CFqyhM+UmT1wAXXXLjub\n3kU9QQ8Aa7ey7jdcjRObcHXQmR4ErNtm0AfzjDNItjt3hj+hFXHc6GjWmS1caO48GuLiWPa0bp25\n8wSzWcnLAz79lN2KzjmHrvzJk2nNvvQStWyff56lRj5w001AVJRgdlYnLPtxl7rPYOOE4+UbN2Kf\nsyESEwW9e+sclJ1NoZpvvgHeeYc1oQ8/zBaPCQncuM2ciYBjDlbGb61KrbfiMxUV0ctw3nnhj6XJ\n0OrU7e7fD+wrrIPaNcpD7hKkwSZcHbRuDVSLdiHjaAPk6hm5mmCCCjdtjx5MyNKdTBFORBzX7Pm0\n70DP01BeTtWb4cMZl50xA7jvPi6WH37IxDdtMRowgC7q777zOVTDhkBcnAOAAw/eVWzO57FhPZxO\nvPUjs9PPPNOhz00TJwI338ySFIDt8664Apg2jZu3iy4CJk1ivPf+++mG1rsvMzLofm3XTvnHqYDT\nMX77zz+0SFVY0X4s5XX/FAAAOnU2aGIRIGzC1UFUFNDhLD5161IP6x+oilCio+meMtv6PBFxXLPn\na9GC5QebN7tfE2EcafRoZpM/9xyJdft29uy9+urKnU0AEu9zzxlauS++yN9rDjbDoSXbTfhANqzG\n3y/OR46rHqKjBW+/rXNQdjbw+ef6teUxMcCddzKMsmQJvTs33MDezS++WLlj1+kYvy0t5SYj3LaZ\n/mBh/HbtL/RkdeoSPl3ahGuAzsfiuOt+Ttc/SKXFaIX12asXC9ILCsydR4M/61MVtI3Enj3AhAkM\ntlxzDWu8UlO5I77vPpqo/tC/P4/79lufb99yC3DppUABauLNO0x2l9swH04nXppE/fTHHnPoJwxP\nmMAvX7NujdCqFfB//8dyws8/J1l37+4WhMnN5X1ptuWZnk4SVNG+LhAsX842l94qTqqhKn574AA9\nXQaiQ5qFq4UZw4FNuAbQAuRr/zEgp/btWa+1S0E8zwrC1RStFi82dx4NzZvT7bNpk3lzHD3Kh2bU\nKPbg3bED+OAD/n7++eAXG4cDePZZQytXa4T0xrr+2L/ItnJPZcx7OgWzC/qgZk3BqFE6B2VnA198\nEbxymsPBTe6771JIYfRohjdatGAuwYED1Fc3C6dj/LakhFa0bqA9CGjtAw2kYdfupL6CiqZQNuEa\n4Hji1A4DQQuHQ51buWdPlrfkG5QiqYDVcVwz5isvp7TmDTfQZVx0TIxi0SImQXnGZUNB//6Ujvzm\nG59v9+7NvdZR1MHN1xSGPo+NEwunE7dMOgsAcOWVDu/EdDfGjwduvTW8TjtVq1Ij9IcfgLffZkjj\n998Z7x01Cli2TL0n6GRoWKAay5Yx7q3CivZzvs68AmwoaAnAJlzToV3gdYWtIDl+4rgq4pTVqzNz\n1mzr0+o4rqoNiQgzE8eMoeX8zDPMUty+nbHvhx4CXn89/HkAt5X7wgskdx+49Vb+npfdAVmptpV7\nKuLXJxYgqzwWgOChh3QOyspiZnK4Xak0iFDT+MsvGepYtIiJesOHA2eeyWx5rdt5uLAyYaq8nGtX\nnz7mzqOS1P24prf/sAbFqI7mzVmSHS5swjVAbCyNnDzUxa4fl+sfeKrFcc8/n0IPxRZl2YYbx/WM\nyw4ZQrf4/PlMTBk50t3j96GHgKlT1S1W/frxJtCxch99lO0+nYjC47dmq5nThmUoL3HisTebAQDu\nu8+h34dg/HjqgqvqIztzJmvTNUHu1q25udu2jVKie/ZQ+7xvXwqxhFq5sGcP/7ZDBzXn7Q+rVrE0\nStdNoAiqCPfwYZZ0Guiwr/uVoUIV8VvAJly/0MJ/s74xuOk7dmThdLaCRdcKwq1dm4XpS5aYO4+G\nxETGSLYHYQUePcpkkwEDeLdv384a2Z07mfHpq5SiQQN2RHr5ZTXn7cfKdTi4HkZHC6ak9cGibxQR\nvQ1L8P6dq7ChtA1atRK88orOQZmZtERVWrfPPssf7xoTh4Ob4fff57wPPED1sxYtgOuu47+Difdq\nSVnh1rIECius6bIyegVUWNELFjC+XqWK7iE/L6Dbuk2b8KcDbML1i6NH+fvHZQZdNiIieAOoIMrz\nzuNOschkgXwr47ieDd6NUF7OmNaNN9JlPG0ayywyM6nkE8jiMWaMuyZSBS68kFmpOlZuq1bAww8z\nVnz5LQ1sjeVTBFs2OjHmC2amvv66w2eFGAB6Vm67jZ4OFZg5k7/9tZuKjqY356efuMns25cbyfh4\nEvHy5f49Rqdj/HblSjaUqF8//LH8nW9xMebsP0f7pxLYhOsH/fvz9/78GsaSiKriorVq0WI22/q0\nQpAi0PnWrKE7uEUL4OmnmTy2bRsbBwwdGpw4eYMGlGVUbeU+/7xuLPf++4GICMGRslr471UhyPvZ\nsBQiwKB+BShHFGJiBIMG6RyYmQl89ZU51m0wCX3aPb1oEXMVYmJo8XboQGlSvQoJK+O3Tie14M2e\nz8L4rWvxEuQ6GLhV1TnVJlw/ePhh/t7haI3y1EX6B55qcdwLLmBqvVUmmbfudGYmFXk6dwYGD2bG\n5p9/8pzuv98dlw0Fo0czE1SVldu3L5skfP21z7djY4Enn+QCOnVWLaxapWZaG+bgi0+d2LavDqpG\nufDddwaqUuPH07pt3FjNxDNm8PfgwaGPocV7t29nPW9GBhMtL7yQ8V/NKNi7F9i3T13w0R/WrWOM\nW5UnQA+qCDcvj0I5PXroHrJx2kYUSTU0b850DiUQkX/dD4D5ycnJEijatBEBRJbe/Lb+QeXlInXr\niuzfH/C4uvj1V5ELLwx/HH845xyRhQvNn0dExOUSadBA5LnnRAYMEImJEbn9dpH580WcTvXzjR0r\nMmKEuvH++kukdWuRsjLdQ+67dLsAImfGHpTCQnVT21CHHTtEakUWCCDy2cuZ+gfu3i1Sv77Ivn1q\nJnY6Rbp0EZk+Xc14niguFpk2TeSKK0Tq1BG57jqRu+8WufRS9XPp4Y03RO6809w5tDVWxXcya5ZI\n376Gh7zb9g0BRK6/PvBhk5OTBcB80eEe28INAJqXJDXFIGYSGcniTBVu5d69aemVlIQ/lhGscCs7\nncCcOdSfPXSI9YcjRtDC/fhj7lbNSOoYMwb48cfw26dp6NuX9ZJffVX5vfJyYOxYTFx9Mdo3PoRN\n+xqgbxeDMjIbJwTFxUCvzgXId9bANR024OZXu1DMwhfGjwduv12tdRsREZ51q4foaEqVTp/OeG9S\nErP55s4FHnyQcU+zld6siN+uWUNPk4rvxN/5lpYidScz2FV6yW3CDQDHCXdPorEkoioCq1uXWbjL\nDUqRVMBM1/XatcAjjzD5aexYum7mzGFG4ODBappGG6F+feDee1nTqAq+MpZ37yYZL1+OGqsXYcJH\nDQAIlm6LwbPDN+sMZONE4D9npuFAQU1ERgjenHsWHH/+wRjorbdWFJvZs4dJclo8KVy4XNTnDjZ2\nGwoaNKD/s149ZvPWrcsAZMeO3ETs3q1+TpfLmjaDKmPSfghXli1HKvi+TbgWQ8tAX+BIgmuhgSiF\nSqF+K+K4ffqwUF0nGShoZGUBr7xCecWBA0muf/xBZZhRo9hJpVcvyi5agdGj3bt+FejblxuIL7/k\n/2fOpD7uwIGU64uNxeDBwNVXc1Ed920iFk74W83cNsLC+4NmYX56IiIiBJNecaBpUzC+uXw5SbBH\nD24SAZLwiBHqrNvp0+kB083OUoznn+e93707iX7HDnbFSkujrGu/fpSVVNUXe9MmEnyzZmrG04Mq\nK7qggDHnXr10D9nx01pklzdCw4ZUlFMGPV/z6fyDIGO4LpdIfDzjuOvufEv/wNJSkdq1RXJyAh5b\nF9Oni1x8cfjj+EPHjiJLl4b+9/n5IlOmiFx0kUi9eiK33cZ4p15cdvVqkbg4kYKC0OcMBk8/zXNS\nhfnzRVq2FBk5UqRFC90Y+MiRvF8aOQ7I5nfnqpvfRtD49cavJBJlAoh8/rnOQV98IdKwocgzzzB2\nqyIXQ4TPQefOIjNnqhnPHzZuFGnUSCQvz/f7RUWM9w4ezHjo8OGMZxrkJvjFu++qfcZ8wenk95Jp\nEHcPFHPnivTubXjIJx1fEUDkqquCG9pfDPeEk9+J+AmWcEUYOAdE3m39mvGBF10kMmNGUGP7xKFD\nJO/S0vDHMsK994pMmhTc35SXi8yZI3LTTXxoL7tM5JtvAifRq64SefXV4M81FOTkMFlrxw41423f\nLuJw8OE/dEj3sLIykUsu4T1TDUWS9tEcNfPbCAq/3PC1OOAUQOTxx/0cvHatSGQkn7vDh9WcwLRp\nIt26cdduBYYNExk3LrBjDxwQeecdkZ49RWJjRR58UGTlyuDPdehQkc8+C/5cg8HatUxaVIGnnhJ5\n8kn998vK5NYqUwRgLlgwsJOmFOF4HDetuXEVtKo4bv36LPA2u8YkGNf1unWsSWzRAnj8ccrPbdkC\n/PorMGwYJRcDwTPPsCSo0ALR/5gYtuXTmtiGg2+/pTDJQw+xBOKtt3QPjYpilUaVKkAxqqHfXW2R\n89Vv4Z+DjYCx8f73MfTrKyCIQFycn1ugtJQ14BddRMGJrl2ZuBgOrIzdAsDGjSytu+++wI5v2JDH\n/vMPQ2G1agFXXUUJ1QkTGMv2B7Go366F8VusWmVK/BaAbeEGio0baa00qbJfXH/N1z8wNVWke/eg\nxtbFyJEiEyeqGUsP2dl0BZeX+34/K0vklVdY0hAfTzNhw4bw5736ao5rBTQrd/v20P6+oIAlRm3a\n0AIQYWlChw50QRrg779FmjThvdM1arUc+nJWaOdgIyhsGPmeNI48wDKtM2nM6aKkhCU1V1zBf4uI\n/PADXbOvvBJ62dq0aVwLrLJur7tOZPz48MZwOrmG3XEHS/f69RP59FN9F/XmzQytmI1rrjGIBwSB\noiKRmjVFjh7VPWT32PcFYIWV3rKoB9ulrIhwXS6GeACRbaMM4rjFxSK1aonk5gY1vk9MnSpy+eXh\nj+MP7dqJrFrl/n9+vsiX/8/eWYdHcXVh/GwSpARNcHco2hYoUCS4e4EWKRQpfAWKQ4Hi0pYWKBTX\n4lZcghUJVlyDS3ACgSQkxHfnfH+8XXYT1mZ2ZnYT5vc8+xCS3Tt3Z2fnvefcI6vhE82cmfnbb5kP\nHZI3X/byZbix3r6Vb0xbjBuH9yGWa9eYS5dm7tTp/ZuOg6L7+DG8YUTMeT2e8P2FmntZSfw7r+GM\nHhFMhB0emznRlsTWSFAQc5Uq2DKxqdgWMBgQH7Frl9jpSyMwkDl7dptCIpqYGOaNG5mbN8fWUceO\nzHv2JN7vXbQIW0tKIgh4bw8eOD/WkSPMn39u8ylrP/2NiZgbNxY/vOZSlglj21sioqP7bbiU06RB\ndOCJE84ftGZNlEuz0gRdNmrWJDp8mOiff4i6djXlm3btinzZv/5CJRs582XLlUO1q/nz5RvTFgMH\nolSkow0UmJHL6OcHF/KqVWj6YE727Dhvf/8Nt6EV8ubF07JmJXoi5KFSvavTnfn/SH8vGlbZ1nED\nNV39NUUIGahiRaS/Ws1Ai49H6VAioo0b0a/WnIIF4WotUwbVnMRsFW3ZggM3aSLlbYhn4kTknqdP\nL9+YadMStWuHaPw7d7CdMnYsIvUHD8Z2lxrlI2/exLksUMD5sey5kw0GOnoN3Y4UeVvWlDglP0iC\nhcuMDXQi5q5eq99fDZszdizzjz+KHt8iH39scmMqwdWriKLU6VB5asYMuJnV4MoVda3c8eMds3Lf\nvEH0ZpkyjrnPRbiXU6fGNeSre8UBPx9zbN4aDrG45Q72ongmgjfKZkEiW5atJfbsQXT9+PH2/YxG\n63b3blHzl8zVq/Jbt7a4cQOV3PLlw8XcsyfzkyfKHW/BAuYuXeQZq04d216Hixe5VOo7TCStCJ/m\nUpZRcC9cwBkrlPqx7U/j4EHmqlVFj2+R3r2Z//hDnrGMPH8OYf30U+zL9ugBN/jVq/IexxHathUf\nJS2VsDDs5d65Y/0558/D/9urlx1fZBIcFN2QEFTcI2L2ojge0tLGXDQcIj6euc3H1xluCeYhQ+AN\ntYpYsTXy9CnKAdaubTs9ZeNG5kqV1Nu7bd+eeepUdY5lztKluH9074793nr1sM8qt/B36MC8ZInz\n48TF4T4XHm71KS8nL0RmQVpxl4YRTXBlFFy9HhvpRMyPhtuoqxwVhY15OSy3tWuZW7VyfpyoKIzV\nqJFpX/bgQdNq/bffmNu1c/44Yrl6VX0rt2vX938vCMyzZiFQZv16aWM7KLoJCcwDBvA7gahYNFS1\nt5/SePSIOWu6t0zE7Okp2L8vSxVbI3o96oHnzAmrNykGA/b81bZu1b6AEhKYixTBniizab+3WTPs\n93buzLxvn/ioo6QIAnPu3LYXyY5y4gTzZ5/ZfMqWyr8ykfRS9prgyii4zEhZI2L+saCdm3K1akiw\ndpanT2GVSQlYMhggqt9+C5Ft1Ih5zRrL+bJv30L4rlxxfs5iaddO+WhsI0Yr9/Zt0+9ev8YNuEIF\n6ZHMRhwUXWa8bSKBiZiL+YTw6dPOHfpDY8M6A2dOBbHV6QT7AbrOiq05R47Auhs2LHGu/IYNCMpR\ny7pV87tjzl9/WVelly+Z//wTEdq5csHlcOmStOPcuQPBleN8/vwzco2tYTCwn9cxJkJ5Ailogiuz\n4BqLGRTX3bJdnWXkSCRYy0HRouKEMDAQe8h58zJ/8gmKTDx7Zv91v/8OF6/aqL0HNWGCaU/o+HGk\nNQwciAhzORAhuocPM5f1fcpEzB6k52Y1wm27QzX40UOBKxUPe+chaFop2P5uiJxia+TlS0QwV66M\niGaDAZ+7v0qpX2rHQBhJat3a4sYNFJnIn5+5bFncY8RUi1q6FC5lOWjYkHnrVut/DwzktBTDRNI9\n9Jrgyiy4O3bgrGX2eMMJJ22URNy7l7lGDUnHeI/u3VERxhbBwdjr/ewzrAiHDRNvrRqt3MuXpc9V\nKmruQ4WHw8rt3RtCr0TZPUdFNzCQY3xy8+BOwe8EJHOqSD64UNvbTYpBL/DS/pfY678yjam99Dy/\nx1kWChW2uS+niNi+m5QBubrZsiF4qHJl9axbNeMfzFm2TLzP1WDA6tK431u/Pspp2ltkd+nCPH++\n5Km+IyEB+4GvXll9yu1xq5mIOU0a6dV5NcGVWXAFwdQf98j/1ll/YkQE9nHlMFdWrLC8vxodjZKK\njRtj36RLF7ixndk3mTYNRSnURok8QmsEByN4wtMTiftKYU90o6Lw92XLmJl50iRmLy/hnfC2zX2C\ng3YFKje/5IIg8KkZJ/hz76vvzo23t8Bbtvz39++/x4LNktApKbbmbNmCiX3yiTzfeXuoncduJD6e\nuXBh5oAA6WNERyNOokkT3Le++QalYi3dtwoUQNUhZzlzBha2DX4vt1J0/9ukaIIrs+Ayw3gkYh5Y\nyE4z6c8/d8ztYo8HDyBGgoCV4qFDzN26YV+2QQM0D5Dri/f2LQJCpO65OIMclXLsceCAyQPwzTfM\nNWsqe9OyJbo9e6KghplQREQwT57MnC4dhFdHBq7hG8iP932AwisIfHL6SS6a5uE7oc2VS+BVq5Jo\nZ0wMUtsWLkz8erXENigIwjB+PBar5csz37ql3PGY1a3UZs7SpUitkYvgYORbVqiA7+XQoSYPm/l9\nz1l+/525b1/rfxcErpbqFBMh9ksqmuAqILgnTuDMFfR4wEKCDWty6FDsF8qBjw8EKV8+3FymTZOn\nc4Ylpk8X3yZDDq5dU87KTUhA7mDu3Mz//IPfGQxYuLhCdNetg6vESsm8x4+RgWIUmnQUxYOLbuen\nB2Qoq+nuCAJfmX+cv/bdxzrS/3cOBO7Xz3qFQb5xA8m3xm0UtcV29ux3c+f58zGXlSuVOebly1gU\nu8K6LVQIpR+V4No1lI7Nlw+Lltq18d2Ug2bNbCpp8Im7rCMDp05t4xpzAE1wFRBcvR7eHCLmS+tv\nWH/izp3OrQZfvDCt/nQ6fLHV2F+NisIX2rzco1qI6XbiKI8eMVevjn2j4ODEf3OF6N65gxuyAwVN\n5s41RcYTMaeiWC6f6T7/s0im7kduhGAQeNGAQC6Y5qnp/aYSuFYtBwP+ly9HoZjQUNeIrTmXLqFk\nateu8i8g1ey2Zc6SJcx16yp/HKMX76OPsO3jrBdPr4c3MOl334zF3wQwEbzczqAJrgKCy4za3kTM\n4xv9a/1JYWHYKxTzpTfuyybd37h9225LOFmZMYO5dWt1jmXOtWu2+3mKZccOWM2//GI9tUpN0S1R\nAjcSke7ACxfgRTSmERExV/e9ziumPFattbBSvHwh8LRet7hE2qB37y11KoF/+AFrJVG0aoXYCVeK\nrZHISAhuyZLyLZTV7idtJD4efaCPqVQd7eRJRDaHhTkfp3LxIj4DGzTNfYGJUBraGTTBVUhw/f1x\n9spnum/7iZ9+ar9GmKMRfD16yJdqZI+oKOTQucLK7dABOXPOEBeHVJ/8+ZH6Yw+1RLdNG+ZUqZjz\n5EHkucgAm7//RpaYcY+XiNnbM5rLFY/hJUuc6yOuJlFRzOPHCVwwRzSn0sW/ey+ZMglcpQrz2bMi\nB3z1CuknmTIxe3gwL16syLyZ2TGxNcfY3H7+fOf3I1u3xmJYbRYvRiUptWjYECUdzTHPxMiTx/FM\njJkzUTnOChFvBE5NsazTCbaMYIdI0YJLRG2JqJ6E1zktuLGxzOm90dj6/l0bRSkGDLAuHuY5auXK\n2c9Ru39fXSv3jz/kqXIlluvXnbNy796FG75lS3HnSmnR3b4dN+rQUERNNm2KXOm5c0XnAEdGwsNX\nuZL+nVgRMWdNF8Xdmgbz9k3xqqU1O8qLF8zLF8Rwqy+C+SOvuHdz1ukEbtZU4G3bJCwYXr/Gd8jH\nBzfVoCBYgVmzKhO4JFZsjdy8ie94u3bSm9tfvIhFsNrWbVwcrFtHFq5yYLRubXkojPu95rUGrNWA\nb90aBX+ssHE2UvKqVXM+OCvFCi4R1SOiMFcJLjMyEYiY//jRRlGJLVuwWjPy4gVKCEqtwtKzJ4J/\n1CA6GnNUsnmCNTp2ZJ4yRfzr1q3DzfbPP6VZE0qJ7sOHcG0n9XacOYPtg3z5mOfNk1R8Y/165s/S\n3+L83iGJxJdI4FzpI/jn7+7xiUOxinpYLRERwbx3UyQPaH6PM6WOTuQOJ2IumvYx1yt4W1KReH79\nGt8DHx/s7wQFJf773Lnyp+hIFVsjMTEoYVSoEEsqK9aqlfx11R1h8WJ43dSiQYP3I86tkbSaXsOG\niavpGQzIubfRXKFjlbtMJE9Kc4oTXCIqTEQLiagXEd1zpeCuXYsz6FfMRqeMkBDsKa1ZI0+d0aAg\n3GRsJHDLysyZsBTVxhh16mhf4ago3HiLFkUDAmeQW3QTElDq01bK0+nT2KfKlw+uRzHC++IFc6ZM\nLERE8rVrWKcULaxPIr7MaT1iuXS2YK5ZNpT/mBrLd+7I1+I4Lg7blKMGRXHFIq/5Y5/n7EFJ5yBw\njWp6njsXUdh8+jQqFolZGL1+jW0VHx8sPu9b2dIRBGx69+sny/tzWmzN2bRJfHP7Cxew+BXTUEMO\n4uLwviWtiiRw4gSOJ2V1mLRefNeuWHgXLmz1JXFxzJlSRTFR4mqvUklxgpto8i4W3PBw5lSeevbQ\nGd7vT20wIAe3Rw+c5sKFHaus4gjffQc3mhpERyOVxlVW7uTJ9p9nbBLflEUKqQAAIABJREFUsaN8\nwVZyiu6oUVh5O3JzPXUKNwyj8Dpy45k1C/m8SThzBmV2//c/5lIl3xdgIuZ0qeL48/zPueanb7h1\nK4EXLWI+dw7rxKQ6aDBgx+PkSawdGjU0cJ3yr7hMrhD28nh/fE9PgSt/buBhw6AtSY1QFgTm4sUx\noD1CQ5nHjIHQ9ujBfM+BKO2wMLhC31XIkIicYms+ZuXKjje3b9nSNdbtokWwONWifn3nI5eYTR3R\n0qVDhsfw4Ra7oe3fj2u1dFF5PCGa4CoouMzMDWpgdfTXsv/uTjdvwtVVoAB6Yk6dij3cmjXlK/n2\n4IG6Vu6sWcwtWqhzLHPsWbmCgET8rFnxr9wl9eQQ3f37sWCx2ZzVAv/+C+HNnx/BI7aEt2JFlBK1\nw8uX0P6KFZlr1dRznqwxFkX4XTBWatM+a95Mbzi1Z4LV5+p0AhfNG8M1qhu4Zk1ok0Nry0mTUCnK\nGqGh6C/t64ugQkeE1pxTp2BNPngg7nVGlBBbI/HxEIK8eW0XyHG1devIgkgOjh/HAkmuvY/ISGzj\nrF2L85wnz3s9v/t0iWAi5p9GyXPv0ATXiuAWL16cK1SoYPWx0ME9hHlzsS/VsmggemDmzMk8eDAC\nHIwCkJCAIgeHDjk0pkP06oUGCWpgtHKdddVKoVMny1ZuRAQs2tKlURZSKZwR3efPcaM8eFD68U+e\nhHVcoAD2tZLejG7cwDUnMTz59WvmIxUGc/uaz7hUST03rBbJZQu+4YxpYy0Ka7YM0VyxeDjXqRLF\nn5Q3cL/KZ/h017nSnQBBQRDTpO8rLAw5y76+OP9ihdac339nrlIlcVcfR+emlNia4++Pz3DCBMvb\nTC1bYmtHbRYuTBx/ojT16skbXT51KvL6jej1KHrTtStzpkxsaNiY86R7zUQSouKtoAmuFcGVy8J9\n8gRnMS1Fc+TmfdZvfCtXopmB3FauI+4oOfjzT+bmzdU5ljk3b8KCNS9Ob2wS/9136kRsShFdgwE3\nkDFj5JnDiRNw7RUoAJebUaBGjULgnTOUKAG3fBLCw01Ce+iQlVO9fDliEpyhZk1TF5ewMJRI9PVF\nIIyz7RKZ8Vk0bowOWo6iltgaMW9ub97Z6/x5LHZdYd3mzw9PixocOwbrVuyiyBpG69bCdc3MzG/f\n8r/j9zARc55UwbLdljXBVVhwmZkL5YXrbfQwG/sACQnYr3LG2klK794IjVeDmBh88c+dU+d45nTu\nDNejIED4s2ZFNLKaiBXdKVOwwJI7Mfb4cexzFSyIPd68eZ2rey0IKMRhZe/bKLhWOXTI+fJ7ixdj\nL9NcaOVoOG7Oy5dwKTrgelddbI1Yam7fogW2dNRmwQJsaahF3brIc5OLX3+129avxqeR8E42c6LZ\nSxLcVnD/izZ29JHZyhhuIbgNGuBMFsxsJ79u1SqUGJRrOfXwofpWbrNm6hzLnFu3TI0aKlSQ/2bs\nKI6K7rFjqP35+LFyczH28SVCje158+BaF3ttvXqFc2sFu4J75w7SXMQSHw/raepUlD8lQtqLkp/t\n4cMQM1u57q4SW3OOHMHioFUrbEmo3SA5NhZBe2pZt0eP4hqSy7qNiIB1a6PLkF7P7wquyNkV1C0F\n9z8R/VvEY7iVcdxCcM+dY/bwENiL4jn4jo0oWb0eVq6xeL4c/O9/4lxlzhATgxuBXBsejnLiBCIN\nM2dWr0m9NeyJ7qtXuFnt2qX8XLp1Q8DRX3/h58KFYf23aQOr6OJF+5HRFy6gIIMV7ApuTAxz6tT2\njxMbixvr5Mmw0DNkQIH6/v2RJlOvnjx9T+0xfjzctpb2St1BbI3cuIGKWenTWwjvVpj589W1buvU\nQdCjXPzyi90ee3vn3GEi5uzZDFJS363iloIr18NdBJcZcQ1EzFMb2BHT1auRkym3lfvypTzj2WP2\nbFRIUgODAV+e7NnhQm7aFLmVcq2EnZmXJdEVBLgABw9Wfg7R0SgDmtRae/QI19h332FvNksW7L1P\nm4Y8oaQu7u3bbX6edgWXGZ/PsyTFX6KisH0ybhz2Jr29ER49eDCOmbTD986dzF98YedAMqDXYz4T\nJyb+vTuJbUgIereOGIEMh2zZnE9tchSjdXvqlDrHCwjAQlFO6zZbNixYbNA213EmcizrUAya4Kok\nuDt34mwW87jLQli49Sfq9bgROtT+xEG+/159K/fMGWWPExwMF3K1aqYK9rGx7i26M2ciUl2Nkk7r\n1ztW/ef5c+YNG1DhqHRp5owZYb388gs8B3/8YTMtxyHBrVgRe7l79yKIq1o1CGyVKrgu/f3tFzCJ\nj4dwyxEkZY+nT+HyNzZRd0exHTXKtCg/dQou1759lXcvz5uHADO1qFOHedky+cb7+We71u2LA5c5\nFcWxh4dgqwCVJFK64IYRUVsJr5NdcBMSoENEzEe6Lbf95DVrsJqXy8p99EhdK3fOHOf7WNnin38Q\noPXTT+9bZO4qukePwp3rTPqKGJo2ldZvNSQE1tKAASh9qNOhOED79shVnDcPATs3bjBHRycW3Ddv\nUE5q2zYsLgYMgGvHwwNt1GrUQBWoAwek5S3/8ANcvmrg74+As/Pn3VtsjYSFMbdti89Mqeb2sbE4\nJ1LKTkpBbuv2zRuHrNvfSy1lImWSLlKc4BJRZiKa+t/eLv9n5S4UI7xKCC4z7jVEzJ3SbEycxpIU\nvR7tovbvl+/gffrghqkGSn0xExJwEnPlsu0BcDfRbdMGwjVpkjrHDA5GiVA59rPr10f5w7VrYR18\n9x1+V7Qoc5o0JsHNkgXCXLo0zn2/fnBTb94MT4Qc9b3PnhVf6lEqgoDIWJ0OwYCuxpbYGhEELIiy\nZkUAptzMnavsQjoptWsj/kAupkyxWHHNHOHsOS7hhf3b7dvlO7SRFCe4cjyUEtygIHx/03jEc+gI\nO6Fva9cyV60qr5WbJYv4ikZSkfvL+fgxLCRLTeIt4S6iKwjoRpI7NyJgv/zSsZZhzjBzJvoky8EX\nX8A6t4TBYBLcly+tX6vTpsHadRZBwEJUybq9goA65lWrYmsnc2bXNHM3xxGxNcfY3P7bb+VrsGFc\nRCu9VWTkyBEsruRKmzNatzdv2nza0arDmQhreiVaWdoTXA/SkI2CBYnq1SOKE1LR6tlhROHh1p/c\nvj3+fuCAPAfPl4+oQweiadPkGc8ePXoQXb1KdPq082Pt3ElUoQJR48ZEe/cS5chh/zVp0hBt3kwU\nG4v3nZDg/DyksGQJ0d27eNy7R1S1KlH9+kTt2hEFBipzzFWriL75Rp6xHj8myp/f8t88zG4P2bIR\n6XSWn5c/P8ZxFp0O72vVKufHSgozvmvVqxMNGEDUvz/RtWtEFy8S/for0dmz8h/TEV69IqpTh6h5\nc6LJk62fY3PKlyc6dw7vqWJFoitXnJ/HkiUYt1Il58dyhPHjiUaPJvLykme82bOJGjYkKlHC+nPO\nnaPFl/D+unWT79CisKbEKflBClm4zMwbN8IiKJvlEQvjJ9h+8rp1CCyRy8p9/FhdK9fZAIu4OOZB\ngxxvEm8JV1q6V6/CvZd0z+jtW5QTzJED/U8tFE2XzLVrsKaldJpKSkICc6pUNs+bQ0FT//6LwCk5\nePAAxS/kytUQBGxPVKsG63nt2vfP3ebN2Eu0tQ2kBGItW0usWIFrcMEC6WOoFQhp5PBhea3b8HCH\n+h+HNmjPaVOhHrhSoRaaS1llwY2Lw2dPxHw6U33bzab1euaPP3as+o2j9O3LPHSofOPZwpkE+bt3\ncZNu0UJck3hr81BbdKOimEuVsr0H9fYt2vVkz46gJDlqPo8YId/n+/AhbrQ2cEhwnz7Fe5QLPz+I\noDOYC22JEghUtLVI6dMHn5Ea+8fM8oitEfPm9lIWDbNnq1vQxs8PJUHlYtIk+1ssZ87wnMw/MRFS\nvpVCE1yVBZcZpW2JmHsWO2I/6nL9erTpkuuL/uQJrFxH9kHlQEqS/Pr1WJXMmiXf+1ZbdHv0QMlJ\nR+YfGYlyNtmzoyqUtfqu9jAYsMC5fFna65Ny/Dg8LDZwSHANBhS/kCtlZckSVFmSgiAgyr16dRSZ\nWb3aMW9ATAwKcTja+NwZ5BRbI+bN7cVYqmoXszl0CAF5Klu3QuMmXD5PCBPh9qMUmuC6QHBv3MCZ\n9U5n4AifAvat3FKlTLVT5aBfP+cL2juKsci5Iy28oqPR5ahoUWVqMqslumvW4GYutvduZCRqvGbP\nji4mYoX30CGIglysXQurzgYOCS4zajvLVZYxPBz5wmLaTwoCCm3UqIHOXKtWib+pGxtlKBn0poTY\nmmNsbj99umPjq9mURBCQQrdihXxjTpzI3KWL7eecPs1nczRlInl3KyyhCa4LBJcZC2wi5sXVlqHa\nji02bGD+/HP5rdz/ej4qzoIF9tt4XbuG/sAdOtgvguAMSovu7du4KV+8KH0Mc+Ht0MFmzddEdOuG\niGC5mDrV7sLMYcGtWVPe9pPG+tCOYGygUKwYcpOdsZ5WrsRer1zRv+YoLbZG7t+H16xpU9t11tVu\nSHLwID4juazbsDB8F2/ftv28xo25V/VAJkLIiJJogusiwV2xAme3QtkYLKuSlrIzx2BAfqO/v3wT\n+OEHdUoMMtu2cs2bxC9Zos4emVKiGxvL/NlnKPwhBxERqPiULRuE11bCflQUUliSllB0hr597Xai\ncVhwO3eWd19u1y6k7tji8GHsBxYtii+cXDfyrl2xuJETtcTWSHw887BhSPUxVtRKyqxZiKFQA0GA\n90FKsRZrTJiAz8oWp05xWO5SnN4bfcsdXdtKRRNcFwluVBS2tYiYt9T5k3nsWNsv2LhRXiv36VN1\nrdyFC1EAwZyICCSiK90k3hJKiG7//si5lfuGGRFhqpnbsaPlXMK1a98/v87SooWpD60VHBbckSPl\nLfxhLPVoyXo5cgT1kIsUgcjLnVAZGYlAK7mKS6gttuYYm9tPnJh4Lzs6Gtbt+fPqzEMp69beNkbj\nxtyj2jUmwrpMabQ8XBeRLh1RsWL4ecrL74jmziUKC7P+gi+/JIqOJtqzR54J5M6NnMbffpNnPHt8\n+y3RrVtEJ0/i/xcvIrc2XTqiM2eISpdWZx5G5M7T3baNaMcOoqVLHcuVFEOGDEQjRyKXt3Rp5Ip2\n7ozzaUTO3Fsjjx4hf1sO8ufHeHKRKhXR118TrV5t+t3Ro8hZ7d6dqGtXops38a/cCZXp0xNt3Eg0\naBDR7dvOjSUlz1ZOGjcmOn+e6NAhogYNiJ4/x+8XLULO7WefKT8HZqJx44jGjpXvs5o1i6hZM6Ki\nRa0/59QpEgKv099XPyYiIj8/eQ7tFNaUOCU/SAULlxltUT09UWr2brsRzGPG2H7B33+j+H1ytXIX\nLUKlKFc1ibeEHJbuw4ewttTqD/rmDdqYZM0KV+2JEyjlKPe+ogP1tx22cHftsr+PL5azZ5EfGxCA\nIveFC6PQvVqpX/Pno3ax1OhrV1q2SdHrkTGRMydqGubKhdaMavDPPwgylNu6tdfoolEj/vu7fUyE\nt20rdlUuNJeyCwWXGdXXiJh7fhWBvVxbOacGAwKL5OylOmAA88CB8o1ni+Bg1LbMls11TeIt4Yzo\nxsej/KGcXaodJTwcblpPT+a0aRFodfKkPILz9i3GtCMEDgvulSuItpeDyEjUGR81CtdTpkyIA1C7\nsIkgoGFAv37iX+tOYmvO4cModpI+vTrnUxCQC716tXxjjhtnf4/95EkW8uXn8uVQntTR+Dtn0QTX\nxYJ76xbuGalSMT/6ehiK89vi779REEKuL+mzZ7By5Qy2scTJk+i68sUXWFio0YBdDFJFd+RIWG72\nGqwrSYkSyPvt3x9pQenTI3t/0iRYf1IssBs3sKdmB4cFNzwc85Jy3YaH43oZPhzRtd7eCPP/6Sd4\nTOylfShJWBhyW8X0o3VXsWVGkF7evAj+q1oVlb2U5MABXL9yVEZjxufh62vfum3YkHf1839XN1np\nroZGNMF1seAyI8OBiPmHrm8cs3LLlkWDXbkYOFCe4vKWMG8Sb2y/ceoUrNzkLrr79qEogFqlMi1x\n7RrmYH7DCg3FuR4yBIszb29E644dC/ddVJT9cffvh5vWDg4LLjNzhgyO+e1evUKw1qBBuPF7e6Nz\nzPjxSPGJjjY99+FD5ZMn7XH6NK7voCD7z3V3sS1WDFtNBgPKj2bPrlxze0HAAnzNGvnGHDvWMes2\nfwGu/DmsWzV7U2iC6waCe/kyznTatMzBnQbbb2W2aRNzhQrub+WaN4l/+DDx35K76D5/jqWxnLml\nUhgxwn7bxTdvEI06YgSslnTpcKMbORIFVSwV6FiyBPsddhAluKVLW66CFRyMKPx+/SBGGTLgupky\nBYEO9sS0dm3nSz06y7RpqMpl65pJLmJrzqlTKFrSr5/8ZuD+/chplsu6DQ3F4steIeQGDfifQbve\nFbpQIqXaGprguoHgMiMDg4h5eO9wXAW2qugYDKiNumOHfBMYNAguSbk4eBBpBaNGWQ+GSK6iq9ej\nV6q9VC6lMRjg/hPb/ODtW7jyxoxBQQhvbwTjDR2KayosDPtgDrw/UYLbqBE+6ydPYNX07o0bbqZM\nON+//YZrQuze4bJlaHTvSgwGtKP88UfLf0+OYmskLAzfBTmb2wsCFn9r18ozHjOu5+7dbT/nxAnm\nggW5di1Yt5Mny3d4R9AE100E9/RpnO306ZlfdxmIL6YtNm+Gu02uL+/z57ByrX3pHCUhARd+rlxY\nwdojOYru5MkQKiUaZorh4EHcBJ0lJga5qxMnYiGRPj2zlxf23MeNQwOGI0ewn5fkPVsV3NhY3Jz3\n7UOlsREjMO5HHyH6uVUr5j/+QJ6nsxbOmzcQbTGlHpUgJAQLoKTNRpKz2Boxb24vR4DTvn3yWrev\nXztm3davzyd+3M5EuGTUbgClCa6bCC4zvGhEzOMGhOGmZM/KLV/etC8qB85aucYm8fXqiUs1Sk6i\ne/Qo2uo9eeLauTHD5avEBlRcHAKBOnTA4qlzZwQp5c2Lai2FCsGN2727SXB/+glFTKpVg2cjdWqk\n6dSti4CuSZNg0TRpokyA2ddfM8+dK/+4YjlyBDkmRgFLCWJrzqVLSOHp1k26L1YJ63b0aFxntjh+\nnLlgQW7SGNatvZ07JdAE140ENyAAZzxzZuY33QZgj80WW7Ywf/qp/FauFDHZuRNCNGWKtBtqchDd\n58/RjWf3blfPylTKUakc6uLFLde5i41FStf+/cyLFpkEd/x4lE8MCMB+vSXLZcUKiLIS+Pvb7Wyk\nGhMmYEESHJyyxNZIZCQiwz/+WFojh7178Vo5rVsfH9SItkW9enx+zFYmQhiDrTLSSqEJrhsJLjMM\nRCLmX0eE4iKydVUIAlyK27bJN4HBg1Fn2VHi4vCa/PkR4OIM7iy6jRsjqs3eKlot1qwR3/bQUQQB\n7zUy0u5TRe3hGpsIKEFCAhZ89grVq4FejxiLjz5KeWJrjrG5/cKFjr9HQcDCSM6iNz/9xNyzp+3n\nHDvGXKgQf9ka1q1aZeSTogmumwnuvn0469myMUf1+MG+lbt1K0RXri91cLDjVu69ewi2kaNJvBF3\nFd2JE7GvmSUL9iNdsTw2p1EjedMpzHn5Eu/TAUQJ7t27iHhVioED7VdrU5pbt9DsPGNGFCQ5fNi1\n80mKXGJr5MYNLC7at3dsQ3TPHhRAkcu6ffUKhom9lKy6dTlw4mYmYk6TRr63LxatlrKbUb8+UcWK\nRCEhRLN8JxItXIh6q9Zo2RL/bt8uzwRy5EAt2l9/tf28jRuJqlQh6tQJdYR9fOQ5fuXKRDt3EnXr\nRrR7tzxjOsu5c0SzZ6N28aVLqHldogTRqFFEr1+rP5/gYKJTp4hatVJm/MeP5auhbE7evETPnhEZ\nDPKPTYRa0qtXYw2gNnfuoG5ztWookv7oEdGuXZiTre+vmvz6K9GyZURHjqCWuhyULIlr0dcXdZfP\nnrX+XGai8eNRM9nTU57jz5iBOvMFC1p/zrFjRPfv04TL+L507y7f25cda0qckh/kQguXGUGARFgg\nh3cbCIvKFtu2yWvlvngBC+fx4/f/Fh2NdI4iRZTtk+kulm54ON7rxo2Jf//gAc6Djw/chmpGyM6Y\nYb/tmDNs3crcrJlDTxVl4TLD7auUeSEIsJ6c3doQw507+Cx8fbF3m7Swx7BhiAFwZSUyZvktW0v8\n/Te+szNmWL4X+fvj85HrXDhq3dapwweH7mYi1K23t9WrJJqF64a0a4dmNgYD0bDYSejcERJi/QUt\nWqDLyLZt8kwge3aiHj3et3Jv3IAF+uYN0YUL6PajFO5g6TIT9e5NVK8ePhRzChQgWrAA5+HVK6Li\nxYlGjyYKDVV+XitXyt8ZyJzHj9HdRwny5ZO3a5A5Oh3Oy6pVyoxvzr17uDarVCEqVAidnMaOJcqc\nOfHzpkzB9fHHH8rPyRpKWLaWaNuW6PRpovXrcU8yt+yN1u24cUQeMsnK9Ok4pi3r9uhRogcPaNC+\nRkSEj6pQIXkOrwjWlDglP8jFFi4z4hCM0XSPvhllPaHeyPbtSBOSa/VotHIfPcJqddkyBEgsXqxu\nEIgrLd1FixBlal5K0BpBQczffQdLZ/Ro+fa0k3L1KtJz5NoDs8TQobCIHEC0hdumzfveAjl59AhW\nj1LFce/eRUqMry9ylB0pVRkUhGv49Gll5mQLNSzbpMTF4RrKmxdpdMyI7C9dWr77U0gIPmd7tZ5r\n1+a9g/e+u5eeOSPP4aWiBU25qeAyM7drh0/g6xZv7bdKEwQUwpCz7umwYYjK7dQJriCxFY3kwhWi\ne/UqFhg3boh73f37iJj08YHwhobKO6/hw+0vvpzlq68cDsgSLbgDBqAMopLUqQP3ppzcu4cqRkah\nFfu5bt6M/GU1Ky24QmzN2b0bWwgTJ6Kmt5wLrZEjsaVjiyNHOK5wSS5RQmAiFDJzNZrgurHgPniA\nzAIi5oBWM+zXzN2xAxGDcq0i9+zBwWvWdKzgvZKoKbpv32KB8ddf0se4fx+LFV9fRM7KIbx6PRoV\nBAY6P5YtqlY1WSZ2EC2406cr1yjDyF9/IXJeDu7fNwnt2LHOfY59+qCdnxoeIleLrZEnT/C91enk\nKxZjtG6T1mdPSq1aPP3r00yEtPK4OHkO7wzaHq4bU6AA0Y8/4ucfbvUl/eK/bO/lNmtGlCqV83u5\nzERz52I/rH177N1evercmM6i5p5u//6IuOzaVfoYhQoRLVlCdOYM0dOniFwdN44oPFz6mIcPY3+9\ndGnpYzjCo0fK7eHmz6/cHq6RL78kCghwLjo4KIioZ0+kDOTJQ3T7NtGECURZskgfc/p0RDMvXCh9\nDEdQa8/WEf75h8jLCxH1lSoR7d/v/JjTp+O+ZOsaPXKEgoNiaPzuSkSELfTUqZ0/tOJYU+KU/CA3\nsXCZsX1YoACsiHl+6+DmtcXOndh3lGrlhoYyt24N97SxSfyuXVilnjolbUw5UdrSXbMGy2FLHXSc\n4d498Xt/SenSBRGgShIfj+bMDjYQEG3hnjqFTldK06ED85w54l8XFJR4S0DuvfibN7FVYalrkhy4\ni2XLzLx8Ocp8GrdlDh2Ch2bECOnN7V++dMy69fPjbjVuMxGCxN0FzaXs5oLLjG58RMw+mQ38OnNh\n2/1XBQH7JZs2iT+QsUl8//7vt0T7EET39m3cDC9elHdcc8yDbsaPd1x4375VtpSjkQcPcFN0ENGC\n++wZeqwqzZ49aFbvKA8eIOjNxweVi5RM81q5EoX75e4L585ia+TFCxRt+eILac3tf/yR+X//s/2c\nw4f5dN42TIS1ozsUHzOiCW4yEFxBQBwIEXPfsgGIALTFrl3MZco4buUaDMxTp+JGaKtMZEoW3dhY\n1KWWYhVJ4c4dNB/ImhX5m/aCaVavRnlJpTl2DHu4DiJacA0GNDZQKorYSEICmgjYayf34AFzr17q\n51N37epQv2GHSQ5ia8RgQART9uzI+XYUo3X76JH15wgCG2r4ceUiL5lI+fhCsWiCmwwElxlBs56e\nzB4eAl/OWN2+lVupkmORmi9eMDdsiBWnPTcNc8oV3R9+QMqK2nVvjYUTsmZFNKc14W3YUN7uKtZY\nswZl+hxEtOAyI1rXuF2hJIMGwS1siYcPTYVLRo5Uv7VfZCSs3JUrnR8rOYmtOf/+i1KfP/zwvkfN\nEsOHM3//ve3nHDrEy3MMZyJ0CJV7Z8hZNMFNJoLLjOuSiNkvz20WBg+x/eTdu+1bucY9lVGjxO2p\npDTR3boVX3wp+6pycfs29mizZkUruzdvTH979gzuZDUixX/91b4HxQxJgluzJnr5Ks2FC/hczb8D\nDx/CJenj4/qa2Jcv4/O+eVP6GMlVbI2EhmKh+9lntn2/5nUBrCEI/OaLRpwjUzQTybOWkRtNcJOR\n4IaGYuuPiHmDdzc0GrCGIDB//rnl3LeEBKQ4ONok3hIpRXQfPoRr699/5Z+XFIzF782Fd9o0ed2P\ntujTh/nPPx1+uiTB7dzZuZQrRxEEFFs4ehQ36u+/dw+hNWf+fBSskeJiT+5ia0QQ0Ms4a1br+d/D\nhuHatMXBgzw082Imwq6Iq6tpWkIT3GQkuMymClR5vUP5TV87nYT8/d+v7vLkCSyMunWdD8BJ7qIb\nHw9X+tSpys1LKrduQZiyZkUy9h9/qHMHad5c1L6aJMEdNQruc6WJjUXeq68vhPbHH20Xj3EFgoA5\n9u0r7nUpRWzNuXgRGQLduycOKLNV292IIPCVT7twKk8963TMZ886NxWl0AQ3mQmuXo/ezUTMtb0C\nbIum0crdsAH/37XL1CRertKAyVl0R4xAxKQ7LoWNrFuHiuvFi+Om07w5LN4zZ+CpkJvy5ZnPn3f4\n6ZIEd/58+/1LpRAVBVf1uHHMtWoxp0/PXLQoii7YckW6mrAw7Gs7mlmQEsXWSGQkPDzmle2GDrW7\nIDHs/4eze4YwEV7urmiCm8wElxnGDm50Ah//apbtJ/v7Izhj4EDFj0elAAAgAElEQVTmfPmU6aSS\nHEV33z7sX7ubxZOUYcNM3aKeP8fiqW9f7M9nzIgFwy+/MJ84IU8pnSxZRJ0TSYK7ezeCwJwlMpJ5\n715YzNWqMXt7w5c4YgSue+M+eN26ytZvloPTp3Hd2ut8k5LFNunYWbPi/drrzy0IPCX/gnfXooj1\noupogpsMBZcZ9ysi5uIed/jtPRt7uXfvYoWfNauykZjJSXSfPcP+9aFD6s5LLHo9bmjXrln+e0gI\namcPGID2jOnTQ1wmTmQ+ckT8vmBkJHPatKIitSUJ7pUrcNOIJSwMhV2GDYPnxtubuUYNRCIfOGA9\nr3X5cofbDbqUadOQO2wtgPFDEVsjgYFIzfD2tpk2d/uv45xOF8VEouL9XIImuMlUcGNisD1LxPy/\ncsctP2nDBghtnz7o6ap00fjkILp6PZKax451zbzEsH8/ojcdxShIQ4ciLczbG/v1Y8bYFiQj16/D\ndS0CSYIbHo652RP2V6+woBg4EDnS6dPjs5swQdyCIiKCOVMm9/dmGAzMTZpYrib3oYmtXs/csSMW\nVF9/zVy4sMWN2fg4gT9Pf42JUFzM3dEEN5kKLjPzpUvMqVOjE8bOFWYl6MybxBsv0kePNNFlRuSv\nn5+y7e3k4ptvsH8glYgIuFxHjkRwmLnLdc+exKlHzHCz160r6hCSBJeZOUOG9xsBBAfD9Wt0mWfI\nAFfOzz877zLv2FFU9LXLCAlBWzt/f9PvPlSxrVfP1Bpz40aLze3Hdb7LRMz58gmyN+ZSAk1wk7Hg\nMkM/iZizfRSBLKEbN1BL+auv3nfDfOiie/Qogsbk6lqiJG/fwiqzlfolFmNQ0dixWHR4e6MM6JAh\n6DQ1cybKTopAsuCWLg2BX7MGlZ5KlECucbNmzL//Ln9Q2J49sPqTAwEBqJL19Kkmtubcu4fPsHlz\n5lev+OQJgT0pgXU6we13h4xogpvMBddgYK5dLZaJmJuVusuCb1Y0TrfmrvtQRTdzZgiMKxrZS2HV\nKrgXlSQmBjf3SZNwg9PpUHy2bl1EEU+ejJKSJ07ghm8hmtum4CYkoL3doUPMy5bBtf3NN3ATEjGn\nSYNGGTNnokiFkl4HY6lHJcVCTsaMQVBc0aKa2JoTF8c8ZAhH5CnJRXxDmYh52BA3zjJIgj3B9VKq\nC5GGPHh4EK1Yl4bKFXxDu64XoUU/XaDe3+Wz/oJ8+dDmrXZt/H/IEGUm1rQp0V9/ETVvjrZ6lSsr\ncxxH+PxzomzZ0HLtl1+I0qQhqluXSKdz3ZzssXIlUffuyh4jbVqimjXxGD2a6KuviAoWJKpTh+jB\nAzx27jT9/OYNWqIVLIhHoUJENMI036AgPM/47/PnRDly4HnG19Spg39nzMA1OGiQsu/RiJcXUceO\nRKtWEU2Zos4xpaDXE61dS7RmDdHbt2hr5+oWeytWEI0aRXTwIFHJksocw2Ag6tKF6OVLoh07iD76\nyPLzUqcmmjaNBl34nu4dzkLlfR/TpCk27nfJDWtKnJIflIwsXCPrZwUzEfNHnrF8M9ABV9yHZOnO\nmIGo1uhoWGzFizNXr878zz/q1052hKdPYZFbW+UrRZ06cPNaIyoKgVX+/qgMNGyYycLt1AlddpYs\nwXm9d8/2nuvkyaZ0J7W4eJE5f373zLtOSEAtwmLFEOh2+DCi6XPmRICYq3AXy9aMLSsi4CDxjOfA\nixLb/LkIzaWcQgSXmblzBz0TMVfMcpfjozXRZWbsBWbLBtemEb3eJLw1amBf052E9/ffRe+lykKx\nYqJvrJL3cFeuhEiriSAgGMuVApYUvR7bB8ZrMelm5J49rssXd0OxfXYtlH094UqeNdONvrMOoglu\nChLc8HDm/PkQtTz6402OBZ2kZNEND0c6gbWuSQkJuNkZrQp3ibwoVw4WjpoIAnJwRfZolSy4hw9D\nYNTmt9+Ye/RQ/7hJMV/0Va9ue9E3fDhaM6ppmbuh2AqvXnPDDCeYiLlBA8EtHRX20AQ3BQkuM2Jg\ndDqBPUjPx+uM+XBFVxDQZs5eOy9mkzuvaFFE76otduZcuuQat6ex16hIJAvuvXvMBQpIeKGTPHmC\nykVqu+uNGIW2RAlUx3JkWyM+nrlKFXg+1MANxZZfv+bZeX9lImYfH8Et4sikoAluChNcZmyNETGn\n9Yjlx816f5iiu3AhLEUx1ZYSEphXrIDw1qrlGtfjkCHIm1Wbc+dQR1kkkgU3NhaN6F2RD12vHvP6\n9eoeU69HClSJEsiJPnBA3DbGgwfqfG/cVGx3Fe7HHjoDEzFv3qzc1JRGE9wUKLixsWgwQ8RcNN0T\n1rf96sMS3StXUGFL6k0jIQE3niJFmGvXhttADfR6lJy8fl2d45mzZQvyG0UiWXCZERDkipzoFSuY\nmzZV51h6PfPatahnLkVozdm8GU0OlOrb7KZi+6psLU7nFYdStuIKobkdmuCmQMFlRoEho+gOLLAF\n7tUPQXTfvsXNbfly58dKSEDf1sKFEcF79KjzY9pi3z7mChWUPYY1Zs0S3yKOnRTczz93TR/iyEgU\nFXnxQrlj6PXo9PTxx6jutX+/PIF5ffsyf/ml/EF+biq2ceUrca18qCbl64vA7eSMPcH1UDUHSUM2\nGjYk2ruXKFUqopkPW9Oia9WIOnVCnp8tjHm68+cTTZ+u3ATN83RPn5Zv3B9+QN5t167Oj+XlRfTt\nt0Q3bxJ17oyf69YlOn7c+bEtsWoVchFdwaNH+OzVJF8+HFdt0qfHdbd+vfxjCwLRhg1E5coRzZpF\nNHMm0YkTRPXry5P3PW0a0b17RAsWOD+WEXfKszUSGkpctx715dl05HERypmT6NIloly5lJme22BN\niVPyg1KAhWtk2TJYIF5eAh+s9GPKtnSNwSiRkc6PZYn4eOalS+HWq1uX+biVphFSUMPqskX79nB9\nisQpC3fQIPUCgZKybx/KWsqFwYBmIaVKoePP3r3KpZrduoUtk0uXnB/LTS1b/vRTnl5rB2JR0iK7\nLyWQIl3KRNSWiIYT0UIiOkBEbUW+PsUILjOajxAxZ84s8K0aPVKm6Mp5E7JHfDwKPBQsiJvIiRPO\nj6nmvqIlqlSR1CvZKcGdMYO5f3+JL3YSufbLDQYU1i9dGi7yPXvUyeletcr5xaUbi+3ONstYp0OK\n44YNyk1PbVKc4P4ntp+Z/T8zEd0jol4ixkhRgqvXM7dogU+zWFEDh9Ztm7JENyYG/WDnzpV/XraI\nj2devBjCW7++c8LrishZc/LkYX74UPTLnBLcTZuYW7WS+GIZcCYi3GBAfneZMhBaf3/1i6d8+y1z\nly7SXuvGYnvl2+mcPj3EdsIE5abnClKi4A638Lte8I5/mILLjIVw+fL4ROvU0nN8g6YpR3T79VMm\nkMRR4uLQMKJAAeYGDZhPnhT3elfnhsbHo2mBhO48Tgnu6dOuCxJjZr58WXzOs7nQVqrEvHu36647\nY4DgihXiXufGYvuiz3guUEB419/WnQrAyUGKEtz/rNnzRJQ5ye8LExETUWEHx0lxgssMAyZHDnyq\nvXsmsNCwUfIX3S1bYGEqlSohhrg45P/mz48+ro5G4Lq6+tGDB+jBKgGnBPf5c3zWrsTRql4GAyzy\nsmWx97trl3uoweXL2Eq5edOx57ux2MYMGslVq0JsK1d23fpTSVKU4DLEMszcpcya4Cbi1Cl0RSNi\nnvl7PHOjZCy6ahUDEIu58DZqZFt43aG+79GjyBGVgFOCazDgYnTlnfX335m7d7f+d4MB+a/lysEa\n37nTPYTWnAULMD9759GNxVYYOow7dRL+ayaPtVhKJMUJrsU3AZdymIjnHylevDhXqFDB6mPhwoVO\nn3xXsW4dPlkPD2b/bXHJU3SN5e5++03ZeThDXBxuhvny4Rxbei/u0MFm9Wrmr76S9FKnBJcZOc63\nbzsxgJMYOzNFRSX+vcEA70n58u4rtEYEgbldO9tlTN1YbHnYMJ48CWLr7Q2jPaXyoQjueUt7uzae\nn2ItXCPjxvG7kPvdW2OTn+j++KP6Bd2lEhvLPH8+hLdxY+xdGhk8mHnUKNfNjZn5l18Qyi4BpwW3\nVi3UE3Yl9etjFcoM8dq6FUF4n33GvGOH+wqtOeHhSFfbtOn9v7m52I4eDbHV6XC6UzIpXnD/s24P\niHxNihdcQUCTEiJmT0/mC/8mI9Hdu9d1LcucITaWed487Jc2aYLgqpw5lb0ROsL33zP/+aeklzot\nuN98g2permTVKiyEtm2D0H76KfP27clDaM05ffr9VpRuLrYLFwrvrqEff1Ruiu6C2wruf/uujj4y\n2xjjvIRjp3jBZYZeZciATzlvXuY7gclAdI1NuV3Z0cdZYmORwuTtDb/++PFoDeiqvcxmzSA2EnBa\ncH/6yXW5H6GhENZ+/fAmihbFeUhuQmvO9OlIU4qLc3ux3b9PeBdPUqKEa/pYqI09wfVyvCaVfOh0\nusJENFXES84S0W8Wfj+ViOrKMqkUSLZsqKzXvDmqFdZulIYO791GRYe2QhnINWtQ3tAaxjKQtWvj\n/0OGKDNRYxnIZs2IsmQh6t2bqFYtZY6lBmnSEPXpQ7R/P1FCAlF0NNHIkUSBgUSffkrk54dH1aoo\nQ6g0jx4R5c+v/HEskT8/0dmz6hwrJITo6FE8AgJQIrFKFZzr8uVxzbdsqc5clGLQIKJDh4iqVSN6\n9sztyjVSvXpE9erRgXpTqUVLHcXFEfXqRTR7NpGnpzLTTFZYU2J3fxCqTDkUlWzhtR+EhWskMtLk\nXnZrS9c4ya5dme/eVfZYShMR8X4px8hIlBwcNQrv1dsb+RHDhyPfMzxcmblkycIcEiLppU5buP7+\nyF1WgmfPUEzk++9RcjFjRriOf/kF7vy4ONNz9+93bU6wXJw8iT67RMxTpyp3HCct27RpMcXevZNH\nGIZcuK1L2ZkHYd+2cJLf1XNUgD80wWVOBqIbEIAk4qtXEfHl68vcrRsamSdHli+HK9cW0dFwNY8b\nhzaB3t4I5Bk0CK7P16+dn0dkJNpKSXSjOi24gYEo3iAHDx9iP7ZnT+ZixbCQaNEC1+TZs7avY70e\n7tdr1+SZi9r8+y9yvwsUQBGW/fux9aJEp3ZNbCWT4gSXUNqxFxF9ZvaoR0QLRYzxwQkusxuLbkgI\nJuTvb/pdaCjz2LEQ3u7dk5/w1q0rvkhsbCzqHU+ejMjaDBlQiKFfP1Q/ktL44Pp1p5qMOi24b95g\nISFW8AUBn/myZfB4FCyIAhBt2qDV4KVL4u/mQ4cyjxgh7jWu5t9/8R3Nnx+53+ZW+8SJiAKXc3NU\nE1unSFGCS6g0xVYe90SM80EKLrMbiq4goKj/0KGW//76NfOYMcw+PqjWZB6h6a48fixPKcf4eASS\nTZ2KqOdMmdB/tXdvdP5xxLrZuxc3T4k4LbjMmLc9a10QUE1p4ULc8PPkgQX31VeI/L52zflgp8uX\nkbqVHJTg1CmT0C5YkFhojej16OM8frw8x9TE1mlSlODK9fiQBZfZzUTXPOrSFq9fM48eDeHt2ZM5\nKMj5YyvF1KmYo9zo9cznz6MLT8uWOBdFi8IDsGIFKnMlZfFiuOYlIovglinzfpcngwHbB3PmoKhD\njhwQw86dMefbt5WJJi5fHm58d+X0aexD58uH3O7YWNvPlyuqXxNbWdAEVxNci7iF6J45835eoT1e\nv0aqiY8P83ffuZ/wCgJauQUEKH8sg4H5yhXm2bOZ27Zlzp4de3xduqC94J07WKSMGyf5ELIIbpMm\nKDZx4QLzH3+gg5CvL6pQdeuG/W61Psdp05xagCjGmTM4T3nzwqK3J7Tm7NnjXN66JrayoQmuJrhW\nMRfdPHmYTx1VUXSNlXP+/lv8a5mZX70yCW+vXpatO1dw4QJEzxV3HkFATuaCBWjFkjs3yvtkz45I\n3qlTsa985gxuzg5YkKIE12CAO/3YMQQ3TZwI6ztNGmYvLyRj9urFvGYNnucKnj2zXOrRVZw5gy2V\nvHmRuy1GaM2RWpnNCbFdt1YT26TYE1wdQ4A+KHQ63RE/Pz+/I0eOuHoqLuftW6JGjYhOnECe3LaN\n8dRscUuijBnt5+kSET1+jDzd7793PE+Xmeirr4iyZiWaN8+5N/D6NdGMGUQLFhC1bUs0ahRRgQLO\njekMgwcTpUtHNHmy6+ZghJmoTBnkRhYrRvTgAVFQkOnf+HiiggXxKFQo8b8FCxJlyUI6D927oYiZ\n6MWLxGM8eGD6+fFj5FEnHW/rVqJMmYjWrVP/HFiiYUOib78l6tDBdXM4d45owgSiS5eQo92jB/K3\npZKQgHzjNm2Ihg517DVO5NlOSDeVxk/AtdG7N77GHh7Sp59SqFWrFgUEBAQwcy2LT7CmxCn5QZqF\nm4jgYFNFqo8+Yt65WeGGB8buJzExzk3cnJAQNBv38cFyW0KzdadJSMB+mqOt1NSgaFHrlYjCwxFI\ntG0b88yZzAMGYG+4fHnktGbMaLJwS5RAYe5s2dAntn175A/Pnw+X5o0b1i2klSthcbsLq1fDGnQF\n584xN28Ol9KcOfJ+B8R013Ki68/UX03lGkuU0CxbczSXsia4DhESgvoExiLj03+NV6af7pUrSO9Q\nqhxdSAhSP3x8mP/3P8xLLfbsQQCYuyAIcOe+fSvttaGhJsENDJQ2DjNaE1arJu21SvD2LdzKwcHq\nHfP8eeQM58mDPXc5hdaczZvt94+WKLZxg0dwt29NYtujx4dRrlEM9gRXcwJoEBG8u3v3Ek2ahK/T\nkBGpqFfunRQfHo2SeHq97QGMZSDnzyeaPt3yc6KiiNq3J5o2TblydFmzEv3yC9GtW3BjfvIJyiw+\nfqzM8cxZtYrom2+UP46jhISgdKS3t/jX6nRwDxspXVraOEQo76jG+XcUb2+iFi3UcXFfvEjUqhXq\nq9arR3T3LlG/fkRp0ypzvDZtUCq1Z8//9gGSINGN/OqLFlTv7M/013IdffQR0ebNREuWaOUaRWNN\niVPygzQL1yYbNvC7YIhaNfX8qk47eSzdbt0QQasmL1/C9ZklC3OfPsoF60REwA0rsYSiIpw9i+44\nTiBLlHJcHHOqVO5lDh04gOAfpbh4Ee753LlRqEMpi9YSMTH43OfNS/x7iZbttW6/c+HCsGxz54ax\nrmEZzcLVEE379qj/nisX0ZGjnlTl4Xq6+Syjc5bu6tVEJ08SzZ2r7OSTki0b0dSpsHjTp0cR+379\niJ48kfc4mzej4ULWrPKO6wyPH7uuaYE5qVPjvDx/7uqZmKhdG1betWvyjnvpElHr1kRNmuAYd+8S\n9e+vnEVribRpiTZsIBo7lujyZfxOomW7r0gfqrp5CN2/r6MKFdCH4rPPlH8LKRVNcDUsUqkS0Zkz\naG5z954HVbm6iP65X1ia6N6+jS4nGzao0x3HEkbhvXEDUcTlyxP98APR06fyjO9u7mQidAnKl8/V\nswD58mE+7oKnJ67lVavkGe/yZbhzmzRBtPC9e0QDBtgXNqUoXpzojz+wen7zRpLYzvEZS0229KCI\nCB21bYtFeO7c6kw/paIJroZV8uYlOnYMC/Y3b3TU6OLPND+whjjRnTMHqj1mDETO1WTPTvTbbxDe\ntGmJypWDBeKM8D55AsumWTP55ikH7mLhErnfPi4RFkhr1hAJgvQxrlwh+vJLosaNiWrWhEU7cKDr\nhNaczp0Rw5AvnyixTajbiPryHPrhYCsSBB2NHo21crp06kw7JaMJroZNvL2JNm1CqqDBoKM+1/tR\n/1MdSd/hG8dEt3Rp5Hv++SfR8uX2X6MW2bMT/f470fXrcHmWLQvhffZM/Fhr1uCmq6bb0BFc2Qc3\nKfnzu5eFS4Qc5axZiaTk41+5grzvhg2Jqlc3Ca27qFJEBNGUKUQHDiBYsUULh8Q2vFYrahK2muZd\n+oLSpMFO0KRJWo6tXGinUcMuHh5EP/9MtGIFtGn2o5ZUeNcsetiyv20B3boVe2QhIQhpXLEC0ckr\nVriP8ObIgajpGzeIUqXCTXjAAMf3G5mJVq50P3cyESxKd3Ipu5uFS4TPbeVKx59/9SpRu3YQ2i++\ngOt40CD3EdrISHxZixbFNX3yJLwvEycijsEaoaF0sPJIKnx7L/3zsDhlzw4HVadO6k39g8BaNFVK\nfpAWpSyZY8eQ2knEnM4jhg/XGm85etlaEv7hw8w1a6Igw4oVjkU+q8nz5+hHmyULCkE8e2b7+efP\no0SlO2b/587tdB6yLFHKzMgPbdlShoFk5vlzx0o9Xr1qarIwbZr0nGSliIhg/vlnfOc6dnw/z91Y\nbMZCdLLw6jUvzDeBdWRgIuZcudynUmpyQ4tS1pCV6tWJ/P1R+TFaSEt1joyh4WX8KS7KzGJNSCD6\n+muiYcOIKldOPECtWkQBAUSLFsHqLVUKgSvuYvHmzIlSkdevw7QvUwYWjDWLd9Uq7JW5m88tPh6e\nhVy5XD0T4G5BU0Zy5iSqUoVo2zbLf792DWVI69Uj+vxzWLRDhkjPSZabyEiiX38lKlIE1ndAALY4\nkua59+pFVKLEe+VXQ26HUZsil6j347HE5EF58hCdOuXa6qgpGmtKnJIfpFm4ThMfjyY0np7Izyuf\nOYgDL/1nrTpaSF0QmA8eRAeFYsVQAtDdLN5nz5gHDoTFO2gQLCIjCQmweG7fdt38rBEUhBZvTiKb\nhRscjApj7siaNShlak5gIHLPs2dn/u0397NoIyOZf/0V8/v6a/QLtoexYcimTczM7L8hgnN4hTAR\nc8aMAq9erUxHxA8JrbSjJriKcvIkc5HCcEWl8YjjWb0D2ZA7r7hWYebCW7w4Os24U5EEZgjvgAEQ\n3sGDISD+/syVK7t6ZpYJCJClnKJsgmswYC/CXbr0mBMVBbfy8+cQrq++MgltZKSrZ5eYyEh0fcqe\nHfMMDBT3+jNnOCprfu7b/uW7z7ZmTUFzIcuE5lLWUJSqVYkuXvKgHt/qKU5ITQMWlqbGvmfoWUI2\nxwfR6Yjq1EGi37x56PxTujRcYwaDcpMXQ65cRDNnEgUGwv1dqhQiSsqUgQvd3XCngCkiuNzz5pW/\n4IgcMMMlW7EiilV89hlcx8OGuS5vPClRUYiqL1KE6Px5okOHiNavx/dEBBc8K1FFwymauzEbpfLQ\n09RfmQ4d0mkuZJXQBFfDaTJkIFrylxdtmf+CfL3Caf/VXFS28FvasuCluIF0OqK6dZH8O2cOxLd0\naaK1a91HeHPnJpo1C9Gf4eFYJPj6EjVogDSM48eJ4uJcPUv3Sgky4i6pQRERRHv2EI0YgRVjjhzY\now8NhdAOH+5eQjttGoT27FmigweRFCtSaA0Goqn9HlOVigl0IywXfZzuIZ0+KdDwH3VaPWQV0QRX\nQzZa/y8HXX2UmRrWiafQuPT05ffZqVuJkxQRKPImq9MhSOX4caLZsyG+Zcqg2Ly7CO/Jk8htvH0b\n/WD79cMNe9Ag5HbWrk00fjxyK2Ji1J+fu1m4RK5LDQoNRdGHIUNgxebJA2sxbVqk0ISEYF6+vvgs\n3QFzoT19Gvm0GzfieyCSBzuuUO3sgTRibj5K4FTU73sDnX9VgD6tnFqBiWvYQhNcDVnJlYtozz+p\nafZsorRpmZbf/oI+KS/QvqaziB4+FDeYTkdUvz7RiROwKv/8EwUq1q93vfCal3L08YH4Tp8OK+Tp\nU1hJsbFEo0ahrGT16kQ//US0fz/R27fKz+9DtnBfvkRt6/79Ud2sYEEs2nx8sC3w6hVcsuPHY2H0\n0UdwectZ6lEq0dG4jsyF9u+/cd2LhM+eo0XlZlP5VgXpWGgZypmTyd+faPY8T7cohPVBYm1zNyU/\nSAuaUoVr19C0BJtkAlf1PM1h3w6U3hxeEJj37kWgUqlSzOvXuyb/9eFD9NuNjXXs+W/fojvN6NHM\nNWowe3ujb+6wYcy7diF6VG7KlkXHGieRLWiKmXnRIubu3WUazIxnz5jXrUP/448/Zs6UiblJEwQX\nnTqFkHpHCAxE7rIrAvaiopinT2fOmZP5yy+ZL1+WPta5c3zVrw/n83zy7vNr1UpcHKOGNLQoZU1w\nXUpcHHPDhqYbd07vN7zcuw8ben8vvSiDIKDZu1F4N2xQV3h//pm5d2/pr4+JQVP2CROY69RhTp8e\nreIGDmTeupX51Svn55g5syzjyCq4e/Yw16/v/DgPHyKFrEcPFFDx8UFRjRkzUIjEGcH87DMsjtQi\nKgrzzpmTuU0b5kuXpI91/jxHN23LEzL8xmm94t99diNGaOk+aqEJria4bsHChcyVKplu4JVzPeQz\nGesyf++k8Pr7w1osXVod4RUEWFHHj8s3Zlwc84kTEPKGDZkzZGAuU4a5b1/mjRuRgiSGiAjmdOlk\nucvKKrjXrjGXKCHuNYLAfPcu89Kl6KVcoABSYtq2ZZ49m/nKFXk/8z/+UKdnc3Q0jpUrF3Pr1s55\nIy5cYKFFS96UpScX8Hnz7jNr2JD56FH5pqxhH01wNcF1GwwGGCY5c5pu5N3LnuHgTMWdaw5vFN5K\nlSC8GzcqJ7znzjEXLqysyZCQwHzmDPPvvzM3awZrtWRJ5l69UKThyRPbr5cibFaQVXAdWQgIAsoS\nLljA3KEDc548cPN26IDf3bih7LkPDsb5VqrQRXQ088yZENpWrZgvXJA+1sWLzK1acWBWP65T7NG7\nz6pcOThQNNRHE1xNcN2OiAgUo0qVCldgxgwGnl5rB8dnzgarzhnh3b2buWJFWIh//y2/8A4YwDx2\nrLxj2kOvx8115kxYQ76+zEWKMHfrxrx8OapKmSOX65ZlFlzm913dBgOs1NmzYbVmzw4rtksXWLV3\n76rvD23cmHn1annHjI5mnjULi4eWLWUR2tAcJbl/zQvvqr35+DDPm+d+xdo+JDTB1QTXbbl9m7lp\nU9NNvWSxBN7XdhGqOfXrZ9+Ss4YgIBipYkUED23aJI/wxsdDEFxdytFgQIDP3LkoP5gjB3P+/Mzf\nfMO8eDEWBN9+K8uhZBfcMmWwSJgxAxaery/2YXv0gPvDHcXtXqcAABYzSURBVEoerV3L3KCBPGPF\nxDD/+SeEtkUL7DFL5dIl5tatWZ8jNy9qf4CzZoXQenjAQSTH1r+Gc2iCqwmu27NrF0opG2/uLRvF\n8L0eUyC8P/zA/PSptIEFgXnnTuYKFeBn27zZOeHdtYu5alXpr1cKQWC+dQtRwJ06MXt6Mut0ELfm\nzXEOp09n3rIFllVYmMNDixZcQYBb9t9/ETn8yy9whTdoYPqQM2ZERPG6ddI/WyUxlnq01ynKFuZC\n27w5tiKkcvkyAqpy5uTjP6znT8sbzMoyOhdnpSEv9gRXxxCgDwqdTnfEz8/P74iUxtMaihAfj1Tb\niRORppomDVHz+jE0N+8vlH3DHOS8/vgjKj2JhZlo1y7kXRoMROPGEbVsKb7Dz9dfE/n5EX3/vfg5\nqEmXLkSffIJymQ8e4BEUZPo3KIjI0xP5qYUKJf7X+HOGDESEVGginMJ3P7x+nXjMpD97e1ses2BB\noqlTUXyiXz91zoVUundHNack3XXsEhuLLli//ooSkePGEVWoIG0OV68STZhAdOIEXezwGw272JEO\nHkFZqLx5ka7brp3pM9JwPbVq1aKAgIAAZq5l8QnWlDglP0izcN2WZ8+wfWdcwXt4ME8cFsHhfUY6\n3qPWGoLAvH07UnA++QQpOI7uD4aHI78zOfjtate2ndoiCMyvX8Pq2rQJwVl9+yJ3tVQpBDb5+DBX\nqGCycJs1g8WcPj2sv08/xX7y4MGw5HbsQM/YiAjbc/v5Z+bhw2V9u4pw6BBz+fKOPz82lnnOHAR5\nNWvGfPas9GNfuYL97Bw5+OFPC7nTV6YUnzRpmMeMcb/mRRpAcylrgpssWbIE9SGMN5pMmZjHDIrk\nV71HySO827ZBdD/5BD/bE96lS7HnmBwoUoT55k3prxcE5hcvmE+fNgnu1q3wXYpwR1tk1Sq0k3N3\nDAa0N7RXgCI2FnvpefMiIOHMGenHNGtyf+fHxdyja/y7wEJjY/iTJ6UPr6E8muBqgpts0esRdFyr\nlumm4+3NPPR/kfz8uzEQ3oEDE/eoFYMgQEjKl4fFZkt4/fywB+ruyNwGT/agqYAA5i++kHFABRk5\nknnoUMt/i41FSHDevPAMnD4t/ThmvXcDBy/lTl8lsIcHv/PwdOjgnI5rqIcmuJrgpgiOHUOPcHPX\nWt9v3/LDbuMsN4cXg8GQWHi3b08svA8eIJrW0VKOriQ4GHOVCdkF9/59WI7JgevX3y/1GBvLPH8+\n3kPjxigdKRWz3rvn+y/nNi0S3p1vLy9UwXR1QLyGOLR+uBopgurV0VHt3Dmi1q3RAW/ucm8qsmo8\n9Wz0mO6+zoIetUOGEL14IW5wDw+iVq2ILlwgGjMGj4oViXbuxP1vzRpEp6RJo8ybkxN3bFpgTp48\nRMHB6Cns7nz8MbpxHDqEqL6FC4mKFyfavh0NBfz9iSpXFj/u9etEHToQ1a5NJ32aUZNPnlKFP7vS\nlh1elCYNUd++RHfvEi1dSlSsmPxvS8N1aIKrkayoUIFoyxYEcHbsSCQIREvXeVOJ1WOok98Tuhbs\nixvl0KHShLd1a6KLF9HZ56efILy//QZBTg64Y1s+c1KnRvvC589dPRPHaNyYqHdvKN/WrehFu2eP\nNKG9cYOoY0fiWrXpYPqWVKfkU6o2vzPt2e9F3t5YKwYFobGR1hA+ZaIJrkaypEwZGJ63bhH16AGt\nXLstHZVZO4qKZXpByy5+QlzyY6Jhw9CuTQweHkRt2hBdukRUty7RmzdEX35JVKUKUpP8/fE7d8Td\nLVwi92lEb4nnzyGqffogLWjGDKjgsmVEe/fiGhDLzZtEHTtSQo06NDq4LxVK+5zqLfmaDh/1okyZ\niEaPRjbVtGkwqDVSLprgaiRrihZF2uO9e0jtTJWK6O6DVNTjUGcqne0F/fFvFXpV/Av0p5UivLGx\nyKUMCSH65Rf0Tp02Da7RChWIBg+GizE0VJk3KJbHj5OH4LqiEb0lHj8mWr2a6Lvv4C4uXZpo7Vr0\no12xAgurJk2kWeS3bhF16kT3qnWhUc/6UR7dU5pyuBo9fOxBPj5EU6agRfSkSTD6NVI+Xq6egIaG\nHOTPTzR7Nmo+9OsH792NO6lo8J0vaUTqNtR663n6bn4vqv19SfIYNgRN4e2RkIBm9//+C6GtXRsP\nImwinz1LFBBANHcuCnMULIjCGH5+RDVrEmXPruh7tsijR0SVKql/XDHky+caC5cZ1mpAgOnx9i0+\nKz8/XDhly75fEKVLF1i4nTs7dpxbtyhu/C+0dXdqWpJ9Mh0MLUQUgD9lzkxUowa2gzVr9sNDE1yN\nFEWlSkSnT0Mrd+0iWryYaO9eHW24W5E20DYqvDCEesxZSN9201HuCb1tmxb79mHvrkiR9/+WJg0i\nuapXx15vQgKCrgICiP76i6hnT1TFMt7M/fykVckSS3JxKd+5o/xxmIlu3zaJ69GjCNYyfh7Dh2O/\n316pphYtUF3s2TPbn+Ht23RtyDJa8k9BWqmbR6Ex6YgiidKmJWrfHpdE9epaZagPGa20o0aK59Ej\naODSpSZPpqfOQE299lPPFi+p8Zym5JXTgvC2b4/yiP/7n/iDGgxEly+bbvbHjhH5+CQWYCUiY3Ln\nxopDpsCp90o7ysGWLXDXbt8u46CECLrr1xMLbOrUpvPt54c9CCmK16OHKRgvCVGX7tDGPkdo8dny\n9K/+83e//+QTeKo7doRlq5HysVfaURNcjQ8Gg4HowAFYvTt2mDJTcuueUbeqN6nHn59QoQo++GV4\nOAQxKAhC6SyCQHTtWmIx+Ogjk/vZzw+WtDPmT3w8Ufr0RNHRRF7yOK8UEdxz56BEFy86N47BQHTl\niul8Hj1KlClTYoEtWFCWKdORI0QDBmARRTgf57c+oiUj79LaO5UoklF7OkMGCGzPntji16zZDwtN\ncC2gCa7GixcwspYsSezdzJ7uLbX92pMmlt1Evke3whpTAmYE1ZjvJxIlFuCSJcXdsYOC8DoZ90cV\nEdwXLxCc9OqVuNfp9Sa3/dGjRMePE+XIkXjfPG9eGSdqhiAQFSpEN2fto9Hz89ChIzoKi0//7s9V\nq2IN0a4d1jwaHyaa4FpAE1wNI8y4dy9ZQrR+HZPeAIXxJD3VKPiEWvfPRy3beCqfF8lMdP9+YgGO\niYGIGAW4TBnbHY4CArCffPy4bNNSRHAFgShdOkR2p0tn/Xnx8abAtKNHiU6ehNfBXGBz5JBxYu/D\nDCN628Z42jbnCV2KKPzub5kyCtStuwf17In1g4aGJrgW0ARXwxI3bxKNHUt091osXb3uSXpK9e5v\nn+YKplZN4qnV/3JS2Qqp1XEVPnwIoTEKcGgoQlyNYvPJJ2izZ2T1aqLdu4nWrZNtCooILhH2Unfv\nJipRwvS72FiiU6dM7/nMGQStGQW2enVV8mf0eqIT+6No2+IQ2nY4Iz14Y9pSSO8RRcXLpaEvqnvR\n+PFEvr6KT0cjGWFPcLUoZQ2N/yhZkmjjRiKitBQejvoW2zbG0Z59HnTxeU66uJRo3FKiwmmfUatP\nH1Krr9PSF91Lkmf6j5SZUIECSDf65hv8/9kzkxgtXoz/V6tmEuCgIPePUDaSPz9c6o8emd7ThQsw\nFf38kN9crZpq0UYxz8LowLw7tG0b0c5bxeiVPgsReRMRUfbM8dSytQe1budFdep4J4sKnxruiWbh\namjYITYW5XS3bSPavk2glyEmt25WekUtcpyiVjXDqF6X3PRRrcrqbeK9fGkKFgoIgO8zQwaUI0za\n/L1AAeSniMRpCzciwnKT+p078fcqVUwLhi++eNf4XnFCQijU/xTtWvOGtp3JRfveVKHo/wSWiKho\nEYFat/GgVq1QxdHckaChYQ3NpWwBTXA1pGIwwOu5bRtK6967Z/pbGl0cZaMQapbtNPVt+pBKtSlJ\nHjWqIXJWDapVg8u5XLn/t3d3QVFedxzHv4cVhPgSIFbBwK5BjU0MNEZM0mgYO8HxqnnVmKtmpjPF\nS2d60UxvetvRi1xk2jSaTnqRi06ibeK0aZNCMhOMqamAFBPU0FAWUStEgoAvoMvpxXkWFlxgV9dn\nXfb3mdkJPM/uegL78HvOc87zPzeGXHe3m20dDeKpgVxeHndxhlkD99Kl+IEa/frq1Rv/rRUrXF3O\nsjJ47bVU/gSmd+4co598RvOfuthTv45Dl9YxQCERO5GkGza4ktnPPpvY7bkiU+mSskgKBQIu1zZu\ndGsatLe78H3/fWhqmk8PZbzRW8Ybf4Dity/ypG2kpqTDDbluW8W8zZtSc5tRPEND8NJLbmx3qkjE\nlSeMDcMjR9x4b1cXnDnjqm9NDUd+6l7/4YcTr4sN1qGhiedHX/PooxNfL1kSP7n6+92/f7ucPs3l\nf3zGF38+Q+ORPBoHf8A/x57mytjESUUgALU/cgH7zDO3b4KzSJQCV+QmGeOGHNeudZODDx2C1193\nGdTaCmfO3M1BfszBM8AfYeG7l3mCz6lZcoKajRE2vBAkv3ZT6kpAzlRlKhBwiVJW5iYfTXX9ugvd\n2B5qYyPjgfvqqxMh+txzE8G8dOnMM6enEwxGB8xvnVey8eLfP+fwe700Hi3g0OX1HI1s45rNnfTU\nBx6Y+N/YtcuVTxbxiy4pi9wG1rrcig6xNja6NU5jzc8Z5TFzlJrCNmoeH+WHLyxn4daNN1cCcnDQ\nFecdHk7ptdDbNku5vd2tyHTyZPKv9Uo29v31Cw4dvEDjsUU0Xn2Mf0fWMmYnwt8Y19mP3lm1KYXn\nNiLx6JKySBoY43pR990HL7/stp0963rB0QD+8ss8GtlI44WN8AEE/hbhXs6yNK+NFx46xdZnCnjg\nxUry1yRwE3B0laBMGXiMLmBg7extHhtj8F8n+XL/CQ78JY+POlczyGJ6Ij+Z9LR58+CxDRMB+8QT\nKqkodxYFrohPli+HHTvcA+DCBTh8eCKAW1oCdEfK6R4pp6m5il82Q+BX17k/t4Oqey9QtW4elVuX\nU7W1lGDITM6p7u47e+H5qRYtcpO0+vsn3cx6/Tp0nIxw/INu2j7u5fhxQ1vvMrrGHgQenPQWBQWu\nwtOTT7qAffzxmetoiKRbRgauMaYW2AJcAFYCzdbafeltlUhy7rnHLUTz9NPu+6EhN2m3vt7t++or\n6OgIcOLaak50readLuA999zFuZepDF6ksjqfqppCqrpGeahkDT7Nh06J86UP0/budxwfLqTt037a\njo3R/r8iRsbygPu8h5OX58bKy8tdKD//vLs9OS8vbc0XSVrGjeF6YYu1tiFmWzPwjrV2T4LvoTFc\nyQhXrrjhzrY2OH4c2tosbcci9PXHP1cOLRlm7epRhu0C1j6cy/YXc1ixws2Vys2N+5IZ3eoY7pUr\nrvPd3g4H3xsj3DFCYPQqbR359A3FLxgSKotQtS5AZaW7w6my0k1uStF6DCK3zVwcw90J7J2yrcHb\nnlDgimSKggK36sz69dEtBpjH+fMxIfz5MG2f9NF+8V7C3y4k7K0J0HgEfveG+zrHjLF88TChkhFC\nKwyhNQUEv3+X+zrk6mIsWBCnATOw1i2qFA57j/+OEW6/RPjrEbpPQ/h8Pr2XYouA5AAF3gMWBS5R\nVdpHZe0yqh4toKrKlYu++25VmZC5KRMDF9zl5IYp2wbS0ZC5at++fdTV1aW7GTKNZctgyxb34OcL\ngYVu/LPDFZ16+20YHIiwOG+E8GnD2f58ei4upuciHD4FfHTje95z12VCy0YIhiC0Jp/Q/fm4gIe3\n3oK+3jHCJ68Q/nqU8GlDuLeA4dHYYhk5wCLv4eQGIpQvHSEYNPR8O5/yYA67drnZw8HgAoxJMuUl\n7fS34eZl3CXleIwx3wB7dUk5daqrq2lqakp3MyRFrl2Dnp6Y3mgYwh2jhDtG6T4N3b35jFxP/vx7\n4fzRmF5zPqGKeQSDjPeaS0pUFnGu0d+G6c3FS8qTGGPqgJZEwzbq3LlzVFdXT7u/rq5OZ3EyZ+Tm\nTtymNCHPe7gV83p7pwTy1yP89veuB1uzbpDqTQWEVuUSCjEeqkVFeRijmUsiicjYwDXGbMNdWsZa\nuz3Z15eWlqIeroiTk+N6oyUlrli/M5/fvOl6NJ+qRyNyyzI2cK21B4ADxphCb5byz6y1Lelul4iI\nSDxpC1xjTEUST++31sadFGWtHTDG7AU+BopS0jgREZEUS0vgemG7O4mXHGXmW34agEJjTG3s/bki\nIiJ3irQErrW2E0h63NUL6mbgqWkuHydaOXVVa2srmzdvTrYJWePUqVP6+Qigz4JMps/D9FpbWwFW\nTbc/o24LMsY8AryJC9yBmO21QD2w0gvz2d7nGPA94D+zPTeLlQLn0t0IuSPosyCx9HmY3iqgz1q7\nLt7OjJo0Za1tMca8E2fXK8CeRMLWe5+4PwwREZHbJaN6uFHevbcr0eIFIiKSITIycEVERDJNTrob\nICIikg0UuCIiIj5Q4IqIiPhAgSsiIuIDBa6IiIgPMuo+XBHxj1dophroBCqATpVOzU7e6mwVuNsw\nK3Drjx9Ib6syjwJXEqIDLrtE651ba7fEbNtvjOlMtMCMzA3esd8ZPd6NMYVAszGmWPUPkqPAlVnp\ngMtKO4G9U7btxS06knQddMloFbEn194Kbbtxnwcd/0nQGK4koiJ2sQivjnX0gJO5aRswdYGQJm+7\nZAnv5HqH999YDd7+ZJZZzXoKXJmRDrjs4/2uK4D+2O3RBUP0O88e3u+8wnvILVLgyox0wGWlYpgI\n2Dj0Wcgi1tqiOMuh1gIDGs9PjsZwZVbW2qI4m3XAzV2Jrist2Wsn8Ot0NyLTqIcrN0sHnEgW8lZr\n67fW7kl3WzKNAleSpgMuO8QZt5cs543f74y9XUwSp0vKWSTJyS798cbwYg649alrmdxhosMExcD4\nZyAmgDWMkL12A0+luxGZSoGbJaKFDJJ4yVEgXg9WB9wc591n2cmNY7nFaNw+axlj9gKvzDCZTmah\nwM0S3h/JWypYoAMuqzTgyjrGzk59xNsuWcYbRtode7JljKnFFcTRCViCjLU23W2QDOAdcA064LKD\nd/l4/5TSjvW44QT9vrOIV2muGFf4JKoY2G6t3ZmeVmUmBa7MSgdcdvIWL9iBG16oAFq0eEF28U68\nvptmd6e1dqWf7cl0ClyZkQ44EZHUUOCKiIj4QPfhioiI+ECBKyIi4gMFroiIiA8UuCIiIj5Q4IqI\niPhAgSsiIuIDBa6IiIgPFLgiIiI+UOCKiIj4QIErIiLiAy3PJyI38NZPrsWtibvSWrvTGPML3IL0\nW6y1t7TUo0g2Ui1lEZnEW7DiRWvtPu/7em/XdlwI7weKtC6ySHJ0SVlEphoPW08xbmm+AWvtAVyP\nV2ErkiT1cEVkEmNMYWygGmMs7jKy1sIVuQUKXBGZljGmFqi31pp0t0Uk0+mSsojMZAvQku5GiMwF\nClwRmcSboRxVCzTF7Cv0er0ikiQFroiM88L0G2NMhTHmEW9z7ASpOo3litwcjeGKyDivd/sK0Oxt\nehfYHfu9ZiiL3BwFroiIiA90SVlERMQHClwREREfKHBFRER8oMAVERHxgQJXRETEBwpcERERHyhw\nRUREfKDAFRER8YECV0RExAcKXBERER/8H2mJKaLn1w4NAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -127,6 +154,18 @@ "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.5.2" } }, "nbformat": 4, diff --git a/main.py b/main.py deleted file mode 100644 index ec9af31..0000000 --- a/main.py +++ /dev/null @@ -1,9 +0,0 @@ -#! /usr/bin/env python3 - -from dg_maxwell import wave_equation -from dg_maxwell import lagrange - - -if __name__ == '__main__': - u_diff = wave_equation.time_evolution() - print(lagrange.L1_norm(u_diff)) diff --git a/post_processing.py b/post_processing.py index f341c30..238d62b 100644 --- a/post_processing.py +++ b/post_processing.py @@ -4,8 +4,6 @@ import os from matplotlib import pyplot as pl -import arrayfire as af -import numpy as np import h5py from dg_maxwell import params diff --git a/requirements.txt b/requirements.txt index f7b66f7..d68e316 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,7 @@ pytest +pytest-cov +coveralls +python-coveralls arrayfire numpy matplotlib