{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "7a4b3fe0-37b7-4dcc-928e-5d5981eb62bd", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "%load_ext tensorboard\n", "import librosa\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from pathlib import Path\n", "import IPython.display as ipd" ] }, { "cell_type": "markdown", "id": "25beb189-d3c5-4ba2-a31d-f692685291fc", "metadata": {}, "source": [ "# prep" ] }, { "cell_type": "code", "execution_count": 2, "id": "8e45206f-7e1f-4a47-852f-39849a395a53", "metadata": {}, "outputs": [], "source": [ "SAMPLE_RATE = 22050" ] }, { "cell_type": "code", "execution_count": 3, "id": "dc03a57f-8739-4f5e-a1c9-3db7a48e26de", "metadata": {}, "outputs": [], "source": [ "def load():\n", " \"\"\"\n", " Load 10 second chunks of songs\n", " \"\"\"\n", "\n", " files = list(Path(\"./data/\").glob(\"*.mp3\"))\n", " chunks = []\n", " for file in files:\n", " y, sr = librosa.load(file, mono=True,sr=SAMPLE_RATE)\n", " size = int(SAMPLE_RATE * 10)\n", " sampleLen = len(y)\n", " for startPos in range(0,sampleLen,size):\n", " end = startPos+size\n", " if end > sampleLen:\n", " pass\n", " chunk = y[startPos:end]\n", " chunks.append(chunk)\n", " return chunks" ] }, { "cell_type": "code", "execution_count": 4, "id": "f0f0c6d8-4cbf-46d3-a65d-28396fffc650", "metadata": {}, "outputs": [], "source": [ "def dataset(chunks):\n", " x,y = [],[]\n", " size = int(SAMPLE_RATE*5)\n", " for chunk in chunks:\n", " Ax = chunk[:size]\n", " Ay = chunk[size:size*2]\n", " if(len(Ax) == size and len(Ay) == size):\n", " x.append(librosa.feature.melspectrogram(y=Ax, sr=SAMPLE_RATE))\n", " y.append(librosa.feature.melspectrogram(y=Ay, sr=SAMPLE_RATE))\n", " return x,y" ] }, { "cell_type": "code", "execution_count": 5, "id": "d953fafa-b119-4aa4-b17b-8606c0b366b1", "metadata": {}, "outputs": [], "source": [ "def showSpec(spec):\n", " plt.figure(figsize=(10, 4))\n", " librosa.display.specshow(spec, sr=SAMPLE_RATE,\n", " x_axis='time', y_axis='mel',\n", " cmap='viridis')\n", " plt.colorbar(format='%+2.0f dB')\n", " plt.title('Mel spectrogram')\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "id": "5a744602-e8ea-4c79-883a-1472c15df3ae", "metadata": {}, "outputs": [], "source": [ "def playSpec(spec):\n", " S = librosa.feature.inverse.mel_to_stft(spec, sr=SAMPLE_RATE)\n", " audio = librosa.griffinlim(S,n_iter=25,momentum=0.99)\n", " audio = librosa.effects.preemphasis(audio) # Reapply pre-emphasis\n", "\n", " plt.figure(figsize=(12,4))\n", " plt.plot(audio)\n", " plt.title('waveform')\n", " plt.show()\n", "\n", " display(ipd.Audio(audio,rate=SAMPLE_RATE))" ] }, { "cell_type": "markdown", "id": "2488eaeb-a378-42dd-bd4a-b9290c445026", "metadata": {}, "source": [ "# Load Data" ] }, { "cell_type": "code", "execution_count": 7, "id": "f411e54e-2a7d-4dfe-be90-457e2a9455a7", "metadata": {}, "outputs": [], "source": [ "chunks = load()" ] }, { "cell_type": "code", "execution_count": 8, "id": "1c942a3f-8072-41b3-bb16-1ccb9812b505", "metadata": {}, "outputs": [], "source": [ "x,y = dataset(chunks)" ] }, { "cell_type": "code", "execution_count": 9, "id": "39241f9b-8cc0-40cf-96dc-1be6d3ff2fb7", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0YAAAGHCAYAAACUD0IgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeDxJREFUeJzt3XtcFPX+P/DXcNnlJiuIsOANEyMuaqalYAaeFO9peqLCg1KKmhkZamVUkkfRSj2ank7fTLRTVPy6eNJSDqilmeIFxIPB0VJJOIgaKhhy3/n9QTvsyCK7XJaFfT0fj8/jMTvzmdnPzM4OvPfzns8IoiiKICIiIiIismBW7d0AIiIiIiKi9sbAiIiIiIiILB4DIyIiIiIisngMjIiIiIiIyOIxMCIiIiIiIovHwIiIiIiIiCweAyMiIiIiIrJ4DIyIiIiIiMjiMTAiIiIiIiKLx8CIiCzG9u3bIQgCBEHA999/32C5KIrw8fGBIAgIDQ1t1nuEhoY2e11zcOvWLcTHx+s9PkRERJ0ZAyMisjhdunTB1q1bG8w/cOAAzp07hy5durRDq8zDrVu38MYbbzAwIiIii8PAiIgszuOPP44vv/wSpaWlsvlbt25FUFAQevfu3U4t63hu3bplsvcqLy+HKIomez8iIrIsDIyIyOI8+eSTAIBPP/1UmldSUoIvv/wSTz/9tN51qqqqsHLlStxzzz1QKpXo3r07nnrqKVy9erVZbdi/fz9CQ0PRrVs32Nvbo3fv3pg+fboUaOTl5UEQBLz11ltYtWoVevfuDTs7OwwdOhT79u1rsL2ff/4ZERERcHd3h1KphJ+fH/7+9783qHfjxg0sXrwYd911F5RKJdzd3TFhwgT897//RV5eHrp37w4AeOONN6S0w6ioKABAfHw8BEFAZmYm/vznP8PFxQX9+vUDAFRUVGDZsmXo27cvFAoFevTogWeffRY3btyQvX9lZSUWL14MtVoNBwcHPPTQQ8jIyIC3t7f0PkB92mNqaiqefvppdO/eHQ4ODqisrMQvv/yCp556Cv3794eDgwN69OiByZMnIzs7W/Ze33//PQRBwCeffIKXXnoJnp6ecHJywuTJk3H58mXcvHkTc+fOhZubG9zc3PDUU0/h999/b9bnSUREHZ9NezeAiMjUnJ2d8ec//xmJiYmYN28egLogycrKCo8//jg2bNggq6/RaDBlyhT88MMPePHFFxEcHIxff/0Vy5cvR2hoKE6cOAF7e3uD3z8vLw8TJ07EyJEjkZiYiK5du+J///sfUlJSUFVVBQcHB6nu5s2b0adPH2zYsAEajQZvvfUWxo8fjwMHDiAoKAgAkJOTg+DgYPTu3Rvr1q2DWq3Gv//9b8TExOC3337D8uXLAQA3b97Egw8+iLy8PLz00ksYNmwYfv/9dxw8eBCXLl1CcHAwUlJSMG7cOMyePRtz5swBAClY0po2bRqeeOIJzJ8/H2VlZRBFEVOnTsW+ffuwbNkyjBw5Ev/5z3+wfPlyHDlyBEeOHIFSqQQAPPXUU0hOTsaLL76IP/3pT8jJycGjjz7aoPdO6+mnn8bEiRPx0UcfoaysDLa2tigsLES3bt2wZs0adO/eHdeuXcOHH36IYcOG4eTJk/D19ZVt45VXXsGoUaOwfft25OXlYcmSJXjyySdhY2ODQYMG4dNPP8XJkyfxyiuvoEuXLnjnnXcM/iyJiKgTEYmILMS2bdtEAOLx48fF7777TgQgnj59WhRFUbz//vvFqKgoURRFMSAgQAwJCZHW+/TTT0UA4pdffinb3vHjx0UA4rvvvivNCwkJka2rzxdffCECELOyshqtc+HCBRGA6OXlJZaXl0vzS0tLRVdXV3H06NHSvLFjx4o9e/YUS0pKZNtYuHChaGdnJ167dk0URVFcsWKFCEBMS0tr9H2vXr0qAhCXL1/eYNny5ctFAOLrr78um5+SkiICEN966y3Z/OTkZBGA+P7774uiKIo//fSTCEB86aWXZPW0x3fWrFnSPO1nNXPmzEbbqlVTUyNWVVWJ/fv3F1944QVpvvYznjx5sqz+okWLRABiTEyMbP7UqVNFV1fXJt+PiIg6J6bSEZFFCgkJQb9+/ZCYmIjs7GwcP3680TS6b775Bl27dsXkyZNRU1MjlXvvvRdqtdrogQruvfdeKBQKzJ07Fx9++CHOnz/faN1p06bBzs5Oet2lSxdMnjwZBw8eRG1tLSoqKrBv3z48+uijcHBwkLVvwoQJqKioQHp6OgBgz549uPvuuzF69Gij2nu76dOny17v378fAGSpcADw2GOPwdHRUUr9O3DgAAAgPDxcVu/Pf/4zbGz0JzDc/l4AUFNTg4SEBPj7+0OhUMDGxgYKhQI///wzcnNzG9SfNGmS7LWfnx8AYOLEiQ3mX7t2jel0REQWioEREVkkQRDw1FNP4eOPP8Z7772Hu+++GyNHjtRb9/Lly7hx4wYUCgVsbW1lpaioCL/99ptR792vXz/s3bsX7u7uePbZZ9GvXz/069cPGzdubFBXrVbrnVdVVYXff/8dxcXFqKmpwaZNmxq0bcKECQAgte/q1avo2bOnUW3Vx9PTU/a6uLgYNjY2DVLuBEGAWq1GcXGxVA8APDw8ZPVsbGzQrVs3g94LAGJjY/Haa69h6tSp2LVrF44ePYrjx49j0KBBKC8vb1Df1dVV9lqhUNxxfkVFhd62EBFR58Z7jIjIYkVFReH111/He++9h1WrVjVaz83NDd26dUNKSore5c0Z3nvkyJEYOXIkamtrceLECWzatAmLFi2Ch4cHnnjiCaleUVFRg3WLioqgUCjg5OQEW1tbWFtbIzIyEs8++6ze9+rbty+AunuFCgoKjG7r7QRBkL3u1q0bampqcPXqVVlwJIoiioqKcP/990v1gLpAs0ePHlK9mpoaKWhq6r0A4OOPP8bMmTORkJAgm//bb7+ha9euzdonIiIi9hgRkcXq0aMHli5dismTJ2PWrFmN1ps0aRKKi4tRW1uLoUOHNii33+xvDGtrawwbNkwaQS4zM1O2/KuvvpL1YNy8eRO7du3CyJEjYW1tDQcHB4waNQonT57EwIED9bZPG5CMHz8eZ8+elVLf9NEOkqCv56UxDz/8MIC6gEXXl19+ibKyMmn5Qw89BABITk6W1fviiy9QU1Nj8PsJgiC1U+vbb7/F//73P4O3QUREdDv2GBGRRVuzZk2TdZ544gkkJSVhwoQJeP755/HAAw/A1tYWBQUF+O677zBlyhQ8+uijBr/ne++9h/3792PixIno3bs3KioqkJiYCAAN7v+xtrbGmDFjEBsbC41GgzfffBOlpaV44403pDobN27Egw8+iJEjR+KZZ56Bt7c3bt68iV9++QW7du2SAqFFixYhOTkZU6ZMwcsvv4wHHngA5eXlOHDgACZNmoRRo0ahS5cu6NOnD77++ms8/PDDcHV1hZubG7y9vRvdnzFjxmDs2LF46aWXUFpaihEjRkij0g0ePBiRkZEAgICAADz55JNYt24drK2t8ac//Qk//fQT1q1bB5VKBSsrw36rmzRpErZv34577rkHAwcOREZGBt5+++1WSRMkIiLLxcCIiKgJ1tbW2LlzJzZu3IiPPvoIq1evho2NDXr27ImQkBAMGDDAqO3de++9SE1NxfLly1FUVAQnJycEBgZi586dCAsLk9VduHAhKioqEBMTgytXriAgIADffvstRowYIdXx9/dHZmYm/vrXv+LVV1/FlStX0LVrV/Tv31+6zwioS/k7dOgQ4uPj8f777+ONN96Ai4sL7r//fsydO1eqt3XrVixduhSPPPIIKisrMWvWLGzfvr3R/REEAf/6178QHx+Pbdu2YdWqVXBzc0NkZCQSEhJkvTvbtm2Dp6cntm7dir/97W+499578f/+3//DuHHjDE6D27hxI2xtbbF69Wr8/vvvuO+++/DVV1/h1VdfNWh9IiIifQRR5GPEiYjMTV5eHvr27Yu3334bS5Ysae/mtKnDhw9jxIgRSEpKQkRERHs3h4iILBR7jIiIyGTS0tJw5MgRDBkyBPb29jh16hTWrFmD/v37Y9q0ae3dPCIismAMjIiIyGScnZ2RmpqKDRs24ObNm3Bzc8P48eOxevVq2fOaiIiITI2pdEREREREZPE4XDcREREREVk8BkZERERERGTxGBgREREREZHF4+ALBtJoNCgsLESXLl0gCEJ7N4eIiIiIbiOKIm7evAkvLy+DHxptShUVFaiqqmrWugqFgoPUtDEGRgYqLCxEr1692rsZRERERNSE/Px89OzZs72bIVNRUYG+fZxQdKW2Weur1WpcuHCBwVEbYmBkoC5dugAAHsQE2MC2nVtDRERERLerQTUOYbf0f5s5qaqqQtGVWlzI6APnLsb1ZpXe1KDvkF9RVVXFwKgNMTAykDZ9zga2sBEYGBERERGZnT8eQmPOtz04OtUVY9Ty4TomwcCIiIiIiMhENBChgXGRjrH1qXnM7640IiIiIiIiE2OPERERERGRiWiggaYZ61DbY2BERERERGQitaKIWtG41Dhj61PzMJWOiIiIiMhEtPcYGVuoXl5eHgRBQFZWVqtul4EREREREZGJaCCi1sjS1oFRUVERIiMjoVar4ejoiPvuuw9ffPGFrM7169cRGRkJlUoFlUqFyMhI3LhxQ1bn4sWLmDx5MhwdHeHm5oaYmJgGD7TNzs5GSEgI7O3t0aNHD6xYsQJiC3vEtIGStigUCvj4+GDlypVGbZupdEREREREJtIeo9KFhoYiKioKUVFRepdHRkaipKQEO3fuhJubGz755BM8/vjjOHHiBAYPHgwAiIiIQEFBAVJSUgAAc+fORWRkJHbt2gUAqK2txcSJE9G9e3ccOnQIxcXFmDVrFkRRxKZNmwAApaWlGDNmDEaNGoXjx4/j7NmziIqKgqOjIxYvXtyifQSAvXv3IiAgAJWVlTh06BDmzJkDT09PzJ4926D12WNERERERGTBjhw5gueeew4PPPAA7rrrLrz66qvo2rUrMjMzAQC5ublISUnBBx98gKCgIAQFBWHLli345ptvcObMGQBAamoqcnJy8PHHH2Pw4MEYPXo01q1bhy1btqC0tBQAkJSUhIqKCmzfvh2BgYGYNm0aXnnlFaxfv/6OPTvHjh3D4MGDYWdnh6FDh+LkyZN663Xr1g1qtRp9+vTBjBkzEBwcLO2DIRgYERERERGZiHbwBWMLUNfjolsqKytbpU0PPvggkpOTce3aNWg0Gnz22WeorKxEaGgogLrASaVSYdiwYdI6w4cPh0qlwuHDh6U6gYGB8PLykuqMHTsWlZWVyMjIkOqEhIRAqVTK6hQWFiIvL09v28rKyjBp0iT4+voiIyMD8fHxWLJkSZP7dOLECWRmZsra3BQGRkREREREJqJpZgGAXr16Sff4qFQqrF69ulXalJycjJqaGnTr1g1KpRLz5s3Djh070K9fPwB19yC5u7s3WM/d3R1FRUVSHQ8PD9lyFxcXKBSKO9bRvtbWuV1SUhJqa2uRmJiIgIAATJo0CUuXLtVbNzg4GE5OTlAoFLj//vsRHh6OmTNnGnwceI8REREREZGJaAdUMHYdAMjPz4ezs7M0X7fnRVdCQgISEhKk1+Xl5UhPT8fChQuleXv27MHIkSMBAK+++iquX7+OvXv3ws3NDf/617/w2GOP4YcffsCAAQMAAIIgNHgfURRl85tTR5tCp29doC6Nb9CgQXBwcJDmBQUF6a2bnJwMPz8/VFdXIzs7GzExMXBxccGaNWv01r8dAyMiIiIiIhOpFeuKsesAgLOzsywwasz8+fMRHh4uvZ4xYwamT5+OadOmSfN69OgBADh37hw2b96M06dPIyAgAAAwaNAg/PDDD/j73/+O9957D2q1GpcvX27wPlevXpV6fNRqNY4ePSpbfv36dVRXV8vq3N4zdOXKFQBo0JOkZcyocr169YKPjw8AwM/PD+fPn8drr72G+Ph42NnZNbk+U+mIiIiIiEykJal0hnJ1dYWPj49U7O3t4e7u3mAeANy6dQsAYGUlDwusra2h0dS9c1BQEEpKSnDs2DFp+dGjR1FSUoLg4GCpzunTp3Hp0iWpTmpqKpRKJYYMGSLVOXjwoGwI79TUVHh5ecHb21vvvvj7++PUqVMoLy+X5qWnpxt0HKytrVFTU9NgyPDGMDAiIiIiIrJQ99xzD3x8fDBv3jwcO3YM586dw7p165CWloapU6cCqOt9GTduHKKjo5Geno709HRER0dLgyIAQFhYGPz9/REZGYmTJ09i3759WLJkCaKjo6VeroiICCiVSkRFReH06dPYsWMHEhISEBsb22gqXUREBKysrDB79mzk5ORg9+7dWLt2rd66xcXFKCoqQkFBAfbs2YONGzdi1KhRBvWyAQyMiIiIiIhMRgMBtUYWDfQHDa3B1tYWu3fvRvfu3TF58mQMHDgQ//znP/Hhhx9iwoQJUr2kpCQMGDAAYWFhCAsLw8CBA/HRRx9Jy62trfHtt9/Czs4OI0aMQHh4OKZOnSoLYlQqFdLS0lBQUIChQ4diwYIFiI2NRWxsbKPtc3Jywq5du5CTk4PBgwcjLi4Ob775pt66o0ePhqenJ7y9vTF37lxMmDABycnJBh8LQWzpo2YtRGlpKVQqFUIxBTaCbXs3h4iIiIhuUyNW43t8jZKSEoN7CUxF+7/kiZ884NTFuL6J329qMDTgslnuV2fCwReIiIiIiExE2wtk7DrU9hgYERERERGZCAMj89Wu9xjV1NTg1VdfRd++fWFvb4+77roLK1askEbAAICvvvoKY8eOhZubGwRBQFZWVoPtnDt3Do8++ii6d+8OZ2dnhIeHy4YUzMvLw+zZs6X36devH5YvX27wCBVERERERK1BIwrNKtT22jUwevPNN/Hee+9h8+bNyM3NxVtvvYW3334bmzZtkuqUlZVhxIgRjT6YqaysDGFhYRAEAfv378ePP/6IqqoqTJ48WQqw/vvf/0Kj0eD//u//8NNPP+Fvf/sb3nvvPbzyyism2U8iIiIiIjJv7ZpKd+TIEUyZMgUTJ04EAHh7e+PTTz/FiRMnpDqRkZEA6np99Pnxxx+Rl5eHkydPSjejbdu2Da6urti/fz9Gjx6NcePGYdy4cdI6d911F86cOYN//OMfjQ73R0RERETU2phKZ77atcfowQcfxL59+3D27FkAwKlTp3Do0CHZ0IBNqayshCAIUCqV0jw7OztYWVnh0KFDja5XUlICV1fXO263tLRUVoiIiIiIWqIWVs0q1Pba9Si/9NJLePLJJ3HPPffA1tYWgwcPxqJFi/Dkk08avI3hw4fD0dERL730Em7duoWysjIsXboUGo1G9uRdXefOncOmTZswf/78Rre7evVqqFQqqfTq1cvo/SMiIiIi0iU24/4ikfcYmUS7BkbJycn4+OOP8cknnyAzMxMffvgh1q5diw8//NDgbXTv3h2ff/45du3aBScnJ6hUKpSUlOC+++6DtbV1g/qFhYUYN24cHnvsMcyZM6fR7S5btgwlJSVSyc/Pb9Y+EhERERFpGftw1+ak3lHztOs9RkuXLsXLL7+MJ554AgAwYMAA/Prrr1i9ejVmzZpl8HbCwsJw7tw5/Pbbb7CxsUHXrl2hVqvRt29fWb3CwkKMGjUKQUFBeP/99++4TaVSKUvPIyIiIiJqqVrRCrWicX0TtWIbNYZk2jUwunXrFqys5CeGtbW1bLhuY7i5uQEA9u/fjytXruCRRx6Rlv3vf//DqFGjMGTIEGzbtq3B+xIRERERkeVq18Bo8uTJWLVqFXr37o2AgACcPHkS69evx9NPPy3VuXbtGi5evIjCwkIAwJkzZwAAarUaarUaQN0odH5+fujevTuOHDmC559/Hi+88AJ8fX0B1PUUhYaGonfv3li7di2uXr0qbV+7DSIiIiKitqaBAI2Rd7NowC4jU2jXwGjTpk147bXXsGDBAly5cgVeXl6YN28eXn/9danOzp078dRTT0mvtWl3y5cvR3x8PIC6YGnZsmW4du0avL29ERcXhxdeeEFaJzU1Fb/88gt++eUX9OzZU9YGUeSJRkRERESmweG6zZcgMjIwSGlpKVQqFUIxBTaCbXs3h4iIiIhuUyNW43t8jZKSEun5luZC+7/kjlP94dil4QBhd1J2sxaPDvrZLPerM2nXHiMiIiIiIktSl0pnXA+QsfWpeRgYERERERGZiKYZD2zlPUamwaHZiIiIiIjI4rHHiIiIiIjIRJr3HCP2GJkCAyMiIiIiIhPRwIrDdZspBkZERERERCZSKwqoFY0crtvI+tQ8DIyIiIiIiEykthmDL9Syx8gkGBgREREREZmIRrSCxsh7jDS8x8gkOCodERERERFZPPYYERERERGZCFPpzBcDIyIiIiIiE9HA+MEUNG3TFLoNAyMiIiIiIhNp3nDdvPvFFHiUiYiIiIhMRPuAV2ML1cvLy4MgCMjKymrV7fIoExERERGZiAZCs0pb0QYZ+srnn38u1bt+/ToiIyOhUqmgUqkQGRmJGzduyLZ18eJFTJ48GY6OjnBzc0NMTAyqqqpkdbKzsxESEgJ7e3v06NEDK1asgNjCUfdu3weFQgEfHx+sXLnSqG0zlY6IiIiIqBMLDQ1FVFQUoqKiGizr1asXLl26JJv3/vvv46233sL48eOleRERESgoKEBKSgoAYO7cuYiMjMSuXbsAALW1tZg4cSK6d++OQ4cOobi4GLNmzYIoiti0aRMAoLS0FGPGjMGoUaNw/PhxnD17FlFRUXB0dMTixYtbvJ979+5FQEAAKisrcejQIcyZMweenp6YPXu2QeszMCIiIiIiMpHmpMa1ZSqdtbU11Gq1bN6OHTvw+OOPw8nJCQCQm5uLlJQUpKenY9iwYQCALVu2ICgoCGfOnIGvry9SU1ORk5OD/Px8eHl5AQDWrVuHqKgorFq1Cs7OzkhKSkJFRQW2b98OpVKJwMBAnD17FuvXr0dsbCwEQX/P2LFjxzBv3jzk5uYiMDAQcXFxeut169ZN2pc+ffogMTERmZmZBgdGTKUjIiIiIjIR7XDdxhagrsdFt1RWVrZ6+zIyMpCVlSULJo4cOQKVSiUFRQAwfPhwqFQqHD58WKoTGBgoBUUAMHbsWFRWViIjI0OqExISAqVSKatTWFiIvLw8ve0pKyvDpEmT4Ovri4yMDMTHx2PJkiVN7seJEyeQmZkpa3NTGBgREREREZmIRhSaVYC6tDftPT4qlQqrV69u9fZt3boVfn5+CA4OluYVFRXB3d29QV13d3cUFRVJdTw8PGTLXVxcoFAo7lhH+1pb53ZJSUmora1FYmIiAgICMGnSJCxdulRv3eDgYDg5OUGhUOD+++9HeHg4Zs6caeCeM5WOiIiIiMhkNM14wKt2uO78/Hw4OztL83V7XnQlJCQgISFBel1eXo709HQsXLhQmrdnzx6MHDlStl55eTk++eQTvPbaaw22qS/NTRRF2fzm1NEOjtBYGl1ubi4GDRoEBwcHaV5QUJDeusnJyfDz80N1dTWys7MRExMDFxcXrFmzRm/92zEwIiIiIiIyEY1oBY2R9wxp6zs7O8sCo8bMnz8f4eHh0usZM2Zg+vTpmDZtmjSvR48eDdb74osvcOvWrQa9LGq1GpcvX25Q/+rVq1KPj1qtxtGjR2XLr1+/jurqalmd23uGrly5AgANepK0jBlVrlevXvDx8QEA+Pn54fz583jttdcQHx8POzu7JtdnKh0RERERUSfi6uoKHx8fqdjb28Pd3b3BvNtt3boVjzzyCLp37y6bHxQUhJKSEhw7dkyad/ToUZSUlEgpd0FBQTh9+rRshLvU1FQolUoMGTJEqnPw4EHZEN6pqanw8vKCt7e33n3x9/fHqVOnUF5eLs1LT0836DhYW1ujpqamwZDhjWFgRERERERkIrUQmlXa2i+//IKDBw9izpw5DZb5+flh3LhxiI6ORnp6OtLT0xEdHS0NigAAYWFh8Pf3R2RkJE6ePIl9+/ZhyZIliI6Olnq5IiIioFQqERUVhdOnT2PHjh1ISEi444h0ERERsLKywuzZs5GTk4Pdu3dj7dq1eusWFxejqKgIBQUF2LNnDzZu3IhRo0YZ1MsGMDAiIiIiIjIZbSqdsaWtJSYmokePHggLC9O7PCkpCQMGDEBYWBjCwsIwcOBAfPTRR9Jya2trfPvtt7Czs8OIESMQHh6OqVOnyoIYlUqFtLQ0FBQUYOjQoViwYAFiY2MRGxvbaLucnJywa9cu5OTkYPDgwYiLi8Obb76pt+7o0aPh6ekJb29vzJ07FxMmTEBycrLBx0AQW/qoWQtRWloKlUqFUEyBjWDb3s0hIiIiotvUiNX4Hl+jpKTE4F4CU9H+L/n60dGwczLuf8mK36uxYthes9yvzoSDLxARERERmUhLBl+gtsXAiIiIiIjIRGpFK9QaGegYW5+ah0eZiIiIiIgsHnuMiIiIiIhMRIQAjZGjzIkmGJWOGBgREREREZkMU+nMFwMjIiIiIiIT0YgCNKJxPUDG1qfmYWBERERERGQitbBCrZG3+Rtbn5qHgRERERERkYmwx8h8MfwkIiIiIiKLxx4jIiIiIiIT0cAKGiP7JoytT83DwIiIiIiIyERqRQG1RqbGGVufmoeBERERERGRifAeI/PFwIiIiIiIyERE0QoaI59LJPI5RibBo0xERERERBaPPUZERERERCZSCwG1MPIeIyPrU/MwMCIiIiIiMhGNaPw9QxqxjRpDMgyMiIiIiIhMRNOMe4yMrU/Nw8CIiIiIiMhENBCgMTI1ztj61DwMjIiIiIiITITPMTJf7JcjIiIiIiKLxx4jIiIiIiIT4T1G5stsjvLq1ashCAIWLVokzRNFEfHx8fDy8oK9vT1CQ0Px008/ydY7d+4cHn30UXTv3h3Ozs4IDw/H5cuXG2z/22+/xbBhw2Bvbw83NzdMmzatrXeJiIiIiEhGAwEa0cjCe4xMwiwCo+PHj+P999/HwIEDZfPfeustrF+/Hps3b8bx48ehVqsxZswY3Lx5EwBQVlaGsLAwCIKA/fv348cff0RVVRUmT54MjUYjbefLL79EZGQknnrqKZw6dQo//vgjIiIiTLqPRERERETiH4MvGFNEBkYm0e6pdL///jtmzJiBLVu2YOXKldJ8URSxYcMGxMXFSb07H374ITw8PPDJJ59g3rx5+PHHH5GXl4eTJ0/C2dkZALBt2za4urpi//79GD16NGpqavD888/j7bffxuzZs6Xt+/r6mnZHiYiIiMjiaXuBjF2H2l679xg9++yzmDhxIkaPHi2bf+HCBRQVFSEsLEyap1QqERISgsOHDwMAKisrIQgClEqlVMfOzg5WVlY4dOgQACAzMxP/+9//YGVlhcGDB8PT0xPjx49vkJJ3u8rKSpSWlsoKEREREVFLaO8xMrZQ22vXo/zZZ58hMzMTq1evbrCsqKgIAODh4SGb7+HhIS0bPnw4HB0d8dJLL+HWrVsoKyvD0qVLodFocOnSJQDA+fPnAQDx8fF49dVX8c0338DFxQUhISG4du1ao21bvXo1VCqVVHr16tUq+0xERERERM2Xl5cHQRCQlZXVqtttt8AoPz8fzz//PD7++GPY2dk1Wk8Q5F2HoihK87p3747PP/8cu3btgpOTE1QqFUpKSnDffffB2toaAKR7jeLi4jB9+nQMGTIE27ZtgyAI+Pzzzxt932XLlqGkpEQq+fn5Ld1lIiIiIrJwRg+80IzUu+Y4cuQI/vSnP8HR0RFdu3ZFaGgoysvLpeXXr19HZGSk1GkQGRmJGzduyLZx8eJFTJ48GY6OjnBzc0NMTAyqqqpkdbKzsxESEgJ7e3v06NEDK1asgCiKLWq7NlDSFoVCAR8fH6xcudKobbfbPUYZGRm4cuUKhgwZIs2rra3FwYMHsXnzZpw5cwZAXc+Rp6enVOfKlSuyXqSwsDCcO3cOv/32G2xsbNC1a1eo1Wr07dsXAKR1/f39pXWUSiXuuusuXLx4sdH2KZVKWYoeEREREVFLaQdUMHadlggNDUVUVBSioqL0Lj9y5AjGjRuHZcuWYdOmTVAoFDh16hSsrOr7UCIiIlBQUICUlBQAwNy5cxEZGYldu3YBqPs/fuLEiejevTsOHTqE4uJizJo1C6IoYtOmTQCA0tJSjBkzBqNGjcLx48dx9uxZREVFwdHREYsXL27RPgLA3r17ERAQgMrKShw6dAhz5syBp6enbJyBO2m3wOjhhx9Gdna2bN5TTz2Fe+65By+99BLuuusuqNVqpKWlYfDgwQCAqqoqHDhwAG+++WaD7bm5uQEA9u/fjytXruCRRx4BAAwZMgRKpRJnzpzBgw8+CACorq5GXl4e+vTp05a7SEREREQkY46DL7zwwguIiYnByy+/LM3r37+/NJ2bm4uUlBSkp6dj2LBhAIAtW7YgKCgIZ86cga+vL1JTU5GTk4P8/Hx4eXkBANatW4eoqCisWrUKzs7OSEpKQkVFBbZv3w6lUonAwECcPXsW69evR2xsbINMMa1jx45h3rx5yM3NRWBgIOLi4vTW69atG9RqNQCgT58+SExMRGZmpsGBUbul0nXp0gWBgYGy4ujoiG7duiEwMFB6plFCQgJ27NiB06dPIyoqCg4ODrKhtrdt24b09HScO3cOH3/8MR577DG88MIL0qhzzs7OmD9/PpYvX47U1FScOXMGzzzzDADgsccea5d9JyIiIiLL1JJUutsHBqusrGxxe65cuYKjR4/C3d0dwcHB8PDwQEhIiDSQGVDXo6RSqaSgCKi711+lUkmDoh05cgSBgYFSUAQAY8eORWVlJTIyMqQ6ISEhsqyssWPHorCwEHl5eXrbV1ZWhkmTJsHX1xcZGRmIj4/HkiVLmtyvEydOIDMzU9bmprT7cN138uKLL6K8vBwLFizA9evXMWzYMKSmpqJLly5SnTNnzmDZsmW4du0avL29ERcXhxdeeEG2nbfffhs2NjaIjIxEeXk5hg0bhv3798PFxcXUu0REREREFqwlPUa3Dwa2fPlyxMfHt6g9ugOVrV27Fvfeey/++c9/4uGHH8bp06fRv39/FBUVwd3dvcG67u7u0qBoRUVFDQZNc3FxgUKhkNXx9vaW1dGuU1RUJN0KoyspKQm1tbVITEyEg4MDAgICUFBQIHV06AoODoaVlRWqqqpQXV2NuXPnYubMmQYfC7MKjL7//nvZa0EQEB8ff8cPfM2aNVizZs0dt2tra4u1a9di7dq1rdBKIiIiIiLTy8/Pl57dCaDR++ETEhKQkJAgvS4vL0d6ejoWLlwozduzZw9GjhwpDVQ2b948PPXUUwCAwYMHY9++fUhMTJRGj9aX5qY7KFpz62gHR2gsjS43NxeDBg2Cg4ODNC8oKEhv3eTkZPj5+aG6uhrZ2dmIiYmBi4tLk7GCllkFRkREREREnVlLeoycnZ1lgVFj5s+fj/DwcOn1jBkzMH36dEybNk2a16NHDwD6ByoDAD8/P2mgMrVajcuXLzd4n6tXr0o9Pmq1GkePHpUtv379Oqqrq2V1tL1HWleuXAHQ8BE9WsaMKterVy/4+PhI7T9//jxee+01xMfH33EUbC0+LYqIiIiIyERE1I9MZ2gxdjBrV1dX+Pj4SMXe3h7u7u4N5gGAt7c3vLy8pBGhtc6ePSsNVBYUFISSkhIcO3ZMWn706FGUlJQgODhYqnP69GnpWaIAkJqaCqVSKY1CHRQUhIMHD8qG8E5NTYWXl1eDFDstf39/nDp1SjZ0eHp6ukHHwdraGjU1NQ2GDG8MAyMiIiIiIhMxt+cYCYKApUuX4p133sEXX3yBX375Ba+99hr++9//SqO5+fn5Ydy4cYiOjkZ6ejrS09MRHR0tDYoA1D1Cx9/fH5GRkTh58iT27duHJUuWIDo6WurlioiIgFKpRFRUFE6fPo0dO3YgISHhjiPSRUREwMrKCrNnz0ZOTg52797d6O0xxcXFKCoqQkFBAfbs2YONGzdi1KhRBvWyAUylIyIiIiIyGXMcrnvRokWoqKjACy+8gGvXrmHQoEFIS0tDv379pDpJSUmIiYlBWFgYAOCRRx7B5s2bpeXW1tb49ttvsWDBAowYMQL29vaIiIiQBTEqlQppaWl49tlnMXToULi4uCA2NhaxsbGNts3JyQm7du3C/PnzMXjwYPj7++PNN9/E9OnTG9QdPXq01BZPT09MmDABq1atMvg4CGJLHzVrIUpLS6FSqRCKKbARbNu7OURERER0mxqxGt/ja5SUlBjcS2Aq2v8lH9q1ADaO+gdNaExNWSUOTn7XLPerM2EqHRERERERWTym0hERERERmYg5ptJRHQZGREREREQmIooCRCMDHWPrU/MwMCIiIiIiMhHtENzGrkNtj4EREREREZGJMJXOfDEwIiIiIiIyEabSmS+OSkdERERERBaPPUZERERERCbCVDrzxcCIiIiIiMhEmEpnvhgYERERERGZiNiMHiMGRqbBwIiIiIiIyEREAKJo/DrU9hgYERERERGZiAYCBD7HyCxxVDoiIiIiIrJ47DEiIiIiIjIRDr5gvhgYERERERGZiEYUIHC4brPEwIiIiIiIyEREsRmDL3D0BZNgYEREREREZCJMpTNfDIyIiIiIiEyEgZH54qh0RERERERk8dhjRERERERkIhx8wXwxMCIiIiIiMhEOvmC+GBgREREREZlIXWBk7D1GbdQYkmFgRERERERkIhx8wXwxMCIiIiIiMhHxj2LsOtT2OCodERERERFZPAZGREREREQmok2lM7ZQvby8PAiCgKysrFbdLgMjIiIiIiJTEZtZ2lBoaCgEQZCVJ554Qlbn+vXriIyMhEqlgkqlQmRkJG7cuCGrc/HiRUyePBmOjo5wc3NDTEwMqqqqZHWys7MREhICe3t79OjRAytWrIDYwtEltIGStigUCvj4+GDlypVGbZv3GBERERERmUpzeoBa2GMUGhqKqKgoREVFNVonOjoaK1askF7b29vLlkdERKCgoAApKSkAgLlz5yIyMhK7du0CANTW1mLixIno3r07Dh06hOLiYsyaNQuiKGLTpk0AgNLSUowZMwajRo3C8ePHcfbsWURFRcHR0RGLFy9u0T4CwN69exEQEIDKykocOnQIc+bMgaenJ2bPnm3Q+gyMiIiIiIhMxFyfY+Tg4AC1Wq13WW5uLlJSUpCeno5hw4YBALZs2YKgoCCcOXMGvr6+SE1NRU5ODvLz8+Hl5QUAWLduHaKiorBq1So4OzsjKSkJFRUV2L59O5RKJQIDA3H27FmsX78esbGxEAT9AeCxY8cwb9485ObmIjAwEHFxcXrrdevWTdqHPn36IDExEZmZmQYHRkylIyIiIiIykZbcY1RaWiorlZWVrdaupKQkuLm5ISAgAEuWLMHNmzelZUeOHIFKpZKCIgAYPnw4VCoVDh8+LNUJDAyUgiIAGDt2LCorK5GRkSHVCQkJgVKplNUpLCxEXl6e3naVlZVh0qRJ8PX1RUZGBuLj47FkyZIm9+fEiRPIzMyUtbkp7DEiIiIiIuoAevXqJXu9fPlyxMfHt3i7M2bMQN++faFWq3H69GksW7YMp06dQlpaGgCgqKgI7u7uDdZzd3dHUVGRVMfDw0O23MXFBQqFQlbH29tbVke7TlFREfr27dvgPZKSklBbW4vExEQ4ODggICAABQUFeOaZZxrUDQ4OhpWVFaqqqlBdXY25c+di5syZBh8HBkZERERERKYiCsbfM/RH/fz8fDg7O0uzdXtedCUkJCAhIUF6XV5ejvT0dCxcuFCat2fPHowcORJA3f1FWoGBgejfvz+GDh2KzMxM3HfffQCgN81NFEXZ/ObU0Q6O0FgaXW5uLgYNGgQHBwdpXlBQkN66ycnJ8PPzQ3V1NbKzsxETEwMXFxesWbNGb/3bMTAiIiIiIjKRltxj5OzsLAuMGjN//nyEh4dLr2fMmIHp06dj2rRp0rwePXo0uv59990HW1tb/Pzzz7jvvvugVqtx+fLlBvWuXr0q9fio1WocPXpUtvz69euorq6W1dH2HmlduXIFABr0NmkZM6pcr1694OPjAwDw8/PD+fPn8dprryE+Ph52dnZNrs97jIiIiIiITMUEw3W7urrCx8dHKvb29nB3d28wrzE//fQTqqur4enpCaCuh6akpATHjh2T6hw9ehQlJSUIDg6W6pw+fRqXLl2S6qSmpkKpVGLIkCFSnYMHD8qG8E5NTYWXl1eDFDstf39/nDp1CuXl5dK89PR0g46DtbU1ampqGgwZ3hgGRkREREREJmJuD3g9d+4cVqxYgRMnTiAvLw+7d+/GY489hsGDB2PEiBEA6npfxo0bh+joaKSnpyM9PR3R0dHSoAgAEBYWBn9/f0RGRuLkyZPYt28flixZgujoaKmXKyIiAkqlElFRUTh9+jR27NiBhISEO45IFxERASsrK8yePRs5OTnYvXs31q5dq7ducXExioqKUFBQgD179mDjxo0YNWqUQb1sAAMjIiIiIiLTMqOHuyoUCuzbtw9jx46Fr68vYmJiEBYWhr1798La2lqql5SUhAEDBiAsLAxhYWEYOHAgPvroI2m5tbU1vv32W9jZ2WHEiBEIDw/H1KlTZUGMSqVCWloaCgoKMHToUCxYsACxsbGIjY1ttH1OTk7YtWsXcnJyMHjwYMTFxeHNN9/UW3f06NHw9PSEt7c35s6diwkTJiA5OdngYyGILX3UrIUoLS2FSqVCKKbARrBt7+YQERER0W1qxGp8j69RUlJicC+BqWj/l+z9/uuwsm/6fhddmvIKXJy7wiz3qzPh4AtERERERCbSnNS4tkylo3oMjIiIiIiITKU56XHM7zIJBkZERERERCYj/FGMXYfaWrsOvrB69Wrcf//96NKlC9zd3TF16lScOXNGVkcURcTHx8PLywv29vYIDQ3FTz/9pHd7oihi/PjxEAQB//rXv2TLzp49iylTpsDNzQ3Ozs4YMWIEvvvuu7baNdMRrOoLEREREZk3EwzXTc3Trv9NHzhwAM8++yzS09ORlpaGmpoahIWFoaysTKrz1ltvYf369di8eTOOHz8OtVqNMWPG4ObNmw22t2HDhkaH+ps4cSJqamqwf/9+ZGRk4N5778WkSZMaPGSKiIiIiKjNMDAyW+2aSpeSkiJ7vW3bNri7uyMjIwMPPfQQRFHEhg0bEBcXJz2p98MPP4SHhwc++eQTzJs3T1r31KlTWL9+PY4fPy49jErrt99+wy+//ILExEQMHDgQALBmzRq8++67+Omnn6BWq9t4T9uQqGnvFhARERERdXhmlX9VUlICoO5pvQBw4cIFFBUVISwsTKqjVCoREhKCw4cPS/Nu3bqFJ598Eps3b9Yb5HTr1g1+fn745z//ibKyMtTU1OD//u//4OHhIT2J93aVlZUoLS2VFSIiIiKiFhGF5hVqc2Yz+IIoioiNjcWDDz6IwMBAAJDS3Dw8PGR1PTw88Ouvv0qvX3jhBQQHB2PKlCl6ty0IAtLS0jBlyhR06dIFVlZW8PDwQEpKCrp27ap3ndWrV+ONN95ohT0jIiIiIqojinXF2HWo7ZlNj9HChQvxn//8B59++mmDZbffNySKojRv586d2L9/PzZs2NDotkVRxIIFC+Du7o4ffvgBx44dw5QpUzBp0iRcunRJ7zrLli1DSUmJVPLz85u/c0REREREAO8xMmNmERg999xz2LlzJ7777jv07NlTmq9Ni7t9gIQrV65IvUj79+/HuXPn0LVrV9jY2MDGpq4TbPr06QgNDZXqfPPNN/jss88wYsQI3HfffXj33Xdhb2+PDz/8UG+blEolnJ2dZYWITIyjLpIl4HlOnRnP74aYSme22vUsFUURCxcuxFdffYX9+/ejb9++suV9+/aFWq1GWlqaNK+qqgoHDhxAcHAwAODll1/Gf/7zH2RlZUkFAP72t79h27ZtAOruQQIAKyv57lpZWUGj4eAFRERERGQagti8Qm2vXe8xevbZZ/HJJ5/g66+/RpcuXaSeIZVKBXt7ewiCgEWLFiEhIQH9+/dH//79kZCQAAcHB0RERACo61XSN+BC7969pUArKCgILi4umDVrFl5//XXY29tjy5YtuHDhAiZOnGi6HW4lgrW13vliba2JW0LUtgSr+l/IRI3ODxscjZE6gz9+QZed57yMUycj+59F1D3XebKT+WnXwOgf//gHAEgpb1rbtm1DVFQUAODFF19EeXk5FixYgOvXr2PYsGFITU1Fly5dDH4fNzc3pKSkIC4uDn/6059QXV2NgIAAfP311xg0aFBr7Q4RERER0Z01554h9hiZRLsGRqIBQ2wIgoD4+HjEx8e3aLtDhw7Fv//9b2OaR0RERETUuppzzxDvMTIJsxmum4ygcwOjYFv/EYrl5e3RGqI2I0vB0EmwFmuYSkedh2BjK02LGp0f9pgySp2APP2/ftqiU+nYY2S2GBgREREREZkKAyOzxcCoA2r0VxaBN6dT5yI71znUK3U2f1ynLfqXc+r0xJrq+he8jpOZY2BERERERGQq7DEyW80K3S9evIjKysoG8zUaDS5evNjiRpERRI3+QtQZ6D4YkOc3dTb6HnrJ85w6MbG2VioWjQ94NVvNCoy8vb1x33334dy5c7L5V69ebfCQViIiIiIiqsMHvJqvZid7+vn54YEHHsC+fftk8w0ZgptaSOcXRf76Qp2ZWFNdX3iuU2ejvY7rnOdEnY3s2s0e0TpiMwu1uWYFRoIg4N1338Wrr76KiRMn4p133pEtIyIiIiIi6kiaNfiCtlfohRdewD333IMnn3wS//nPf/D666+3auOIiIiIiIhMocWj0o0fPx6HDx/GI488gmPHjrVGm4iIiIiIOiUBxt8zxHws02hWKl1ISAgUCoX02t/fH0ePHoWLiwvvMSIiIiIiagxHpTNbRgVGpaWlKC0txddffw0rKyvpdWlpKWxtbbFr1y7cuHGjjZpKRERERNTBcfCFFsvLy4MgCMjKymrV7RoVGHXt2hUuLi5NFiIiIiIi0sOMAyNRFDF+/HgIgoB//etfsmXXr19HZGQkVCoVVCoVIiMjG3SIXLx4EZMnT4ajoyPc3NwQExODqqoqWZ3s7GyEhITA3t4ePXr0wIoVK1qccaYNlLRFoVDAx8cHK1euNGrbRt1j9N1330nToihiwoQJ+OCDD9CjRw9jNkNEREREZJGa81yilj7HKDQ0FFFRUYiKirpjvQ0bNjQ6wnRERAQKCgqQkpICAJg7dy4iIyOxa9cuAEBtbS0mTpyI7t2749ChQyguLsasWbMgiiI2bdoEoC77bMyYMRg1ahSOHz+Os2fPIioqCo6Ojli8eHHLdhLA3r17ERAQgMrKShw6dAhz5syBp6cnZs+ebdD6RgVGISEhstfW1tYYPnw47rrrLmM2Q0REREREZuTUqVNYv349jh8/Dk9PT9my3NxcpKSkID09HcOGDQMAbNmyBUFBQThz5gx8fX2RmpqKnJwc5Ofnw8vLCwCwbt06REVFYdWqVXB2dkZSUhIqKiqwfft2KJVKBAYG4uzZs1i/fj1iY2MbDcqOHTuGefPmITc3F4GBgYiLi9Nbr1u3blCr1QCAPn36IDExEZmZmQYHRs1+wCsRERERERmpBal0uvf3l5aWorKyslWadOvWLTz55JPYvHmzFFjoOnLkCFQqlRQUAcDw4cOhUqlw+PBhqU5gYKAUFAHA2LFjUVlZiYyMDKlOSEgIlEqlrE5hYSHy8vL0tq2srAyTJk2Cr68vMjIyEB8fjyVLljS5TydOnEBmZqaszU1hYEREREREZCotCIx69eol3eOjUqmwevXqVmnSCy+8gODgYEyZMkXv8qKiIri7uzeY7+7ujqKiIqmOh4eHbLmLiwsUCsUd62hfa+vcLikpCbW1tUhMTERAQAAmTZqEpUuX6q0bHBwMJycnKBQK3H///QgPD8fMmTPvsOdyLX6OUWNdXkREREREJNeSe4zy8/Ph7OwszdftedGVkJCAhIQE6XV5eTnS09OxcOFCad6ePXswcuRI7Ny5E/v378fJkyfv3AY9//OLoiib35w62sERGospcnNzMWjQIDg4OEjzgoKC9NZNTk6Gn58fqqurkZ2djZiYGLi4uGDNmjV32LN6RgVG06ZNk72uqKjA/Pnz4ejoKJv/1VdfGbNZIiIiIiLL0JznEv1R39nZWRYYNWb+/PkIDw+XXs+YMQPTp0+X/S+vHTxt//79OHfuHLp27SrbxvTp0zFy5Eh8//33UKvVuHz5coP3uXr1qtTjo1arcfToUdny69evo7q6Wlbn9p6hK1euAECDniRp140YVa5Xr17w8fEBAPj5+eH8+fN47bXXEB8fDzs7uybXNyowUqlUstd/+ctfjFmdiIiIiMiyNWf4bSPru7q6wtXVVXptb28Pd3d3KWjQ9fLLL2POnDmyeQMGDMDf/vY3TJ48GUBdD01JSQmOHTuGBx54AABw9OhRlJSUIDg4WKqzatUqXLp0SRq8ITU1FUqlEkOGDJHqvPLKK6iqqoJCoZDqeHl5wdvbW++++Pv746OPPkJ5eTns7e0BAOnp6QYdB2tra9TU1KCqqqr1A6Nt27YZU52IiIiIiMyYWq3WO+BC79690bdvXwB1vS/jxo1DdHQ0/u///g9A3XDd2kERACAsLAz+/v6IjIzE22+/jWvXrmHJkiWIjo6WerkiIiLwxhtvICoqCq+88gp+/vlnJCQk4PXXX7/jMOFxcXGYPXs2Xn31VeTl5WHt2rV66xYXF6OoqAg1NTXIzs7Gxo0bMWrUKIN62QAOvkBEREREZDLae4yMLe0tKSkJAwYMQFhYGMLCwjBw4EB89NFH0nJra2t8++23sLOzw4gRIxAeHo6pU6fKghiVSoW0tDQUFBRg6NChWLBgAWJjYxEbG9vo+zo5OWHXrl3IycnB4MGDERcXhzfffFNv3dGjR8PT0xPe3t6YO3cuJkyYgOTkZIP3URBb+qhZC1FaWgqVSoVQTIGNYNvezSEiIiKi29SI1fgeX6OkpMTgXgJT0f4vedfrCbAyIK1Ll6aiAudXvGKW+9WZtHhUOiIiIiIiMlBzeoDYjWESDIyIiIiIiEzFBIMvUPMwMCIiIiIiMhUGRmaLgy8QEREREZHFY48REREREZGJNGeUOXMYlc4SMDDqiAQrncn6Md/F2tr2aA1RmxGsraVpUaPzV0HUtENriFrZH9dyXsepM+N1nDoSBkZERERERKbCe4zMFgOjDkj31xf+0kidmqB7GyTPb+qcZL+o8zpOnY0sy6W+l0i04FOdqXTmi4EREREREZEpMdAxSwyMOiKdvFxRw4EFqRNjDjoRUcfG6zh1IAyMiIiIiIhMhfcYmS0GRh2Qbj46bOo/QrGmuh1aQ9R2BIWiflrn3gtNVVV7NIeoVWnvEW3sPOf9RtQZyP5n0bnfyJLPb95jZL4YGBERERERmQp7jMwWAyMiIiIiIhNhj5H5YmDUAcm6nzX8plDnJVbX6LzgDbzUuWgfdqmpqGwwj6izkKfMWW76nAx7jMwWhzQjIiIiIiKLxx6jDkj3F0VB555G2cMw+es6dQY8j8kS8DwnS8GHdtdhj5HZYmBERERERGQivMfIfDEw6uh0f2nkr45tr6P2ynXUduvgvRdkETro97ND6QTXww6Lx7sOe4zMFgMjIiIiIiJTYWBkthgYdUDWzl2kaUFhK03XXrsuTVvyg9PaFH/tanO6DwO0UjlL02J5hTStKS83aZuI2oLVHw92tXJylObV3rghTfM63kZ4HTcpqy5d9M6vLSmtf2FhnwlT6cwXR6UjIiIiIiKL166B0cGDBzF58mR4eXlBEAT861//ki0XRRHx8fHw8vKCvb09QkND8dNPP0nLr127hueeew6+vr5wcHBA7969ERMTg5KSEr3vV1lZiXvvvReCICArK6sN96yNaTRSEatrpCLY2EqFSEbU1JeORCPWF0GQimBtLetZIuqQrATASoBYUyMV7bnN85s6NMGqvuiqrZWKRZ/rYjMLtbl2DYzKysowaNAgbN68We/yt956C+vXr8fmzZtx/PhxqNVqjBkzBjdv3gQAFBYWorCwEGvXrkV2dja2b9+OlJQUzJ49W+/2XnzxRXh5ebXZ/hARERER3Yk2lc7YQm2vXe8xGj9+PMaPH693mSiK2LBhA+Li4jBt2jQAwIcffggPDw988sknmDdvHgIDA/Hll19K6/Tr1w+rVq3CX/7yF9TU1MDGpn739uzZg9TUVHz55ZfYs2dP2+4YEREREZE+HHzBbJntPUYXLlxAUVERwsLCpHlKpRIhISE4fPhwo+uVlJTA2dlZFhRdvnwZ0dHR+Oijj+Dg4GDQ+1dWVqK0tFRWzIVYWam3EHUGokasL+UVUoEo1hd9KRpEHYyUCl1RKRWiTkEnfVu8dau+6KSNWjSm0rVYXl5em9waY7b/WRQVFQEAPDw8ZPM9PDykZbcrLi7GX//6V8ybN0+aJ4oioqKiMH/+fAwdOtTg91+9ejVUKpVUevXq1Yy9ICIiIiKqJzSztKV58+ahX79+sLe3R/fu3TFlyhT897//ldW5fv06IiMjpf+NIyMjcUNnJE0AuHjxIiZPngxHR0e4ubkhJiYGVVVVsjrZ2dkICQmBvb09evTogRUrVkAUWxb5aQMlbVEoFPDx8cHKlSuN2rbZBkZagiA/FURRbDAPAEpLSzFx4kT4+/tj+fLl0vxNmzahtLQUy5YtM+p9ly1bhpKSEqnk5+c3bwfagO4v6ro3p2uqqqRC1Cno/upYVVVfaqoh1lS3d+uIWkZ3UJQ/iqa6RipEnY3ugFHa6ziv5aYRGhqK7du3N7p8yJAh2LZtG3Jzc/Hvf/8boigiLCwMtTqPDYiIiEBWVhZSUlKQkpKCrKwsREZGSstra2sxceJElJWV4dChQ/jss8/w5ZdfYvHixVKd0tJSjBkzBl5eXjh+/Dg2bdqEtWvXYv369a2yn3v37sWlS5fw888/44033sCqVauQmJho8PpmGxip1WoAaNA7dOXKlQa9SDdv3sS4cePg5OSEHTt2wNa2flS2/fv3Iz09HUqlEjY2NvDx8QEADB06FLNmzWr0/ZVKJZydnWWFiIiIiKhFzDCVbu7cuXjooYfg7e2N++67DytXrkR+fj7y8vIAALm5uUhJScEHH3yAoKAgBAUFYcuWLfjmm29w5swZAEBqaipycnLw8ccfY/DgwRg9ejTWrVuHLVu2SLekJCUloaKiAtu3b0dgYCCmTZuGV155BevXr79jz86xY8cwePBg2NnZYejQoTh58qTeet26dYNarUafPn0wY8YMBAcHIzMz0+DjYLaBUd++faFWq5GWlibNq6qqwoEDBxAcHCzNKy0tRVhYGBQKBXbu3Ak7OzvZdt555x2cOnUKWVlZyMrKwu7duwEAycnJWLVqlWl2ppUJVoJU9P3i2OGGZCYygKynlKgTkZ3bvI5TZ8bzG0DLRqW7/f73yja4x7ysrAzbtm1D3759pVtJjhw5ApVKhWHDhkn1hg8fDpVKJd37f+TIEQQGBspGgB47diwqKyuRkZEh1QkJCYFSqZTVKSwslIIwfe2ZNGkSfH19kZGRgfj4eCxZsqTJ/Thx4gQyMzNlbW5Ku45K9/vvv+OXX36RXl+4cAFZWVlwdXVF7969sWjRIiQkJKB///7o378/EhIS4ODggIiICAB1PUVhYWG4desWPv74Y9kgCd27d4e1tTV69+4te08nJycAdSPY9ezZ00R7SkRERESEFo1Kd/s978uXL0d8fHxrtArvvvsuXnzxRZSVleGee+5BWloaFAoFgLoMLnd39wbruLu7S9ldRUVFDbK6XFxcoFAoZHW8vb1ldbTrFBUVoW/fvg3eIykpCbW1tUhMTISDgwMCAgJQUFCAZ555pkHd4OBgWFlZoaqqCtXV1Zg7dy5mzpxp8DFo18DoxIkTGDVqlPQ6NjYWADBr1ixs374dL774IsrLy7FgwQJcv34dw4YNQ2pqKrp06QIAyMjIwNGjRwFASpHTunDhQoMDT0RERETU7pqZ/JCfny+7vUO350VXQkICEhISpNfl5eVIT0/HwoULpXl79uzByJEjpdczZszAmDFjcOnSJaxduxbh4eH48ccfpWwsfff4337vf3PqaFPo9K0L1KXxDRo0SDaydFBQkN66ycnJ8PPzQ3V1NbKzsxETEwMXFxesWbNGb/3btWtgFBoaesd8QkEQEB8f32gk3NT6+nh7e7d45Iv2pntTruyJ0brDF1t4NzV1YDrnruxct6q/YIq1oMbwOtBhiH/c1CzoXMb5+ZkAj7FJNXYdt2TNeWCrtr6h973Pnz8f4eHh0usZM2Zg+vTp0rNBAaBHjx6ydbSjzfXv3x/Dhw+Hi4sLduzYgSeffBJqtRqXL19u8D5Xr16VenzUarXUYaF1/fp1VFdXy+roGz8AaDgStZYx/7f36tVL6izx8/PD+fPn8dprryE+Pr7B7Tb6mO09RkREREREZDxXV1f4+PhIxd7eHu7u7g3m3YkoitI9TEFBQSgpKcGxY8ek5UePHkVJSYl0739QUBBOnz6NS5cuSXVSU1OhVCoxZMgQqc7BgwdlQ3inpqbCy8ur0Uwvf39/nDp1CuXl5dK89PR0g46DtbU1ampqGgwZ3hgGRkREREREpmJmo9KdP38eq1evRkZGBi5evIgjR44gPDwc9vb2mDBhAoC63pdx48YhOjoa6enpSE9PR3R0tDQoAgCEhYXB398fkZGROHnyJPbt24clS5YgOjpa6uWKiIiAUqlEVFQUTp8+jR07diAhIQGxsbGNptJFRETAysoKs2fPRk5ODnbv3o21a9fqrVtcXIyioiIUFBRgz5492LhxI0aNGmXw6NIMjDo4sbZWKhztxQQEq/rSkXTUduvgqHTUqA5+bsvwOk6dGK/jdVoyKl1bsLOzww8//IAJEybAx8cH4eHhcHR0xOHDh2UDLiQlJWHAgAEICwtDWFgYBg4ciI8++khabm1tjW+//RZ2dnYYMWIEwsPDMXXqVFkQo1KpkJaWhoKCAgwdOhQLFixAbGysNM6APk5OTti1axdycnIwePBgxMXF4c0339Rbd/To0fD09IS3tzfmzp2LCRMmIDk52eBjIYgd/YYbEyktLYVKpUIopsBGsG16hbbU2D8A/EPa9jpqbnpnaLeujrQPptZRP+uW0O5zB91f3XtFxVreQNfmLPE70p5MfB2vEavxPb5GSUmJ2T2DUvu/5IDZCbBWNH2/i67aqgpkb33FLPerM2nXwReIiIiIiCxJSwZfoLbFwKgDko3qovNLjFjDX76oc+Ev6WSUjtYToG2v7Bd1nudtjSNcmpZs9Fyd76VFH/sWPMeI2lYnScomIiIiIiJqPvYYERERERGZCnuMzBYDow5OlhLQju0g89YZUkc6wz6YAo8TEZmVjpDWamK8x8h8MTAiIiIiIjIV9hiZLQZGREREREQmIogiBCOflmNsfWoeBkYdkO7oXJb+kDQyTEc9T8Sa6vZuAlHb+SPFiCOKmlZHvR52VBxRVA/2GJktjkpHREREREQWjz1GREREREQmwsEXzBcDo46Oo72YVkc93h213WQ0i0wT4vlNxuD5Qu2NqXRmi4EREREREZGJsMfIfDEwIiIiIiIyFfYYmS0GRh2doDN+BtMDqLPh+W08HqeOh+c5WQqe6wDYY2TOOCodERERERFZPPYYERERERGZClPpzBYDow5OsBKkaZHPUKPOjCkY1EnJruManufUyehcu/k/Sz2mxpknBkZERERERKYiinXF2HWozTEwIiIiIiIyEQ6+YL4YGHVwFvkwR7JMTCuiTkp2Hed5Tp0Y/2chc8fAiIiIiIjIVDj4gtliYEREREREZCKCpq4Yuw61PQZGHR3TLqgz4/lNloDnOXVmPL8bYo+R2WJgRERERERkIhx8wXwxMCIiIiIiMhUO1222rJquQkQSwaq+dCQdtd1kPEv+rC1538lwPE+IOry8vDwIgoCsrKxW3S6vCkREREREJqJNpTO2tJVr167hueeeg6+vLxwcHNC7d2/ExMSgpKREVu/69euIjIyESqWCSqVCZGQkbty4Iatz8eJFTJ48GY6OjnBzc0NMTAyqqqpkdbKzsxESEgJ7e3v06NEDK1asgNjCHjFtoKQtCoUCPj4+WLlypVHbZiodEREREZGptMPgC6GhoYiKikJUVFSDZYWFhSgsLMTatWvh7++PX3/9FfPnz0dhYSG++OILqV5ERAQKCgqQkpICAJg7dy4iIyOxa9cuAEBtbS0mTpyI7t2749ChQyguLsasWbMgiiI2bdoEACgtLcWYMWMwatQoHD9+HGfPnkVUVBQcHR2xePHilu0kgL179yIgIACVlZU4dOgQ5syZA09PT8yePdug9RkYERFRx8aUKCLqQMxt8IXAwEB8+eWX0ut+/fph1apV+Mtf/oKamhrY2NggNzcXKSkpSE9Px7BhwwAAW7ZsQVBQEM6cOQNfX1+kpqYiJycH+fn58PLyAgCsW7cOUVFRWLVqFZydnZGUlISKigps374dSqUSgYGBOHv2LNavX4/Y2FgIgqC3jceOHcO8efOQm5uLwMBAxMXF6a3XrVs3qNVqAECfPn2QmJiIzMxMgwMj/jUhIiIiIjIV7eALxhbU9bjolsrKyjZpYklJCZydnWFjU9eHcuTIEahUKikoAoDhw4dDpVLh8OHDUp3AwEApKAKAsWPHorKyEhkZGVKdkJAQKJVKWZ3CwkLk5eXpbUtZWRkmTZoEX19fZGRkID4+HkuWLGlyH06cOIHMzExZm5vCwKij402kpiVq6ktH0lHbTcYz18+6La9TuvtsjvveFF7HTaujniedAc91AC27x6hXr17SPT4qlQqrV69u9fYVFxfjr3/9K+bNmyfNKyoqgru7e4O67u7uKCoqkup4eHjIlru4uEChUNyxjva1ts7tkpKSUFtbi8TERAQEBGDSpElYunSp3rrBwcFwcnKCQqHA/fffj/DwcMycOdPAPWcqHRERERFRh5Cfnw9nZ2fptW7Pi66EhAQkJCRIr8vLy5Geno6FCxdK8/bs2YORI0fK1istLcXEiRPh7++P5cuXy5bpS3MTRVE2vzl1tIMjNJZGl5ubi0GDBsHBwUGaFxQUpLducnIy/Pz8UF1djezsbMTExMDFxQVr1qzRW/92DIyIiIiIiEylBYMvODs7ywKjxsyfPx/h4eHS6xkzZmD69OmYNm2aNK9Hjx6ydW7evIlx48bByckJO3bsgK2trbRMrVbj8uXLDd7n6tWrUo+PWq3G0aNHZcuvX7+O6upqWZ3be4auXLkCAA16krSMGVWuV69e8PHxAQD4+fnh/PnzeO211xAfHw87O7sm17fsvkwiMm+6aRdMwehwBGvrBoUaEqwEqfA8p05H55yWnesWzBTDdbu6usLHx0cq9vb2cHd3bzBPq7S0FGFhYVAoFNi5c2eDICIoKAglJSU4duyYNO/o0aMoKSlBcHCwVOf06dO4dOmSVCc1NRVKpRJDhgyR6hw8eFA2hHdqaiq8vLzg7e2td1/8/f1x6tQplJeXS/PS09MNOg7W1taoqalpMGR4Y3jlJSIiIiIyFY3YvNJGbt68ibCwMJSVlWHr1q0oLS1FUVERioqKUFtbC6Cu92XcuHGIjo5Geno60tPTER0dLQ2KAABhYWHw9/dHZGQkTp48iX379mHJkiWIjo6WerkiIiKgVCoRFRWF06dPY8eOHUhISLjjiHQRERGwsrLC7NmzkZOTg927d2Pt2rV66xYXF6OoqAgFBQXYs2cPNm7ciFGjRhnUywYwlY6IiIiIyHTa4TlGd5KRkSGlwGnT0LQuXLgg9eQkJSUhJiYGYWFhAIBHHnkEmzdvlupaW1vj22+/xYIFCzBixAjY29sjIiJCFsSoVCqkpaXh2WefxdChQ+Hi4oLY2FjExsY22j4nJyfs2rUL8+fPx+DBg+Hv748333wT06dPb1B39OjRUls8PT0xYcIErFq1yuBjIYgtfdSshSgtLYVKpUIopsBGsG16BSIiIiIyqRqxGt/ja2m4aXOi/V9yxOg3YGPT9P0uumpqKvDj3uVmuV+dCVPpiIiIiIjI4jGVjoiIiIjIVHQe2GrUOtTmGBgRdUC6o3s1NtKXqHOjpvjHzZN/LGjmmxrZwdwKD0/U3Tfd/eGDGYnIbOheG3ltIgM0Z5Q5Y+tT8zAwIiIiIiIyFTMbfIHqmfU9RvHx8RAEQVbUarW0/KuvvsLYsWPh5uYGQRCQlZUlW//atWt47rnn4OvrCwcHB/Tu3RsxMTEoKSkx8Z4QEREREQGCKDarUNsz+x6jgIAA7N27V3ptrZNaU1ZWhhEjRuCxxx5DdHR0g3ULCwtRWFiItWvXwt/fH7/++ivmz5+PwsJCfPHFFyZpP3UyZpIyIUsrQ60BdVrlTeunG0ura+Vj0ur7YAnM5BwlI/Az69j4mRmO53odzR/F2HWozZl9YGRjYyPrJdIVGRkJAMjLy9O7PDAwEF9++aX0ul+/fli1ahX+8pe/oKamBjY2Zr/7RERERERkAmadSgcAP//8M7y8vNC3b1888cQTOH/+fIu2px3/vamgqLKyEqWlpbJCRERERNQSTKUzX2YdGA0bNgz//Oc/8e9//xtbtmxBUVERgoODUVxc3KztFRcX469//SvmzZvXZN3Vq1dDpVJJpVevXs16T+pcBCtBKu1K1EhFrK3VW3TrtHq7dbYtK63NVO/TiQjW1lKBYFVfOjPd/bSE/SXj6Zwbgo2tVMgE+L1sSGxmoTZn1mfp+PHjMX36dAwYMACjR4/Gt99+CwD48MMPjd5WaWkpJk6cCH9/fyxfvrzJ+suWLUNJSYlU8vPzjX5PIiIiIiIZ7XOMjC3U5jrUTTaOjo4YMGAAfv75Z6PWu3nzJsaNGwcnJyfs2LEDtrZN/0qkVCqhVCqb21QiIiIiogb4HCPzZdY9RrerrKxEbm4uPD09DV6ntLQUYWFhUCgU2LlzJ+zs7NqwhdQp6UvT6QgpAY2ljnSkfSDD6H7Wuql0FsZsUl2NxTRRk5KdJ7wemhbP9TrsMTJbZt1jtGTJEkyePBm9e/fGlStXsHLlSpSWlmLWrFkA6p5TdPHiRRQWFgIAzpw5AwBQq9VQq9W4efMmwsLCcOvWLXz88ceyQRS6d+8uG/qbiIiIiIgsl1kHRgUFBXjyySfx22+/oXv37hg+fDjS09PRp08fAMDOnTvx1FNPSfWfeOIJAMDy5csRHx+PjIwMHD16FADg4+Mj2/aFCxfg7e1tmh0hIiIiIgIgaOqKsetQ2zPrwOizzz674/KoqChERUU1ujw0NBQiux6JiDq1Dpc6R6ank7rFB0ebmKWnzenTnNQ4/j9rEmYdGBERERERdSrNGX6bcZFJMDAiIiIiIjKR5jywlQ94NQ0GRkRN0U3BqG3D99EdFamVUw/EWp2GM62hU7PEz5qpUWQU3e+FhXxHyMwwlc5scXxKIiIiIiKyeOwxIiIiIiIyFRGAsZ2V7DAyCQZGHV0bpl/RH3SOse7oV62eVtfan5+pUgCp/clSgyxvhDZ9o9LxnKfGMPWS2hvvMTJfDIyIiIiIiExFRDPuMWqTltBtGBgREREREZkKB18wWwyMiJqgm6ZjZW8vTWvKy6Vp2Uhg5kInBdDKTilNi9U19dM11SZtktGYKmoY3XRPhaJ+fkf6rFtAsLaum7Cp/5MmllfUVzD3c4fnuUlZ6XxHdK/dnfk70q6ERsb5suRzXQPA2KxnCz5cpsRR6YiIiIiIyOIxMCIiIiIiMhHt4AvGFqqXl5cHQRCQlZXVqttlYNQRCVb1hdqcqBGloikvl4pYWysVsyRqpCJWVdUXc2+3Lp19oDswp8+6Ha5PmuoaaKprIFZWSqVDnTsdqa2dgFhTXV860vWwo9I9v3mu19HeY2RsaUPvv/8+QkND4ezsDEEQcOPGjQZ1rl+/jsjISKhUKqhUKkRGRjaod/HiRUyePBmOjo5wc3NDTEwMqqqqZHWys7MREhICe3t79OjRAytWrIDYwv3TBkraolAo4OPjg5UrVxq1bf5nTURERERkKu0QGIWGhmL79u2NLr916xbGjRuHV155pdE6ERERyMrKQkpKClJSUpCVlYXIyEhpeW1tLSZOnIiysjIcOnQIn332Gb788kssXrxYqlNaWooxY8bAy8sLx48fx6ZNm7B27VqsX7++RfuntXfvXly6dAk///wz3njjDaxatQqJiYkGr8/BF4iIiIiITMUMR6VbtGgRAOD777/Xuzw3NxcpKSlIT0/HsGHDAABbtmxBUFAQzpw5A19fX6SmpiInJwf5+fnw8vICAKxbtw5RUVFYtWoVnJ2dkZSUhIqKCmzfvh1KpRKBgYE4e/Ys1q9fj9jYWAiC/lEpjh07hnnz5iE3NxeBgYGIi4vTW69bt25Qq9UAgD59+iAxMRGZmZmYPXu2QceBPUYdEbuiTUs3TamDpl3I2t2Rzh+mjRqt3T/rxt5T97Ns7c+0g38/eZ6bVrt/R4yh73vTVt8jMh1NMwvqelx0S2VlpUmafOTIEahUKikoAoDhw4dDpVLh8OHDUp3AwEApKAKAsWPHorKyEhkZGVKdkJAQKJVKWZ3CwkLk5eXpfe+ysjJMmjQJvr6+yMjIQHx8PJYsWdJkm0+cOIHMzExZm5vCbxQRERERUQfQq1cv6R4flUqF1atXm+R9i4qK4O7u3mC+u7s7ioqKpDoeHh6y5S4uLlAoFHeso32trXO7pKQk1NbWIjExEQEBAZg0aRKWLl2qt25wcDCcnJygUChw//33Izw8HDNnzjR4P5lKR0RERERkIs0ZZU5bPz8/H87OztJ83Z4XXQkJCUhISJBel5eXIz09HQsXLpTm7dmzByNHjjS8DXrS3ERRlM1vTh3t4AiNpdHl5uZi0KBBcHBwkOYFBQXprZucnAw/Pz9UV1cjOzsbMTExcHFxwZo1a+6wZ/UYGHVE7Do3rc7wcDo+QNJymNFnLT14FYBgY1s3odMmUdPIPwaNtLux+tr3kaXQtWTf9XzndR/03Gi7G2NMWxr7/Ay57rf2591R/9aY+zWuqe9oZ/ibQ3fWgnuMnJ2dZYFRY+bPn4/w8HDp9YwZMzB9+nRMmzZNmtejRw+D316tVuPy5csN5l+9elXq8VGr1Th69Khs+fXr11FdXS2rc3vP0JUrVwCgQU+SljGjyvXq1Qs+Pj4AAD8/P5w/fx6vvfYa4uPjYWdn1+T6HfSqR0RERETUAWnE5hUjuLq6wsfHRyr29vZwd3dvMM9QQUFBKCkpwbFjx6R5R48eRUlJCYKDg6U6p0+fxqVLl6Q6qampUCqVGDJkiFTn4MGDsiG8U1NT4eXlBW9vb73v7e/vj1OnTqG8vFyal56eblC7ra2tUVNT02DI8MYwMOqIdG4WFawEqfBmzLZnZWsjFbOncz7I2t1BzxPBxlYqHbH9bUr3s1YopNLen7XuTe6ayoq6UlUlFdnzZBp5tkyjN8rruWlesLaWSssa3vA9DGpHM5/Xonsdl13Tm2hTmz8Xxtj9NJei/yBLRe+1xJTfkaba2omf+yP7jnbQv0WtwgyfY1RUVISsrCz88ssvAOqeNZSVlYVr164BqOt9GTduHKKjo5Geno709HRER0dLgyIAQFhYGPz9/REZGYmTJ09i3759WLJkCaKjo6VeroiICCiVSkRFReH06dPYsWMHEhIS7jgiXUREBKysrDB79mzk5ORg9+7dWLt2rd66xcXFKCoqQkFBAfbs2YONGzdi1KhRBvWyAQyMiIiIiIhMqDlBUdsGRu+99x4GDx6M6OhoAMBDDz2EwYMHY+fOnVKdpKQkDBgwAGFhYQgLC8PAgQPx0UcfScutra3x7bffws7ODiNGjEB4eDimTp0qC2JUKhXS0tJQUFCAoUOHYsGCBYiNjUVsbGyjbXNycsKuXbuQk5ODwYMHIy4uDm+++abeuqNHj4anpye8vb0xd+5cTJgwAcnJyQYfB0Fs6aNmLURpaSlUKhVCMQU2gm17N0ei+8uoLO+9k/y6ZBZ0fs3S7SnSGNgt224aa3d1TX0dcz9PdPZBdq5r7yUx9/abiu5nrVBI07JztBMfK+n+JR1iTXU7tKR5Guvh6nDDjpuzpq4lQKf+jpgLU/zPUiNW43t8jZKSEoN7CUxF+7/k6LtiYGOlf9CExtRoKrH3/DtmuV+dSQfIB+pADLnp2ZibKg2oq3thkd8c3MybO5tqk7Hb6QR/aHSPq6DzT6eg8wfVHP+BkbVbJ49Y0NySpsUa8/58ZOlEuudSJziv2opgV//H1krnOJl9IN8C0nliU/8nrSMFRo1dx81pII3ORFDoBNK6vx2Y+fWww+JgEg2Z4QNeqQ4DIyIiIiIiU9E0IzXO2NEwqVkYGBERERERmUpzBtSw5B42E2Jg1Fz6uoZb+yRv7BkWjaRXyNLnGtNUu1t7dJhO0IUuexZLF6f6aZ17ddo0la656TS6OfVKnRRAnZSqVkk3asMRhWTHtbHvgCVo4nOXpU3qpNJB9/h14lQ6/PEdtdJJGRUrK+unzTDVVUb3Om7mTe2odL8jVo71D4nUQDe12AzTL1uSoq/LTP7mmv130VSYSme2GBgREREREZkKU+nMloX97EpERERERNQQe4yMdaeHkRmb3tPcdCBju8Sbep/W2h9jdKDRlmRDiuo+fOz2BzC2ptY49rJR3BrZh9bQkvQOY7bX1OiKrZ0S2pYppq1Mdo7qjMwmmzZWax/DNiSluyrM51EKFqG1ruPa7Zjqb4HO96LFDwMGGv2uNHhIb4u33ZK2tsJ+NqWRz0/+N7Tp64pRx03POSiIGsDcM/aYSme2GBgREREREZmKiGYERm3SEroNAyMiIiIiIlNhj5HZYmBkLFEDwExTv8w8Ja1T0E1Da+2UNF2t8FnK0hds61OMBFsTpRu1xvnYVKqOMWl3LdFBv1stShNq7j4bMIKmUdswoE2i5o8UGlv9KVImGwmrLUfhNPN0zlZpn7HbMOK4io3duN4aqXSNnZetctqZe06YkQy4Jhh33BpWFjvC0I6aZvwvqemYf4c6GgZGRERERESmwh4js2XmP0ERERERERG1PfYYdUSd4KGpHYluGo7o6ixNC13rH/aKnF90VjCTz0H3oZGqLtK0pqebNC1k/rduuTk+2BAwn2Np7nSPk72dNFnTu7s0bZVxU5rWtOXDXlvjMzP6Ydl1v6TW6Jzbun/cNBcLWt4mg9rRhucrvwsto3v8HOofBKzpUf8dEbLK6qub6zWxIzL3NND2wB4js8XAiIiIiIjIVPiAV7PFwIiIiIiIyEREUQPRyF5gY+tT8zAwMpa+B7yay8na2g/UNCRlr6kRZjrQg1wbpdPusr71qXRX763/+vQtKpama4rrp81Fbdf61JELjzhK0/1/6wEAqDmfZ+omURup7Vr/+Z57zEGavvuGd32l3LMtfyMzSo8Rq2sAAMUB9fsr+PWWpt0+uiJNt0oaoan2vQM9ZLgj0TjXXw9/nVyfZnzXjV7SdM0v503aJovRUf8PaG2iaHwPEFPpTIKBERERERGRqYjNSKVjYGQS/AmKiIiIiIgsHnuMmqs9u4NN9d6GvE9TdTpBt7nugyJtyuv3Z0BYfTrST9W+0nSv9ZkAAE1lhQEbb7vfJgSr+gfQWpXVpw+53Vs/8tKZhZ4AgLuX16f/1d6sH73sDhtvhRYaoKnzh+lFAG77rCvrR9Ny97sqTf/3JZU07be4mzTd7NRPM/puC9YKAIBtef0vqq5zfpWmf/9tsDRt/80JabrZD35tj303o+PdIelcK4SqGmm65u5b0vR/n3OXpn3fuC5N116rn6ZmMNW5K33GVkZ3xpicRgMIxo6+yWuAKTAwIiIiIiIyFabSmS0GRkREREREJiJqNBCN7DHiqHSmwcDISFb2SlgJClip6kcngyA0vsLtjKnbGJ1RlbSjMQGAoPPQOljppBhpdL5M2tQRKyNTkBqrr/sLhnbfdPdRd7nOtHjz9/om/V6mU8f8vviizsgxyiP/labPfD5Qmj790j+kaX/bZwAA3ht/kubVltanp+mmPemm6cnSwqxa4TzRIf6cJ03bvlff7m1/ew8AMMt+rjTPb02hNK258lv9NnTPNd32NZbO1hr7oJvq1Bppc618XM2GzndO/KU+hcxuQ6A0/cMHf5Omw96fL017v9xVmtZc/F/9dv54wKWVvc51Rfd8tTafNEbt98j1+4vSvJzQHtJ09t/fkaZHqxZJ0647TkvTmlv1KVWCQlE/bfPHn0nda6DuNa4l51TtH9c73fPcpv7Psu71wZB/ioQ/viPt/Q+UoPNdbawtQit8n3W3rW97svfWuY6LF+of+NvnAz9pes4//p80/Yrdn6VpvxX19cU/ruW6aZiy74iNzneksb+buudPY38v9dH39/ZO8/XVaew9Gluvsfc3pm6lzkiQut8XW1v96za1bV06/9+It8r/eOsqoKTpVdsVe4zMlvn8ZSMiIiIiImon7DEiIiIiIjIVjQgI7DEyR4IoWs6Rfvfdd/H222/j0qVLCAgIwIYNGzBy5EiD1i0tLYVKpcIomz/DRrCFlZ2yeY1ohVQ6saY+pUk3PUBQ6HRL63bhN3fkpcYY0oXfBLGqfuQsg0ZvMxc66RrWTvUP0vzf7AHStPqRunSekm31Dwvsti9P//ZsdX6b0E0rsG4kbacpup9Hjc7nrpPKJ5bXH+9r0+ra/eiLe6V57x0Jlabv2Vyf5ijk1adZCTr7DmV92pHsvDMm1Up3H2t10l902irbnjbFSJbSZMD7WRmQwqKdb8il0ZDPxphLrG5KnBGfu6CT5ij+dq1+urJSmi6ZOkiafjb+c2l69U/jpGnPDfWfpe3pvLpt66bP6aR5GZR6YyrVddcTTUn9eW7VzUWazl3tJU2P9qtPh/3v6vpUQ6cDOg+91b2uavdfN0VKlgJr5L7rng9/XJvF6vrroaDU+dtiyDnd1DXYkPQrXa3xWRqTHtaS92xq27rb1U250knl1v17WjauPs3YZVF9SurpLG9p+u7E0rqJ/+o8ALax64puUwxJqzOXf8daOZVONvqjTn3ZtaUV9l37PjViFfaXJ6OkpATOzs5NrGVa2v8l/6R4DDZCE6mEt6kRq7G/6nOz3K/OxGJS6ZKTk7Fo0SLExcXh5MmTGDlyJMaPH4+LFy82vTIRERERUSsQNWKzSkcQGhqKRYsWtXczms1iAqP169dj9uzZmDNnDvz8/LBhwwb06tUL//jHP5pemYiIiIioNYia5pU2VFlZieeeew5ubm5wdHTEI488goKCgqZXbEJoaCgEQYAgCLCysoKHhwcee+wx/Prrr02v3A4sIpWuqqoKDg4O+Pzzz/Hoo49K859//nlkZWXhwIEDDdaprKxEpU4aSmlpKXr16oVQTDG6+5M6P92UAO2IhYKdnTRPN3VDd/Qrk/0C1NjIUH+0W3eURcHBQZrW6DzYUFPegVIeLYzuKIGyc0p31C495yggT4sUr92QpmvLbjXYRoeik/ZqpZOyatVVpVOn/rhpbpTWT3ek9F5qNbLvSJcu9fOdnaRp8Y90Td2RRjvsd6STqhGr8T2+NsuUM20qXajwaLNS6b4XdzR7v0JDQxEVFYWoqCi9y5955hns2rUL27dvR7du3bB48WJcu3YNGRkZsNZNezTgfe69915s2LBBen333XdjxYoVEEURv/76KxYtWgRbW1v88MMPRu9HW7OIHqPffvsNtbW18PDwkM338PBAUVGR3nVWr14NlUollV69eumtR0RERETUUZWUlGDr1q1Yt24dRo8ejcGDB+Pjjz9GdnY29u7d2+h6ZWVlmDlzJpycnODp6Yl169bprefg4AC1Wg1PT08MHz4czz77LDIzM9tqd1rEokalE267SVAUxQbztJYtW4bY2FjpdUlJCXr37o0aVBs99Dx1foLOL4ZWmrpnNgga3Wd51D/HQSNW68xv5x6jP+Zr2wwAgqb+lyFNI+0m8yKIOj1GYiM9RnrOUQAQNPV/BnTP01rt591hfw3X6THSOSa6+y7rMeK5bvFk3xFR9ztSnz2i/Y7U6p4jHfY70jnVoO6zMeeEqBqx0ujzRrtfpaWlsvlKpRJKZTMHBPtDRkYGqqurERYWJs3z8vJCYGAgDh8+jLFjx+pdb+nSpfjuu++wY8cOqNVqvPLKK8jIyMC9997b6Htdu3YNn3/+OYYNG9aiNrcViwiM3NzcYG1t3aB36MqVKw16kbRuP9G0J+Ih7G67hlLHpTvw3/VGa5kfbbt129yR2k91DBl4srFztLN+3rr/E+nEQrhq6oZQh6H7HbnRyDR1GDdv3oRKpWq6ogkpFAqo1WocKmre/5JOTk4NMpiWL1+O+Pj4FrWrqKgICoUCLi4usvl3yqz6/fffsXXrVvzzn//EmDFjAAAffvghevbs2aDuu+++iw8++ACiKOLWrVu4++678e9//7tFbW4rFhEYKRQKDBkyBGlpabJ7jNLS0jBlyhSDtuHl5YWcnBz4+/sjPz/f7PJWzYn2fiwep6bxWBmGx8kwPE6G4XEyDI+TYXicDGeKYyWKIm7evAkvL6+mK5uYnZ0dLly4gKqqqqYr66Ev06mx3qKEhAQkJCRIr8vLy5Geno6FCxdK8/bs2XPHx9bcKbPq3LlzqKqqQlBQkDTP1dUVvr6+DerOmDEDcXFxAIDLly8jISEBYWFhyMjIQBed+/nMgUUERgAQGxuLyMhIDB06FEFBQXj//fdx8eJFzJ8/36D1rays0KNHDwCAs7MzL34G4HEyHI+VYXicDMPjZBgeJ8PwOBmGx8lwbX2szK2nSJednR3sdAZnaivz589HeHi49HrGjBmYPn06pk2bJs3T/l+rVqtRVVWF69evy3qNrly5guDgYL3bNyZVUaVSwcfHBwDg4+ODrVu3wtPTE8nJyZgzZ45R+9XWLCYwevzxx1FcXIwVK1bg0qVLCAwMxO7du9GnT5/2bhoRERERUatxdXWFq6ur9Nre3h7u7u5SgKJryJAhsLW1RVpamhRMXbp0CadPn8Zbb72ld/s+Pj6wtbVFeno6evfuDQC4fv06zp49i5CQkDu2TTvKXXl5ebP2rS1ZTGAEAAsWLMCCBQvauxlERERERGZBpVJh9uzZWLx4Mbp16wZXV1csWbIEAwYMwOjRo/Wu4+TkhNmzZ2Pp0qXo1q0bPDw8EBcXByurhgNe37p1S7pX6fLly1i5ciXs7Oxkgz2YC4sKjFpKqVRi+fLlLR79o7PjcTIcj5VheJwMw+NkGB4nw/A4GYbHyXA8Vubrb3/7G2xsbBAeHo7y8nI8/PDD2L59+x2fYfT222/j999/xyOPPIIuXbpg8eLFKCkpaVBvy5Yt2LJlCwDAxcUFAwcOxO7du/Xej9TeLOIBr0RERERERHdiEQ94JSIiIiIiuhMGRkREREREZPEYGBERERERkcVjYERERERERBaPgZER3n33XfTt2xd2dnYYMmQIfvjhh/ZuUrsx9lhUVlYiLi4Offr0gVKpRL9+/ZCYmGii1raPgwcPYvLkyfDy8oIgCPjXv/51x/pfffUVxowZg+7du8PZ2RlBQUH497//bZrGtiNjjxMAJCUlYdCgQXBwcICnpyeeeuopFBcXt31j29Hq1atx//33o0uXLnB3d8fUqVNx5swZg9f/8ccfYWNjg3vvvbftGmnm/vGPf2DgwIHSwyWDgoKwZ8+e9m5Wu2jOsbDE6/jtVq9eDUEQsGjRokbrWOq1XJchxwmwzGs5mTcGRgZKTk7GokWLEBcXh5MnT2LkyJEYP348Ll682N5NM7nmHIvw8HDs27cPW7duxZkzZ/Dpp5/innvuMWGrTa+srAyDBg3C5s2bDap/8OBBjBkzBrt370ZGRgZGjRqFyZMn4+TJk23c0vZl7HE6dOgQZs6cidmzZ+Onn37C559/juPHj5vd07Nb24EDB/Dss88iPT0daWlpqKmpQVhYGMrKyppct6SkBDNnzsTDDz9sgpaar549e2LNmjU4ceIETpw4gT/96U+YMmUKfvrpp/Zumsk151hY4nVc1/Hjx/H+++9j4MCBd6xnqddyLUOPk6Vey8nMiWSQBx54QJw/f75s3j333CO+/PLL7dSi9mPssdizZ4+oUqnE4uJiUzTPLAEQd+zYYfR6/v7+4htvvNH6DTJThhynt99+W7zrrrtk89555x2xZ8+ebdgy83PlyhURgHjgwIEm6z7++OPiq6++Ki5fvlwcNGhQ2zeuA3FxcRE/+OCD9m6GWbjTsbD06/jNmzfF/v37i2lpaWJISIj4/PPPG7W+pVzLjTlOvJaTOWKPkQGqqqqQkZHR4Am9YWFhOHz4cDu1qn0051js3LkTQ4cOxVtvvYUePXrg7rvvxpIlS1BeXm6KJndYGo0GN2/ehKura3s3xawEBwejoKAAu3fvhiiKuHz5Mr744gtMnDixvZtmUtqH6DV1fmzbtg3nzp3D8uXLTdGsDqO2thafffYZysrKEBQU1N7NaVeGHAtLv44/++yzmDhxIkaPHm30upZ0LTfmOPFaTubIpr0b0BH89ttvqK2thYeHh2y+h4cHioqK2qlV7aM5x+L8+fM4dOgQ7OzssGPHDvz2229YsGABrl27ZnH56cZYt24dysrKEB4e3t5NMSvBwcFISkrC448/joqKCtTU1OCRRx7Bpk2b2rtpJiOKImJjY/Hggw8iMDCw0Xo///wzXn75Zfzwww+wseHlHgCys7MRFBSEiooKODk5YceOHfD392/vZrULY46FJV/HP/vsM2RmZuL48ePNWt9SruXGHidey8kcscfICIIgyF6LothgnqUw5lhoNBoIgoCkpCQ88MADmDBhAtavX4/t27dbzK+Nxvr0008RHx+P5ORkuLu7t3dzzEpOTg5iYmLw+uuvIyMjAykpKbhw4QLmz5/f3k0zmYULF+I///kPPv3000br1NbWIiIiAm+88QbuvvtuE7bOvPn6+iIrKwvp6el45plnMGvWLOTk5LR3s9qFMcfCUq/j+fn5eP755/Hxxx/Dzs7O6PUt5VrenOPEazmZpXZN5OsgKisrRWtra/Grr76SzY+JiREfeuihdmpV+2jOsZg5c6bYr18/2bycnBwRgHj27Nk2a6s5gRH3GH322Weivb29+M0337Rto8yQIcfpL3/5i/jnP/9ZNu+HH34QAYiFhYVt2DrzsHDhQrFnz57i+fPn71jv+vXrIgDR2tpaKoIgSPP27dtnohabt4cfflicO3duezfDLNzpWFjqdXzHjh0NvkcAREEQRGtra7GmpqbRdS3pWt6c42Tp13IyT+wxMoBCocCQIUOQlpYmm5+Wlobg4OB2alX7aM6xGDFiBAoLC/H7779L886ePQsrKyv07NmzTdvb0Xz66aeIiorCJ598wjzrRty6dQtWVvJLl7W1NYC6nsvOShRFLFy4EF999RX279+Pvn373rG+s7MzsrOzkZWVJZX58+dLvQTDhg0zUcvNmyiKqKysbO9mmIU7HQtLvY4//PDDDb5HQ4cOxYwZM5CVlSVde25nadfy5hwnS72Wk5lr17CsA/nss89EW1tbcevWrWJOTo64aNEi0dHRUczLy2vvpplcU8fi5ZdfFiMjI6X6N2/eFHv27Cn++c9/Fn/66SfxwIEDYv/+/cU5c+a01y6YxM2bN8WTJ0+KJ0+eFAGI69evF0+ePCn++uuvoig2PE6ffPKJaGNjI/79738XL126JJUbN2601y6YhLHHadu2baKNjY347rvviufOnRMPHTokDh06VHzggQfaaxdM4plnnhFVKpX4/fffy86PW7duSXVuP1a3s/RR6ZYtWyYePHhQvHDhgvif//xHfOWVV0QrKysxNTW1vZtmck0dC17HG3f7aGu8luvX1HGy1Gs5mTcGRkb4+9//Lvbp00dUKBTifffdZ9AwuZ3VnY7FrFmzxJCQEFn93NxccfTo0aK9vb3Ys2dPMTY2VvYPXWf03XffiQAalFmzZomi2PA4hYSE3LF+Z2XscRLFuiFd/f39RXt7e9HT01OcMWOGWFBQYPrGm5C+YwRA3LZtm1RH37HSZemB0dNPPy1dt7p37y4+/PDDFhkUiWLTx4LX8cbd/g8/r+X6NXWcRNEyr+Vk3gRRZH8lERERERFZNt5jREREREREFo+BERERERERWTwGRkREREREZPEYGBERERERkcVjYERERERERBaPgREREREREVk8BkZERERERGTxGBgREREREZHFY2BERNSJxcfH4957723vZhAREZk9QRRFsb0bQURExhME4Y7LZ82ahc2bN6OyshLdunUzUauIiIg6JgZGREQdVFFRkTSdnJyM119/HWfOnJHm2dvbQ6VStUfTiIiIOhym0hERdVBqtVoqKpUKgiA0mHd7Kl1UVBSmTp2KhIQEeHh4oGvXrnjjjTdQU1ODpUuXwtXVFT179kRiYqLsvf73v//h8ccfh4uLC7p164YpU6YgLy/PtDtMRETUhhgYERFZmP3796OwsBAHDx7E+vXrER8fj0mTJsHFxQVHjx7F/PnzMX/+fOTn5wMAbt26hVGjRsHJyQkHDx7EoUOH4OTkhHHjxqGqqqqd94aIiKh1MDAiIrIwrq6ueOedd+Dr64unn34avr6+uHXrFl555RX0798fy5Ytg0KhwI8//ggA+Oyzz2BlZYUPPvgAAwYMgJ+fH7Zt24aLFy/i+++/b9+dISIiaiU27d0AIiIyrYCAAFhZ1f8u5uHhgcDAQOm1tbU1unXrhitXrgAAMjIy8Msvv6BLly6y7VRUVODcuXOmaTQREVEbY2BERGRhbG1tZa8FQdA7T6PRAAA0Gg2GDBmCpKSkBtvq3r172zWUiIjIhBgYERHRHd13331ITk6Gu7s7nJ2d27s5REREbYL3GBER0R3NmDEDbm5umDJlCn744QdcuHABBw4cwPPPP4+CgoL2bh4REVGrYGBERER35ODggIMHD6J3796YNm0a/Pz88PTTT6O8vJw9SERE1GnwAa9ERERERGTx2GNEREREREQWj4ERERERERFZPAZGRERERERk8RgYERERERGRxWNgREREREREFo+BERERERERWTwGRkREREREZPEYGBERERERkcVjYERERERERBaPgREREREREVk8BkZERERERGTx/j9ulMg7OjVq2AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+EAAAF0CAYAAABMjTg/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZmhJREFUeJzt3XV4VGfax/HfxBNIgoQkBIK7W3F3KRUqVKDUy3bZCtttS5UqbG15K9Btt4VuKbWlLhQoXlyLe/AQJEZC/Lx/hAwZMvGZOZnJ93NducicOTNzTzgz59yP3I/FMAxDAAAAAADA6bzMDgAAAAAAgMqCJBwAAAAAABchCQcAAAAAwEVIwgEAAAAAcBGScAAAAAAAXIQkHAAAAAAAFyEJBwAAAADARUjCAQAAAABwEZJwAAAAAABchCQcAAAU6csvv1Tr1q0VGBgoi8WirVu3mh0SAABuy2IYhmF2EAAAoGI6c+aM6tSpo+HDh+vvf/+7/P391a5dOwUFBZkdGgAAbsnH7AAAAEDFtW/fPmVmZmrcuHHq16+fQ54zNTWVJB4AUGkxHB0AABfauXOnLBaLvv76a+u2TZs2yWKxqHXr1jb7XnPNNercubOk3CHhQ4cOVe3atRUYGKiWLVvqySefVEpKinX/GTNmyGKx6MCBAwVe94knnpCfn5/Onj1r3bZ48WINGjRIISEhCgoKUq9evfT7779b77/zzjvVu3dvSdLYsWNlsVjUv39/6/0//PCDevTooaCgIAUHB2vIkCFas2aNzetOnTpVFotFmzdv1o033qjq1aurcePGkqQGDRro6quv1k8//aSOHTta39dPP/0kSZozZ45atmypKlWqqGvXrtq4cWOp/tYAAFREJOEAALhQ69atVbt2bS1evNi6bfHixQoMDNSuXbt08uRJSVJWVpaWL1+uwYMHS5L279+vkSNH6qOPPtKCBQv0yCOP6KuvvtLo0aOtzzNu3Dj5+flpzpw5Nq+ZnZ2tuXPnavTo0QoLC5MkzZ07V0OHDlVISIg++eQTffXVV6pRo4aGDRtmTcSfffZZvffee5KkV199VWvWrNHMmTMlSfPmzdO1116rkJAQff755/roo48UHx+v/v37a9WqVQXe95gxY9SkSRN9/fXXev/9963bt23bpilTpuiJJ57QN998o9DQUI0ZM0bPP/+8/vOf/+jVV1/VZ599psTERF199dW6ePFief8LAAAwlwEAAFxq3LhxRqNGjay3Bw8ebNx3331G9erVjU8++cQwDMP4448/DEnGwoULCzw+JyfHyMzMNJYvX25IMrZt22a9b8yYMUbdunWN7Oxs67ZffvnFkGT8+OOPhmEYRkpKilGjRg1j9OjRNs+bnZ1ttG/f3ujatat129KlSw1Jxtdff22zX1RUlNG2bVub10lOTjbCw8ONnj17Wrc9//zzhiTjueeeK/A+6tevbwQGBhrHjx+3btu6dashyahdu7aRkpJi3f7dd98ZkowffvjB3p8UAAC3QU84AAAuNmjQIB06dEiHDx9WWlqaVq1apeHDh2vAgAFatGiRpNzecX9/f+tw8EOHDum2225TZGSkvL295evra52jvXv3butz33XXXTp+/LhNT/vs2bMVGRmpESNGSJJWr16t8+fPa8KECcrKyrL+5OTkaPjw4dqwYYPNMPcr7d27VydPntT48ePl5XX5UqJq1aq64YYbtHbtWqWmpto85oYbbrD7XB06dFCdOnWst1u2bClJ6t+/v8288bztR44cKTQuAADcAYXZAABwsbwh5osXL1bDhg2VmZmpgQMH6vTp03rppZes9/Xq1UuBgYG6cOGC+vTpo4CAAL388stq1qyZgoKCdOzYMY0ZM8ZmiPaIESNUu3ZtzZ49W0OHDlV8fLx++OEHPfzww/L29pYknT59WpJ04403Fhrj+fPnVaVKFbv3nTt3TpJUu3btAvdFRUUpJydH8fHxNkm0vX0lqUaNGja3/fz8ityelpZWaMwAALgDknAAAFysbt26atasmRYvXqwGDRqoS5cuqlatmgYNGqQHH3xQ69at09q1a/XCCy9IkpYsWaKTJ09q2bJlNhXKExISCjy3t7e3xo8fr7ffflsJCQmaN2+e0tPTddddd1n3yZsX/s4776h79+52Y4yIiCg0/po1a0qSTp06VeC+kydPysvLS9WrV7fZbrFYCn0+AAAqE4ajAwBggsGDB2vJkiVatGiRhgwZIklq1qyZ6tWrp+eee06ZmZnWHvO8BNbf39/mOf7973/bfe677rpLaWlp+vzzzzVnzhz16NFDLVq0sN7fq1cvVatWTbt27VKXLl3s/uT1PNvTvHlz1alTR/PmzZNhGNbtKSkpmj9/vrViOgAAKIiecAAATDBo0CDNnDlTZ8+e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#verify loaded data\n", "sample=x[420]\n", "showSpec(sample)\n", "playSpec(sample)" ] }, { "cell_type": "code", "execution_count": 10, "id": "584543d0-89f7-4ae8-aedb-a01e0e110784", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "216" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(x[0][0])" ] }, { "cell_type": "code", "execution_count": 11, "id": "03accbb9-48b7-40d9-85be-9ed6a92d2e86", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "from tinygrad import TinyJit, Device, Tensor, nn\n", "from tinygrad.nn.state import safe_save, get_state_dict\n", "from model import Model\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "9aa99587-01e0-4156-84a1-15ba0c929aec", "metadata": {}, "outputs": [], "source": [ "x_np = np.array(x)[:, np.newaxis, :, :] # Shape: (N, 1, 128, 216)\n", "y_np = np.array(y)[:, np.newaxis, :, :] # Shape: (N, 1, 128, 216)\n", "\n", "# Training parameters\n", "num_epochs = 15\n", "batch_size = 20\n", "num_samples = len(x_np)\n", "num_batches = num_samples // batch_size" ] }, { "cell_type": "code", "execution_count": 13, "id": "bcf1bec0-be3f-411b-8324-7877f0ead016", "metadata": {}, "outputs": [], "source": [ "model = Model()\n", "optimizer = nn.optim.Adam(nn.state.get_parameters(model), lr=1e-3)" ] }, { "cell_type": "code", "execution_count": 24, "id": "ea3a98ca-756b-4658-9c4a-3cbc36c61cdc", "metadata": {}, "outputs": [], "source": [ "@TinyJit\n", "def jit_step(X: Tensor, Y: Tensor,show) -> Tensor:\n", " Tensor.training = True\n", " optimizer.zero_grad()\n", " sample, loss = model.__Lcall__(X,Y)\n", " loss.backward()\n", " optimizer.step()\n", " return loss.realize()\n" ] }, { "cell_type": "code", "execution_count": 25, "id": "bc6dfda7-4249-4e22-a931-85deef0e5347", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [ { "ename": "ParameterError", "evalue": "Audio buffer is not finite everywhere", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mParameterError\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[25]\u001b[39m\u001b[32m, line 11\u001b[39m\n\u001b[32m 8\u001b[39m batch_x = Tensor(x_np[indices[start:end]])\n\u001b[32m 9\u001b[39m batch_y = Tensor(y_np[indices[start:end]])\n\u001b[32m---> \u001b[39m\u001b[32m11\u001b[39m loss = \u001b[43mjit_step\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch_x\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_y\u001b[49m\u001b[43m,\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbatch_idx\u001b[49m\u001b[43m \u001b[49m\u001b[43m%\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m4\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m==\u001b[49m\u001b[43m \u001b[49m\u001b[32;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 12\u001b[39m epoch_loss += loss.item()\n\u001b[32m 14\u001b[39m avg_epoch_loss = epoch_loss / num_batches\n", "\u001b[36mFile \u001b[39m\u001b[32m/nix/store/khnvx4lwxjcrq6n0kllvbry5q64v8dcz-python3.12-tinygrad-0.10.2/lib/python3.12/site-packages/tinygrad/engine/jit.py:250\u001b[39m, in \u001b[36mTinyJit.__call__\u001b[39m\u001b[34m(self, *args, **kwargs)\u001b[39m\n\u001b[32m 248\u001b[39m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m.fxn \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 249\u001b[39m \u001b[38;5;28;01mwith\u001b[39;00m Context(BEAM=\u001b[32m0\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m getenv(\u001b[33m\"\u001b[39m\u001b[33mIGNORE_JIT_FIRST_BEAM\u001b[39m\u001b[33m\"\u001b[39m) \u001b[38;5;28;01melse\u001b[39;00m BEAM.value):\n\u001b[32m--> \u001b[39m\u001b[32m250\u001b[39m ret = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mfxn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 251\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(params:=get_parameters(ret)): Tensor.realize(params[\u001b[32m0\u001b[39m], *params[\u001b[32m1\u001b[39m:])\n\u001b[32m 252\u001b[39m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.cnt == \u001b[32m1\u001b[39m:\n\u001b[32m 253\u001b[39m \u001b[38;5;66;03m# jit capture\u001b[39;00m\n", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[24]\u001b[39m\u001b[32m, line 9\u001b[39m, in \u001b[36mjit_step\u001b[39m\u001b[34m(X, Y, show)\u001b[39m\n\u001b[32m 7\u001b[39m optimizer.step()\n\u001b[32m 8\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m show:\n\u001b[32m----> \u001b[39m\u001b[32m9\u001b[39m \u001b[43mplaySpec\u001b[49m\u001b[43m(\u001b[49m\u001b[43msample\u001b[49m\u001b[43m.\u001b[49m\u001b[43mnumpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m[\u001b[49m\u001b[32;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 10\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m loss.realize()\n", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[6]\u001b[39m\u001b[32m, line 3\u001b[39m, in \u001b[36mplaySpec\u001b[39m\u001b[34m(spec)\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mplaySpec\u001b[39m(spec):\n\u001b[32m 2\u001b[39m S = librosa.feature.inverse.mel_to_stft(spec, sr=SAMPLE_RATE)\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m audio = \u001b[43mlibrosa\u001b[49m\u001b[43m.\u001b[49m\u001b[43mgriffinlim\u001b[49m\u001b[43m(\u001b[49m\u001b[43mS\u001b[49m\u001b[43m,\u001b[49m\u001b[43mn_iter\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m25\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43mmomentum\u001b[49m\u001b[43m=\u001b[49m\u001b[32;43m0.99\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[32m 4\u001b[39m audio = librosa.effects.preemphasis(audio) \u001b[38;5;66;03m# Reapply pre-emphasis\u001b[39;00m\n\u001b[32m 6\u001b[39m plt.figure(figsize=(\u001b[32m12\u001b[39m,\u001b[32m4\u001b[39m))\n", "\u001b[36mFile \u001b[39m\u001b[32m/nix/store/xb3jssmf8ghkxa2sib291dggp9m78rml-python3.12-librosa-0.11.0/lib/python3.12/site-packages/librosa/core/spectrum.py:2829\u001b[39m, in \u001b[36mgriffinlim\u001b[39m\u001b[34m(S, n_iter, hop_length, win_length, n_fft, window, center, dtype, length, pad_mode, momentum, init, random_state)\u001b[39m\n\u001b[32m 2816\u001b[39m inverse = istft(\n\u001b[32m 2817\u001b[39m angles,\n\u001b[32m 2818\u001b[39m hop_length=hop_length,\n\u001b[32m (...)\u001b[39m\u001b[32m 2825\u001b[39m out=inverse,\n\u001b[32m 2826\u001b[39m )\n\u001b[32m 2828\u001b[39m \u001b[38;5;66;03m# Rebuild the spectrogram\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m2829\u001b[39m rebuilt = \u001b[43mstft\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 2830\u001b[39m \u001b[43m \u001b[49m\u001b[43minverse\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2831\u001b[39m \u001b[43m \u001b[49m\u001b[43mn_fft\u001b[49m\u001b[43m=\u001b[49m\u001b[43mn_fft\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2832\u001b[39m \u001b[43m \u001b[49m\u001b[43mhop_length\u001b[49m\u001b[43m=\u001b[49m\u001b[43mhop_length\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2833\u001b[39m \u001b[43m \u001b[49m\u001b[43mwin_length\u001b[49m\u001b[43m=\u001b[49m\u001b[43mwin_length\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2834\u001b[39m \u001b[43m \u001b[49m\u001b[43mwindow\u001b[49m\u001b[43m=\u001b[49m\u001b[43mwindow\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2835\u001b[39m \u001b[43m \u001b[49m\u001b[43mcenter\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcenter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2836\u001b[39m \u001b[43m \u001b[49m\u001b[43mpad_mode\u001b[49m\u001b[43m=\u001b[49m\u001b[43mpad_mode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2837\u001b[39m \u001b[43m \u001b[49m\u001b[43mout\u001b[49m\u001b[43m=\u001b[49m\u001b[43mrebuilt\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 2838\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 2840\u001b[39m \u001b[38;5;66;03m# Update our phase estimates\u001b[39;00m\n\u001b[32m 2841\u001b[39m angles[:] = rebuilt\n", "\u001b[36mFile \u001b[39m\u001b[32m/nix/store/xb3jssmf8ghkxa2sib291dggp9m78rml-python3.12-librosa-0.11.0/lib/python3.12/site-packages/librosa/core/spectrum.py:239\u001b[39m, in \u001b[36mstft\u001b[39m\u001b[34m(y, n_fft, hop_length, win_length, window, center, dtype, pad_mode, out)\u001b[39m\n\u001b[32m 236\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ParameterError(\u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mhop_length=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mhop_length\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m must be a positive integer\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 238\u001b[39m \u001b[38;5;66;03m# Check audio is valid\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m239\u001b[39m \u001b[43mutil\u001b[49m\u001b[43m.\u001b[49m\u001b[43mvalid_audio\u001b[49m\u001b[43m(\u001b[49m\u001b[43my\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 241\u001b[39m fft_window = get_window(window, win_length, fftbins=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m 243\u001b[39m \u001b[38;5;66;03m# Pad the window out to n_fft size\u001b[39;00m\n", "\u001b[36mFile \u001b[39m\u001b[32m/nix/store/xb3jssmf8ghkxa2sib291dggp9m78rml-python3.12-librosa-0.11.0/lib/python3.12/site-packages/librosa/util/utils.py:298\u001b[39m, in \u001b[36mvalid_audio\u001b[39m\u001b[34m(y)\u001b[39m\n\u001b[32m 293\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ParameterError(\n\u001b[32m 294\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mAudio data must be at least one-dimensional, given y.shape=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00my.shape\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m\"\u001b[39m\n\u001b[32m 295\u001b[39m )\n\u001b[32m 297\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m np.isfinite(y).all():\n\u001b[32m--> \u001b[39m\u001b[32m298\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m ParameterError(\u001b[33m\"\u001b[39m\u001b[33mAudio buffer is not finite everywhere\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 300\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m\n", "\u001b[31mParameterError\u001b[39m: Audio buffer is not finite everywhere" ] } ], "source": [ "for epoch in range(num_epochs):\n", " epoch_loss = 0.0\n", " indices = np.random.permutation(num_samples)\n", " \n", " for batch_idx in range(num_batches):\n", " start = batch_idx * batch_size\n", " end = start + batch_size\n", " batch_x = Tensor(x_np[indices[start:end]])\n", " batch_y = Tensor(y_np[indices[start:end]])\n", " \n", " loss = jit_step(batch_x, batch_y,(batch_idx % 4 == 0))\n", " epoch_loss += loss.item()\n", " \n", " avg_epoch_loss = epoch_loss / num_batches\n", " print(f\"Epoch {epoch+1}/{num_epochs}, Loss: {avg_epoch_loss:.4f}\")" ] }, { "cell_type": "code", "execution_count": null, "id": "753ebcea-310b-43a0-a8d2-67994328d74a", "metadata": { "editable": true, "slideshow": { "slide_type": "" }, "tags": [] }, "outputs": [], "source": [ "nn.state.safe_save(nn.state.get_state_dict(model), \"vae_weights.safetensors\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.11" } }, "nbformat": 4, "nbformat_minor": 5 }