{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2bb083b7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "id": "458efc98", "metadata": {}, "outputs": [], "source": [ "import jax\n", "import jax.numpy as jnp\n", "import jax.lax as lax\n", "import jax_cosmo as jc" ] }, { "cell_type": "code", "execution_count": 3, "id": "da00e618", "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "import flowpm\n", "from flowpm.tfpower import linear_matter_power\n", "import flowpm.scipy.interpolate as interpolate" ] }, { "cell_type": "code", "execution_count": 4, "id": "b588c18c", "metadata": {}, "outputs": [], "source": [ "from jaxpm.kernels import *\n", "from jaxpm.painting import *\n", "from jaxpm.growth import *" ] }, { "cell_type": "code", "execution_count": 5, "id": "f0cba7a4", "metadata": {}, "outputs": [], "source": [ "# Below are a few parameters\n", "box_size = [100.,100., 100.] # Transverse comoving size of the simulation volume\n", "nc = [100, 100, 100] # Number of transverse voxels in the simulation volume\n", "batch_size = 1 # Number of simulations to run in parallel" ] }, { "cell_type": "code", "execution_count": 6, "id": "8dad416f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2022-02-14 00:21:13.509002: E tensorflow/stream_executor/cuda/cuda_blas.cc:232] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED\n", "2022-02-14 00:21:13.509025: E tensorflow/stream_executor/cuda/cuda_blas.cc:234] Failure to initialize cublas may be due to OOM (cublas needs some free memory when you initialize it, and your deep-learning framework may have preallocated more than its fair share), or may be because this binary was not built with support for the GPU in your machine.\n", "2022-02-14 00:21:13.509034: W tensorflow/stream_executor/stream.cc:1260] attempting to perform BLAS operation using StreamExecutor without BLAS support\n" ] }, { "ename": "InternalError", "evalue": "BlasScal failed : in.shape=[1,100,100,100] [Op:IFFT3D]", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mInternalError\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [6]\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 6\u001b[0m pk \u001b[38;5;241m=\u001b[39m linear_matter_power(cosmology, k)\n\u001b[1;32m 7\u001b[0m pk_fun \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m x: tf\u001b[38;5;241m.\u001b[39mcast(tf\u001b[38;5;241m.\u001b[39mreshape(interpolate\u001b[38;5;241m.\u001b[39minterp_tf(tf\u001b[38;5;241m.\u001b[39mreshape(tf\u001b[38;5;241m.\u001b[39mcast(x, tf\u001b[38;5;241m.\u001b[39mfloat32), [\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]), k, pk), x\u001b[38;5;241m.\u001b[39mshape), tf\u001b[38;5;241m.\u001b[39mcomplex64)\n\u001b[0;32m----> 8\u001b[0m initial_conditions \u001b[38;5;241m=\u001b[39m \u001b[43mflowpm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlinear_field\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnc\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mbox_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mpk_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[1;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbatch_size\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 13\u001b[0m initial_state \u001b[38;5;241m=\u001b[39m flowpm\u001b[38;5;241m.\u001b[39mlpt_init(cosmology, initial_conditions, \u001b[38;5;241m0.1\u001b[39m, order\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n", "File \u001b[0;32m~/repo/flowpm/flowpm/tfpm.py:62\u001b[0m, in \u001b[0;36mlinear_field\u001b[0;34m(nc, boxsize, pk, kvec, batch_size, seed, dtype, name)\u001b[0m\n\u001b[1;32m 59\u001b[0m whitec \u001b[38;5;241m=\u001b[39m white_noise(nc, batch_size\u001b[38;5;241m=\u001b[39mbatch_size, seed\u001b[38;5;241m=\u001b[39mseed, \u001b[38;5;28mtype\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcomplex\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 60\u001b[0m lineark \u001b[38;5;241m=\u001b[39m tf\u001b[38;5;241m.\u001b[39mmultiply(whitec, (pkmesh \u001b[38;5;241m/\u001b[39m\n\u001b[1;32m 61\u001b[0m (boxsize[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m*\u001b[39m boxsize[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m*\u001b[39m boxsize[\u001b[38;5;241m2\u001b[39m]))\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m0.5\u001b[39m)\n\u001b[0;32m---> 62\u001b[0m linear \u001b[38;5;241m=\u001b[39m \u001b[43mc2r3d\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlineark\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnorm\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mnc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mnc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 63\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m linear\n", "File \u001b[0;32m~/repo/flowpm/flowpm/utils.py:271\u001b[0m, in \u001b[0;36mc2r3d\u001b[0;34m(cfield, norm, dtype, name)\u001b[0m\n\u001b[1;32m 268\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 269\u001b[0m norm \u001b[38;5;241m=\u001b[39m tf\u001b[38;5;241m.\u001b[39mcast(norm, dtype)\n\u001b[1;32m 270\u001b[0m rfield \u001b[38;5;241m=\u001b[39m tf\u001b[38;5;241m.\u001b[39mmultiply(\n\u001b[0;32m--> 271\u001b[0m tf\u001b[38;5;241m.\u001b[39mcast(\u001b[43mtf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msignal\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mifft3d\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcfield\u001b[49m\u001b[43m)\u001b[49m, dtype), norm, name\u001b[38;5;241m=\u001b[39mname)\n\u001b[1;32m 272\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m rfield\n", "File \u001b[0;32m/usr/lib/python3.10/site-packages/tensorflow/python/ops/gen_spectral_ops.py:809\u001b[0m, in \u001b[0;36mifft3d\u001b[0;34m(input, name)\u001b[0m\n\u001b[1;32m 807\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _result\n\u001b[1;32m 808\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m _core\u001b[38;5;241m.\u001b[39m_NotOkStatusException \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m--> 809\u001b[0m \u001b[43m_ops\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mraise_from_not_ok_status\u001b[49m\u001b[43m(\u001b[49m\u001b[43me\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 810\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m _core\u001b[38;5;241m.\u001b[39m_FallbackException:\n\u001b[1;32m 811\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n", "File \u001b[0;32m/usr/lib/python3.10/site-packages/tensorflow/python/framework/ops.py:7186\u001b[0m, in \u001b[0;36mraise_from_not_ok_status\u001b[0;34m(e, name)\u001b[0m\n\u001b[1;32m 7184\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mraise_from_not_ok_status\u001b[39m(e, name):\n\u001b[1;32m 7185\u001b[0m e\u001b[38;5;241m.\u001b[39mmessage \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m (\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m name: \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m name \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 7186\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m core\u001b[38;5;241m.\u001b[39m_status_to_exception(e) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28mNone\u001b[39m\n", "\u001b[0;31mInternalError\u001b[0m: BlasScal failed : in.shape=[1,100,100,100] [Op:IFFT3D]" ] } ], "source": [ "# Instantiates a cosmology with desired parameters\n", "cosmology = flowpm.cosmology.Planck15()\n", "\n", "# Create some initial conditions\n", "k = tf.constant(np.logspace(-4, 1, 128), dtype=tf.float32)\n", "pk = linear_matter_power(cosmology, k)\n", "pk_fun = lambda x: tf.cast(tf.reshape(interpolate.interp_tf(tf.reshape(tf.cast(x, tf.float32), [-1]), k, pk), x.shape), tf.complex64)\n", "initial_conditions = flowpm.linear_field(nc,\n", " box_size, \n", " pk_fun, \n", " batch_size=batch_size)\n", "\n", "initial_state = flowpm.lpt_init(cosmology, initial_conditions, 0.1, order=1)" ] }, { "cell_type": "code", "execution_count": 7, "id": "5ad12a1e", "metadata": {}, "outputs": [], "source": [ "@tf.function\n", "def solve_tf(init_state):\n", " final_state = flowpm.nbody(cosmology, initial_state, linspace(0.1,1.,40), nc)\n", " return final_state" ] }, { "cell_type": "code", "execution_count": 8, "id": "7d4780a8", "metadata": {}, "outputs": [], "source": [ "final_state = solve_tf(initial_state)" ] }, { "cell_type": "code", "execution_count": 29, "id": "6a94dae9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.3 s ± 2.59 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], "source": [ "%timeit final_state = solve_tf(initial_state)" ] }, { "cell_type": "code", "execution_count": 9, "id": "e5148fed", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(flowpm.cic_paint(tf.zeros([1]+nc), final_state[0]).numpy()[0].sum(axis=0))" ] }, { "cell_type": "code", "execution_count": 7, "id": "cf61ff87", "metadata": {}, "outputs": [], "source": [ "mesh_shape = nc\n", "kvec = fftk(mesh_shape)" ] }, { "cell_type": "code", "execution_count": 26, "id": "bc83bc0c", "metadata": {}, "outputs": [], "source": [ "# We need the vel and forces from lpt\n", "def lpt1(delta_k, pos): \n", " pot_k = delta_k * laplace_kernel(kvec)\n", " return jnp.stack([cic_read(jnp.fft.irfftn(gradient_kernel(kvec, i)*pot_k), pos) for i in range(3)],axis=-1)\n", " \n", "def lpt(cosmo, linear, pos, a):\n", " delta_k = jnp.fft.rfftn(linear)\n", " a = jnp.atleast_1d(a)\n", " lpt_dx = lpt1(delta_k, pos)\n", " dx = growth_factor(cosmo, a) * lpt_dx\n", " p = a**2 * growth_rate(cosmo, a) * jnp.sqrt(jc.background.Esqr(cosmo, a)) * dx\n", " f = a**2 * jnp.sqrt(jc.background.Esqr(cosmo, a)) * dGfa(cosmo, a) / growth_factor(cosmo, a) * dx\n", " return lpt_dx, dx, p, f" ] }, { "cell_type": "code", "execution_count": 27, "id": "ab85a109", "metadata": {}, "outputs": [], "source": [ "pos0 = jnp.stack(jnp.meshgrid(jnp.arange(100), jnp.arange(100), jnp.arange(100)), axis=-1).reshape([-1,3])" ] }, { "cell_type": "code", "execution_count": 30, "id": "02141439", "metadata": {}, "outputs": [], "source": [ "lpt_dx, x, p,f = lpt(jc.Planck15(), initial_conditions[0].numpy(), pos0, 1.)" ] }, { "cell_type": "code", "execution_count": 31, "id": "4225880e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(cic_paint(jnp.zeros(mesh_shape), pos0+x).sum(axis=0)); colorbar()" ] }, { "cell_type": "code", "execution_count": 13, "id": "167d193f", "metadata": {}, "outputs": [], "source": [ "# Define the ODE\n", "def f(state, a, cosmo, lpt_dx):\n", " # Extracts positions and velocity at a given point in\n", " # the simulation\n", " res_pos, res_vel = state\n", " a = jnp.atleast_1d(a)\n", " pos = pos0 + growth_factor(cosmo, a) * lpt_dx + res_pos\n", " \n", " # Computes the potential given the current positions\n", " delta_k = jnp.fft.rfftn(cic_paint(jnp.zeros(mesh_shape), pos))\n", " pot_k = delta_k * laplace_kernel(kvec) * longrange_kernel(kvec,r_split=0)\n", " forces = jnp.stack([cic_read(jnp.fft.irfftn(gradient_kernel(kvec, i)*pot_k), pos) \n", " for i in range(3)],axis=-1)\n", " forces = forces * 1.5 * cosmo.Omega_m\n", " \n", " # Computes the update of position (drift)\n", " dpos = 1. / (a**3 * jnp.sqrt(jc.background.Esqr(cosmo, a))) * res_vel\n", " \n", " # Computes the update of velocity (kick)\n", " dvel = 1. / (a**2 * jnp.sqrt(jc.background.Esqr(cosmo, a))) * forces - dGfa(cosmo, a) * lpt_dx\n", " \n", " return dpos, dvel" ] }, { "cell_type": "code", "execution_count": 14, "id": "ce83d3b8", "metadata": {}, "outputs": [], "source": [ "import diffrax\n", "from diffrax import diffeqsolve, ODETerm, Dopri5, LeapfrogMidpoint, PIDController" ] }, { "cell_type": "code", "execution_count": 15, "id": "d4e7b055", "metadata": {}, "outputs": [], "source": [ "cosmo = jc.Planck15()\n", "\n", "def f_diffrax(t, state, args):\n", " return jnp.stack(f(state, t, cosmo, lpt_dx),axis=0)\n", "\n", "\n", "term = ODETerm(f_diffrax)\n", "solver = Dopri5()\n", "stepsize_controller = PIDController(rtol=1e-5, atol=1e-5)" ] }, { "cell_type": "code", "execution_count": 31, "id": "37285eb4", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/francois/.local/lib/python3.10/site-packages/jax/_src/numpy/lax_numpy.py:6655: UserWarning: Explicitly requested dtype requested in astype is not available, and will be truncated to dtype int32. To enable more dtypes, set the jax_enable_x64 configuration option or the JAX_ENABLE_X64 shell environment variable. See https://github.com/google/jax#current-gotchas for more.\n", " lax._check_user_dtype_supported(dtype, \"astype\")\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "(1000000, 8)\n", "(1000000, 8)\n", "(1000000, 8)\n", "(1000000, 8)\n", "(1000000, 8)\n", "(1000000, 8)\n", "(1000000, 8)\n", "(1000000, 8)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "2022-02-14 00:10:24.488749: E external/org_tensorflow/tensorflow/compiler/xla/pjrt/pjrt_stream_executor_client.cc:2124] Execution of replica 0 failed: INTERNAL: Failed to load in-memory CUBIN: CUDA_ERROR_OUT_OF_MEMORY: out of memory\n" ] }, { "ename": "RuntimeError", "evalue": "INTERNAL: Failed to load in-memory CUBIN: CUDA_ERROR_OUT_OF_MEMORY: out of memory", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", "Input \u001b[0;32mIn [31]\u001b[0m, in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m init_state \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39mstack([jnp\u001b[38;5;241m.\u001b[39mzeros((\u001b[38;5;241m100\u001b[39m,\u001b[38;5;241m100\u001b[39m,\u001b[38;5;241m100\u001b[39m,\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m.\u001b[39mreshape((\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m3\u001b[39m)),\n\u001b[1;32m 2\u001b[0m jnp\u001b[38;5;241m.\u001b[39mzeros((\u001b[38;5;241m100\u001b[39m,\u001b[38;5;241m100\u001b[39m,\u001b[38;5;241m100\u001b[39m,\u001b[38;5;241m3\u001b[39m))\u001b[38;5;241m.\u001b[39mreshape((\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m3\u001b[39m))], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n\u001b[0;32m----> 4\u001b[0m solution \u001b[38;5;241m=\u001b[39m \u001b[43mdiffeqsolve\u001b[49m\u001b[43m(\u001b[49m\u001b[43mterm\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msolver\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mt0\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0.1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mt1\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1.\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdt0\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0.1\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43my0\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minit_state\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstepsize_controller\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstepsize_controller\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/.local/lib/python3.10/site-packages/equinox/jit.py:90\u001b[0m, in \u001b[0;36mfilter_jit..fun_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 88\u001b[0m static_leaves, static_treedef \u001b[38;5;241m=\u001b[39m jax\u001b[38;5;241m.\u001b[39mtree_flatten((static_args, static_kwargs))\n\u001b[1;32m 89\u001b[0m static_leaves \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(static_leaves)\n\u001b[0;32m---> 90\u001b[0m dynamic_out, static_out \u001b[38;5;241m=\u001b[39m \u001b[43m_filter_jit_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mjitkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 91\u001b[0m \u001b[43m \u001b[49m\u001b[43mstatic_leaves\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 92\u001b[0m \u001b[43m \u001b[49m\u001b[43mstatic_treedef\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 93\u001b[0m \u001b[43m \u001b[49m\u001b[43mdynamic_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 94\u001b[0m \u001b[43m \u001b[49m\u001b[43mdynamic_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 95\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilter_spec_return\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 96\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m combine(dynamic_out, static_out\u001b[38;5;241m.\u001b[39mvalue)\n", " \u001b[0;31m[... skipping hidden 6 frame]\u001b[0m\n", "File \u001b[0;32m~/.local/lib/python3.10/site-packages/jax/_src/dispatch.py:444\u001b[0m, in \u001b[0;36m_execute_compiled\u001b[0;34m(name, compiled, output_buffer_counts, result_handlers, kept_var_idx, *args)\u001b[0m\n\u001b[1;32m 441\u001b[0m device, \u001b[38;5;241m=\u001b[39m compiled\u001b[38;5;241m.\u001b[39mlocal_devices()\n\u001b[1;32m 442\u001b[0m input_bufs \u001b[38;5;241m=\u001b[39m util\u001b[38;5;241m.\u001b[39mflatten(\n\u001b[1;32m 443\u001b[0m device_put(x, device) \u001b[38;5;28;01mfor\u001b[39;00m i, x \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(args) \u001b[38;5;28;01mif\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m kept_var_idx)\n\u001b[0;32m--> 444\u001b[0m out_bufs \u001b[38;5;241m=\u001b[39m \u001b[43mcompiled\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute\u001b[49m\u001b[43m(\u001b[49m\u001b[43minput_bufs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 445\u001b[0m check_special(name, out_bufs)\n\u001b[1;32m 446\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m output_buffer_counts \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n", "\u001b[0;31mRuntimeError\u001b[0m: INTERNAL: Failed to load in-memory CUBIN: CUDA_ERROR_OUT_OF_MEMORY: out of memory" ] } ], "source": [ "init_state = jnp.stack([jnp.zeros((100,100,100,3)).reshape((-1,3)),\n", " jnp.zeros((100,100,100,3)).reshape((-1,3))], axis=0)\n", "\n", "solution = diffeqsolve(term, solver, t0=0.1, t1=1., dt0=0.1,\n", " y0=init_state, stepsize_controller=stepsize_controller)" ] }, { "cell_type": "code", "execution_count": 26, "id": "9fc54299", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "421 ms ± 2.28 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], "source": [ "%timeit solution = diffeqsolve(term, solver, t0=0.1, t1=1., dt0=0.1, y0=init_state+0, stepsize_controller=stepsize_controller)" ] }, { "cell_type": "code", "execution_count": 22, "id": "325ee24c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Solution(t0=DeviceArray(0.1, dtype=float32), t1=DeviceArray(1., dtype=float32), ts=DeviceArray([1.], dtype=float32, weak_type=True), ys=DeviceArray([[[[-0.05698265, -0.4233138 , -0.23527317],\n", " [-0.4048839 , -0.18278353, 0.10613398],\n", " [-0.39811632, 0.36003193, 0.5207157 ],\n", " ...,\n", " [-0.12596521, 0.04650298, 0.12780993],\n", " [ 0.10532238, 0.22021866, -0.00881826],\n", " [ 0.21299808, 0.42117628, -0.05347536]],\n", "\n", " [[-0.07113229, -0.40208206, -0.18125573],\n", " [-0.3594675 , -0.14042078, 0.1074788 ],\n", " [-0.29909593, 0.34923548, 0.42418486],\n", " ...,\n", " [-0.2394397 , 0.07868364, 0.09896102],\n", " [ 0.06142797, 0.22736594, 0.05615562],\n", " [ 0.18805356, 0.38284227, -0.00324537]]]], dtype=float32, weak_type=True), interpolation=None, stats={'compiled_num_steps': None, 'max_steps': 4096, 'num_accepted_steps': DeviceArray(22, dtype=int32, weak_type=True), 'num_rejected_steps': DeviceArray(6, dtype=int32, weak_type=True), 'num_steps': DeviceArray(28, dtype=int32, weak_type=True)}, result=DeviceArray(0, dtype=int32, weak_type=True), solver_state=None, controller_state=None, made_jump=None)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solution" ] }, { "cell_type": "code", "execution_count": 23, "id": "f131301b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1, 2, 1000000, 3)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solution.ys.shape" ] }, { "cell_type": "code", "execution_count": 25, "id": "a5f4d029", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAATcAAAD7CAYAAAAPf9NJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACtN0lEQVR4nO39fZQk13UfCP5eZGRWdnZ2VVdWEegCGyUSVQX0EMCqCbNRosnDhYSRphvUmpxzDI9EcsTxyCsdr2jKs/KMKO0ftmcO92iOvdoRpTk65tqypEPCEqmxJY4FwKS55HCopQpNQRiDoBrsKhAuNFENoCrro7OzsiIj4+0f8W7kjZvvRURWZ38AnfecOpUZGfG+4r37fvfzKa01xjSmMY3prUbezW7AmMY0pjFdDxoztzGNaUxvSRoztzGNaUxvSRoztzGNaUxvSRoztzGNaUxvSRoztzGNaUxvSbom5qaUOquUelEptaqU+tSoGjWmMY1pTNdK6rB+bkqpEoDvAfhxAJcAnAfw01rr746ueWMa05jGdDjyr+HZhwGsaq1fAgCl1B8A+BAAJ3M7opSeVB5KA41QAIAQGgfmWmiYrq9U6t5QMOMwo4G8c3RfDxolKOd9vlLwAUxAYYLV3dMaHWj0TFmh1knbGsrDFBRCAAfQ8AFUlAcNgFpb0jr5/cB8DqFxVHk4Zu6NoKAA9HQPHQBXdZSMB7VzAgqhaUcJQBUKJaUwBQWtFJQpmz8TqbjcQEfoANjT0cA9MOXBlDmpvOR6CKCpIxygP/Y0Pj6Ao1A4gMaWjtAD0DHvqMrGj+rj48brpjElqiqFo2ZMQ1MvnycA0DP3dkyfffTni5wnRYjaWzJ1HUAPzC9eboh4PtnIPr4q+e4rhQlTz4xXwoHqz8qK7mE9ChHqwfqrZszleNG83dMR9rVWuAY6e/as3tzcLHTvX/zFX/w7rfXZa6nvetG1MLe3A3iFfb8EYFnepJT6OQA/BwDHoPBflGtoqLQ0PGO+b+kIq1H8Ops6AoCBe+k60Zb47iqXP++qn+prKA9Lno9Fz089dzEK0dTRQNuWSxWc86vJbw3lYb5UAQB0zT21KMS26R+Vs6UjLJcq+ECljq7y0PZ8lHWE3aCFi1GIlV6QjAfVt+T52GL1LHk+GsrDWb+KrvJQ1hG2WX+nWbnrvQAXoxBPhZ3UOFI/6P+S5+OcX031/amwg4usLTQ+M8rDouen7qFxWDRt42Mmx47+y3Glsvn7k9/p/tUoxJaOMGPeHf9tGKJ331AeZpSX9Lcp5g/RFmuzjeRc4+MLIOnjf3mkgfVKPblvPmjhE63LyRzhtCTmpGz/U2GncH9dtLn5Bs6fXyl0r+eVZ6+5wutE18LcbLvDwDamtf4sgM8CwIxX0vTCOUOxkZz8RPyF55UhFwEvg5fLy6N7t3SERfO7ZH7n/GpqoTV1hM9328n3GeVh2cE8OINqmHs2wg4W2KSle1ajEE3Rx4tRmGJqy6VKUn5ZR1gzzJMv9An2PF3njMT2PlZ6QWrsiGnxcSOGREyA981G/D3QM7JeYoic5IKWjJKXI5mPpLw5wylvYy06h+X9kqFvdttY0BF2SxVslGvoGuZOG5vcnIls/TsMYrWR1lky0ZuDroW5XQJwN/t+EsCrwxbCF9qwlIXagOF3b2JMfPHQROQTecnzseD52DYMaqUXDOzixIRszJxP+qS+KMScWcS1AguQo4xpC8Ox1WUrg3+2MQ3aTFxlyuv0J8twLUr5DhcxuJnYSJYpKW9uUNlZZcw4+inv4XXZGB7NK0lU5kovwDnlocyY+Izy0LS0L6tfW0LdcHjS0LqXf9stTtfC3M4DWFJKvRPADwD8FICPZD0Qao2mEc2aDFkAbDfLmVAuxOWivDJsz0pRasmIXYR65ksVbBqxcwrAR8IOnjDITZbBEUpD9JkWBjHARi/AtPISsVLeT/2ZYcgNALZNGRzV8u9LAn1xpt1QHh7zqzhTqmDNiMK83bbxI1F0uVTBqnnGRlusXXxcOFPh77ChPPxG9TjWK3XUohBTvQAtJkZTeSSG8jHh5VN5vHz5bmzkmls03jR+QBpN2sRTvlFkMWsa60YvwFmjQqhFYaISWTUovAizHhVprW9v5Ka1DpVSnwDw7xDrYH9Ha/1CkWe5TkYyFw7Z5c7KF2RT5zM2eS8vowhdjMLUJKaF2fb85I/0XEtmgctJSH0lpk1MifeTxEjJADnio3KliMvbaltgfJFJHQ6Vf8aIQ/NhJyWOZm0MS56PiVIFi0BKLKVnbcQZW0PZmc9GuYa1iUlM9QJM9QLMddtodtuJPpbrPl11ZJENWUqy6QX5uyDmTrQIOEXIIpIJMey1KMRsL0CZJAhHW7k0cH2YXoQounbd3c2ma0Fu0Fo/CeDJoveHGNRvrfQCK0KxTVKbMcD2DN/1XHqSvB2d65oaYsEvddtY6AXoKg9d5WGDKdtp0nH0x9EU/7zK6t7Sg8pjW7upDo4IOXLgk14uLpdhZVtHKJs/2X/bdypzIQqxkcFQXcSZINdDNZSH2bCDhYO9BLmREcTGnF3lcspiALb55Jp3nJZLFdxrDABTvWDAUMSfkSKraw7T+5oz99McfsrRjsOqcorS7S6WDk096OTl8sVsE9k4YgKyX+aWWCRcZFtlui/6PU9Upfq4Di4lsnTbKWZDE5PXu+D5aJgyGkLMc9XPxfUZNaj050RIYVWUkaAKYYywKeJd7bDpHG3Execi5fF75e90/avdNpZ6Ab5vxuxiFFpRURZJq6lE9652ZqEhLimcKVWwUj2Oso4w121jqhdgK2gNGGFcbXONx5aOUItCdJWHupk/WcjNVpfLNWU4us3F0mshl8jJF3MRixsnlw6m6PN597iQzABCs1g4gb7uJqutJKbfbyxmjW57wKpI9XGmBgDn/GpiXOgqD4uwK7JtYmlTR5jvBVgzjISLwFJ1QEyA+mqzSHMEPaM8rBj0JUkyNq6nlOKny/J9GJL1cpLvxlbfWhRi1rhcTPUCHBiXnSxRmYuyEoFxPWGbjEpC52nbkIpuQsPSba9zu1aSE4G7L9gWSpa4I6/LBTzMgpCLyWbZk4udnlmNQsC4QtBiljo2AGgwZkjPz6jYrWOiVMHzRxpoez4e3G9iWRgqppU3gAQbysNUpY5mqYIrRryc6gVY0hEWjG6wzPpDDIzadjFK+95RfxY9Hx8zfolkkV1j95FKQRKVO2d87xrdNmCYgRxDyfClzs/lS+Z6ry4dLL0DG0Ln48ivScMFlf1U2MHPBy0AwHNGJcEZcUPMD2JsHyvXsKWjxECSzAFT96LnY9OvohaFCXOztZW39/owuDFzGxnJiZVlzeLiIoCEQRDxxWBjiMPoXySRyGLzi3OVR21w6YMkke6LmBG3nhIqmwYGDB1tz8duqZIsjN1SBbVSBWuen1gfFw72cH8U4qxYOMSw5OJc8nzUJibxWqmCS6buhYM9wCj4pZHD1hdyYuZM3EVy8V4PZTm9i8MwAj7v+GaRJXbz6xKh8u/UtqkoTByx8zbl64XcgLGf28jIZjnLs2plTfxVsXh5WXIi8glbBOHZdDJSDKM2NHWEZwQD4Lodea1pRL25bjuFtgg1tRkKO22u7ZYqaBsGtleqYLIXoBaFuGysjmsTk/jasbswG3bwwZ3/iKmoi5pZQCeMvmiu247RFRuDGeXh8Uod/+PsKayXj2LTr6LrlfD3Xv8OzuyuO8eLI6RWFMZiuoUJcnQIAFsZVlqXfilPnyeZJd9w6F1xaYGLzjbUKJkiifHSWmwbE65X5pZQIoqIOBt2EsYmN+4s3SZdGw1LihBFB/m33eJ0SzA3F2UpvqVC/7Dkcro8LLkYstTR0WfbPVN60HpJREiILLWbfhVtz8eW+e+b5zZLE1iv1HGhehyzR2YAaPy2sfDtemWUofH49kt4cL+J+zo7WFAeTosQq67ysFuqYNOvYtefQBcKYcYCc/WHW26JbPrAw+jT8sbbdl0iJlvbbcQZVNvzsTBEO7nPX9b8WnP4FxYxio2Kxjq3QxAFYNsWwcAu7GBsHBkkYqrDiRQYdLHgylv+Xe7a/Df5rNxBOdqhGFPSZT1joheS9vSCFLqTaGDJ8/G48XUisa5lEMIZIPGt2/Sr2C1V8J0jDWz6VaxX6tj1yniws435oIVnj74Nf3z8HTh19A6cmLkXU1Pz+L/cu4tjx/4cd9/9aZRKV/CVr7yBf/vil/APtl/Ch3dexvtbl/HTzdUkDrXt+TGyC/cx372Kso5wN7MKuhTlUl/m8kvjC52Qrk1828pZ1ByVZxlQOELn75jQeIO9FxuR3uz+cg3P1mYx1QuwGHZyjV/S6svrTjH8XoAVMz9oTJdLlVR7i2ySo6Axc7sGytt98nRvXBnOaZjYQVudWW0ootuYZguzSPgOiUhEF6MQrSjEhHh2S6cD4klE3S1V4j+vjHapnDC/3VIF95RrKJdrqFTqOHr0Dpw8+atoNJ7G0tI/Qbk8gxde+DZef/0evD/sYCW4irngKnZLFUwZQ0EPQK3XxZQ6QE334s+9AM/n6IM4w6L2F9Uf5dG1oBZXGFQR5sA3VELKgHu+2aQOMsDIeWTrU0N+t6hDrh+Nw68OTbTwiUGRVYrrJlyOuMulShIsPl+qYD3DDC/1djYEB2R71PPnpO8Z/UYT/GIU4oluO9fKR5S0xzAB6vO08kA20jIbl7rnY9MsLhJPyc9q4WAvbmPYSYwHa63X8DUd4SfKNdRqb0O5/DomJuZx9Oi7MDFxF06c+MeYn/8ClCohinp4PriSGCS+YaytP37lBwmCK+sI3c5OCrlxJk5MTGZP4X2nwPpVcU+RhZvF1Gzviv+X1m+yONM7lczIpctr6ghzUZjoK18W9RVh4ra5J69R23gigUXPT0kCUo/cUB6ujoQBjsXSQ5FUrtIff2F8wUh/LmJ8dYNaFvSgCV/eT7+R+FEEUdkoz0ra1JEzztJGNNFdzsJlywIjXRsxtyNRiCPGm5+7D8x125jvXsXuwQQ6nR10u1ehVAjfP4pS6Sh8fwq12ncxOfkXqNfvRLV6HP+xXAOAxOO+qSM83tlBV3k4MDGnn+u2B8RpiTzyNhvO+CVTk8xplP5tRJKpDoOItoy6gIwyvK28/FG0EUCSmUYanfIs1ddCWutx+NVhK6MJxd0ZbAzPRk2z8M6Y3zf9Kv77o3egFoX4osmDRouLLGIpFOXQpwDDTRSpf7Pp5/ImOSFXnhdNuhqsGUay4PnYNCJoVzBA7ilPz9E9s2EHf+r5wKU/x9e//sc4evQO/NmfPQ/P+4+4ePELeOON72J393/D1t4lPL79EmpRiHXzfrZ0hOfCTiL+SzRG3+kaobKs2E+pM+LWZ/6b3IRs78aFDOU9Uu8mx9rmFynFQN6W9V6AB/eb2DabGUkeeQp/vrHb+rLo+UmSBkJuy6VK4g4kddI2x+jR0FgsPTRx6G9jCq4JAPQZI+mfKAdWLQpxzsSBcgX/ogljoUkuUZ4LKRShYaxtcsJz8fsxE12wYMTNrrmHJjQ54lJCSyDtD1fWEWbDDjZY9owPmHumegHaqoTN9hae3vmPaJfKCcp7qL2Jvxa0kiD1ew72UBaLiJAot/ZJ0ZoYUZ4eqelYkNK9xqXbzHtH0r3GVh//Pc9AQZ8lMlvpBficUT9Ixibr4d/lBi43C1LV0AbRUB4mShVsmkwh8+wdXD/GBozF0hEQhfAQ0WRpqnQWVD6ZuSXrrPISi2LNgizI+9ulP+GUxUxtlFcmIQTOROk+6fPEkSp3fCXa1hGmozBJh8OZnKttB70A80ErQXK7pQpOdXbQLpVjhhj18GBnGye67UTMmg07SaJE2TfbxkD/eUxsEZHMhnCKPJe38UiVhots1l3XO+TiHzEflxErT8cq7+GbBW10FBdMCPSgF6DUC5IEBRJNXh8jw5i5XTPxl0svyrUj0SThoS5NHWE5CjGHmCl8g7kTEMnyaNLYdnS+m+ZZA10B0DTRKfU2kdT3NYzIseT5SUrybdOmuoOJkLKfLKV0DYjFUC4+PhV24mwmB3v4oauvY9HzcWViMmWMmDeojVBw3ZQ7LdpJ48bHhjM6bmCQ4yEXs2s8s36Xv2WpAqRYKhkAZ35belCslnXNCMZDGZN5n/OYmk0nxzdtEkcpjdQZ1VelfN5Eg8iyEqNbhgrgsKT12BVkpDTsDkQTZKUXYBl91CcnLCdpURuW5IKX5fLfJZOTTFcaDrhOZdoi4tQ9H7vM/YNcEcJegCMGzc2yMm1M5XS3nUJ9U70A53sBFj0f08rDhl/FRrmGqV6Ac1E/Xblsy7C6ySwG54oDlkyoSJ3SUEBkC/yXbbS1lf9OZWxrt07R9vwwrkkN9m4oEeiT4rwLIt7Xooi5OI2R29AknXjlbux6QQ3LorUFeksmY9WDWMQ5l1giF4g0dtgWPtA/PIVSZvNgdc4ASWl93qAAGQxP7a+bgOpNv4pXKnXslirJgSKzxvVjPmihZpjRik6HlNFhM5/rtq39/GSljk2/iuePNPD1+hwWgiv4UC/AoyYTrnxnTTG+LhGdK+cl0ynyrqVuT74LqYLgKFLOCfpPaJnGRWY92RJzaktHeJiJ6mRAcDHSLJL3yXqnlYcLfjVWE5QquN+8M3lIENGoEVufxuFXh6osywpqo6z7bUxMWtquxfWD05ZYpNyaxttB18+oNBOzWb3o/uQ8BjXoDsKprKMEpU2ZRUyialksNPk/ixE1dYRZbVwcdA/lKLaUdQVjAGIkKhdpVpttDK4IyY0jK6ZXtgWwO+zm6VuLbLZyQ71WKYDTtu67mLjC7ySNdW5uuiVSHvHFYZtoNspiepzxyN09KyWOdOiUC8qWW00yPP6/qzzMlmtoez6+VZvFRrmG2bCDmbCDuW4bZw72sFuq4HmW1fWkjt06KMZwS0doMT82UvpvsqP3gBjBHTBLMT3L+yMXJPWDDig51dlJ2pEsMrLgmr+zKp3p18UA+Di4xjtPrynFRakWkKiLhzjZdIb8OtEM21xsSD+FWIdgbFl9k3pBavNnghYeYz6Ez7GA/IsCvRXRZR6W3io6t+IKgRHTMHqbw5INrRAVcd6U7glSESyv88lPqbuBmMltliawUa5h069iz2TyIP0XhVBxQwHQZ7iU6ohcO6Z6AWbDTsKEuH+brf9ZY0C/rZpyqFzedvnHdVBSVM+jPN81F7msmeTBn9WGhqOtefVL5sapKGLKk0g4oySxmvvO3RyK/dyK/OWRUupupdTXlFJ/pZR6QSn1i+Z6Qyn1FaXURfN/mj3zK0qpVaXUi0qp/4xd/2tKqefNb59RSmUePn1TDQpSf+DSt9Dv8jpNiKLKZk5ZXuV5O6PNQMDL5E7Ejyov7XQb9SeEjDYA+q4gC0bPVvZ8rJl7KD0RuW5QGUR1Y3EDBg+MkW2lhXMxCgFzMMxyL8A547QLw2jpHE0eyC/Hh1sZs0LcOAJzedi7EL0NVX3C6AqpbS8Y/ZRtrlDIXrl6HN/3q3hn0EIjaFnnk6xrNQqTSBmX0YAY4QpDz3SvnCtyk6T7iak1lIcVx9yS42Ibt2unkYqlIYBf0lo/q5Q6BuAvlFJfAfBfAfiq1vrXlFKfAvApAL+slHoX4pP07gdwF4B/r5S6V8ec9LcRH/D+54jPbjmL9DETKbrp1lI5WYZxpr1eCtUGa4NtsrsWHJ90JEYsRyFqykMZOl6E0ElaIk78OzEsQnREdGo90BdlaFHVDRIcBkFRG8lhlPq8XKrgUcOwCE0msaWW8rPqdIWq2e6Tek3AYRQyxBN0lvWgGEufifkseD6e9au4bCzCdD8/GtH2Tuk/Z1Z0nRg7vQebi5Cr/y7JwmZ4yhoL27hdG42OuWmtNwBsmM9XlFJ/BeDtAD4E4BFz2+8B+DqAXzbX/0BrfQDg+0qpVQAPK6VeBjCptf4WACilfh/Ah3GrMjcpHthEBtrhbC/PdY2es1EW0pNojlvVivZHWik/321jsRfgsd117JYqqbhE0qFxxtb2fHyzfgL7Brm1PR8LB3u4x5wIxd1dUv1gjEr2VY5JllhGzscyGkLq4RYtz9O74imosnRzM8rDR00a82XDxD8TtPBMRnwuZwjfCFpYCju4ZOqVMa28v1OVOi74VTxz9A5cqB4HADzSbaMWhTgvgtHleGUZY+gzTwLBmaCNpFpD9o90xtJgJpk21btcqmBLR3imF+DV6NrDpq5XbKlS6h0A3g1gBcCdhvFBa72hlLrD3PZ2xMiM6JK51jWf5XUn3XTkxkUUW9iVFGMk2RT6ecQNBrwc2Z5r3Q1Jh0KKbr67U/kNHWeZoDRFAPDSxCQ2jCGiq7yEAdaiMOUuQu2VRoOsheXqK/+tYRGVuSgMxCKw9MeD6SPXF2Up34mpLTDxd7kXOJmbLOPz3XbKWVoaU/j7pTC9C9XjeP5II47WMBEftoiDovoulz4vi7J0wXSdGJwsj89J0jlS1MRqFI5oQQ8VWzqrlPo2+/5ZrfVn5U1KqTqA/wXA39da72Woy2w/6IzrTrrpzE3qXrgYAWBgoWYt2sMyoixRiHbHrN02i+heEv3kSeVAn6nPGbS0Xj6K9YljWDjYw1y3jXvMf7KGcuRmW0x5i0w+S/9JOd/UEeYNw930q0n2XRJPp9iZrUBfpJ43yJQ85znitlmpeRtJ5JXvno8TJ67f5Pfy3/lcIn3lQ1ffwGzYwX2dHcyGncQqzTcduYG42sCJnrEluhyFyEhjwg8couiWjXINHwg7eCrswM/WsRekocTSTa31e7JuUEqVETO2z2ut/7W5/JpSas6gtjkAr5vrlwDczR4/CeBVc/2k5bqTbihzK0FlLjqaYIsGapNoJy1HwyI1fi8X51w+cDbG0VB9HVXWZJVlysByW32rpszHDXJbnziGC9XjeOjqG3hgv4n5oJUc/CzPP5WxqVlI1iaWyk2FqBWFKHv99OVAPz6ViIutABLDwxItcGqrpU2psRabCfXB5s4jRX8aY3pnLt820hk+3H4D9x3sYuFgL3Ge5vOOaEvUn6XOAPpGJFsQPVEeg3MZCvg7Wi5VcIZlhlmv1LE2MYn5oIWlzs7IFvSodG7GovkvAPyV1vrX2U9fAvBxAL9m/v8Ju/6EUurXERsUlgA8o7XuKaWuKKV+BLFY+zMAfjOr7puO3IBBv7EZFWdDmAPwMSDRXbmOT7NRlkWpyCTi9/Ndk1+33SPLtCmGafHyRdxQXuLP9tDVNzDVC3DqYBdz3TZmww6+yKxwRRDFjPKs56fK/nJ0wz9PKw+76Meu8pxx670AC17/ABuZZonX71LQU99XjL7rrEGCX43Sh2jLsZ1RXnJGazIfmG+b3JCon1K0rgnRmdfHY5dtiNA2jqOQKOQccvlkbusIMGXOhh20PT85R3U0NFJr6fsA/JcAnldKPWeu/SpipvYFpdTPAlgH8DgAaK1fUEp9AcB3EVtaf0H3ZeS/C+B3ARxBbEhwGhOAmxCh4BJPCGYveT7OlCpYMzqYml/Fe2iyiTM8XWSbTK4JxieUjVHZ0MDFKBzINpJXn013QsR9nJYBPLb3CnavvoZTnR1sdtv4Yi/AU2by2hAQZ8z81HtixhJN0Gdygl0uVVJZgIG+m8qkQTyULy4ybiP8zFIqj4tMpDPKI+rXU+SCAjdjprC2T1TqsZuKQbNPhZ1E3yffHbVvW0eo6yhhAiTi2xCiLXZUqkv4WLpQprwvi+TGKp2QJWKlNi5FIc6YA7UBoJRZSzHSenThV1rrb8KuLwOARx3PfBrApy3Xvw3ggaJ131jmppR18skJQw6wMuMpn7xFJlQRkjsv3+1dSI7fJ0XQLJLoaMHzrTofji74Qstj2rwfWfoq2aZFk40CALpCxCS0Rn+bgply5noYp1O5uUiUJmlG9U/8WqAFbowKWbpGyniSRdcyn7gry7BluNpsWx8XGbK1qUl8Jx8Zjt4KEQo3lLlNoJ/ehS/mgZCWKMRpg9LWzQ7LFfLLpQpWLGiGyMasXCQjFeizbKOtfGmpownuimucMe0/Y5TAK5U6ZsMOHjd510is84zS/rmwk5yLWYRZNXWU6O+AQXRHz1PbiMn2yjVcqNQTZsY3lVOdHZR1HAK2qe1p1CUKzTpJTIr/LmZATFdeWy5VcKF6PMmKclocEC1VB1QHnRZGm+Y8M87IttpI6jZtJOeaa1PKU6nwe6QekDsJy7IXPR8TN96gcMvSDde5kc6kznQ254U+SSrdZVwd/1xkh8zS4Ry2D9xdgKM/l0KbhwrZSLpeAMPl97chT5tbi3R/WWJplKYY4+LB29zJldqV1Qb52SWScxTrup9fnxFjJB2hs0K7pM5t2zG2Nr2sbZ65rtEfP6x5WJ2bFEnzKM/YMTyN04wfojKFRc/HC8fuwkuVY7gnuIK5bhungxZWzOlNQP8QDiCt3AWQ+I0BdoRCxEXALFeCrDQ0tvIaysN7JybRVR6+f7CHJ5ki16aro2sU/kM6LR7D2TL9od+o7zy1jm3yyjRAnAjh0n0yLKmhPHzExLpeqNTx0sQk7jnYSxJYPmfO47QZRGzOpZL44n/MryYoly/4Jc/Hab+aZFIG+ocS8/dM5REqfPzq6+gqDxvM0ELlUZ/5fGnqCOjsxFEZup+mW7ptZBk/+B+NL0d+9K4/PDGJTb+K+aCFJ4wRzCZhSOmCl8HrtM1TF/K9GIUjOf1qfCjzIWlGeXjV5CY7Ee4nehA+SUgBTGRLsQMMOqMWRXKyPTYxUiIGjoYoJEmKTUScsdHneQqWNwuKoyJJ/FpR8drWhlQ2YG8wPXaX9YUMCCSOytxyVOZhxrihvMTpVz5L9bYNknchIqD/HtYNwlxhoqXc6GQ5FB/KIybkppG10dl0gXIza6jYEXvTr2KqF2DJtM+1GWTp2uQ9EoFLEZn6NSq8NWZuQ1IIjYtRiIc6O5jsBTjV2cFct42nWbZReWycLZwIGEQmTR0lOyRR8vJzwqdcJnduPePtuVeIGxxZSnQDxLqQrx27Cy9NTOI+0+e5bhvfC1qptkprHaEX0iPx3P+uU9FJ1DznV9Er1zCrIyyYVOLEyF3HD5LR4DxDTUmsJHNkXvT8lO+hTKHE29JQHub8KtZNuqeG6Vty7oKxkm4wRMUREfUHcKeIp+vLpUoSY9tVHuajEFvmIBepf5TiJ7/G3yPvB90vERbvOz8s+7TRC8r2Sia6xDZKvonyZyWKJJ2w7MtoWFI0PtrvMNTUURJONNdtJ9BdKl9Xo0GlNCeucF40919kVjN5b5YIl9deKUIQ6uLtcmW5oLpeqdRxoXoctV43iSklpsmRIS186b5hY5pZ4VPTysO6QUNlHbtBLAJAFCbP2UKsSBc1gJ7YuJKrhuskK94WQroU4E5jRX9cdcCZmyT+vreYKCr7LdMzAW6dFCF2W302/Sl/jrIsN0QdHInSYTsUHiXRJEeA8r3aNnf5O5U7LJLOp7HObWg6QPyyvt3ZwZLn47fMArcpq22TARBoyiAQqTiXegq++xPxsm1Mik82noGjqSPgYA8N5SUpaoB0dggAiR/YxSjEcqmC2bATO1yWynilUkctCvGRsJNKkkgL9KIlIkMq612iDSHabbN5tKL49Hg5fhQcnxgSghZmjXXWZhigNnBRXI6ppASdBS08aFKWXxLIaaUXDBhnuNhFvo+Lno9euYayjpIzM2S0xkovwEzUP+d1zTDymVIFPz8xid1SBaVuO/HTywrQd5FLD0af7zXB+HPdNp5jUSU2ppY8L8dcDR5WxNEjeRTIM0OaOkKoM8MtC9Fto3NTSt0N4PcBnAAQIQ6M/Q2lVAPAHwJ4B4CXAfwtrfV2Vlmh1liNQvymyaPFxQ+iZKHrQZ0Iv4dnXJUOnzY9iosZcMTksgJK8UvmtJf6D77wloyj7P0sJnOjXMOkiXWsRXE+NaBvULCRFKNknURLnp9klqXFZTudihAV+bNRJMSKAwlssfdic2a1tZXQ2cUoxIwRP+VzPFcaJy56ERKl8wXmozAJ2m+KxU2uMJyhLHo+1oyif0F5eNSMt4xLtSn58/ooxygKO5iLQjwXdpLDXWR6Kv48Hyuum5NzUrbNdkj2KOm2YG4YMtlcXkFZogAwyIRcepaU3sYyKUiMWWa7nRR7bIgRSIsLsp0zysPDpYp19+ZuDZwBbukIC+bAY34SvCRbqmsX2Zg0oRe+m9tETGIaxGxJJJ2yKOhtuinpC0jXbUxUbgwSMQ+Iv2KTAPoons5s5eLmFuunzdJNKOe9ZiOZDTtYZ4jbNq4SSecxconKFjFo5edtcpUp+2AzLADuZAGjo9sEuR0i2ZyTetADE4HrW6ReiU8um/e47UyDpo6SE67O+dXE8x4ANkzokIupybKI5G7OXRs4w2yo2MmUGyDof7ezg/cHrWRhcislkU3XZtO78XZKcU4aVfg9EnFtmLNN6dkvGxGKi17WthhRmwK4256PeSF+0buY4SjK85Mgecl8pQKfnuUo+IfNs5SqyGYc4Uw5cYFRHr4XtLDo+fiqYWxZOfoaYv7R2NmkDNu8lO8wy+DCf7fVL7PI5LV9RCkmbz+dW8Fkc/KZn0OcGrhwZQ3l4WPlWiosqHmw57TyFSEyANgmHVHTMQmpTcQctnT/JHuOHOjQ3obykt1V7sbk0zbhQANczKbFZRMD+QJyiSd5DsD8eZcBQyI4XjYFcE+bz7bjCyVzzBL/ZbtkeBEPSyuberi/GWcG9I6k0p9HfAyDfGz6Ndmv5DfB6POs8TZ3JOlmVNSZexR0vZJV3mgqzNyGSDaXIpO47rMAcFR52gXx+Q65XKrgziMNXDJhSgDwEYtilsjm4MiJ0nNLN4OsyZ2l2yI0IZMyzqhYn1bWET6hvNSCB5B8vxiF+IiKQ4I4cpMMhTM2iSRtB4i4HJZdukvSiUkGxOsjdxvp+tFgqIl+IwU9RWKQIYDX4fLal+KvDW1umnNXn2PIJUHKOk6PPmf0cuvGoFM3TIKH8WUdvmJjRJx5ueYvzSspTbjuddXLDSkABowmtnfleu+Hp9tELAWGTjY3NNleDulXKCTIpo+aEYuAiO5bjUKcUR7WhtypbU69nPguLZHgO833rvIwjcHFwBmdDCGaN4yEW8qy2sjb4hLds8h2X54iXT7r0utR+2V5XCcqRVj+LGfw5/wqljwfc3ScoWFOtvhfnmRhWnnYNaL/PIAGUxdkUZF7XBuGy/E3a1N2hVs1c96nTU0xuky8twFzO0SyOSdVlbK6aRDqIVrpBWjsN1MT9zPM0ZeLGTaRjRbW57rtxGJlE4lcIpckyehcWVdXegGWjCW4bRbiAvqWXx5OtRqFONNtJ4jyrF/FSm02SStei0J8ImglDrWEOl3+f1l9sCml8+61LSw+DoRSbPVKEY3K5e2wMQdbWR8t17B09A7slip4cmIStSjEY7vreDrsYMHoLc8YlAwgFcpGp3dR9ENZR3gsClMuIDZRXDqHu8ZZMmEyYknXFtuzNjGXSwpy/F3vl2KWAXsW4MPR7aNzGyrZXB5xZsYnvHx5UmnqSt/sIqmPGiVsdymLSexZ8nzMmt8Jwck2kM6KlyWP+SMnUNn2on3hi88WXuYavyxrtiyDl5VVHv9M+rEim8pyqYLzE5PYK1WwXj6Kqag7kLqIxpgYHJ3zyseT/vN2ZrWDI2EXSSMIiZMN5Vnz/aWYfkaZrrhnIptFld7BaNKM3yauIIdJNpdHWUhC+pLJCWJ71rW72VCHFAW2xCK3IUEXwuCWPvJaJ7IdgycZDOl+VqMQT4cdvHe/mYji9Hzd87HEUN+woqe0uDWUl1hEJUqwtdElOkk/MsDt1EsuORyB5ondpK974dhd+G9P/gi6UChDYz5o4X2ty1imBI1s06OzXtfNf1sKp29EYWLpJgYk+yYt0BLd8TElpEaWY8o1N9dtJ8k08xAVzblzfhXn/CpWmW8ir5cTl2L4KW2jEEvjZJW3kUFhVJVlGRQ405ATbZiQKXrO9UxWWVlokl+z6Zno96aOMIf0WaSyDn4/iW/LYQezqq8jPGOC7WW7ilLWJlKUOeaVzb/LfnHUmNV+m6WWFu2WX8VM9TiU8vCsSZzZ9nxMM6RM73Ne9UOfSBQlR2l+5mteP3ibbBsmH1dCajymlELNGib6olkABVJ5E6UKFgGnZ4AU6aW4Pxq6fcTS60pZliP5mSjvJXKrnnw+7ztvk4sByKgHWc6Wjs/UzLNiyd9kKNLTzJOeEB5R3hjI4G6+UAltEDqSvlMpRmSu0zMJ4rMkTSRGwx21eRtsRh85dvKeH736On7y0goA4MPQmA07ONXZSc4aberYSjpRqgA6SlJJEVIrddvY0P0kj7Y4ZrmBJgkvHe0lFM0TrxI6PNXZSVnFucFFOnzzeUSHIm36VczpQTUKD5Tn8/rnJybxbG0WS2EHS+1NfL5gKv48ui3E0utJWeihCLKwKV4l0UTIU17bxNw8qymRTX/ImYU089uYHvedo3JsTr1FqSHaxMeK2rvo+agbx1pZB4k6dMgLPTNvxK8lHWFFDVp1uZjO+50VWibHiI9J+2APP729loj4tSjECybZAtG08rDpxccOkgvILGLk/JxhMjwOmDMzmxMxHz/qE28T7yunso7wRLedOg+C3ysNYryuGRWrIF7z+unQ+f0S+dL3jXINL05MYbdUwU8c7OHoSNKM3ybW0lFSCLf1KE/sytK10XW+eG3Pymd4vXwiu8ohcpUvn7W1+VGTIPIk+ie5fzFopZ61ib6SibiUzil0ZVmcQD/Vu+dXsen5WNCDJ3HJsU3qYQkBJGWJcKR7kv3IE9eeCjs4x75/X0eJBZwfhtMV72ARwAZDajZlvi0yQL5Ll0GKVAlPhp3Uu5ZpwF0qAc64aDP8areNszpKAv5l22bEO+JEGV0Oss8pLkS3TeD8KKmjdUpHYtOnuRakTfnNf8ubUPIeQhZS3OLxkVKck+VJ4iIDKdnlJKVzJoF4Qs4HLTSMKMFFGNsYEBXRGXKEyMtrKC8R4zaM8ntK6Hdsi5nGgb8fblV1tdWVZQRw6y35vTblOo9caKi0hTlRSZhnbO4qNqTGy+NGLVcUC322+RtykVzWZduQaU183mQsAdKhifTZNR/L0CibsRpd+NWYuV0TDWsksC0km2I1S+SUdecxrjzdFmeapDdZLlXQM0cTklFh1qQ3+n6pgsv+Eez6E9gtVbC338QHOjsDizhr0WeJyy5Gwmk1CrEIYA5I0nUPRA44XG/4O8iz3EqmKinrHRQ1CDV1HI0wj76Pm6zf1g/5nbelyDvPqsemc3Q9y5/hZbl0wdzYctqvYgPACZPR5dkoxMEIUh4BemRH+91MumnnlvKFMoy1x7YLS5REooFNTyHLSXZCESZEE6iolQuInT8/UKlj06/imaN3JG4dR4yieaoX4JVKHWvVKTxfncbztRn8xN4lvK91GWdMUD9v07VYv7LcD5LzCYx4J90VGspLUgfJNrjGwxUCt+VgcC4Uzu+T+lI5X+j7UyYBgKyb32P7jZMLXbk2SpprWYfASH9B1+abukendZYzYiyo3NN+FeuVOgBg4WAPs2EHfxiFuDoCsXSM3A5TmTm3NIuZDbtrEtmsg5KyFlOWCCgtobayZLsoyHuS+VnVohCTvQCzYQfz3avYDSaSrMTSTSFvHIZxMLVRFvKyjUlK72Yh6ZWfdz9nYK7xl4agPMRFukTeDymW2kTFLMq6L+8dcIaUhcSpHokeJXrlujY6q6EWhQNqhWslreO/NzvdUOZ2FCo5BQqwm+KXS5WUj5E0n3OSFjkebGxT8tN9ki5aFLhU/hIz91M5UgdEi5DKqEUh7jGneZET6Wa3jT/tBfhgexNTvQD3dXbw0NU3cHf3KqZ6AdYK7PCcssRpjlptiITrlGz6NX6PyzBiq5e74LgU97JdLvcQW/lE0vpM75jHn9IZCsTcZDqmrPJlf21z0GaM4OQSyYfR38rNmr4veT7WK3X8ZW0Wc9027uvsJHrH0SxoBa2LljRaxjpKuqlOvFJ8kRO+obwk/xdXkANuPY2NbLs1Z1Y2psmZlZzsfNIPKHcNSqPdlJjb99l9dM+JcD/RxdmYTBaitPWxyDVgeAfePKQzTDuznuV1uBx/izBbW/m2DSPr+RnlWTMEA9eWfigLpUriRhupeinrCLVeF0eMPx/9Vjp0yziNmdvQNKFUKt+WjQiNnTU7MCV03CjXsFuq4F1GeXpg8uDTrk27M5A+84BILgjXguULjSMDWxkyTCd1j2nb18x/Epk2/SpeqdQxY5xRZ8MO/pgF90ty6bxsyIc/Y0MSNvHTpROzEd1Dm4w8qUz673EL31ZGXVJVYXtHnNlRYLtMPLrSC7BknlkQIWeyHy7iEoCNEWVtoK7yXYiRX5MiKEfZpBrhCVLp5DhibLUoTiB6tADDzycFrcsjKOfm0g1Hbi7iE5peMj9FaNOvYs+EtZR1hFkdAUw8zHMryGIGNkToYhB5JK2JJMJSjjMK0ZkxmT8oiWZRNJAX9ZDXJiAb0RXVRWXpKA9DnLlRH106NsrRNmNx86CxWUA/kJ6YlFTw875k6faKtBso/m5skkSe9Vsiz/VegEYUYkp5iVW+obwRxZYqRFG14N27I6jx+tANd+IF3HF7QPwSuR/TnIpPaLpcrmG9fDRhDKc6O1g92CvE1KQ/G2cmUp/2FLNaAn1fKyqL/nOxlZfPT1bnE3i5VIHnV/GV6nE8X51OfNy6qq9nlEhE1kntsRk4JGUhjiymncXgeJ9tz9pEP1s7XAvZpuMC0jrNRaNvans+zuw3regZ6J9cn8VwXIyOECnNE5fYLNvqGmPbmFJ/XGK5NOp8rtt2ImMuDY3GxjmMWHrr0k3pQZaxQFra5szvXeWhXSpj05i628IqBmQrvGkiLJhwI9LlLRhkWAeS3U+SbXHw+3iMoSvMqO752DSobaNyFLvBlSQlz6LnOw+OHgZNudqbNz6uOqVztY2x2RZnUVGuCMk6p5WH75uEAm2zobiYlIts4qZN8S8Zpu1dFEFrtmf4dddmI8d3oD0q25p8eBqLpUNTTcWpYSj1jTQoAIMLkXb6RwC8u72ZuFSUWHyhS1nMr8v6knvN9Wk20QiFudIu0e/wfCwCeO/EJC5Uj2MT/ZCqswd7CXoAYjFiQUd45MqruDtoYd6cE9r2fGweaeBkL8BjnZ0kDtLF1FwMxHWNUx5iojL4ZiB/B+wnWdkWmctgY7uHFi5Hxbb+03msXeXhwATP8zL5s0n7GaOyIWHbe+b38T5KP03XxmdDdlnjQMQZGs1F+btkfuRlcG+ljqMHVwbqGJ7GyG1o6kFht1QBuu3UhHHtTAASEWGpFyQZLLYsk5WTTQ8inSBlADS3RvFDRzi59CRklq/1uqjpHmbMAcwL6OveiGktRyF+wriJbOsIMGLWVC/AsgnDknGbRXZkF2Oz6RBtOh9pqHCJ4DZyPetqVxFdJr0HGdje1BHmw05sZMphbDYUbUOfA1ZqNg/z/NQkc7eFEhZFdhKpUXkpRmyu07jQGDVUbHSTOQQPR2PmNjSVoJOzMW07t4sIeUldnY1B0nU5sThSowliE09simwiuTDOmNxdK+UaNso11EphkiKc8omdQf/8B96urvLglSq4YmI76cwIyUhsYk8Ww5C/SSbFP/OoBF4PZxBF/LqGsbja+sDbdc6vJpZyUpSfN8H6dMYEz3HncqFwtUUyS9l3KpczSq4/5cH6TZ0+StGFwoqOA/9OqO2j5RqmlZfK2rxixoM2ZRqDqV6A0kgC5xWi6Mg1l3Oz6YYyt7aZqJw4s7IpS4myTiziRC/dNmmaOkrl6LKJYzb0QahOlrnpV7FRruGliUmsTUwmjG2XJZkkJrfQCxI937aO4BkPcwAp5rbAFg9vg8xuQf2UzCcLFUlxL2tjoXup7xeNu4prjOQ48nIIHdlQkGS4H6jUcaFST848qEUhzgCJxbyrvCT6Y1bZRVeXEQDoOy5TfbLv3Hhxzq9iwfOxZtQoS56fpHzi7bA5gdvmqkvPZ8vTR4y0U6lj3dQ1qyMs67RLDeXkA+J55BdYI/k0Rm6HpobqH15MRAtViotERUJ5bJNVliOv2xaqzRWB9Bq8PJrks8xnba7bxgxLmAikM/KSqLRhjAvk8FvWEQ56wYCoNaP6acFdqCxPZMoiKbbSnzxZysUIOIMdBfFzDyjVOrkD0YZBTI+YjrQ6yn7x7zayWWcXPR+z5RrWSxVMRSE+YDafTdMGaidZKrnF0rVpFEW19GxTx8k3eQKGLcs6IeoqD9FI8rmNmduhKiPRAwBgyUZRZAeUL1c6XfKcWq4J5UIPHNlwtLFodlEAmDfxoGtm0d1zsIf7TGA8xYqu94JUVMKiSY1Ni4LcW2bCDuaDFg56AT7fbSchX5zBFFLgC2TrEtPlGMj6iIFzRTYxsCZjFJwRSrI5URch+e75IS80ZrUoRBR28FXmxH3Orw6g62TMLBukK8qF3v1yqYIzpQq+eaSBy+UaalEIXw8exTjVC3C6F2AxCpPDww9MUkyZ1802Hi69M9FKL8BWZ8dpXOHtXvB8rPlV9EZyQMyYuQ1NMlmljVxw3qbjAfq6iWuhPB0NEC+SKVYvRxdkwSWn3JZI2w1g4PCYso5SC0YmmMlSilObZXtnCjBCetZFNk/5IgjQVi5vYx66420kxEaIhRAwIdxVkfiS/8k221QekmSsKtFUL0Db85P3yv8AJNeBfiTNFIAzyp7M09bnPF2zbRNeZNmTuXN42/PRGwFy03rsCjI0HZhklXzCyRfoUrBy4guG0gwBbNdUfWugS7diSwMOADMmsL+po5RldkV5+KRhNjzlNeleaOHRZJcph5YMcmuxhTrXbacyOlC/uM9c16BJ6c8lGbL8z5GwNA7Q2PO+k9EGQEovadNfEZJz6fB42XJxynchGS+N5Ua5hlcqdZzotjEftJKxXTPZb3nQ/6JQb1BoGG8T/93m5iL7shaFeHC/iVOdnSRry2oU4gJDpVT2kuejajIs0zw4p6PkPAM5Plmb8QAzJhcm88xHyzXUPR8tw+AXPR8TRn/7SqWOwBtFdOkYuQ1NhNxsYgFNlrzdjJ7ji8Jm/rahMJf+ZUvHaanJZYR/5vU1dWRFUnJHty1yAKm0RlLE4W10iXs2yhK/abHy6AkgZrxczJRjwf8XQW38nQ1j9LGRHBf6TIyNozRbdIKMWMmaUzbGxtUATbPx0Hd+kA7fYLd0hHc43ie/91p0o0TTysOu52Pa9GtaeWib8TkShfBGkqtomPCrnJKU+h0APwngda31A+baPwLwfwXwhrntV7XWT5rffgXAzwLoAfik1vrfmet/DcDvAjgC4EkAv6h1dmdvKHO7Cp2YsV1WN5qoMq2QawKs9AIsm1PeXSmliWTwMV8gHGlJ1MXTNG3rCHWVPvC3FoWJMYDKlIrlRi9ILFvTysMmE2tpUdAi5G2exmAKISA/gJv+n/Or+PDEZHL6ellHWN5vxvocB2rm48LRjMvg42LEkrm72snr2NaxGEqolot+HF3yOm2pzGVYlPQ/4zpNngOOUB/PCMIlDKv6IgpxtrOTWMYB4KvGL5P6l2U9leNN//k6WS5VsGRETzKuzCsP21GIZtgBwg5OBy3URpLbbaRi6e8C+C0Avy+u/7+11v80VatS7wLwUwDuB3AXgH+vlLpXx+cM/jaAnwPw54iZ21kAT2VVfGORm9apndSmj7EpWV1Ek01aXflnORGXPN+qD6EFsBqFiQhAbZNiBLfgyYNJbKI2N1Aswo40XX3d1oM6pSx0JPvcUF5yliYdVLzg+ZjJCPfiJEOFOLKT7y/rfQ0YQDDI9Pg9XM9FlNfvrPvo/XKmKjdZVxk2nZ585rwJZLe1h/pqGx9ZpmwnPUuMmBtYaGyKHnRdlGKd22hYg9b6G0qpdxS8/UMA/kBrfQDg+0qpVQAPK6VeBjCptf4WACilfh/Ah3ErMTciaU2ziUf89yza0n1HyoZgNJyJ8j9CUE0dpayM9P8Zgy6BWAdHE2vC+K/9yeRJbPhH0DX6jR/fu4Re0Ep2/YaKLcIzKk4HTaFCNPGkcpoYmDx6jk98129EWSiKGDHVl8SzinIkms5iWtyKTMhE3icZyXKpgrPmUBpCOZsmWoUQLbWVmBtfyFkLmG+G0iFZtof6RFIET+9uG0teJ9fHyvHnTDvFcMQ42trP0aN8D3xsFwyaXTep4mlzp99HcfrVkDq3WaXUt9n3z2qtP1vguU8opX4GwLcB/JLWehvA2xEjM6JL5lrXfJbXM+mmaQ3zdDM2r3Eiic4IibkyVvCJQieVE4KzIRJZJwXX75p8bM9Xp3Ghejw5dejd7U1EOi3mEgOlkJg5IMnzT0TMZlOn852RZZW3KY+pFSHO3LLOEZXGhyxKkK0DCfINZblUwUa5FsfTmhTZD/YCIApR93y0Vfokq7UoxAITxQA7c+fvN0u3xokzGhci5tEIshzJzDniIpHWxsxc8zhLR5xqG3Mc5gc/U3mdEenchmBum1rr9wxZwW8D+B8AaPP//wXgvwaspl6dcT2TbrhBwTY5Xb5seYHeroUtEQPRahQmp7gD7GRx3c8SIvU1kso6Ss5AqPW6KJtT0C8IVEEM995ekCCRAyBBJ5t+NYlqeJA56co/arcrDEsuCsmYVqMQZw/2Ej8x0r1tlGv4WNRP7sn9Dbl1jvsQckRCtGXGLssFhdozrTxcMG3YZZ7+XNziKFOSixm45kOWf5hr7vBnilg1OdnGgK5noeAibVyNwlQWED5PRyGKpun6uoJorV9LalLq/wPg35qvlwDczW49CeBVc/2k5Xom3eDAee2E5raFSgyOGwtcOylgP1OBJhqhn4vmNHCpTJbhTVQGr4PQw6xhkFNRF+Woh1kTmsTFUqIzhrmR6Fk3SITCtkLlYT5oYQp9fSBnkC4xzCUCymsXoxC/2NnBkufjnF/FfKmCrx27C3ulCn6828ayow7eD24IoXbZ2mJDTrxdxNTano89Fic6rSPsqrQeU+olyzoaQEv0frLEZklF9JZUrhRpbePkYixFDEA2kdm1PrghxeXoPqpIkeGSVQ5PSqk5rfWG+fqfA/iO+fwlAE8opX4dsUFhCcAzWuueUuqKUupHAKwA+BkAv5lXzy1z4ryLHi5VkpeW5xgp9UC0mJ8zCShtIueSZXduiHZJh9IHOtsp5875oGVd8BejMAn6Jua3YJ6jaAY6HYvaxGMFyc+OkFVD262FkmxI4WIUJmLxXLedOB27UBZfbFJ853pMupZHTTN2lOaJ69WISGSmMZ8vVdDOEdeyxiDrGZcFk7eXf+ZMJ6+/RcaD7psRTLNI33gdEiHeaskqlVL/CsAjiHVzlwD8QwCPKKVOIxYtXwbw8wCgtX5BKfUFAN9FzC5+wVhKAeDvou8K8hRyjAnATT6UmZNt8jWUh8f8akqpKq1YtslAeqCpSh0XyjXcbzL2bhknX3nKPIDEwNBQXipIv6H6MY20GC91drDOGMM/N+E2Ns/+zzFHzhnl4XwvwBnE6K8dtBKnTyDW7S0AiV7qZBTinTrCcreNp1ioGpUvSbo/yGvEqP5+0ELb8/GcKbMpEK8skyyjtBC3LOPu2qi4kv/psINlHWHWhN/RZrGtI0zovrFFiqdSRHXp0GyiGr1T6Q5CbeLjI3+XLiY2xm5rh0STrrGSxoIsqcRW7vWj0YmlWuuftlz+Fxn3fxrApy3Xvw3ggWHqvmWYmySbM2mRHTMJeteDsYCUp+1j5RpKx+7ChudjA/GCWjjYwwITWWkSLTLfJVqIlGwzT2HMrbXUvi0dJb5cPLiei2wvVo9j1yvjvoNdzHXbmC+AXrKYndwEXM6mNpKLSuoDs+qXbaGQoYVekDB1EtfnzfNc9wYgQXtAtqg5rERAbSKyuSMVmXOu9hBlITHX5lyk/GSzEe3u3Xhr6S1Lt0QPpAWJ6zeeMgzHdoK6bWKQGNfUET5iYgPLOkoY1pLno1o/gY+94xFs+lXMmdO0Pvn6d/Du9ma8uEzsHgB0ohB1Ewz/tAn7kUHRNhFIMgS6Tv1Y0hEWWJ82/SqenJrHevko/vT4D2HTr+KXLv8f+PErP0BXDSrpJeUtaBtT4gtELrQsscxWjuy/jdmk8qIZEZmL2XWvfxgQ6eVOmPdjq0cmXbC5o9DvLvQGDDJNiZCLMiAXYnPlxHOVQf9tSI3PA26JdulmD0Oj9HO7mXRL9iBLQW0j146+zdAbL6erPHShYn8rVYr/mOc3V2zPmvRF/JSqojs611tJxtHUERpRmMoUsulXsVE5itkjDZzwq9j1J3LHpyhJ5FaLQlyyLJw85mlj2HliFTFRm6JeEo3FHjtRnfLeNYzhBhjUOQ2LsLLuL6KPszH0rO8ABoxXVFYW5XkGXB/ybq9klUqpEmKHux9orX9SKdUA8IcA3oFYKfi3jCPe0JSlr+FZRzlJiychNqB/YMtqFGKx28b5qH9mw4zy4pTe7TewGVxBOeqhpnuJrmfTr2LLr2LTr2K9Uk/ytNUsyJGTTRFP36XlFkCiAyT9YFd5uFA9jmePzOCBmXsxMTGJtde/k2QZsYWjyTGxMQ2pH2vqCF804Wo8MYB8F0UXFfcxdFlsP1auYdboEXdLFUz1AlSDVopJUMzkpl/FK+Wj2KgcxYY58WxtYhLzQQsf6gU43wvwJDvntcii5+0qEr1Az2QxIFe9Eq3RtUXPxycrdTR1hH90sJfaKGW5rg2D6xW5BwGv5xX3MAxFtxty+0UAfwVg0nz/FICvaq1/TSn1KfP9l0fcPgDFdi2uf0iJAZYFfDIKMR+0Uskk6eRurqfrQqFbIIWMSxlfpE82hqQEyhpWvyXbJhc0JXh0iXG2emQZNh3VItJE4zFfqmDdiJq7xgVkTmxYXNfWLpWx65Vj5KZK6HollHWE3VIFiw7m5KIi78QVBjYKtMTRap0FvOeNe55O9bD6umJ0G4mlSqmTAD6I2IrxfzeXP4TYxAsAvwfg67gOzC1rEtjSO9MuSQ6nq0J/0tQRZjo7+HuvfyeVk2027OC8CcInxT6lsJkNO9jWg6dCcYsq15XYEAVnKJIaysNct42PNFfxo+VXsdK6jHapjJ/dvIC5bhvfcMTCZlEqjZNjobgU5zwOMoup8f4Dfd84+k7B3s8faeCZo3f0c58FLSwc7KXGc9Og5Rerx3Ghehxr5kSxso5Qjno41dnBfNDC3UELH9NRcr5snstHHtnSH/GxoetZ0oUNaXGdmC0+OY8S1YVgtNTfvCQR10K3m87tfwLw3wE4xq7dSY54WusNpdQdtgeVUj+HOJof12OfIXTGF5WNAXF6MuxgRqSzIboYhclJW6eMIYEfzsEVvTI5JJE0gLhEHP7MVC/AfZ0d3B20cF9nB13l4cH9ZhKTOqwbgE157lq8RZ4tSnxB0pkDXzEREWUdodbrYtYSR/kaC+7f8I9go1zDPeVact8aNNYmYqHhsf1mJhOzMWDZNk7XioCyyuV574qQa9Oy9YM77x7Gquum2yRZpVKKcjH9hVLqkWErMEG0nwUAX6lR2KlTZNP1kJ4ua3dbxSARAyE90hnlpbJySB2V3J232L22yehSRFP8JNB3fSjrCKVu23oKPfVb1iHLzSOJWFxe9JzZkT6T95X6xf0Hgdhvb9fzMdkLsNDZxVTUxaRJ0klJO+f8KnZLFXxl8iQuVI/jicYi/vrROzHXO0CvF8D3q6hWj+PIkQY+4/l4sL2FB/abWOoFWBHolNrgQqS2vrnGicoC4kQKVJ5rDIn4u07EdVNOi0WD2DZF2TYXXT9xlOj2QW7vA/A3lFKPAagCmFRKfQ7AaxRGoZSaA/B60UolgiiKKIqW6zLl29CTDF2hU47IH43uJx81GxOhP7ngbe2zMTgZTzkbdpKsDzzuU5Yz7LhISqIYBLKU9/OFRhEUPFqC6pCHyiSpt3sBToT7yQE6U70ALxhn6l0TTP9sbRbP1mbxfz7+DkxOnkSrdRmt1mWUyzXUarOYmJjEvVDYqdSx8dr/gdnOzkD7uFuES/wvMk40FqnwPZYphpPL2DBjedeuuUFMltptQ55Z7iSjRW3AbWMt1Vr/CoBfAQCD3P6B1vpjSql/AuDjAH7N/P+TwzTAZULP2yWlewF/Rj7LRUSXDsmmd3G1UV4jtFfUesfbP6P63vikbJ8yp9M3dZQESxex3GXVbdtQuJWQMntw3Y60+HGUCiDFSGaUl0rqSRliqT9lHWHKOO8CwL2VOjb9Kv5k6oewUr8TjeVP4j+/8/+EY8f+A6rVl3Dx4vvx4otfQhh2sLd3Cd1uG2utyzjV2UHNZAuh+rkYXBTVuHRtfBxJTyojFegZ2/u21c83Tn5/VlSIROajZ2Buut10bjb6NQBfUEr9LIB1AI8XqczFzIjyTOz0WTI2/qzUa3HExReDa3Lnfbe1N4uBZvWjofonO+2yYPKyjlLJD/Pqt4nf1FcXiuA6ShsykIkIGpYxbygPDR07R8+Z3HVlHaGN/qHKJGaT/nKiVMF6pY4Xq8fxe7P34YdmT+HHfuwfYWmpA8+bgFI+wnAaa2tVHBzs4eLeJcwHLXz8yqtJXGybxeASLTKGV9QRV+rDuP8cZeKwBezLcbcxKHk/d/7Omr+cbOVnGaZeHcnRfrefKwi01l9HbBWF1noLwKOHqdS1u9liFm3PSDcE2zM8KJnfW4RINKX7F8xnV9oal5GAt1cyBHquqSPMshAsoq5KIyUSHfOsg4cR67lYbdP1pNphYRxEiQuNSmf1kGFwlBXlQvU4Tk7fg+npe+D72+hFCru738L+fg2bm5/H11r/GxYO9rC838Rs2En5G7YtyI3Hvrr0WjakbkP+nMnZ3ncR1QC1Q8bvElOmMbXphl0bpE1POHpUN0ZuQ1MJKtNyZHNfkDoHG/qQuyiPSy0ishE11GCY15IX56pfIKRgdnM56bd0//zPhvKSpII2FMj7eTEKsRh2MGeu8awYU56PpRxRd4YtbNnnPOIK72WWfYV+k4yDxpq74HDGuG70Uj3jsEskD6VeK1XwYvU4vnbsLiye/BHMzp5CufwGgkDjpZf+AX7wg1/CxYtP4pOvPY/57lU8sN8EAOyVKvB1P7B+3ojBlIqJDmmmEDk+LjZy6dC47pSPk/ycNaZU/moUJiGEMyp9XgNdIwf0IlER/E/O9xnljWhB3ybW0ptNchERFWFaRRmbjUlKRLLtmOyAXQSRIq9roVAkRUN5mI3CgYwY86w9nKm4EJzrOolsDYEUbMptiXhs4ijvg63ffOyIbLnalPKgdYRm8yfR7a7g1Vf/b9jYeAk7Oy9jvns1OTs0NOPC0yLx+qfFOPP+F2VILuZSpAxXuRztS/VAVpaSIlICf26UpLV3XfO53Si6KcxNvkBJNr1OEWQi4w052RYe13/YJhGJX/zELFuwtq39tvpt9ya52pSHjyEWgZ8/0kiciMs6wju7bSwat5CnWHwlr4/v5lJp/XCpguVSBT98pAEAWD7Yw0WWAIA/I5kxMUQyFkjrbYrpGitqzZRBOeMAJDG7PEqhFoXodvfRal3GysrHEUUfwdrav8DS5efwkdZreLj9BtYrdTxz9I4kHrimezhh9G7y8GsuAtrehU3v2NQRnhF95xmabfo2OfYuIkTbEHOFJwtY8vrHLvJ30LDMd6lHtbXFH584n9AN7YGP4TIkAG5GwSkPzudRUafVYYK1sxTFA8yJldvQEdqejy2/Ct9cr0UhFsJOoTZKHVJDxTnxTvtVrBgn2GXDIG1MXSJO8l2jcyQaetCPi8aCwq9I4c+TUXJxGwCmwgPMhh3s729B6x7295sIgha87Zfw/tZl3G3C42R6JvldIkfb+7apLjhx/aycb7Ywsywq8jyvx4byienJecmfl5bs0dJYLB2+MqWsivUiZHMadU1a106btevaGBUhgSXmvJvH2Eh3RWVLpOVClYDRv3k+XpqYxNrEJDbKNeyWKnh8+yXMm2B3mSTAVi7Xw32mehzfmL4H/3vlGL7YWEAtCvH//MEzeKi9mUKhPAB+RsVZjKeVl5x18LzRoz3U3kwQny31dVNHaAYtAHHi+y0dYblUwYQpp+35mOoFeKS1gfsOdvHkc7+L3VIFDxxcQU33MNdtJ9mJKSvI+1qX0VUeQuXB11EqwSdnEjYdq3z/LgS9pbNREX9e1murx6VO4c+QNRaI542saxF9UZXcUbIkhYbyYM8jMzyNkdshKnPpZjgVQWty98ujYcQJWUcRJb3cgRc8P3XCfBEi5kmi24Z/BJt+FbteuVCbbQvN86u4UD2O5480UDt6J1aiLraMywYRiU68/XQaFTE3irflp1C53uPAYTOMKN0SpZKqGT0juYtQLjcg7UoC9F1k6G+aMRFCXrbIE05Zqgu6LhGt1H+53oNtjrkYG2dUtrjTBJkZUV+iZFknMVR/JK4gY7F0aCqZ/y70wy1y8lxNm8jhOlNhWJieF5vn2q2ldbepY1+m1SjEcqmSRDUAxayYdM7Bw1dfj/25jt6BtYlJlKGTxJouBCmtcBRJ8Gf1E/gf5h7CB440cNfMvXjsYA8br/z/Uv2RsbgN1c/QsWkYIenPXGIhgGQRkqWSj9e8YVLE0OgUsrPmXtoIZoEkfxs5/hJz44kOYO67s1LHRrmGLb+Kv7HfBFqXc5FtFmOTY0oMilw2XFZNOZZSsrDVm3xnsdFUJyXuJP3kuaCF1ShMpXu6XjR24j0k2RSlrnuI6GVyj3ob08tiai6UUcRVQDIzVz1N3Xf85M8WmYhcNP1g0EJZR1ibmEw59lJGXpt4wkV1auNyqYI/rNTxY8fuQq02i2PH7kK5XEuQYBbJxJ3kY+ZKUc77SZ/5BrWgo1ScLjFAmUnkPTp9YPVUL8BXzTkUUtTbNVEOJMZPmoQHEukQFXWTkXOFRz5IBCUtn5yxScRnU5fIaw0Vu7YQat4wyQMWohBnTEgeR8ayraNZ0LdJ+NX1pjwR1cYcpH6lCFI7jNI1b4fPqmOYnVU+F4UdzOsI93V2kgVOoupyqZKa3C4UsVyqwDNB6QDQ7e5jd/cVdDo7mAv3k5OvbLqjBmNsJCISgjrPTjqX725LlMGZwpojgoMMFu80jLxrRNZaFOLAxKASCuObBkeXG/4RrJeP4pVKHX+zXMO60QkO4/Nno+VSZUCCSFk1LWVTf8j1hluls3TEPBdhQ3lYQDqJwtMGsck0XrKszvgMhYRuuR7wnVB6mg9bRhEmVKRsvvDzFotNz2IrL+uelV6AJR0fGQjEYhgxGnLJsOlgCC1RqqF1o6/TOkKvd4CrV19Dp7ODE912itnwNlG5hNj2jZ5rNuzgBZGlRPrDcfRIC5zeo8v9Z0Z5OFOq4JvV49jyq3hgv4n5oIXnwk4ighFRRMJMqZLoJvdKFWxUjmJ94hg2OjvY9KuYB5JjDKldhyFybuZiNh8jW1YW7jpT9/pHNPJ7XMYr0u8CSOJ8s7IO2+Z5D6OhMXMbknqwL2zO0Lh4xqmoG4T8fi07N0cJrnKlud52DiqQVkpLJbCsi67xk5+AmOHMVup4r45w1q9izXi/87FaMsyNnwHxzSuv4iGD4NYP9pLgdblo+Jmp5J92n8m+sWGSQ3I/MldYGZG8j5AHv3bar2LDJKlcr9QxY/RyDRaHyZkmPdP2fHSjEHcHLTzU3sRUL8Cpg90B0VkaBqQPG79Htn9VjCuRPP2Ml0FtXY3658xK30giyeSeYQhPWkklPWwSgRJCJkZYGrhzeIp1bmNXkKGIH8pMoUzAYMoXANgSZwYMQ8P60mURZzY2pELXU9k1YBenbaiFIz2uwG4oD55xeeCH1zxbm01E1VoU4qP7zRSaWvJ8nClVsGmeme9exePNNXS9eNo/ZGI0u0i711C/znnxyfK7xoCw2W2jqePzV2UCziz0yfVRZD1uGuZIfV02AfTrlTq+duyu5KyEuW47YRCyvuVSBWsTk2h7Pua67eTv4auvJ4yNdHtbguEAfVGTnJE585D9IWZ+zq/ijHDVeIptOrIOoJ8BhI+xaz7S76tIO/jSb/z7DBuHsyZ78Ua5hpNhBzNXC2cdy6GxWDo0hVoPiD95iExaAWkikD8WiQ4AUrqga0FsVJdt8fIFaztu0KYftJEt5Q5nbNPKQ1tHyYLlbhg8jIncIaRBgagWhZgL9+PzILxSosPpOtq0wOqh8xtk3jbbZ16GbUwabKHL57hVtBz1Um4qsuxp5eF7JoMK9YWf/wrEoVgu1QRtVqS/WzR+g7wOicZnzFiXdYQ1YS2VzKfB3oe8x0a2+WKTOKQVlreP5sZh9Mp2GjO3oSmEG03ZJsCMSucIA/oMjESoR8s1rBy9A7UoxIc7OzjoBfhM0Eogvm0x5em8ZsQEosnmCt7nf1KctunGiAjlcfGioYwbAPqHQM+a+tYrdbxSqSfB4/RHz/LyyZ9sJuzgIXMea1uVMBV1MdULUsf6UX8oeSQvwyaCNcS4cFGKLz7uBrNlXGR4GQ3loRPFh1M/uN+ME1lGXbQNeuREjGi3VMFLxvgwb6zKzxnRfLlUwWy5hi4bDznmSbJNc48tIwcfD9pA256PyIjmNqMAPcdF+4uGEdqYYRbJ+dlQXiKGSiNNTXkpw89oaGwtPTTZlMtZQctSj8WPuaMzLjmSKUIuUUQiD7mQ+TVb7jBbHUX8ouj/tPIAw7x4sP60QQ6Tpu+EVloW8aehI3joO8HSXw1hcsrXsGTTO7qCu6UuTlotZ9izxITnum3Uet1E57at7ZvSnLkfQIJqt8w7WPJ8zLF35IpEsJ3SlYeu5qMQ63rQkGLTo9msqFTOMNdtJPs0ZxKATomDwq+Fxn5uIyCXtzhnKOf8KiaYd3zDBH0DscL3A0DiRQ/EzqA8uHsYqC59lWgHJhRCZS6b34iR0lmaRFwstjFyKlum5eape/jzZ41Lx1QvwEPtzQSt/EBHA2csXDRo4+eZUcHnDCQKsc5OjeLoq2nu42IhtZE7r0om3xRjvOj5qHs+5hEzWDJGcGSTjJ/RAc4ZX7YDg/BWjP8bH0+yIj9y5dVE53be3E+/k0h5hgX68zbbTkOzMdGmjpKzEyixAZ+nMqqAfiMnbqnP5GOdRzb1wqrDBeThsIPloIULpv9X9WiOKdF6NEkvbybdlMD5vBAYACkksytEMKDPNDgyKesIG4fcvVwOui4jANDXdSzqOH6SiysucceG2GS9WcrnWhQmecukflHWx3VnhJDopHnb2DfZOJKYIxlYESMNOaHSO1sw4p8kjkzJuCR96KTuakv39ZDSnWVLR3E5OSKaa7xc11bFRsnflS2wXcZBcyrK4PLaZYujHRVyAwA9wrJuFt1Q5lYVgfOAWzykXZ6CxykT61cF/P5nB3v4xPZL2NYRfoeFJ9kmkWQgrt+AtOjExVD+bM0cRdeuHseE52PBMI/ZsIO2SCtEukNCQtOqn9esFYUxQzDM8gz6CBTm84Sps+3FyTOpf8tmwRNaeMxY9tbNuNWiMNFN8WBzqZQmhvyEsVQmzqSejwX0FyXXOdnQccP0Y9dYQkk39l5zMMwaQ1nyPXCE2NTpEKpFz8dHyzVMKw+bRi9IFliuuiAGd96Uv+j5WARSwf42pilJGiRId2Zz3WkoLxFFl0sVLHg+ng47iUU1b0OwMU1OWUYq0usBo8zrpsfM7TDksmJx4oppUpaWdZTol/jzF6MQ//hgb2CXzAt2tu2+edZRSeSecdmcy0m6j67y8JARs6hdJI6RiL1pyijrCNOmjdwaOo30Ls+TNHYVO73c/NF9pHTn1lVb2BRZDKmN1D/KzUbWxCTVkWVTci1GQmy7pQr2jGWTMnlQW+lPLkyO6qXVkm8AtnfEGRExMR5Yz98H7wf/T2PI++gyCtks3nRMowwTlO11zX/bOMj2SRolYgMArTUihx75zUQ3xc/NJnbJF7RortFRcN8LWonfEcUj2p4DmD4k5wXZJicRV1JTyA1NSkIsj3fbKOsIr1TqWJuYjHVHwVUAcVD3rI7wuEEZF6rH8ZxfxZ8cfwe+WT+BU50dPLjfxKnODh7bXY/Rm1GkS8U1ojAVXE2or6s81JWHOvoLZqJUwa4X51JbMA67pW47RjzG+XWqUscUgEbQSlJg0xjQ4qK+b+sI04gZy7RlvGx5xUjhPx+0EsZGRMhMZg7h5W1ZmMlqFOK3glbi+jOtPDwddgYC2ak8nkCTLJ6LrH4bg0uNt2WuEHF9KSFGei/bOgKYTtNFWbrga/HPHBVLGiO3IYn83Iq4g9B9B70As1GI/zns4BkxaVwThC9Aufvb7nWJq9SGRaQXPolU670A8+ZeymRRi0LUdA+7pUrKP+3F6nFslGv4vZl78WMz9+K1vUvY3HkZXeXhsd11AEhEKdvio0VLi2qeWYgBYEJ5mNcRdk19pF876AX4fLeN5VIF7zQZPijD7ynG2DhR/ZTLjpT/EjFJxkZjxIPe5eEwUh8lrdAuFEK6OLqnobyUiMwpKV95KXebpK3arhOlZ239o/bRf+5wTYiyDQDMwJEnndioiD46CzWPisbMbUiy+blxBCaZDD9cQ+7QWeZ4oC92ST2ZrJffT/85Q1wuVXCpNouu8nAsikNq3mucRwGgC+DuoIX3ty4nfmW2RU2f3+35KJdrqFaP45tH78Bctz2QI801sfnGsGD+U0oinsCRMzaut+JZPqSBxjYuXJSrm2fP+dXUifNyDBusbO5gWzN6MBtykjo7AEleNs74qO9keV1lDM+GwLklmBgvN/bYxM0iG6aMLAFiKy+1jaz1VIdEo1INkqXzI3KN1/Whsc5tpORS4DaNgttmbXNNSJp8xNhsz7oWg7zm+dUkh39ZRyhHPcz2DnCEiX3zQSt1Nqc8FAXoWyxLpUrC3P56FOJCZwdtz0fJEpBupaifUmne6LPIssktoge9IEE2VJ48oKWrPCc64Q64Kd1nuYZ7DdM6b5A035joXkKP5LZCbhrcNWOYRcp1T1k+kbI/EgFLxjaMvorm1KLnY4EhQe5+xEO6uD5RMjjJHGVbRhlCeBgaM7frQFKX49LFcJKLi+IHSZSieEM68i1rF+X1NZSHjXINzx9pYNdYRgFg2SST5Gdp2hgbUVd5uDto4UgUItpdxxulCnq9AN8KO/igyfwxLSZ73qRu6jhHGjE0GZpV93wsY9CNQTK3LATLx4EOjaa+1hiSJqZyhrL2mjooBvRUZwdbB3tAFDoz5UrGlMX4pJFIIvoZFZ8bQd850+AbHuluJbpyMXwqr6GjRIVA5ApR42QzXMlN3WXcGrXRIIu0HiO3kRBnTLbJXXR35+LJvSY7K8UgAkBoGMxH25spowAnqTSeKFXwlepxfPnY2zF3ZBqTkycBAE+89jwe2t/C3UELp0zI1/eZkYPaw9t/MuzgQSM+vrh5AeuVOk5Wj+PB9laCinjEAy06yeToO7X/pMn1JkNwuspD2fNxOoqz+86XKlgzbaH72gaBNLTw2mdMqGEY5QuVOrb8aiJ2zxplPo0VbQQcHf5Z/QTWy0fR9nw8akR2Gb5EIU7ERHnAPdWfJabzzzR+S56P+02Sxw3jjsGtyWSMoOt5jEXSikHFrnvznpcirtQ52vTAN5bZja2lI6GsiWCD7kRZegpaXOSiQcfCAcCpzg4QhQO7syyDnIfLOsJU1MXz3X28NwqhdZR41JOei5hQVkA1Ld6pXoCZsIN1w4CnJgKsV+oxwmFWUbngJKqgseEOukD6OD1OdA+5lBB6a3s+JpB2NTmjBs8urUUh2lGYQqn894bycEWgQgDoeqWBs0qpP0XC73gdRd0hlow7TFmnDRCcst4//WUZHPJ0uIehG4nO8miM3A5JEqENmOIxKJ7yRV7UCvVsbRYrR+/ApkkN8+Gdl/Hw1ddjNwixOGkHJz+lXao37OBH936A+eoUNstxMPGHd17Gw+038OB+M8mQSgxOTn4qn6xrP2F84dYqx6Abi3hifxttVcJCcAXYeRlz3TaaJl++CxVwpfYEExNbhqltmn6QSN7UEZq9ANhvYtHzMWUYvjQwAEh0Ze81bi61KEQXSJg5GQjWGXKhxIyveenMJdxi2mXjzPV5PC37YRe3VLafKVXwzYlJ1KIQD/aCxLWD1BRt5QFMrJRSwjm/ihnlpdxVUu0tyGSpTBuip8/8j4+LM7tKhnQwSnorMLfrbXa5JsqaRDYrHyl7ubWu1uv2F2WvO6AXI/8tom09mMN/LtzHfNDCmvnjujZbm21/xPgShuGVUCpV8GD5CDYqRxOrp8tB1aWApna2jA6JFt9a1M9tBvQNNKsCfUnGZmuDDN9yBd7T71wvRz5uu0YPalP6U19GRdsMpRJzL0o2fRhvo20jziObkSNP1C5avmR2vRGkGSedW5G/PFJK/Y5S6nWl1HfYtYZS6itKqYvm/zT77VeUUqtKqReVUv8Zu/7XlFLPm98+o1T+6dM3OBOvHhC35EvmvkxA3+zvmnT0mU5U3y1VsGacVX987xI+tPNy6ji53+nsJIywwRYzJVKUJ5ifCzt4TEfYKNdQjuIkzu/e38J80MJ5FtIj+8FPqQdM4DOAj4YdTBnFvFIeSqUKLlSPA+jHqrrS9JBBpKnjxIZ8HGxtIDeagbAx08dkAxDiKmdQxBxL3XaSeomI8uitRmGcXJQd5NJQHt7XC7DpV3G5XMPX63N4d6mCcyY90TO97DTgnAlKEdk21rysz3fbWL7yKnoAfsvUk5yHYEFHLkREOkXpe7Yl/vP5miWu8s3ORqR/42VlMVu+8Y1apB0hcvtdAL8F4PfZtU8B+KrW+teUUp8y339ZKfUuAD8F4H4AdwH490qpe7XWPQC/DeDnAPw5gCcBnAXwVFbFN03nlqdzyZp8RPzajOpb9Ah5UFbX870AzzLfI84s54EkbY5U4Dd1hEYvwIeNiLYQXAHQTzdkE5Ft7ZRlTkUhpsIDhGEHvZ4tbeRgJltpTaWy+ELkejmbTyA9s60j1AVCJYsrT5O0LfrHxfZ55SUnWhETIMZLG8eHjdL+crmGXX8iMZpQe/PoMIuWNhvOkPJ0djbjlWRkrk04q1xOMoGlzd+zaF9dm8HoGNzorKVa628opd4hLn8IwCPm8+8B+DqAXzbX/0BrfQDg+0qpVQAPK6VeBjCptf4WACilfh/Ah3GrMjdg8AVnTT4eq2dbxCu9AJ8wPmNkDdwNWvitsJPyr6J6aHKS1cuWzocnBpzqBUkkQftgD0/0ggGfKZduhdPnum0sRyF+dutFLARXUo6/D+43cWAYBN/Fl0yfGjqypmGiBU16upS7hXmOt29aeUkyTEJorShECfHZsk0d4dtsvCh8aVp5+Gb9BF6sHk/0mA+2t/DjV36A00z3SBZQmDpmwk5y0vwV66j0xWaqz4Zw8jYSWQbdQ38Lnp9KJyWJ5oT0j8zyk3Rt0tzX8qPlmjVllNyAXAaMPKPb9aAhrKWzSqlvs++f1Vp/NueZO7XWGwCgtd5QSt1hrr8dMTIjumSudc1neT2TbgpzG1YHkmXB4orfp8NOynv8KeF6YGtDlssJF43oPAF+MC/3kOfPSBGFT37Si3306uv4GTqf1LT/BZ3twMtPWOd95G2Si0syX94WEk9l/jhqJ9VBIWhd5eGlyjGs1N4WnzhlrLzv3t9KLJO8bq63bBsdJTE3+S7zGJmL8lJocWsp1yXmlZ+FkiXZ3hmNHeW2W4Rd9+YiiQyzmFiWD+hhaEg/t02t9XtGVLVNj6YzrmfSDT5xXhWGzzLExfaMjFOkSUDP8h3XlX1CEk8tTTqlg16ADR2l0ua4mCNfBFQG6cx4sDeAxLrJGYs0QABAoxdg2bTPZS3j110IgTJyLHo+poEBsZOXyxnVouejV65hvVTB87UZfLN+AhuVo3hPuYY1o2cDBoPSF6M4+P6UieI46AX4EnOipvHhiz5Bw5Z5kiXy5zGKzwSthAnYkDYvg/S89B5ofHkSVEk2/SClBd/0q/FhPhhMOpnF1IuoY2T9r1r5wPB0na2lryml5gxqmwNAJ9tcAnA3u+8kgFfN9ZOW65l0U5DbsLoKIi6SSsUrZ1au4/UAu25PEi26CeMr9ZwRbWnhca//LFG0oTx8pFyLUxz5Vbzm+Xj0YA/otq06GBuT4xNcGgeK6m2oDIkoefkS5VF5hDzWTYTGhepxvP3o2/BDfhW+X8W6cZYlvSUZToCYUa1kjM+M8nDWGH8SC6xBonlIRY6Z6z76/fOMCTd1lDpwWY4NMTf6LSmrgAhIDDQlChtD0ayOcMaMqYyVLrLpjy5fWx5d9wiFLwH4OIBfM///hF1/Qin164gNCksAntFa95RSV5RSPwJgBcDPAPjNvEpuWbGUJpUtuaC8hz7LBW+zNNmYAr+HGzEWojA57Ugu+qJiFCVupHRDc4axSXJZj23WNonwAKROAJMpe6hfhEopo8gCu9c1dk0d55vjLiJR1MOf7zcxG3bwwSuvYj5oIWI6N9s42fq1pfvGDSo7K5caUR5ak+K37XdOso1clHWJzrKfck7RBvh02MFZc21bR3iBbYy2NrjaWLQPo6JRMTel1L9CbDyYVUpdAvAPETO1LyilfhbAOoDH4zr1C0qpLwD4LuI8G79gLKUA8HcRW16PIDYkZBoTgILMTSl1HMA/B/AAYln3vwbwIoA/BPAOAC8D+Fta6+2scrgrCFHWS6LJlXVeJv/+TC+wxgXSZCfkxfV0Lojf1BEuGmufzbIn22FrP5BmbnsmK21WvbwcGyrkBgTeFsoxBnZKuxxLcrYln7rZsJNKdMnvTbXD/N7XWWm8v3UZH955GQ/sN/Gtg71USJJk1MQ4beFNTR0BUQjPtKmGfoSEVCsMsynyzTGrb1kkmVkWo5M6YXIresaknOKom9rBkWUWowbs8a5SAhqV3m2UySq11j/t+OlRx/2fBvBpy/VvI+Y/hakocvsNAE9rrf+mUqoCoAbgV2HxVckqROrcbDss6cvOmcBnWzpqTnyH5WIGL4vI9Rnox0e6Dv7IWlyuCdrUfcdXcvqd6gV4TbSBMkzIYGxZPrWDXyuyWPkYyzRMGwwBzhgGyImMJpT15MH2Fr7mV7EQXE3Q3Az7c2Vqoba7lOqz7JotVKsI2d67jHCRddsMVS5dl2zzsNdd4XmHFUdHbUjg9FaIUMhlbkqpSQAfAPBfAYDWOgAQKKVcviqZldEiANK7j1RgP2p0OQhaiTXQlb2VLHu0MOk6uXIQ0smaJMulSmphc8SYlY1EUkq003GyzTkdJac70clTDeUlOdLWjVMvBCN3IQU+Bryt/MRyGgcb8yOfNnks4HKpgisTk8n9tShEw4w/OjsAgJ9RHt5/9TVsmLjdLb+KD3j9M1PlhpK3cPmRfFz05ejPhSxtZfMMuVtsw6MzLJ5iBh3OiG0MjovIef2xbTa8DmDw5K08nZtt82+ItSPVMRccfpPD0e2TFeQeAG8A+JdKqR8G8BcAfhFuX5UUKaV+DrFnMWpIHxAjJwItDHqhZbbIbS8+y5I0o9jp6YaxkVc/iab8meVSBfOGuZWNqJSn68tTZnPifeHXymKCb+loIBmkS7/HF1SeEl5SWUeQrZ9WHl4TyJXeByHo93bbSSRF2/NxRDBT/jlLb0bl0nvkDsTyviL9IoZGesUi78hWBn8mD8ENQ3mJAbLGSraPSEoVo9S73S7MzQfwEIC/p7VeUUr9BmIRtBAZh77PAsBdXkknuiH0vcnp8wzTS5CFkjKbAoNnHtBxevKl0n3kaDoftLBlCeMC+q4f5epxrFTqSRzqXNhBQ+zwqROWkLY2UpuISMSdKFWwaU7v4gyOdGeLOsKUWdSzBnUQgpRZXXnZtFvLRWNLG2VbWF3lYVaMx26pkmRR4SFrdHrUxSjE94IWzvQCzHXbuNvE2dLYLJcq1rrkOPH2kbWU0qMD/Y1AipZ5hqBzfhWPV+oo6zjfGneylvoumm+8TdT+Zxi65u0owoB4n7MMErxcAMmGZvvN9p2QukSA4zMU+lSEuV0CcElrvWK+/xFi5ubyVcmoTKVEUvmyecxeUxfbjeQEAfoWtyss64XMm0VEfmibfhVb5mwBnsUCOJwJ3oZAt8VEp/acjsLU79OWiW0bB5tnvCujBNG08rBrPstklbag+a5KJxYghDhn8sjJ5AHD6oF4sD6vm49fUYbSMGiyJsQ/oHi4kzTq0L30f5i+FTFYuJhY1juUOthRIkzgNkpWqbW+rJR6RSl1n9b6RcRWju+aP5uvSi7RwiZdGlFDefic0U0V0XdxXduC52NtYhJd5eGKCSmiONPdUiU5gZzXtVyq4PzUPL5eqSdnbL6/dRmz7fjgPUKGHDlxputCTwCSQ0i+Yayj/FkucvJgfbmYbM7CRFK/SJEKNGbSYkliOllvuRg4qyPM6Qi7ykt0gxSWRaFs5/wqFlk40rzux6Vu6n48J2faNhUEj4CwxQNzBrfIQseaOkrcVqRxh/S0AJJQsieNbo1bxZuMSfH/PL2ULSTQhsKuhZnYjAmk8+RidVNHeMpIMJykUYm3axRZQW63ZJV/D8DnjaX0JQB/G3G6pAFflaKV8UB1m/LYZcKn++nZBlsU3MWBZ7ngh6FwY4PnV/Gd6jTWJ47FfmiqhLYqJeVRFgybawMXB7LEjRVmAbXlCON9pv82RbYsn8eYAsCKGszT7yLSlwF9vR8/XIZ/p81hgRk7sjYcKYblMQEbWpR9tSE4F/IiC/CqY0OSRizXGPOx5PNtlOSSJIB4fmadG2LTw44Wvd0GyA0AtNbPAbDFj1l9VVx0FXogpRBQLCurbSIQqqJr80ErlXJ7t1TBvucnzG7a6HiIEV6o1PHHx9+BC9XjWAiuxDGQpXKy+HdLFdSjMI0eLOSydMn2rzoQGn2mcqRILu8j3WRD9c/KtE1sjji2dKyHWtQRykb8JgZHLiplHbt8EMPZLVXwl7VZdKHw7v0tzIYdNDs7WDH+hPerOD3SJtL6UBvacVn9ZsVpYds6Qovdx5+fYbpI+o0sopRi/DmDYDkzInGSb1L0DM0f/pfUK6IIeHtkP/IMATbUJ59ZLlXwKEvVvmB85GzSgUucfZOEX90QuimHMg9LWTssZxofMIuE9Gz7TOcG9FEChUO9Uqnj2aNvwweONPDdK71U2h+ObqSLhquNRDakIdEeoQHbJJWnJ9nqIMbW9nzUhYgmx4fakZy7wFAZt1Dy1EckKl6oHkfb8zHbO0jqfaYXxJbJXoADVldelAVn1nSNMvoSQ+LuO7IMUrrbIka4KM9THtk2GY7cKKyKl3E9wpzy5jDVT+NOc4/amKVb4+0exYK+bXRuoyQ6lFm+oCKhMvSfDAAc6VDI0YzxBJ8DknjFXWOpPG+spVzvVNYR/s7mBeyWKjgdXMVU1MV9nZ0ESZADLkcCkkkBg0hsS0cDnv82MdamvM66l6O5p4yVkuuN8sQmCvxfDFqYZbo3eXoX/3vkyqvY93zcY44xvKT7/l+rUXxg83ypkpyjmmUMsi1MYrhcx2pDNlz3aWOS8v1IEV1aRnmdtrNtpWWeE7+Pp0eyMS8uVsvnZfkXoxDLQQsN5WHW85PECoQ8Ryl25tGYuV1nsk0McjkgRrUW9c+LpIXySSDlszbVC/A1Jn4AwJaJgPjZzQspxEauILS418VBwi7GRp9tC7NI5gr+u0Qm8rkt5h4j68uqg1Auj0ZoKA9V5aFmxFteTqMX4P29IJXA8hLScawN5cEzC/wM4vRJK2zjsRFfpJypkbgox4w+S5UGKd85muMGKukWI1UadA9nLvyazKYs271o/Oryxj9LZcDbuRqF+IxhbksMudE9Weqb0aLNMXI7NEn0ZnNfkNYr7uskj75LLUhWDnfr4BlgT/cC3HOwh67yMG9yqpH4Sll2KciZLxyb8j+P8tCUjYkVKds2Zi6xUN4vletZKKUVhSlXkNN+FaeBVAryyKDINQdik+R6X7IN8v26+sb7VKTe1DNM3JW/zYixSXS8bE7SmJJl14XgqF82Rmlro62MPMa2paOR+bndTtbSkVCI9CLjLyiPCXAXAj5BbJO6qfsHFhNzO+1X0YrC2LRusuECwLdEauxLup+6R05Uaenk9VF7ivRHiqU2xJangCZRRZ4fwMclrz5SzPOQJX6SOpA+1LmhPDQnJrFeqSfHG86GHfzjg71U+ZwkU+ViNO8LZ7SUlHPFgsbkmFC5HAFKJuASC+mzfH/Uzsf8aiIhULgaifYNcW4pjyqxzY+UwcLBOFzvnqtgbOXy76M8IObNTjdNLHXt3q57bUpp1y63pePstnNG3CxbFnrWDlnkHk629tsWel5g+WFIjh/VkSUWcuLPnilVsF6pA2ChYQd7KX1P2/OxZ2Jhu+KdSDGwiM7Ndm1b912EbEye953+y41SBsw3LWPC62iw/xJNkoJ/Wtszm1BZsh38t2HJti64tCLbMGo3lTFzG5JoV8kyr9tQiiS580oL5FNhByvKw2M6whmmT+PPUBk8qmFaxadgyTZm6czyGBsXtRoqnc1Vooo8ZiAZuovBu5AK1SfFUfq8NjGJrx+7Kxmr2bCDR7vtJPXTtPJwvlzDhepxHIkGj/iTKEaKmRyB8E2K91NaOsnFQ5ZD/aLx5I640tDAy84L5aL2N1R8/im3HJd1HC7XYM+SDpNCtrIOvnFFj+QxJld/rodVN6YxcjsU2VBYFklUYisni7Z1hGkMptHJa6Ptc1bbZPvkQkxiG40S2iZuFdHJuCyJNrI59W7p+DwEKovXQwila3ylJDLjFKrBcCnZbn5QjVSeZ6EwXlZW34rOAWDwOD5+3VUWzZ1aFCbWd3J94QjZRUXaVhRxZc21UaM2YIzcRkpy8hPJlOFZ6IZyslFefkJjAJJTpWTON+nwyXVtNodjF3EUROXza5QoksKN5oMWvhi0knqoDZLBuaIOpMHFhn6zfN74dyrnTuP6AgDlqIcpZpVtGsQy121jv7ODSXMmaS0KU5a9GdZmjmR4XeSQa9NRbekoyciy5PmJDxrvI1l5+fUiG6ULeUsRmP6Tu42NqK+ELJMMyEIHatucOYrnZENiVA9ZqJtmfIDiVvhhaZTJKm8m3TQnXqnXkGTb4bOsUPRfWriAdMC6JNvikteKMDbZFinyTSsPbSPibPpVTDny9G8JJsCvF6UsRCNFQrmgEuamoySdEa+7FoWYNKI7RYLYmKlroXKSDMU1J7goa7vHJbYVISrTZXjYcowXPcM3S7nh5KFvojxdJf9tVLraPBojt0OSbVG5XEHkNT6hpfOlbXJ1lYdp9I+vkyFQNIHz9GouZCQXWGqHZf/XjAvBvEE/hCQbKrbKbelYV2gL+eHjwxGnjfKUzLy9j1fq2CjX+pEJUYj3tS4DQJJd45ssWH5LR3iP8QO8XK5hvVLHll/FBw3iI6fTafYeuHe9JMk4aCykf5lsu/RH4+NDiJ3ew1Ms7bqLcUhViWts+ZheDDuDqMzzrTo3V6SJnOO269RemYR01GgtTWOd26FITgiXj5vrxfNnXZMESOuW+DWX7oUzozwGJxkNX2BcAc7/kzJbxqnSYmzoKHF+tbWPj8uwE9u121P+tinjqDvVC3DsYA/TyktETtkXYoRtz8dGuYZar5so3KfM7zybblO8byLbgqexmChV0HCcN8vb4uorbXzDot288DF+L/1JKcGlS5S/y7HJa5vcXG2GpFHSmLkdgmx6CJtYYXuZNGnlziZ3N1ooP3ykgeeqxzHXbWOu20Yj7AyELRUh6VbgYqpbOhoI6uZlrGIw0eWKSifdtKHErImcpXB3EW83jyst69hxuaE8LISdJCCftzkKO5g33yeNw3Ob6Zl46FaDvVtuYbRZS//bIw3slio4f6SBy/4RPNDZxun9JmAO1naRdMGg/yvGemkTLeX4ZFmt6X6uV+SpunjbOGPlgfnkG8c3tCwRs4hKhN7L9UBxYz+3Q1DPcq3heNHceVRa0HieNaA/wcksv+T5gEEW3znSwL6xdM0P4TxJZItJpHbw9tHzeY6+8mBf/ryL6dMClREGeZTHwDljA5DE0cr2c53fSi/ATBTitI4ziFCcLk+hNCXSPPEybEhmyeTie6VSx7O1WaxNTKIMjfmgleSQy9LJcZJipa3OvHfKx7upo8RQJRkjj5ahe88ZsfqsyQL9KGNsfPOlZ6Q+VW5wWfrTYXWxw9CYuQ1JJaStiBQbuGySSZ7vBfhctz2wc0mkRgzCFnQtiRTjFBwuySaOFokusKEs/rvrWZs47NJHyWdsIrVr4he5Z7PbximGtNaYGCrbKUW29V6ABR2lD1Rm1FWxZz9HbJRMgC9yOpjnGxOTuFA9jl3jIEx/G3oQddnIxiT4f/rsYpByjrkMWgN6NkFbOrYqU+aZjXINp440MNUL8ImDvWSMeVtpDFYNyrPpIunzMFE9h6extfRQlXGkRi/V86u4UK7h/qCFpnGPkI65xAibOkry+a+KHVpSWUeo9brJQtlmE0aiIF4nTeIsZ1hXnfxZiQRcjE8e7pIorS0TzIVCeNuoDTYvf+p/U0f4TNACTKC2dG7dEmfA8vatsrFfLlVwWkepND3k8Nr2fEyYZ8o6Pty5wfo2o7wE4azU3oYL1eOYC/cxFR4kGxK5ydja6CK5Ydg+8/7I4xyzRD35vLyXmDfpJF8pH8XztRnMBVfxSGsjPiu2s5OaQ58wTPC0UZnwuS2tsS694KhpjNyGpJJxDpViKB1EcuDQrXBmwRlFllWxqWOr5G6pgrluG7UoxDpjXi6dVBFFbRFxQOoQR00cRWTVwcVZEq/ouy3I28U86TmJjrZ0NCDeAkiQS9vzk0wrtSjEdBRn06C4TTrEp10qo+uVkrkwG3ZSSJL6YqNkPjn8EosibNd9kllyXZdr7KnP+56PeXOQjjzNjebxWhRi1lib+ebEx5+Pd1G1xGFprHM7BFWVSgwCpG9o6girYQcXzfmYtvTiJMIueX5y7mSWfox++4P2JhY7O8mBD1kKeRcK4/+5QzH/TLu13F15ubKsLKuaTbfmWniuI/34c6SHPOdXE4skAPyjg72+FdfCKBuqn/12uVTBtPJSYhW1L8mVZxAc6eCeqb0N6xPHcKqzg3sO9pJg+7rycK9hfGvGnYSemQuu4t37W5gPWvgDcX4AhVhRGwnNcxFSzo2szzYGwvuezEWGHqUxycUMnws7OL3fxHzQwj0msQDPD8iNDE+FHSybd0l18mQGQH8jymLSDeWNM/EyuqkRCrQDkmI2T18lUZtN2Tqww1rECFvZtv8uHU+eop7uIYRYRP+VR8Ps1FkK6KxFmUf8tCyb7qeh43AlojK0NQGm7bSrqV6QIDZCebI/Ukdm64+tfbIc3mfbeGRtgq6y5G9bOj6oZoqPh45S7jVEefNfSipFpItrpTFzG5IoEy+duUhE53Pa0AuAAT2bzboEDOZ+o9/5WalkaeXIwwX1XQtGKpnzfNLy8nzJvhRRFLsU3TYUQr9TONoaQwH0J5mFi0lMqzjaQqJs7ioxb5J93tfZwYxBa3PdNqZ6QezMrDyUjZNwLQqBsIP3ty6jrUp4uP0GFg72knNrAbtODEByWhTNDWqHdLdxjbO8J2uj5GPB0a98htoEpLMl83okCltlyJDKp8/kakJIL0s0Hx2NDQpDE+VzI+LIKouxcRpmB7XdN61inytiOLYyXUQT0IYYXZa3YclW9iiJsu1K8Z/rIbNQrotsi44OniEkVmYLes4gOEJzM2EHM4gRnNQ9FTUkDEN5qD/vXkn0O/dv4wiLG5SK1CPVJZKxSXF0lDTWuV0DyZ3Vxdj4vXQ//y5TMcsdmHZYKnOiVMGaCTea7QXJ6UIuhiXJhuCkcYT6YwvzKkq2iZuHKm2oTzKpp5g1zsbgttgYcF9C7nNIDqrkwkOoesnzcdro0dZNCvfZsIP5oIVaFKZ0dVs6AsJOkgSyFoVYONiLnYi77QQV5m1s3BUoGW/WZ/5eXGfD2sqVlDUvCKXJhJ8Xo8EwuqyNkSPOrPXh6sOoaczcrpGyYDYwiPJkYHYWerJdJ3cFHkJke8amvLe1TSqYm2JSyj4chviCKCJiufoDpJlBVv94v6gvqSPwHItLOvTOddvYMLGd0s2G2jJlkNtUL8B5I14WEeGprC1tRzQUnyrH7VoZghTdpTXZpS7g9bukD66fdW38WXGvTT2aTLzAmLldE0lGwF+6iyHY3Bo4SpL38LoaKo6dJIRAOp28hW5rM1FDeamT30l3mOXTVpT4wrAxOMl8+AKh3+XCkmhSlsPLs7WHypC/n/OreLxSx59MnkRblXAi3E/EUK5f4npIwJz21G0nekDOJFxOuZK4Pxhv2zPMrYi7blB/CYES8nT1mxPXtdFBRfdW6ugqDyXjfC51ZHQvtTFrjIuIrkWljGujsVh6qMrk7iRfkrQIuZAI18Xw5+hzkj6IMbu1KM65xU3x14KslpihoqG8gVOyePvz+sPvsU3sImiS32tDX3Lz4Los12KhMaL6baLWkkFsF6rH0VYllDsa5W4bAFJjwuOCeXvydH0utELvOXGdUWk/SFkWnzPkQE4bEu+vbTwlQqOTrygt+6legKaZUzbkSePkEov5/XIe2DZsSde6mUoaM7ch6ahSeNiEmQD2yUyLRyapJOK7P/3ZGJS0hi4iDf/Jxy5v0gBucU8uuouiX0XQgOxb1q4sRV8budCObZz4d1c0hmQOLsRxJuzgkSuvJieK1aIwOXCZMyBp7abMLUmadwtj4r5evG1NHWEVfX+3hmIZVlgCA6mDJcR9xiTMdIn1vH6ub+RjNB+0AADPmQB/Pu84Wl0uVTBVqWNWR9g0ekXeD5vFvsHmaFKvg9FT2/7QbCrXQle1xjNja+lwNKX6WXLlQpO6BRfi4dezlMT8HpcrwTDQXk46QmpysedFL+SJFJKB0P0JEhXjYiPSQ2WlGJJtto0dtYf/B9InV1Gm3KfDDs6aXHDnewEuCiZF4yWzaBDVPR9t5aFhcUqWYrlEoFyUJb2U3AgkgzpjMiIvsQ1Jiva8fnqOG1qaOgKMOPqkcS6X/aLv86UKnp2YRC0KcZJl+JWMzTXuHHU2HGOwXKpkZg8uSgqwxgu/2eiGMrcD4+fG0RlNHDpg+XNm53EpXbNIPkMLYtV44S96PupefIpRI4MJFa3bhRj5c6MSFw4jPhftnyuG1HYvv0eiyLXIncDARfSs7YQyqquISEbMnDYyeue8HN7u870ADaOi4AiJ948TqThsqgfZZts8bJmwMiBm5GeVl4wXV5HwzYzWhpxHvM3XQwenjPP1m51uKHPrQKcUzI/5VZz2q1iv1PG1Sh1z3Tb+YWcHa5E5X1S8NNqV+cTKQzAcxjeUh57JOuFaNDbUZCNev0Qo9LkoY8u7rwiD4VRUGU8kx9nG+LOY3pa267mK6A4p/GstCrFgSfRpM4xQnbI9XAf6sEFYEo1RW5PzRy0MTZ4iT5+5s7CNgdn6yp99NGihq+J4WqBvKf6I2dgJERIKqxudXld5uNfER/MxzNJdXwuNkds1EulH6KR3oO+qsYD+Cd42mH5YNNTUEWbNhBoVohq2HNtiupb+jIr4AnEtepc6Qd5LaEMq1rmhw4WOzxgPfynCUv2yTbaoEVkmv8+2MbpUAbb+ZYXT5b0PCj0jdxnKYLxwsIf5oIWGQYWkD65juFPbAKCnr90VROkxchuaekjrkOqej02zS1Kq6/VKHbUoxKMq9l4/b5S0Ug9nm0gu5NDQfX8o7imfpffj5RQl20K2tY0vUldfssqWNKwO0TV2JAbZyudWYakw5882lIc5vxobFqI408UqE/8+Vq4lSIaXP20W/Ua5ht1SBac6O7jY2cGM6ueF44khyY0H6EcFcCYloxroXFE5BvJ90G82RE6OyxcZ43UZO/j755E4XeXhpYlJbJRr+PLkSWz4R/D4zvfxvtZlzActzLByFsx8JUfnlkBu8v2t9AJcHYGf2xi5HYIoWSVNCJ4DTAZX5xGJTsMiubKOkhPNbcwsj4kM+0yR+0apm8ujIiKwFFH557zxkQx2mn1f8nzMlypYYO9tiy16Iv55y7wv28ZB10i9ASBJukmML894VZR4UlVCpa4xkAyWrvO+laNePNdFcgFO22JNcMSZYpysntLQPRskDzo5+WwUpJR6GcAVxPgm1Fq/RynVAPCHAN4B4GUAf0trvW3u/xUAP2vu/6TW+t8dpt4bytzuUiV80vgFAcCGOUFpPmhhPmihrKNkd1pn6Ipbhmw7bhbT4NQ0E9+WPsblCmErc5jFYRNvJBI9DJN21SPLzVJ0267z5JYS1cwoL+XKwcVMQk7Tykv0nNvifc35VTxfPZ7UdSwKcW+3HSe2NPVQPjeePUOiPO443dQRDqbm8ev1E5jqBZjrtnHPwR4ae5cGGCKNiUT2eX5ky6UKzvlVXJmYxJNHGrg7aOGx1uWBM2/5fONhag2DPjcNor2vs4N7lIcT4T72PR/3dXawcLCXxNQmFIVomHRJT1tEfB7DSuPyx919Zz+K0nVCbj+qtd5k3z8F4Kta619TSn3KfP9lpdS7APwUgPsB3AXg3yul7tVa204pyKQbyty0Uqh7/bTUr9EuZuD3NhM1pDOvfLHNggzBxbSIuY0yGDuLskTGIskvbxTZFrrL+MLFtYSxoX9OrHw3PNUR/c0K1wWaC+WMd0P1UJv2ShWsG4MUBeFLBEVZaIo4LvP+0f+65+OScR+Z8XzMKrvu0DYuC0K3TCqYeWNgmOu20bK4FUlDTVP3M1KT5X/RGN+onpK69nxuN0jn9iEAj5jPvwfg6wB+2Vz/A631AYDvK6VWATwM4FvDVlCIuSml/hsAfweABvA8gL8NoAYHrMwirkc729lJBVYDg4rfLCZHlDdJuU7GZgnk5eT5qLmuSf2TjWxWTIlOi9bL28zr59eKPC/LIeLB8bRwutR+5mbBn5NMjRY1wg4uRmF8ZgPQPxYwClHqtvEtFv5E5XFjBFkvU5Em6Ou5TnXbeHC/idmwgxPdNuaDFr4r2ib1ny6kJseQ7ls3qJCOQFwQLieuebNg+krEmXfVpNQnOMPbJcV2Gps7Jk/ixepx/JvqNNaqU/jRK6/ib26/BADYBBCOIFnlkMhtVin1bfb9s1rrz4p7NIAvK6U0gH9mfr9Ta70BAFrrDaXUHebetwP4c/bsJXNtaMplbkqptwP4JIB3aa33lVJfQAwb3wULrMwsy1hySBn8dNgZyGjLP9ti7WyihmtySZ1HkWiEvOBkXt4whgC5WOi3w8ah2hho1qIdtiy6TpEDbcZgVjGoX7PVy0+kb2pjEAg7mDIIqGYU87Z8flS/TdyWi54SXc6YZJc1y/uTomjWGLjqnDf1cJcMl3KfiKyjxNQAJFLKU4bpk2O7fA9ct0dIk04IW6m9Dc8efRtqUXyQNjFMPQrkhqGY26bW+j0597xPa/2qYWBfUUpdyKle0qGsJEXFUh/AEaVUFzFiexXAr8AOK53U1BGeMB7dFBLV1BHurdSxXqnjmI5wZ2QSGHZ2kvTO/HlZHlDMHcBVjg2BZIkb9LzU2UlkYKPDip5ZiFAyT+7bV7Q+XgYxSLnYumKcuO5rWnkp/Rq1ldwdFtjp7KtRiEUgQez/kqE2GQ5GbTlrdFVAvOgummiA5P79Jn7cMB2yzsqT323vjIvgNsZK5V9kSHHJ9KVknqMx4HrcGRXrw86UKmgrL0nKSedCfFnENS+XKuiVa4moXtbxsYmkf+Ztm+wFmAuuYrZyDFO9AOWol2S6mQ078EcgTnrQ1g3isKS1ftX8f10p9W8Qi5mvKaXmDGqbA/C6uf0SgLvZ4ycR85uhKZe5aa1/oJT6pwDWAewD+LLW+stKKResTJFS6ucA/BwA1KAS/QDQRxqbfhXfOdJAWUeYNLvjkoHsNkZTdNHynV8yNxfz4gudcvbnib1FyMUIZf3y3rxnbGRzwB0WHdrq41bMJaPz6SoPu8pDPQqxKvRnMgVSshn1AizpfgiTjDeVfdg1DARAYmjgiJdO8bK134Xq6ZrUMUr1AkkZ1M6nEIvJHyvXEnGdP0vt4j6cxNyeNumfeIbeJc9P8gwS0iV0OG1h+oRSp6IupsKDZJwpKWh0i/m5KaWOAvC01lfM558A8N8D+BKAjwP4NfP/T8wjXwLwhFLq1xEbFJYAPHOYuouIpdOIlXzvBLAD4ItKqY8VrcDI158FgBmvlIw8Rxrv7AW421hLKYf+l8XxfS7L5jCMrsj3FAK6hvqydG/yt1Ewz7y2DEsXo9CZvIDKXND9MxG4AYDGixYp5XTj/ZQWa2JCcqy3dHzKPdG6ztdPcmV+Q3m5ad55u7nlN7nfOBXL9s8oD2cM45VW02nlYZPlDqxFgynyyaK6XqnjpYnJhLmRY++2ZQ5SoH4ZGqc6OzjV2cGD+82Eed6Cfm53Avg3KhaXfQBPaK2fVkqdB/AFpdTPIgZOjwOA1voFo/r6LuLk3b9wGEspVZZH/ymA72ut3wAApdS/BvDX4YaVTgotu0rTMLT5oBXvPEbk4Klo5KSXyE8q6SXjsO3MeToYTsPcK/tmezbP8JDVBiprGH2frQxejrzOHWTPmWtysm/pKFHsU3+IARBzIKZGYUsUHkXly41C6u1INCWkw9UQWcYdahO1JemrmDdUliQyQCUMKwoBweiprm3RJppv5MM51Qtw0AvwAnP8pfsoEP98pY7njzTQViW0S+XEB25DD1qMd4MW3tlt46H2JtqejwOTTZojzGulUTI3rfVLAH7Ycn0LwKOOZz4N4NPXWncR5rYO4EeUUjXEYumjAL4N4CrssDKTbAt+LQoxZ3b581F+JtYi1kN5jax+dc9PzO6uRZJnNeXMaRSTadTEM4jkMQEilz6vqaOUI67rXnmdDAhczOfWalvwuas8qVu11eUqR4p1RYkjSnh+kppJ6u44Q0vuR1+E7yovcRvh2YH5vXPdNk51dtBWJXS9ONln2/OxoKNEp0f18aMYeWqnUdJtEzivtV5RSv0RgGcRw8S/RCxm1mGBlUWITwwA2Oq2MWN2Zz7p+aQcZoJKBLBcqmDWhPV8r1zDVC/AR4FUBlaJ6GaUl6TzsZFkcHk6PNtvVI80+9vuK4r0spyDh2VqSb06Sk6Ol/fRhmE7EJnQN2dsFBy/GoXWPvP203/pxMuTXgKwMlHqA/m3Sb82mwFDWj/p2hmjN+RnQTwp0KSUBnhKezoSkdIl8b41dYST7U08uN9MxFIAia7yA6aMrxpDnGSuh7W2Z9FtFX6ltf6HAP6huHwAB6wsQvwlS2U/kbTY2XZwTtLyyY9fI5P8ZaO4nQ9aWEY6HTQRX4w2UWkUerciJJFLXnmj0t25jAldlVagA7Ef167no47+sXrSV5H3Y1vbmXgKKRVonwuhU1lZYqdNryqJMzvudOzasPLGvu75WBbXJKNqROGAw6+8n0j6f46SPD1aa+nNopuSFUQyM2mlpP8N5SVWKWJClO1UlkWw37azT5QqWPereGliEl+ePInZsIOyjjDXbWNZMDf5LG+TbQEeRkQmynJDkFSUUUo0kuWJn7cw+HO7xjet7fmYMj5VtSjEpokOqEUh7jXohqMM3vaLUYim0Q+56iLmyI0ZUodKKgbeD4lOXYlMXRlL6B4+f+bMaV675veuig0Ftk2vzhjSvI6wq/rHFtL4rdVmAfRPnm90dqxn8S6XKon7C8VCc6Tp2uwayhvJgr6tkNuoSVrV5ASUJMUF+Rt/fkalmVvDiAfJ7guFtufjsvErejRoYcYwzwE/q2tEQteK3FxlSrIZBLgOKA9pygViK7PtDYYQTfWClCjFT5F3Mc7rIUZRe10SAH2XiPxa341tjpEYCvQZBP3nejg+TmQMoPJWjZMvMhBuUTR/GLptdG4jrYx5T0sUxM3oHK4/GXaSBWp7hjuc0n+Ku1uv1PE9ky0CiHfMh/a3sFuq4E+n5gEAXzn2dkxFXfx0cxWv7TdT7aC8YjJAWvYhiw4jwtiedaFJqZwGBsUtV3ytqwzqO41n3fPxjepxrFWOYaNyFLteGQ92tvHAfhMAUocrk8sDj/LgyFcuTpsYyi2Psn2EungZRdDzAGL20ofV0D0N1Td4wPhk8pjZA1MGjQ/p45490sBeqYIT3XbC+Clm9OlegGUdYYFtDLUoxBPm3AUpngKxukRKCGQ9zkJuo8gKMkZu14nkRF2NQieCckUXTCsPbeVho1zDK5U6pnpBksJlNuygrUrYKNeS/1O9AI9ceRX3HuwlPlEJqnQwhutBWXoiG9nEI17OYYjrs7jOadOvYtNkTd70q7H7jgkrIpLppGxiXx4jykLxEsHbyrI9b/tMm2Ke2C4NTbJOMhxsmfE5YkT2qV6QpCkiA8r9xjBCriHS1y/ZWAugWzkG1D5/FLGl42SVw5PNz60INXWU6FmKWLmAeNL9fmMJX2ws4MH2Fh7a38LCwR7e3d5MslFslGu4YFLwPDk1j8vlGh7Yb+LswV4qNZLNkdj2PY+kIjwPYWWVI8uwMfo8A4wNsUmxzfOr2DALd9OvYqGzi+XwNcyGnWQh16Iw8efih6RQ+XSMHhHXM3HfLInmeF+WPB8fnphMocQvBi2s9IJMHSXvC/88X6pg06/iJJBEEXz/YC+RBrbEPJOGkaaO9YIb5Ro2yjX86eTdWKtO4cM7L+MBE8S/LRgPKek3LIicG0F4HZJ4ckxpiV4uVfB5de2nX42R23UmmxhGWVC52wE5XALpo/a6ysNK/U78aGMRu6UJPA+NWq+LR3oB2mEHtV4XZT/CPeUalCrh+eo0ACThXwuivGu1Tsn+ZImcw5RDxMVpzuiljksyWBtj479RCNWuV0a7VMZcZxsLB3tJDCMXR/nGIxnTAtPXLXg+ng47KYSS1Ua6tsmU7GUdoWEMF1njwqMO+H2U9ZenXmqwEK6sBAp8THdLFWz5VTx79G1Ym5jEcus13GfKrLKyGspzpoKidmVZQyWTtm2MM6zOa6FRx5beLLrhOje5eOi7PH5PTvam7h/lxye/De1sm8X2E3uX8Meej4fam3iovZkkxJzqBXhofwunOjtYN86Tc+aU9C2/iuePNGJXEbFwpI7D1kb+vQhJ0VI6quYtXrlQuEid5zJD1mWZ/YKevRiFOG38uU51dlDTPcwHLZzotvFKpY61yjFMRV3cbZjCO1U/FTcfq/vLNayZtD/ESGYyTnl3WY8JTZC1MUuf6bKEAnGg//PlGl6sHkcXCl2vhHbQwpn9Jpo6SrkQ0bzj49pQHs75VdQmJvFHU/PY9Kt46Oob8d/+FubMCW69cg1TAGZNW6Z6wYDY7hKxXXq15VIlccfh9xDSvPaD/cbI7dCV0YRJxf5lLHCARQyw8B66TiQnykIU4kevvJqEdt1zsJfs+FO9AO9ux1m0HmltoKs8vDgxlYheFKi93G1jSQ8qtl3ozaZTGgaVZblI5BHvu0tHKXVPJOrzECVaeMTcngs7OKMj3BNcQU33cHfQwmzYwYvV47hQPY65cD8JF5pWg+ivobwk4zLQtxRylJSnO6O5wd9fWbtPdneVOW3qJn3sBcPciH5C9Q0oXeVhXsfxsyQCrppyz/nVOKtwpY4vT55E2/PxeHMNC8EV3HOwh7luG7tG7CW0SimJpqPBLNB56g4uYlNG32U9eMxgU0fjA2IY3VDmdofy8MlKPcljJa1gwKBzr7yHgo0nWE4wCqwmvc58qYJdz8fdQQtHjD6IMr6SqZ7cFwh+3xNcwYlwH3ulCtoqtjl1WZ02H6PrRTOCScgd2kbDMFGi5VIFc8ya3OgFuMiC1Jc8H/eXa9gwohfP8DETdvBgZxtT4QHuCa6kdEyELGhhX2EMiZIjfDsKB1AJ7yv/TIj9bNhJ+X7ZxoD0ZQ+zVOQNFfusbRo/PPJxfNBYe8s6woluO1Umpbwn5EZtfdjoD8n1YzbsoAuFuXAfJ7rtJPEDP8KPn4NAPms2Y4JL58oR5PlegEXdzzyyaN7Tkufj3kod/yS46n7hBWmM3A5B2vOBIw184mAvycZLk4a7e0gfLb7Y6aTwdSNWnOi2sXw1jtmnHXfTHJl2qrODdWOh6iKeJBMslAZA4tBL2RaeP9LASxOTycudNgiHM7ctFg4kFc2cOCrNEhE5mgWQckamPPnJArOIcq42uBgetWu2XMNapZ70dT5oAYa5LZmg7rWJyT6i9coJ8poPWpgzZ2lSeu913ddDcQ97nu1lqhdgzQSRZ40d71titTTi3pIQy/hY0oKX1+hUrXmDPBcMwiIRVx5CA/TDxwghPVyq4DG/ijOlCi7QCV9m3tA5CFHYwVd7Ad7r2Q8+4oxN6vTyjEPUFhKLl0uVBI1u+lX8WW0WV67m5q/IpbGf2yGoa8SBuW4bDfZi+aTkVjU+AXhAMk/qx5nQrmFu3NmUT6Alz8e8QW4vTUwm1wnZ0Y5OO7JECNQGyhjBSbo/ZOkEZXk2psj1ZlI/I+kwqA1AYuUEkBpLTjTWu14Zu/4E9hni5c9QaFZXeUluMvqNmFrNIA+bkYNTFqPjiNYVxcCZA4UzvVg9js3SRNJWbgg5L4LPFyzvY4n5/dHztShM9Li0WUqLPScbA3WRVNdwSYcTMbY1E32z90ZWktti5AFjg8KwdNUr4y9rs7EeDADMqfJnmOWK7/plHeG9JmMrLZQ2m1yTRtQB+i9Z5sTiGVlpYnUnJvHF6XvQVR4+uLuOuw0K+a2ghcWwg5n9JpoAoNJB1BRIT4uK5/0idPUUE+tmLAsuiyRDJIZmO60ri4gJ5FnlvtptY9mMz7TycN6kJiKjwILn45uej33Px/rEscQV5G4Tm/u9oIUzTLe0YZjaXx6Zwa4fM5KyjvC+1mV0OztJSnHeFxIfbRZv6oskYqLnACyyseGWc7pnvVzDpl/FF6fvwYXqcXxwdx0P7jcTpLUWhUkQPI09pVYnhkbZPJZLFcwb5E8b4Yd2Xk7lbKO2tI1ujDaQrvLQ1oNuTC49q9SHLlrmwGoU4p3lGp4/0sCTU/O4OP9+dC+tZE2NQjTWuY2AaGcidMBDeWyDu60j1NkuSYd1bOsI0+ijCYnqeH1Udi0KU8pk+j0RgSzMiCbaabaYd0sVnOy2cabbxtNhB89YUtC4LKyuMeFtkYhQii5Fy5Vly/4RQuUH6aQQTq+LcqmSOmeT0MSUKYPrMgHzPqIeasJhlfpFHvc2tw+pe+W/0TyZU7HSn58cRWXxtgycFSrERPmsrI/asOD5yRGEHPnRd6CvUmibTSFk998pxE1SRWSJo7b3x6mrPISKwrmu3YEXGOvcDkW1KMQD+81EuVwzuyIPyiZ9GOlDorCDdT2YGwyIJ8MPdN/JlnQy5/wq6p6PtShMhREBMTJ4NGjhb26/lByrRqd6L5cq1iwhQLzo54xS/TenF7BWncIfH38HHjjSwNE3/gofb17EfZ0dfPTKq6kMwjZyJd+UAeHc2TXPoiav2RYojQPVs1yqYIJFGZz2fJxG/1CTTcS5xqZ6Qayv6l7FfZ0dzHXbeKHbTlIRPW5iTEmBfiLcx4lwP0lA2j7Yw1MmcaUMnSKfxUXGVCXRdUru+GxtFlvMEjlpxN7ZsIMJo1bYZJvkbNjB8tXXEyfuhYM9zAetJO23zbAF9NHfbqmCsucnzre1KExOrvq2aT/pv3rlGlCq4DtHGrhQPY5y1MNU1MVet425bhtnTfmkO+N6VI48aYxovLiUwN9tWUfwdawz/uMrP8CVEeR3G+vcDkEl6ET3wnVldLQZ31EJ5lNaaf5SpdXQprNaEjvygucn6KRldCXkmV4WjMCFgggNbFSO4kL1OB6szeLo0TvwH66+jo0rP8CJbjthIs2McmwkFzZHODZ0wSmrHsnY+N+08tBGXwclzxQF+iiXdHP0Xni7ZAgWbV6z5jSqJ4QoKv/bRHbXe6CTuEgHSJthLQpxt1FhAH20Rr+R0YMMGy2xAUnGRvXQOyfLPPWVR1hQW6fZvWSEKUc9dKNSsoF22fxwvau8dyvHht7PfNDCzuEycqdojNwOQUeiMHYGNdYpsvRIxey2jlJnWQKDPmByB+Ofnwo7eAr9HPV0duRs2EEz7MSH1Bir0pLn45jyrLn5XeJpOephKjzAvvJQKlVwt0kTPRt28EOqr5uTk1AqxIk4qgSQSuSYxdTk8za0tuT5+KhxoJVMhdwK6D0AgwYbYhYnum0cieITnNYZum0YZAMgeYcvdNu4EIX4X6PBA2CcCJQ5aNv6Sx74STu9Ev50ah7PH2nggSMNTExM4j9sv4S/s3kB8wdX8L6rryWMjfR+QGwdJ6MGEaElMmYl+joTR7tnpAo6E7Ws0/6APCkojcfzRxr406n5BFGe6uwkvpVnDEqTc5gSPrSYNdmVuon+nzF+nMTg/h+37onzN5xuKHOLtMZBL0jg/bRYRNxFoEjwuM1iGVfEIhl036+NW1CTMwL86gBiyrM+1nQPZWi0TX1KlRLnX+n+IRlPVtncgGDrXx5JXRUpwyliQCLBLSMSTTPGRiR1SoQ8alGI7+t0QDm9Q3Lz+IyI+XSJ0HluIHnvYb18FA8caaBen0O9fifu7wW4YJjYw+03knZv6wi7Bnl+mTFmrh7gaDaxEJcq2CtVsFmaQLtUxqRwAbJtrsdU3zXj7kod3wkPEvUH1y3XdZQ4pQMckfqxDtNRl7QQbzOkTMz8WmmcrPIQ1INOi1g6NhBIZ0mbyGnb8V0MkKOEi1GYnBZ+wCY2tyjarJTc3YB28jaQHIK7cLCHJzwfX+ns4MH2FqbCgzgBoWEqK47JbwsslzQj2kP3uvRvnDhzJX0jRwESKRDSoIODiUkd0OLyfKu4yn3xiLmRtVW+Mz6+hFjyDr6Whp2LRn+63gvw4H4Tc902Pt68iLXWZXyzvoG5I9PY3G/i7b0uar1uqr3TSDMIPj8o/x85hrfRRy0kih+JQuz3+kfulfXgRpXkEDRM5qGrb6CsI/xIcBULwRXMGQdfLjaTvpPmFonN2zrt6ynnAZ8bQF8VUItCVEYilo51bkNTiDRTWgQGHBttiSzlLpmlbwP6k470ISu9AOcszIH/tx1jR3oYErtoEj2438TCwV6S+kfqECVltd8mvnKmy5kVEJ/5maV344yN+kT9fsaIY1K/xHVK1J/fMfrDj7Dgco7saNEteD42zDU65cq26fA2FUlYaTsMhsT15YM9PGiMRxvlGhaCK1irHMMpE/Bdzjjezqb7I9cPMkIQAyJERKifR1nIttF7umKY26mDXcyGHdzdvYoH95sDPoFEfFwJ+XKSYqjNokplr0UhwhEwpbFYegg6orw4nMeEX/GjzoixcQUt/UbkShaZZTrnv9mYClkO541/3Qbp5Mxzdc/Hmlng5FpADr7vNsH4QDxJ7znYAxAvlseM5ZD68qQ5stClc5IM0NUXGRQvUR6v0ybe2kK75g1DoxPbzzMGJd1vbAs7TxySzNSlR7URF+2l5ZssubNhJ/GXI9GZxOhNvxq3OWilMpbQeH2iUseF6nFcUmn3IY5iCcFN9QKs9wJ8T4zBjJk/3NI/1Qtwt9c/LJmYDx83uRHKkDLpJ8nfW525TRHqm1ceKo61MAyNmdshKFCxb9hCFKYWPCfXIi+Sckha3TjysVlUG6qfSXXDOACfEgyB/Nn2jAUMAN7d3sRs2MH7W5dxvhfgtNG30QKvez7uNa4KXeVhSkdYtiBQ2WdbwgCpA3QZI2xlSubGEw5wBsjvszJfo6zmi58vNGKKNncd+kyZNqiPtvfpek/0nzO2bR1h17hjkHPwcqmCc34VC16chZneXVlHOMnSI3EUuV6p45na21CGxgnjFsT1V/zEK1t2ECqLHMjJtYjShHcRHw1H7ZR94sT7Z/vPDT9kjZUbSzhOVpnQTQm/mg07WDTi0SrsL1uKo0XCmIi4pZAjFNviJWRCOos1YdlbMtaotucnCmXamSmh5WIUomZ2ft5X2+eGmMAuZs0dXGW7OdO2jQM9Q+LfajRoiZShX6520GK+l+mK6JR1Gj+YOrjImZWSPUuPyknqDm33SWSeOBYb3zuKeKkbwwr3G1vwfKyJMSRDQtuLdWxd5WG2VMEsgMWwk8TeynZPGYbIQ/ay3i8wmDZd5uQDMLD5T6PvkkR/ZR0leeWuXHnVWV9RGiO3Q9C+ifGbDTuYA7BsmANnRIQunjKhWfLlSougjWgxLJcqyTkItnjGGRXr4RYBNA3jkjntL0YhlsIOFj0fZw1yO98L8DWBVM4BSX79uhr0FeNtA/qMiFtubQycyue7fkN5idhLC4KHHdGEJ1+uJ8WC5IyNW0+5ZZWIcvmfMfWTDxeJWxyRUHwwob0tNoa2zC9ZZNMdymfPGMbVEJbFlV6AJR1hnoX1bZRrmCpV8KgRLedLFWwaQwqQjq3dYLnnalGYGFwWDvYSBC4R6LxhpqRDJqQ1rbwBcVS2n8aZbz51rx+bS+4mNB51w9zomMq2QaBfnjyJy5ujiC0dW0uHJo20HxVnavR5zuhIFqMw8dzOMhoAg+4bUsdD97jIFn/K66WdlQKsbeIj15900XedIEuiq230OSvljY1s9zfYjl7WETzPj2NllT2GMSt9kg1dEaohhjDVG/SGz9Id2pBZFnKV79AVemaru6njXGyEciidPGUF2WSbz2zvAL5hbl3l4bJ/BF2vhH3PT1Kpu/pA7WpFIaYZaqt7PjaNqqIhkJycr/Qb7zPNm4FNWUeYNpLGTNhBuVRBFyrRD5ZGkc8NY+Q2NGmoFHNbMEiBmFuvXMOz1eOoRSHO6ijRdXAxkYtqnLh1kSueCTnQziitonTdJupwBLeagTLPkje67kdYfM8YGniG4SXPT3RCPEMEBdtnLV4bs5YIdlp5WDdtIZpXHraMbkqOlSyfLKBbljEmpvli9TjWK3U8fPV1zJtyL4rNgb8zzrx531wMiqd9cqU24ql+JPGzDxZNm18pH8UTM0tYLx/FT1z5AR40IYAzJlqBnGvbxtn7a5Nvx3qlHrv36B5+9MqreHd7cyAygxNtkDT3an4VF4yUsnCwh3k2h0k62NYR6mw8GqqfWYUSRJDUQWqKBAn3Atx/sIeOcSCnmN/vjCL8aqxzO0RlOkr8wWy+QnnEmU6WiNNkk4G+Z+nuOJOQzwJITS5XnUR8xwWQ7NoAkmiJ3VIF044YVl5fFtnGgFCDbdFnPS/r5mXyfkldjyxPlmGjIkwuz8qd1OV49/yervLQLpWxXj6KE9UpbO5vYdcrxwH9xpopQ7bk+FHwP8/64eonve936nSAPomr0o1pmpW1yHwKed/53E02XLMJfYBZYwFgYgR+bj0MWm7fjHRDmVujd4Cf3l5LnHa/L172MoAHzUQgh1AgLaJIlEDOpPQdQGI9k9c5ypCo52PlWuLvBABPG5cQlxjCaS0KMW/S2gAxpJexhxTMTydJners4HPddupkLduCputZluAZFSullzwfZfTPKaA/Pl6c5PeLFmRCbSLlPMV17hsG17A47WYl5+T9Ix0SF8k4A+BJHbmxhL7TfdzFRuqtXpqYjNOhH2mgWp3C7t4llKHR9UrYRSVJm8WjLN7fuozdUgVzwVXUdA8PX30d3c4O/rgXpFJayfcB9HWj6OxgySDbfyZy2HHmKP3WePZe+Z6sYv3BHs6ZOqeVh18PD3CtFEIXctO51emGMredqIcvBq0BfRkQv6jVKMQZk8LI5cEuURVdkzsiF1M58YnCXS1oMXTNfUuejxULOqT7+cQk/Q7Q3/W5wnlLR/iIipNp8jAwm9+bbKckiSLlWN7J7k1cEgqSDenyOoogQiLOjLMWirSISsshVw3kWb5lubF4V0JbleB5JQAqQWHlyI5wuJ8aHbA8123jiywXHR8TOU5c1bBqrMc2dyegfyYvVyusMUdi23jLuQgATePQvKUjvDoC5HaAQSvtm5FuSoSCJNqdKQxGihZycUi9mYtZ8muuhUA6MX6y1rRZZLaygP6LXzXft0T7N3Q/Txfd+0S3jaVegDPGqvacBVEVZXScwckFUi1VcNlY+2pRiLkctOaqi+utZlQ/M3FZR7jHpAySqgV6luJ16Ts/g4DX01CxRXvJ8zFrLH+Ng70E0RKKo+ekrlMmfuT60AXPx6bnY74bo6/ya/8Bbc/Hh3dexrvbmylxkaM2SssFIPFZI0MSR4VE8tQ23r+8JKN0neYNJZ2cDTtJaqmZzk4yz+TY8TJGSaHW16XcG003mLn14S5/OVwUsi1k+p+VzI/QVJYFTi4G+ZkYFLWL/5efOa2ySSzrlwt8S8ehXq68cS6SCEEiVVrUZNGcNGKyS+nOyYayJDNqRSGmgMTnj1tKOXImhiVFTK5rk5ECC56PNeMEe5IZP+T74kfuceLW9iQHm/lPYifppR6++jraB3t4zbRtuVSBZ0RBGYXxjaBl9RHk9cprfA67NmeXPnWTjpU8uJKKQ7XNd5fOdBQUolj0yK1ON5S5VaGS8wfo5Sx6fuLyQfoUYFD0kAvaZVmU4iYnHsLCk/8BfV0J6cg4knOhQf6Zt98mqnCERfc+bHzKikRfSJL9pvZ+wKSU4mE/j/nVJAV63oLg1tIZMU7TOkp0eNs6wnPM4XlGeYDXT8s9rbwkOwvlLiMRXepAt3QcwbGgPDxh9JxNPXj842N+FYueD89Ef/C8bNR/6V94qrOTXAdiNPaE0cfOsPsA9MOZvH4a+SxUbdvMJOWJ5FxverKzg480V+Hrft65j5ZrCYMlSYCPIZ/LAPD5ETC8EGPkNjRNsEOZXYpyztBci96mA5PX5TW+y5JLBtB32qUFImP4XGQTm1eZ4lsS9YuHQNHJVhzN2CZVkR26qY0zbWcHy902riA+b6Kh4oiChvIKo0WZhYLq32bjxOvlz5Husq28Af8uW/9oU+GbC39nNE6Lno/TBt1dqB5P0ghN9QI0GNqT+ei6hrkRPWEMVTzrsY25lXVfF1t0odvmLl23IT6JRNsHe3is206MNwDg+VXcr/siNM+8QlIAP1RpFCfO93B9xN0bTTf8DAUZRiPRGZ9QtCDpXhcVeRFNNlldzEK2jev/ssp1WQdnlD3jqowqkGixaJ9cROI1MZoNv4q5XoAlk7DA1Q8iPk4yhO2i2ARkvjgAyXGKXOdkC8dyIWFqg7y/FYWoA6ksypRfju6Z1+ng92+ZNshNhVvgW1GIaYMEOfLj89OVycSmgrBtVHITloYU+u18L8Bp1c8/SLGxJKY2LO+P1zMKM8BYLD1kZfQSyTLGxVCOqGhSZaGNoroMIppQnMFJpTUXMemZIguPZ+uwBUDzid8wfU2MGYaJynhPW12y7zbxlPq3CCShOVO9AMsmjZHN6Va2k5gaxZESYiCGRX1cLlXQqdQxpSPMGzHxM0xXJfuRheL4vfx+ej+r5O1vmOcsMyzQH8V2kvi2wnSDUtSeVl5yL79nzjA4ydjkWPE+SKSW1T96ZxQeSETnpNLZvLulCl4pH0UZGvcc7MUOwcxFiojXPQrmdqD12Fo6LMl8brZJwAeVK57lRDnMzpLU7RAf+QJfZHCf2uRCPdzXrmh0AbWDRIsEvWq3G4xNh8ivc/3NjEFtu2rwnAhCmk3L+FJfKEKAAs8lYiDG5vlVbJRriZ7PtaClfqqouMef49EH/DcSZVejdAYPjiazVBtcv7qlIywIdxTZ77z25hE3snDRnRJJ8Oy6QIxAebIGiYa5VDIKGuvcDkEHWg8o3DnZEh3aFoNtlyTizEWiM76gycmXMwMqu6ljJfw7JyZRi0Ism0W7ZdLmSGT1sXINp/1qkvve1i458VajMMmIQmIdF8f5ArU9L/Vi/Pqi58fniRrGlHjhq0EdkhTXKeHA/cY148LEJLrKw/vDTgoFnfOruDIxifVKHd850sBct41TnZ0UU7HpQvl4ZImlso2rsDMbjqhsGycRZ2D8Xct7iVnS7/I3W1+KbLTy/RGqJIklQdtenOhhsbODBoCaacM3mZ6NM+xVVv6S56M3gtjSsVh6SOKT42YMoKzTttvRREvSVBdAGXRfUe98Wf9hd16pqLaVMUycID0vU4vbXEqSkCxVuqaQr6Ik0R+/7nIDcm0yeTq0YZIYXAtlIV1gUG8pN9frQW8Vg4LSI+D0hStT6g0AV4HkNL83A83izdPeN1NbgTdXe98sbf0hrfXbrqUApdTTiPtbhDa11mevpb7rRTeUuQGAUurbWuv33NBKr4HeTO19M7UVeHO1983U1jHFdGOw95jGNKYx3WAaM7cxjWlMb0m6GcztszehzmuhN1N730xtBd5c7X0ztXVMuAk6tzGNaUxjuhE0FkvHNKYxvSVpzNzGNKYxvSXphjE3pdRZpdSLSqlVpdSnblS9RUkpdbdS6mtKqb9SSr2glPpFc72hlPqKUuqi+T99s9tKpJQqKaX+Uin1b833W7mtx5VSf6SUumDG+L23anuVUv+NmQPfUUr9K6VU9VZt65jcdEOYm1KqBOB/Rny857sA/LRS6l03ou4hKATwS1rr/wTAjwD4BdPGTwH4qtZ6CcBXzfdbhX4RwF+x77dyW38DwNNa61MAfhhxu2+59iql3g7gkwDeo7V+AEAJwE/hFmzrmLLpRiG3hwGsaq1f0loHAP4AwIduUN2FSGu9obV+1ny+gnjxvR1xO3/P3PZ7AD58UxooSCl1EsAHAfxzdvlWbeskgA8A+BcAoLUOtNY7uEXbizgs8YhSygdQA/Aqbt22jslBN4q5vR3AK+z7JXPtliSl1DsAvBvACoA7tdYbQMwAAdxxE5vG6X8C8N8B4EGAt2pb7wHwBoB/acTof66UOopbsL1a6x8A+KcA1gFsANjVWn8Zt2Bbx5RNN4q5Kcu1W9IHRSlVB/C/APj7Wuu9m90eGymlfhLA61rrv7jZbSlIPoCHAPy21vrdiOOLb0mxzujSPgTgnQDuAnBUKfWxm9uqMR2GbhRzuwTgbvb9JGKof0uRUqqMmLF9Xmv9r83l15RSc+b3OQCv36z2MXofgL+hlHoZsYj/Y0qpz+HWbCsQv/9LWusV8/2PEDO7W7G9/ymA72ut39BadwH8awB/HbdmW8eUQTeKuZ0HsKSUeqdSqoJYQfulG1R3IVJKKcQ6ob/SWv86++lLAD5uPn8cwJ/c6LZJ0lr/itb6pNb6HYjH8v+rtf4YbsG2AoDW+jKAV5RS95lLjwL4Lm7N9q4D+BGlVM3MiUcR619vxbaOKYNuWISCUuoxxHqiEoDf0Vp/+oZUXJCUUu8H8L8DeB59PdavIta7fQHAPOKJ/7jWunlTGmkhpdQjAP6B1vonlVIzuEXbqpQ6jdj4UQHwEoC/jXhzveXaq5T6xwD+C8QW9L8E8HcA1HELtnVMbhqHX41pTGN6S9I4QmFMYxrTW5LGzG1MYxrTW5LGzG1MYxrTW5LGzG1MYxrTW5LGzG1MYxrTW5LGzG1MYxrTW5LGzG1MYxrTW5L+/47P5G8AZKVXAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "resx = solution.ys[0,0]+pos0+x\n", "imshow(cic_paint(jnp.zeros(mesh_shape), resx).sum(axis=0),cmap='gist_stern'); colorbar()" ] }, { "cell_type": "code", "execution_count": 57, "id": "654d9c69", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow((flowpm.cic_paint(tf.zeros([1]+mesh_shape), final_state[0]).numpy()[0]).sum(axis=0)); colorbar()" ] }, { "cell_type": "code", "execution_count": 58, "id": "80da1b98", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow((cic_paint(jnp.zeros(mesh_shape), resx) - \n", " flowpm.cic_paint(tf.zeros([1]+mesh_shape), final_state[0]).numpy()[0]).sum(axis=0)); colorbar()" ] }, { "cell_type": "code", "execution_count": null, "id": "32357464", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "547af8a9", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "8f5cac4d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 35, "id": "aa14a004", "metadata": {}, "outputs": [], "source": [ "from jax.experimental.ode import odeint" ] }, { "cell_type": "code", "execution_count": 39, "id": "973ca031", "metadata": {}, "outputs": [], "source": [ "init_state = [jnp.zeros((64,64,64,3)).reshape((-1,3)),\n", " jnp.zeros((64,64,64,3)).reshape((-1,3))]\n", "\n", "@jax.jit\n", "def solve_ode(init_state):\n", " cosmo = jc.Planck15()\n", " return odeint(f, init_state, \n", " jnp.linspace(0.1,1.0,10), \n", " cosmo,\n", " lpt_dx, rtol=1e-5, atol=1e-5)" ] }, { "cell_type": "code", "execution_count": 37, "id": "e801c3eb", "metadata": {}, "outputs": [], "source": [ "res = solve_ode(init_state)" ] }, { "cell_type": "code", "execution_count": 38, "id": "de770afb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "765 ms ± 7.45 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], "source": [ "%timeit res = solve_ode(init_state)" ] }, { "cell_type": "code", "execution_count": 22, "id": "4bdfe23f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "resx = res[0][-1]+pos0+x\n", "imshow(cic_paint(jnp.zeros(mesh_shape), resx).sum(axis=0)); colorbar()" ] }, { "cell_type": "code", "execution_count": 23, "id": "9abade92", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow((flowpm.cic_paint(tf.zeros([1]+mesh_shape), final_state[0]).numpy()[0]).sum(axis=0),cmap='gist_stern'); colorbar()" ] }, { "cell_type": "code", "execution_count": 24, "id": "a7f8b5d5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow((cic_paint(jnp.zeros(mesh_shape), resx) - \n", " flowpm.cic_paint(tf.zeros([1]+mesh_shape), final_state[0]).numpy()[0]).sum(axis=0)); colorbar()" ] }, { "cell_type": "code", "execution_count": 25, "id": "68b72b68", "metadata": {}, "outputs": [], "source": [ "from DifferentiableHOS.pk import power_spectrum" ] }, { "cell_type": "code", "execution_count": 26, "id": "785818e3", "metadata": {}, "outputs": [], "source": [ "k, pk = power_spectrum(flowpm.cic_paint(tf.zeros([1]+mesh_shape), final_state[0]),\n", " boxsize=array([64.,64.,64.]), \n", " kmin=0.1,dk=2*np.pi/64.)\n", "\n", "k, pk_jax = power_spectrum(tf.convert_to_tensor(cic_paint(jnp.zeros(mesh_shape), resx).reshape([1,64,64,64])),\n", " boxsize=array([64.,64.,64.]), \n", " kmin=0.1,dk=2*np.pi/64.)\n" ] }, { "cell_type": "code", "execution_count": 27, "id": "18e3d30b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "loglog(k,pk[0], label='flowpm')\n", "loglog(k,pk_jax[0], label='jax')\n", "legend()" ] }, { "cell_type": "code", "execution_count": 28, "id": "c2c1ecdb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "semilogx(k,(pk_jax[0] - pk[0])/pk[0])" ] }, { "cell_type": "code", "execution_count": null, "id": "703c8195", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "d6921f17", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "b3083d29", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "65116b88", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "c6bd8cfd", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.2" } }, "nbformat": 4, "nbformat_minor": 5 }