From 01f5793798ce7194a7a5f6ef9042623daeb7dace Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Sat, 30 Nov 2024 14:41:58 +0530 Subject: [PATCH 1/6] Created using Colab --- chapter03_introduction-to-keras-and-tf.ipynb | 2335 ++++++++++-------- 1 file changed, 1347 insertions(+), 988 deletions(-) diff --git a/chapter03_introduction-to-keras-and-tf.ipynb b/chapter03_introduction-to-keras-and-tf.ipynb index 04c0d056eb..680f6ff3bc 100644 --- a/chapter03_introduction-to-keras-and-tf.ipynb +++ b/chapter03_introduction-to-keras-and-tf.ipynb @@ -1,990 +1,1349 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "This is a companion notebook for the book [Deep Learning with Python, Second Edition](https://www.manning.com/books/deep-learning-with-python-second-edition?a_aid=keras&a_bid=76564dff). For readability, it only contains runnable code blocks and section titles, and omits everything else in the book: text paragraphs, figures, and pseudocode.\n\n**If you want to be able to follow what's going on, I recommend reading the notebook side by side with your copy of the book.**\n\nThis notebook was generated for TensorFlow 2.6." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "# Introduction to Keras and TensorFlow" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## What's TensorFlow?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## What's Keras?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## Keras and TensorFlow: A brief history" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## Setting up a deep-learning workspace" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Jupyter notebooks: The preferred way to run deep-learning experiments" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Using Colaboratory" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### First steps with Colaboratory" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### Installing packages with pip" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### Using the GPU runtime" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## First steps with TensorFlow" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### Constant tensors and variables" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**All-ones or all-zeros tensors**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "import tensorflow as tf\n", - "x = tf.ones(shape=(2, 1))\n", - "print(x)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "x = tf.zeros(shape=(2, 1))\n", - "print(x)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Random tensors**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "x = tf.random.normal(shape=(3, 1), mean=0., stddev=1.)\n", - "print(x)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "x = tf.random.uniform(shape=(3, 1), minval=0., maxval=1.)\n", - "print(x)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**NumPy arrays are assignable**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "x = np.ones(shape=(2, 2))\n", - "x[0, 0] = 0." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Creating a TensorFlow variable**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "v = tf.Variable(initial_value=tf.random.normal(shape=(3, 1)))\n", - "print(v)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Assigning a value to a TensorFlow variable**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "v.assign(tf.ones((3, 1)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Assigning a value to a subset of a TensorFlow variable**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "v[0, 0].assign(3.)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Using `assign_add`**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "v.assign_add(tf.ones((3, 1)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### Tensor operations: Doing math in TensorFlow" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**A few basic math operations**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "a = tf.ones((2, 2))\n", - "b = tf.square(a)\n", - "c = tf.sqrt(a)\n", - "d = b + c\n", - "e = tf.matmul(a, b)\n", - "e *= d" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### A second look at the GradientTape API" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Using the `GradientTape`**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "input_var = tf.Variable(initial_value=3.)\n", - "with tf.GradientTape() as tape:\n", - " result = tf.square(input_var)\n", - "gradient = tape.gradient(result, input_var)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Using `GradientTape` with constant tensor inputs**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "input_const = tf.constant(3.)\n", - "with tf.GradientTape() as tape:\n", - " tape.watch(input_const)\n", - " result = tf.square(input_const)\n", - "gradient = tape.gradient(result, input_const)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Using nested gradient tapes to compute second-order gradients**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "time = tf.Variable(0.)\n", - "with tf.GradientTape() as outer_tape:\n", - " with tf.GradientTape() as inner_tape:\n", - " position = 4.9 * time ** 2\n", - " speed = inner_tape.gradient(position, time)\n", - "acceleration = outer_tape.gradient(speed, time)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### An end-to-end example: A linear classifier in pure TensorFlow" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Generating two classes of random points in a 2D plane**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "num_samples_per_class = 1000\n", - "negative_samples = np.random.multivariate_normal(\n", - " mean=[0, 3],\n", - " cov=[[1, 0.5],[0.5, 1]],\n", - " size=num_samples_per_class)\n", - "positive_samples = np.random.multivariate_normal(\n", - " mean=[3, 0],\n", - " cov=[[1, 0.5],[0.5, 1]],\n", - " size=num_samples_per_class)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Stacking the two classes into an array with shape (2000, 2)**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "inputs = np.vstack((negative_samples, positive_samples)).astype(np.float32)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Generating the corresponding targets (0 and 1)**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "targets = np.vstack((np.zeros((num_samples_per_class, 1), dtype=\"float32\"),\n", - " np.ones((num_samples_per_class, 1), dtype=\"float32\")))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Plotting the two point classes**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.scatter(inputs[:, 0], inputs[:, 1], c=targets[:, 0])\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Creating the linear classifier variables**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "input_dim = 2\n", - "output_dim = 1\n", - "W = tf.Variable(initial_value=tf.random.uniform(shape=(input_dim, output_dim)))\n", - "b = tf.Variable(initial_value=tf.zeros(shape=(output_dim,)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**The forward pass function**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "def model(inputs):\n", - " return tf.matmul(inputs, W) + b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**The mean squared error loss function**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "def square_loss(targets, predictions):\n", - " per_sample_losses = tf.square(targets - predictions)\n", - " return tf.reduce_mean(per_sample_losses)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**The training step function**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "learning_rate = 0.1\n", - "\n", - "def training_step(inputs, targets):\n", - " with tf.GradientTape() as tape:\n", - " predictions = model(inputs)\n", - " loss = square_loss(targets, predictions)\n", - " grad_loss_wrt_W, grad_loss_wrt_b = tape.gradient(loss, [W, b])\n", - " W.assign_sub(grad_loss_wrt_W * learning_rate)\n", - " b.assign_sub(grad_loss_wrt_b * learning_rate)\n", - " return loss" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**The batch training loop**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "for step in range(40):\n", - " loss = training_step(inputs, targets)\n", - " print(f\"Loss at step {step}: {loss:.4f}\")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "predictions = model(inputs)\n", - "plt.scatter(inputs[:, 0], inputs[:, 1], c=predictions[:, 0] > 0.5)\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "x = np.linspace(-1, 4, 100)\n", - "y = - W[0] / W[1] * x + (0.5 - b) / W[1]\n", - "plt.plot(x, y, \"-r\")\n", - "plt.scatter(inputs[:, 0], inputs[:, 1], c=predictions[:, 0] > 0.5)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## Anatomy of a neural network: Understanding core Keras APIs" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Layers: The building blocks of deep learning" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### The base Layer class in Keras" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**A `Dense` layer implemented as a `Layer` subclass**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "from tensorflow import keras\n", - "\n", - "class SimpleDense(keras.layers.Layer):\n", - "\n", - " def __init__(self, units, activation=None):\n", - " super().__init__()\n", - " self.units = units\n", - " self.activation = activation\n", - "\n", - " def build(self, input_shape):\n", - " input_dim = input_shape[-1]\n", - " self.W = self.add_weight(shape=(input_dim, self.units),\n", - " initializer=\"random_normal\")\n", - " self.b = self.add_weight(shape=(self.units,),\n", - " initializer=\"zeros\")\n", - "\n", - " def call(self, inputs):\n", - " y = tf.matmul(inputs, self.W) + self.b\n", - " if self.activation is not None:\n", - " y = self.activation(y)\n", - " return y" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "my_dense = SimpleDense(units=32, activation=tf.nn.relu)\n", - "input_tensor = tf.ones(shape=(2, 784))\n", - "output_tensor = my_dense(input_tensor)\n", - "print(output_tensor.shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "#### Automatic shape inference: Building layers on the fly" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "from tensorflow.keras import layers\n", - "layer = layers.Dense(32, activation=\"relu\")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "from tensorflow.keras import models\n", - "from tensorflow.keras import layers\n", - "model = models.Sequential([\n", - " layers.Dense(32, activation=\"relu\"),\n", - " layers.Dense(32)\n", - "])" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "model = keras.Sequential([\n", - " SimpleDense(32, activation=\"relu\"),\n", - " SimpleDense(64, activation=\"relu\"),\n", - " SimpleDense(32, activation=\"relu\"),\n", - " SimpleDense(10, activation=\"softmax\")\n", - "])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### From layers to models" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### The \"compile\" step: Configuring the learning process" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "model = keras.Sequential([keras.layers.Dense(1)])\n", - "model.compile(optimizer=\"rmsprop\",\n", - " loss=\"mean_squared_error\",\n", - " metrics=[\"accuracy\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "model.compile(optimizer=keras.optimizers.RMSprop(),\n", - " loss=keras.losses.MeanSquaredError(),\n", - " metrics=[keras.metrics.BinaryAccuracy()])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Picking a loss function" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Understanding the fit() method" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Calling `fit()` with NumPy data**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "history = model.fit(\n", - " inputs,\n", - " targets,\n", - " epochs=5,\n", - " batch_size=128\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "history.history" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Monitoring loss and metrics on validation data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "**Using the `validation_data` argument**" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "model = keras.Sequential([keras.layers.Dense(1)])\n", - "model.compile(optimizer=keras.optimizers.RMSprop(learning_rate=0.1),\n", - " loss=keras.losses.MeanSquaredError(),\n", - " metrics=[keras.metrics.BinaryAccuracy()])\n", - "\n", - "indices_permutation = np.random.permutation(len(inputs))\n", - "shuffled_inputs = inputs[indices_permutation]\n", - "shuffled_targets = targets[indices_permutation]\n", - "\n", - "num_validation_samples = int(0.3 * len(inputs))\n", - "val_inputs = shuffled_inputs[:num_validation_samples]\n", - "val_targets = shuffled_targets[:num_validation_samples]\n", - "training_inputs = shuffled_inputs[num_validation_samples:]\n", - "training_targets = shuffled_targets[num_validation_samples:]\n", - "model.fit(\n", - " training_inputs,\n", - " training_targets,\n", - " epochs=5,\n", - " batch_size=16,\n", - " validation_data=(val_inputs, val_targets)\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "### Inference: Using a model after training" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab_type": "code" - }, - "outputs": [], - "source": [ - "predictions = model.predict(val_inputs, batch_size=128)\n", - "print(predictions[:10])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text" - }, - "source": [ - "## Summary" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "name": "chapter03_introduction-to-keras-and-tf.i", - "private_outputs": false, - "provenance": [], - "toc_visible": true - }, - "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.7.0" - } - }, - "nbformat": 4, - "nbformat_minor": 0 + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Tf8R2Z-6wBHK" + }, + "source": [ + "This is a companion notebook for the book [Deep Learning with Python, Second Edition](https://www.manning.com/books/deep-learning-with-python-second-edition?a_aid=keras&a_bid=76564dff). For readability, it only contains runnable code blocks and section titles, and omits everything else in the book: text paragraphs, figures, and pseudocode.\n", + "\n", + "**If you want to be able to follow what's going on, I recommend reading the notebook side by side with your copy of the book.**\n", + "\n", + "This notebook was generated for TensorFlow 2.6." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-lvJg2qowBHL" + }, + "source": [ + "# Introduction to Keras and TensorFlow" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TaE0t6vewBHL" + }, + "source": [ + "## What's TensorFlow?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KOUh340EwBHL" + }, + "source": [ + "## What's Keras?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sLbleYrZwBHM" + }, + "source": [ + "## Keras and TensorFlow: A brief history" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qc69r5HCwBHM" + }, + "source": [ + "## Setting up a deep-learning workspace" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QxAUrMWSwBHM" + }, + "source": [ + "### Jupyter notebooks: The preferred way to run deep-learning experiments" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qNFymzzZwBHN" + }, + "source": [ + "### Using Colaboratory" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6brsCbHbwBHN" + }, + "source": [ + "#### First steps with Colaboratory" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0NNb2yWGwBHN" + }, + "source": [ + "#### Installing packages with pip" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CW_kSBy-wBHN" + }, + "source": [ + "#### Using the GPU runtime" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6L55HYkuwBHN" + }, + "source": [ + "## First steps with TensorFlow" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6o8DT1tNwBHO" + }, + "source": [ + "#### Constant tensors and variables" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Kx7Vr-w6wBHO" + }, + "source": [ + "**All-ones or all-zeros tensors**" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "756t9LB7wBHO", + "outputId": "4a067a52-fa28-4494-850a-6973d274a2a3", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tf.Tensor(\n", + "[[1.]\n", + " [1.]], shape=(2, 1), dtype=float32)\n" + ] + } + ], + "source": [ + "import tensorflow as tf\n", + "x = tf.ones(shape=(2, 1))\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "ODUCQ2iHwBHO", + "outputId": "7a3fc492-7132-48f8-e444-f45d40993d65", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tf.Tensor(\n", + "[[0.]\n", + " [0.]], shape=(2, 1), dtype=float32)\n" + ] + } + ], + "source": [ + "x = tf.zeros(shape=(2, 1))\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sqK0F6RtwBHP" + }, + "source": [ + "**Random tensors**" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "WsOBLC_JwBHP", + "outputId": "c199b2f7-9f87-46f4-908a-0bde455ffdac", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tf.Tensor(\n", + "[[-0.7213682 ]\n", + " [-0.23578633]\n", + " [ 0.30161858]], shape=(3, 1), dtype=float32)\n" + ] + } + ], + "source": [ + "x = tf.random.normal(shape=(3, 1), mean=0., stddev=1.)\n", + "print(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "qwAXKMeVwBHP", + "outputId": "b4088738-405a-4142-a140-5bd2b806f3d3", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tf.Tensor(\n", + "[[0.7632557 ]\n", + " [0.01413333]\n", + " [0.19076347]], shape=(3, 1), dtype=float32)\n" + ] + } + ], + "source": [ + "x = tf.random.uniform(shape=(3, 1), minval=0., maxval=1.)\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EQ4nKX2owBHP" + }, + "source": [ + "**NumPy arrays are assignable**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "B0gyKf4ywBHP" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "x = np.ones(shape=(2, 2))\n", + "x[0, 0] = 0." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iue8MWewwBHP" + }, + "source": [ + "**Creating a TensorFlow variable**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "id": "PMkmPwW6wBHP", + "outputId": "f9231523-6d1a-4ffc-eab8-da44f7e567e4", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n" + ] + } + ], + "source": [ + "v = tf.Variable(initial_value=tf.random.normal(shape=(3, 1)))\n", + "print(v)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "39NSUQTgwBHP" + }, + "source": [ + "**Assigning a value to a TensorFlow variable**" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "uMVhF7WFwBHP", + "outputId": "ff51b24c-d82f-4161-b665-f57c16eee7a0", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "v.assign(tf.ones((3, 1)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vIp96kxNwBHP" + }, + "source": [ + "**Assigning a value to a subset of a TensorFlow variable**" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "id": "tHRZHVmXwBHP", + "outputId": "d96d5fd4-e4fd-433c-ffc0-200240a232f7", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ], + "source": [ + "v[0, 0].assign(3.)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f8MuXVWmwBHQ" + }, + "source": [ + "**Using `assign_add`**" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "id": "UlohoM4GwBHQ", + "outputId": "9ba9b544-ce86-4a45-b69a-65838279839f", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 12 + } + ], + "source": [ + "v.assign_add(tf.ones((3, 1)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8FfjTe2LwBHQ" + }, + "source": [ + "#### Tensor operations: Doing math in TensorFlow" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V5PjE9IFwBHQ" + }, + "source": [ + "**A few basic math operations**" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "id": "-FQ0sGMbwBHQ" + }, + "outputs": [], + "source": [ + "a = tf.ones((2, 2))\n", + "b = tf.square(a)\n", + "c = tf.sqrt(a)\n", + "d = b + c\n", + "e = tf.matmul(a, b)\n", + "e *= d" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "90NS3mXCwBHQ" + }, + "source": [ + "#### A second look at the GradientTape API" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J9yy9CsSwBHQ" + }, + "source": [ + "**Using the `GradientTape`**" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "3JNSSBPXwBHR" + }, + "outputs": [], + "source": [ + "input_var = tf.Variable(initial_value=3.)\n", + "with tf.GradientTape() as tape:\n", + " result = tf.square(input_var)\n", + "gradient = tape.gradient(result, input_var)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1gyYoq2hwBHR" + }, + "source": [ + "**Using `GradientTape` with constant tensor inputs**" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "9DXwNZizwBHR" + }, + "outputs": [], + "source": [ + "input_const = tf.constant(3.)\n", + "with tf.GradientTape() as tape:\n", + " tape.watch(input_const)\n", + " result = tf.square(input_const)\n", + "gradient = tape.gradient(result, input_const)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_w2m3jXgwBHR" + }, + "source": [ + "**Using nested gradient tapes to compute second-order gradients**" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "8GCemnvDwBHR" + }, + "outputs": [], + "source": [ + "time = tf.Variable(0.)\n", + "with tf.GradientTape() as outer_tape:\n", + " with tf.GradientTape() as inner_tape:\n", + " position = 4.9 * time ** 2\n", + " speed = inner_tape.gradient(position, time)\n", + "acceleration = outer_tape.gradient(speed, time)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nRgJznLowBHV" + }, + "source": [ + "#### An end-to-end example: A linear classifier in pure TensorFlow" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_IhiN0g-wBHV" + }, + "source": [ + "**Generating two classes of random points in a 2D plane**" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "idSnZ02ZwBHV" + }, + "outputs": [], + "source": [ + "num_samples_per_class = 1000\n", + "negative_samples = np.random.multivariate_normal(\n", + " mean=[0, 3],\n", + " cov=[[1, 0.5],[0.5, 1]],\n", + " size=num_samples_per_class)\n", + "positive_samples = np.random.multivariate_normal(\n", + " mean=[3, 0],\n", + " cov=[[1, 0.5],[0.5, 1]],\n", + " size=num_samples_per_class)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OS70zkYMwBHW" + }, + "source": [ + "**Stacking the two classes into an array with shape (2000, 2)**" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "id": "lujLFC1swBHW" + }, + "outputs": [], + "source": [ + "inputs = np.vstack((negative_samples, positive_samples)).astype(np.float32)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fQDtwbQfwBHW" + }, + "source": [ + "**Generating the corresponding targets (0 and 1)**" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "id": "AP8QAV_gwBHW" + }, + "outputs": [], + "source": [ + "targets = np.vstack((np.zeros((num_samples_per_class, 1), dtype=\"float32\"),\n", + " np.ones((num_samples_per_class, 1), dtype=\"float32\")))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2WA_jvZvwBHW" + }, + "source": [ + "**Plotting the two point classes**" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "id": "E-KPfaeQwBHW", + "outputId": "072fdd09-0ef2-46ce-bbde-3e39b498e2e5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + } + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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5ZbsvffeLFmypNihDUsvvfQSJ554Iq+++irPPvsssViMvfbai9bW1mKHNuy9/vrrXH/99WyxxRbFDmVYW7lyJTvttBPBYJDf//73vPvuu1x22WXU1dUVO7TBpyatJ598UjfeeGP917/+pYD+/e9/L3ZII8YvfvELnTx5crHDGDa23XZbPfHEE7u/TiQSOnHiRJ03b14Roxo5lixZooC+9NJLxQ5lWGtubtaNNtpIn332Wd1tt9305JNPLnZIw9ZZZ52lO++8c7HDKAgbEUlj8eLFzJkzh9tvv53y8vJihzPiNDY2Ul9fX+wwhoXOzk7eeOMNZsyY0f2Y4zjMmDGDV155pYiRjRyNjY0A9js5QCeeeCL77bdfr99V0z+PPvoo06ZNY+bMmYwbN44vf/nL3HjjjcUOa0hYIpKCqnL00UdzwgknMG3atGKHM+LMnz+fq666iuOPP77YoQwLy5YtI5FIMH78+F6Pjx8/nkWLFhUpqpHD8zxOOeUUdtppJ770pS8VO5xh65577uHNN99k3rx5xQ5lRPj444+59tpr2WijjXj66af57ne/yw9+8AN++9vfFju0QTeqEpGzzz4bEcn45/333+eqq66iubmZuXPnFjvkkpbr69nTggUL2GeffZg5cyZz5swpUuTGrHbiiSfyzjvvcM899xQ7lGHrs88+4+STT+bOO+8kHA4XO5wRwfM8tt56ay6++GK+/OUvc9xxxzFnzhyuu+66Yoc26ALFDqCQTj/9dI4++uiM22ywwQa88MILvPLKK33q+k+bNo3DDz98RGak/ZHr69ll4cKF7L777uy4447ccMMNQxzdyDFmzBhc12Xx4sW9Hl+8eDETJkwoUlQjw0knncTjjz/Oyy+/zDrrrFPscIatN954gyVLlrD11lt3P5ZIJHj55Ze5+uqriUajuK5bxAiHn7XWWotNN92012ObbLIJDz74YJEiGjqjKhEZO3YsY8eOzbrdlVdeyYUXXtj99cKFC9l7772599572W677YYyxGEl19cT/JGQ3XffnalTp3LLLbfgOKNqMG5AysrKmDp1Ks8//zwHHHAA4H9aev755znppJOKG9wwpap8//vf5+GHH+bFF19k8uTJxQ5pWNtjjz14++23ez02e/ZsNt54Y8466yxLQvphp5126rOk/MMPP2S99dYrUkRDZ1QlIrlad911e31dWVkJwJQpU+xTUz8sWLCA6dOns95663HppZeydOnS7ufsE31uTjvtNI466iimTZvGtttuy+WXX05rayuzZ88udmjD0oknnshdd93FI488QlVVVfdcm5qaGiKRSJGjG36qqqr6zK+pqKigoaHB5t3006mnnsqOO+7IxRdfzCGHHMJrr73GDTfcMCJHky0RMUPu2WefZf78+cyfP79PIqfW/Dkns2bNYunSpfz4xz9m0aJFbLXVVjz11FN9JrCa3Fx77bUATJ8+vdfjt9xyS9bbjcYUwjbbbMPDDz/M3LlzueCCC5g8eTKXX345hx9+eLFDG3SidiUwxhhjTJHYjXpjjDHGFI0lIsYYY4wpGktEjDHGGFM0logYY4wxpmgsETHGGGNM0VgiYowxxpiisUTEGGOMMUVjiYgxxhhjisYSEWOMMcYUjSUixhhjjCkaS0SMMcYYUzSWiBhjjDGmaP4fN3JhXQ8fNlMAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.scatter(inputs[:, 0], inputs[:, 1], c=targets[:, 0])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ij7Hj_eCwBHW" + }, + "source": [ + "**Creating the linear classifier variables**" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "id": "WuqVVL5iwBHW" + }, + "outputs": [], + "source": [ + "input_dim = 2\n", + "output_dim = 1\n", + "W = tf.Variable(initial_value=tf.random.uniform(shape=(input_dim, output_dim)))\n", + "b = tf.Variable(initial_value=tf.zeros(shape=(output_dim,)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QK9Ah3VrwBHW" + }, + "source": [ + "**The forward pass function**" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "id": "bvmlJYvqwBHW" + }, + "outputs": [], + "source": [ + "def model(inputs):\n", + " return tf.matmul(inputs, W) + b" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LYhk70b0wBHW" + }, + "source": [ + "**The mean squared error loss function**" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "id": "tPl2smo7wBHW" + }, + "outputs": [], + "source": [ + "def square_loss(targets, predictions):\n", + " per_sample_losses = tf.square(targets - predictions)\n", + " return tf.reduce_mean(per_sample_losses)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cQ-26kvtwBHW" + }, + "source": [ + "**The training step function**" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "id": "iwJujS8IwBHW" + }, + "outputs": [], + "source": [ + "learning_rate = 0.1\n", + "\n", + "def training_step(inputs, targets):\n", + " with tf.GradientTape() as tape:\n", + " predictions = model(inputs)\n", + " loss = square_loss(targets, predictions)\n", + " grad_loss_wrt_W, grad_loss_wrt_b = tape.gradient(loss, [W, b])\n", + " W.assign_sub(grad_loss_wrt_W * learning_rate)\n", + " b.assign_sub(grad_loss_wrt_b * learning_rate)\n", + " return loss" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ubKsessBwBHW" + }, + "source": [ + "**The batch training loop**" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "id": "dom46Jx0wBHX", + "outputId": "d886477e-1428-47de-8f95-4ed6c4ba7979", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loss at step 0: 1.4896\n", + "Loss at step 1: 0.2952\n", + "Loss at step 2: 0.1327\n", + "Loss at step 3: 0.1051\n", + "Loss at step 4: 0.0959\n", + "Loss at step 5: 0.0896\n", + "Loss at step 6: 0.0842\n", + "Loss at step 7: 0.0792\n", + "Loss at step 8: 0.0746\n", + "Loss at step 9: 0.0704\n", + "Loss at step 10: 0.0666\n", + "Loss at step 11: 0.0631\n", + "Loss at step 12: 0.0598\n", + "Loss at step 13: 0.0569\n", + "Loss at step 14: 0.0542\n", + "Loss at step 15: 0.0517\n", + "Loss at step 16: 0.0494\n", + "Loss at step 17: 0.0473\n", + "Loss at step 18: 0.0454\n", + "Loss at step 19: 0.0437\n", + "Loss at step 20: 0.0420\n", + "Loss at step 21: 0.0406\n", + "Loss at step 22: 0.0392\n", + "Loss at step 23: 0.0380\n", + "Loss at step 24: 0.0369\n", + "Loss at step 25: 0.0358\n", + "Loss at step 26: 0.0349\n", + "Loss at step 27: 0.0340\n", + "Loss at step 28: 0.0332\n", + "Loss at step 29: 0.0325\n", + "Loss at step 30: 0.0318\n", + "Loss at step 31: 0.0312\n", + "Loss at step 32: 0.0306\n", + "Loss at step 33: 0.0301\n", + "Loss at step 34: 0.0296\n", + "Loss at step 35: 0.0292\n", + "Loss at step 36: 0.0288\n", + "Loss at step 37: 0.0284\n", + "Loss at step 38: 0.0281\n", + "Loss at step 39: 0.0278\n" + ] + } + ], + "source": [ + "for step in range(40):\n", + " loss = training_step(inputs, targets)\n", + " print(f\"Loss at step {step}: {loss:.4f}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "id": "SzvC3jNEwBHX", + "outputId": "e8392473-4c43-4c37-d33e-33ff15e90c33", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + } + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGdCAYAAAAvwBgXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADUJklEQVR4nOydd3gUVReH3zuz6SQhhN57k46AgvSOIiCIiKCoiAWxoCKoKAJ+gKJYEKQoiKAUaUqT3nuVXqT3lt42u3O/PzZZCNmWSoD7Pg/GzNy592yy2Tlz7jm/I6SUEoVCoVAoFIq7gHa3DVAoFAqFQvHgohwRhUKhUCgUdw3liCgUCoVCobhrKEdEoVAoFArFXUM5IgqFQqFQKO4ayhFRKBQKhUJx11COiEKhUCgUiruGckQUCoVCoVDcNUx32wBXGIbBxYsXCQwMRAhxt81RKBQKhULhAVJKoqKiKFy4MJrmOuaRox2RixcvUqxYsbtthkKhUCgUinRw7tw5ihYt6nJMjnZEAgMDAdsLCQoKusvWKBQKhUKh8ITIyEiKFStmv4+7Ikc7IsnbMUFBQcoRUSgUCoXiHsOTtAqVrKpQKBQKheKuoRwRhUKhUCgUdw3liCgUCoVCobhrKEdEoVAoFArFXUM5IgqFQqFQKO4aWeqIXLhwgR49ehAaGoqfnx9Vq1Zl586dWbmkQqFQKBSKe4gsK98NCwujQYMGNG3alKVLl5IvXz6OHz9OSEhIVi2pUCgUCoXiHiPLHJFRo0ZRrFgxpkyZYj9WqlSprFpOoVAoFArFPUiWbc389ddfPPzwwzz99NPkz5+fmjVrMmnSJJfXJCQkEBkZmeKfQqFQKLIXS6KFHcv2sPzXtexe+S9Wq/Vum6S4j8myiMjJkycZP348/fv356OPPmLHjh289dZbeHt788ILLzi8ZsSIEXz++edZZZJCoVAo3LDit3VMeH8aEdduPQjmLZKHvt+/xGOd6t1FyxT3K0JKKbNiYm9vbx5++GE2b95sP/bWW2+xY8cOtmzZ4vCahIQEEhIS7N8na9VHREQoiXeFQqHIYlZMW8eXvcamPpGk0v35/AHUf7JO9hqluCeJjIwkODjYo/t3lm3NFCpUiMqVK6c4VqlSJc6ePev0Gh8fH3tfGdVfRqFQKLKPRHMiE97/1fHJpMfVn/pPJYueXRUPMFnmiDRo0ICjR4+mOHbs2DFKlCiRVUsqFAqFIp3sXrmfiOtRzgdIuHTyKoe3Hc8+oxQPBFnmiLz77rts3bqV//3vf5w4cYLff/+diRMn0rdv36xaUqFQ3OMYhsHpg+c4uvM/YiJi7rY5DxRhl8MzdZxC4SlZlqxap04d5s+fz6BBgxg6dCilSpXi22+/5bnnnsuqJRUKxT2KlJKlk1cx44u5XD17HQAvHxMtejSi96geBOUJvMsW3v+EFvZM4ylvkTxZbIniQSPLklUzg7QkuygUinuXaUNm89vQOamOa7pGkXKF+GHLFwQEB9wFyzLO9Qs3WDxxJQc3H0XXNWq1rE7rXk0ICs1ZzpXVYuXZYq8SdiXC4XkhBEXKFeSXw98hhMhm6xT3GjkiWVWhUCg84eJ/l/ltWGonBMCwGlw4fok5o//OZqsyhw1zt9KzdF9+/9889qzaz87l+5j04W/0KN2XAxsP323zUqCbdPp+95LDc0IIEPDGdy8pJ0SR6ShHRKFQ3FWW/bIaTXP+UWRYDRZNWH7PVWucOnCWL54dg8VixbAa9uPSkMTHxPNRu/8RdtVx9OFu0bhrfT6d8x75i+dNcbxQmQJ8sfgj6rSucXcMU9zXZFmOiEKhUHjCpZNXwI2TEXE9CnO8GR8/n2yyKuPM/36J7X8cvDRpSOJjE1j282qeHdQpew1zQ8POj9CgU10ObT5K2JUI8hYNpWLdsioSosgylCOiUCjuKrlyByA0DQznMuImbxNePl7ZaJV7Im9EsWHuVvvNumHnegQE+dvPb120C6vFcHq9NCTbFu/KcY4IgKZpVHms0t02Q/GAoBwRhUJxV2nSrQGLJqxwel43aTTt1sDl9k12IqXk9y/mMX34n1gTrWi6htVqZeybk3nly5506NsGsCV/usOSaMlqcxWKHE/O+MtWKBQPLNUaVaZm86poeuqPI00TmLxMPPNhx+w3zAmzv/qLqZ/OxGK2IKW0ORwSEuLMjO33M/9MXQNA5UfKO3xNyWi6RuVHK2SX2QpFjkU5IgqF4q4ihGDIvA94tP3DgM350E06AHkKhTBqxaeUqFT0bppoJy4mnhnD/3Q55peP/8BqtdKxX9sUSap3Ig1J+9dbZbaJCsU9h9qaUSgUdx3/QD+GzPuAc0cvsHXRbszxZspUL0mdtjXQdf1um2dn57K9xEXHuxxz81IYhzYfo3bL6nT/6Cl+/988NF2zOyW6ScNqNXh7/CsUq1AkO8xWKHI0yhFRKBQ5hmIViuTom3NUmGey81Fh0QC8OPxZKj9annnfLebg5mNomqB2q+p0fvcJqjSomJWmKhT3DMoRUSgU9z0XTlxi0U8rOLDpCLpJo07rmrTt3Yw8BT2TNU+mcJkCHo4raP//eo/Xpt7jtdO0jkLxIKEcEYVCcV+zYto6Rr/0Iwhh3x45tOUYf4ycz/C/B1KjaRWP56rWuDIFSubj6tnrSCO1QIima5StWYqSDxXLNPsVivsd1WtGoVDkaAzDYM+q/Zw5eB7fAB/qPVGb0EK2SMZ/+06zeMIKTh08h38uXxp2foQm3Rrg628TPju26z/erDvIoSqr0ATevt789t9YQgrk9tie3av281HbL5CGgXGbM6LpGl7eJr5ZP5Tytctk7EUrFPc4abl/K0dEoVBkiLjoOE7tP4uma5SuVgJvX+9Mm/vg5qOM6PEdV05fQ2gCaUg0XaPty80IDA1k5oj5tuRPi2E/X6BkPr5a9RmFShVg5PPfs3bmJqfCYkITvPD5Mzz3cec02XVg42EmD5rBwU1H7cdqtajKK1/2pGyNUhl6zQrF/YByRBQKhUMS4hLYtGAHl09dJThvII89VY/gvOn724qPTeDnQTNYOnkVCXFmAAKC/en0Vjt6DO5iL8FNLyf/PUO/RwZhMVtSRB4AhHCuCq+bNAqXLcjkA2PoWrA3EdejXK5TtWElvlk3NF02XjlzjfCrEYQWDiFvkdB0zaFQ3I+k5f6tckQUigeEldPX88Obk4mNjEM36RhWg7H9fubp95+k17BuaVIuTTQnMqjNcA5tPprCSYiJiGXG8LmcO3KBj2e+m6I/iZSSPasPsHnBdhJiEyhZpTgtn29MUGigwzWmD/sTS6I1lRNim8u5bVaLwbkjF9m1fJ9LHY9kLInuFVCdUaBEPgqUyJfu6xUKhXJEFIoHgo3ztzHq+R/s3yfLj1sSrfwxYj6aptFrWDeP51v523oObDzi8JyUknVzttDm5eY83Ko6AOHXIvjkiZEc3XEiKVIiMQzJ5EEzeP/nN2j+XMMUc8THJrBpwXaPHAlH6Cadnf/s46HHKrJ96R4MJ1szmq5RtaHqqaJQ3E2UsqpCcZ8jpeTnQTNw1Tx11lcLObLjBPvWHuTM4fMOkztvZ/HEFQjN+YSaSWPJpJX29T95YiTHd58EbE6Q1WIgDYnFbGHU8z+wd82BFNfHRsam2wkBQNjW6fTW406dkGQir0fydIGXaef3LC9Vept53y0mIS4h/WsrFIo0oRwRheI+5/SBs5w/dsnldobFbKFfvUG832wIvR96l9drfcDulf86HX/p5FWH5avJGBaDiycuAbB3zQGO7jjh1LEQmuCPEfNSHAvMkwsfv/QnvVoTrVSsV45azavy/JCuAGi6A8dJSv75dS3h1yJJTLBw/tglfur/K+83HUJcdFy611coFJ6jHBGF4j4n8mZ0mq85+e9ZBrYZzrbFuxye9w3wcXm90ATB+YIB2Lxgh8vEVcNqsHvlfuJibkmne3l70eqFJmim9H9EJa/Z89Onee/n1xEi9VyGIVM4VFJKpJQc23WSqYNnpXtthULhOcoRUSjucwqWzJ/ma6SUIOHb1ydhtaZM5jTHm906N9KQtOjRCID4GNe9WZJJjE9M8f1zg7uQO18wuhNnJF9R11UqX77wA9fO3wBg2S+r3W433Y5hNVgyeWUK50ihUGQNyhFRKO5zCpTIR81mVVy2pHeElJLr52+wb83BFMfXzdlCvJvGbz5+3jTu+igApaqWwDBc52nkzh9MrpCAFMdCC4Xww9b/8cgTD6fIRwktHMLb4/tQskoxl3kqhiFZMmklZ49c4OCmo2nOOYmPSeDC8UtpukahUKQdVTWjUDwAvP7ti7xd/2MS4sxpviFfOXMtxfd7Vu9P0U3WEQlxZpKzY1s834hJH07HYlicjn/8lRYOy4fzF8vLkHkfcONSGOePXsQ3wIeytUqh6zqTPvzNdZ6K1eDf9YcoU6Okm1foHJPX3f+IPH3wHFsX7SIxPpEyNUpS7/FaGdZoUShyEnf/r0yhUGQ5paoU5/st/2PC+9PYuXwvpEHG8K/x//BQg4oUr2jriuvq5n87MikKkit3AEGhubh5Odzp2IR4s8u5QguF2GXdk3FVBZSMpmn4B/q5H+hozcIhFKtYOF3XZgYxETGM6PE92xbvRtM1hBBYLVbyFAph8Kx3qfKYKjtW3B+orRmF4gGh5EPFGLH0Y/44+xOP92nh8XUndp/izboDOXP4PADFKhRxGQ0RmqBU1eL4+NkSWveuPuDSCQFYMmkVZjfOyJ0ULOW+E26tFtWo0rASuXIHuB17J10/6ICu353Ig5SSwR1GsWPZXsAW3UnWfgm7Es6HrYZz5tC5u2KbQpHZKEdEocgBXL9wg7ljFvHLx7+zeOIKosNj0jyHJdGSIrFUSsm2xbv45MmRPF/2Td6o8yFzvv6bc0cusnjiyjTNHRcdzw9vTub6xZssGLvU5VhpSDq/+4T9+4ObjzpNOE0mNjKW88c8z8ewWq32RFRXVHmsIt4+XnR310smKbqSvOXRoW8bOr3VzmN7Mpu9aw6wf/1hhw6fNCRWi4VZXy68C5YpFJmP2ppRKO4iVquVSQOmM++7xQDouobFYuXHd6bw6lfP06FvG5fXG4bB8l/XMf+7xZz89wxCE9RoWoUu/duzcvp61vyxMUU+x4k9p/D28ULTBYY1bW2m9q05yM8DZxBxLdLluGY9GtLqhSb27zVdc6lhkszSn1dz/tgFwq9GUqh0ARp3fZTHOtVzmA9x9tB5It30kBGa4Mi241RtWIku/Z8gOiyaP0bORwiBpgkMQ2IYBnXb1sLb14vo8BiKlC1E297NqfDw3e2eu3bmJnszP0dYLQZrZ23igyl9U8joKxT3IsoRUSjuIlM/mcncbxfZczYshi2ikRifyNh+PxMQ7G8vg70TKSWjXxrHimnr7NUj0pDsW3uQPav228fd/lQtDWlvUJce1s3e7H5b5qFiKW6OtVtWY+rgmW7nXvDDEvv/n9hzig1ztxIYGsjHv79N7ZbVU4xNNDtPfE1G0wTmBFtJsBCCF4c/S/vXW7Fy+gaun79BSMHcNH+uYbrKm7Oa6IhYhz12bicxwUKi2YK3j1c2WaVQZA3KEVEo7hKRN6P4c8wil4mjUwbPpFn3xxxWlKybvZkV09YBKRNIMySN7gZ3DoCma1w5nbLKpkKdslSoW5ZjO//zONE1magbUXzU7n+M2TCMyo+Utx8vWr4wPn7eLp0qq8WgaPmUyaZ5i4TS7cOOabLhblC4TEGEEEgXb46QAsHKCVHcF6gcEYXiLrH1711Y3NzYr565xtEdJ9i8cAczR85nwdilXD13HYCFPy5LszZIRjB562gudDvAFqW5s5tuYkIiPn7eaXZC7HMakt+GzE5xzD/Qj1a9mrp9/SN7fs+6OVvSte7dpO3LzVxqr2i6xhOvtspGixSKrENFRBSKu0R0eAxCE25v0B+1+x/RYTHoJg3DkIx7ewqtX2zK8d0nszT6cSetXmhK+NUIti7a5XRdw2LQ9NnHUhyb9OF09m84nO51pZTsXLGPyJtRBOW55eS8PKI7h7Yc5b99p51GlSyJFv7X/VsKlsxHhTpl021DdlO4TEGe/7Qr0z6fbUukve31abpG8YpF6Nz/CafXKxT3EioiolBkI8mVLB+1+4Lfhs7xKEoQHWaroEnuWCul5J8pa+zlnOnFx98HhC1/wl3CY/4SeXl9TC96fvo0uklzGBkRmqBZ98co+VAx+7GYiBgWT1qZ7miIHXnr55BMQJA/YzYMo0nX+i6vEwLmfPN3xtbPAiyJFs4cPs/ZIxcc/i57fNqF9ya/niKHxcfPm8dfacGYDcMICPLPTnMViixDRUQUimxCSsl3b0xi8YQVbpVJgVRPwnfOZTFb01X9ops0CpYqwA/b/sfqGRvZt/YAUkLRCoVZ8P0S4mMSUl3j4+eNJdFC2ZqlGLHsE0b2/IHr52/YKmIMCQLavNSMfmNfTnHdoa3HU/WQSQ8mbxMhBYJTHfcL8EVKiaZpTrcyrBaDzQt3ZNiGzMJqsTJz1ALmf7/EXoGUO38wnd95nKc/eNKuXSKEoM1LzWjVqwkXjl8iIc5MkbIF8cuVPoE2hSKnohwRhSKb+GfqWhZPWAG4Tyj1yFHB1k9FCByWx+peOtZEa4q5hCYICg1k2F8fEpg7Fx36tqFD3zZIKelbd6C9yuROzh25SLfCfXhzbG/avNiU6ad+ZNfyfzlz6Dx+uXx5pH1t8hbOk9q+TNg6Epqg2bOPOb0Bm+MT3faysZgtSCnTVOqaEJeA0LRMTQg1DIPh3cawaf72FE34wq9G8MvHv3Ni72k++v3tFMnJmqZRrEKRTLNBochpKEdEocgm5o7521YJ4UZUQ2iC2i2r2VU1XVG4TEGunr3uMOnVmmilUZdHiIuO5+zhCwTk9qdptwYUKJGPyQNncPG/y+TOF0zzHo3IXyKU47tOulwrIc7M1y+PIzHezBOvtSJXbn9CCgQTGBJAUJ5cDq8p/3AZl3oYbhEQnDeIF4Y+43RI6Wol2LZ4t1OnRwhByTtKip1hGAb/TFnD3G8Xc+agTbm0cv0KdH3/SRp0rJu+13AbmxfuYOO8bQ7PSWmrhGrZsxH1Hq+d4bUUinsFIdPSGzubiYyMJDg4mIiICIKCgu62OQpFuomPTaB9rh4uxwhdUO/xWnzwc1/iYxN4rsTrbufNVzyUmxfDXeaLfLH4I+q2rYkl0cKwZ75h84Id9ihJcrJscvTEE7z9vMlXLA8Xjl22H8uVO4Cenz1Np7fapbrhj3r+B1b/sdGho6DpGrqX7nT7pn6HOrw+ppdLrY+r567Ts3Rfl9GXdye+RrvezV2+Liklo18ex/Kpa1M4jMniZy8Of5buHz3lcg53DGwznD2r9ju1VdM16rStyfC/BmZoHYXibpOW+7eKiCgUmYRhGOxa8S9rZm4kOiyGwqUL0Obl5klP4+6v14QgOE8QNy+H837TIR6tKQ1cRlg0XWPet4uo27Ym04bMZvMCW65E8o0wOYnUUycEwBxn5sLxyymORYfHMP7dqZjjE1PpdPT9/iVO7DnJ6YPnU80VUiCY0WuGsGfVAVZNX0/E9UhCCuamXrtaNHuuIfmKhLq1J3+xvLw9vg9jXv3JliuSvA0lbCk2j3WqS+sXm6S4xmq1sm3RbjbM20pcdDzFKhQhf/FQlk9dC6T8mSYLi0355A/qPV6LMtVLurXJGeeOXHDpMBlWg3OHL6R7foXiXkQ5IgpFJhAdHsMn7UdwcNNR+1aEbtKY++1iur7/JL1H9aD8w2U4sfukU8VMq8WgWuPKfPLECKLCot0vKmxJnO5ubAc3HyUhLsFtj5g04cT3mTZkFo/3aUFgyK2tmkSzhbiYhFSlykIIwq5EcPbwBdq/1or2r6VfF6Nd7+YULlOA2V8tZOfyfUhDUrRCYTr1a0e7Pi1SNK8LuxLOwNbDOfnvGTSTzXFJdmBcbZ3pJo1FPy3n7fF90m1nrtwBXD173fWYkLQ36FMo7mWUI6JQZAIje37P4a3HAez5EMlfZ4/+i/wl8tH1gw4Mf+Ybh9drukZw3kB8Any4cuaawzF34uPnQ/5ioVw+ecXlOE3T+G/fGeKi4j19Oekm0Wxhw59baffKre6+Uz7+nWvnb6Qq4ZVSgiH5stdYZl2YaO/Wm15qNK1CjaZVsFqtWC2GwyRTKSWDnxzF6aT8DyPpd2SPELmILlktBsd3u86jcUez7g05deCs03JmIQTNuzfM0BoKxb2G0hFRKDLImcPnXSZLAswctYDHnqrLc0ldYG/vRis0QUCwP/9b+jGHtxxD93Lfet7b15vhfw/kkcdr2/vMOEI3aTzcpjpRNz2IsGQCuq5z41KY/fvYqDhWTl9vv+HfiZQQEx7Lxnnb7cfOHrnAqhkbWDdnC5E3XDe2c2aDs0qX/RsOc3THifRV84gk7ZUM0LZ3M0IK5HaoCKvpGqGFQ2jVq0mG1lAo7jVUREShyCDbF+92W257/fwNzh46T69h3XikfW3+GvcPJ/acwtffh8eeqkebl5oRFBrIyt/We7TmiH8+plrDypSuVoLfhv1JfEy8w6dsq8Wg8ztPcPZI9uQdWK1WQm8r471y5hqJCa5l7E1eOmcPn+fy6auMfulH9q09lOJc21da8NrXL2RKGe22xbvRTXq6xOAEgsc61cvQ+kF5Avl67ed82mEk545ctHcWtlqsFKtYhKELBpArt9qaUTxYKEdEocggiWaLR8mo5qQbcsW65ahYt5zDMdUaVWbumEVu5xrT5yf+t+QTCpXKz9CFA/iw5TCHDdKEEFy/cBObOlrW4+XjRaMuj9i/98vl6/aa5JyZdx77hLArESnOWRKtLPppOTcu3GTIvA8y3PI+MSExXT8KTdcIzJOLls83ztD6AEXLFeLng9+yd80B/l13CCEE1Zs8RLXGlTP8+hSKexHliCgUGaRszVJudTK8fb0oWr6Q27nqPV6LvEXycOPiTYciZcmcP3qJ58v2pUGHuuQtksdpNEZKyf+6f8db43q7XTszeHHYsyme6AuUyEfxSkVsERknr8ewGoRfiyTsSoTD1yENyeaFOziw8QhVG1bKkH1la5byuEJI0zWEsEWVcucPZuSyjzMtWiGEoGazqtRsVjVT5lMo7mWUI6JQZJDarapRoEQ+rp2/4VQro9ULTTzqDbJn9QHCr0W6dELsSNj81w63fVysFitj+kzAx88bc7zZs7nTSFBoIL2GPkP711vbjx3b9R+jXxrHWRflqJomaNj5ETYv3O5ya0s3aSz/da3Hjsihrcf468dl7N9wGN2kUa9dbZ7s25pGTz/KuHenEBsR5zAxVdMEXd5rT8FSBTi4+Qi6SadW82o07PJIpiqsKhSKWyhBM4UijVitVpDY9/cBju44wQfNPychzpzihio0m6rnN+uGun2aDr8WQY+Sb2COT3SrvpqTeHfCq7R8oTFe3rYbtSXRwte9x3uU71Kudmm+WTeUJ4N6unWo6ratyReLP3I755zRfzFxwG8pFF1t0Q3B4Nn98Q3w4ZP2I5GGkSKSJTTBQ/UrMPKfTzJcwaNQPOik5f6tqmYUCg/ZumgX/Zt8SlvvbrTx7sYbdT5k9e8bkFJSoU5Zxu/+kna9m9vzIvIVDaXX0G58t2m4RyH9ZT+vxpxw7zghQgiKVy5K9aYPEXnjVlXOpA+ns2q6Z0m3J3af4tjO/8idP3VDuztx1PH3TvatO8jEAb8BpHAyDKuB1Wpl+DPfULxSUX7cPpIm3RrglRTlKFQ6P32+7Mmo5YOVE6JQZDMqIqJQeMAfI+bzy8e/p2ogJw1Jhzfb0Pe7l1IkGhqGkaJxmScMajucnf/sy1S7sxpvP2/McWYAytUqzeOvtWTsmz877H3jCE3XqN2qOvmL5WXxxBUux5arVYpxO7+0fx8VHs20z2bz7/pDaJrGo0/W4cSek2xfsttpzo6mazw7sBO9hnUDbDk0hmGkEDxTKBQZR0m8KxSZyPHdJ/nl49+BlN1kk7cSFo5dRt22tajbtqb9XFqdkNvnu1cQmrA7IWD7OX3bZ0Ka5jCsBjuX7aFz//Zuxx7ffYqI65EE5w1i0YTlfP/G5BTRoxN7Tnm03r51B2+9BiEyzQmJCotmw9xthF0OJ7RwCA071yMgWJXiKhTuUI6IQuGGv39a7lJ7QtM1FvywJIUjklbiouM4f/xSuq+/G2SW4ySlrX+NJ433YiJiOXXgHN+9Pind6zkrkZVSEh8Tj8nbZM938QQpJbO+XMi0IbNINFvQdR2r1coPb07m5RHP8dTbj6fbVoXiQUA5IgqFG47t/M+lAJZhNTi+2/3TuCu+7zvZbQ+S+5V8xUIpXqmIU/XVZLx8vchTKITPu4xO91qaJqjZPGXJbKI5kQXfL2XB2KVcPXsdIaB2qxo8O6gT1RpVdjvn/O+X8POgGfbvk98r5vhExr87FR8/bx7v0zLdNisU9zsqWVWhcIO3r7cHY9Jf2nnzchirf9+Y8QjDPaiFJTRBp37taNa9ISZv51skmkmjxXMNMXnpnNx3Jt3rmbxNKfrgmBMS+ajd/5g0cLrdEZQSdq/8l/ebDmGlm6TbhLgEpg2Z7XLMlMEzsSR6ljOjUDyIKEdEoXBDg4513fZzyYj097/rDqWv98ltCE04FQzLqQjNpija8a22BIbk4s3vX7Ydv2PrRDNp5CmQm0efrMNXL/2Y7vV0k8aQeR8QWijEfmzhD0vZt/ZgKifQsBpIKfn65XGEX4u4cyo7u1fuJyYi1uW6Edci+Xf94XTbrVDc7yhHRPHAcfXsNSa8P42uhV7hiYDneKVaf/4a9w/mhESH49u81JSAYH+HjcqEJtBMOh3ebJNuezLqhEDOT3T18jaRp1Bu+/f5i+fllZE9+N+Sj+z5GO1eacFnc9+nxENF7eOEsMnEh1+P5NMOo1g9Y2O6bShbqxR12tzK45FSsmDsUpc/O6vV4J8pa52ejw6L8WjtmHDPxikUDyIqR0TxQHFizynebzaEuOh4uwNw5uA5xvabzJqZGx2KWQXnDWLU8sEMavMFkTei0HTNVq0hwdffhyHzB1CwVH62/L2TpT+v4tLJK4QUyE3Lno1p/Ez9VIqcEdcj+WfKGnat/JeE2ATyFslDZuDlbSLRw7LZ7KRqo8p8tepTdF0n0ZyIJdGKr7+Pw6TRxzrVo1bLagxsNZzDW4/Zu/NmBsd2/MeUT/6g7cvN2Lp4N+HXIt3m5QghOLXf+VZQoTIFPFq7UGnPxikUDyJKR0TxwGC1WnmhbD+XUuxd3n2CV77s6fD6+NgEVv++kb1r9iMNyUP1K9Ly+UZ4+XrzeZfRDrvwBuT2p3bL6tRoWoVqjSvz62ez2PDn1lTrGlbDluORgb/GEpWLcubQ+fRPkEUIAdNPjSN/8XwAnNp/hq2LdnHm0HnOHrnAtXM38Pb1okHHunR4sw1j3/qFncv2ZrFRthJrd9Eo3aTR6oWm9J/0msPzUkperPg2F/+77DCyommCklWK89Oer1RDO8UDRVru38oRUTwwbFuym0+eGOFyjH+QH3MuT7YnqFotVrYt3s3hbcfRTRoPt67BQ/UrpLipTPxgGn+OWXRXt0eSxdVyIkIInh3UiS7vteeLZ79l13LHom2arqHpmsdiaNnFB1PeoNULTZ2e37fuIANbDcMwZArHRtM1dJPG6DWfU/mR8llmX/i1CFb+tp6LJy4TkDuApt0aULpaiSxbT6HwBOWIKBQOmDZkNr//b57LUlyAif9+TakqxTm68z+GPPUV18/fQPfSQdock/IPl+HzBQPIWzgPcdFxdC30CvExCZljZAajIjmVAiXzkadgbo7u+C9TcmKykxrNqvDVys9cjjm05SiTB85g/4ZbSak1mlah96geVHi4TJbZtvDHZYzvPxXDathymKTEajF47Km6DPztLSVXr7hrKGVVxX1L5M0oju86iRCCCnXKpEm5UjfpHvVx0U06V85cY0CLz+0Oxu1CW//tPcWA5p/z097RHN99KvOcELgvnRCAK6evceX0tbttRrrYu/oAZ49coHjFIk7HVH60At+sG8qVM9cIuxJOnkIh5C+WN0vtWjdnC2P7/Wz/3mrceo9uWrCDr3uP56MZ72SpDQpFZqCqZhT3BHHRcYx5dQLPFO7DwNbD+bDVMJ4u+Ao/vDmZhDjPHIGHW1d3+zSer1goRcoVZP53i4mPSXA43moxOHf0Ihv+3Jpjt0MeFJK76mY1h7ce82hcgRL5qFi3XJY7IVJKpg2Z5Vwl1pCs+WMTF/+7nKV2KBSZgXJEFDmOY7v+49vXJtK/yacM7jCSf6auYUDLYSz7ZXWK/IHEhEQW/bScT54Y6Xa7BaBCnbI81KCiwzLcZLq+3wFd11n9xyaXTovQBGtnbaJMjZJ4+ajA4t3CN8CHboM6Zfk6uilnNcW7cOIyZw9fcBnh0zTBpvnbs9EqhSJ9qE9QRY5BSsmkAb8x5+u/0U0aVouB0ARb/97l9BrDkOxdc4CN87fT+OlH3a7x2Z/vMaDlUE4fOGermjAM+1od+7W164HERrkuGZWGJCYilly5A2j1QhOWTFrl0baPInPpNrATzw7sRGihEH4eNIO46PhMXyNZeC0nER/j/nUKXcuSn4dCkdkoR0SRY1gyaSVzvv4bwN7G3ZOtD03XWDp5ZQpHxJJoYcW0dfw9/h/OH7uEf5Afzbs3pONb7Ri3cxSbF+xg9R8biQqLplj5wrTr0zJFUmGRcoU49e9Zp86FbtLsOQOvjn6ew1uPcfLfs+l+7Yq0o5s0+/ujQ982tHyhMS9XeofrF25m2hqartG466PkKxqaaXNmBgVL5sfkbXJZYWRNtFKiclGn5xWKnEK2bc2MHDkSIQTvvPNOdi2puIcwDIOZoxakq1+KYTW4fFsiZHL/kG9e+YkTe08TFx3PjYth/DlmEa9U68+ZQ+dp3LU+L/2vO406P0qJysXskt7JPPl6a6SLzFGrxcBqNbhy5hp+ufz4YdtISldPX8lkQLA//X7sTbXGlV1uG2UXOcEGT7BaDAqWym//PuJqpFsnRGiC4Hy3MviFENRtW5NqjW3N7ZJfe/LXSo+U452fXs1s0zNMrtwBNHv2MTST49+VEILAPLl4tEOdbLZMoUg72VK+u2PHDrp27UpQUBBNmzbl22+/9eg6Vb774HDp1BWeL/Nmuq4VmqBKg4p8s24oAFMHz+T3EfMcC0zpGnkK5qZ45aLsXvGvvYeMNCRFyxfi0z/fp1SV4iSaE/mo7f/Yty51H5Lb50JK+v34Ck+82pIbl8MY2nk0h7Z4lthoMx5MXiakIfEP9sOaaCU2Mi7tP4RMomm3BoRdjWDv6gN3zQZPCQj2Z9bFifYS1ZP/nuHVGu+7vEboAl3XsZgtdiE5Lx8T3T/uTLlapfln6hqunrlGnkIhVGtcmZjwWMzxiZSuVoKGnet51AAxuwi7Ek6/Rz5KJdCXnMA7dOGH1G1b08UMCkXWkaN0RKKjo6lVqxbjxo1j+PDh1KhRQzkiilScP36JFyu8le7r35v8Om1eakaiOZGuhV5x2wPEqQCYgIZP1aN4paJYLQZXTl9l+9LdxES4dg7qtavJ7tUHSIx33K/mXqDnZ0/T89OnGdnje1b/kf6eLlmNEAIpJYOmv0Wz7g3tx2MiYuic/+UUpdZp4eURz9Htw47ERMQwvNsYdv6zD91ku6lbEq3kCglg0PS3c9TNPexqBDOG/cmyKWtIiE0AAXXa1KTH4C5ZKqKmULgjRzkiL7zwAnny5GHMmDE0adLEpSOSkJBAQsKtUszIyEiKFSumHJEHgERzIs8U7kPUzeg0XafpGsUrFWHsthH4+Plw9sgFXq78TsYNEqDrOlaLldwFggm/4rwD6/3ClCPfMeebv1kyceXdNsUlJR4qxktfPEv9J1NuO0SFRfNy5XcIS+fvysffh9mXJvFph1H8u/6Q04ja91v+l6UiZenBnJBI5PVI/AL9CAjyv9vmKBRpckSydDN45syZ7N69mxEjXMtqJzNixAiCg4Pt/4oVK5aV5ilyEF7eXjz5Rmv7VsmdCE3g5Z06t7p2q+qMXj3EHp7PtPyGJBVVgPCr978TArBw3DKWTsrZTgjAkHnvp3JCpJR83mU0Edej0j1vQmwCf37zN/vWOt+OM6wGkwdOT3Es/FoEM4bPpXeVd+le/DUGthnOpgXbMYzsU5D19vEib5FQ5YQo7kmyrGrm3LlzvP3226xYsQJfX1+Prhk0aBD9+/e3f58cEVE8GHT/uDMHNx9l75oDtvB70s1A0zV8/L35auVn+AX6cWDDYRCC6k0qU6RsoRRzFC5TgPzF87rtqpomHpCq3L9+/Id7oQI58noUlEt57PC24+xbczBjEwv4d+1B+9aPM/auPkB8XAK+fj6cPniO95t+RuTNaPv79calMHYt30eTZ+ozcPpb6HrO0iBRKHIaWeaI7Nq1i6tXr1KrVi37MavVyvr16xk7diwJCQmp/kB9fHzw8VG9ER5UvH28+N+Sj1jx6zoWjlvGheOX8MvlR/Puj9HxrXYULGmrkHAlta1pGl0/6JBC+joF92kvl8zgXukBk8+Baumm+dvRTbpHwnZOkXDu2CWP9GB2/bOPR9rX5pP2I4gKi0kRQUn+Oa6dvZnyD5fl6ffap98mheIBIMsckebNm7N///4Ux1588UUqVqzIhx9+qJ4SFA7x8vai3SstaPdKC4+viY2KY9X09exdexApJVUaVKTdK81ZMmlVCmE0aUjyFgnl+vkbWfgKFFmFpmvUaPpQKk2PmIgYdq/8N2NOSBI3L4V5NO7U/jNouua6f46Eed8u4ql32qnPO4XCBVnmiAQGBlKlSpUUxwICAggNDU11XKFIL4e2HOXjJ0YQHR5j77uxce42fPy96fv9S5zYc4pzRy6QK3cATbo1oFGXR/jqxXGsm735LluuSCtCE7TrndJBjQ6P4e0GH3PuyMXss0MITF4mDmw4jO6lu6zSuX7hJtfO3bBH8xQKRWqUsqrinuXm5TAGthlOQkwCSFKE1BPizEwaMJ3JB7+hUKkCKa4bNP0tCpbMx+yv/lKy7PcQhtVgeLcxzP9hKZ/Mepe8hfPw66ezOO/hdkpmIaWkdqvqrJ3lmTObHU35FIp7mWyVUFy7dq3HGiIKhTsWT1xJQkwChoMKB2lILIkW/h73T6pzukmn98ge/HL4WyWBfQ+RnIdxZNsx3m86hIjrESybsjpbc1s0XaNqw0qUq1Wa6k0ecqtZkr94XvIVy1ny8ApFTkNFRBT3LFv+2uHQCUnGsBpsXLCdPl897/B80fKFmXxgDEd3/merxJFw/dJNVkxbR8S1yKwyW5FBrBaDCycu8fdPK4iPSXB/gSPSmLQsBEgJxSsVYfCc9wB4uHV1ipQrxKWTV5w6Q136t0fT7g3JfIXibqEcEcU9i9kDFVNPlE4rPFwmhUBV75HP8WqN9zl35AKGVW3d5EgkrJm5KUPXp2m4hBY9G9F/0mt4eXsBtgqt4X8P5L2mQwi7HG7fHkpOkG79YlN7N2eFQuEc5aorcixRYdFsXbSLzQt3cP1i6mZmFeqURXfS9AtsN4QKdcqmeV1d1/l8/gCC8wbdMw3gcjK+AVlTkn/20PksmdcZG+ZuS9Xttmj5wvx8cAyvjn6eCnXKULR8Yao3rULdtjVZ/+cW2vo8S6+KbzH/+yWY483Zaq9Cca+QLU3v0ovqNfNgYo4389N7v7L059X2D36hCRo+VY+3x/chKDQQgKM7TvBmvUEu5/py5afUbFY1XXaEXQln4Y/L+GfKGiKuR5JotigNknRQv2Mdtvy1A+kilSN56yM7SS7ptjWJs235uOPDaf1o0aOR0/MHNh5mYOvhWBIt9vmSk1UfalCBkf98YlcBVijuZ3KMxLtCkVYMw+Czjl+yaMKKFE+f0pBsnL+ddxsNJi7a1oCuQp2ydBvY0elcoYVDqFjXfUTEMAxio+KwWlMmHoYUyE2vod3449wElsT9Qc/BXWy5BYo0sWXhTpdOCGS/EwK291TzHg3pNbRbiuZ5ztB0jbDL4U7PJ5oT+bzL15gTElM4NVJKpJQc2nyUGcPnZobpCsV9hcoRUeQoti/Zw87l+xyeM6wG545cZOnk1Tz1zuMAnNhzCk0TDpNWb14OZ/y7U+k/6fUUx6WUHNl+gv/2nWbX8n3sWrGPuKh4vHxMNOvekPavt+bgxiOc2HsKk5eJR56ojZevF78N+1NFRNJBWoKuTrsiZxEb526j36XehF+NYMW0dS7HGlaD0CJ5nJ7fvGCHy75EhiH5e/xyen72tD3PRKFQKEdEkcP4Z+oaNF1zWoUgkSyetJKn3nmc88cusvMfx04L2J54l09dS++RPezbOfs3HGbMqz85FMBKTLCw/Nc1/DNlDUIIhCYQApb+vApvP3XjyHIEBAT7Ex0Wk21LJsSZObLtOLVbVqfSI+U4uv2E00osv1y+1O9Qx+E5gGM7/3MrcBYdHsPVs9dT9UhSKB5k1NaMIkdx9ex117oQEi6fukJ8bAIHNh5xO5/VajC+/1TApsI6oMXnnD92yfn0SUtLKTGshj3Ebo5LVNGQrEbattOym+T322tfv2DLF3HSAfqVL3vi6+88v8PkbfLoPeKoi7RC8SCjHBFFjiK0cIjbShVzfCLvNfkMc4L70lyAlb+tZ9uS3Uwc8BuG1cjW0L8ibRSvWNRlJdSdaLpGUN7AdK+nm3TK1S4NQOVHK/Dlys9SNVUMKRDM+7+8QfvXWrmcq267Wi773QgBRSsUdti0T6F4kFGuuSJH0eqFJmz5a6fbcSf2nKJEJeddeG9HaIIxr/zEDQ8bminuDqGFQ3j2o05smLvVo/GarlG0fCHGbBjG6QPnGNNnAuePXUzhyBpWAyGEwzwVTddo+mwDcucLth+r2rASk/Z/w7FdJ7ly+ipBoYFUbVgJ3eS+aV3lR8tTqV45ju36z2EFjpTQfdBTSvJdobgDFRF5QJBScunkFU4fPEdcTPzdNscpj7Z/mKoNKzkNjydjWA3Wz93Gw21quJ1TGlI5IfcAz33cmXI1S9NrWDcAtNveA8n37uSvmibw9vUiT8EQDmw8QtWGlfjl8Ld8vfZzHn+lBY27Psqzgzrx3abh5C+eN8X7SQhAQKmqxen73Uup7BBCUOHhMjTq8ig1mlbxyAlJvu7zBQMoXsnWNiDZIUqO8PQY3IWWzzdO089EoXgQUDoiDwCr/9jI9GFz7AmaPv4+tHmxKb2GdSNX7oBMX+/q2WssmbSKIztO4OVtom7bmjTv0Qj/QD+Pro+LjuOdxwZz8t8zbseOWjGYzzuPJjYyLqNmK+4itVpUY+Q/n9ijBRvmbWPWqAUc3XECgMJlC1K/Qx3+Hv8P5vhE+/ZacpVNi56N+GBKX4dy6tHhMSyeuJJ/pqwm/GoE+Yrl5fE+LWnVq4nLnI/0Ykm0sOXvXaz/cwsxEbEUK1+Ydn1aUKKS6mukeHBIy/1bOSL3ObO/WsikD6enEozSdI1iFYvw3abhBAT5Z9p6K35bx+iXxgG3hcWRBIcGMXL5J5StUcpjuycPmuE2n2PivtFsX7qHyYNmqGTSe5jAPLmYdXFiqrLWuOg4DKuB7qXzXIk3iA6LdlrVUrN5VT6Z9S5BedKfM3I7MRExbJi7jRsXwwgpmJtGXR7JEsddobgfUYJmCsAWmZg8aAaQWjDKpslxgTmj/8q09Q5tPcZXvX7EsBr2SgQpJUibXPvAVsPtYmTueLh1DbdOSGjhEIpXLkq7V1rg6+/jdjtHkXOJuhnNsZ3/pTrul8uPgOAANvy5jcgbUS6bHO5ZtZ+3Hv2YyBtRGbZn3reL6VroFb5+ZTy/DZ3DmFd/omvhV5j91cI06aIoFAr3KEfkPmbZL2tcJsYZVoNFPy3PtA/Wud/8jaY7Xs+wGkTciGTl9A0ezVW6WglqtqjqsoKm6wcd0HWdwJBcDF34Id4+Xqo3zD3MiT2nnZ47uOmIR7kal05eYergmR6tZ7VYiY9NSPX+XzRhBeP7T7U1VZS2cUhbA8VJH05n4dhlHs2vUCg8Q31q38dcOOFcLyOZiOtRxGdS8ur2pXtc9usQCHYs3ePwnDnezO6V/7Ll751cPn0VgE/+eJdSVYoDqRP/OrzZhk5vtbNfX7NZVX45/C1d33+SYhWLkL94XiXHfo+RnA/iCE+jXYbVYPmva10mZB/YeJiP24+gre+ztM/Vgx6l+zLn679JNCeSaE5k6uA/XK7x62ezPC4dVygU7lHlu/cxAUH+bksFdZOGt693pqxncaEoCbZtmkRzyg9wwzD4Y8R85oz+i5iIWPvx0tVKYLUanDl4DrB1cA0I9idf0VAeblWDjm+1TfXa8hfPx8sjnuPpD55k0oDp/DN1jQqj30Mc3nqMbkX7EB0WQ/7ieXni1Va062PbdqvRtAqLJqzwaJ6EODPXzt1IpQcCsGbmJkY8910KKfmrZ64x6cPf2L50N136tyfiuuutnejwGPas2k+9drXS/iIVCkUqVETkPqbxM/VdCizpJo3HOj/icXmiO8rXLp2i5PJONF2jQp2UTejGvzuVqYNnpnBCAE7+e8buhADERsZx7dwNDm05xrTPZ/NM4Vf49bNZGEbKCExMRAzvPDaY5b+uVcJl9xgXjl/ixsUwEuLMnDt2kZ/e+5V3Gw4mJiKG+h3r4B/kWdUV2BzXO4m4HsmXvcbaVXNvRxqSfWsPsuaPjR7Nn50y9ArF/Y5yRO5jqjWqTLXGlR3mTQhNoOkazw7slGnrdXqrnctkQiHg8T4t7d+fPXKBBT8sTddaiQkWpg/7k18/nZXi+Nwxi7lw7JJrmXhFtlKwVH7qtq3pdqssRfBK2iJoJ/89w4QPfrM5lR76lUGhgeR3oF66/Nd1Lh1zaUh2r/zXozUKlc7vmTFpRFrOIWOmIqPHI+NXIKXF/UUKxT2OckTuY4QQDF0wgNqtqgO2iITuZYt+BIbkYviijyhTvWSG17l08gozvpjLoS3HqPRIedtat0VGdJOtf8cHU94kX9FQ+/EVv65Nk5y3I2Z9uZCI65H27xdNWJ4qSqK4u1w+dZWrZ6+nq7zasBqs/G0de1cfIDbKs4qrmIgYosKiUx0/+e9pt1uVYVciKF6piNOcFKEJilYobH+fZxZSxmOEv4e83gIZNRIZ/T0yvC/yWiNkwpZMXUuhyGmoHJH7nIDgAP63+CNO7T/D5r92Yo4zU7paCep3rJPhVuRWi5Wxb/3Mogkr0DQNTRNYLFaEJshXLC83L4ehe5mo93gturz7BBXrlktx/bULN1KVFacVw2qwYe42nni1JYnmRMKuOG/Drrh7nL5tmy2tJCZYOHcsdbdkZ1gtBif2nKJms6opjvv4ert1RISAfj++wkdth2O1GCkia1pSFPHdCa9muky7DH8PElZh89Zu+6MwbiLDekPobITXQ5m6pkKRU1COyANCqaolKFW1RKbOOXngdBZPWAGSJO0Q23EpJVfOXKP/pNdo+3Jzp9fnzhdMRj/PNV2zR0RMXia8/bwxx5kzNqkix5E7f3CKBFN3OFJYffTJh1k8aaXza3SNWi2qUaPJQ4xZP4xJH05n39qD9vMPPVaR3iN7UDmzoyGJByHBWSKuAQhk9I+IkHGZuq5CkVNQyqqKdBFxPZJuRfq4rJTJWyQP00+PQ9cdJ8Oe2HuK12sNyLAtFeqUoXqTKrR9uRmzv1rIsilrVKLqfYTJ25RCJM8dvgE+zL40Cb9cKZNbrVYrr9b4gPNHLzguMxcwetUQqje5FXm4eu46Ny+FkadgbvIXz5eh1+EMI+pLiJkCuKo60xAF9iCE5wm7CsXdRCmrKrKcbYt3uy3XvX7hJsd2nnR6vmyNUjTr/liGw9zHdp7kz2/+5sWKb2NOSFROyH2GNdHqefKxgPavtUrlhADous7IZR9TtHxh2/cm23ai0AS6l86AKW+mcEIA8hfLS8W65bLMCQHAiMC96I0BRqybMQrFvYnamlGki9ioOKft1W8nzk2C4QdT+hIUGsiin5ancGx0k4bVYqDpmtubkJQSabXZscpD5VZFzkYzaRiW29oEeIiXt4nrF28y9dOZtO7VlEKlC6Q4n7dIKBP2jWb7kj1sXrgDc7yZUlWK0/qlZoTkD87U1+ApQi+GxI2jJfxBu/+iwtJ6ARk7ByzHQfiBT0MQQQgM8KqM0AvdbRMV2YDamlGki10r9jGw9XDXgwRMPzmOAiXcP01G3ohi5/J9mOPMlKpanJJVi7Phz63sW3OAyLBozh25yLkjFzLJekVOxi/Ql0adH+XfDYe49N+VNF9vazMgMAyDZwd24sXhz2Z6cmlmIq1XkdcagVNnRAf/59CCPslOs7IcGTMNGfUFtmiQkfT19tuRAJ9miKChCP3WZ4g0IiDuL6T1NIhAhG9rhFelbLVd4R7VfVeR5RiGQc/Sfbl+/oZD7ZDkxL8RSz/OtDUvnbrCzJELWOIi4VBx71O8UlHendCHwR1GZYpwWN/vXqJjv7aZYFnWIWMmI6O+dHBGB60gIu9chJYn2+3KKmT8GmT4qx6M1EEvjAidh9CCkbHzkJGfAWbbOSRgBZ8WiODRCC3zOokrMoZyRBTZwr51BxnYeniqRELNpBEQ5M8PW/9HkbKpQ6sxETGs/mMTl09eITBPLho/U59CpQqkGgdw41IYy6eu5cLxS/gF+nJg0xFO7D6VZa9JcfdJztvInT83Ny7ezPB8IQVz88fZnzJNQTirkHELkNFjwXo26YgJfB9HBA5IERG4HzBuPAOJ+3AeBbodDZGrH5gqu3BeNPBpgRYyNhOtVGQE5Ygoso2jO/9j2pBZbF+6BySYvHQaP1OfFz5/xqFzsXjiCsa9M4XEBAu6ScMwJIZh0Pbl5rz1Y2/A1svDP9CPRRNWMOH9aTbJTSGUWuoDhNAE/oF+xETGpksI7U6+3/I/KtUr537gXUZKCdb/QMaBXgyh5b7bJmU60ohCXq2dtou0gqDlBctBXL0hRN4lCFNZp+cV2Uda7t8qWVWRISo8XIYvFn1EVFg0UTejCSkQ7LBiAWD9n1v49rWJ9u9vT05d9vNqDm05xuWTV0iIMzvQjMix/rIiC5CGJCYiluB8QUSFRdsTV9PLvaItI4SA+/5Gmo7OxcY1MC67GaRD/D+Q637/+d1/qPJdRaYQGJKLwmUKOnVCpJRMGTzTqYCZlJIzB8+RkHTDUCW4CgQ89Xa7DAuIabpGsYqFM8koRYYRuUFLY68e4UlEXCClKnG+F1EREUW2cPbIBc4f9VymOyPkzh9ExLWoNJV9KnIgEgqWKsCY9cM4tf8Mh7YcQ9M1Kj1ank3zt/PXuH+4eSnM5RS6SaN+h7rkKRiSTUYr3CGEBv49kNFj8CzSqYHfUxA7HUhwMc6C0MtkjpGKbEU5IvcpMZGxSEMSEOyfbaWL549d5O/xy9m96l+khJrNqvDkG60pVqEIMRHZ86TyxGuteGHoM0x8fxqrf9/ostuqImfj7etFvcdrAalbFJSsXIwiZQvy88d/cPmk4xJfTdfIUyiEN757MVvsVaSBgJcgbi5Yz7gZqIOWBxHwMlLGQNwcHCvQCpvWil/Oro5SOEY5IvcRUkpW/76ROaMX8t8+2x940QqF6fLuE7Tt3dxh/43MYu2sTYzs+T0S7Pv5545c4K9x//DhtH7UbF41Tb1C0kqhMgX4aMbb9sZ6fb97kTLVS3Jg02E2ztueJWsqspZuH3YiICh1Oebpg+cY3m0MZ9w00gtNckLyFr5/yl7vG2Q8WC+5H+dVAxH8JULPC4HvIM2bwHqRlM6I7XNNBI9UEvj3KKpq5j5i8sDpzPpyYYobvhC2opPWLzblvcmvZ0l05NzRC/Su0t9pVYuma0z892umDp7J5oU7sqT6pc/o5+ny7hMIIVj44zImfjANc0KiTZk1g4mOiuxFN+l0/eBJeg3rZneer1+4wZo/NnFkxwnW/7nFo4i+pmtIKRk8qz8NOz+SJhuklBzdcYKbl8MJLZyH8rVL52hRtHsNGTsbGTkYd79IkW89Qi946zrjpq3EOXYukKTa7P0IItebCO+6WWewIs2o8t0HkENbjvJ2A9fKiwG5/XmsUz06vdWOMtVLZtraP771C3//9I/jRmLYbghla5TEkmjhzKHzGFaZ6fkbPv4+JMQm4OVtItFsydS5FdlD5UfL0/TZx2jctb5dbt0wDH4e9Dtzvv7Lpr+ZxoiaEALfXD7MujgJvwBfj67ZtmQ349+dyoXjt57Yi1YozBvfvkid1jXStL7CMTJ6LDJ6HOD6b1WEzkV4VU19vUwA4zqIgPuyxPl+QDW9ewD5+6fl6CbXv86Y8FhW/raONx7+kLWzNmXa2jtX7HPqhAAYVoNju05y8t+zWC1GKiekcJmCTq70nIRYWxKbckLuXQ5vO06FOmVT9HyZMXwus79aiDRkmp0QsEU24qLiWTd7i0fjt/y9k8HtR3LxRMpS0QvHLvHx4/9jx7I9abZB4QAtL667Dd8+LjVC+CD0IsoJuU9Qjsg9iNViZcW0dbxZbyBPBvWka6FX2L5kt0tn4Na1NhXUkT1/4MqZa5ljUHqjGwJGrRjM1GPf0/2jpxBCqPD3XcLkfffTxTRN8OfXf9m/j4mM5Y8R8zM8r8lL59zh827HGYbB2H4/A6kjdlJKkPBDv59VNVZm4NsG1ymKGnjVVU3vHhCUI3KPYUm0MOSpr/iy11iO7TpJXHQ8YVfCibwRnaZ5pJQsnrgiU2yq0bSK22iMIzRNY9Vv6zHHmylQIh+lq5fAN8AnU2zKSWh6zv4zK16pCN0+7Iim3V0n0Gox2LJoFwDh1yJ4s94gEhPSIX51B4Yh8c3lfltm//rDXD173alfLaXk0n9XOLTlWIZtetARWm6bbLtDNEBDBH6QnSYp7iJ3/zFIkSb+/GYR2xbvBjIm+mVYDQ5sPJIpNj3Ztw2LJ6a9EZ1hNVg+bR3bluwm4noUQoj78mkzp0vTv/Vjb3xz+TF92J932xSsZgsWi4VBbb5IkaOREQyr4VGy6rXzNzya77qH4xRuCHgVIXyR0d+DvO1BSi+OCP4C4V397tmmyFaUI3IPYbVaWfDDkky7WWfWk3qpKsV5d9KrjHnlJ1sOfBrNi7geBXBfOiE5nW6DOlG9SRUAqjepzP4NR+6a4yQ0QenqJdm5bB8n9mROY0NN13jkidqUfKiY27G5b8tNyYxxCtcIISCgF/h3g4QtICNBL24r2VVbtA8UOTtmrEhB2OVwblx0rSRpx83fsdAED7fK+BNHdHgMf4ycz/h3ptpC2sqXuGfo2K8tL3/R3f79p3++T4WHbcqUuklHaMLurJaqVgKRxVs30pB0eqsd6+duSddWXzImL91+fb12tRg4/S2PrqvZrIpbJyNvkTxUaVgx3bYpUiOEL8K3KcKvA8K7pnJCHkBUROQewpMIhmbSqNOqBiZvE5sWOBbyEprAx8+bNi83y5A9V85c491Gg7l2ToWq70WW/bKGPl/1ZN/agyyZtIrrF26Qv0ReGnSsy/njl4iLjqNoucK0ebkZBUvmZ9aXC5g8aEaWOZvNuj9Gi56N2PzXDqweRmVM3iZ8/X1o0q0+T77Rmn1rD3Hh2CX8g/xo9PSjaSpT1006r45+nlHP/+B0zKujn0fXdY/nfFCQRjjEzUMmbANA+NQFv6cQmpLWV7hHOSL3ECEFclOiclHOHr7gdBvDsBh06NeWOq1rsOyX1XzT5yeEEPZwe7ITMnzRIHLny1iIeVjXrz2O0CQLq2U1Waneer8RHxNPtyKvEnkjyn7s8NbjrJu9hWIVi/DF4o8weensWrGPyyevcmLPKTRNy5KtmzptavLhtH5omkaxCkXcruPj7824nV9SvGKRFMdLVSnh5ArPaNGjEdKQ/PTeryl+LsH5gnhjTC+aPNMgQ/Pfj8iErcjw10DGkeylSvNaiPoeQsYhfNTPTOEaJWh2j7Fi2jq+7DXW4TndpFGkXCEm7f/Grkh5/thFFv20nAObjqCbdOq2rUXb3s0y3ATs6M7/eLPuQI/H5y0WyvVsiJyUrl6COm1qMmvUgixf60Eiqxw8zaSRO28QQxYMYNO8bRzYdASL2crRHSdc2tJ7xHN0/aBDptuTTKI5kaWTV7FuzhYunbyCf6AfD7euwZNvtM4U3Zv7BWm9jLzWClszujvfHwLwRuRdgjC5z9G5m0iZAPHLkPHLQcaAqTzCvyvCVPZum3bPkpb7t4qI3GO06NmIc0cv8MeI+egmDavFsN8k8hYN5YvFH6XoKVO0fGFe+6ZXpttxYMPhNN2csqvSQDfphF+JUJGRTCazfpaanjLS8VD9CtTvUId3klSB7ecEtvta8tfbrq9Qpwwd3myTKfY4Y8W09Yzt9wuaLuz6POeOXmTh2KV8Mqs/DToqOXEAGfs7YMbxfp0ELMi4PxCBA7LXLhkPaAjh7X6s9SLy5vNgPYstbdIA8zZk7FTI9S4i1+tZbK1COSL3GEIIXvqiO426PMqiCSs4feCsbT+8y6M06dYAX//s0eFIc0JZNvkE8TEJRN6Mcj9Qke0EBPszaf/XHN56nMQEC2VrlcIcZ+aNOh+mfn8kOSG3l3QHBPvT/rVWdP+kMz5+Wfc+P7brP759dQJSSqyWW4YZVgPDgOHPfMOUo99TsGT+LLPhniFhNeBqq84K8SshGxwRKaUtTyV2ClhsWi/SqwYioDfCt5WTawzkzd5gvZB0JPm12FRfZfQY0Esg/NplsfUPNsoRuUcpW7MU7/zU566tX6NZFY+ekrM1MiHg/NELnDtywf1YRaahe+k0faYBVovBmpkbnY577esXyFc0L/m63JLtHtTuC+dOqrTdXMrVLk3z7g1p27sZ/oGpu/FmNgt+WJoUCXFgmLQJpC36aTm9R/bIcltyPNLswZiMi9K5XUJKWxO9uNmkKBlM/BcZ/ibkegeR643UF5o3gdX5NiBoyJiJyhHJYlT5riJdlK5WgmqNKrstswwKDcwmi0i6cWXfcgobQgheH9OLj35/mzEbhpKvWGiK816+XrR6oQkXjl9i3DtTWDZlDfGxCZzYe4qdy/a6nf/47pP89N6vPF+mHwc3H82iV3GL3Sv/dds7afeq/Vluxz2BVw3AVRWRDt41st6OhFVJTgik9Gxtv0cZ/S0y8VCqy2TCBlw/jxtgOYQ0PJRNUKQL5Ygo0s3HM9+xJ+7dqTGh6RrFKxWhTPWMVTEocj5Wi5Xlv67FMAwWT1jJtXM3UmzdJcYnsvzXtcwctYAFY5fy9cvj6FroFcb0meDZAkn3laibUQxsPYxLJ69kwau4bTkPvNkcnOOfLmTiAWTMNGTMdKTFVYQgJcL/OVw3r7Mi/LM+ciRjp+POIbLls9yJBxEdAKmaaWYlyhFRpJs8BUMYt+tL3p34GlUeq0jRCoUJznsrAnLuyAX2rFZPjvc7QhOc3H+GNX9sYuX09YDzG3XyNl1cVBzHdv6XpnUMQ5KYkMiCH5ZmzGA3uOudpOkaNZtWyVIbsgtpvYBxowvyxlPIqC+QUcOQ19th3HwRadx0e73wro7I9V7Sd7c7Arb/F7neQnjXzny7ZQIy/h9k7Axk/AowH8SdQ0TiwVRHhaka4MbJ0PKDFup6jCJDKEdEkSF8/X1o17s536wdSvnapYkKiwFs4WspQebsNiuKzEDC5ZNX+f6NSVm+lNVisPoP53komUHHfu1cbs0IAe1fb52lNmQH0ohA3uh+2w36Nmlk81bkzedtZa1uELleRYT8DN6PAl62f971ECETEbnezHy7Y2cjr9ZHhvdDRg5FhvcFIt1fKBw0PvRrCyII57dCgfB/HiHUrTIrUcmqDwjR4TGc2n8WTdcoV6sU3r7uy9rSwtWz11jzx6b7LmStcI9hNdi/4XC2rRcf6/7mmBEq1SvHmz+8zNh+P9tL5MGmeSKAQdPfplDpAmmeV0oJiTshcT9gAp/HEKbSmWu8R3aYQUYjY2eBcRnH2cJWW+VJ/BLw6+R2TuHTEOHT0M26BshYEH4IkT51Whk7Fxn5ye1H7vjq1EKHlTNC+EHusciw3tgiKlb7eJDg3RACXkyXrQrPUY7IfU5sVBwTP5jG8l/XkphgC0EGBPvT6a129BjcBd2UOXLV25fuRapGM4osRmiCEpWKuB+YQTr0bUOlR8rx14/L2Lf2kK03U+sadHizDSUqFU3zfNJyAhn2VlKFhgZIiJJInyaI4NEILesFG6XlJDJ6PMQvxrYdcYdISyo0ZNxChAeOiMt1rTeQMZNsyaQyGvBG+ra3RVJMJT2fRyYio75MhwW6Lerh95TDs8LnEci7EBnzq83xknFgKmPLbfF7CiHUbTKrUT/h+5iEuAQ+aDaEE3tPpxCRiomIZcbwPzl/7CIf/f4OQgisFitbF+1iw9ytxEbFUax8Ydr2bk7R8oU9WisxITGF5oNC4RGCNMnGS0Py5BtZK2aWTPnaZXj/l74ZnkdaL9u2QGSyvs1trzVhAzLsZcgzEyF0pLTeFjXIvI9nmXgQefM5kAnceup397dqgHE9Y+taLyNvPAPG1dvWNUP8AmTCMsgzHeH1kGeTmbeCTEf1ipYHEfIzQnPe0kKYyiCCh0Lw0LTPr8gwyhG5j1n682qO7z7psKRVSlg7azOP92lJicpFGdh6OCf/PWNXvtyma8we/Re9hnXjuY87u12rTI2SmaMXImzqqF4+XiTEJih11PsZAU++3prje05xeMsx+2EfP28S4sypHFshBHUfr0Xz51xvAeQ0ZOy0JCfEUTKlFRL3IePmIxMPQNx8IA7wQfp1RAS8ijClPQKTYn0pkeEfgIzHtfjYneigF8/Y2pHD7nBCkrGCjEeG94e8yzwTSPQgedYh/i8gvFTH5JyMckTuYxZPXOHymUc3aSyZvIpLJ69w+uA54JbEdvLXqYNnUqhUfpp1d/3hX7VhJYpVLMKF45ecP93eFglOFjq7XfBM0zU0TTB4znuUrVmK+d8tYe6YRSrKcp9i8jKxZNJK/AL9aPZcQ6o1rESRcoWoXL8862ZvYdaoBZw5dB6A0MIhdOzXji79n8i07cSMII1oiF+MtJxGaIHg28Z5vkfcfFxXdGgQ+Rk2JyF5XALE/YmMXwahMxGmMkjrJTDvBCR41fS8f0viXjeiXc6wIvy7puM6G9J61abv4dT5sYL1lC1vxruO+wn1QukzJPoHpH93hJYrfdffgTRiIP5vpHkXyEgQ/mCqgPB+FLyqpV11WqEckfuZq2euu4y+Wi0GJ/edtn/YO0IIwe8j5tP02ccc/oFJKTm46QiLJ63E5K0jRGo1VU3XyFc0lPod67B7xb8kxJrJWzQPhcsW5OalcM4dvYCXt4m6bWvxZN/WFClr+8B5dfTz+Af6Me3z2anWVdz7WBOtSCmJuhnNulmb2PLXDr5a+RnePt607NmYFj0aEX41AqvFSkjB3Oj63XdAAGTcQmTEYCAeMNlyo6K/Rfo+jggeiRB3yM8b7loOGDi+WVttSaXhHyD1YpCwjFt/0ALp0xQR/D+Elsf19JZjrs87RIBPM/BulI5rk9c9gfsIjIDEI545Il4Pg1YYjEukrWdEAsQvB3/HOSJpQZp3IMNeu22bLZnFNotMVSD39xmOYj1oKEfkPiYwTy5io+Kcntc0jUSzBd2kY7U4fmKTUnLm4DluXLxJ3iIpa+kNw2BMn59Y9suaVA34kr/mzh/M431a0PndJwgI9mfaZ7OZ8/VfXD59lQMbjwBQuGxB3v+lLw/Vr5Bq/e6fPMXVc9dY9ssap69DaAIhRJa0p1e4RtM1DMNweF8QmqD9a61ITEhkz+oDSCnx9ffh7JELSEOmiHRZLQYJsQkM6Tya6ad+RNd1hBCEFMidfS/GA2TCOmTEAG694Ns0KOKXItEQub9OeZFeCKxn0rmiFSwHwHKIlD9kCQnrkDd7QJ4/EZpz6XtpOZ22JUUA+PewaYCko2xVGjdtPV8Stnsy2nFZrSOzhAbBQ2yOQPK1HqEnbQ9lDGm9YOtLg4uqLcshWy5O3r+zJQH5fkEVR9/HtHqhCZru/FdsGAbFKxbBk0hicsXN7cwZ/bfdQUgucUyOhAhNUK1xZeZcnkyvod0IDMnFxA9+Y8YXczHHp+w9cfnkFT5oPoTju0+mWkPXdd6b/AZjt4/k4TY1yBUSYDshoErDigxd+CHfbhhGrRbV3L8IRaZjWB07IQAh+YNp16cl/Se9zm///cgvh77l2vkbTvN+DKvk+vkbbPl7ZxZabOP6hRsc2nqMi/9dTtN1Mup7F2cNW8j+jhu/8H+WFP1P0oWTiInlP4hf4PQqmXgcYn/1YP4gCPkVkecPRP7NaIHvIYRXmq20aXw8howaDeb1Hl4zAyNyhEcOk/BpggiZDHqZNFhltYmSZZBbnYZdPfAYtpLouD8zvN6DhJA5eAM+MjKS4OBgIiIiCApS3mVaCbsawas13ifyemQqgSZN1yhTvSSd3mrLl71+dDlPYEgAsy5Nwsv71geTJdFCt6KvEnHNtZDQ46+2JFewP3mLhjLu7SlO8z00XaNOmxoM/3uQ/djVs9dY/us6rp69TnDeQJr3aETJh4rZnsCxRXSSWTVjAyN7urpJKLIboQl8/LwZs2EYZWuU4vTBc7xStb/b6yrUKcvYbSOyxKZT+88w8YPf2Llin92BKle7NL1H9qBW86our5XWy8hr7rYqNESudxC5XrMfkUYs8uazYDlK2pJFPUGA6SG0vPMcnjUiPoa4ebjOUQER+CEi4GW3q0lpsemgyFgwlUbclrchE9Yiw9LbiFMHJCJoOMK/iwd2SLAcBuM6MnI0WI+4GO2LyL85wzkixrXmYD3n2WBTRbS8f2VovXudtNy/s3RrZsSIEcybN48jR47g5+dH/fr1GTVqFBUqpA7BKzKfkPzBfLthGMOf+Ybju0/Z+sEkdTR9uHV1PpzWD98AX8b3/5Xo8BiHT6qaJmj/eusUTgjA6YPn3DohAEsmrUTXNSyJrj8IDavBtsW7+bzLV1gtBlE3ozmw8QiariXlpkhmjlpAix6N6D/5Nbs9VouVGV/M47ehKo8kpyENiTk+kW96/8S4naMweXv2cXN05wmuX7xJ3sJuch/SyMl/z/B2g49tEbnb3uon9pxiYOthfD5/AI+2f9j5BDLag1V0pIxOEf8Qmj/kmW7TwIibj72/icgN/j0gZjK2fJP0IF1vO8SvwJ0TglYU/F9yvYqUEPc7MvrH20p6BdK7ESLoM4SpKDJ6HLYguytny5l2ic1GGfkxmMohvKu7tEcIAV6VbdeY/nTtiOTqmzmJqjINvyMjDJl4BBJ3AQK86yJMZTNuw31Kljoi69ato2/fvtSpUweLxcJHH31Eq1atOHToEAEBAVm5tCKJwmUK8uOOURzZfoLDW4+hm3RqtahKsQq3RKE++/N9BrX7AsNivRU5EbY/9kqPlqf7x6mTvNKi+2Ax3HwQ3samBTtSOER3rrNqxgb8g/3o90NvDMNg2DPfsGm+J3vRiruBYTU4vvskL1d+h4dbVyekQDBhVyLcXrd+zhaeevvxNK117ugFzhw6j2+AL1UbVsTHL2XS6Ni3fsYcn5jqPSUNiRAwps9P1D03wWFVjjSikeYd2J7cXb2fExF66uoZoQUigochAz+wJXEKE5gqIoQ3BhJiXEclnSNAL3jLTvNeZMwUMG8EDJs4lzv0Qu4rPWLGIqN/uOOgBPNG5M2nkSFTbNU57mwVeUDecDFGQ8ZMQXh/69ZsAJl4NCmJ1/mawtPGdu4wPQTmDbh17BAgY5A3nuTWlpxEejewidfpqm/NnWSpI7JsWco3yNSpU8mfPz+7du2iUaMMZGMr0oQQgkr1ylGpXjmH56s3eYjxO0cx5+u/WTtrM+a4BAqVKUiHN9rwxGstHcrBF6tYBN8AH+JjMldu251uiJSSxRNW0GPw0+xff0g5IfcIZ49c4PzxS/ZtNVfoJp2om55EH2ycO3qBMX0mpJCZ9w/y59mBHXnmw44IIbj432X2r3cuQy8lhF2JYMeyvTzyRMombTL2d2TkKGz6Hq5u2AKEH/g6F1wTWhB417ptXQP8e9miDHGzuNU4zsCzZEyJ8OuaZOdsZORgbFEJT51/HdwIiknrZVskxCFWMMIhZqJnawlvNy/LmnSz9wwZ9yeunUOJjJ2JyNXP4zmdIQKeQ5rXemKVbesq+f+TMW+1JRfnnY/wMEH3QSFbq2YiImxPQnnyOA65JiQkkJBw68YWGelBIyNFplCicjHe//kN3v/5DaSUbp+Q/AJ8ade7BQvGLs32ahWrxbaNs2rGersAmyLn4+nvyZpo9biXy6VTV3i7/sfERKZ88o+NjOXnj34n8kYUfb56nsun3FdNCE1w6eSVFMdk3Dxk5JDbjzi52ibbLoK+cFnBYp/FuImMmQyxs5JKQb3AuznoISDNYN4GxhW382CqDH5P2uTbIwcn2ed5BBIMhP8zrofEzXczh9VWHksAEONiXLKsvHubPEFKCdazuH29xjWkNDLeuM67Efh1h7jfPRjsJLnY+h/E/Q3+T2fMlvuMbKuaMQyDd955hwYNGlCliuMW2iNGjCA4ONj+r1gxDwV7FJmKp4I8L37xLJUeKZfxgoA0IoQgITaBc0cuKCfECd6+nlc8+Af6oXvlDI0OAN8AHxp2ecSjsTOG/UlsVJzT98Gcb/7m0qkrt6qtXCANSWCeW7kEUlqRUd94ZrRXDUTILwg/99tJ0noNeaMzxEy5TY8iEcxrIX4xwr8n6J7oUHgh8vyGEL7I2D9I28e5bawIHIgwua5AkdZLuP8jNyepsDrvYovwB5m6+i4VXrWcnpLmfRg338C4Ugt5pSIkOC/rv7V0QKZ0zxVC2PJhgkeByUGeowgAd5ouCKRbx+7BI9sckb59+3LgwAFmzpzpdMygQYOIiIiw/zt3zsMM5fucg5uPMvzZMXQr2ofuJV7j21cn2JVQ7ya+/j58ufIz+o3tbUuE9ZCMKg9KKSn5UDECglWekTPuLJF2htAEletXYO61X3h19PPUblWd0MIhWWydE1uS3hf9xvbGL8B96Nocb2bV7xtTVYTdjqZprPxtPWVrlnIbZfHy9eLR9rdtyyTu8Ux/IugLtNCZCJ8G7scCMvILsF7Gsex5AjKiP3g/guuPZx18WtpUXQHMOxzMdye3zedVBxEyCXFbZ1kp4206KXFLkIl3bmN5EGWxHsYWZL/z71u3HcvVH6QHP0/v+g4Py+jxyJtPg3llUuKwhwWf0kCa93k21g1CCIRfJ7S8fyMK/Av5dyJC5yJC/4S8Kz1wtCQYrnJkHkyyxRF58803WbRoEWvWrKFoUeeevo+PD0FBQSn+PejM/moh7zz2CRvnbuXGxTCunbvBsimrea3m+6ybvflum4e3jxetezXxuCeMpgme+7gzX6/9nGF/DaTH4KfTFFHRdEHhsgWp1rgyzbo/lk6rFclIQ9Kud3MCgvzp/O4TPDuoEzcupqOxWBJpcUjvpHilInw+fwCtXmji0fiosBgsZtcf/EIT3LhwE03TeHnEcy7HPjuwUwrnNvXN2MkaaSjJldYbScmVzm7shq1E1FQW8ML5H4eBCOiFNCIxIofYSlndoYUiCuxHFDiACB6BNG/DuNYS42pjjGtPIK/URYa9gox4B3mjA8b1ThgJ2yDeVTLonZhBCwWSG8wJ8H4Mked3hO5Z12RHQmAyYR0yekwa7LideGTYC0jL2XRe7xghfNG0IIRXVbCcgevNbZLvLtFBV5H+O8nSHBEpJf369WP+/PmsXbuWUqVKZeVy9x3/rj/EpA+nA6R46kv+/xE9vqdC3bIULJlxsZ6M4O3rjX+QH7GRbjL0BZSsUpynP3gS/0A/AKo2qsSf3/xla3DnxpfRTBpeXiYG/vYWQggKlMyXSa/gwWba57OZ++0iDm85huGhQ5nckO61r1+gzcvN8PLxIvJ6JKtmbGTtzE389+/pNDUs7D2yB10/eDJN0bJcuf3RvXSsLkrDpSEJKZgbgMZPP0pc9BuMe+cX4qLi0U06htVAN2k882FHegy+pV8hZQJEj/XMkLQ0hrOexH0OhIYwrkLIWGRYX2y5FcnXJCVm6uVsOSaJ+5NySdz9rHXwaYoQPsiErUl6H4nccogupb7EchjCXiRtOSfYEm9zj0N4107qImyLbkmzh4nlDkptZcwvOC/9dYe0RZpipyGCPknH9W5mT1iPjHgfz2xz379HSgnmzUjzZpBWhHcN8GmeLoG5e4UsdUT69u3L77//zsKFCwkMDOTyZZuKYXBwMH5+flm59H3BvO8W26XTHZFcQeLuSS+rEULQ5sVmbhNXmz/bkH7jeuOXy5fD246zce5W4mISaN6jEct+Xo2UBobV+R9zjaYP8fo3L1LyIdsTxcT3p2X6a3kQOX0g7dt8JR4qSo/BT9P46Uftx/IWCeWZAR1o0LEOL1d+x3MBbpOOOd6c5i07Hz8fmnStz5pZmzCc/I0YVoPmPW5V6LV5sSlNnqnPpvnbuXz6KrnzBdGw8yMEhQamvDB+CR61nNcKg3c9z42+sw+NQ2yy58KnMTJ0FsT+DuY9NnuMG4AG1mNgPY5nNz/bz1X490Qakcjw17DJlLu71lkPHHfoEL8M4dsi5WGvmrZoicutCV/wdtBg07yD9DkhyVgh7i/ICkck6ls8c5IEeDcAn+bO57JeQIa9mtQfyHZ7lrG/gJYPQsYjvO5PBeksdUTGjx8PQJMmTVIcnzJlCr169crKpe8L9q8/7HL/27Aa7Ft3KBstck7XAR1YM3MjETeiUt8UBLTs2ZgBU98kOjyGAS2Hsnf1AZtegwDDYqB5aZg0E2ar49wGTROEX4mkRGXb1t7Zoxc80qNQZD7+QX5M3Pe1U8ehaPnCvD+lL1+9+KNHPYAMw0iRJJoWegzuwua/dpAQa069joD2r7WiaLmUXVt9/X1o/pzrbtIyYSPuxbmAoGFpS4Q0VQYt722iYE7W1wojb74E5k3YbnC33+iSbfLUCdERub9GeFVAxkxL0hbJSkFtq8NGf0J4Qa63kZGfOr1S5Ho107rkpsJeUpuJU1ov2HoBucUE/j0Rge8hhOPEcCnjkDd7gjU5OnXbtqNxA3nzBci7yOMtrnuJLM0RkVI6/PcgOSFWq5Utf+/ku9cn8vXL4/hr3D/ERHr2B+HJA2JO6TgdWiiE7zZ/QbVGlVMc9w3wofugp3jv59eRUvJ5l9H8m+Q8WS1WewdWq9nqMsHSMCQn/z3Df3tPA3B6f+bu9+Z0clJr8XK1Sru1p2XPxozf9SUtn2/stiJHCEEjD6tk7qRo+cKMWT+MUlVS7rt7+3rx7MBO9P3etWKoczyo7gCEz6PuB90+XpgQAa+5GKGB92MQ3hfMm7nlMKTTcdBLI/KtQvi2tc1izvo+PqCDqYRNBC52FkbkCIyo75CJRxD+3RCBA7iV/2LCdhvSIKAPBLzueErvh8lYeZ4AvUQGrneC287KADr490ILGoQQqTWZ7MQtBut5HG+FGSDjkTHT02lozkZ1381Crpy5xqC2X3DuyIUktUbJsqlrmPThb3wy813qPV7b5fW1W1Vn3ezNTqMimq5Ru6VrKeTspFCpAny18jMunLjEyX1n8PbzplqjSvjlsm3DHd52nL2rPXl6cM6lk1coW7MUBUrkzQyTPUZowiaY6GLrKEvWFdCuT0vOHj7PwU1Hc0S5smEYHmnNlKlekvd/foMmzzTgo7ZfIJGp76cCOr3VjjwF01+pU6Z6Scbv/opju05y5uA5fAN8qN2qOgFB7vU8nCG8qiFdJmlqYCqPEOn4CPXvaYuIxPxEco8V203WCt6NbVoTKfJC0osO3rVS9IPJnicXK2gFkFcbYBOBMwESGfMj0qcZIvhrhF9niFuMNC4jtLzg+zhCd5Hz5dsOzFszZJUI6J6h6x2iF8b2+lw5rlaEl3t5dxm/FNdbPFaI/xuCPkyzmTkd1fQuizAnJPJKlXe5cuZaKkdCCIGma/y4YyRlqpd0OsfRHSd485FBDt+XQgi8fL349fgPTntySCnZt/YgO//Zi9ViULFuWep3rJOqb0x2MWnAb8z9djFWSxqT326jzUvN2L3iX66ecx3aznQEdOzXloVjl6UpCTOjmLxNbitD7gbvTX6dNi8183j8hrlbGdPnJ6LCYtBNGoZVoumCTm8/Tu+Rz6HrOUfHBEAaYcirjbD1hXH8+xZBIxH+qdsf2OdIPI6Mm23rkKsF2qIStyUdSstZZNxcsF4ALTfCtz1SJkJY5t0wRciUFGXFMnYGMvLzNMyg2TrXGmnpUuxqS0sDnyZoIT95PJuM+QUZNSr5uzTYcduaXrUReaa4jkikEyP8PVtOkcNIhk0/ReTfjBCu8yKNG13dy+SLXGgFdqfX1GwlxzS9e5DZOG8bF/9zrIxo8/0kc77+i4HT3nI6R4U6Zek/8TXG9JmA0IU990LTNUxeOkPmfeDUCbl67jqDnxzJyX1n0E06QoAl0Uru/MF8Pv8DKj+a/Y0H42ISMhRd1XSNZVNWZ+32thNCCuSmdNUSTrsHZxU50QkRQjDn679o/WJTj7eMGnZ+hHpP1GbLXzu5dPIKuXIH0KBTXULyB7u/+C4gtBDI/S0yvB8p1UqTbrK+T4FfJ4fXSimR0d9CzHhuyY9rtideU3kImYLQ8yFMxRGB76a8OHZuJr29dfCqAd53bB35doCob0DG4En1DvhA8E8QPw/iF4L0JC/L1bwGJKxGJh5GeFVyO5OMX42MGunBmk4QQeDfHZGrb5Y4IQAi8H2keQsYYaR0RpLVdoe5dUIA0MvaqqCcVilpoN+flafKEckiNi/cjqYJp+WQVovBxnnbwU3hR9uXm1O5fgUWjV/Ov+sPoZk06rSuwROvtSJ/McfbE+Z4MwNaDOXyqStJa916Y0dej+TDVsOYuO9rj2W0M4vilYo4rW7wBMMw7ooTAhB2OZxqTSpj8sqZEYrsRErJ2cMXiAqLJihPoPsLkvD28UpRZZPTEb7NIXQ+MmYqJKwEzGCqjPDvAb7tnDthcfOSnBC4dVNJet9bTiCvt0N6PYLwqQ1+nRDabc5YhhM1k0L7XvUh91cgY5H4I4SGlGaI/8cW4bD+5/i6FOjg0wgi3wXrqQzalXJeGf+PS0fEVsK6JUm2Pn1r4NsBETw0yxyQZIReCELnIqO+ToqMJH0+mKogAt9G+LhOjLbP4/8MMv5PFyMMRMDdrZDMKtTWTBbxSfsRbFvsOoSmaYJlibMyPRFxxW/r+PIF5xoImknjyddb0/e79CbyOefojhP8M3UtNy/dJKRAblo+35hKj5RHCEF0eAzPFH7FY9VPwFbx5uNlS2zNgBOTGTTsXI9CpQsw+6u/7qodOYW5135JXfb6gCOlRF5vldQDxYNyTuGHyP2jfftEGjHIa/XxqGuuS3yxbSsZgAaiCGgaWM+QeutEB++6YD4IRHlgd0YxgX93NCeltNJ63aZz4lE1ijN08H0CLfdXGZgj7Ugj0qaaqwWmzM3xECNyJMQ60kwR4N0YETIufXlJd4G03L+zTeL9QaNUleJouvMfrxCCYpWKZEk1xIa5W10qXBoWgzUzN2XqmlaLlZE9v+fNeoNYMmkFmxbsYOnPq3i7wScM6/o1ieZEcuUOoP+k10HYFFLdIYSgVJXijFj2caY7Ien5uW+Yu43Vv2/k6fefxCupl0sOKmbJNoSAohUKp7vk9r7GeiHpZu9Z51xkHDLsVbvqp9AC3FTVeEo8t5wNA+S5JLvA4daJeTeQBtn0DGFFmEo7PCOlgQx7ESyZIEvgUb+ezEVoQQiv8ulyQgBE4IeIoC9SiuRpoYhc7yBCfrxnnJC0ohyRLKJdnxYu8wkkko5vtsuStWMiYt0mVMZHx2fqmlM++YPVv28Ebim/Jn/dOH87E96z7UE1f64ho5Z/SpXHPNgflpJT+88SG5W5tgLoJi1dzsiNS2FcPXuddye8Rvk6Zdyqwd6LPPNhR/IUzO3UkZYSnu7fHsMw2PzXDr54dgwDWg5lTJ+fOLL9eDZbm9NIQ7QPSM4/kbG3lWUGvGb7l1zWmuU76FZsAmfZFXH0Bt/2qY5KaSDD3wXL0UywxQCfhsiYyRiRo5AxvyKNmxmcM+sRQiD8n0bkXY7Itx6RdzUi3wZErtfva2VVtTWThSz4YSk/vv1Lqlb1QgjqtK3J0AUDksp6M5fv35jEkskrnUYRhCYoXa0EP+3OnLBlbFQcXQv2JiHO7HSMydvErAsTU4TyNy/cwWedvnQ7/9vjX2F8/18xu5g/rdRsUZW9qw9kqAJGaCJbK2iyGv8gP3p80oUu77XnxJ5TDGgxlNjIWHueU/L7uF2fFvQe8RwfP/4/Dm89bj+erAL8eJ8WvDXuFTTtwXnOkUY0xP6GjPkdpOMkdZdohdHyr005p/UaxC9CGtdtzdRip2SOsXcZEfwlwq9jquO3tiUyAVN1sOxP+iZ5K0qzRRZy9cmcNRQuUVUzLrh67jrLp67l4snLBObORZNuDahYt2yWbJF07NeWQqXzM3PUAg5sPAJA/uJ56divHZ3eapslTgjYojF//7Tc6XlpSJ58o02mrbd/w2GXTgjYqj/2rNpP4671kVKyacF2fv1stkfzCyGo8HAZ9m/wrAmZJ+xZud/9IDfcT05IwVL5mXxwDD6+tsS+crVK8/OhMSyeuJJ1szcTH5NAqWrFefL11jzcugaDnxzJ0R22hMdkJzvZ8V08cSWFShfkmQEdssV2acTaurFqubM8MdHx+pHIm93BcoL0P8mn/vsRej4IeNFeaGaQC2J/SK+ZWUjaesBIy+lUxXPSegVip6ZjbV9SyNWLvKAXAcvt3XZvbVHJ6NGgBSH8u6VjLUVW8UA5IjNHzueXT/6wOR0CBIJ53y2mbtuafDK7v0etx9NKvcdrU+/x2sTFxGMxW8iVOyDLVTLL1ihFt4GdmDlyPkKQYvtAaIJazavS6oXGmbaep8mn5oREpJRMGvAbc77+G83DTq1VGlaiaIXCvN90iOuB6e2JpeCVUT3sTkgyeQqG0PPTp+n56dMpjp89csFtIvac0Qvp/O7jmLyy7iNGJh5ERv8ICauw/eL9kP6dEQFvIPTMF7yTlrMQvxhpRCD0okivShC/0lZR41FyqjN08KrqcoRh3gexE9I5fxYjAiHofxDxNh41yIsZh/RpivC2iTFKaUbG/kn6fn5mm3S6b2tbVVDUd2DZ6/IKGf09+HVxmW8hpYTEPci4BWBcAy0fwq8TeNXIUSrH9wsPjCPyz9Q1/PzR74AtP+N2di7fx+iXfmTwrPeybH2/AF8IcD8us3jpi2cpWr4QM0ct4PzRiwAE5wui45tteebDDpl6gyhbo6RH48rVKs3O5fuY8/XfAG47veomjaqNKlOiUlGKVyxCzeZV2bsm9XaKELbGacUqFuFUDpN+T3YEk7cvSlcvQc9Pu7Jr+V6unLnGjmV7s90mTddS+Gyvjn6eRl08L6vdtXyf222piOtR/LfvDBUeLpMxY51g6yD7Mran3WQ74iD2D2T8KgidjdAzpzxdykRk5GcQ9yfJeRvSrqSZGd6vFeHf0/n6iUfg5nM4iprkCGQ0RH5OWrr0yphfkZb6ELcAEveQ9tyaZAyI+wuZaxDc7H5HJMTZJddta3rXcXzaiISID5Mc3GQdGB0ZNxN82kLu0ZmSryFlAiTuA5kApnIIvWCG57xXeSAcESklM4Y7r882rAbr52zlwheXKFI2fdnOOQ0hBK17NaXVC024fuEmVouVfEVDs2Q7qFDpAtRuVZ09q/Y7lCDXdI3Kj5an5EPFmDRweqqcGWf2FyiZn4G/vWX/fsi8D/iy11g2zd+O0ASaJrBaDEIL5+GTWf2RhsG7jZw31LobNH6mATHhMQTkDqDx04/yaPuH0U06j3Wqy7o5W9LtiAhh+096todqNa9KSMHcFClXiNYvNnUqiucMi9mCECKVQ+9oXFYgpQUZ8R62G8Sd7yMrGFeRUaMQub/xbD7rFZsYlZ4foaX+WcjILyBubtJ3d3ak9eTnr9uExcx3NtJL+n+/bjYbYqaDqSx410vx1C2jx+Bp75u7gwHyWtouSVhk+5cZyHCb2Jplj+fXGNGppzFvR0aPS+rxk4w15deEZciogoigQem1FikNiJmAjJkMMrlXjbDJ3wcNyTQH+l7igXBEzh65wKWTV12O0TTB5oU7efq91Nnc9zJCCPIVDc3ydfpPeo2363/MzcvhKZwMTdcICg3kgyl9ATi67bh7J0QTNOryKK+P6UVoIVsPEiklJ/acoliFIrTq1Zhr524SGBJApUfK0/GtdphMOuvmbMm6F5gOvH29+Pj3d5yeL14pA100heCFIV1ZPHEl1867aqt+53VwfPdJ/jg/Id1S/+XrlHH7O/TyMVHyoSwqn0xYZwuXO8UK8UuRxicOHYtkpHkvMvprMG9LOpJ0Mwh8D2Gy9QaR1isQN5OMRT0Mm7aECACZrO0BmKqCFghxcyBuJjI5uqIXh+DRCO8aSCMMEtZmcP07EdhyKzKqVZJT0CCt6qumlAqlMm5RknPrDgmxM5C53kRo6dPQkZHDIe7O5nUSEtYib3SF0HkIPes/s3MSD4QjkhCb4HaM0LRMrcp40MhfLC/jdn3JvDGLWDJ5FZE3osiVO4A2LzWjc/8n7E/dJm/3bzlpSNbN2cz+9Yf4cuWnBOQO4NMOozi+62SqLYH1f25l6c+reHfCqwTlyca9Lw8QmiDyRhSBeXKxacF25n23mMNbjiF0jdotq9Glf3sq1i3LsV0n09zMThqShl0e5cbFMJcVUqkvtG2b7Fi2l/pPOg5Nu6Nao8oUq1iEC8cvOY2AtXy+CQHBWfT7sJzgVsjcGVawnAVvJ32YErbctrVjP2q7GZi3Qp6ZCK8KEL+CjDsBEqwnb1srKSopfMC86bb5k75az9vawYfOBWHKhPUd2HPfOCGAVy1I9LSrcFLfGVNJ+xFpRCAjBuH5z9lsc159W6TRUJCJxxw4IckkRfNif0EEfpDmue9lHghHpHCZgm6bh1ktVkpVLe70vMI9IfmDeXnEc7w84jmsVqvDRmb1O9RlyaQV7m+cEsKvRTKg5TD8A/24eNLWdMvRVsTZIxd4v+kQfAMzP9k4IyTEmnmn4SeUqlKc9X9uveVEJVrZtmQ3W//eRfePO3Pu6EXiY+JT/Exc5WBoukadNjUoXrEI7V9v5bJCyhFCCK6eTX/TQCEEn855j/6NPyUmIjZlabomKFW1OH2+7JHu+d0b4IdH1SlO+ntIaSTdeO7cZgGw2kTGIocgQv9I6smikZb8B8fcvk7SXInbXYy12BJxgz5FZWG7QfjhutHe7fghgoakPBS3kDTn38j0PbTKuHm4dqKtEDsLmev9Byop9oEo9M+VO4Dm3R9DMzl+uZomyFMwN/Uer5XNlt2/OOum2rFfW5tojwd/Y4bV4OalMM4fu+i6R40Eq9UgJjw2ndY6R9M1vLxNqcW9PPyMOHfkIuv/tLUvv92xkFbb///+xVzK1ipF7vzB9g8e3aTRuOujNOnWIOl73W4LQIU6Zey5M6WqlrBL9Tt7f9+JlJKlk1fxeZfRrJqxAXNC2hMFSz5UjAl7R9P5ncfJnT8Ik5dO4TIFeWVkD8ZsGJZ10RAA3+bux+jFwFTO8TnzVjAu4vzGZUDiLqTlVFIIP6NOSHqwQsIyuN4e5YS4wQjDoz9IrSgi7zyEV8r3hbQcwx6l8hSvymkbn4xxCbe/TxmJrST5weGBETQLvxbB2/U/5vLpayme4HSThqZrjFj6CdWbPJRRkxUesHXRriTZd4v7ZMu7+DCoaQKTt4khCwawffFu/pmyhrjoeEzeJh57qh7Hdv7HxRNpaY/uhOTUgCRBsCf7tubN719GCMHRnf+xdPIqLp28QlDeQJo9+xh129VM5ejtW3eQed8uZveq/STExHuk+JocdSlcpgBfrvyMAiXyZfy1ZBNG+ACI/wtnzoQIHonwe8rhORn7h60Kxg0iZBJ410dea5h0s8uxH5UKt+iQbwuanjvVGSPyC4idgWcJwTp410HL46ZbqROMyM8hdiaunVtfRIF993xEJC337wfGEQGIvBHFrFELWDxpJTERsWi6RsPO9Xh20FOUqV4y4wYrPObKmWv81P9XNs7f5n5wNmHy1rGYb31AlKhclP6TX6fyI+W5fPoqkwdOZ8PcrRhJ0YxcIQHEhMe6lPJPL6+P6cVTbz+ermu3/L2TTzuO8vi+qZs0ipQrxKT939wzaqhSJiDDP7BFDdCxeXNJTknA6wjhjYxfCSSAqRoi4DmEl+1Bw4idB5ED3a4h8sxEeNdCJqxFhr2O7Qd6dxsvpg21pWPHpznCpyl4PWR/HyQjE7Yhw5yXT99Ct/V9CZ2N0Aunywxp3ou82dX1Gn7PoAUPSdf8OQnliLjBarUSGxmHj78P3j73r35/VnDp5BW2LdmNxWyhXO3SVGtUOc2e+5Htx/n48RFE3ohyPxhSibJlFU+/356qDSsTGxlHkXIFqVDHprh76dQV+tX7iOjw6JR5HFloV55CIfx+drzTLS53bJi7le/emETEtUiPr/li8UfUbVszXevdLWTiEWT8IjAiEHoxpKk8RPQHGUvK5FAr+PcB46at1NOdboWWH5FvHULYfv7SvAsZ/Z1tWyd5Tr04WC9hazDnQ84Mp+dUu7IDJ3kjpiqI3KPtjfeklDbnIPEATiMVIhf4d0f498qQWJ6UEhn+ZpJGyZ226SD8EaELEabsb9iX2SiJdzfouk5giOocmhZio+IY/dI4NszbikAgNIFhNShaoTCDZ/WndLUSHs0TdiWcga2HE5eGpnvZ5So36vIoFeuW4/Lpq0RcjyLsSjh5CoYw8YPfiAqPTpWnkpV23bwUxukD59IdqWvY+REu/neZyQNneDReN+lsX7L7nnNEhFdFhFdFIKnfy7WmdzghYL+5xE7E06RGkesduxMCILxrI/JMszVOMyJsSptaLqRMSm5N2JCkLJoWvEi/kJcnaDa5c+vJLFwjByICsN3aBMgIUkWFLIeRN56FvAsRekHbg1TIBGTYqzaBMftt0Wr7/6BhaP6Ot/nSbJoQkPsbZOSwJG2a2xwfUxlE8Df3hROSVh5IR0SRNgzD4NMOo2y9XqRNmTY52fLiicv0b/IpE/aM9ijHYNGEFcRFxblVVb2deo/XcispnlHKP1yG+JgE+j06iCPbTtiP12hahb1rD9yVCHdiOpJI7deaE5n15cI0XZNVAmTZRvzfSTceV7hzQrwRgR8g/Ls4PCu0PHCbNokQuu1pWfNP+1sk6EuEvImMGQfG7Vow7kqTPcWwOSF6NbD+mwnz3SPIOFz/nq0gI5ExvyCCPgKSfq95ZoN5OzJhOcg4hKkc+HVEaCGZap4QPojg4chcb4N5g60Cx1QJvKrd83kh6UU5Igq37Fm1n31rDzo8Z1gN4qLj+fPrv+n7/Utu59o4b1uanBCA1i82o2HnR5g5cj7nj11Kdb5AyXxcO3s9zfPeTouejRjQcmiq5Nm9aw6ke86M4O3rRbGK6Rc8O7T5GFE3U6tHOsNqsVK+Ttl0r5cTkOatZCgvwq87IrA/QkvHNrBXHRD+SdEYTxAQP9cmWCZygx4I1nPYHJBMrtLJ8U6IIHNKpJPxJI/HaotIJDkikBSt8KmH8KmXSXa4Ruj5wElC9YOGckQUbln9x0Y0k+a0hNawGKz4bZ1HjkhCXNr2q/1y+VKnTQ18/X1o9UITrp2/QXxMPBdPXCY2Mo6CpQuwfOoalv2yGtLpiHj7efPrkNkZ6qZbqHQBLp1M3f5dCJHmZFZN12j1QhMCgvzTbU98jOdbX0IT+OXypemzDdK9Xo4gQ3tlOpCADH8faTli06bwbYvwf9YzyW2hgW9niPvNU2PvEDN7gPFpAkFfIBL3g4xBaoUhbhbELyJLt65kFFIaCHFvJGjfzyhHROGShLgEDm0+6lrHA4iJsFWPuAstlqtdmsunrnqsBNr94874+vsAtpt6/mK2RLHiFW/tow5sPcxzZdE70HSNGk0eYvvSNPSpcMDA6f1IiDXzz9S1HNt5gqtnrmOOt3Ub9vIxoZt04mMS7H12NF2z5dkYhn2bC2xOQcmHitF75HOp1oiJjOXw1uNYLVbK1SpFnoLOQ8bFK3u2z6zpGrpJ49M572VJ9+nsxFbh8k86r056Qr59WyTmJ2TsNMgzFeFVzeFV0gizdXONnYstaTUtKCeEoK/Q/DvY/l9vCiTFtLzKI02VIfobskwFVgtVTkgOQTkiCqckxCUwoMVQh9shdxJaJI9H+5sd3mjD2pmb3Y7TTTrPfdyZZwZ0SHFcSknkjSgMq0FwviCEEMRFpfUGYEPTNfIVC6VIuUKQAUdECMH/nv2OCftGk69YXt5p8DGJiRZ7JCQxwYIl0UqukADav96KgiXy8+iTDxMfm8C8MYtZ8ds6YqPiyF8sL0+81ooOfVvjl+uWKmiiOZGfB/3Oop+Wk5DUhsBWev4Ib/3Ym6DQ1D0vCpUqQO2W1diz+oBT+XihCVq90JjO77an5EPF0v36cwx+nSD626QcgfTe5G/fHjBAxiLD+kC+9QjhnWKkNMKQN565bUslGU9VPhXCgZMhzTuQN18FPN9aTDsa+Lkqo/Ucab2AjJ1tT3QVPo3Ar1O6e9E8iChHROGUP79ZxOFtx92O0zRB+1dbeTRnlccq8cyADq4TKQU81rkePT972n5ISsnK39Yz66uFnDl4DoD8JfLR+e3HyVcslGvn0tD4LQlvXy+khI3znUlte4aUkitnr7Hi13WsnbWJqLCYVDd/aUhio+I4vPU4Lw3vbj/e9/uX6Pv9S06jSVJKhj8zhi1/70yxdWRYDTbM3cqp/Wf4YesI/ANTy5m/Pb4P/R79iKiwlBU/uknDy8eLr9d+TvnaZTL02nMSQguG3D/aqh9S5FpkJPnTSCr5XQp+dzjF0WMdOCFJ1yg8QlrOpdBEldaLyJu9yNpqIh30goiAXhmeScYtQEYka9IYgECaN0D0WMjzC8KrSobXeBBQcSmFQ6SULPxxmdu8CaEJipQvTMe32no8b2gRN23nJWyaty2FzsjkgTP4stdYzh46bz929cw1xr83lYDcAQgt7dnm8TEJXD1zjWvn0t935XaW/LyKg5uPOo1AGBaDvasPcP546gjTnU5IojmRDXO38k3v8WxeuMPh78GwGpw7epElk1Y6XK9Q6QKM2zmKti81x9vX9jSve+k0eaYBP+4YdV84IdKIQMb8gnGjO8b1Tsj4fyD3d+DfE7QioOUDn8aIkCmIwI+xl3ViwnNZbxPSnLKpmpQJEPcnaXZwRM5qzHjXifsdI+JjZMI6Ww+gyGFkrhPiDdyeayXApykiz6wMV8NI8z5kxIek7Fkkbf9kJPLmi0jDM62kBx0VEVE4JDYylrDL4W7HFSyVn283DPMosTIqLJrBT47k4KajbsdaEq2c2n+W6k0e4sj248z+yhZBSZX4KeH0/rMUKJGPa+dvpLmLbaYhIfyqu9JRGyf3naZouUJOz29bvIuvXvyRiOtRbnvySEOyeOJKuvRv7/B8/mJ5eeenPvT9/kWiw2IICPa3OyX3OjLxsO3pWYbdOmg5AnEzEbn6I/KvSXmBTwPwaw9xC5HW8yCCbYmSNx2X6qbkjl+EcT1pCyitRmd+P6R7GhkDcfOQcXNAKwvGf5m8gAXyb0AkHgbMYKqI0AtmyswyZgrOq30MW8+YuAUQ4Ilq64ONckQUDvHy9XarHKrpGg+3rO4wR8ERQ7t8zeGt7rd6kjF5296eiyasQDfpWC2Onz41XSO0cAh129XinymrMcdnfli3aIXCXDxx2amjo+kaeYvk8ch5c+UI/Lv+EJ92/BJp2NbxpBDk+gX321Je3l6EFMjtfrJsIvJmFNZEK8H5gtIlKy9lAvLmiyDD7zhje4/I6G+Q8YvBqwbCrwvCuzqQpBcR8KLdrZBS2tRYLcdxnldiQXjfUdIp0lvRlNUJqvdifkrS37VxwvWwdGEgZCLCp37mT21eh7uImExYj1COiFvU1owiFVaLle1LdpO3aKjLppaG1aBBp7oezXl0xwn2rnGeOHkngSEBlKttk2A+ue+MUyck2Y5zRy7y1o+9ee2bXh7N7ymBeXLx7oRXeXFYN5e2G1aDp95ph+6mA66Pvw/VGjvv3Dn105lA2ipRc+cL9nxwBpBSsmvFPv733Hf0b/Ip/+v+LTv+2YtheH7jWzdnC6/XHkDnvC/RtdArPFfidWZ/tRBLYtrE1GTsTJA3cXljtxyFuD+RN5/GiPgUKVPbKYRABLzkYh4dtPzg2/JOA2z6HzmOe7vyKSuQ19tjhL2JNO/I5IndbctJsjbX5f5BRUQUKTh//BIftf2CSyev2NrOO/l81k0apauVpGbzqh7Nu+Wvnfbusm4R0Pnd9vY+QH6Bvm6jM765bpX4ZpRnPuxIicpFCc4bRM3mVfDy9sJqtfJI+9psW7Q71faQEPDYU/XYOG+7y9cnBHR6q53DxFKwyd/vX384TbYKIWj9UtM0XZMezPFmPn/6a7Yv3p2iBHnNzE083Ko6Q+Z/gI+fj8s5fv/fPKZ88keKfJ7rF24yeeAM9q0/xND5A9BNHuZtxPzioeVJN4u4mWAqDgG9Uw/x7QSJRyB2KikTWwWIQETI5BQVM9JyGnmjq4NozN0kWS5ebf2kQoZBwiqbYmqu9xG5+mTOvF5VIXEXziNQGnjVyJy17nNUROQ+wWqxsm3Jbhb8sJSV09cTHR6T5jniouP4oNkQrpy5BuAwApD8xF+mRim+WPKRx2H1hDizx05C615N6Taoo/37xk/XdxnQ1nSNps80SLKrpEdruKLNS81o2bMxddvWxMvb5gzpus5nf75Pj8FdCAy5lXAYFBrIC593o1aL6mxyU31TtlZpOr/rvKNuVFjaf2dSSldBq0whIS6BAS2Hsj1JZj/5fZH8ddfKfxn37lSXc5w5fJ4pn/wBkCrxVkrJ9sW7Wf7rWo/skdYrYLgvKU91XczPSJn6CVUIgRb0ESLPDPBtA3ppW2O0XO8j8v1j72VjnyfyU9v+/90gaCQiaCgEDACvh7mViKmevF2TvGU3OtMiIyLgeVxvgwmE/zOZstb9joqI3AdsW7Kbr3uPJ+xyuF3J08vXi24DOtLj0y4eOwurZmzk+sWbLqPd+Yvno2qjShQqXYCLJy6TO0nLwx2lq5XAkug6lKl76Xy54lOqNqyUYs4WPRvx+//mEnYlIpVzpOkaPn7ePNm3DQAV65alVNXinD5wLu2KpiaNWs2rOk0kNXmZeH5IV7oN6sT5oxcRwpY74uXtRZ/q77lVUT2+6yTdi7/GC593o+sHT6b6uYUWDnGZC+OMWV8u5Kl3n8gSQbK4mHjea/IZx3c5b5wmDck/v6zhpeHPEpzXsTz6kokrXUbEhCZY+OMy2r7c3L1RFs/zjFJg3ADLMbijDbzdBu86CO86LqeQljO3deDNZkRehF9bZOQoiPsDJYiWHnRkzG9uf88e4dMK/HomqenenpujAxIRPBKhO09KV9xCRUTucfatPcinHUYRfsVWsWEX0YpP5Lehc/j101kez5XcWdcVl05eYdX09UwfOod3HvuENx7+0B5BcUWjpx8hILe/U6dF0zU6vtmWao1s+RN7Vu/n697j+azTl0z55A/eGvcKBUvamurpXjq6ly2EHxiSi5HLB9sb7gkh+Oj3d+yJrh4joHCZggyY+qbbod4+XpSuVoJSVUvg5e2FlJLTB8565PgkJliYPHA6C8cuS3UuIMifJs/UR9PTFuOIi45n26JdabrGU6Z9NpsTe065HWe1WJ32IwI4deCMy20raUjOHj7v9HwKhOstIJfcERGR0opMWIuMmYyMnYG0XnR9vSWzqzo8RYBvC5u4mnJCMoAVEjMpIiIEIugTRO4fkqJTvrbybN+2iNDZiDt0ZxTOURGRe5yfB82wZf47uQnO+nIhnd5u51FCY3x0vEc309tvKKf2n+G9pp8xcd/XTnMfAHz8fPhoxjt82mEUEplCYEvTBKWqFuf5IV2Ji45jyFNfsXvlfvsTtG7SWPDDUtq/3oo+rWqwd/V+rBaDKg0q8FjnR+y5JMmUfKgYXT94khlfzHX7eR1SMJjQQnlo/WJTWvdqkkLRNC3oXqY0da+d9vls2vVpkcr2zu88ztpZm0mLPoUQgvBrmb9VkBCXwOKJKzzuwXN0x394+XhRoU6ZVPLzfrn8EJpwOZe7HBM7XtVBBKVje8QbTLca+0nzDmT4e2BcxvYUawBDkb4dEcFDEY4cHpG+90fG0cBUwpbrosggmff8LYQA39YI39aZNueDiIqI3MNcPn2Vw9uOu/xwN6wGG/70LJRcpnpJt1Ufd2K1GFw5c40V09a5HVu3bU2+3/IFDTrUtSXCArnzB9Nj8NOMWT8U/0A/vukzgb1rDtrnvv3r3+OXc+7IBfp+9xJv/dibZt0bprqRJ/PkG61dbklpukaDjnWZfXEy43d9Scc326bbCRFC8Gj7h9P0s4u6GZ0qgmC1WPnqpXFp3lKSUtojQpnJxROXiYv2XD5/9lcL+bTDKJ4t9hojenyXIk/psU71XL5PdZNG466elVgK4Y1wlHTqEh38OiO0XADIxCO28l/jatJ5K3YxqviFyLC3kJYTSOMOZ8e7ts0Jym68HoX4daiPbDeIfLgs9UMH70bZZY3CQ9S7+h4m4rp71T5N1zx+Wn781Zbpah4ngNW/b/BobPnaZfh0znssjp3BwohpzL40iZ6fPY1fLj8un77K2lmbXJbJzhn9F4lm94l5eQqG0OMTx0JVmq7h7etFr2HdPLLZE7p+8CRGGrv3Rt+RnLp54Q5O7T+bZlG24HxB1GlTI03XeEKat7eSMKwGa2dt5v1mQ+zdlht3fZSCpfKjOXDWhCbQTDpPveM8kTcVAX3Ar0fSNzq2d6Gjihth+6eXA58mGJFfYER8gowYAFhwnGxogHkN8no75NV6GOHvIi22bSMhvBG5XvfczswicSNYDnPvaYRkM36dsampOnNGZJbqekiZgDSi0/ww8aCjHJF7mLxF8rh2/gGr1erx03KZ6iV5foitEVRaJNOltD3hpwWTlwn/QL8UOSM7lu11e13kjSiXiZO30+PTLrw6+nly5U4pq12mRknGrB+WqY3eKtYtx6PtH07TNYXLplR4XDZljZORjhFJ99h+P7yMySvzd1mLlCtE/uJ503WtYTX4b99pVkxbD9hE3L5a9RlFytqS93STbi/V9Q/y44tFgyhesYjH8wuhoQV/ighdDP7Pg09r8HsGco8Dv5dA5AFMoBeDgL4gdAh/FWJnQNw8mwKrRzd1K8QvQ97ojLSctR3yf8nm2GQ3Mhq3f/APNAIR8DwiZDw2Z8TB7c1UJennmLnIhE0YN59HXqmKvFoLea1JUpWWOdPXuh9ROSL3MKGFQqjTpia7lu9z+hTt6+9Dw871HJ5zRM9Pn6Z4paLMGrWA47ttN3wvXy8sCRanXr6maxStUDjtL+AOLGaL28oTsCV8eoIQgi792/Nk3zbsW3uQ2Mg4ilUoTOlqJTJs653sXL6PzQs9S4ITmqB4paKUTxJsS+bkvtNpWrNIuUK88mVP6j+ZCRUADtA0jW4fduT7vpPTdb1AsGTySp541SYGVrBkfiYf+Iad/+xjx7I9WBOtlK9TlibP1MfXP30JqMKrHMJrUMqDvi0g2NaITEoDeaNLkuMBtihIWrHaeodEjUCEjLe9R/1fhKiP0mVz+klv474HBL9nEXpe0B+DfCuRUd9B/DxSOJyWg8ibPZABr9jKszNBd0jGzkJGDiaF42P8v737jpOrrBo4/jv3zuzMbC9plAAhdEVKQm9BQhNUBEJQEAgYQEFpUsJLERQiAkqVJkV6R6p0KSqIggpIjYhgQnqyfWdn5p73jzu72c1O3TIzu3u+n08IO3PL2dnN3DPPfZ5zvkCbfwHRP0LdjYikvoVcTJr4Atp/5y+Hd+qRyDeQwHpFicUSkWHu2F98lx+9+j7R9s6Uycj3f3lU3nMfdpuxA7vN2IHWpjYS8QRvPfc2F337irTbewmP/WZPzzf0PjbcelLWiZFuwGHdL62d13HLQkE2mrI+z9z6B/748OsEygJss89W7HLQdt11Qgbq0Wt+313oKxPHdXADDqfeeFyvN0FVzak8fKQyzLkPnEbduBomb7neoLyRZrL/8Xux4N+LePCXj3dPHu76PsvCwYzl9FW1T1dkx3HYdt+t2HbfrYY07m6dr0H83UE4UAKiL+KtOAm8BUAE/+2zP4nNADhrgrcIS0pWEzkEqT6n+0tVhY6n6DtbPfm6td4EgU0hsv+ATquJhWjT+cmvVv+3r9D5J3TJnlB1hr+aZoj/veZCVdGWK6H1OvwRNgdQtPUaNDITqT4fkcKmBpaIDHPrfWkiV/7pZ1z9w5t7VeUcv95Yjrn4MHY/dKd+H7urkd0uB2/PdndN4Y0nU1cV3XXGjmz7ta37fZ4uX9ppE9bdbG0+/3BB2mJqu87YMe+S5q8+9DpzD7+KeCzuD2yL8Pwdr3DznDFc8uy5rL3RwEdz3n/9o5zmdmwx7UscM/cwNp7au/NtPBYnkcP+a0wezzZ7b9nfMPMmIhx32RHscfgu/P43LzD/4y+orKtgt0N24onrn+HvL76bPnkUf1VSMWnHcwxe/xWF6DN0tXsv/BJaF+puhMYzIZ5+qfToUgEND+MEJwGg2pmss3I3mZM1B229FRlgIkL7A9m38RagjSdD7G2oOrP4yUjbb6H118kvlF7/NtrvR6USqT6zoCFZIjICTNp8XX750oUs+PdCFv5nMRW1FWy49aR+NRNLxa8qehp3X/Qwj17z++4KoDVjqvjWSftx6JkHDMo/LhHh/+45mVN2O4/25o5eF3bHESZMGs8JV87K65gfvflvfnbor/x+KNp16fD/u3T+ck6ffiG3fXhl7ktH08hlYueGW0/iF8+dl/K5YFmQ2nE1WTv4bjktdTGuobbBlpP44TW9V6rEOjp56/l30u4jCPsenUOBsiGiqhD9E4M7wbNnu/dCcqFsGqw8CRLFqmVSilr9uiDBSf4n/ZU/hOhLZP/5eBB/B9XOXuX786Wxj3I4V1LbLRDaxe8CXSSqnWjLrzNtAW13oJXHI07hPkTYZNURZM3JE9h6+lfYeOrkQUtCugTLghx5wUzuXXATN/7zMm58+3LunX8jh/3fQbn3B8nBpM3X5Ya/X8Y3vr835dX+LaW6CbUcfu4MrvnL3LSVO9N54PLH/EmdKd4rvITH0v8t4+X7Xxtw3Nvvn3n5rjjCLgftkPEY+x07Pesk4a8du2fG5wtpl4O3Z+NtNuheit2T4zqsteEE9p419H1wUlFVf2WM99+inH9wOeCs5d9iSnxa7GBKT9M5eMsOR9vug+gfKGiSKCFyv4y6aNsdQxlNdp1/z6FHUidEc1sFOVgsETF5KQsFmbT5ukz68jpDslIDYPy6YznhqqN5dOXtPBO/j/sX+Et8V1/9kovXHv1b5kZ0jvD6E38bSLgAHPDDfQFJOTIkjhCuCLHPMV/NeIyDT/06a20wIeWFHeCQH3+DdTfNb37MUAqWBbnk2XPY+cBt+3zfU/bagl++fGHGIndDKvoH6Hi0OOcebMFtoOJwmxuSSexv0PwTcr+kOX4/oQGMhgBIeE9y/5kkIDYY85UGQHNsiqj5970aCLs1Y0raQEd2srWXV0+Jtg+8Ydh6X5rIOfedwkXfvgIvnuiuKSIiRCrDXPTk2dSNyzzUWVlbwRV//Bk3nH47f7j7j929eerXqOPbZ32Lb564z4DjHGwVNRWce99pLP58Ke+88j6e57HZDht1L9MtFm27vajnH1Sxv0BsXrGjKHH53n7zkIqj0z6rsY/QjkfBWwHOBCRyIBJI8SEg9FVwJ0HiM3JKSAbSnmAwBCZn3wZ6VSAuBNESrrzS1NRETU0NjY2NVFcXoZqhGfa+P+UM/v3PTzNOqNzjO7tw5u0/HJR5Lsu+WMHTN7/IO398H8d1mDL9K+x11DSq6irzOk7T8mY+/2ABZWG/r81g3v4aDbxFWw9JvQgzQlR8D6k8vc+/edUY2nh2cjStq1BeckJnxXFI5Sl990l8gS4/Ooe5Oy6UH4lTfdYgfiP585YfCZ1vkDpxcsBdDxnz+wG/H+Zz/bZExIxoT9/6By4/JtPkLN96X57IhY+eyRqTxhcgKjPUvIXbAiuLHYYpRc44ZOyrKS+0XuOF0H4XaeeZVJ6JhPcCCSPuqkKRqgm0/QloOhtINcIqQBky5ikkMHiFFPtD45+iyw4BbaZ3MuICQaThTiT4lQGfJ5/rt80RMSPankfsyq4zMk8SBfjsg/mcNu182prbCxCVGUyqHhp7B43+CY1/5lezdOqy72hGJ29xytELTSxLNhXM8Nm85Rfo0j3QJTvhLf1Wcnk4iLg45d+EytPS7KgQ2BjcCWmeLxwJrIc0PAzhA4CuOkoOhPZCGh4alCQkX5aImBHNdV3OvvskTr7+WGrGVqXdzot7LPnfMp6/45UCRmcGStuf8C8Myw5CV8xCl05HF00F7z/FDs2UMo32fazzZbIXqOuRpMTfR1eegLb685HUa4HWq9LvGn8HSmTukgTWxqmdi4x/Exn7CjLuLZy6K5FgEVoXYImIKVHR9ihvv/Ieb73wDiuXZK6tkY3ruux37J5UN2S5Twm8eE9hl62Ndhr7F9r2ANr+qP+JNN123gp/1CP+SXdRPW27F208FRLzV9s6947BZjQK+j2IVqf5/t74E2S1+WI0sdCfV6KZRlQVbb29pBriiYQRdwLilBc1Dls1Y0pKIp7gzp8+yMNXPklbk/+P2g24TDt0R37wq1lUN6Qf1cimtTHzkjTVvh1xzdDQ+Cfoyh+vVn7dRSMHI9XnIMnVBZr4wq+UGX2G7vvZ7gZo5XHQdHHB4zbDnQvhbyBOig8lgQGMBrQ/jCb+h//ZPsPqGe8L0CaQ4lYcLjWWiJiSoapcOutaXrz7VXp+aEjEE/zhnj/x8ZufcPXrc/tdm2LiJmuxcnFT2lLsTsBhnRKq0zFSaeILdNmhyclyPSWg/T60/Uk0tDO4a/mdcrWJXm/uiX9D4+mFDNmMCC64ayPVaX53glPBXS+5FDe/5cAa/zdIJbl1Ry69BnjFZrdmTMl477WPeOGu3klIFy/h8fmHC3j8umf7ffyvH7dXxn4wXtxjv2MH3rzPZKatN6eYsd9TC0SfhrabQVek2K6QQ9v2FlmaHJA6INfVlAGomIU0PIA49Sm3EBGk9vJkrY88l8tLBRLajcxzTBwITin6bZBSZP/KTMl4+pYXM5ZJV0954ob+JyI7H7QdO35zm7Tr46d/d1e2nl74GeOjiapC+4MMmwqhbo4FoEyBib8Khc4ctvVvxzhVZwABtPW3eEu/ibd4Z7xlh6BtD/krrQAJbo40PATh/cj9hoHnFzYL7Qbu+qRPYjyk4tgcjzm6WCJiSsbCTxdnLMcOsPR/6Sc0ZuO6LufefypHXjCTmrGrPkk1rFXPcZcdwem3nlD8zpgjnGo89zLTpSDxHwjuUuwoTB8KsdfJbWJyAgl/FU0sRpd9C22+GOLv+8t4Y/9Em+agyw9HPX9+mAQ2wKm9DBn/Dxj7MhDOfgqvEREXqb/Zv6UIrLq8OoAgVecg4eL0Xip1NkfElIy68TU4rpPx9slAJqsCBIIBDjvnIGae+U2++GQRIsIak8fjula5dKhpYhk0X1TsMPKUgNAOyYvewFsBmMGS6xwOf14Ioa+iK46BxP/ofWsv+f+xt9HmuUjNz7qfESkD7UCzJjsBSHzk7+OuBWOego5n0ejz4LVDcCMkckjRC5mVMktETMnY47Bd+cM9f0r7vOM67HXU4HyiCAQDTNx4rewbmkGhiYXospngLSx2KHkSREDDe0PHE8UOZpTpOTrZz3lB7ppI3S1+1+LOTF22PWh/BK36MeLU9gghh9EQFFjVPE+kDCL7I5H9+xfzKGS3ZkzJmLr3Fmy+y6Zp28pX1Vcmu9ya4UabfuIPhRd0oulg8NCWm8FbfYWPGXKRA5NzL6aDjOnHAVy/Z0pgInS+mcP2MYj9q/dDzgQIbETm1TAJJGyT3AfCEhFTMlzX5WdPzGHnA7ft/nffNWVj8hbrcsWrP6VhDSvdPdxo4guI/oGBT1B16brf7penHlgL95zpsmTVTVNIUvEDnLrrcOquBcn3Z+1AcAt/dMI/Wv9iEEEqfkD6BNqF4PZI8Ev9Or7x2a0ZU1LKqyKce99pLPrvEt589p/EYwk23mYyG2+TuS11a1Mbiz9bSkV1hHHrjM24rSmw+Ef0fyQk2f00crB//10qIbwX4q6Bt/RfEP94EAM1pcGFsu2QwERUPT+J7UfVU6k4ctWXZdvlsE8Ikn1WND7Pn+ehrYg7GSpPhZYremzrAHEIfgWpuzrP2MzqLBExJWn8umP52uzsw51LFyznlrPv5g/3/JF4zP/EveHW63PkhTPZ7mtbD3WYJiehPLbtGqRNTkYMbIRUnoiE9+67afx/Aw3MlBwBIkj1T/yOto2nJ+fm5Dp47wAeRA6D0D6rjhpYFw1Ng+irpB6Zc6D8EJAA3oofJiv5uoCgxEEqoPoCxFuMxv8DUomE94Wy7W2l3SAQHeLC99deey2XXnopCxcuZIsttuDqq69m2223zWnffNoIm9Fn2RcrOHG7OaxYuKLXsl9xBFXljFtPZM8jditihAZANYou3gG0JfOGlachFbNA434pbImAs0bKN3ptuQltuXSIIjZFF9gcQjtD63U57hDEv02yOVJxhN9JdrXfG/VWoMuPgPiHdI+0dSUuZTsidTegK0+B6Iv0XZUjgCD1tyNluV2/Rrt8rt9DOkfkvvvu49RTT+X888/nrbfeYosttmDvvfdm8eLFQ3laM0rces49LP9iRZ/aI+opKFz5/Rtpa87UhMoUgkgIqZidaQuIHIpTeRwiZYhTjgQmI+6aqZOQxDK05VdDF7Apvvh70HpD9u2ccUj1Rcj4d3EmvI3TcBcS3jvl7404dUjDg0jNzyG4rV98rGwnpPZqpO5miP8Hos+TemlwstFiyzUD+75MSkOaiPzyl79k9uzZzJo1i80224zrr7+e8vJybrnllqE8rRkF2lvaefHuVzPWHIl2dPLSvemXA5sCqjgOIt9JfuEPeXdXoAztiVSfk/uxOh5n2FRmHamkdohPkCB7rZAAhPdDymfkfHtEJIREDsRpuANn7NM49TcnExcX7XiazKXdPeh8HfVW5vYtmJwN2RyRzs5O3nzzTebMmdP9mOM4TJ8+nddeS72eOxqNEo1Gu79uamoaqvDMMLd0/nJi0Ux9HSAQcJn/8RcFishkIuIgNT9By7+Dtj/k1xNx6pHwAf6Ev1QjH9oJHc+j8Y8RKUdDOyHxT5IXjK6hdVMU2gwVJ0BwK1h5PJl7rAylQZyfoc25HU9bgdrBO68ZukRk6dKlJBIJxo8f3+vx8ePH88EHH6TcZ+7cuVxwwQVDFZIZQSpqsjeO8jylPIftTOFIcCMkOCft8xr/BG1/HGLvQOcb+CW8AygJaLk0mXpYElJ8CWi9FqSa/ichLgMb2YojOa2GyY246/m/ZxlFwOlPTROTSUnVEZkzZw6NjY3dfz7//PNih2RKVP2EOjbbcWMcJ/2vsJfw2G3GDgWMyvSXagxv5Vno0n38C1znK6zqIxInZVluU3ya76i1gDMBqb3BbxKXb5fbbi6460Bo137un0LkG2SuTeNC+YGI5LMKzORiyBKRMWPG4LouixYt6vX4okWLmDBhQsp9QqEQ1dXVvf4Yk86RF8z0u7mmGE0VR/jqd3Zm7Y3WLHxgo4Cqh0ZfQ9vuRtsfQ73GgR2vaS50PDJI0ZnSpUjlyUh4dyQyk/6NiAg4dUjdjYgMXo8ocWqQ6p8kv1r90uj65eIrfzho5zOrDFkiUlZWxpQpU3jhhRe6H/M8jxdeeIEddrBPqWbgtt5jc/7v3lOIVPr9IAJBt7s8/B7f2YXTfvP9YoY3YmnnX9Gl09EVR6JNP0Ebf4wu3gmv+VJU87+waGIptN+DjXSMDto0B2/hV9C230FwG3Ke5yG1ENgcqTozWbp9/UGPTcoP8kdrApv1eDQEkRlIwwOIUz/o5zRDXNDs1FNP5cgjj2Tq1Klsu+22XHHFFbS2tjJr1qyhPK0ZRXabsQPb7bc1rz74Op9/OJ/y6nJ2PXh71pycetTNDIzG3kWXH0XfT7Kd0HoT6nUgNefmd9BBKf9uhg8FOqDzWcDze8lEnydrIiohnDEP9T6Sxv25RN4ycCdAcAoiA/t8LeHdkfDuaGKhPzHVmYA4FQM6pslsSBORmTNnsmTJEs477zwWLlzIlltuydNPP91nAqsxAxEuD1nhsgLR5ivwl1WmWVrZfidaebRfjj3ngw5mrZeg3/Y9sRhoHcTjmsGXAASiL4EzNtkUMQNvEd6yQyD4ZaRsF9RrhpZLwFuyahtnTag+Dwl/dcDRiWsfZgplyCurDoRVVjWmdKi3Al28PZk/uTpI5SlI5XG5Hzf6J3SFjZKOXn5Zd2jLcftMq2382zxSez0S3n3goZl+K5nKqsaYEcRrJPs8Dgf1lud33LIdwBnX36jMsKfknoRA5tt4yQqozRdRwp+xzWosETHG5MYZQ/bllgnEzW+lkoiD1F6BvR2ZwaGQ+Axibxc7EJMj675rjMmNuOCMB29Bho1ciHw950Oqtxza7kejL4Az0a+4SjTrfsZklW3OiSkZloiYfmttaqN1ZSs1Y6sJRazIz0imquiKH/pdcTOQypNTLnFU9SA+D+gAdz3EqUY7/+nPDdE2Vk1+7RpxCVC8suFmRLDbfcOGJSImbx+/9Qm3X3A/f3nyLdRTgqEA0w/fle+efwhj124odnhmKMTeSlY7zSA4Fak8ts/D2vYg2notJOZ3bYiG94WO54F2es876br/H8dKuZt+c9eB4FeKHYXJkSUiJi//fPlfnLX3z/ASHur5F4lYNM6zv32J1594k6tfn8v4dccWOUoz2LT9cbL2Bom9g6r2amCnLb9GW66gd9GqGHQ8luWMuSQhYVaVgTdmFak+J+eOvMWmsXfRtnsg9i5IORLeCyIHIk5NsUMrGJsdZnKWSCS45Iir8eIJvETvOhKJuEfj0mauPemWIkVnhpSuIHtiEKXn/A5NzEdbruz6Kt8TJv9OdTERCO0L9Xdhn6VMXw4SmlbsIHLiNV+FLjsQ2h+G+PsQexNt/jm6ZC809mGxwysYS0RMzt567m2WfL4Mz0t9UfESHq8//iZLF+S5fNOUPnctspbillpg1VwhbXso+z6ZDwgVxyc7vHY9VOfPQ6m9HHGqsHkkI13yEuWu50+UzkWKVVuaWIC2/Bqv8Vy85ivR+CeDF2I/acfT0HpN8queI40K2oSuOAbVzmKEVnD2ccLk7LP35+M4kjYRAX9S4/yPv2DMmtaTYSSRyEFo628ybOFA+czu4XCNfQAdj5O2AmtWDgS3xKk6Ba08AeKfAAKB9f16JrF30M43+nlsU5IqTgcnAvF/+390JbhrIZEZyU69gna+DiuOynAQQSLf7v5KVdGWX0HrDfhJsX/LT1uvRSMzkOoLECnOZVBbfoOfaKX6N5LwV/10PAuR/QscWeFZImJyFqkMZ0xCem5nRhYJTEbLj4a2VLfekp1JK44BQFtvR5svGuAZPXDXRBNLEXcMBDfxb/WsPCXZl6S/CY4pTWGITMcJTMq4lYR2xIscBu13pXjWgcBGUH7YqofaboPW65NfrPbe1f4Aqgmk9ucDCbxfVNshnq3OiYt2/hkZBYmI3ZoxOdv+61O6u9umM3ZiA5O3XK8wAZmCkqozkaqzwem5MsqF8NeQ+vsRp9bvzNv8M/w3/QGueOl4Cl2yK9r+OzTxBbr0QIg+hyUhI1EHLN0Hb/nRaPzzjFtK9blI1Zmr/R6W+R1y6+9CnHIAVDvRluuynPZhvGgRRtY019/h0fG7biMiJmf1E+rY79jpPHH9c2nLJ3/3vBm4brbqm2Y4EhGoOMr/xBl7D+iEwORedUO09Vayrq7Jmd9cTxvPhMCXkxNmzcil0PkauvwQaHgkbdM5EQcqjoHyIyD+EWgs+XtY1XvDzr/7t3eyaZwD414YePh5EKcCdSdD4hPSJ+wJJLhVIcMqGhsRMXn5wRWzujvdOq5DIOjiOILjOhwz9zD2PWaPIkdohppIECnbAinbpm/xss7XGJwkpCcH4u8M8jHN0HKBsn7slwBvJdry66xbigSR4JeQsi37JiGQLJSXA+9zNPZxnnEOnFTMIn0S4oBUQTj3KsXDmY2ImLwEggFOv/UEDj3rAP5wz59oXNrEhPXGscfhu1A/oa7Y4Zmiy+F2jLMmaAfoctJP1utpsBMbM+ScSeD1d2VKAtofQavPQaQ/yUxSYHIep/wUghv2/1z9ETkYOv8BHQ/SexTRBYJI3fXdt5lGOktETL9M3HgtjvjJIcUOw5Sa4DbQ+UfSJw8OUn4wVBwH0Vcg8T+04wmIvcNouR8+8gl48wZ4jCh4TeCO6X8UgXXQwEb+7ZusG1f2+zz9JeJAzUUQ/iradifEPgAJQ3hvpPxwJDCx4DEViyUixphBIxVHoZ0vp3sWvyneIYgEIZy8jacdaMxuvYwcg1GWPwCpbrfkq/oyWP6NzNtIHZRNHfi5+kFEIDwdCU8vyvlLhc0RMcYMiKqinf/Aazwbbb0e3K4h7p5vLy7gIrVXIe5qzcgiB2FvRWYVF8L7IjLwRppO2SZQfkzGbaTqR35ibIrGRkSMMf2mmkAbz13tPndy1ZRUA2UgQQh/NTnc3LdOhLhjoObnaOPp+AlJ122dZFXWsl0h9j7oEqwJXjEVogmhA1KGVP5g0I4oVWegUpYsaubh/376f0vlSRD5zqCdy/SPJSLGmP5rvTGZhMCqBCL5tzZDaFecuhuyHkYi3wB3LbT1Joi+hF/QbF2k/AgoPxRtuw2aL8MSkWIqwGvvrofUXopkmGiqiSV+k7iOJ0FbIbABUv4dCE33512sRkSQqlPQ8sP92jTeEsQZD5H9+q76MkUhmq4gRAloamqipqaGxsZGqqurs+9gjCkY1U508U6gjRm3kzHPpBwJScfzEhD7OxJ7A9U4eM3Q/tuBhmv6CFAavXoEQtOQitkQnJKya66qQuyvaOtdycq6cVYlRsmRuPB+SM1liFgdo1KQz/XbRkSMGaXUa4H4PBAXAhvnv1Qy9n7WJAQEon+EHBMRTSyBlSdC7O9o1y0eW747REohCQFwIbApkmbCqHrN6IrjIfbXNPsnfz86noTgV6Bi1tCEaYaMJSLGjDLqtaDNl0H7Q0DUf1Bq/TfwiuNSDm+nlsuFTLJupxr1m9glWqH5HL/ZF2AJyHDUNf8in4H2OFKWvoKorjwZYm/ldCRtvQ3Kj8zjd9iUAktEjBlFVDvQ5UdC/F/0qtuhK/0upfHPoObilMPjfQQ2xK+emalVuQfBzdPEkoDW6/yy8Nqcx3dhSle+yaML7gQo2yXlsxp7Dzpfzf1w3hfgLQJ3jTzjMMVkaaMxo0nb/RB/l7TFwzoeyvnTpzjVEPkm3atk+nD9pbzBKX2eUVW08Wy05SpLQkaMEOl/F9KQCFL76/QjGNEX8z8mOSTRpqRYImLMKKJt92TZwkXbH8j5eFJ1VnJkZPU3fxekGqm7MvXoSuwf0PFIzucxeQpOgbrboeJH+G/zQ3xxdteH8F75n0fqIbBx2qdVO/I4poA7EZzx+cVgis4SEWNGk8R8Mt+/T0D8vzkfTpwqpP5epOoMcNcFysAZAxVHI2MeQwIbpNzPT3aGanVDkFH/qbjmSqRsCrTfif/zznXORr6JRA3U3oqM+T1Sti15T4D1Pku2BEhz+MAmeRxTkYpjcrutaEqKJSLGjCZODsvgE1+gicXZt0sSpxypOAZn7HM4E97FGfdnnKrTwalD2x/DW3kK3ooT0Zbr/FUxAIn/MXSTUWOM+nojyw9B2x8Dbzl5vRZVPyWvRK7mYpzwTslS5fuDVOS+LwABNPrn9E+H9/InUmc8ZvK5yKEQ+XYe5zalwuqIGDOKeM2XQ+tNZG4w54AzFml4qG859hxp/D/o8lngLfCPh+JfMByk5hI0+iJ0PM3QrowpRCXQUhbBn0ic72scxH/dsoxESC2MeQaJPo12vABE/Wq60ReTG+Ry3gCUH4aUfxviHwIhKNsWcVY1odPon9AVx+L/zq5+zDIo2xWpOALKtrPRkBKSz/XbEhFjRhFNLEaXfj1Z/yNTMuJC+JtIzYXQ8bzflE5cJLQrBLfJ+IavGkWX7JVchpvqYuRA5Y+h5RcD/G6ykEpA/eqbJk8uSAS0Jf0mFSdC+73gLWVV0pcsLhb4EsQ/IKdkxJ0MiX/3eCAMFd9FKk9BxF/YqbH30JYbIPqsf0ypg/Lv+LdinMJ3zjXZWSJijElL4/PQZUeBZrv9EgCpAl3BqpX+cQhshtRdj7gTUh+//Xdo4xkZjutC6KvgLfMnrWZMiAZo7J/820Arjs2h+JrpzfEnfnpf9H0quCPEP0r+bqRJNmpv8Ue9Ou5Pc/yuZLZnf6Eez4UPwKm9pNejqjHQKEiFjX6UuHyu3zZHxJhRRgIbQPmBZJ8sGgdduer/u4bq4x+iy49ENXX9EI2+ROa3loTfT6b2JgjtyZBOLF0xC0nMh6qzh+4cI5aXOgkBiP0ZdCnpRzxcaLsFqk6H4A7Jx/p2Y/Z/9qmOodDxiF9HpAeRIOJUWhIywlhBM2NGIZEKNKf5E6m2SUDiP9DxLET2T7FLJ9lHOeIgQSS8N0ocEguT3XodiL2BP+F0EMQ/RhtPBXcTcMb1qNo6moTwK+j2vPA74K4HiU8Zmnk6CX81zJKdWFXwLgKoP2E6vB+03wPaluEYLtr+CBLcbAjiM6XEEhFjRqPwPtBy+QAO4KAdv0dSJCIS3MyfjJo2GRH/IrhsXzQxn1VlwcX//+qfQtlUaL4Soo8PIEboTqQSHwzwOAORQ3M5Z02k+kxU6qHxQvA+HsTzR6H655D4DLQRcdeByDfRll9D26eDeJ5Ueo6atQMg1ZdAaBradnOWfXWUJo6jj92aMWYUksC6EP4G/X8L8NJXRI0cTObbLeovK00sTH6d8B/DA2LQdDbiLcepuxwZ8xSE9vLnqnRzILQP0NDP2AsthzoYUoaE9/VftUFNQgAc6HgMp+pknOrzkYpZiFOPhL9GYfv5+D1otHGOX95fKrJsL+CMLURgpsgsETFmlJKai/whcsAfleiqHxEGZwKZkwkXApNTH9edgNRcTPcIx6pn/L8CWyQnjqa7CHroiqPxmn4Cqjh11yDj/uYXzap/ABn3Z5y6q5Ax94MMl2QkExfKtgVAmy8aguN70Pln1FstcQxuBWU7kvoyMFRzMBS0BYk+A5GDyDxPKYFEvjVEcZhSYomIMaOUSAin9nJkzDNI5Y+g4kik+kJk3J+Ryh+QrQKrRGamP3bkW0j93RDane6LTWADpPqn4K5F1rcebYG2+9Bl+6Nt9yMiSGAyUrYF4tT75whMRMY8ARXHg5Tn862XGA8iM/Car04ueR0iq83HEBGk9prkzwj8n0nybr3UgpPp5+T6y24JkDLZzCiAxj9FKr4HTg2pkxGB8DeQ4JdyOJ4Z7mz5rjGmD9VOdMVs6PwLved6JOtFVByPU3Vqjsfyb7uI+Bccb8UJEH2efMqOS8MDSPAr6c/R+U90+Ywcj1diKudA+0OQ+GjoziGVyLi/IBJM+bTG56HtT/nJSnBzJLynvzpq2eH4E11X+x2QSqThftAY2nqb//PUTn+ULP6vLME4SOVpSOVsNP5ftPEsiL3Z4/kyKP8uUnVq2nhN6cvn+m2TVY0xfYiUQd1N0HoD2npnsl4E4E5CKo6FPIbM/aWWqz71SnBTNPoC+VQ91aafQ/1v+1yYNP4/6HzFX0rsTvZX8wxlXZJB50LL3CE+hwORmemTkOjLaMv1q5IBZ4w/sbXiGCj/LrTduPoeoHHwGpGyrZHan/d61luyLyQ+If3P14Pw3oA/V0ka7kHj8yD2AUgZlO2AOFVp9jUjkY2IGGMyUo0ll9cGwRk/4BoOmliILtmdvCdKOuOg9irwGiH6KnT+OXnBA/8WgseqFSqjvbx7F8dPHhvuQ1L0GdK2u9Gmn7Dq9esiENgE4u+nP65UIGNf6k4a1GtBG0+D6B8yxxP+Ok7tpf36bszwYSMixphBIxKEwMR+7auJZf4STKcecf327OJOgJqL0MY5+AlDjiMY3hJYfmi6J7vOCIQhsAEkFudQPXaEcyemT0ISX6BNFya/Wv1noMkkJF1C5/nzeNofgYojUFV0xfEQ+1vmeMJfQ2p+lv/3YUY0m6xqzAimiQVox9Nox7Oot7xw5419jLfiOHTJjuiyb6JLdsFb/l208x8ASORApP5OcNbI56g5bJMAYlA2Bam/qR+RjzCJz/zbHSlo2wM5HCDza66dr/n/0/mXZCG6DLVjyvbEqf0lIqEczmtGExsRMWYE0sQytOmcZCfUrotJAI0ciFSfg0g48/6qEPsH2v47fyTCHecnDxkmjHbvG/sAXX6o3xOk54Ws86/o8u9A3c1IaAcIbp5sUz/YEtD+MFSdmmzc1p5588rTILQvrDgavM8GcN5KoJXSuiWkaGIZElir71PxeQwsVgX1Ew/teJLuhnfptu18GVW18uymDxsRMWaEUa8FXf5tv59LrwtNHNofRFcc7xeUSre/dqIrT0KXz4T2+/0VEW33ocsOxlt5mj9nJNP5m84H7aDvRckDPLTpbFQ9SCyiq9rmoNNmIAyRQ0j/Nuf4FU0rvocTXAdn3PPQ8HuoOAGCU/px0haouwtpeAjCB5C9l0+BdP4p9eMSYWCXAAcp29r/X20ie1LTyaCV7jcjiiUixgxjqgn6zDdvvw8S/yX1p1O/uBXRl9Mfs+kSiD6T/CrR+++OJ9CWK9LvG/8EYn8n/RC9B4n5/lC+RNIeZ8CSk2ql8mS/JT1C7xoXfpt7qbu6e1kxgBOcjFSe6MfYDyIKgS9DYFMKW7U0g+iLKR+W8HQyx5jp8iBAEMqTS6bddchaQ8Rp8FdjGbMaS0SMGWZU42jb3XhL9kUXbYou+hLeihPRzn/6z7fdT+ZPpy7a/nDqY3srof3eDPsrtN6Bei2pn47/N7dvIvFfxB0Hgc0Z/LchByIz/NsATgXScCdSdSa4E/ETkGoo/zbS8CgS3DxFbP8Db2Hfx3OgzVehS/YswJLcPKRpLKdlu/grkVLKtupIkNqrVhWXi8wg86RjByLfziFYMxrZHBFjhhHVOLryxOSn3K5PoHGIvoBGn4eaX4K3NMtREhB9Hm/RlhDYHKn4LoT29O/dd75O9uHzDuj8K4R37/tUitUZKb+P+L+h8x9QeSKsPC6nfXKTvIC2XoO23Y5GZiAVR3f/yc0A5k3E/tL/fYeEA4kv8JbNAGcCEjkQQrsCCo2nZGgql2m+B/7+7qp5JxJYB604AVqvoW8S40JgUh6vvxltbETEmOGk7e4edRp6vtn7jeO08Qxw6nI4kOd/Uo79FV15Itr0U/8Wj3Zm3xXo3VW1h+CWGT5l99D2W3T5IdB8MZQfzao+NwEG9rakdL8u2gRtt6HLDkh2+c2RuxYkP+kPfx4kPofYPyH6PLryOHTF0WjbHRB9IfN+GX8ODtp2V69HpPKHSPVFvRIUCEHkEKT+HsSpHMD3YUYyGxExZhjRttszPQvEILC+f/HJ6ZN9cji9/U4IbQPBzXILJLBpyodFXKg8GW06O7fjJD6Dttug5irEW4gmPvG7srb+lrTJzurcdUET4C2g7+2BBHjL0cb/Q+pvy+lwIkEoPzI5F6ZYK2BcIASkvq2Sn67XJDnC0fkX6Hwrx33SSfhzjXoQEX/OSOQgv9CcdoK7jiUgJitLRIwZJlSj/oU7IwFC/sU58Tm5T5h00Nbf4jTciwanJiecptrXhbLtkcA66SMoPxi0FW2+FP82j4tf7TSV5IW+9SpoeBwnubTTa70jh5DXh7obEKLosv0zbOhfNDX+mX8LQTvQ6N8g+px/K0qb/Atm+aEQ3t9PRCq+B7G3k6MGPauOOkAV0Jg9vgEJQv09kPjYT8ri/wHSzMvJm4ffP2agUk9OFXH8gnLG5MhuzRgzbLhk724q4FQkO9/uksP2XTz/wgtIzc+Tt3dWX37q+isfarK3qpeKI/0uvtUXQGjPLFsrxD/q3Xm2bLsU5+91BqT8QJzguhnKkK92ltg7eM2Xo4u2g5VHQ/s9fm8abxnE/ok2nomuOAbPa/Hrm1RfgtT8CoJT/f4r7iR/RU3DXdlPliHu3HRA44+Qsm1wxjyEjH0qh30CEJkBNZcNIL6eMsXqQminQTqPGe1sRMSYYUIkgJbtBJ2vkX6kI4GEdkfcMUjdjWjcnx+grbcku6JmXk0D/sRDGn6Htt4K7Q+CNvpt4ctnIOWzEHdMbvE61VB+KOCh0d9n38FbBPi3fKTiKLQz3RJjf9RHQ7uizVf4xcty0XorxN9Od3L/r87XYfG2aLJfjYZ2R6rP7L26RhUNbATxj8n71k34AL+uR9pJoj0kPkOXfw/GPA5OA0iN/7NIK+7HKcEC3FBSpPywIT+LGR1sRMSYYUQqjiX9/XvXr+cQ2mPV9oGJSGR/pPygLEd2k6spkvu543Cqz8QZ/1dk/Ps449/AqTo95ySkFyfHfXpMcpXQTkjl6atiW7URUOZXTV1+KLRen+NS20CGJGR1XbeRFKIvoctm4DVf5Xf4xZ8LIRWz6df8kY5HobKrx042ComP0dabk/NWvk36t2wBIhDeH4JfyfH4WVSdnTxfz9ffBRyk5jLEbr+YQWKJiDHDiIS291cmJC8I/gUneaFw10TqbkUkxUBn+Jv+J+q0/+S9tMsrexb86pfQbn7tjrQEnPVRaUDj/1t1wa+cjTQ8COGv+3Ne3A381vQND0PLNcnqrTk2zCNB/y7OfjVYWq9BF+2MdvjFwTS0P4S/kdwmn7dRhZbLyCuJabkMjf4FqTgOApulOJ9/y05qf4E4lYi7FoR2J/2trRziDWyCU3EkMuYpKD/Mf+3dDaD8MGTMU0gk05wcY/Ij2qcsY+nIp42wMaOJJhb65dpjH4CE/E/Bzpr+7ZCyrVJWsNTYu+jyWcly3OBfDF1AkeqfIl1VMoci3rYH0Kb/S/FMsuaEszZ4/0s+lCw4VvkDJEX1VW27F206b8hizczxe9O03QneF4U7bWBTnDGPol4btN3iL531lgECod2RiuOQsq26N9fEUr+vT+K/9E56HL+wW2DDZC2aVImcIHU3IT1GyIzJVz7Xb0tEjBnGNP4J2nhesvNpktQilSdA+RF9Goyp1wTtv0Ojf/CXV5ZtiURmZlwFM2ixtj2ENv8CdEWPWKuTidHqRbAcCH4Fqb+9T4M+b+Vp0PEkuY+GDKauOLNVHs0isIk/QTeP70EankSCGwL4vXq0BSSctmy6ei3Qfp9faddbDM44pPwQv/+OBNHGs6DjKVaNrsWBMFJzIRL5Zv+/N2OwRMSYUUHjn6HLDgRtJeXk1YoTcap+1Hc/TUD0ZbTjKfBWQmBdJDIDCW4y9DFrzJ9s6y1H1YWmH5P+gi5I1elIxfd6PVrcRGSQVP8cms7Fv/jn9hYsdbcig7xSReP/ho5nUK8ZCUyC8Nes7ocZFPlcv23VjDHDlLZcnT4JAWj9NVo+E3HHr9rHW+mvxIi/TXd9jE4XbbsDLT8GqTpjSNu0iwS7J8Vq8y/JPLKgaOudfRIRKdsG7Xh8yGIcWuLXLIl8CwLroI1zkrdPcuCMHdCZVT0/CYzP8xsOhqYhgclQ+YPBmNpqTL9ZImLMMKReW3JUIEvBsvZHofLYVfutPCW5jBf6VNxsu9kvz11xePIczdD+CBp9FYhDcEukfCbiThicbyL+H7KOBngLUI33noAb/jo0X+bfmii5UREHnDVXzXfpQ/3RoCW7QGga1Fzt3zZZeTzpi74JBDby53X0k3a+hTaeluwq3FWgzUEjhyDV51hXXFNUlogYMxzpCtJfuLo4qLew+9Ouxj7wa1hkOmzrTf4y0fh76PKje09s7XwNbb0Ban6RctWEJpauapoX3Dz78k6nAv+imCmZCrL66g9xKtDqn0DjHPwy8IN1d3mA8z4A8JCqkwBFmy9JTijtyQFt9v+0PwTtDyI1l0P1+WjTuWliEqTq7JxHqlQVYm+jHb+DxFKQIHQ8w6rX2Vv1d/t9qLYhtYNVBM2Y/FkiYsxw1L0UN9OIgCJOw6ovo69k38f7Au38J6w8Njni0PPC7C9l1cYfQ2A9JPhl/yzagTb9NFlYbFVSocFtkdpL/OWkqb6F0N5oxmJkLoT37XUB1s5/+ufKuSZIrsqgfKbfqr75F9D5Uj+PE/Q7GTvlEN4POv+CRl+DtpuSz/d87f3XShtPR8Y+h1RfjLZc5ld17eKuhVRfgIR2yOnsqp1o45nJ0TK3x/nS3/6i4zE0diwS3Cj3b9OYQWR1RIwZhsSphNB0MpdB93rUugC/70sOn6qjz/qf2NMmLIK23uafIdHsLwluf5A+IxuxN9FlM9GeF9aeQrsm62Kk+h4EcHrND9HOf6DLD4P4u9m/h3w5G/jF4FYe2yMJ6Uf9lODmfhKCPx9GQjtD4t9ZjuWhbfch5QcjY19F6m7xC4bV34WMeR4J7ZLz6bX50uRKGOjqyJx9lMcdxnNuzEgwJInIp59+yjHHHMOkSZOIRCJMnjyZ888/n87OXFuMG2Oykcof4t+6SPPPOHIYEpi46uvgl8jeBC8MsffIfPFKQPRFvMbzYMl2EHszzfYJ8Jairak7Bou4SP0tyUqg4F+sk4O0UoXU3dhrJY82/Qz/dtQQzAvx3oPmi5JzKHrEj0BwO2h4hpz6/CS/F00sRdsfRdsehOhfyPy6e9D5V/8IyeRFIt9AyrbxG8jlSL1GaLuH/G8vCXgrsm9mzBAZklszH3zwAZ7nccMNN7DBBhvw7rvvMnv2bFpbW7nsMrsXacxgkODGUH+HPxSf+KTHM2VQMQupPLn3DmW7JCdSLiT1xdyB8oOT9S2y0FZof4DsiY3nj5ZUnZzyWXHqof5eiP09WdskigQ3S96SCfmn0k609Y4huB2TyuoXcYXYX5DEh2jZLsk5Num+Z4XQV/Ea/6/PbarsBuEzYedr+HNm8uWlvX1mTCEUrI7IpZdeynXXXccnn3ySfeMkqyNiTHb+5MS3IP5vkHII7epXWE21bewddPkRyfLoPS+UAoHNkPo70NbroPVmMt2aye9TdwBnwnt5bN8j3sQSdMVRyQZz/eGA1IMu7ef+yWMEt0WqTvarlaa83eFCcGuQSuh8mfxGbRyk8iSk8vsDiBG0/TF//k7eHGTsS4O3GsoY8rt+F2yOSGNjI/X19Rm3iUajNDU19fpjjMlMRJCyKUj5IX6DuzRJCIAEN0caHvW74koVXSW/peoMpOFuv1dJ5NAsZ8zzs0uuTe9WP4squvJEiOf+4aU3FyQMdTf4E0f7zYPEPKRsa6T2Kr8GB+APKCfnfpRtCxWzofMP5JeE+J2EiQxCef3gZv3aTSpPtCTEFFVBVs3MmzePq6++Outtmblz53LBBRcUIiRjRi0JrINUnw/V56d5fiJUX4w2zaH38tpsq3RScfyy4v0Rextif89zpzL82xNBCO+PVB6PBCahwctRtMdEznz5yYeE94KynaDjSTQ+zy+xHt4TCW7u35LBJfdbMn4nYam7vn9djVcjgQ3Q4BSI/SNNDKuNZDlj/VYAkW8P+NzGDERet2bOOussLrnkkozbvP/++2yyyaoJZvPnz2e33XZj2rRp/OY3v8m4bzQaJRqNdn/d1NTExIkT7daMMUWgnf9AW2/1bzVowp+IWf5taDw1xyO44K6BNDyMOLX5n7/l13712Hwu7OH9kOpzQSr8Kq49jxf7AF32jTT7ZlG2I079bRk38VZ8H6IvZD+Wuyk4QSS0G0RmIu64/sWUgsb/iy6fCV4jvV83F5x6qP01oh3+SFHwyyk7K6t6EP/Qnwfkrou4A6voakanIes1s2TJEpYtW71AT2/rr78+ZWV+lb4FCxYwbdo0tt9+e2677TYcJ787QTZHxJjS419wXyJzgpDsClv9035fyLzmq6D1uiznWV0Qxr2N0ASEupfSdh9z+VHQmW0VSwruZJyxv88cb9NPoO2+zMd2GnDGvZbfufOkiYVo6y3+JGFt8RsLRmYgFUdn/Vlo+6Noy5WQ6KoM60Doq35BtcDaQxq3GVlKound/Pnz2X333ZkyZQp33nknrpv/mnxLRIwpPRp7B102k1V1KnoSCGwKtdfiBAa2EkOjL6Erjs2+4eqkHjRZu6RsR6TieCS0vX9Mb4VfMTb+L/K61eSMxxn3auZ4Y++gyw7KdBCoOB4nzQqiwea/tceAYE5VWbX1t2jzRSmeccGp9Ue23DUGO0wzQhV9sur8+fOZNm0a66yzDpdddhlLlixh4cKFLFy4cChOZ4wpIAlujtTdmKzuCv5Us+RbSWg6Un/XgJMQAA3uTL+msXUlIeBXNl1xJNr+OwDEqUMaHkBqr/FHCnLigLte9s0CG0NoX1LXG3HBWQOpODLHcw6ciCBSllsS4i33S9KnlABvJdp85eAGaEzSkExWfe6555g3bx7z5s1j7bV7D+cVaLWwMWYISWhnGPdH6HgOjc9DJAzhPbL3l8nnHLSgWfvpZNNVRv3/ILSbn4hIAC3bEXRljsfwkPL0K4k0sRht/TW0PQx0JB/tOWlV/HNXX4g4df37NoZa+2NkHh1KQMfjqHden9tdxgzUkCQiRx11FEcdddRQHNoYUyJEyiCy3xC2kB/MI8eh/RGoODr5dR6Fv8p2g/A+KZ/SxEJ02cHJ5nY954YoEIDKk5HI10v+lob26sqbTgy8peCsU6CozGhhvWaMMaVJqsHdgOwJSSiHgzloz6JoUgtODpNoy3ZF6q5NuboEkmXn+yQh0NUgkLa7wBmfQ3zFJU4N2evDCGSoUWNMf1kiYowpSSKSbHqX7gLpgDTA2JfIqQ+MhHsc20HKD8+yXwSpvcIf+UlBE0sh+jzpV8l44H2RLAtf4sL7k3klkQNlO/drGbYx2VgiYowpXZFvQfkRyS96jkoISA1SfyuO2+AXGcvY4TaOhPbs/VDFMVC2nX+sXgmJ33xPaq/wuxynk/gP2VfdOAMoT184ElgPwgeSOjFLdkKu/FFhgzKjhiUixpiSJSJI1f8h9XdCaG9w14fAl5HKHyNjn+7uziuVx5M+KXAhsDmU7bDascuQut8gVXPA7epSHITwPv7KmvDuWYKLZH4e/JhkeEzulJqfJqusOvjJRzKxc8YgdTchZVsUMTozkhWs6V1/WB0RY4pLYx+hbXclO7sKhHZEyg8b1NUxg0XbH0cb5+DXzui6mMYh4C83Frch8/4aB9yclrv62yfQJbsnuxlnUP0znP6WuS8CTSyG6IvJyqrrQ2gXRArSDcSMICVR0GwwWCJiTPFo+8No49n4F/Su+QMuoEjNZUhk/+IFl4Z6K6H9UTT+od8HJrQXlG2Xc3KR9/na7kObzs2ylYM0PIQEvzQkMRhTivK5fluaa4zpQ2MfJpOQ1W93dNXl+DEEN0MC6xc2Lu2A9ofRtvshsQCceqT8YIgcgjjV/mTKiiOHcEnxaiKHQPSPEH0mw0aCtt6M1P6yUFEZM6zYHBFjTB/adieZV5SIf8umgNRrQpcdijZdAPH3/YJkiU/Q5kvRZQegicJXbvZHWvzJnOkloOP5AkVkzPBjiYgxpq/OP5N5OWcCon8uVDQAaNNFfldYlN5LehUSX6Arf1zQeFadvoPsq2dihYjEmGHJEhFjTMlTbzl0PE765CgBsTfQ+LxChuULbkrmt1KBwIaFisaYYccSEWNMX2U7krkuhwuhHTI8P8hi70IOfWd06QF4CzfDW3og2v4Iqjl21x0AyboiRpHuWijGmNVZImKM6cOvOpppQZ0i5YcVKhwyJ0U9dQJxiL+HNp6JNp425MmIuGsh1T9JfrVa0TXEr38S+daQxmDMcGaJiDGmDwlujFRfTK/CVpD8fwep+QUSmFy4gIJbkFtPmS7J5KPjSWh/cCgi6kXKD0XqbksWTUtO8nXXQ6rPT5aJzzWRAo19jNf0U7xlh+Etn422PYBq+5DEbUwpsDoixpi0/IJmdyYnrwqEdkLKDy9KQTOv6WJou53sE0N7EnA3wBn75FCF1YdfGC2BSD6JU3LfluvQll/hJ3wJ/KRGwVkTqb8dCVjnWzM8WB0RY8ygkOBGSM2FxQ4DAKn6MRr/BDpfYdWFOhuFxMeoxhAJDnGEPr8Kaf5vrdrxTDIJgVXfW/JzorcIXXEMjHk6r9EVY4YDuzVjjClZmliIxt5DE8uSvWFuRGpvgNDuENgEnLHk1Hk35zkmxaMtN5L+LTkBif9C9KUCRmRMYdiIiDGm5GjnW2jzLyH2RvIRQUPTkKrTkfDu3Q3ptP0xv8prWi6U7YhIaX/mUq8F4u9k2SqARl9FwnsUJCZjCqW0/3UaY0Ydjf4ZXX44xP7W81GIvoIuOxiNfbDq4fA+4Ewg/YhHAqn43hBGO1iyL03Obztjhg9LRIwxJUPVS/a4SZCyz412oE0/6X5EpAypvw2cMV2PJP92AAepvhApZL2T/pIacNbMslEcCW5RkHCMKSS7NWOMKR2dr4G3IMMGHsTeQuP/QQKTAPzGe2Ofhfan0OiLfsn14GZIZCYSWLswcQ+QiEDFUWjzXFLXb3FAKqAEOx4bM1CWiBhjSkfis9y3SyYiACIRKD8IKT9oiAIrgPLDofOvEH0Of0Sna0TIBVyk9lr/+zRmhLFExBhTOqRqcLcbRkQCUHsVdDyGtt4JiXlAGML7IhVH+CM/xoxAlogYY0pHaBp+BdVo+m2c8clKqyOPiAuRbyFWEt6MIjZZ1RhTMsSpRCqPy7xN5SlW1MuYEcRGRIwxpaXiB6AxaL0Rf55EVxXVIFJ1BlJ+YHHjM8YMKktEjDElRcRBqk5By78LHb9HveWIOwHCX0OckTc3xJjRzhIRY0xJEncMVHw3awF3Y8zwZomIMaZo1GuBxH+AIAQ2SDaMM8aMJvav3hhTcOq1oC2XQ9tDQIf/oDMWKmZD+ZF+gS9jzKhgiYgxpqBU29Hl34X4+/Qq4+4tQZsvhpYb0MC6SGg3iMzwb9EYY0YsW75rjCmstrsh/h59e8kk6TK/jHvLlejSPdDOvxY0PGNMYVkiYowpKG27h9T9VFbngUbRFbNRb/lQh2WMKRJLRIwxhZWYn8fGHmg7tN0/ZOEYY4rLEhFjTGFJZZ47KNr5xyEJxRhTfDZZ1RhTWJEDoO1O/GqpOdI8ti0QjX0InX8E9aBsSwhOtdU+xvSDJSLGmIKSiqPQ9odB28gtGXGgbOpQh5Uz9ZajK0+BztfwB5UFSIC7IdRdhQQmFzlCY4YXuzVjjCkocddC6u8Ad83kI9nehgSJzBzqsHKi2okuPxI630g+4tGdTCU+QZcfhiaWFCs8Y4YlS0SMMQUnwc2QMc8hdbcilSdB2Y7JZ3p21XUBB6m5FAmsXYQoU+h4FuIfknokJwHeSrTt7kJHZcywZomIMaYoRBwktBNS+X2c+tuQutsgtBtILTgNEP4m0vAIEtm/2KF20/bHyPy26UH7I4UKx5gRweaIGGNKgoR2REI7Zt+wmHQFaQuxdW/TWJBQjBkpLBExxpQcjX0A8Q9AQlC2A+LUFjskn7suxN4l/SRbAXdiISMyZtizRMQYUzI0/gnaeCbE/tnj0SBa/h2k6gxEgkWLDUDKD0E7HsuwhSLlhxYsHmNGApsjYowpCZr4Al327eSIQ08xaLsdbTyjKHH1EtwGwgekedKB4JYQOaiAARkz/FkiYowpCdr6G9AmUt/2UOh4Eu2TpBSWiCA1c5HKU/xJtd3CUH44UncbIqFihWfMsGS3ZowxRaeq0P4QmQucuWj775DglwsVVkoiLlR+HyqOgfjHoHEIbIA4FUWNy5jhyhIRY0wJiCYrrWai4JVOsTCRMgh+qdhhGDPs2a0ZY0wJCOXQDE/AGV+QaIwxhWOJiDGm6EQEIgfTu7Lq6hJI5FuFCskYUyCWiBhjSoJUfA+celInIwLhg5HgpoUOyxgzxCwRMcaUBHHHIfX3Qdl2qz0RgYrvIzU/LU5gxpghZZNVjTElQwJrI/W3ofHPVlVWDW6DOOXFDs0YM0QsETHGlBwJrAOBdYodhjGmAOzWjDHGGGOKxhIRY4wxxhSNJSLGGGOMKRpLRIwxxhhTNJaIGGOMMaZoLBExxhhjTNFYImKMMcaYorFExBhjjDFFY4mIMcYYY4qmpCurqioATU1NRY7EGGOMMbnqum53XcczKelEpLm5GYCJEycWORJjjDHG5Ku5uZmampqM24jmkq4Uied5LFiwgKqqKkRkSM/V1NTExIkT+fzzz6murh7Sc40W9poOPntNB5e9noPPXtPBNxxfU1WlubmZNddcE8fJPAukpEdEHMdh7bXXLug5q6urh80Periw13Tw2Ws6uOz1HHz2mg6+4faaZhsJ6WKTVY0xxhhTNJaIGGOMMaZoLBFJCoVCnH/++YRCoWKHMmLYazr47DUdXPZ6Dj57TQffSH9NS3qyqjHGGGNGNhsRMcYYY0zRWCJijDHGmKKxRMQYY4wxRWOJiDHGGGOKxhKRLKLRKFtuuSUiwj/+8Y9ihzMsffrppxxzzDFMmjSJSCTC5MmTOf/88+ns7Cx2aMPKtddey3rrrUc4HGa77bbjjTfeKHZIw9bcuXPZZpttqKqqYty4cRxwwAF8+OGHxQ5rxPj5z3+OiHDyyScXO5Rhbf78+Rx++OE0NDQQiUTYfPPN+dvf/lbssAadJSJZnHHGGay55prFDmNY++CDD/A8jxtuuIF//etf/OpXv+L666/n7LPPLnZow8Z9993Hqaeeyvnnn89bb73FFltswd57783ixYuLHdqw9PLLL3PCCSfw+uuv89xzzxGLxdhrr71obW0tdmjD3l//+lduuOEGvvKVrxQ7lGFtxYoV7LTTTgSDQX7/+9/z3nvvcfnll1NXV1fs0AafmrSeeuop3WSTTfRf//qXAvr3v/+92CGNGL/4xS900qRJxQ5j2Nh22231hBNO6P46kUjommuuqXPnzi1iVCPH4sWLFdCXX3652KEMa83Nzbrhhhvqc889p7vttpuedNJJxQ5p2DrzzDN15513LnYYBWEjImksWrSI2bNnc8cdd1BeXl7scEacxsZG6uvrix3GsNDZ2cmbb77J9OnTux9zHIfp06fz2muvFTGykaOxsRHAficH6IQTTmC//fbr9btq+uexxx5j6tSpzJgxg3HjxrHVVltx0003FTusIWGJSAqqylFHHcXxxx/P1KlTix3OiDNv3jyuvvpqjjvuuGKHMiwsXbqURCLB+PHjez0+fvx4Fi5cWKSoRg7P8zj55JPZaaed+PKXv1zscIate++9l7feeou5c+cWO5QR4ZNPPuG6665jww035JlnnuH73/8+P/rRj/jtb39b7NAG3ahKRM466yxEJOOfDz74gKuvvprm5mbmzJlT7JBLWq6vZ0/z589nn332YcaMGcyePbtIkRuzygknnMC7777LvffeW+xQhq3PP/+ck046ibvuuotwOFzscEYEz/PYeuutufjii9lqq6049thjmT17Ntdff32xQxt0gWIHUEinnXYaRx11VMZt1l9/fV588UVee+21PnX9p06dymGHHTYiM9L+yPX17LJgwQJ23313dtxxR2688cYhjm7kGDNmDK7rsmjRol6PL1q0iAkTJhQpqpHhxBNP5IknnuCVV15h7bXXLnY4w9abb77J4sWL2XrrrbsfSyQSvPLKK1xzzTVEo1Fc1y1ihMPPGmuswWabbdbrsU033ZSHHnqoSBENnVGViIwdO5axY8dm3e6qq67iZz/7WffXCxYsYO+99+a+++5ju+22G8oQh5VcX0/wR0J23313pkyZwq233orjjKrBuAEpKytjypQpvPDCCxxwwAGA/2nphRde4MQTTyxucMOUqvLDH/6QRx55hJdeeolJkyYVO6RhbY899uCdd97p9disWbPYZJNNOPPMMy0J6Yeddtqpz5Lyjz76iHXXXbdIEQ2dUZWI5Gqdddbp9XVlZSUAkydPtk9N/TB//nymTZvGuuuuy2WXXcaSJUu6n7NP9Lk59dRTOfLII5k6dSrbbrstV1xxBa2trcyaNavYoQ1LJ5xwAnfffTePPvooVVVV3XNtampqiEQiRY5u+Kmqquozv6aiooKGhgabd9NPp5xyCjvuuCMXX3wxhxxyCG+88QY33njjiBxNtkTEDLnnnnuOefPmMW/evD6JnFrz55zMnDmTJUuWcN5557Fw4UK23HJLnn766T4TWE1urrvuOgCmTZvW6/Fbb7016+1GYwphm2224ZFHHmHOnDlceOGFTJo0iSuuuILDDjus2KENOlG7EhhjjDGmSOxGvTHGGGOKxhIRY4wxxhSNJSLGGGOMKRpLRIwxxhhTNJaIGGOMMaZoLBExxhhjTNFYImKMMcaYorFExBhjjDFFY4mIMcYYY4rGEhFjjDHGFI0lIsYYY4wpGktEjDHGGFM0/w8C22RiV+kiYgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ], + "source": [ + "predictions = model(inputs)\n", + "plt.scatter(inputs[:, 0], inputs[:, 1], c=predictions[:, 0] > 0.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "id": "-3G4XsSgwBHX", + "outputId": "b12e151a-d2d8-4a80-9fda-27c00375eb7d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 447 + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 27 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "x = np.linspace(-1, 4, 100)\n", + "y = - W[0] / W[1] * x + (0.5 - b) / W[1]\n", + "plt.plot(x, y, \"-r\")\n", + "plt.scatter(inputs[:, 0], inputs[:, 1], c=predictions[:, 0] > 0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "h0OGanNFwBHX" + }, + "source": [ + "## Anatomy of a neural network: Understanding core Keras APIs" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "URHdaTT4wBHX" + }, + "source": [ + "### Layers: The building blocks of deep learning" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "C-ApmGZ8wBHX" + }, + "source": [ + "#### The base Layer class in Keras" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OSMxR_xwwBHX" + }, + "source": [ + "**A `Dense` layer implemented as a `Layer` subclass**" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "id": "harIw5yOwBHX" + }, + "outputs": [], + "source": [ + "from tensorflow import keras\n", + "\n", + "class SimpleDense(keras.layers.Layer):\n", + "\n", + " def __init__(self, units, activation=None):\n", + " super().__init__()\n", + " self.units = units\n", + " self.activation = activation\n", + "\n", + " def build(self, input_shape):\n", + " input_dim = input_shape[-1]\n", + " self.W = self.add_weight(shape=(input_dim, self.units),\n", + " initializer=\"random_normal\")\n", + " self.b = self.add_weight(shape=(self.units,),\n", + " initializer=\"zeros\")\n", + "\n", + " def call(self, inputs):\n", + " y = tf.matmul(inputs, self.W) + self.b\n", + " if self.activation is not None:\n", + " y = self.activation(y)\n", + " return y" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "id": "xFY2BkBLwBHX", + "outputId": "8c7e0aea-8c82-4750-b459-c79da2611254", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(2, 32)\n" + ] + } + ], + "source": [ + "my_dense = SimpleDense(units=32, activation=tf.nn.relu)\n", + "input_tensor = tf.ones(shape=(2, 784))\n", + "output_tensor = my_dense(input_tensor)\n", + "print(output_tensor.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Dg484xC0wBHX" + }, + "source": [ + "#### Automatic shape inference: Building layers on the fly" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "id": "HIzE596qwBHX" + }, + "outputs": [], + "source": [ + "from tensorflow.keras import layers\n", + "layer = layers.Dense(32, activation=\"relu\")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "id": "ioAVoLS-wBHX" + }, + "outputs": [], + "source": [ + "from tensorflow.keras import models\n", + "from tensorflow.keras import layers\n", + "model = models.Sequential([\n", + " layers.Dense(32, activation=\"relu\"),\n", + " layers.Dense(32)\n", + "])" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "id": "hrYsUZa_wBHY" + }, + "outputs": [], + "source": [ + "model = keras.Sequential([\n", + " SimpleDense(32, activation=\"relu\"),\n", + " SimpleDense(64, activation=\"relu\"),\n", + " SimpleDense(32, activation=\"relu\"),\n", + " SimpleDense(10, activation=\"softmax\")\n", + "])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YAdXwsYEwBHY" + }, + "source": [ + "### From layers to models" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OAmMxkCWwBHY" + }, + "source": [ + "### The \"compile\" step: Configuring the learning process" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "id": "gVuf_u3IwBHY" + }, + "outputs": [], + "source": [ + "model = keras.Sequential([keras.layers.Dense(1)])\n", + "model.compile(optimizer=\"rmsprop\",\n", + " loss=\"mean_squared_error\",\n", + " metrics=[\"accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "id": "BF8TtNFZwBHY" + }, + "outputs": [], + "source": [ + "model.compile(optimizer=keras.optimizers.RMSprop(),\n", + " loss=keras.losses.MeanSquaredError(),\n", + " metrics=[keras.metrics.BinaryAccuracy()])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NTX-AJeXwBHY" + }, + "source": [ + "### Picking a loss function" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "iS7LJRHiwBHY" + }, + "source": [ + "### Understanding the fit() method" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WPKXTX_kwBHY" + }, + "source": [ + "**Calling `fit()` with NumPy data**" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "id": "4uZrAAcEwBHY", + "outputId": "4476bca2-1bf0-4a25-a078-0a2f0d0a1723", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/5\n", + "\u001b[1m16/16\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - binary_accuracy: 0.6284 - loss: 2.1244 \n", + "Epoch 2/5\n", + "\u001b[1m16/16\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - binary_accuracy: 0.6501 - loss: 1.9878 \n", + "Epoch 3/5\n", + "\u001b[1m16/16\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 1ms/step - binary_accuracy: 0.6444 - loss: 1.7324 \n", + "Epoch 4/5\n", + "\u001b[1m16/16\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - binary_accuracy: 0.6709 - loss: 1.6266 \n", + "Epoch 5/5\n", + "\u001b[1m16/16\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 9ms/step - binary_accuracy: 0.6703 - loss: 1.4524\n" + ] + } + ], + "source": [ + "history = model.fit(\n", + " inputs,\n", + " targets,\n", + " epochs=5,\n", + " batch_size=128\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "id": "eh0MTIqMwBHY", + "outputId": "3db86214-4df7-4d1d-8cf5-01a41bf74031", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'binary_accuracy': [0.637499988079071,\n", + " 0.6470000147819519,\n", + " 0.6570000052452087,\n", + " 0.6690000295639038,\n", + " 0.6819999814033508],\n", + " 'loss': [2.1364076137542725,\n", + " 1.9216158390045166,\n", + " 1.7454293966293335,\n", + " 1.5828666687011719,\n", + " 1.4313167333602905]}" + ] + }, + "metadata": {}, + "execution_count": 36 + } + ], + "source": [ + "history.history" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gtyErJYtwBHY" + }, + "source": [ + "### Monitoring loss and metrics on validation data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "wcGylpspwBHY" + }, + "source": [ + "**Using the `validation_data` argument**" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "id": "BAjREuiRwBHY", + "outputId": "934be183-0e7b-4eea-81bf-1fe0eed7353c", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Epoch 1/5\n", + "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - binary_accuracy: 0.9030 - loss: 0.8230 - val_binary_accuracy: 0.8317 - val_loss: 0.2173\n", + "Epoch 2/5\n", + "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 4ms/step - binary_accuracy: 0.9618 - loss: 0.0716 - val_binary_accuracy: 1.0000 - val_loss: 0.0237\n", + "Epoch 3/5\n", + "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 4ms/step - binary_accuracy: 0.9678 - loss: 0.0664 - val_binary_accuracy: 0.8600 - val_loss: 0.1815\n", + "Epoch 4/5\n", + "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step - binary_accuracy: 0.9499 - loss: 0.0777 - val_binary_accuracy: 0.9133 - val_loss: 0.1482\n", + "Epoch 5/5\n", + "\u001b[1m88/88\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - binary_accuracy: 0.9672 - loss: 0.0633 - val_binary_accuracy: 0.9967 - val_loss: 0.0329\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 37 + } + ], + "source": [ + "model = keras.Sequential([keras.layers.Dense(1)])\n", + "model.compile(optimizer=keras.optimizers.RMSprop(learning_rate=0.1),\n", + " loss=keras.losses.MeanSquaredError(),\n", + " metrics=[keras.metrics.BinaryAccuracy()])\n", + "\n", + "indices_permutation = np.random.permutation(len(inputs))\n", + "shuffled_inputs = inputs[indices_permutation]\n", + "shuffled_targets = targets[indices_permutation]\n", + "\n", + "num_validation_samples = int(0.3 * len(inputs))\n", + "val_inputs = shuffled_inputs[:num_validation_samples]\n", + "val_targets = shuffled_targets[:num_validation_samples]\n", + "training_inputs = shuffled_inputs[num_validation_samples:]\n", + "training_targets = shuffled_targets[num_validation_samples:]\n", + "model.fit(\n", + " training_inputs,\n", + " training_targets,\n", + " epochs=5,\n", + " batch_size=16,\n", + " validation_data=(val_inputs, val_targets)\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "eQ6VBH-dwBHY" + }, + "source": [ + "### Inference: Using a model after training" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "id": "leEeP_dBwBHY", + "outputId": "2cb83c28-0c20-47a6-aa04-48e1341fc465", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[1m5/5\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 5ms/step \n", + "[[ 1.1619768 ]\n", + " [-0.10096896]\n", + " [ 0.25041705]\n", + " [ 0.37824786]\n", + " [ 0.12452811]\n", + " [ 0.37512678]\n", + " [ 1.1607213 ]\n", + " [ 0.25273296]\n", + " [ 1.1913843 ]\n", + " [-0.0799033 ]]\n" + ] + } + ], + "source": [ + "predictions = model.predict(val_inputs, batch_size=128)\n", + "print(predictions[:10])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vPTRLhXIwBHY" + }, + "source": [ + "## Summary" + ] + } + ], + "metadata": { + "colab": { + "name": "chapter03_introduction-to-keras-and-tf.i", + "provenance": [], + "toc_visible": true, + "include_colab_link": true + }, + "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.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } \ No newline at end of file From d5a02b0d7c1d9df8fa4d0af3c74004f5fab0270e Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Sat, 30 Nov 2024 15:47:36 +0530 Subject: [PATCH 2/6] Created using Colab --- chapter03_introduction-to-keras-and-tf.ipynb | 115 +++++++++---------- 1 file changed, 52 insertions(+), 63 deletions(-) diff --git a/chapter03_introduction-to-keras-and-tf.ipynb b/chapter03_introduction-to-keras-and-tf.ipynb index 680f6ff3bc..55838004dc 100644 --- a/chapter03_introduction-to-keras-and-tf.ipynb +++ b/chapter03_introduction-to-keras-and-tf.ipynb @@ -1,15 +1,5 @@ { "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, { "cell_type": "markdown", "metadata": { @@ -144,11 +134,11 @@ "cell_type": "code", "execution_count": 4, "metadata": { - "id": "756t9LB7wBHO", - "outputId": "4a067a52-fa28-4494-850a-6973d274a2a3", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "756t9LB7wBHO", + "outputId": "4a067a52-fa28-4494-850a-6973d274a2a3" }, "outputs": [ { @@ -171,11 +161,11 @@ "cell_type": "code", "execution_count": 5, "metadata": { - "id": "ODUCQ2iHwBHO", - "outputId": "7a3fc492-7132-48f8-e444-f45d40993d65", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "ODUCQ2iHwBHO", + "outputId": "7a3fc492-7132-48f8-e444-f45d40993d65" }, "outputs": [ { @@ -206,11 +196,11 @@ "cell_type": "code", "execution_count": 6, "metadata": { - "id": "WsOBLC_JwBHP", - "outputId": "c199b2f7-9f87-46f4-908a-0bde455ffdac", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "WsOBLC_JwBHP", + "outputId": "c199b2f7-9f87-46f4-908a-0bde455ffdac" }, "outputs": [ { @@ -233,11 +223,11 @@ "cell_type": "code", "execution_count": 7, "metadata": { - "id": "qwAXKMeVwBHP", - "outputId": "b4088738-405a-4142-a140-5bd2b806f3d3", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "qwAXKMeVwBHP", + "outputId": "b4088738-405a-4142-a140-5bd2b806f3d3" }, "outputs": [ { @@ -291,11 +281,11 @@ "cell_type": "code", "execution_count": 9, "metadata": { - "id": "PMkmPwW6wBHP", - "outputId": "f9231523-6d1a-4ffc-eab8-da44f7e567e4", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "PMkmPwW6wBHP", + "outputId": "f9231523-6d1a-4ffc-eab8-da44f7e567e4" }, "outputs": [ { @@ -327,11 +317,11 @@ "cell_type": "code", "execution_count": 10, "metadata": { - "id": "uMVhF7WFwBHP", - "outputId": "ff51b24c-d82f-4161-b665-f57c16eee7a0", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "uMVhF7WFwBHP", + "outputId": "ff51b24c-d82f-4161-b665-f57c16eee7a0" }, "outputs": [ { @@ -365,11 +355,11 @@ "cell_type": "code", "execution_count": 11, "metadata": { - "id": "tHRZHVmXwBHP", - "outputId": "d96d5fd4-e4fd-433c-ffc0-200240a232f7", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "tHRZHVmXwBHP", + "outputId": "d96d5fd4-e4fd-433c-ffc0-200240a232f7" }, "outputs": [ { @@ -403,11 +393,11 @@ "cell_type": "code", "execution_count": 12, "metadata": { - "id": "UlohoM4GwBHQ", - "outputId": "9ba9b544-ce86-4a45-b69a-65838279839f", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "UlohoM4GwBHQ", + "outputId": "9ba9b544-ce86-4a45-b69a-65838279839f" }, "outputs": [ { @@ -634,12 +624,12 @@ "cell_type": "code", "execution_count": 20, "metadata": { - "id": "E-KPfaeQwBHW", - "outputId": "072fdd09-0ef2-46ce-bbde-3e39b498e2e5", "colab": { "base_uri": "https://localhost:8080/", "height": 430 - } + }, + "id": "E-KPfaeQwBHW", + "outputId": "072fdd09-0ef2-46ce-bbde-3e39b498e2e5" }, "outputs": [ { @@ -767,11 +757,11 @@ "cell_type": "code", "execution_count": 25, "metadata": { - "id": "dom46Jx0wBHX", - "outputId": "d886477e-1428-47de-8f95-4ed6c4ba7979", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "dom46Jx0wBHX", + "outputId": "d886477e-1428-47de-8f95-4ed6c4ba7979" }, "outputs": [ { @@ -831,12 +821,12 @@ "cell_type": "code", "execution_count": 26, "metadata": { - "id": "SzvC3jNEwBHX", - "outputId": "e8392473-4c43-4c37-d33e-33ff15e90c33", "colab": { "base_uri": "https://localhost:8080/", "height": 430 - } + }, + "id": "SzvC3jNEwBHX", + "outputId": "e8392473-4c43-4c37-d33e-33ff15e90c33" }, "outputs": [ { @@ -860,12 +850,12 @@ "cell_type": "code", "execution_count": 27, "metadata": { - "id": "-3G4XsSgwBHX", - "outputId": "b12e151a-d2d8-4a80-9fda-27c00375eb7d", "colab": { "base_uri": "https://localhost:8080/", "height": 447 - } + }, + "id": "-3G4XsSgwBHX", + "outputId": "b12e151a-d2d8-4a80-9fda-27c00375eb7d" }, "outputs": [ { @@ -967,11 +957,11 @@ "cell_type": "code", "execution_count": 29, "metadata": { - "id": "xFY2BkBLwBHX", - "outputId": "8c7e0aea-8c82-4750-b459-c79da2611254", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "xFY2BkBLwBHX", + "outputId": "8c7e0aea-8c82-4750-b459-c79da2611254" }, "outputs": [ { @@ -1118,11 +1108,11 @@ "cell_type": "code", "execution_count": 35, "metadata": { - "id": "4uZrAAcEwBHY", - "outputId": "4476bca2-1bf0-4a25-a078-0a2f0d0a1723", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "4uZrAAcEwBHY", + "outputId": "4476bca2-1bf0-4a25-a078-0a2f0d0a1723" }, "outputs": [ { @@ -1155,11 +1145,11 @@ "cell_type": "code", "execution_count": 36, "metadata": { - "id": "eh0MTIqMwBHY", - "outputId": "3db86214-4df7-4d1d-8cf5-01a41bf74031", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "eh0MTIqMwBHY", + "outputId": "3db86214-4df7-4d1d-8cf5-01a41bf74031" }, "outputs": [ { @@ -1208,11 +1198,11 @@ "cell_type": "code", "execution_count": 37, "metadata": { - "id": "BAjREuiRwBHY", - "outputId": "934be183-0e7b-4eea-81bf-1fe0eed7353c", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "BAjREuiRwBHY", + "outputId": "934be183-0e7b-4eea-81bf-1fe0eed7353c" }, "outputs": [ { @@ -1279,11 +1269,11 @@ "cell_type": "code", "execution_count": 38, "metadata": { - "id": "leEeP_dBwBHY", - "outputId": "2cb83c28-0c20-47a6-aa04-48e1341fc465", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "leEeP_dBwBHY", + "outputId": "2cb83c28-0c20-47a6-aa04-48e1341fc465" }, "outputs": [ { @@ -1323,8 +1313,7 @@ "colab": { "name": "chapter03_introduction-to-keras-and-tf.i", "provenance": [], - "toc_visible": true, - "include_colab_link": true + "toc_visible": true }, "kernelspec": { "display_name": "Python 3", From fc23920351c2e1ca336a45a94ef7cd621bc73f72 Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Sun, 1 Dec 2024 01:44:35 +0530 Subject: [PATCH 3/6] tenserflow-transformer tenserflow-transformer --- tensorflow-transformer-0-790.ipynb | 1074 ++++++++++++++++++++++++++++ 1 file changed, 1074 insertions(+) create mode 100644 tensorflow-transformer-0-790.ipynb diff --git a/tensorflow-transformer-0-790.ipynb b/tensorflow-transformer-0-790.ipynb new file mode 100644 index 0000000000..64f5b1eb4c --- /dev/null +++ b/tensorflow-transformer-0-790.ipynb @@ -0,0 +1,1074 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a1ebb21a", + "metadata": { + "papermill": { + "duration": 0.005975, + "end_time": "2022-05-31T19:43:06.656899", + "exception": false, + "start_time": "2022-05-31T19:43:06.650924", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# TensorFlow Transformer Starter - LB 0.790\n", + "In this notebook we present starter code for a transformer model. Using a transformer requires 3D data (whereas Kaggle provides 2D data as a CSV). The shape of the data is `(number_of_customers, 13, 188)` which is `(batch size, sequence length, feature length)`. Each customer is a time series with 13 credit card statements. And each statement has 188 features. The data was created and saved to NumPy files in my previous notebook [here][1] with data discussion [here][6] and [here][7]. EDA displaying customer time series is [here][2].\n", + "\n", + "Keras provides tutorials on transformers [here][3] and [here][4]. This simple transformer was used in Kaggle's Ventilator Comp and achieved solo model gold medal [here][5]\n", + "\n", + "# TensorFlow GRU (RNN) Starter - LB 0.790\n", + "If you want to experiment with RNN, (i.e LSTM or GRU), check out my TensorFlow GRU Starter [here][1] with discussion [here][8]. The data used in this notebook was created in my GRU starter notebook. Both RNNs and Transformers require 3D data.\n", + "\n", + "[1]: https://www.kaggle.com/code/cdeotte/tensorflow-gru-starter-0-790\n", + "[2]: https://www.kaggle.com/cdeotte/time-series-eda\n", + "[3]: https://keras.io/examples/nlp/text_classification_with_transformer/\n", + "[4]: https://www.tensorflow.org/text/tutorials/transformer\n", + "[5]: https://www.kaggle.com/code/cdeotte/tensorflow-transformer-0-112\n", + "[6]: https://www.kaggle.com/competitions/amex-default-prediction/discussion/327828\n", + "[7]: https://www.kaggle.com/competitions/amex-default-prediction/discussion/328054\n", + "[8]: https://www.kaggle.com/competitions/amex-default-prediction/discussion/327761" + ] + }, + { + "cell_type": "markdown", + "id": "ea9b1ed6", + "metadata": { + "papermill": { + "duration": 0.004149, + "end_time": "2022-05-31T19:43:06.665817", + "exception": false, + "start_time": "2022-05-31T19:43:06.661668", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Load Libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f4c45db6", + "metadata": { + "_kg_hide-input": false, + "execution": { + "iopub.execute_input": "2022-05-31T19:43:06.676875Z", + "iopub.status.busy": "2022-05-31T19:43:06.676091Z", + "iopub.status.idle": "2022-05-31T19:43:10.806908Z", + "shell.execute_reply": "2022-05-31T19:43:10.806076Z" + }, + "papermill": { + "duration": 4.139132, + "end_time": "2022-05-31T19:43:10.809312", + "exception": false, + "start_time": "2022-05-31T19:43:06.670180", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import cupy, cudf # GPU LIBRARIES\n", + "import numpy as np, pandas as pd # CPU LIBRARIES\n", + "import matplotlib.pyplot as plt, gc, os\n", + "\n", + "PATH_TO_DATA = '../input/amex-data-for-transformers-and-rnns/data/'\n", + "\n", + "# IF YOU WISH TO INFER A MODEL YOU TRAINED OFFLINE\n", + "# THEN SET TO FALSE AND PROVIDE KAGGLE DATASET URL\n", + "TRAIN_MODEL = True\n", + "PATH_TO_MODEL = './model/'\n", + "\n", + "INFER_TEST = True" + ] + }, + { + "cell_type": "markdown", + "id": "609e8bd8", + "metadata": { + "papermill": { + "duration": 0.004205, + "end_time": "2022-05-31T19:43:10.818176", + "exception": false, + "start_time": "2022-05-31T19:43:10.813971", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Build Transformer Model" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b7069563", + "metadata": { + "_kg_hide-input": true, + "execution": { + "iopub.execute_input": "2022-05-31T19:43:10.828602Z", + "iopub.status.busy": "2022-05-31T19:43:10.827838Z", + "iopub.status.idle": "2022-05-31T19:43:16.118831Z", + "shell.execute_reply": "2022-05-31T19:43:16.117853Z" + }, + "papermill": { + "duration": 5.298549, + "end_time": "2022-05-31T19:43:16.121219", + "exception": false, + "start_time": "2022-05-31T19:43:10.822670", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using TensorFlow version 2.6.4\n" + ] + } + ], + "source": [ + "os.environ[\"TF_GPU_ALLOCATOR\"]=\"cuda_malloc_async\" # TF will not use all memory\n", + "import tensorflow as tf\n", + "import tensorflow.keras.backend as K\n", + "from tensorflow import keras\n", + "from tensorflow.keras import layers\n", + "\n", + "print('Using TensorFlow version',tf.__version__)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "300a8951", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T19:43:16.131513Z", + "iopub.status.busy": "2022-05-31T19:43:16.130947Z", + "iopub.status.idle": "2022-05-31T19:43:16.139897Z", + "shell.execute_reply": "2022-05-31T19:43:16.139205Z" + }, + "papermill": { + "duration": 0.015763, + "end_time": "2022-05-31T19:43:16.141560", + "exception": false, + "start_time": "2022-05-31T19:43:16.125797", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "class TransformerBlock(layers.Layer):\n", + " def __init__(self, embed_dim, feat_dim, num_heads, ff_dim, rate=0.1):\n", + " super(TransformerBlock, self).__init__()\n", + " self.att = layers.MultiHeadAttention(num_heads=num_heads, key_dim=embed_dim)\n", + " self.ffn = keras.Sequential(\n", + " [layers.Dense(ff_dim, activation=\"gelu\"), layers.Dense(feat_dim),]\n", + " )\n", + " self.layernorm1 = layers.LayerNormalization(epsilon=1e-6)\n", + " self.layernorm2 = layers.LayerNormalization(epsilon=1e-6)\n", + " self.dropout1 = layers.Dropout(rate)\n", + " self.dropout2 = layers.Dropout(rate)\n", + "\n", + " def call(self, inputs, training):\n", + " attn_output = self.att(inputs, inputs)\n", + " attn_output = self.dropout1(attn_output, training=training)\n", + " out1 = self.layernorm1(inputs + attn_output)\n", + " ffn_output = self.ffn(out1)\n", + " ffn_output = self.dropout2(ffn_output, training=training)\n", + " return self.layernorm2(out1 + ffn_output)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "17e2e3e3", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T19:43:16.151239Z", + "iopub.status.busy": "2022-05-31T19:43:16.150977Z", + "iopub.status.idle": "2022-05-31T19:43:16.160013Z", + "shell.execute_reply": "2022-05-31T19:43:16.159195Z" + }, + "papermill": { + "duration": 0.015904, + "end_time": "2022-05-31T19:43:16.161620", + "exception": false, + "start_time": "2022-05-31T19:43:16.145716", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "feat_dim = 188\n", + "embed_dim = 64 # Embedding size for attention\n", + "num_heads = 4 # Number of attention heads\n", + "ff_dim = 128 # Hidden layer size in feed forward network inside transformer\n", + "dropout_rate = 0.3\n", + "num_blocks = 2\n", + "\n", + "def build_model():\n", + " \n", + " # INPUT EMBEDDING LAYER\n", + " inp = layers.Input(shape=(13,188))\n", + " embeddings = []\n", + " for k in range(11):\n", + " emb = layers.Embedding(10,4)\n", + " embeddings.append( emb(inp[:,:,k]) )\n", + " x = layers.Concatenate()([inp[:,:,11:]]+embeddings)\n", + " x = layers.Dense(feat_dim)(x)\n", + " \n", + " # TRANSFORMER BLOCKS\n", + " for k in range(num_blocks):\n", + " x_old = x\n", + " transformer_block = TransformerBlock(embed_dim, feat_dim, num_heads, ff_dim, dropout_rate)\n", + " x = transformer_block(x)\n", + " x = 0.9*x + 0.1*x_old # SKIP CONNECTION\n", + " \n", + " # CLASSIFICATION HEAD\n", + " x = layers.Dense(64, activation=\"relu\")(x[:,-1,:])\n", + " x = layers.Dense(32, activation=\"relu\")(x)\n", + " outputs = layers.Dense(1, activation=\"sigmoid\")(x)\n", + " \n", + " model = keras.Model(inputs=inp, outputs=outputs)\n", + " opt = tf.keras.optimizers.Adam(learning_rate=0.001)\n", + " loss = tf.keras.losses.BinaryCrossentropy()\n", + " model.compile(loss=loss, optimizer = opt)\n", + " \n", + " return model" + ] + }, + { + "cell_type": "markdown", + "id": "f2ad38f0", + "metadata": { + "papermill": { + "duration": 0.003956, + "end_time": "2022-05-31T19:43:16.169840", + "exception": false, + "start_time": "2022-05-31T19:43:16.165884", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Define Learning Schedule" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c69d0bb9", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T19:43:16.179444Z", + "iopub.status.busy": "2022-05-31T19:43:16.178949Z", + "iopub.status.idle": "2022-05-31T19:43:16.395833Z", + "shell.execute_reply": "2022-05-31T19:43:16.395074Z" + }, + "papermill": { + "duration": 0.22375, + "end_time": "2022-05-31T19:43:16.397734", + "exception": false, + "start_time": "2022-05-31T19:43:16.173984", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate schedule: 0.001 to 0.001 to 1e-06\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import math\n", + "LR_START = 1e-6\n", + "LR_MAX = 1e-3\n", + "LR_MIN = 1e-6\n", + "LR_RAMPUP_EPOCHS = 0\n", + "LR_SUSTAIN_EPOCHS = 0\n", + "EPOCHS = 8\n", + "\n", + "def lrfn(epoch):\n", + " if epoch < LR_RAMPUP_EPOCHS:\n", + " lr = (LR_MAX - LR_START) / LR_RAMPUP_EPOCHS * epoch + LR_START\n", + " elif epoch < LR_RAMPUP_EPOCHS + LR_SUSTAIN_EPOCHS:\n", + " lr = LR_MAX\n", + " else:\n", + " decay_total_epochs = EPOCHS - LR_RAMPUP_EPOCHS - LR_SUSTAIN_EPOCHS - 1\n", + " decay_epoch_index = epoch - LR_RAMPUP_EPOCHS - LR_SUSTAIN_EPOCHS\n", + " phase = math.pi * decay_epoch_index / decay_total_epochs\n", + " cosine_decay = 0.5 * (1 + math.cos(phase))\n", + " lr = (LR_MAX - LR_MIN) * cosine_decay + LR_MIN\n", + " return lr\n", + "\n", + "rng = [i for i in range(EPOCHS)]\n", + "lr_y = [lrfn(x) for x in rng]\n", + "plt.figure(figsize=(10, 4))\n", + "plt.plot(rng, lr_y, '-o')\n", + "plt.xlabel('Epoch'); plt.ylabel('LR')\n", + "print(\"Learning rate schedule: {:.3g} to {:.3g} to {:.3g}\". \\\n", + " format(lr_y[0], max(lr_y), lr_y[-1]))\n", + "LR = tf.keras.callbacks.LearningRateScheduler(lrfn, verbose = True)" + ] + }, + { + "cell_type": "markdown", + "id": "0e6e6a18", + "metadata": { + "papermill": { + "duration": 0.004784, + "end_time": "2022-05-31T19:43:16.407295", + "exception": false, + "start_time": "2022-05-31T19:43:16.402511", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Define Competition Metric" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "cfee3745", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T19:43:16.418129Z", + "iopub.status.busy": "2022-05-31T19:43:16.417837Z", + "iopub.status.idle": "2022-05-31T19:43:16.426657Z", + "shell.execute_reply": "2022-05-31T19:43:16.425941Z" + }, + "papermill": { + "duration": 0.016072, + "end_time": "2022-05-31T19:43:16.428218", + "exception": false, + "start_time": "2022-05-31T19:43:16.412146", + "status": "completed" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# COMPETITION METRIC FROM Konstantin Yakovlev\n", + "# https://www.kaggle.com/kyakovlev\n", + "# https://www.kaggle.com/competitions/amex-default-prediction/discussion/327534\n", + "def amex_metric_mod(y_true, y_pred):\n", + "\n", + " labels = np.transpose(np.array([y_true, y_pred]))\n", + " labels = labels[labels[:, 1].argsort()[::-1]]\n", + " weights = np.where(labels[:,0]==0, 20, 1)\n", + " cut_vals = labels[np.cumsum(weights) <= int(0.04 * np.sum(weights))]\n", + " top_four = np.sum(cut_vals[:,0]) / np.sum(labels[:,0])\n", + "\n", + " gini = [0,0]\n", + " for i in [1,0]:\n", + " labels = np.transpose(np.array([y_true, y_pred]))\n", + " labels = labels[labels[:, i].argsort()[::-1]]\n", + " weight = np.where(labels[:,0]==0, 20, 1)\n", + " weight_random = np.cumsum(weight / np.sum(weight))\n", + " total_pos = np.sum(labels[:, 0] * weight)\n", + " cum_pos_found = np.cumsum(labels[:, 0] * weight)\n", + " lorentz = cum_pos_found / total_pos\n", + " gini[i] = np.sum((lorentz - weight_random) * weight)\n", + "\n", + " return 0.5 * (gini[1]/gini[0] + top_four)" + ] + }, + { + "cell_type": "markdown", + "id": "7ed0b550", + "metadata": { + "papermill": { + "duration": 0.004335, + "end_time": "2022-05-31T19:43:16.437166", + "exception": false, + "start_time": "2022-05-31T19:43:16.432831", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Train Model" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "3d14cc64", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T19:43:16.447693Z", + "iopub.status.busy": "2022-05-31T19:43:16.447254Z", + "iopub.status.idle": "2022-05-31T20:02:54.163518Z", + "shell.execute_reply": "2022-05-31T20:02:54.162307Z" + }, + "papermill": { + "duration": 1177.729491, + "end_time": "2022-05-31T20:02:54.171178", + "exception": false, + "start_time": "2022-05-31T19:43:16.441687", + "status": "completed" + }, + "scrolled": true, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "#########################\n", + "### Fold 1 with valid files [1, 2]\n", + "### Training data shapes (367131, 13, 188) (367131,)\n", + "### Validation data shapes (91782, 13, 188) (91782,)\n", + "#########################\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-05-31 19:43:57.510601: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:43:57.515530: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:43:57.516260: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:43:57.517675: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2022-05-31 19:43:57.517966: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:43:57.518759: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:43:57.519452: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:44:01.649306: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:44:01.650153: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:44:01.650857: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", + "2022-05-31 19:44:01.652127: E tensorflow/core/common_runtime/gpu/gpu_process_state.cc:69] TF_GPU_ALLOCATOR=cuda_malloc_async environment found, but TensorFlow was not compiled with CUDA 11.2+.\n", + "2022-05-31 19:44:01.652184: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 15187 MB memory: -> device: 0, name: Tesla P100-PCIE-16GB, pci bus id: 0000:00:04.0, compute capability: 6.0\n", + "2022-05-31 19:44:02.507926: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 3589072656 exceeds 10% of free system memory.\n", + "2022-05-31 19:44:06.910457: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 3589072656 exceeds 10% of free system memory.\n", + "2022-05-31 19:44:09.594573: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/8\n", + "\n", + "Epoch 00001: LearningRateScheduler setting learning rate to 0.001.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-05-31 19:44:32.022108: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 897260832 exceeds 10% of free system memory.\n", + "2022-05-31 19:44:32.977427: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 897260832 exceeds 10% of free system memory.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "718/718 - 26s - loss: 0.2399 - val_loss: 0.2441\n", + "Epoch 2/8\n", + "\n", + "Epoch 00002: LearningRateScheduler setting learning rate to 0.0009505339495172585.\n", + "718/718 - 21s - loss: 0.2301 - val_loss: 0.2325\n", + "Epoch 3/8\n", + "\n", + "Epoch 00003: LearningRateScheduler setting learning rate to 0.0008119331560284375.\n", + "718/718 - 21s - loss: 0.2271 - val_loss: 0.2527\n", + "Epoch 4/8\n", + "\n", + "Epoch 00004: LearningRateScheduler setting learning rate to 0.0006116492065111791.\n", + "718/718 - 20s - loss: 0.2242 - val_loss: 0.2319\n", + "Epoch 5/8\n", + "\n", + "Epoch 00005: LearningRateScheduler setting learning rate to 0.00038935079348882104.\n", + "718/718 - 20s - loss: 0.2204 - val_loss: 0.2267\n", + "Epoch 6/8\n", + "\n", + "Epoch 00006: LearningRateScheduler setting learning rate to 0.00018906684397156263.\n", + "718/718 - 20s - loss: 0.2166 - val_loss: 0.2246\n", + "Epoch 7/8\n", + "\n", + "Epoch 00007: LearningRateScheduler setting learning rate to 5.046605048274169e-05.\n", + "718/718 - 20s - loss: 0.2136 - val_loss: 0.2248\n", + "Epoch 8/8\n", + "\n", + "Epoch 00008: LearningRateScheduler setting learning rate to 1e-06.\n", + "718/718 - 20s - loss: 0.2125 - val_loss: 0.2248\n", + "Inferring validation data...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-05-31 19:47:34.626444: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 897260832 exceeds 10% of free system memory.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "180/180 - 2s\n", + "\n", + "Fold 1 CV= 0.7866577508160894\n", + "\n", + "#########################\n", + "### Fold 2 with valid files [3, 4]\n", + "### Training data shapes (367131, 13, 188) (367131,)\n", + "### Validation data shapes (91782, 13, 188) (91782,)\n", + "#########################\n", + "Epoch 1/8\n", + "\n", + "Epoch 00001: LearningRateScheduler setting learning rate to 0.001.\n", + "718/718 - 26s - loss: 0.2404 - val_loss: 0.2416\n", + "Epoch 2/8\n", + "\n", + "Epoch 00002: LearningRateScheduler setting learning rate to 0.0009505339495172585.\n", + "718/718 - 20s - loss: 0.2301 - val_loss: 0.2328\n", + "Epoch 3/8\n", + "\n", + "Epoch 00003: LearningRateScheduler setting learning rate to 0.0008119331560284375.\n", + "718/718 - 20s - loss: 0.2275 - val_loss: 0.2335\n", + "Epoch 4/8\n", + "\n", + "Epoch 00004: LearningRateScheduler setting learning rate to 0.0006116492065111791.\n", + "718/718 - 21s - loss: 0.2241 - val_loss: 0.2285\n", + "Epoch 5/8\n", + "\n", + "Epoch 00005: LearningRateScheduler setting learning rate to 0.00038935079348882104.\n", + "718/718 - 20s - loss: 0.2204 - val_loss: 0.2273\n", + "Epoch 6/8\n", + "\n", + "Epoch 00006: LearningRateScheduler setting learning rate to 0.00018906684397156263.\n", + "718/718 - 20s - loss: 0.2168 - val_loss: 0.2246\n", + "Epoch 7/8\n", + "\n", + "Epoch 00007: LearningRateScheduler setting learning rate to 5.046605048274169e-05.\n", + "718/718 - 20s - loss: 0.2139 - val_loss: 0.2248\n", + "Epoch 8/8\n", + "\n", + "Epoch 00008: LearningRateScheduler setting learning rate to 1e-06.\n", + "718/718 - 20s - loss: 0.2124 - val_loss: 0.2248\n", + "Inferring validation data...\n", + "180/180 - 2s\n", + "\n", + "Fold 2 CV= 0.7817020698764019\n", + "\n", + "#########################\n", + "### Fold 3 with valid files [5, 6]\n", + "### Training data shapes (367131, 13, 188) (367131,)\n", + "### Validation data shapes (91782, 13, 188) (91782,)\n", + "#########################\n", + "Epoch 1/8\n", + "\n", + "Epoch 00001: LearningRateScheduler setting learning rate to 0.001.\n", + "718/718 - 25s - loss: 0.2397 - val_loss: 0.2443\n", + "Epoch 2/8\n", + "\n", + "Epoch 00002: LearningRateScheduler setting learning rate to 0.0009505339495172585.\n", + "718/718 - 21s - loss: 0.2309 - val_loss: 0.2303\n", + "Epoch 3/8\n", + "\n", + "Epoch 00003: LearningRateScheduler setting learning rate to 0.0008119331560284375.\n", + "718/718 - 20s - loss: 0.2279 - val_loss: 0.2283\n", + "Epoch 4/8\n", + "\n", + "Epoch 00004: LearningRateScheduler setting learning rate to 0.0006116492065111791.\n", + "718/718 - 20s - loss: 0.2244 - val_loss: 0.2252\n", + "Epoch 5/8\n", + "\n", + "Epoch 00005: LearningRateScheduler setting learning rate to 0.00038935079348882104.\n", + "718/718 - 20s - loss: 0.2209 - val_loss: 0.2265\n", + "Epoch 6/8\n", + "\n", + "Epoch 00006: LearningRateScheduler setting learning rate to 0.00018906684397156263.\n", + "718/718 - 20s - loss: 0.2172 - val_loss: 0.2233\n", + "Epoch 7/8\n", + "\n", + "Epoch 00007: LearningRateScheduler setting learning rate to 5.046605048274169e-05.\n", + "718/718 - 20s - loss: 0.2141 - val_loss: 0.2229\n", + "Epoch 8/8\n", + "\n", + "Epoch 00008: LearningRateScheduler setting learning rate to 1e-06.\n", + "718/718 - 20s - loss: 0.2126 - val_loss: 0.2229\n", + "Inferring validation data...\n", + "180/180 - 2s\n", + "\n", + "Fold 3 CV= 0.785856394987037\n", + "\n", + "#########################\n", + "### Fold 4 with valid files [7, 8]\n", + "### Training data shapes (367131, 13, 188) (367131,)\n", + "### Validation data shapes (91782, 13, 188) (91782,)\n", + "#########################\n", + "Epoch 1/8\n", + "\n", + "Epoch 00001: LearningRateScheduler setting learning rate to 0.001.\n", + "718/718 - 26s - loss: 0.2415 - val_loss: 0.2381\n", + "Epoch 2/8\n", + "\n", + "Epoch 00002: LearningRateScheduler setting learning rate to 0.0009505339495172585.\n", + "718/718 - 20s - loss: 0.2312 - val_loss: 0.2282\n", + "Epoch 3/8\n", + "\n", + "Epoch 00003: LearningRateScheduler setting learning rate to 0.0008119331560284375.\n", + "718/718 - 20s - loss: 0.2279 - val_loss: 0.2255\n", + "Epoch 4/8\n", + "\n", + "Epoch 00004: LearningRateScheduler setting learning rate to 0.0006116492065111791.\n", + "718/718 - 20s - loss: 0.2248 - val_loss: 0.2234\n", + "Epoch 5/8\n", + "\n", + "Epoch 00005: LearningRateScheduler setting learning rate to 0.00038935079348882104.\n", + "718/718 - 20s - loss: 0.2211 - val_loss: 0.2245\n", + "Epoch 6/8\n", + "\n", + "Epoch 00006: LearningRateScheduler setting learning rate to 0.00018906684397156263.\n", + "718/718 - 21s - loss: 0.2178 - val_loss: 0.2215\n", + "Epoch 7/8\n", + "\n", + "Epoch 00007: LearningRateScheduler setting learning rate to 5.046605048274169e-05.\n", + "718/718 - 20s - loss: 0.2146 - val_loss: 0.2201\n", + "Epoch 8/8\n", + "\n", + "Epoch 00008: LearningRateScheduler setting learning rate to 1e-06.\n", + "718/718 - 20s - loss: 0.2133 - val_loss: 0.2201\n", + "Inferring validation data...\n", + "180/180 - 2s\n", + "\n", + "Fold 4 CV= 0.7882237098851645\n", + "\n", + "#########################\n", + "### Fold 5 with valid files [9, 10]\n", + "### Training data shapes (367128, 13, 188) (367128,)\n", + "### Validation data shapes (91785, 13, 188) (91785,)\n", + "#########################\n", + "Epoch 1/8\n", + "\n", + "Epoch 00001: LearningRateScheduler setting learning rate to 0.001.\n", + "718/718 - 25s - loss: 0.2418 - val_loss: 0.2301\n", + "Epoch 2/8\n", + "\n", + "Epoch 00002: LearningRateScheduler setting learning rate to 0.0009505339495172585.\n", + "718/718 - 20s - loss: 0.2311 - val_loss: 0.2291\n", + "Epoch 3/8\n", + "\n", + "Epoch 00003: LearningRateScheduler setting learning rate to 0.0008119331560284375.\n", + "718/718 - 20s - loss: 0.2283 - val_loss: 0.2250\n", + "Epoch 4/8\n", + "\n", + "Epoch 00004: LearningRateScheduler setting learning rate to 0.0006116492065111791.\n", + "718/718 - 20s - loss: 0.2253 - val_loss: 0.2292\n", + "Epoch 5/8\n", + "\n", + "Epoch 00005: LearningRateScheduler setting learning rate to 0.00038935079348882104.\n", + "718/718 - 20s - loss: 0.2216 - val_loss: 0.2294\n", + "Epoch 6/8\n", + "\n", + "Epoch 00006: LearningRateScheduler setting learning rate to 0.00018906684397156263.\n", + "718/718 - 21s - loss: 0.2182 - val_loss: 0.2236\n", + "Epoch 7/8\n", + "\n", + "Epoch 00007: LearningRateScheduler setting learning rate to 5.046605048274169e-05.\n", + "718/718 - 20s - loss: 0.2149 - val_loss: 0.2213\n", + "Epoch 8/8\n", + "\n", + "Epoch 00008: LearningRateScheduler setting learning rate to 1e-06.\n", + "718/718 - 20s - loss: 0.2137 - val_loss: 0.2210\n", + "Inferring validation data...\n", + "180/180 - 2s\n", + "\n", + "Fold 5 CV= 0.7898322508214364\n", + "\n", + "#########################\n", + "Overall CV = 0.7865925384330033\n" + ] + } + ], + "source": [ + "if TRAIN_MODEL:\n", + " # SAVE TRUE AND OOF\n", + " true = np.array([])\n", + " oof = np.array([])\n", + " VERBOSE = 2 # use 1 for interactive \n", + "\n", + " for fold in range(5):\n", + "\n", + " # INDICES OF TRAIN AND VALID FOLDS\n", + " valid_idx = [2*fold+1, 2*fold+2]\n", + " train_idx = [x for x in [1,2,3,4,5,6,7,8,9,10] if x not in valid_idx]\n", + "\n", + " print('#'*25)\n", + " print(f'### Fold {fold+1} with valid files', valid_idx)\n", + "\n", + " # READ TRAIN DATA FROM DISK\n", + " X_train = []; y_train = []\n", + " for k in train_idx:\n", + " X_train.append( np.load(f'{PATH_TO_DATA}data_{k}.npy'))\n", + " y_train.append( pd.read_parquet(f'{PATH_TO_DATA}targets_{k}.pqt') )\n", + " X_train = np.concatenate(X_train,axis=0)\n", + " y_train = pd.concat(y_train).target.values\n", + " print('### Training data shapes', X_train.shape, y_train.shape)\n", + "\n", + " # READ VALID DATA FROM DISK\n", + " X_valid = []; y_valid = []\n", + " for k in valid_idx:\n", + " X_valid.append( np.load(f'{PATH_TO_DATA}data_{k}.npy'))\n", + " y_valid.append( pd.read_parquet(f'{PATH_TO_DATA}targets_{k}.pqt') )\n", + " X_valid = np.concatenate(X_valid,axis=0)\n", + " y_valid = pd.concat(y_valid).target.values\n", + " print('### Validation data shapes', X_valid.shape, y_valid.shape)\n", + " print('#'*25)\n", + "\n", + " # BUILD AND TRAIN MODEL\n", + " K.clear_session()\n", + " model = build_model()\n", + " h = model.fit(X_train,y_train, \n", + " validation_data = (X_valid,y_valid),\n", + " batch_size=512, epochs=EPOCHS, verbose=VERBOSE,\n", + " callbacks = [LR])\n", + " if not os.path.exists(PATH_TO_MODEL): os.makedirs(PATH_TO_MODEL)\n", + " model.save_weights(f'{PATH_TO_MODEL}transformer_fold_{fold+1}.h5')\n", + "\n", + " # INFER VALID DATA\n", + " print('Inferring validation data...')\n", + " p = model.predict(X_valid, batch_size=512, verbose=VERBOSE).flatten()\n", + "\n", + " print()\n", + " print(f'Fold {fold+1} CV=', amex_metric_mod(y_valid, p) )\n", + " print()\n", + " true = np.concatenate([true, y_valid])\n", + " oof = np.concatenate([oof, p])\n", + " \n", + " # CLEAN MEMORY\n", + " del model, X_train, y_train, X_valid, y_valid, p\n", + " gc.collect()\n", + "\n", + " # PRINT OVERALL RESULTS\n", + " print('#'*25)\n", + " print(f'Overall CV =', amex_metric_mod(true, oof) )" + ] + }, + { + "cell_type": "markdown", + "id": "f0808aef", + "metadata": { + "papermill": { + "duration": 0.02342, + "end_time": "2022-05-31T20:02:54.219668", + "exception": false, + "start_time": "2022-05-31T20:02:54.196248", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Infer Test Data" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ebf89a65", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T20:02:54.269838Z", + "iopub.status.busy": "2022-05-31T20:02:54.269190Z", + "iopub.status.idle": "2022-05-31T20:07:36.606549Z", + "shell.execute_reply": "2022-05-31T20:07:36.604816Z" + }, + "papermill": { + "duration": 282.364947, + "end_time": "2022-05-31T20:07:36.609133", + "exception": false, + "start_time": "2022-05-31T20:02:54.244186", + "status": "completed" + }, + "scrolled": true, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inferring Test_File_1\n", + "Inferring Test_File_2\n", + "Inferring Test_File_3\n", + "Inferring Test_File_4\n", + "Inferring Test_File_5\n", + "Inferring Test_File_6\n", + "Inferring Test_File_7\n", + "Inferring Test_File_8\n", + "Inferring Test_File_9\n", + "Inferring Test_File_10\n", + "Inferring Test_File_11\n", + "Inferring Test_File_12\n", + "Inferring Test_File_13\n", + "Inferring Test_File_14\n", + "Inferring Test_File_15\n", + "Inferring Test_File_16\n", + "Inferring Test_File_17\n", + "Inferring Test_File_18\n", + "Inferring Test_File_19\n", + "Inferring Test_File_20\n" + ] + } + ], + "source": [ + "if INFER_TEST:\n", + " # BUILD MODEL\n", + " K.clear_session()\n", + " model = build_model()\n", + " \n", + " # LOAD SAMPLE SUBMISSION\n", + " start = 0; end = 0\n", + " sub = cudf.read_csv('../input/amex-default-prediction/sample_submission.csv')\n", + " \n", + " # REARANGE SUB ROWS TO MATCH 20 TEST FILES\n", + " sub['hash'] = sub['customer_ID'].str[-16:].str.hex_to_int().astype('int64')\n", + " test_hash_index = cupy.load(f'{PATH_TO_DATA}test_hashes_data.npy')\n", + " sub = sub.set_index('hash').loc[test_hash_index].reset_index(drop=True)\n", + " \n", + " for k in range(20):\n", + " print(f'Inferring Test_File_{k+1}')\n", + " X_test = np.load(f'{PATH_TO_DATA}test_data_{k+1}.npy')\n", + " end = start + X_test.shape[0]\n", + "\n", + " # INFER 5 FOLD MODELS\n", + " model.load_weights(f'{PATH_TO_MODEL}transformer_fold_1.h5')\n", + " p = model.predict(X_test, batch_size=512, verbose=0).flatten() \n", + " for j in range(1,5):\n", + " model.load_weights(f'{PATH_TO_MODEL}transformer_fold_{j+1}.h5')\n", + " p += model.predict(X_test, batch_size=512, verbose=0).flatten()\n", + " p /= 5.0\n", + "\n", + " sub.loc[start:end-1,'prediction'] = p\n", + " start = end" + ] + }, + { + "cell_type": "markdown", + "id": "3d9f883c", + "metadata": { + "papermill": { + "duration": 0.012377, + "end_time": "2022-05-31T20:07:36.635074", + "exception": false, + "start_time": "2022-05-31T20:07:36.622697", + "status": "completed" + }, + "tags": [] + }, + "source": [ + "# Create Submission" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "c4d2615f", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T20:07:36.665044Z", + "iopub.status.busy": "2022-05-31T20:07:36.663622Z", + "iopub.status.idle": "2022-05-31T20:07:37.063327Z", + "shell.execute_reply": "2022-05-31T20:07:37.062136Z" + }, + "papermill": { + "duration": 0.416308, + "end_time": "2022-05-31T20:07:37.065389", + "exception": false, + "start_time": "2022-05-31T20:07:36.649081", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submission file shape is (924621, 2)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
customer_IDprediction
0038be0571bd6b3776cb8512731968f4de302c811030124...0.002090
10074a0233ef766b52884608cc8cf9098f59d885b5d59fc...0.000204
2060b8b7f30f795a0e93995d45b29461ffa6ece0eeb5c3d...0.105635
303a1d125bdd776000bf0b28238d0bea240ad581d332e70...0.077761
40290f245dd35ba899af52316ccc62b2627e7ae18cd76a2...0.343125
\n", + "
" + ], + "text/plain": [ + " customer_ID prediction\n", + "0 038be0571bd6b3776cb8512731968f4de302c811030124... 0.002090\n", + "1 0074a0233ef766b52884608cc8cf9098f59d885b5d59fc... 0.000204\n", + "2 060b8b7f30f795a0e93995d45b29461ffa6ece0eeb5c3d... 0.105635\n", + "3 03a1d125bdd776000bf0b28238d0bea240ad581d332e70... 0.077761\n", + "4 0290f245dd35ba899af52316ccc62b2627e7ae18cd76a2... 0.343125" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if INFER_TEST:\n", + " sub.to_csv(f'submission.csv',index=False)\n", + " print('Submission file shape is', sub.shape )\n", + " display( sub.head() )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "414d504d", + "metadata": { + "execution": { + "iopub.execute_input": "2022-05-31T20:07:37.094468Z", + "iopub.status.busy": "2022-05-31T20:07:37.093556Z", + "iopub.status.idle": "2022-05-31T20:07:37.925822Z", + "shell.execute_reply": "2022-05-31T20:07:37.925026Z" + }, + "papermill": { + "duration": 0.848908, + "end_time": "2022-05-31T20:07:37.927841", + "exception": false, + "start_time": "2022-05-31T20:07:37.078933", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "if INFER_TEST:\n", + " # DISPLAY SUBMISSION PREDICTIONS\n", + " plt.hist(sub.to_pandas().prediction, bins=100)\n", + " plt.title('Test Predictions')\n", + " plt.show()" + ] + } + ], + "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.7.12" + }, + "papermill": { + "default_parameters": {}, + "duration": 1483.411991, + "end_time": "2022-05-31T20:07:41.396164", + "environment_variables": {}, + "exception": null, + "input_path": "__notebook__.ipynb", + "output_path": "__notebook__.ipynb", + "parameters": {}, + "start_time": "2022-05-31T19:42:57.984173", + "version": "2.3.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 48af2caa8b99565ef17ff275c9d1cff302a19f18 Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Sun, 1 Dec 2024 01:45:54 +0530 Subject: [PATCH 4/6] Rename tensorflow-transformer-0-790.ipynb to tensorflow-transformer --- tensorflow-transformer-0-790.ipynb => tensorflow-transformer | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tensorflow-transformer-0-790.ipynb => tensorflow-transformer (100%) diff --git a/tensorflow-transformer-0-790.ipynb b/tensorflow-transformer similarity index 100% rename from tensorflow-transformer-0-790.ipynb rename to tensorflow-transformer From 9224958d9da42c5ebda1812705d66c6b248fa478 Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Sun, 1 Dec 2024 01:46:44 +0530 Subject: [PATCH 5/6] Rename tensorflow-transformer to tensorflow-transformer.ipynb --- tensorflow-transformer => tensorflow-transformer.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tensorflow-transformer => tensorflow-transformer.ipynb (100%) diff --git a/tensorflow-transformer b/tensorflow-transformer.ipynb similarity index 100% rename from tensorflow-transformer rename to tensorflow-transformer.ipynb From 7abd67518b5e218d7ed6d996e1b493fecaafeab5 Mon Sep 17 00:00:00 2001 From: Rahul Vats Date: Sun, 1 Dec 2024 12:43:30 +0530 Subject: [PATCH 6/6] Created using Colab --- chapter03_introduction-to-keras-and-tf.ipynb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/chapter03_introduction-to-keras-and-tf.ipynb b/chapter03_introduction-to-keras-and-tf.ipynb index 55838004dc..c1fb54eaa8 100644 --- a/chapter03_introduction-to-keras-and-tf.ipynb +++ b/chapter03_introduction-to-keras-and-tf.ipynb @@ -1,5 +1,15 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, { "cell_type": "markdown", "metadata": { @@ -1313,7 +1323,8 @@ "colab": { "name": "chapter03_introduction-to-keras-and-tf.i", "provenance": [], - "toc_visible": true + "toc_visible": true, + "include_colab_link": true }, "kernelspec": { "display_name": "Python 3",