{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "provenance": [] }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "source": [ "**Part 1: Data Collection**" ], "metadata": { "id": "xswXCucO8zto" } }, { "cell_type": "code", "source": [ "!pip install requests" ], "metadata": { "id": "HZC_9Bp2OLYY", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "a7f6f160-4042-4dc0-9e90-ce8eed39dc90" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (2.31.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests) (3.3.2)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests) (3.6)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests) (2.0.7)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests) (2024.2.2)\n" ] } ] }, { "cell_type": "code", "source": [ "import requests\n", "import os\n", "\n", "# URL of the SQLite database to download\n", "url = \"https://www.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip\"\n", "\n", "# Directory to save the downloaded file\n", "download_dir = \"/content\"\n", "\n", "# Filename to save the downloaded file\n", "filename = os.path.join(download_dir, \"chinook.zip\")\n", "\n", "# Send a GET request to the URL to download the file\n", "response = requests.get(url)\n", "\n", "# Check if the request was successful (status code 200)\n", "if response.status_code == 200:\n", " # Write the contents of the response to the file\n", " with open(filename, 'wb') as f:\n", " f.write(response.content)\n", " print(\"Downloaded successfully:\", filename)\n", "else:\n", " print(\"Failed to download:\", response.status_code)" ], "metadata": { "id": "77FtCusxOOR0", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "9a945d97-2c08-4d28-e42d-aad74c1e948e" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Downloaded successfully: /content/chinook.zip\n" ] } ] }, { "cell_type": "code", "source": [ "!unzip -o /content/chinook.zip -d /content/chinook" ], "metadata": { "id": "MqEcAYUgORD7", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "d92a28a3-deaf-480c-bda1-c200b96e8763" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Archive: /content/chinook.zip\n", " inflating: /content/chinook/chinook.db \n" ] } ] }, { "cell_type": "code", "source": [ "!ls /content/chinook" ], "metadata": { "id": "1meTxVRNOUOi", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "8ba9a3d0-d18e-4547-a870-11a623f96f1e" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "chinook.db\n" ] } ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Wkr-IYr1dOlf" }, "outputs": [], "source": [ "import pandas as pd\n", "import sqlite3" ] }, { "cell_type": "code", "source": [ "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "c = conn.cursor()" ], "metadata": { "id": "QVK8QaC4yG-N" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "def sq(str,con=conn):\n", " return pd.read_sql('''{}'''.format(str), con)" ], "metadata": { "id": "XQ135TKkdm6U" }, "execution_count": null, "outputs": [] }, { "cell_type": "code", "source": [ "tables = sq(\n", " '''select *\n", " from sqlite_master\n", " where type='table';'''\n", " ,conn)\n", "tables" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 457 }, "id": "cJHsXcK1dp-s", "outputId": "6fe99e05-8105-432f-c16c-27f704280966" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " type name tbl_name rootpage \\\n", "0 table albums albums 2 \n", "1 table sqlite_sequence sqlite_sequence 3 \n", "2 table artists artists 4 \n", "3 table customers customers 5 \n", "4 table employees employees 8 \n", "5 table genres genres 10 \n", "6 table invoices invoices 11 \n", "7 table invoice_items invoice_items 13 \n", "8 table media_types media_types 15 \n", "9 table playlists playlists 16 \n", "10 table playlist_track playlist_track 17 \n", "11 table tracks tracks 20 \n", "12 table sqlite_stat1 sqlite_stat1 864 \n", "\n", " sql \n", "0 CREATE TABLE \"albums\"\\r\\n(\\r\\n [AlbumId] IN... \n", "1 CREATE TABLE sqlite_sequence(name,seq) \n", "2 CREATE TABLE \"artists\"\\r\\n(\\r\\n [ArtistId] ... \n", "3 CREATE TABLE \"customers\"\\r\\n(\\r\\n [Customer... \n", "4 CREATE TABLE \"employees\"\\r\\n(\\r\\n [Employee... \n", "5 CREATE TABLE \"genres\"\\r\\n(\\r\\n [GenreId] IN... \n", "6 CREATE TABLE \"invoices\"\\r\\n(\\r\\n [InvoiceId... \n", "7 CREATE TABLE \"invoice_items\"\\r\\n(\\r\\n [Invo... \n", "8 CREATE TABLE \"media_types\"\\r\\n(\\r\\n [MediaT... \n", "9 CREATE TABLE \"playlists\"\\r\\n(\\r\\n [Playlist... \n", "10 CREATE TABLE \"playlist_track\"\\r\\n(\\r\\n [Pla... \n", "11 CREATE TABLE \"tracks\"\\r\\n(\\r\\n [TrackId] IN... \n", "12 CREATE TABLE sqlite_stat1(tbl,idx,stat) " ], "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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
typenametbl_namerootpagesql
0tablealbumsalbums2CREATE TABLE \"albums\"\\r\\n(\\r\\n [AlbumId] IN...
1tablesqlite_sequencesqlite_sequence3CREATE TABLE sqlite_sequence(name,seq)
2tableartistsartists4CREATE TABLE \"artists\"\\r\\n(\\r\\n [ArtistId] ...
3tablecustomerscustomers5CREATE TABLE \"customers\"\\r\\n(\\r\\n [Customer...
4tableemployeesemployees8CREATE TABLE \"employees\"\\r\\n(\\r\\n [Employee...
5tablegenresgenres10CREATE TABLE \"genres\"\\r\\n(\\r\\n [GenreId] IN...
6tableinvoicesinvoices11CREATE TABLE \"invoices\"\\r\\n(\\r\\n [InvoiceId...
7tableinvoice_itemsinvoice_items13CREATE TABLE \"invoice_items\"\\r\\n(\\r\\n [Invo...
8tablemedia_typesmedia_types15CREATE TABLE \"media_types\"\\r\\n(\\r\\n [MediaT...
9tableplaylistsplaylists16CREATE TABLE \"playlists\"\\r\\n(\\r\\n [Playlist...
10tableplaylist_trackplaylist_track17CREATE TABLE \"playlist_track\"\\r\\n(\\r\\n [Pla...
11tabletrackstracks20CREATE TABLE \"tracks\"\\r\\n(\\r\\n [TrackId] IN...
12tablesqlite_stat1sqlite_stat1864CREATE TABLE sqlite_stat1(tbl,idx,stat)
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "variable_name": "tables", "summary": "{\n \"name\": \"tables\",\n \"rows\": 13,\n \"fields\": [\n {\n \"column\": \"type\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"table\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"name\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 13,\n \"samples\": [\n \"tracks\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"tbl_name\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 13,\n \"samples\": [\n \"tracks\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rootpage\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 236,\n \"min\": 2,\n \"max\": 864,\n \"num_unique_values\": 13,\n \"samples\": [\n 20\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sql\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 13,\n \"samples\": [\n \"CREATE TABLE \\\"tracks\\\"\\r\\n(\\r\\n [TrackId] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\\r\\n [Name] NVARCHAR(200) NOT NULL,\\r\\n [AlbumId] INTEGER,\\r\\n [MediaTypeId] INTEGER NOT NULL,\\r\\n [GenreId] INTEGER,\\r\\n [Composer] NVARCHAR(220),\\r\\n [Milliseconds] INTEGER NOT NULL,\\r\\n [Bytes] INTEGER,\\r\\n [UnitPrice] NUMERIC(10,2) NOT NULL,\\r\\n FOREIGN KEY ([AlbumId]) REFERENCES \\\"albums\\\" ([AlbumId]) \\r\\n\\t\\tON DELETE NO ACTION ON UPDATE NO ACTION,\\r\\n FOREIGN KEY ([GenreId]) REFERENCES \\\"genres\\\" ([GenreId]) \\r\\n\\t\\tON DELETE NO ACTION ON UPDATE NO ACTION,\\r\\n FOREIGN KEY ([MediaTypeId]) REFERENCES \\\"media_types\\\" ([MediaTypeId]) \\r\\n\\t\\tON DELETE NO ACTION ON UPDATE NO ACTION\\r\\n)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 8 } ] }, { "cell_type": "code", "source": [ "!pip install pandasql" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "z7ANTnJSDGEX", "outputId": "f2f0edbc-9657-464c-edc0-bd408fb66aa6" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting pandasql\n", " Downloading pandasql-0.7.3.tar.gz (26 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from pandasql) (1.25.2)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from pandasql) (2.0.3)\n", "Requirement already satisfied: sqlalchemy in /usr/local/lib/python3.10/dist-packages (from pandasql) (2.0.29)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->pandasql) (2.8.2)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->pandasql) (2023.4)\n", "Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->pandasql) (2024.1)\n", "Requirement already satisfied: typing-extensions>=4.6.0 in /usr/local/lib/python3.10/dist-packages (from sqlalchemy->pandasql) (4.11.0)\n", "Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/dist-packages (from sqlalchemy->pandasql) (3.0.3)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->pandasql) (1.16.0)\n", "Building wheels for collected packages: pandasql\n", " Building wheel for pandasql (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pandasql: filename=pandasql-0.7.3-py3-none-any.whl size=26771 sha256=adbcc05647e274d8a3fe1d4d32a12273f94fffcb49da4082f018c2a2894d6236\n", " Stored in directory: /root/.cache/pip/wheels/e9/bc/3a/8434bdcccf5779e72894a9b24fecbdcaf97940607eaf4bcdf9\n", "Successfully built pandasql\n", "Installing collected packages: pandasql\n", "Successfully installed pandasql-0.7.3\n" ] } ] }, { "cell_type": "code", "source": [ "import sqlite3\n", "import pandas as pd\n", "from pandasql import sqldf\n", "\n", "# Connect to SQLite database\n", "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "\n", "# Define query to retrieve schema information of the table\n", "schema_query = \"PRAGMA table_info(tracks)\"\n", "\n", "# Execute the query and load results into a DataFrame\n", "schema_df = pd.read_sql_query(schema_query, conn)\n", "\n", "# Close connection\n", "#conn.close()\n", "\n", "# Display the DataFrame to view the schema information\n", "print(schema_df)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ebRysuD30bGy", "outputId": "dc6ea784-7b54-4e0a-aa05-8a4b8ba3cc8c" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " cid name type notnull dflt_value pk\n", "0 0 TrackId INTEGER 1 None 1\n", "1 1 Name NVARCHAR(200) 1 None 0\n", "2 2 AlbumId INTEGER 0 None 0\n", "3 3 MediaTypeId INTEGER 1 None 0\n", "4 4 GenreId INTEGER 0 None 0\n", "5 5 Composer NVARCHAR(220) 0 None 0\n", "6 6 Milliseconds INTEGER 1 None 0\n", "7 7 Bytes INTEGER 0 None 0\n", "8 8 UnitPrice NUMERIC(10,2) 1 None 0\n" ] } ] }, { "cell_type": "code", "source": [ "import sqlite3\n", "import pandas as pd\n", "from pandasql import sqldf\n", "\n", "# Connect to SQLite database\n", "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "\n", "# Define query to retrieve schema information of the table\n", "schema_query = \"PRAGMA table_info(media_types)\"\n", "\n", "# Execute the query and load results into a DataFrame\n", "schema_df = pd.read_sql_query(schema_query, conn)\n", "\n", "# Close connection\n", "#conn.close()\n", "\n", "# Display the DataFrame to view the schema information\n", "print(schema_df)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "fTpuz24zzpur", "outputId": "84259022-7f14-4858-d25b-9e0a6e52737c" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " cid name type notnull dflt_value pk\n", "0 0 MediaTypeId INTEGER 1 None 1\n", "1 1 Name NVARCHAR(120) 0 None 0\n" ] } ] }, { "cell_type": "code", "source": [ "# Join Track and MediaType\n", "sq('''select\n", "t.name as track_name ,\n", "t.Composer,\n", "Milliseconds as duration_in_ms,\n", "t.UnitPrice ,\n", "m.Name as media_type\n", "from tracks as t\n", "join media_types as m\n", "''')" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 424 }, "id": "FIPH0lX2dteY", "outputId": "56f6948d-2d50-4b48-cba2-0f2af0f47f42" }, "execution_count": null, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " track_name \\\n", "0 For Those About To Rock (We Salute You) \n", "1 Balls to the Wall \n", "2 Fast As a Shark \n", "3 Restless and Wild \n", "4 Princess of the Dawn \n", "... ... \n", "17510 Pini Di Roma (Pinien Von Rom) \\ I Pini Della V... \n", "17511 String Quartet No. 12 in C Minor, D. 703 \"Quar... \n", "17512 L'orfeo, Act 3, Sinfonia (Orchestra) \n", "17513 Quintet for Horn, Violin, 2 Violas, and Cello ... \n", "17514 Koyaanisqatsi \n", "\n", " Composer duration_in_ms \\\n", "0 Angus Young, Malcolm Young, Brian Johnson 343719 \n", "1 None 342562 \n", "2 F. Baltes, S. Kaufman, U. Dirkscneider & W. Ho... 230619 \n", "3 F. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D... 252051 \n", "4 Deaffy & R.A. Smith-Diesel 375418 \n", "... ... ... \n", "17510 None 286741 \n", "17511 Franz Schubert 139200 \n", "17512 Claudio Monteverdi 66639 \n", "17513 Wolfgang Amadeus Mozart 221331 \n", "17514 Philip Glass 206005 \n", "\n", " UnitPrice media_type \n", "0 0.99 MPEG audio file \n", "1 0.99 MPEG audio file \n", "2 0.99 MPEG audio file \n", "3 0.99 MPEG audio file \n", "4 0.99 MPEG audio file \n", "... ... ... \n", "17510 0.99 AAC audio file \n", "17511 0.99 AAC audio file \n", "17512 0.99 AAC audio file \n", "17513 0.99 AAC audio file \n", "17514 0.99 AAC audio file \n", "\n", "[17515 rows x 5 columns]" ], "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", " \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", " \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", "
track_nameComposerduration_in_msUnitPricemedia_type
0For Those About To Rock (We Salute You)Angus Young, Malcolm Young, Brian Johnson3437190.99MPEG audio file
1Balls to the WallNone3425620.99MPEG audio file
2Fast As a SharkF. Baltes, S. Kaufman, U. Dirkscneider & W. Ho...2306190.99MPEG audio file
3Restless and WildF. Baltes, R.A. Smith-Diesel, S. Kaufman, U. D...2520510.99MPEG audio file
4Princess of the DawnDeaffy & R.A. Smith-Diesel3754180.99MPEG audio file
..................
17510Pini Di Roma (Pinien Von Rom) \\ I Pini Della V...None2867410.99AAC audio file
17511String Quartet No. 12 in C Minor, D. 703 \"Quar...Franz Schubert1392000.99AAC audio file
17512L'orfeo, Act 3, Sinfonia (Orchestra)Claudio Monteverdi666390.99AAC audio file
17513Quintet for Horn, Violin, 2 Violas, and Cello ...Wolfgang Amadeus Mozart2213310.99AAC audio file
17514KoyaanisqatsiPhilip Glass2060050.99AAC audio file
\n", "

17515 rows × 5 columns

\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "summary": "{\n \"name\": \"''')\",\n \"rows\": 17515,\n \"fields\": [\n {\n \"column\": \"track_name\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 3257,\n \"samples\": [\n \"Secrets\",\n \"Super Terrorizer\",\n \"Cherub Rock\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Composer\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 852,\n \"samples\": [\n \"Bino Farias/Da Gamma/Laz\\u00e3o/R\\u00e1s Bernard\",\n \"John Paul Jones & Robert Plant\",\n \"L. Hill\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"duration_in_ms\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 534944,\n \"min\": 1071,\n \"max\": 5286953,\n \"num_unique_values\": 3080,\n \"samples\": [\n 285048,\n 176352,\n 391888\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"UnitPrice\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.23897914968012454,\n \"min\": 0.99,\n \"max\": 1.99,\n \"num_unique_values\": 2,\n \"samples\": [\n 1.99,\n 0.99\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"media_type\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Protected AAC audio file\",\n \"AAC audio file\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 14 } ] }, { "cell_type": "markdown", "source": [ "**Part 2: Transformation**\n", "\n", "**Retrieves specific information about tracks with their name and associated media types.**\n", "\n", "The addition of new 'track_media_type' transformed table. This transformation involves combining information from two separate tables (tracks and media_types) into a new table." ], "metadata": { "id": "9D0hP1br9FsO" } }, { "cell_type": "code", "source": [ "import sqlite3\n", "import pandas as pd\n", "\n", "# Connect to SQLite database\n", "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "\n", "# SQL query\n", "query = '''\n", " SELECT\n", " t.name AS track_name,\n", " t.Composer,\n", " Milliseconds AS duration_in_ms,\n", " t.UnitPrice,\n", " m.Name AS media_type\n", " FROM tracks AS t\n", " JOIN media_types AS m\n", " ON t.MediaTypeId = m.MediaTypeId\n", "'''\n", "\n", "# Execute the query and load results into a DataFrame\n", "df = pd.read_sql_query(query, conn)\n", "\n", "# Close connection\n", "#conn.close()\n", "\n", "# Display the DataFrame\n", "print(df)\n", "\n", "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "df.to_sql('track_media_type', conn, index=False)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6GCsuxycdx1T", "outputId": "0975eab8-8750-498a-e2cd-c9c91b7abe33" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " track_name \\\n", "0 For Those About To Rock (We Salute You) \n", "1 Put The Finger On You \n", "2 Let's Get It Up \n", "3 Inject The Venom \n", "4 Snowballed \n", "... ... \n", "3498 Love Comes \n", "3499 Muita Bobeira \n", "3500 OAM's Blues \n", "3501 One Step Beyond \n", "3502 Symphony No. 3 in E-flat major, Op. 55, \"Eroic... \n", "\n", " Composer duration_in_ms \\\n", "0 Angus Young, Malcolm Young, Brian Johnson 343719 \n", "1 Angus Young, Malcolm Young, Brian Johnson 205662 \n", "2 Angus Young, Malcolm Young, Brian Johnson 233926 \n", "3 Angus Young, Malcolm Young, Brian Johnson 210834 \n", "4 Angus Young, Malcolm Young, Brian Johnson 203102 \n", "... ... ... \n", "3498 Darius \"Take One\" Minwalla/Jon Auer/Ken String... 199923 \n", "3499 Luciana Souza 172710 \n", "3500 Aaron Goldberg 266936 \n", "3501 Karsh Kale 366085 \n", "3502 Ludwig van Beethoven 356426 \n", "\n", " UnitPrice media_type \n", "0 0.99 MPEG audio file \n", "1 0.99 MPEG audio file \n", "2 0.99 MPEG audio file \n", "3 0.99 MPEG audio file \n", "4 0.99 MPEG audio file \n", "... ... ... \n", "3498 0.99 AAC audio file \n", "3499 0.99 AAC audio file \n", "3500 0.99 AAC audio file \n", "3501 0.99 AAC audio file \n", "3502 0.99 AAC audio file \n", "\n", "[3503 rows x 5 columns]\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ "3503" ] }, "metadata": {}, "execution_count": 16 } ] }, { "cell_type": "markdown", "source": [ "**Part 3: Loading**" ], "metadata": { "id": "HfsmbXro-dFi" } }, { "cell_type": "code", "source": [ "import sqlite3\n", "import pandas as pd\n", "\n", "# Connect to SQLite database\n", "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "\n", "# Define the SQL command to add a primary key constraint to the 'id' column\n", "alter_table_query = '''\n", " PRAGMA foreign_keys=off;\n", " BEGIN TRANSACTION;\n", " ALTER TABLE track_media_type RENAME TO tmp_table;\n", " CREATE TABLE track_media_type (\n", " track_media_type_id INTEGER PRIMARY KEY,\n", " track_name NVARCHAR(200),\n", " Composer NVARCHAR(200),\n", " duration_in_ms INTEGER,\n", " UnitPrice NUMERIC(10,2),\n", " media_type_name NVARCHAR(120)\n", " );\n", " INSERT INTO track_media_type\n", " SELECT NULL, track_name, Composer, duration_in_ms, UnitPrice, media_type\n", " FROM tmp_table;\n", " DROP TABLE tmp_table;\n", " COMMIT TRANSACTION;\n", " PRAGMA foreign_keys=on;\n", "'''\n", "\n", "# Execute the SQL command\n", "conn.executescript(alter_table_query)\n", "\n", "# Retrieve the data from the modified table into a DataFrame\n", "df = pd.read_sql_query(\"SELECT * FROM track_media_type\", conn)\n", "\n", "# Close connection\n", "#conn.close()\n", "\n", "# Print the DataFrame\n", "print(df)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uZrYJ33qd8uc", "outputId": "ba78a243-74ef-4f6d-e764-da1af53e6846" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " track_media_type_id track_name \\\n", "0 1 For Those About To Rock (We Salute You) \n", "1 2 Put The Finger On You \n", "2 3 Let's Get It Up \n", "3 4 Inject The Venom \n", "4 5 Snowballed \n", "... ... ... \n", "3498 3499 Love Comes \n", "3499 3500 Muita Bobeira \n", "3500 3501 OAM's Blues \n", "3501 3502 One Step Beyond \n", "3502 3503 Symphony No. 3 in E-flat major, Op. 55, \"Eroic... \n", "\n", " Composer duration_in_ms \\\n", "0 Angus Young, Malcolm Young, Brian Johnson 343719 \n", "1 Angus Young, Malcolm Young, Brian Johnson 205662 \n", "2 Angus Young, Malcolm Young, Brian Johnson 233926 \n", "3 Angus Young, Malcolm Young, Brian Johnson 210834 \n", "4 Angus Young, Malcolm Young, Brian Johnson 203102 \n", "... ... ... \n", "3498 Darius \"Take One\" Minwalla/Jon Auer/Ken String... 199923 \n", "3499 Luciana Souza 172710 \n", "3500 Aaron Goldberg 266936 \n", "3501 Karsh Kale 366085 \n", "3502 Ludwig van Beethoven 356426 \n", "\n", " UnitPrice media_type_name \n", "0 0.99 MPEG audio file \n", "1 0.99 MPEG audio file \n", "2 0.99 MPEG audio file \n", "3 0.99 MPEG audio file \n", "4 0.99 MPEG audio file \n", "... ... ... \n", "3498 0.99 AAC audio file \n", "3499 0.99 AAC audio file \n", "3500 0.99 AAC audio file \n", "3501 0.99 AAC audio file \n", "3502 0.99 AAC audio file \n", "\n", "[3503 rows x 6 columns]\n" ] } ] }, { "cell_type": "code", "source": [ "import sqlite3\n", "import pandas as pd\n", "from pandasql import sqldf\n", "\n", "# Connect to SQLite database\n", "conn = sqlite3.connect('/content/chinook/chinook.db')\n", "\n", "# Define query to retrieve schema information of the table\n", "schema_query = \"PRAGMA table_info(track_media_type)\"\n", "\n", "# Execute the query and load results into a DataFrame\n", "schema_df = pd.read_sql_query(schema_query, conn)\n", "\n", "# Close connection\n", "#conn.close()\n", "\n", "# Display the DataFrame to view the schema information\n", "print(schema_df)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "eG9rnoNJeAc_", "outputId": "8ccb194f-1a31-4269-e663-828fc6d620ea" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ " cid name type notnull dflt_value pk\n", "0 0 track_media_type_id INTEGER 0 None 1\n", "1 1 track_name NVARCHAR(200) 0 None 0\n", "2 2 Composer NVARCHAR(200) 0 None 0\n", "3 3 duration_in_ms INTEGER 0 None 0\n", "4 4 UnitPrice NUMERIC(10,2) 0 None 0\n", "5 5 media_type_name NVARCHAR(120) 0 None 0\n" ] } ] }, { "cell_type": "markdown", "source": [ "**Part 4: Data Modeling**" ], "metadata": { "id": "1QUGc0GH-hyB" } }, { "cell_type": "code", "source": [ "from IPython.core.display import SVG\n", "from datetime import datetime\n", "from typing import Optional\n", "from enum import Enum\n", "from decimal import Decimal\n", "from sqlalchemy.orm import sessionmaker, declarative_base, relationship\n", "from sqlalchemy import Column, String, DateTime, Integer, Numeric, Boolean, JSON, ForeignKey, LargeBinary, Text, UniqueConstraint, CheckConstraint, text as sql_text\n", "from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession\n", "from sqlalchemy import inspect\n", "import graphviz\n", "from lxml import etree\n", "import os\n", "import re\n", "Base = declarative_base()\n", "\n", "\n", "def generate_data_model_diagram(models, output_file='my_data_model_diagram'):\n", " # Initialize graph with more advanced visual settings\n", " dot = graphviz.Digraph(comment='Interactive Data Models', format='svg',\n", " graph_attr={'bgcolor': '#EEEEEE', 'rankdir': 'TB', 'splines': 'spline'},\n", " node_attr={'shape': 'none', 'fontsize': '12', 'fontname': 'Roboto'},\n", " edge_attr={'fontsize': '10', 'fontname': 'Roboto'})\n", "\n", " # Iterate through each SQLAlchemy model\n", " for model in models:\n", " insp = inspect(model)\n", " name = insp.class_.__name__\n", "\n", " # Create an HTML-like label for each model as a rich table\n", " label = f'''<\n", " \n", " \n", " '''\n", "\n", " for column in insp.columns:\n", " constraints = []\n", " if column.primary_key:\n", " constraints.append(\"PK\")\n", " if column.unique:\n", " constraints.append(\"Unique\")\n", " if column.index:\n", " constraints.append(\"Index\")\n", "\n", " constraint_str = ','.join(constraints)\n", " color = \"#BBDEFB\"\n", "\n", " label += f'''\n", " \n", " \n", " '''\n", "\n", " label += '
{name}
{column.name}{column.type} ({constraint_str})
>'\n", "\n", " # Create the node with added hyperlink to detailed documentation\n", " dot.node(name, label=label, URL=f\"http://{name}_details.html\")\n", "\n", " # Add relationships with tooltips and advanced styling\n", " for rel in insp.relationships:\n", " target_name = rel.mapper.class_.__name__\n", " tooltip = f\"Relation between {name} and {target_name}\"\n", " dot.edge(name, target_name, label=rel.key, tooltip=tooltip, color=\"#1E88E5\", style=\"dashed\")\n", "\n", " # Add arrows from Track and MediaType to TrackMediaType\n", " #if name == 'Track' or name == 'MediaType':\n", " #dot.edge(name, 'TrackMediaType', tooltip=f\"Relation from {name} to TrackMediaType\", color=\"#1E88E5\", style=\"dashed\")\n", "\n", "\n", " # Render the graph to a file and open it\n", " dot.render(output_file, view=True)\n", "\n", "\n", "def add_web_font_and_interactivity(input_svg_file, output_svg_file):\n", " if not os.path.exists(input_svg_file):\n", " print(f\"Error: {input_svg_file} does not exist.\")\n", " return\n", "\n", " parser = etree.XMLParser(remove_blank_text=True)\n", " try:\n", " tree = etree.parse(input_svg_file, parser)\n", " except etree.XMLSyntaxError as e:\n", " print(f\"Error parsing SVG: {e}\")\n", " return\n", "\n", " root = tree.getroot()\n", "\n", " style_elem = etree.Element(\"style\")\n", " style_elem.text = '''\n", " @import url(\"https://fonts.googleapis.com/css?family=Roboto:400,400i,700,700i\");\n", " '''\n", " root.insert(0, style_elem)\n", "\n", " for elem in root.iter():\n", " if 'node' in elem.attrib.get('class', ''):\n", " elem.attrib['class'] = 'table-hover'\n", " if 'edge' in elem.attrib.get('class', ''):\n", " source = elem.attrib.get('source')\n", " target = elem.attrib.get('target')\n", " elem.attrib['class'] = f'edge-hover edge-from-{source} edge-to-{target}'\n", "\n", " tree.write(output_svg_file, pretty_print=True, xml_declaration=True, encoding='utf-8')\n", "\n", "# ________________________________________________________________\n", "\n", "\n", "# [Sqlalchemy data model classes as below:]\n", "\n", "class Album(Base):\n", " __tablename__ = 'albums'\n", " AlbumId = Column(Integer, primary_key=True)\n", " Title = Column(String(length=160))\n", " ArtistId = Column(Integer)\n", "\n", " AlbumArtistId = Column(Integer, ForeignKey('artists.ArtistId'))\n", "\n", " #Album class include a many-to-one relationship with Artist class\n", " contain = relationship('Artist')\n", "\n", "class Artist(Base):\n", " __tablename__ = 'artists'\n", " ArtistId = Column(Integer, primary_key=True)\n", " Name = Column(String(length=120))\n", "\n", "class Employee(Base):\n", " __tablename__ = 'employees'\n", " EmployeeId = Column(Integer,primary_key=True)\n", " CustomerId = Column(Integer, ForeignKey('customers.CustomerId'))\n", " LastName = Column(String(length=20))\n", " FirstName = Column(String(length=20))\n", " Title = Column(String(length=30))\n", " ReportsTo = Column(Integer)\n", " BirthDate = Column(DateTime, default=datetime.utcnow)\n", " HireDate = Column(DateTime, default=datetime.utcnow)\n", " Address = Column(String(length=70))\n", " City = Column(String(length=40))\n", " State = Column(String(length=40))\n", " Country = Column(String(length=40))\n", " PostalCode = Column(String(length=10))\n", " Phone = Column(String(length=24))\n", " Fax = Column((String(length=24)))\n", " Email = Column(String(length=60))\n", "\n", " #Employee class include a one-to-many relationship with Customer class\n", " reports_to = relationship(\"Customer\")\n", "\n", "class Customer(Base):\n", " __tablename__ = 'customers'\n", " CustomerId = Column(Integer, primary_key=True)\n", " InvoiceId = Column(Integer, ForeignKey('invoices.InvoiceId'))\n", " FirstName = Column(String(length=40))\n", " LastName = Column(String(length=20))\n", " Company = Column(String(length=80))\n", " Address = Column(String(length=70))\n", " City = Column(String(length=40))\n", " State = Column(String(length=40))\n", " Country = Column(String(length=40))\n", " PostalCode = Column(String(length=10))\n", " Phone = Column(String(length=24))\n", " Fax = Column(String(length=24))\n", " Email = Column(String(length=60))\n", " SupportRepId = Column(Integer, ForeignKey('employees.EmployeeId'))\n", "\n", " #Customer class include a one-to-many relationship with Invoice class\n", " contain = relationship(\"Invoice\")\n", " report_to = relationship(\"Employee\")\n", "\n", "class Playlist(Base):\n", " __tablename__ = 'playlists'\n", " PlaylistId = Column(Integer, primary_key=True)\n", " Name = Column(String(length=120))\n", "\n", "class PlaylistsTrack(Base):\n", " __tablename__ = 'playlist_track'\n", " PlaylistTrackId = Column(Integer, primary_key=True)\n", " TrackId = Column(Integer, ForeignKey('tracks.id'))\n", " Playlist_Id = Column(Integer, ForeignKey('playlists.PlaylistId'))\n", "\n", " #PlaylistTrack class include a many-to-one/many-to-many relationship with Track class\n", " play = relationship('Track')\n", "\n", " #PlaylistTrack class include a many-to-one/many-to-many relationship with Customer class\n", " contain = relationship('Playlist')\n", "\n", "class Genre(Base):\n", " __tablename__ = 'genres'\n", " GenreId = Column(Integer, primary_key=True)\n", " Name = Column(String(length=120))\n", "\n", "class Track(Base):\n", " __tablename__ = 'tracks'\n", "\n", " id = Column(Integer, primary_key=True)\n", " name = Column(String(length=200))\n", " Composer = Column(String(length=220))\n", " Milliseconds = Column(Integer)\n", " UnitPrice = Column(Numeric(10, 2))\n", " media_type_id = Column(Integer, ForeignKey('media_types.media_type_id'))\n", " TrackAlbumId = Column(Integer, ForeignKey('albums.AlbumId'))\n", " GenreId = Column(Integer, ForeignKey('genres.GenreId'))\n", " InvoiceLineId = Column(Integer, ForeignKey('invoice_items.InvoiceLineId'))\n", "\n", " #Track class include a many-to-one relationship with MediaType class\n", " has = relationship('MediaType')\n", "\n", " #Track class include a many-to-one relationship with Album class\n", " contain = relationship('Album')\n", "\n", " #Track class include a many-to-one relationship with Genre class\n", " is_classified_by = relationship('Genre')\n", "\n", " #Track class include a many-to-one relationship with InvoiceItem class\n", " was_purchased_in = relationship(\"InvoiceItem\")\n", "\n", "class Invoice(Base):\n", " __tablename__ = 'invoices'\n", " InvoiceId = Column(Integer, primary_key=True)\n", " InvoiceLineId= Column(Integer, ForeignKey('invoice_items.InvoiceLineId'))\n", " CustomerId = Column(Integer, ForeignKey('customers.CustomerId'))\n", " InvoiceDate = Column(DateTime, default=datetime.utcnow)\n", " BillingAddress = Column(String(length=70))\n", " BillingCity = Column(String(length=40))\n", " BillingState = Column(String(length=40))\n", " BillingCountry = Column(String(length=40))\n", " BillingPostalCode = Column(String(length=10))\n", " Total = Column(Numeric(10, 2))\n", "\n", " #Invoice class include a one-to-many relationship with InvoiceItem class\n", " contain = relationship(\"InvoiceItem\")\n", "\n", "class InvoiceItem(Base):\n", " __tablename__ = 'invoice_items'\n", " InvoiceLineId = Column(Integer, primary_key=True)\n", " track_id = Column(Integer, ForeignKey('Track.id'))\n", " UnitPrice = Column(Numeric(10, 2))\n", " Quantity = Column(Integer)\n", "\n", "class MediaType(Base):\n", " __tablename__ = 'media_types'\n", "\n", " media_type_id = Column(Integer, primary_key=True)\n", " Name = Column(String(length=120))\n", "\n", "#New Transformed Table defined as TrackMediaType class\n", "class TrackMediaType(Base):\n", " __tablename__ = 'track_media_type'\n", "\n", " track_media_type_id = Column(Integer, primary_key=True)\n", " track_name = Column(String(length=200))\n", " Composer = Column(String(length=200))\n", " duration_in_ms = Column(Integer)\n", " UnitPrice = Column(Numeric(10, 2))\n", " media_type_name = Column(String(length=120))\n", " track_from_media_id = Column(Integer, ForeignKey('media_types.media_type_id'))\n", " track_type_id= Column(Integer, ForeignKey('tracks.id'))\n", "\n", " #TrackMediaType class include a one-to-many relationship with MediaType class\n", " has = relationship('MediaType')\n", "\n", " #TrackMediaType class include a one-to-many relationship with Track class\n", " contain = relationship('Track')\n", "\n", "models = [Track, MediaType, TrackMediaType, Album, Artist, Playlist, PlaylistsTrack, Genre, Invoice, InvoiceItem, Customer,Employee]\n", "\n", "output_file_name = 'my_data_model_diagram'\n", "\n", "# Generate the diagram and add interactivity\n", "generate_data_model_diagram(models, output_file_name)\n", "add_web_font_and_interactivity('my_data_model_diagram.svg', 'my_interactive_data_model_diagram.svg')\n", "\n", "# Display the SVG file\n", "display(SVG(filename='my_interactive_data_model_diagram.svg'))" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "WWma6MkwelN9", "outputId": "d9bb0da4-ac65-4fc1-a23b-90d3b4b6e24a" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "" ], "image/svg+xml": "\n \n \n %3\n \n \n \n Track\n \n \n \n \n Track\n \n \n id\n \n \n INTEGER (PK)\n \n \n name\n \n \n VARCHAR(200) ()\n \n \n Composer\n \n \n VARCHAR(220) ()\n \n \n Milliseconds\n \n \n INTEGER ()\n \n \n UnitPrice\n \n \n NUMERIC(10, 2) ()\n \n \n media_type_id\n \n \n INTEGER ()\n \n \n TrackAlbumId\n \n \n INTEGER ()\n \n \n GenreId\n \n \n INTEGER ()\n \n \n InvoiceLineId\n \n \n INTEGER ()\n \n \n \n \n \n MediaType\n \n \n \n \n MediaType\n \n \n media_type_id\n \n \n INTEGER (PK)\n \n \n Name\n \n \n VARCHAR(120) ()\n \n \n \n \n \n Track->MediaType\n \n \n \n \n \n \n has\n \n \n \n Album\n \n \n \n \n Album\n \n \n AlbumId\n \n \n INTEGER (PK)\n \n \n Title\n \n \n VARCHAR(160) ()\n \n \n ArtistId\n \n \n INTEGER ()\n \n \n AlbumArtistId\n \n \n INTEGER ()\n \n \n \n \n \n Track->Album\n \n \n \n \n \n \n contain\n \n \n \n Genre\n \n \n \n \n Genre\n \n \n GenreId\n \n \n INTEGER (PK)\n \n \n Name\n \n \n VARCHAR(120) ()\n \n \n \n \n \n Track->Genre\n \n \n \n \n \n \n is_classified_by\n \n \n \n InvoiceItem\n \n \n \n \n InvoiceItem\n \n \n InvoiceLineId\n \n \n INTEGER (PK)\n \n \n track_id\n \n \n INTEGER ()\n \n \n UnitPrice\n \n \n NUMERIC(10, 2) ()\n \n \n Quantity\n \n \n INTEGER ()\n \n \n \n \n \n Track->InvoiceItem\n \n \n \n \n \n \n was_purchased_in\n \n \n \n Artist\n \n \n \n \n Artist\n \n \n ArtistId\n \n \n INTEGER (PK)\n \n \n Name\n \n \n VARCHAR(120) ()\n \n \n \n \n \n Album->Artist\n \n \n \n \n \n \n contain\n \n \n \n TrackMediaType\n \n \n \n \n TrackMediaType\n \n \n track_media_type_id\n \n \n INTEGER (PK)\n \n \n track_name\n \n \n VARCHAR(200) ()\n \n \n Composer\n \n \n VARCHAR(200) ()\n \n \n duration_in_ms\n \n \n INTEGER ()\n \n \n UnitPrice\n \n \n NUMERIC(10, 2) ()\n \n \n media_type_name\n \n \n VARCHAR(120) ()\n \n \n track_from_media_id\n \n \n INTEGER ()\n \n \n track_type_id\n \n \n INTEGER ()\n \n \n \n \n \n TrackMediaType->Track\n \n \n \n \n \n \n contain\n \n \n \n TrackMediaType->MediaType\n \n \n \n \n \n \n has\n \n \n \n Playlist\n \n \n \n \n Playlist\n \n \n PlaylistId\n \n \n INTEGER (PK)\n \n \n Name\n \n \n VARCHAR(120) ()\n \n \n \n \n \n PlaylistsTrack\n \n \n \n \n PlaylistsTrack\n \n \n PlaylistTrackId\n \n \n INTEGER (PK)\n \n \n TrackId\n \n \n INTEGER ()\n \n \n Playlist_Id\n \n \n INTEGER ()\n \n \n \n \n \n PlaylistsTrack->Track\n \n \n \n \n \n \n play\n \n \n \n PlaylistsTrack->Playlist\n \n \n \n \n \n \n contain\n \n \n \n Invoice\n \n \n \n \n Invoice\n \n \n InvoiceId\n \n \n INTEGER (PK)\n \n \n InvoiceLineId\n \n \n INTEGER ()\n \n \n CustomerId\n \n \n INTEGER ()\n \n \n InvoiceDate\n \n \n DATETIME ()\n \n \n BillingAddress\n \n \n VARCHAR(70) ()\n \n \n BillingCity\n \n \n VARCHAR(40) ()\n \n \n BillingState\n \n \n VARCHAR(40) ()\n \n \n BillingCountry\n \n \n VARCHAR(40) ()\n \n \n BillingPostalCode\n \n \n VARCHAR(10) ()\n \n \n Total\n \n \n NUMERIC(10, 2) ()\n \n \n \n \n \n Invoice->InvoiceItem\n \n \n \n \n \n \n contain\n \n \n \n Customer\n \n \n \n \n Customer\n \n \n CustomerId\n \n \n INTEGER (PK)\n \n \n InvoiceId\n \n \n INTEGER ()\n \n \n FirstName\n \n \n VARCHAR(40) ()\n \n \n LastName\n \n \n VARCHAR(20) ()\n \n \n Company\n \n \n VARCHAR(80) ()\n \n \n Address\n \n \n VARCHAR(70) ()\n \n \n City\n \n \n VARCHAR(40) ()\n \n \n State\n \n \n VARCHAR(40) ()\n \n \n Country\n \n \n VARCHAR(40) ()\n \n \n PostalCode\n \n \n VARCHAR(10) ()\n \n \n Phone\n \n \n VARCHAR(24) ()\n \n \n Fax\n \n \n VARCHAR(24) ()\n \n \n Email\n \n \n VARCHAR(60) ()\n \n \n SupportRepId\n \n \n INTEGER ()\n \n \n \n \n \n Customer->Invoice\n \n \n \n \n \n \n contain\n \n \n \n Employee\n \n \n \n \n Employee\n \n \n EmployeeId\n \n \n INTEGER (PK)\n \n \n CustomerId\n \n \n INTEGER ()\n \n \n LastName\n \n \n VARCHAR(20) ()\n \n \n FirstName\n \n \n VARCHAR(20) ()\n \n \n Title\n \n \n VARCHAR(30) ()\n \n \n ReportsTo\n \n \n INTEGER ()\n \n \n BirthDate\n \n \n DATETIME ()\n \n \n HireDate\n \n \n DATETIME ()\n \n \n Address\n \n \n VARCHAR(70) ()\n \n \n City\n \n \n VARCHAR(40) ()\n \n \n State\n \n \n VARCHAR(40) ()\n \n \n Country\n \n \n VARCHAR(40) ()\n \n \n PostalCode\n \n \n VARCHAR(10) ()\n \n \n Phone\n \n \n VARCHAR(24) ()\n \n \n Fax\n \n \n VARCHAR(24) ()\n \n \n Email\n \n \n VARCHAR(60) ()\n \n \n \n \n \n Employee->Customer\n \n \n \n \n \n \n reports_to\n \n \n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "**Part 5: Visualization**" ], "metadata": { "id": "KHhWkyP0-zS2" } }, { "cell_type": "markdown", "source": [ "Total number of media types for all tracks. There are 5 types of media. Most tracks use MPEG audio file." ], "metadata": { "id": "vVsAjOLbXykf" } }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "\n", "# df to plot the distribution of 'media_type_name'\n", "\n", "media_type_name_df = df['media_type_name']\n", "media_type_counts = df['media_type_name'].value_counts()\n", "\n", "# Set a larger figure size (width, height)\n", "plt.figure(figsize=(10, 6)) # Adjust width and height as needed\n", "\n", "# Create the bar chart\n", "plt.bar(media_type_counts.index, media_type_counts.values)\n", "plt.xlabel(\"Media Type\")\n", "plt.ylabel(\"Count\")\n", "plt.title(\"Total of Media Type Name for All Tracks\")\n", "plt.xticks(rotation=45) # Rotate x-axis labels for better readability\n", "plt.tight_layout() # Adjust layout to prevent clipping of labels\n", "plt.show()" ], "metadata": { "id": "kH7zjD1ffIcb", "colab": { "base_uri": "https://localhost:8080/", "height": 607 }, "outputId": "df9717a6-73d0-4d03-9422-4263c6d1268e" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACjiklEQVR4nOzdd5hM5///8desLZYt+i6xOtFL1BW9bVhCQpDoRCdBooWoSfRYCSLlEyK6IIIoq/fee+9WjS3alrl/f/jtfE2QIMaw+3xc11wx97ln5n02Z87Ma845920xxhgBAAAAAIDnzsXZBQAAAAAAkFARugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAL50sWbKoefPmtvurV6+WxWLR6tWrnVbTq+bvf0NHOX36tCwWiyZNmmRra968uby8vBz+2vEsFosGDBjwwl7vQUuWLFHhwoWVNGlSWSwW3bx50yl1vEgv+v8vALzqCN0AgEeaNGmSLBaLLBaL1q9f/9ByY4wCAgJksVhUs2ZNJ1T4bLJkyWJbr3+6PRgina1ChQq2ulxcXOTj46PXX39dTZo0UWho6HN7nT///NNp4fXfvIy1Xb9+XfXr15enp6fGjRunX3/9VcmTJ3fIaz3JNssPUwDwcnJ1dgEAgJdb0qRJNW3aNJUpU8aufc2aNTp//rw8PDwcXkO5cuV0584dubu7/+fnCgkJUVRUlO3+n3/+qenTp2v06NFKkyaNrb106dL/+bWep4wZM2rIkCGSpFu3bun48eOaO3eupkyZovr162vKlClyc3Oz9T9y5IhcXJ7ut/U///xT48aNe6pwmzlzZt25c8futR3hn2q7c+eOXF1f/Feabdu2KTIyUoMHD1aVKlUc+lq//vqr3f3JkycrNDT0ofY8efI4tA4AwNMjdAMA/lGNGjU0e/ZsffPNN3bBZtq0aSpatKiuXbvm8BpcXFyUNGnS5/JcderUsbsfFham6dOnq06dOsqSJctzeQ1H8PX1VePGje3ahg4dqo8++kjjx49XlixZNGzYMNsyR/8YEhsbK6vVKnd39+f2/+ZZOev1r1y5IklKkSLFc3vOW7duPfJo+d//32/evFmhoaEPtf/d7du3lSxZsudWHwDg6XF6OQDgH73//vu6fv263WnM0dHR+u233/TBBx888jFWq1UhISHKly+fkiZNKj8/P7Vt21Z//fWXXT9jjL744gtlzJhRyZIlU8WKFXXgwIGHnu9R13SvW7dO7733njJlyiQPDw8FBASoa9euunPnzn9a3/79+8vNzU1Xr159aFmbNm2UIkUK3b17V9L9U9Vr1qypZcuW2a7rzZs3r+bOnfvQY2/evKkuXbooICBAHh4eypEjh4YNGyar1frMtSZJkkTffPON8ubNq7Fjxyo8PNy27O/XdMfExGjgwIHKmTOnkiZNqtSpU6tMmTK2/6/NmzfXuHHjJNmfyiz933XbI0eOVEhIiLJnzy4PDw8dPHjwkdd0xzt58qSCgoKUPHlyZciQQYMGDZIxxrb8cdfq//05/6m2+La/HwHftWuXqlevLh8fH3l5ealy5cravHmzXZ/4Syg2bNigbt26KW3atEqePLneeeedR/7/f1CFChXUrFkzSVLx4sVlsVjs/t6zZ89W0aJF5enpqTRp0qhx48a6cOGC3XPEXxt94sQJ1ahRQ97e3mrUqNE/vu6/1ZQ/f37t2LFD5cqVU7JkyfTZZ59JkubPn6/g4GBlyJBBHh4eyp49uwYPHqy4uLiHnmfLli2qUaOGUqZMqeTJk6tgwYIaM2bMP7727t27lTZtWlWoUMHuTBIAAEe6AQD/IkuWLAoMDNT06dNVvXp1SdLixYsVHh6uhg0b6ptvvnnoMW3bttWkSZPUokULffTRRzp16pTGjh2rXbt2acOGDbZTkfv166cvvvhCNWrUUI0aNbRz505Vq1ZN0dHR/1rX7Nmzdfv2bbVv316pU6fW1q1b9e233+r8+fOaPXv2M69vkyZNNGjQIM2cOVOdOnWytcf/0FC3bl27I6vHjh1TgwYN1K5dOzVr1kwTJ07Ue++9pyVLlqhq1aqS7h9tLF++vC5cuKC2bdsqU6ZM2rhxo3r37q1Lly4pJCTkmetNkiSJ3n//fX3++edav369goODH9lvwIABGjJkiD788EOVKFFCERER2r59u3bu3KmqVauqbdu2unjx4iNPWY43ceJE3b17V23atJGHh4dSpUr12B8N4uLi9NZbb6lUqVIaPny4lixZov79+ys2NlaDBg16qnV8ktoedODAAZUtW1Y+Pj7q0aOH3Nzc9P3336tChQpas2aNSpYsade/c+fOSpkypfr376/Tp08rJCREnTp10syZMx/7Gn369NHrr7+uH374QYMGDVLWrFmVPXt2SbJt+8WLF9eQIUN0+fJljRkzRhs2bNCuXbvsjozHxsYqKChIZcqU0ciRI//zUenr16+revXqatiwoRo3biw/Pz9bTV5eXurWrZu8vLy0cuVK9evXTxERERoxYoTt8aGhoapZs6bSp0+vjz/+WP7+/jp06JAWLlyojz/++JGvuW3bNgUFBalYsWKaP3++PD09/9M6AECCYwAAeISJEycaSWbbtm1m7Nixxtvb29y+fdsYY8x7771nKlasaIwxJnPmzCY4ONj2uHXr1hlJZurUqXbPt2TJErv2K1euGHd3dxMcHGysVqut32effWYkmWbNmtnaVq1aZSSZVatW2dria3nQkCFDjMViMWfOnHni9RwxYoSRZE6dOmVrCwwMNCVLlrTrN3fu3IdqyJw5s5Fk5syZY2sLDw836dOnN0WKFLG1DR482CRPntwcPXrU7jl79eplkiRJYs6ePfuPNZYvX97ky5fvscvnzZtnJJkxY8bY1fbg37BQoUJ2/58epWPHjuZRXw1OnTplJBkfHx9z5cqVRy6bOHGira1Zs2ZGkuncubOtzWq1muDgYOPu7m6uXr1qjHn0/9fHPefjajPGGEmmf//+tvt16tQx7u7u5sSJE7a2ixcvGm9vb1OuXDlbW/w2XqVKFbttsGvXriZJkiTm5s2bj3y9vz9+27Zttrbo6GiTLl06kz9/fnPnzh1b+8KFC40k069fv4f+Tr169frH13mUR/09ypcvbySZCRMmPNT/Ue+Xtm3bmmTJkpm7d+8aY4yJjY01WbNmNZkzZzZ//fWXXd8H/z7NmjUzyZMnN8YYs379euPj42OCg4NtzwMAsMfp5QCAf1W/fn3duXNHCxcuVGRkpBYuXPjYU8tnz54tX19fVa1aVdeuXbPdihYtKi8vL61atUqStHz5ckVHR6tz5852pwp36dLliWp68GjarVu3dO3aNZUuXVrGGO3atevZV1ZS06ZNtWXLFp04ccLWNnXqVAUEBKh8+fJ2fTNkyKB33nnHdt/Hx0dNmzbVrl27FBYWJun+36Rs2bJKmTKl3d+kSpUqiouL09q1a/9TvfHTN0VGRj62T4oUKXTgwAEdO3bsmV+nbt26Sps27RP3f/BMAYvFok6dOik6OlrLly9/5hr+TVxcnJYtW6Y6deooW7Zstvb06dPrgw8+0Pr16xUREWH3mDZt2thtg2XLllVcXJzOnDnz1K+/fft2XblyRR06dLA7IyI4OFi5c+fWokWLHnpM+/btn/p1HsfDw0MtWrR4qP3B90tkZKSuXbumsmXL6vbt2zp8+LCk+6fknzp1Sl26dHnoOvUH/z7xVq1apaCgIFWuXFlz5859IYMqAsCriNANAPhXadOmVZUqVTRt2jTNnTtXcXFxqlev3iP7Hjt2TOHh4UqXLp3Spk1rd4uKirINPhUfaHLmzPnQa6VMmfJfazp79qyaN2+uVKlSycvLS2nTprUF4gevbX4WDRo0kIeHh6ZOnWp7voULF6pRo0YPhY8cOXI81JYrVy5J969Nlu7/TZYsWfLQ3yN+xOv4v8mzir+G1tvb+7F9Bg0apJs3bypXrlwqUKCAunfvrr179z7V62TNmvWJ+7q4uNiFXunhv4sjXL16Vbdv39brr7/+0LI8efLIarXq3Llzdu2ZMmWyux+//f19DIInEb9dP+r1c+fO/VCQd3V1VcaMGZ/6dR7ntddee+Qo/wcOHNA777wjX19f+fj4KG3atLZB2OLfL/E/MuXPn/9fX+fu3bsKDg5WkSJFNGvWrOcyswAAJFRc0w0AeCIffPCBWrdurbCwMFWvXv2xIzZbrValS5fOFlj/7mmOlD5OXFycqlatqhs3bqhnz57KnTu3kidPrgsXLqh58+b/aXAy6X7oqlmzpqZOnap+/frpt99+07179/51pOjHsVqtqlq1qnr06PHI5fFh9Fnt379f0v0fAB6nXLlyOnHihObPn69ly5bpp59+0ujRozVhwgR9+OGHT/Q6z/ta3UcdPZX0yMG9HClJkiSPbDcPDPrmKB4eHk89tds/edT/o5s3b6p8+fLy8fHRoEGDlD17diVNmlQ7d+5Uz549n+n94uHhoRo1amj+/PlasmSJatas+TzKB4AEidANAHgi77zzjtq2bavNmzf/4wBT2bNn1/Lly/Xmm2/+Y0jLnDmzpPtHgR88Inr16tV/PcK4b98+HT16VL/88ouaNm1qa39whPX/qmnTpqpdu7a2bdumqVOnqkiRIsqXL99D/Y4fPy5jjF2APHr0qCTZpiDLnj27oqKiHDKXc1xcnKZNm6ZkyZI9NJf636VKlUotWrRQixYtFBUVpXLlymnAgAG20P24EPwsrFarTp48afeDwt//LvFHlG/evGn32Eed1v2ktaVNm1bJkiXTkSNHHlp2+PBhubi4KCAg4Ime61nEb9dHjhxRpUqV7JYdOXLEtvxFWr16ta5fv665c+eqXLlytvZTp07Z9YsfCG7//v3/uq1aLBZNnTpVtWvX1nvvvafFixerQoUKz712AEgIOL0cAPBEvLy89N1332nAgAGqVavWY/vVr19fcXFxGjx48EPLYmNjbQGrSpUqcnNz07fffmt3RPFJRvKOPzL54OOMMf86rdHTqF69utKkSaNhw4ZpzZo1jz3KffHiRc2bN892PyIiQpMnT1bhwoXl7+8v6f7fZNOmTVq6dOlDj79586ZiY2Ofqca4uDh99NFHOnTokD766CP5+Pg8tu/169ft7nt5eSlHjhy6d++erS1+fui/h+BnNXbsWNu/jTEaO3as3NzcVLlyZUn3A2qSJEkeuqZ9/PjxDz3Xk9aWJEkSVatWTfPnz7c7jf3y5cuaNm2aypQp849/p/+qWLFiSpcunSZMmGD3t128eLEOHTr02NHlHelR75fo6OiH/s5vvPGGsmbNqpCQkIf+zo866u/u7q65c+eqePHiqlWrlrZu3fr8iweABIAj3QCAJxY/L/E/KV++vNq2bashQ4Zo9+7dqlatmtzc3HTs2DHNnj1bY8aMUb169ZQ2bVp9+umnGjJkiGrWrKkaNWpo165dWrx4sdKkSfOPr5E7d25lz55dn376qS5cuCAfHx/NmTPnma7BfRw3Nzc1bNhQY8eOtU3L9Si5cuVSq1attG3bNvn5+ennn3/W5cuXNXHiRFuf7t27648//lDNmjXVvHlzFS1aVLdu3dK+ffv022+/6fTp0/+6zuHh4ZoyZYqk+1OQHT9+XHPnztWJEyfUsGHDR/7I8aC8efOqQoUKKlq0qFKlSqXt27frt99+sxvsrGjRopKkjz76SEFBQUqSJIkaNmz4RH+vv0uaNKmWLFmiZs2aqWTJklq8eLEWLVqkzz77zHaJga+vr9577z19++23slgsyp49uxYuXPjIa9yfprYvvvhCoaGhKlOmjDp06CBXV1d9//33unfvnoYPH/5M6/Ok3NzcNGzYMLVo0ULly5fX+++/b5syLEuWLOratatDX/9RSpcurZQpU6pZs2b66KOPZLFY9Ouvvz4UpF1cXPTdd9+pVq1aKly4sFq0aKH06dPr8OHDOnDgwCN/NPL09NTChQtVqVIlVa9eXWvWrHmia8IBIFFx1rDpAICX26OmQ3qUv08ZFu+HH34wRYsWNZ6ensbb29sUKFDA9OjRw1y8eNHWJy4uzgwcONCkT5/eeHp6mgoVKpj9+/c/NN3Vo6aWOnjwoKlSpYrx8vIyadKkMa1btzZ79ux5aKqpf/OoKcPibd261Ugy1apV+8d1X7p0qSlYsKDx8PAwuXPnNrNnz36ob2RkpOndu7fJkSOHcXd3N2nSpDGlS5c2I0eONNHR0f9YY/xUUPE3Ly8vkzNnTtO4cWOzbNmyx9b24N/wiy++MCVKlDApUqQwnp6eJnfu3ObLL7+0e+3Y2FjTuXNnkzZtWmOxWGxTUsVP4TVixIiHXudxU4YlT57cnDhxwlSrVs0kS5bM+Pn5mf79+5u4uDi7x1+9etXUrVvXJEuWzKRMmdK0bdvW7N+//6HnfFxtxjw8ZZgxxuzcudMEBQUZLy8vkyxZMlOxYkWzceNGuz6P28YfN5XZ3/3Te2TmzJmmSJEixsPDw6RKlco0atTInD9/3q7Pg1NvPa3HTRn2uKnlNmzYYEqVKmU8PT1NhgwZTI8ePczSpUsfuZ7r1683VatWNd7e3iZ58uSmYMGC5ttvv/3Huq9du2by5s1r/P39zbFjx55pnQAgobIY8wJGCQEA4BW0Z88eFS5cWJMnT1aTJk0eWp4lSxblz59fCxcudEJ1AADgVcA13QAAPMaPP/4oLy8vvfvuu84uBQAAvKK4phsAgL9ZsGCBDh48qB9++EGdOnWyDeIFAADwtAjdAAD8TefOnXX58mXVqFFDAwcOdHY5AADgFcY13QAAAAAAOAjXdAMAAAAA4CCEbgAAAAAAHIRrup+A1WrVxYsX5e3tLYvF4uxyAAAAAABOZoxRZGSkMmTIIBeXxx/PJnQ/gYsXLyogIMDZZQAAAAAAXjLnzp1TxowZH7uc0P0EvL29Jd3/Y/r4+Di5GgAAAACAs0VERCggIMCWFx+H0P0E4k8p9/HxIXQDAAAAAGz+7RJkBlIDAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAAAA4CCEbgAAAAAAHITQDQAAAACAgxC6AQAAAABwEEI3AAAAAAAOQugGAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAAAA4CCEbgAAAAAAHITQDQAAAACAgxC6AQAAAABwEFdnvvh3332n7777TqdPn5Yk5cuXT/369VP16tUlSXfv3tUnn3yiGTNm6N69ewoKCtL48ePl5+dne46zZ8+qffv2WrVqlby8vNSsWTMNGTJErq7/t2qrV69Wt27ddODAAQUEBKhv375q3rz5i1zVFyZLr0XOLgEvudNDg51dAgAAAJBoOPVId8aMGTV06FDt2LFD27dvV6VKlVS7dm0dOHBAktS1a1ctWLBAs2fP1po1a3Tx4kW9++67tsfHxcUpODhY0dHR2rhxo3755RdNmjRJ/fr1s/U5deqUgoODVbFiRe3evVtdunTRhx9+qKVLl77w9QUAAAAAJC4WY4xxdhEPSpUqlUaMGKF69eopbdq0mjZtmurVqydJOnz4sPLkyaNNmzapVKlSWrx4sWrWrKmLFy/ajn5PmDBBPXv21NWrV+Xu7q6ePXtq0aJF2r9/v+01GjZsqJs3b2rJkiVPVFNERIR8fX0VHh4uHx+f57/SzxFHuvFvONINAAAA/HdPmhNfmmu64+LiNGPGDN26dUuBgYHasWOHYmJiVKVKFVuf3LlzK1OmTNq0aZMkadOmTSpQoIDd6eZBQUGKiIiwHS3ftGmT3XPE94l/jke5d++eIiIi7G4AAAAAADwtp4fuffv2ycvLSx4eHmrXrp3mzZunvHnzKiwsTO7u7kqRIoVdfz8/P4WFhUmSwsLC7AJ3/PL4Zf/UJyIiQnfu3HlkTUOGDJGvr6/tFhAQ8DxWFQAAAACQyDg9dL/++uvavXu3tmzZovbt26tZs2Y6ePCgU2vq3bu3wsPDbbdz5845tR4AAAAAwKvJqaOXS5K7u7ty5MghSSpatKi2bdumMWPGqEGDBoqOjtbNmzftjnZfvnxZ/v7+kiR/f39t3brV7vkuX75sWxb/3/i2B/v4+PjI09PzkTV5eHjIw8PjuawfAAAAACDxcvqR7r+zWq26d++eihYtKjc3N61YscK27MiRIzp79qwCAwMlSYGBgdq3b5+uXLli6xMaGiofHx/lzZvX1ufB54jvE/8cAAAAAAA4ilOPdPfu3VvVq1dXpkyZFBkZqWnTpmn16tVaunSpfH191apVK3Xr1k2pUqWSj4+POnfurMDAQJUqVUqSVK1aNeXNm1dNmjTR8OHDFRYWpr59+6pjx462I9Xt2rXT2LFj1aNHD7Vs2VIrV67UrFmztGgRo3wDAAAAABzLqaH7ypUratq0qS5duiRfX18VLFhQS5cuVdWqVSVJo0ePlouLi+rWrat79+4pKChI48ePtz0+SZIkWrhwodq3b6/AwEAlT55czZo106BBg2x9smbNqkWLFqlr164aM2aMMmbMqJ9++klBQUEvfH0BAAAAAInLSzdP98uIebqRkDBPNwAAAPDfvXLzdAMAAAAAkNAQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAgTg3dQ4YMUfHixeXt7a106dKpTp06OnLkiF2fChUqyGKx2N3atWtn1+fs2bMKDg5WsmTJlC5dOnXv3l2xsbF2fVavXq033nhDHh4eypEjhyZNmuTo1QMAAAAAJHJODd1r1qxRx44dtXnzZoWGhiomJkbVqlXTrVu37Pq1bt1aly5dst2GDx9uWxYXF6fg4GBFR0dr48aN+uWXXzRp0iT169fP1ufUqVMKDg5WxYoVtXv3bnXp0kUffvihli5d+sLWFQAAAACQ+Lg688WXLFlid3/SpElKly6dduzYoXLlytnakyVLJn9//0c+x7Jly3Tw4EEtX75cfn5+Kly4sAYPHqyePXtqwIABcnd314QJE5Q1a1aNGjVKkpQnTx6tX79eo0ePVlBQkONWEAAAAACQqL1U13SHh4dLklKlSmXXPnXqVKVJk0b58+dX7969dfv2bduyTZs2qUCBAvLz87O1BQUFKSIiQgcOHLD1qVKlit1zBgUFadOmTY+s4969e4qIiLC7AQAAAADwtJx6pPtBVqtVXbp00Ztvvqn8+fPb2j/44ANlzpxZGTJk0N69e9WzZ08dOXJEc+fOlSSFhYXZBW5JtvthYWH/2CciIkJ37tyRp6en3bIhQ4Zo4MCBz30dAQAAAACJy0sTujt27Kj9+/dr/fr1du1t2rSx/btAgQJKnz69KleurBMnTih79uwOqaV3797q1q2b7X5ERIQCAgIc8loAAAAAgITrpTi9vFOnTlq4cKFWrVqljBkz/mPfkiVLSpKOHz8uSfL399fly5ft+sTfj78O/HF9fHx8HjrKLUkeHh7y8fGxuwEAAAAA8LScGrqNMerUqZPmzZunlStXKmvWrP/6mN27d0uS0qdPL0kKDAzUvn37dOXKFVuf0NBQ+fj4KG/evLY+K1assHue0NBQBQYGPqc1AQAAAADgYU4N3R07dtSUKVM0bdo0eXt7KywsTGFhYbpz544k6cSJExo8eLB27Nih06dP648//lDTpk1Vrlw5FSxYUJJUrVo15c2bV02aNNGePXu0dOlS9e3bVx07dpSHh4ckqV27djp58qR69Oihw4cPa/z48Zo1a5a6du3qtHUHAAAAACR8Tg3d3333ncLDw1WhQgWlT5/edps5c6Ykyd3dXcuXL1e1atWUO3duffLJJ6pbt64WLFhge44kSZJo4cKFSpIkiQIDA9W4cWM1bdpUgwYNsvXJmjWrFi1apNDQUBUqVEijRo3STz/9xHRhAAAAAACHshhjjLOLeNlFRETI19dX4eHhL/313Vl6LXJ2CXjJnR4a7OwSAAAAgFfek+bEl2IgNQAAAAAAEiJCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAAByE0A0AAAAAgIMQugEAAAAAcBBCNwAAAAAADkLoBgAAAADAQQjdAAAAAAA4CKEbAAAAAAAHIXQDAAAAAOAghG4AAAAAABzEqaF7yJAhKl68uLy9vZUuXTrVqVNHR44csetz9+5ddezYUalTp5aXl5fq1q2ry5cv2/U5e/asgoODlSxZMqVLl07du3dXbGysXZ/Vq1frjTfekIeHh3LkyKFJkyY5evUAAAAAAImcU0P3mjVr1LFjR23evFmhoaGKiYlRtWrVdOvWLVufrl27asGCBZo9e7bWrFmjixcv6t1337Utj4uLU3BwsKKjo7Vx40b98ssvmjRpkvr162frc+rUKQUHB6tixYravXu3unTpog8//FBLly59oesLAAAAAEhcLMYY4+wi4l29elXp0qXTmjVrVK5cOYWHhytt2rSaNm2a6tWrJ0k6fPiw8uTJo02bNqlUqVJavHixatasqYsXL8rPz0+SNGHCBPXs2VNXr16Vu7u7evbsqUWLFmn//v2212rYsKFu3rypJUuW/GtdERER8vX1VXh4uHx8fByz8s9Jll6LnF0CXnKnhwY7uwQAAADglfekOfGluqY7PDxckpQqVSpJ0o4dOxQTE6MqVarY+uTOnVuZMmXSpk2bJEmbNm1SgQIFbIFbkoKCghQREaEDBw7Y+jz4HPF94p8DAAAAAABHcHV2AfGsVqu6dOmiN998U/nz55ckhYWFyd3dXSlSpLDr6+fnp7CwMFufBwN3/PL4Zf/UJyIiQnfu3JGnp6fdsnv37unevXu2+xEREf99BQEAAAAAic5Lc6S7Y8eO2r9/v2bMmOHsUjRkyBD5+vrabgEBAc4uCQAAAADwCnopQnenTp20cOFCrVq1ShkzZrS1+/v7Kzo6Wjdv3rTrf/nyZfn7+9v6/H008/j7/9bHx8fnoaPcktS7d2+Fh4fbbufOnfvP6wgAAAAASHycGrqNMerUqZPmzZunlStXKmvWrHbLixYtKjc3N61YscLWduTIEZ09e1aBgYGSpMDAQO3bt09Xrlyx9QkNDZWPj4/y5s1r6/Pgc8T3iX+Ov/Pw8JCPj4/dDQAAAACAp+XUa7o7duyoadOmaf78+fL29rZdg+3r6ytPT0/5+vqqVatW6tatm1KlSiUfHx917txZgYGBKlWqlCSpWrVqyps3r5o0aaLhw4crLCxMffv2VceOHeXh4SFJateuncaOHasePXqoZcuWWrlypWbNmqVFixjpGwAAAADgOE490v3dd98pPDxcFSpUUPr06W23mTNn2vqMHj1aNWvWVN26dVWuXDn5+/tr7ty5tuVJkiTRwoULlSRJEgUGBqpx48Zq2rSpBg0aZOuTNWtWLVq0SKGhoSpUqJBGjRqln376SUFBQS90fQEAAAAAictLNU/3y4p5upGQME83AAAA8N+9kvN0AwAAAACQkBC6AQAAAABwEEI3AAAAAAAOQugGAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAAAA4CCEbgAAAAAAHITQDQAAAACAgxC6AQAAAABwEEI3AAAAAAAOQugGAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAAAA4CCEbgAAAAAAHITQDQAAAACAgxC6AQAAAABwEEI3AAAAAAAOQugGAAAAAMBBCN0AAAAAADgIoRsAAAAAAAchdAMAAAAA4CDPFLqzZcum69evP9R+8+ZNZcuW7T8XBQAAAABAQvBMofv06dOKi4t7qP3evXu6cOHCfy4KAAAAAICEwPVpOv/xxx+2fy9dulS+vr62+3FxcVqxYoWyZMny3IoDAAAAAOBV9lShu06dOpIki8WiZs2a2S1zc3NTlixZNGrUqOdWHAAAAAAAr7KnCt1Wq1WSlDVrVm3btk1p0qRxSFEAAAAAACQETxW64506dep51wEAAAAAQILzTKFbklasWKEVK1boypUrtiPg8X7++ef/XBgAAAAAAK+6ZwrdAwcO1KBBg1SsWDGlT59eFovledcFAAAAAMAr75lC94QJEzRp0iQ1adLkedcDAAAAAECC8UzzdEdHR6t06dLPuxYAAAAAABKUZwrdH374oaZNm/a8awEAAAAAIEF5ptPL7969qx9++EHLly9XwYIF5ebmZrf866+/fi7FAQAAAADwKnum0L13714VLlxYkrR//367ZQyqBgAAAADAfc8UuletWvW86wAAAAAAIMF5pmu6AQAAAADAv3umI90VK1b8x9PIV65c+cwFAQAAAACQ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f67WrVvr4sWLtv1j/HsjX7588vX11a1btyT93/4Urz72cnjuLBaLrly5orp16yp//vzq37+/kiZNqnTp0qlt27a6e/eu7aifn5+fvvnmG9WqVUv58+fXZ599pvXr16to0aJOXgvgvytfvrxq166tFStWqGnTpjp+/LgqVqyo7t27a+PGjbZ+n332ma5fv65JkyY5r1jgb/5+xtK9e/dsy+rVq6cqVaroyy+/tF0+FB+c4qeG+v3339WpUye7yyuQsLm5uem9997TqFGjNG7cOCVPnlxt27ZVkyZN9N1339kGf/L19dWgQYM0Y8YMbd261clVA47l4uIiLy8vffzxx3r//fdVsWJFRUREqEyZMuratavtxydJKl68uCpUqKDOnTsrPDycH+ITEEI3npsHhweIjY1VqVKllDRpUo0cOdLWfvv2bcXGxtqNRJ4uXToNHz5c3bt3165duwjcSDBq1KihtWvXauLEiapRo4ZWrlypYcOGaerUqapYsaJtXIM0adKoXLlyqlChgrNLBiQ9HLh79uyp0aNH2/WZNWuWSpQooa5du6pDhw76888/NXr0aLVv314//PCD/vzzT73++utOWgM4S/HixTVgwAClTJlSAwYM0IEDB5QjRw59+umnKl26tH788UedPHlSRYsWVZo0aZQxY0Znlww4VPz347x58yoqKkrVq1fX7NmzFRISotdee021atVS+/bt9e2330qSGjZsqPz58ysqKsqZZeM5YyA1PBfxX9CuXr0qFxcXpU6dWmfPntXQoUO1Y8cOtWrVSrVq1VLx4sVVt25djRkzRpL9IBIPDqQGvOrit+eFCxdqzJgx+umnn5Q5c2a1aNFCmzdvVvfu3bVy5UrNnz9fwcHBmjhxojw9PZ1dNmCzd+9evfnmm/r444/1xRdf2NpHjBghX19ftWnTRtL9a7lDQ0N1+PBhZc+eXSVKlFCfPn2UJ08eZ5UOJ+vevbsuXbqkn376SUmTJlXDhg21Z88elSxZUidPntTmzZv1888/q2bNmkwHikSlaNGiypcvnyZPnixJev/997Vq1SpVrVpV27Zt071799SnTx/VqlVLfn5+Tq4Wz5UBnpNjx46ZrFmzmjZt2piwsDBjjDFnzpwx7du3N0WLFjWenp6mY8eOxhhjrFariYuLc2a5wAtx9OhRU6hQIbNo0SLTvn174+/vb7Zt22aMMSYiIsLs27fPHD161MlVAvYiIyNNnjx5TI4cOezahwwZYlKkSGGWL1/+UP8TJ06Y6Ohoc+fOnRdZKl5Cs2fPNoGBgSYuLs60atXK+Pn5mf379xtjjDl8+LAZPXq07T6QGMTGxhpjjFm2bJl5++23zbVr10yzZs2Mv7+/OXr0qLlz5445e/asadKkiTl27JiTq4UjcKQbz4XVatXAgQM1ePBgVapUSXnz5tVnn30mf39/nT17VsOGDdPSpUvVtm1bde/eXRJHtpF4jB49Wp988on8/f21bNky5c+f39klAf/o9u3bmjFjhjp37qwOHTpoxIgRGjZsmIYPH64ZM2aoatWqkp5sGhwkTuXLl9f69evl7++vP//8U4UKFXJ2ScAL8bip8iTp1KlTCg4O1q1bt+Tq6qpZs2ZxWWUiwTXdeC5cXFz0zjvvyNfXVxaLRUePHtXQoUN1+fJlZcqUSb169VK1atU0Z84c23WBBG686mbMmGE3T/HjxF9a0bNnT+XPn5/RSPHSiR95PCYmRpLk4eGhli1bavz48Ro9erRKliyp0aNHa+bMmapatartGkUXFxfNmzdPFy5csD0XgTtxi982evbsqRw5cmjcuHEqVKiQOMaDhG779u2Kjo6Wi4vLY7f3rFmzqnv37oqMjNTXX39N4E5ECN14Jg/uTIwxiouLU+HChdW5c2cVKlRIJUqU0Pr1623BOyAgQL169VLx4sX1/fffa+zYsU6sHvhvjDEKDw/XBx98oE6dOunYsWP/2D9HjhzKkyePJk6cKIkfnPByiT8qc+TIEXXo0EGVK1dW586dtX//fjVr1kyTJk3S6dOnFRgYqCpVqtg99vPPP1fdunVtYR2I/9GlaNGislqt2rFjh107kBAtWLBAjRs31nfffaeYmBi7Obj/rmTJkipQoICuXLkiiWnBEgtCN56a1WqVxWLRjRs3dOXKFVksFttpNJkzZ9b69evVo0cPNWnSxC54Z8qUSd26dVPNmjVVs2ZNJ68F8N/4+vrqxIkTOnjwoDp27KgjR448sl/8h+7gwYN19uxZ2+ikwMvg76OUR0REyNXVVcuWLVPjxo115MgRNW7cWF9//bX+/PNPffrpp5LuB6jPP/9co0eP1rZt25QlSxbnrgheOn5+furfv79Gjx7NtGBI8MqXL69ixYpp1qxZ+u6772xHvB8VvPPmzauCBQuqb9++slqt/BCfSBC68dRcXFx07NgxlShRQpUqVdIff/yho0ePSpJatWqlZMmSafDgwfr4449Vu3Ztbdq0SSNGjND/a+/u42q+/z+OP06nolGjGWIqSyZbQ1+MYcnV0Fy0ucpsEy32ZWbGEDFRaNhovnOtXcjV2FxlCMuWdctoF4wNW32NapRUlNQ5vz/8OmPs8js7p3neb7fdbu3z+Zx6Hbdunc/z836/X+/MzEzq16/PrFmzdIMmFV5JSQn169fnk08+4cCBA7zyyis3nWpe/kCqatWq9OrVi8DAwL+7VJFfZGdnx9dff02rVq14+eWXWbt2LTt27CA6OppTp06xefNmAPr27cvy5cuJjY1lypQpzJ49mzlz5pCUlKTpkfKLAgICaNGiBXXq1LF2KSK3zJUrV3BxceGtt97C29ubDz74gCVLlnDlypUbgnf518OHD8fNzY0zZ85Yq2z5m9lbuwCpeEwmE3FxcWRlZeHs7Mwrr7xCgwYNqFGjBrNnz2bQoEF88sknlJSUMHnyZAwGA2+//TaOjo5Mnz5dT/TkH8HR0ZENGzbw1Vdfce+997J27VoKCwuZO3cuDRs2vO5as9lM9erVWbJkCQ4ODlaqWORG+fn5/Pvf/6ZGjRoMGTLEcrxfv37MmjWL3Nxc4Orv+4ABAzAYDDz11FMAHDhwQIFbflXdunXZvn07lStXtnYpIreMvf3VOPXNN9/wwAMPkJiYyGuvvYa9vT1Dhw7FwcHBMquo/EG8l5cXe/bswdXV1Zqly99I3cvlT8nMzGT27NlkZGTg6upKcHAwEydOpE6dOly8eJE9e/awfPlyQkJCAJgzZw59+vTRCLf8Y+zZs4fAwEBef/11PDw8KCgoYNiwYbRs2ZIFCxbcELxBXZ3FNvy8s25sbCwffPABtWrVYtq0aXh7e/Ptt9/y4IMPsmLFCgYOHGi5tqSkhISEBO6//368vb2tUb6IiM3ZvHkzTzzxBBMnTsRkMrFt2zZKS0sZNmwYw4YNw8HBwXIPoHuB25NCt/xpZ86cITo6mrS0NJ566imGDx9OQkICe/bsYd68eaxbt44+ffpYu0yRWyI8PJzU1FQSExMtx44dO8bDDz9M27ZtmT17Nj4+PlasUORG5YH7hx9+ID09nbZt2wKwePFiVq1ahbe3N8888wxPP/00gYGBLFy4ENADIxGRmzGbzRQUFNC9e3fat2/PjBkzALh48SJDhw7lyy+/ZNSoUZYRb/0tvX1pTbf8aXXq1GHSpEn4+fmxbNkyXn/9dbp3786cOXM4ceKEArf8I5U/p8zLy+Py5cuW45cvX6ZRo0bMmzePrVu38uKLL3LixAlrlSlyU3Z2dpw6dYqmTZsybtw4duzYAcCwYcMYOHAg33zzDY8++igPP/ywJXCXN88UEZHrGQwGXFxcrgvTpaWlVKlShZUrV2I0GlmwYAGvvfaapau53J4UuuV/4ubmxqRJk2jdujWrV68mOjoagHvvvVdbIMg/UvkHZu/evUlNTWXVqlXA1X2NAZydnfH39+fbb7/F0dHRanWK/JLU1FRyc3MxGo0sW7aMbdu2AVcb+4SEhODr64vZbCY9Pd26hYqI2Diz2UxxcTHVqlXjyy+/BK6u8S4rK8PJyYlHHnmEc+fOkZycTEFBgZWrFWvS9HL5S2RlZREVFUVaWhodO3Zk2rRp1i5J5C9R/vT6yJEjfPfddwD4+vri6enJqFGjSEhI4JVXXmHQoEGUlpYyZcoUnJ2deemllxS6xWZ17tyZCxcuUKdOHcrKyhgxYgRdu3YFfppq7uHhwdSpU2nQoIGVqxURsQ3l9wRZWVk4ODhQXFxM3bp1+fzzz3n44Yd57rnnmDt3ruX60aNH4+PjQ8+ePXFzc7Ni5WJtCt3yl8nKymLixIn88MMPrFmzhrvuusvaJYn8JTZs2MCYMWNwdXXF2dmZo0eP8uGHH1KjRg1iY2OJjY2lcePGGI1Gjh8/TlJSEk2bNrV22SI3NE27fPkylSpVYvXq1SQlJdGxY0cWLVpE5cqVef755y3Be+nSpcTGxvLQQw/x5ptvWrrziojcrsoD9+bNm5kxYwaXL18mJyeH0aNH8+yzz5KYmMigQYNo3749DRo0oLCwkHXr1nHkyBE1EhaFbvlrZWdnA1CrVi0rVyLy10hNTeXRRx9l1qxZDBs2jOTkZNq1a0dERATTpk2jsLCQzz//nB07duDi4kLPnj257777rF22iCVwnzlzhpMnT9KuXTvLucOHDxMYGMjSpUupU6cOo0ePpnLlyowcOdISvOPi4ggICMDDw8Nab0FExKbs2LGDoKAgYmJiCAwMJD4+noiICHbv3k1AQACHDx9m+vTp5OfnYzQaiY6O5sEHH7R22WIDFLpFRG6i/Il2XFwcO3fuJD4+noyMDNq1a0ePHj0sTabOnTtHjRo1rFytyM2lp6fTokULzp8/T1hYGL169eKhhx6iWrVqzJ8/n61bt7J161b2799PdHQ0VapUYciQIfTs2dPapYuI2JywsDCqVatGTEwM6enpdOnSBX9/f5YuXWq5bygpKcHR0ZHi4mLtUS8WaqQmIrc9k8kE/NSZHH5qmJadnU1BQYFlpLBbt27ExsYCsH37dubOnUthYeHfX7TI73Dw4EGqV69OkyZNSE5OZtWqVbRt25Zdu3bh5uaGs7MzR44cISAggIkTJ3LmzBni4+O5ePEieiYvIvKTkpIS0tLSaNasGUVFRbRp04aAgACWLFkCwBtvvEFaWpqln0t5g1URAC3SEpHbnp2dHRkZGZw/f56mTZuyfv16tmzZwttvv42vry/vv/8+bdq04bHHHmPx4sWYzWbMZjMJCQkK3GLTnnjiCQoKCvjggw9wdHTkqaee4oEHHiAyMpJq1aqxbds2jEYj69evp0OHDsydOxcPDw+qVKli7dJFRKyqfOT64sWLVKlSBUdHRzp37syqVasYO3YsvXv3Zv78+RgMBi5fvszHH39Mbm4uDz74IEajUduDyXU00i0itzWz2YzJZKJ///707duXmJgYBgwYQMeOHQHo3r07np6enD9/nu7du5Ofn09OTg7h4eGsXbuWcePGUbVqVSu/C5Eblc/gGDx4MIGBgZw9e5YVK1YQFhbG2rVrCQ0NpUmTJvTq1cvymnbt2uHu7m6tkkVEbEJ54P7www+JiIggNTUVgObNm5ORkUHt2rWJiIjA3t4ek8lEZGQkBw4cYNCgQRiNRitXL7ZIa7pFRP6fu7s7mZmZREREMGXKlOvOdezYkczMTLKzs/H19SU9PZ3333+fZs2aWalakd92bffylStXsmLFCurWrUtUVBReXl5acygi8gs2btzI008/zdixYxk4cCANGzYEICYmhlWrVuHo6Mj999/P+fPnSU5OZteuXbonkF+k0C0it72ysjJMJhPu7u6YTCbq1avH4sWL8fPzA35a3713716OHTuGl5cXjRs35p577rFm2SIWa9asoUmTJvj4+Nxw7ufBOy4ujtq1azNjxgy8vb0tIzoiInLV559/Tvfu3Zk5cybPPPOM5Xhubi6urq7s27ePTZs28f333+Pr68vAgQO1c4n8KoVuEblt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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "\n", "# df to plot the distribution of 'media_type_name'\n", "\n", "media_type_counts = df['media_type_name'].value_counts()\n", "\n", "# Set a larger figure size (width, height)\n", "plt.figure(figsize=(10, 6)) # Adjust width and height as needed\n", "\n", "# Create the pie chart\n", "plt.pie(media_type_counts.values, labels=media_type_counts.index, autopct='%1.1f%%', startangle=140)\n", "plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle\n", "plt.title(\"Total of Media Type Name for All Tracks\")\n", "plt.tight_layout() # Adjust layout to prevent clipping of labels\n", "plt.show()\n" ], "metadata": { "id": "AUZpq-VJ4_L7", "colab": { "base_uri": "https://localhost:8080/", "height": 607 }, "outputId": "aad7a1f0-8bce-49bf-a724-2e23b688277a" }, "execution_count": null, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACuRUlEQVR4nOzdd1hTZ/8G8DsEEkaYggKK4gL3trbuvf25Wvfq0lq1ra3db+usvq3V2tbWVfeuq1q1zjpxgAqoiIAIgrI3IYSs8/vD19QUUGQdCPfnurzanPOcc+4kaPjmGUciCIIAIiIiIiIiIip1FmIHICIiIiIiIjJXLLqJiIiIiIiIygiLbiIiIiIiIqIywqKbiIiIiIiIqIyw6CYiIiIiIiIqIyy6iYiIiIiIiMoIi24iIiIiIiKiMsKim4iIiIiIiKiMsOgmIiIiIiIiKiMsuomIKB9vb29MmTLF+Pjs2bOQSCQ4e/asaJkqm3+/hmUlOjoaEokEmzZtMm6bMmUKFApFmV/7CYlEgnnz5pXb9Z527NgxtGrVCtbW1pBIJMjIyBAlR3kq7/eXiIhKhkU3EVEFtWnTJkgkEkgkEly8eDHffkEQ4OXlBYlEgsGDB4uQsHi8vb2Nz+tZf54uIsXWvXt3Yy4LCws4ODjA19cXEydOxMmTJ0vtOkePHhWteH2eipgtNTUVo0aNgo2NDX755Rds3boVdnZ2ZXKtovzM8ospIiIqiKXYAYiI6Nmsra2xY8cOdO7c2WT7uXPn8PDhQ8jl8jLP0LVrV+Tm5kImk5X4XCtWrIBSqTQ+Pnr0KHbu3IkffvgBrq6uxu0dO3Ys8bVKU61atbBkyRIAQE5ODu7du4f9+/dj27ZtGDVqFLZt2wYrKytj+7CwMFhYvNh320ePHsUvv/zyQsVtnTp1kJuba3LtsvCsbLm5ubC0LP9fKQICApCdnY2FCxeid+/eZXqtrVu3mjzesmULTp48mW9748aNyzQHERFVPiy6iYgquIEDB2LPnj346aefTAqbHTt2oG3btkhJSSnzDBYWFrC2ti6Vcw0bNszkcUJCAnbu3Ilhw4bB29u7VK5RFhwdHTFhwgSTbf/973/x3nvv4ddff4W3tze+/fZb476y/jJEp9PBYDBAJpOV2ntTXGJdPykpCQDg5ORUaufMyckpsLf83+/9lStXcPLkyXzb/02lUsHW1rbU8hERUeXD4eVERBXc2LFjkZqaajKMWaPRYO/evRg3blyBxxgMBqxYsQJNmzaFtbU1atSogWnTpiE9Pd2knSAIWLRoEWrVqgVbW1v06NEDISEh+c5X0JzuCxcu4LXXXkPt2rUhl8vh5eWF2bNnIzc3t0TPd+7cubCyskJycnK+fVOnToWTkxPUajWAx0PVBw8ejBMnThjn9TZp0gT79+/Pd2xGRgY++OADeHl5QS6Xo0GDBvj2229hMBiKnVUqleKnn35CkyZNsHLlSmRmZhr3/XtOt1arxfz589GwYUNYW1ujWrVq6Ny5s/F9nTJlCn755RcApkOZgX/mbX///fdYsWIF6tevD7lcjjt37hQ4p/uJ+/fvo1+/frCzs4OnpycWLFgAQRCM+wubq//vcz4r25Nt/+4BDwwMxIABA+Dg4ACFQoFevXrhypUrJm2eTKHw8/PDhx9+CDc3N9jZ2WH48OEFvv9P6969OyZPngwAaN++PSQSicnrvWfPHrRt2xY2NjZwdXXFhAkT8OjRI5NzPJkbHRkZiYEDB8Le3h7jx49/5nWfl6lZs2a4fv06unbtCltbW3zxxRcAgIMHD2LQoEHw9PSEXC5H/fr1sXDhQuj1+nznuXr1KgYOHAhnZ2fY2dmhRYsW+PHHH5957aCgILi5uaF79+4mI0mIiEh87OkmIqrgvL298corr2Dnzp0YMGAAAOCvv/5CZmYmxowZg59++infMdOmTcOmTZvw+uuv47333kNUVBRWrlyJwMBA+Pn5GYcif/3111i0aBEGDhyIgQMH4saNG+jbty80Gs1zc+3ZswcqlQrTp09HtWrV4O/vj59//hkPHz7Enj17iv18J06ciAULFmD37t2YOXOmcfuTLxpGjhxp0rMaERGB0aNH45133sHkyZOxceNGvPbaazh27Bj69OkD4HFvY7du3fDo0SNMmzYNtWvXxqVLl/D5558jPj4eK1asKHZeqVSKsWPH4quvvsLFixcxaNCgAtvNmzcPS5YswVtvvYWXXnoJWVlZuHbtGm7cuIE+ffpg2rRpiIuLK3DI8hMbN26EWq3G1KlTIZfL4eLiUuiXBnq9Hv3798fLL7+M7777DseOHcPcuXOh0+mwYMGCF3qORcn2tJCQEHTp0gUODg745JNPYGVlhTVr1qB79+44d+4cOnToYNJ+1qxZcHZ2xty5cxEdHY0VK1Zg5syZ2L17d6HX+PLLL+Hr64u1a9diwYIFqFu3LurXrw8Axp/99u3bY8mSJUhMTMSPP/4IPz8/BAYGmvSM63Q69OvXD507d8b3339f4l7p1NRUDBgwAGPGjMGECRNQo0YNYyaFQoEPP/wQCoUCf//9N77++mtkZWVh6dKlxuNPnjyJwYMHw8PDA++//z7c3d0RGhqKw4cP4/333y/wmgEBAejXrx/atWuHgwcPwsbGpkTPgYiISplAREQV0saNGwUAQkBAgLBy5UrB3t5eUKlUgiAIwmuvvSb06NFDEARBqFOnjjBo0CDjcRcuXBAACNu3bzc537Fjx0y2JyUlCTKZTBg0aJBgMBiM7b744gsBgDB58mTjtjNnzggAhDNnzhi3PcnytCVLlggSiUR48OBBkZ/n0qVLBQBCVFSUcdsrr7widOjQwaTd/v3782WoU6eOAEDYt2+fcVtmZqbg4eEhtG7d2rht4cKFgp2dnRAeHm5yzs8++0yQSqVCTEzMMzN269ZNaNq0aaH7Dxw4IAAQfvzxR5NsT7+GLVu2NHmfCjJjxgyhoI/mqKgoAYDg4OAgJCUlFbhv48aNxm2TJ08WAAizZs0ybjMYDMKgQYMEmUwmJCcnC4JQ8Pta2DkLyyYIggBAmDt3rvHxsGHDBJlMJkRGRhq3xcXFCfb29kLXrl2N2578jPfu3dvkZ3D27NmCVCoVMjIyCrzev48PCAgwbtNoNEL16tWFZs2aCbm5ucbthw8fFgAIX3/9db7X6bPPPnvmdQpS0OvRrVs3AYCwevXqfO0L+vsybdo0wdbWVlCr1YIgCIJOpxPq1q0r1KlTR0hPTzdp+/TrM3nyZMHOzk4QBEG4ePGi4ODgIAwaNMh4HiIiqlg4vJyIqBIYNWoUcnNzcfjwYWRnZ+Pw4cOFDi3fs2cPHB0d0adPH6SkpBj/tG3bFgqFAmfOnAEAnDp1ChqNBrNmzTIZKvzBBx8UKdPTvWk5OTlISUlBx44dIQgCAgMDi/9kAUyaNAlXr15FZGSkcdv27dvh5eWFbt26mbT19PTE8OHDjY8dHBwwadIkBAYGIiEhAcDj16RLly5wdnY2eU169+4NvV6P8+fPlyjvk9s3ZWdnF9rGyckJISEhiIiIKPZ1Ro4cCTc3tyK3f3qkgEQiwcyZM6HRaHDq1KliZ3gevV6PEydOYNiwYahXr55xu4eHB8aNG4eLFy8iKyvL5JipU6ea/Ax26dIFer0eDx48eOHrX7t2DUlJSXj33XdNRkQMGjQIjRo1wpEjR/IdM3369Be+TmHkcjlef/31fNuf/vuSnZ2NlJQUdOnSBSqVCnfv3gXweEh+VFQUPvjgg3zz1J9+fZ44c+YM+vXrh169emH//v3lsqgiERG9OBbdRESVgJubG3r37o0dO3Zg//790Ov1ePXVVwtsGxERgczMTFSvXh1ubm4mf5RKpXHxqScFTcOGDfNdy9nZ+bmZYmJiMGXKFLi4uEChUMDNzc1YED89t7k4Ro8eDblcju3btxvPd/jwYYwfPz5f8dGgQYN823x8fAA8npsMPH5Njh07lu/1eLLi9ZPXpLiezKG1t7cvtM2CBQuQkZEBHx8fNG/eHB9//DFu3rz5QtepW7dukdtaWFiYFL1A/telLCQnJ0OlUsHX1zffvsaNG8NgMCA2NtZke+3atU0eP/n5+/caBEXx5Oe6oOs3atQoXyFvaWmJWrVqvfB1ClOzZs0CV/kPCQnB8OHD4ejoCAcHB7i5uRkXYXvy9+XJl0zNmjV77nXUajUGDRqE1q1b4/fffy+VOwsQEVHZ4JxuIqJKYty4cXj77beRkJCAAQMGFLpis8FgQPXq1Y0F67+9SE9pYfR6Pfr06YO0tDR8+umnaNSoEezs7PDo0SNMmTKlRIuTAY+LrsGDB2P79u34+uuvsXfvXuTl5T13pejCGAwG9OnTB5988kmB+58Uo8V1+/ZtAI+/AChM165dERkZiYMHD+LEiRP47bff8MMPP2D16tV46623inSd0p6rW1DvKYACF/cqS1KptMDtwlOLvpUVuVz+wrd2e5aC3qOMjAx069YNDg4OWLBgAerXrw9ra2vcuHEDn376abH+vsjlcgwcOBAHDx7EsWPHMHjw4NKIT0REZYBFNxFRJTF8+HBMmzYNV65ceeYCU/Xr18epU6fQqVOnZxZpderUAfC4F/jpHtHk5OTn9jDeunUL4eHh2Lx5MyZNmmTc/vQK6yU1adIkDB06FAEBAdi+fTtat26Npk2b5mt37949CIJgUkCGh4cDgPEWZPXr14dSqSyTeznr9Xrs2LEDtra2+e6l/m8uLi54/fXX8frrr0OpVKJr166YN2+esegurAguDoPBgPv375t8ofDv1+VJj3JGRobJsQUN6y5qNjc3N9ja2iIsLCzfvrt378LCwgJeXl5FOldxPPm5DgsLQ8+ePU32hYWFGfeXp7NnzyI1NRX79+9H165djdujoqJM2j1ZCO727dvP/VmVSCTYvn07hg4ditdeew1//fUXunfvXurZiYio5Di8nIioklAoFFi1ahXmzZuHIUOGFNpu1KhR0Ov1WLhwYb59Op3OWGD17t0bVlZW+Pnnn016FIuykveTnsmnjxME4bm3NXoRAwYMgKurK7799lucO3eu0F7uuLg4HDhwwPg4KysLW7ZsQatWreDu7g7g8Wty+fJlHD9+PN/xGRkZ0Ol0xcqo1+vx3nvvITQ0FO+99x4cHBwKbZuammryWKFQoEGDBsjLyzNue3J/6H8XwcW1cuVK4/8LgoCVK1fCysoKvXr1AvC4QJVKpfnmtP/666/5zlXUbFKpFH379sXBgwdNhrEnJiZix44d6Ny58zNfp5Jq164dqlevjtWrV5u8tn/99RdCQ0MLXV2+LBX090Wj0eR7ndu0aYO6detixYoV+V7ngnr9ZTIZ9u/fj/bt22PIkCHw9/cv/fBERFRi7OkmIqpEntyX+Fm6deuGadOmYcmSJQgKCkLfvn1hZWWFiIgI7NmzBz/++CNeffVVuLm5Yc6cOViyZAkGDx6MgQMHIjAwEH/99RdcXV2feY1GjRqhfv36mDNnDh49egQHBwfs27evWHNwC2NlZYUxY8Zg5cqVxttyFcTHxwdvvvkmAgICUKNGDWzYsAGJiYnYuHGjsc3HH3+MQ4cOYfDgwZgyZQratm2LnJwc3Lp1C3v37kV0dPRzn3NmZia2bdsG4PEtyO7du4f9+/cjMjISY8aMKfBLjqc1adIE3bt3R9u2beHi4oJr165h7969JoudtW3bFgDw3nvvoV+/fpBKpRgzZkyRXq9/s7a2xrFjxzB58mR06NABf/31F44cOYIvvvjCOMXA0dERr732Gn7++WdIJBLUr18fhw8fLnCO+4tkW7RoEU6ePInOnTvj3XffhaWlJdasWYO8vDx89913xXo+RWVlZYVvv/0Wr7/+Orp164axY8cabxnm7e2N2bNnl+n1C9KxY0c4Oztj8uTJeO+99yCRSLB169Z8hbSFhQVWrVqFIUOGoFWrVnj99dfh4eGBu3fvIiQkpMAvjWxsbHD48GH07NkTAwYMwLlz54o0J5yIiMqRWMumExHRsxV0O6SC/PuWYU+sXbtWaNu2rWBjYyPY29sLzZs3Fz755BMhLi7O2Eav1wvz588XPDw8BBsbG6F79+7C7du3893uqqBbS925c0fo3bu3oFAoBFdXV+Htt98WgoOD891q6nkKumXYE/7+/gIAoW/fvs987sePHxdatGghyOVyoVGjRsKePXvytc3OzhY+//xzoUGDBoJMJhNcXV2Fjh07Ct9//72g0WiemfHJraCe/FEoFELDhg2FCRMmCCdOnCg029Ov4aJFi4SXXnpJcHJyEmxsbIRGjRoJ33zzjcm1dTqdMGvWLMHNzU2QSCTGW1I9uYXX0qVL812nsFuG2dnZCZGRkULfvn0FW1tboUaNGsLcuXMFvV5vcnxycrIwcuRIwdbWVnB2dhamTZsm3L59O985C8smCPlvGSYIgnDjxg2hX79+gkKhEGxtbYUePXoIly5dMmlT2M94Ybcy+7dn/R3ZvXu30Lp1a0EulwsuLi7C+PHjhYcPH5q0efrWWy+qsFuGFXZrOT8/P+Hll18WbGxsBE9PT+GTTz4Rjh8/XuDzvHjxotCnTx/B3t5esLOzE1q0aCH8/PPPz8ydkpIiNGnSRHB3dxciIiKK9ZyIiKhsSAShHFYpISIiKobg4GC0atUKW7ZswcSJE/Pt9/b2RrNmzXD48GER0hERERE9H+d0ExFRhbVu3TooFAqMGDFC7ChERERExcI53UREVOH8+eefuHPnDtauXYuZM2caF/EiIiIiqmxYdBMRUYUza9YsJCYmYuDAgZg/f77YcYiIiIiKjXO6iYiIiIiIiMoI53QTERERERERlREW3URERERERERlhEU3ERERERERURlh0U1ERERERERURlh0ExH9j0QiwR9//CF2DFFER0dDIpEgKCgIAHD27FlIJBJkZGSU6Lxr166Fl5cXLCwssGLFCsybNw+tWrUy7p8yZQqGDRtWomsQERERVWQsuonIxJQpUyCRSCCRSCCTydCgQQMsWLAAOp2uxOcti+JKjEL58uXLkEqlGDRo0DPb7dy5E1KpFDNmzChwf1ZWFr788ks0atQI1tbWcHd3R+/evbF//36IfWOJjh07Ij4+Ho6OjsU+R1ZWFmbOnIlPP/0Ujx49wtSpUzFnzhycPn26FJMSERERVWwsuokon/79+yM+Ph4RERH46KOPMG/ePCxdurTAthqNppzTiW/9+vWYNWsWzp8/j7i4uGe2++STT7Bz506o1WqTfRkZGejYsSO2bNmCzz//HDdu3MD58+cxevRofPLJJ8jMzCzrp/FMMpkM7u7ukEgkxT5HTEwMtFotBg0aBA8PD9ja2kKhUKBatWqlmJSIiIioYmPRTUT5yOVyuLu7o06dOpg+fTp69+6NQ4cOAfinx/qbb76Bp6cnfH19AQC3bt1Cz549YWNjg2rVqmHq1KlQKpUAgHnz5mHz5s04ePCgsRf97NmzAIDY2FiMGjUKTk5OcHFxwdChQxEdHW2SZ8OGDWjatCnkcjk8PDwwc+ZMAIC3tzcAYPjw4ZBIJMbHAHDw4EG0adMG1tbWqFevHubPn2/SWx8REYGuXbvC2toaTZo0wcmTJ4v02iiVSuzevRvTp0/HoEGDsGnTpgLbRUVF4dKlS/jss8/g4+OD/fv3m+z/4osvEB0djatXr2Ly5Mlo0qQJfHx88PbbbyMoKAgKhaLA80ZGRmLo0KGoUaMGFAoF2rdvj1OnTpm0Kaj338nJySSrv78/WrduDWtra7Rr1w6BgYEm7QsaXr5v3z7j++Dt7Y1ly5YV+jpt2rQJzZs3BwDUq1cPEokE0dHR+YaX/5vBYMCSJUtQt25d2NjYoGXLlti7d2+h7YmIiIgqOhbdRPRcNjY2Jj3ap0+fRlhYGE6ePInDhw8jJycH/fr1g7OzMwICArBnzx6cOnXKWBzPmTMHo0aNMvagx8fHo2PHjtBqtejXrx/s7e1x4cIF+Pn5QaFQoH///sbrrVq1CjNmzMDUqVNx69YtHDp0CA0aNAAABAQEAAA2btyI+Ph44+MLFy5g0qRJeP/993Hnzh2sWbMGmzZtwjfffAPgcWE3YsQIyGQyXL16FatXr8ann35apNfi999/R6NGjeDr64sJEyZgw4YNBQ4F37hxIwYNGgRHR0dMmDAB69evN+4zGAzYtWsXxo8fD09Pz3zHKhQKWFpaFnh9pVKJgQMH4vTp0wgMDET//v0xZMgQxMTEFCn/k3MMHjwYTZo0wfXr1zFv3jzMmTPnmcdcv34do0aNwpgxY3Dr1i3MmzcPX331VaFfOowePdr4ZYC/vz/i4+Ph5eX13GxLlizBli1bsHr1aoSEhGD27NmYMGECzp07V+TnR0RERFShCERET5k8ebIwdOhQQRAEwWAwCCdPnhTkcrkwZ84c4/4aNWoIeXl5xmPWrl0rODs7C0ql0rjtyJEjgoWFhZCQkJDvvE9s3bpV8PX1FQwGg3FbXl6eYGNjIxw/flwQBEHw9PQUvvzyy0LzAhAOHDhgsq1Xr17C4sWL813Lw8NDEARBOH78uGBpaSk8evTIuP+vv/4q8Fz/1rFjR2HFihWCIAiCVqsVXF1dhTNnzpi00ev1gpeXl/DHH38IgiAIycnJgkwmE+7fvy8IgiAkJiYKAITly5c/81pF1bRpU+Hnn382Pi7oeTg6OgobN24UBEEQ1qxZI1SrVk3Izc017l+1apUAQAgMDBQEQRDOnDkjABDS09MFQRCEcePGCX369DE558cffyw0adKk0FyBgYECACEqKsq4be7cuULLli2Nj5/+uVCr1YKtra1w6dIlk/O8+eabwtixY5/xChARERFVXAV3pRBRlXb48GEoFApotVoYDAaMGzcO8+bNM+5v3rw5ZDKZ8XFoaChatmwJOzs747ZOnTrBYDAgLCwMNWrUKPA6wcHBuHfvHuzt7U22q9VqREZGIikpCXFxcejVq9cL5Q8ODoafn5+xZxsA9Ho91Go1VCoVQkND4eXlZdLL/Morrzz3vGFhYfD398eBAwcAAJaWlhg9ejTWr1+P7t27G9udPHkSOTk5GDhwIADA1dUVffr0wYYNG7Bw4cISLZKmVCoxb948HDlyBPHx8dDpdMjNzX2hnu7Q0FC0aNEC1tbWxm3Pe/6hoaEYOnSoybZOnTphxYoV0Ov1kEqlL/ZECnDv3j2oVCr06dPHZLtGo0Hr1q1LfH4iIiIiMbDoJqJ8evTogVWrVkEmk8HT0zPfUOeni+uSUCqVaNu2LbZv355vn5ubGywsijcDRqlUYv78+RgxYkS+fU8Xmi9q/fr10Ol0JsW6IAiQy+VYuXKlcaXv9evXIy0tDTY2NsZ2BoMBN2/exPz58+Hm5gYnJyfcvXv3hTPMmTMHJ0+exPfff48GDRrAxsYGr776qsnwf4lEkq+w12q1L3yt8vZkDYAjR46gZs2aJvvkcrkYkYiIiIhKjEU3EeVjZ2dnnDddFI0bN8amTZuQk5NjLMj9/PxgYWFhXGhNJpNBr9ebHNemTRvs3r0b1atXh4ODQ4Hn9vb2xunTp9GjR48C91tZWRV43rCwsEKfQ+PGjREbG4v4+Hh4eHgAAK5cufLM56jT6bBlyxYsW7YMffv2Ndk3bNgw7Ny5E++88w5SU1Nx8OBB7Nq1C02bNjW20ev16Ny5M06cOIH+/ftjzJgx2Lp1K+bOnZtvXrdSqYS1tXWB87r9/PwwZcoUDB8+3Nj23wvPubm5IT4+3vg4IiICKpXK5Plv3boVarXa+CXE855/48aN4efnly+Lj49PqfRyA0CTJk0gl8sRExODbt26lco5iYiIiMTGhdSIqMTGjx8Pa2trTJ48Gbdv38aZM2cwa9YsTJw40Ti03NvbGzdv3kRYWBhSUlKg1Woxfvx4uLq6YujQobhw4QKioqJw9uxZvPfee3j48CGAxyufL1u2DD/99BMiIiJw48YN/Pzzz8ZrPynKExISkJ6eDgD4+uuvsWXLFsyfPx8hISEIDQ3Frl278J///AcA0Lt3b/j4+GDy5MkIDg7GhQsX8OWXXz7zOR4+fBjp6el488030axZM5M/I0eONC6UtnXrVlSrVg2jRo0yadOyZUsMHDjQ2O6bb76Bl5cXOnTogC1btuDOnTuIiIjAhg0b0Lp1a2Ov7781bNgQ+/fvR1BQEIKDgzFu3DgYDAaTNj179sTKlSsRGBiIa9eu4Z133oGVlZVx/7hx4yCRSPD222/jzp07OHr0KL7//vtnPv+PPvoIp0+fxsKFCxEeHo7Nmzdj5cqVz12A7UXY29tjzpw5mD17NjZv3ozIyEjj+7158+ZSuw4RERFRuRJ5TjkRVTAFLXhWlP03b94UevToIVhbWwsuLi7C22+/LWRnZxv3JyUlCX369BEUCoUAwLj4WHx8vDBp0iTB1dVVkMvlQr169YS3335byMzMNB67evVqwdfXV7CyshI8PDyEWbNmGfcdOnRIaNCggWBpaSnUqVPHuP3YsWNCx44dBRsbG8HBwUF46aWXhLVr1xr3h4WFCZ07dxZkMpng4+MjHDt27JkLqQ0ePFgYOHBggfuuXr0qABCCg4OF5s2bC++++26B7Xbv3i3IZDIhOTlZEARByMjIED777DOhYcOGgkwmE2rUqCH07t1bOHDggMnick+LiooSevToIdjY2AheXl7CypUrhW7dugnvv/++sc2jR4+Evn37CnZ2dkLDhg2Fo0ePmiykJgiCcPnyZaFly5aCTCYTWrVqJezbt++ZC6kJgiDs3btXaNKkiWBlZSXUrl1bWLp0aYEZn3jRhdQE4fHifStWrDC+325ubkK/fv2Ec+fOPfNaRERERBWVRBBKsKIPERERERERERWKw8uJiIiIiIiIygiLbiIiIiIiIqIywqKbiIiIiIiIqIyw6CYiIiIiIiIqIyy6iYiIiIiIiMoIi24iIiIiIiKiMsKim4iIiIiIiKiMsOgmIiIiIiIiKiMsuomIiIiIiIjKCItuIiIiIiIiojLCopuIiIiIiIiojLDoJiIiIiIiIiojlmIHICIiqhI0KiAnGchJAVQpgCoVyFMCWtVTf3IBbS5+wWsIzrKHVm+AVi9AozdApzfAQiKBhYUEFhJAaiGBhUQCqYUE0n9tl1tKYSeXQiG3gr21JexkUiisraCQWz5+LLeEQm4JB2tLuNjJYCnld/BERERlhUU3ERFRcem1QEYMkPEAUCY9LqifLqxzkv95rFUV+bRRjm1xItG9DIP/QyIBXGxlcLOXw81ejur21qjuIEf1px/by+HuaA1rK2m5ZCIiIjInLLqJiIieRaMC0qOBtPtAetTj/6b977+ZDwFBX+qXtJOW/jkLIwhAao4GqTka3E3ILrSdRALUsLdG7Wq28K5mizrV7OBdzQ51qtmiTjVb2FtblVtmIiKiyoRFNxEREQBkxQHxN4HE2/8U1elRQHYCAKFco9hKteV6vaIQBCAhS42ELDX8o9Ly7a9mJ0PtaraoW80Ovu72aOzhgMYeDnCzl4uQloiIqOJg0U1ERFWLIDwuqBNuAvHBjwvthJuPh4FXELYSndgRXtiT3vLAmAyT7a4KmbEAb+zxuBiv76aAFeeRExFRFcGim4iIzJdBDyTf/aewjg8GEm4BeVliJ3smW4vKV3QXJkWpwYWIFFyISDFuk0ktUL+6Ai1rOaJNbWe09XZGfTeFiCmJiIjKDotuIiIyH3lK4KE/8OAS8OAy8Og6oMsVO9ULs5FUvOHlpUmjNyA0Pguh8VnYFRALAHC2tUKb2s5oU8cZ7eo4o6WXExduIyIis8Cim4iIKi91JhDtBzz435+EW4Ch8vcSW5tRT3dRpau0OH03CafvJgEArKQSNPFwQJs6zuhQ1wWv1HeFow0XayMiosqHRTcREVUeGhUQcxmIOv/4T3xwmaweLjZz7+kuCq1eQPDDTAQ/zMRGv2hILSRoXtMRXRu6oouPG1p7OfH+4kREVClIBEEo3yVZiYiIXkRqJHD3CBB+/PHQcb1G7ERl7m+vGXgjopPYMSo0e7klOtSrhq4+rujS0A11Xe3EjkRERFQg9nQTEVHFYjAADwOAsCNA2F9ASrjYicqdNdjT/TzZeTqcCk3EqdBEAEAtZxt09XFD78bV0amBK+SWnA9OREQVA3u6iYhIfBoVcP8McPcoEHG8Qt2+SwzXvV7HyIg+YseotOxkUnT1cUPfpjXQ07cGHG05F5yIiMTDnm4iIhKHMulxT3bYUeD+uUq5ynhZkcH8h9CXpRyNHn/dTsBftxNgJZXg5XrVMKCZB/o1rYFqCrnY8YiIqIphTzcREZUfdSYQcgAI3v14QTTwI6ggYV6j0C9imNgxzI7UQoKXvF0wsIUHBjf3gLOdTOxIRERUBbDoJiKisqXXAfdOAsG7gPBjgE4tdqIKL6rWMPS4N0rsGGbNSipBN5/qGNmmJno1rgGZJVdCJyKissHh5UREVDYe3XhcaN/eB6hSxE5TqVhxIbUyp9ULxoXYnGytMKi5B0a0qYW2dZzFjkZERGaGPd1ERFR6Mh8CN3c/Hj6eEiZ2mkorwbMPXr7/utgxqqS6rnYY1qomRrSpCS8XW7HjEBGRGWDRTUREJaNVAyH7gaAdQPRFcJ52yaV6dEXbqHfEjlGlSSRAe28XjO9QGwOaeXD4ORERFRuLbiIiKp6MWCDgN+DGFiA3Tew0ZiWzRge0fPC+2DHof1wVcoxp74VxHWrD08lG7DhERFTJsOgmIqIXE3UB8F/z+J7agl7sNGZJ6dYazWI/FjsG/YvUQoKejapj0it10LmBKyQSidiRiIioEmDRTUREz6dRPZ6r7b8OSAoRO43Zy63WFI0ffSl2DHqGeq52GNehNl5r5wVHGyux4xARUQXGopuIiAqX/gAIWAfc2AqoM8ROU2VonBrAJ2GB2DGoCGyspBjWuiamdq2Huq52YschIqIKiEU3ERHld/8scHXN4/tqCwax01Q5OgcvNEj6VuwY9AIsJEC/pu6Y3r0+WtRyEjsOERFVICy6iYjoMUEA7h4GLiwD4gLFTlOl6e2qo37qCrFjUDF1rF8N73Srj64+bmJHISKiCoD3vyB6DolEgj/++EPsGBXelClTMGzYsGe26d69Oz744IMyz7J27Vp4eXnBwsICK1aswLx589CqVSvj/qJkrVIMeuDm78CvrwC7J7DgrgAsdHliR6ASuBSZikkb/DH45wv4MzgOegP7N4iIqjIW3VQkU6ZMgUQigUQigUwmQ4MGDbBgwQLodLoSn7csip/yLJSfvDbvvJP/nrozZsyARCLBlClT8rUv7LU8e/ascf+//yQkJBjPk5WVha+++gpNmzaFjY0NqlWrhvbt2+O7775Denp6kbILgoABAwaUyuv1448/YtOmTSU6R2nIysrCzJkz8emnn+LRo0eYOnUq5syZg9OnT4sdrcLRGrTIvLkL+LktsP9tIDlU7Ej0hJ5Ftzm4/SgLs3YGoueys9h25QHydFztn4ioKrIUOwBVHv3798fGjRuRl5eHo0ePYsaMGbCyssLnn3+er61Go4FMJhMhpTi8vLywa9cu/PDDD7CxeXwPV7VajR07dqB27dr52hfltQwLC4ODg4PJcdWrVwcApKWloXPnzsjKysLChQvRtm1bODo6IiwsDBs3bsSOHTswY8aM5+ZesWJFqd3yxtHRsVTOU1IxMTHQarUYNGgQPDw8jNsVCoWIqSoWrUGLP+79gd9u/oY2MhcsSY8SOxL9G3u6zcqDVBX+88dt/HrmHt7r1RCvtq0FSyn7PYiIqgr+i09FJpfL4e7ujjp16mD69Ono3bs3Dh06BOCfHutvvvkGnp6e8PX1BQDcunULPXv2NPbETp06FUqlEgAwb948bN68GQcPHjT25J49exYAEBsbi1GjRsHJyQkuLi4YOnQooqOjTfJs2LABTZs2hVwuh4eHB2bOnAkA8Pb2BgAMHz4cEonE+BgADh48iDZt2sDa2hr16tXD/PnzTXrrIyIi0LVrV1hbW6NJkyY4efJkkV6bNm3awMvLC/v37zdu279/P2rXro3WrVu/0Gv5RPXq1eHu7m7yx8Li8V/ZL774AjExMfD398frr7+OFi1aoE6dOujbty927tyJd99997mZg4KCsGzZMmzYsOG5bb/44gt06NAh3/aWLVtiwYLHKyz/e9RCTk4OJk2aBIVCAQ8PDyxbtizf8Xl5eZgzZw5q1qwJOzs7dOjQwfgz8MS+ffuM77O3t3eB53li06ZNaN68OQCgXr16kEgkiI6Ozje8/N8MBgOWLFmCunXrwsbGBi1btsTevXuf8YpUTlqDFnvC92Dw/sFYcHkB4nLi8FdGKGJc64odjf5FAgF2UvaKmpu4TDU+238LvZefw8GgRzBw2DkRUZXAopuKzcbGBhqNxvj49OnTCAsLw8mTJ3H48GHk5OSgX79+cHZ2RkBAAPbs2YNTp04Zi+M5c+Zg1KhR6N+/P+Lj4xEfH4+OHTtCq9WiX79+sLe3x4ULF+Dn5weFQoH+/fsbr7dq1SrMmDEDU6dOxa1bt3Do0CE0aNAAABAQEAAA2LhxI+Lj442PL1y4gEmTJuH999/HnTt3sGbNGmzatAnffPMNgMeF14gRIyCTyXD16lWsXr0an376aZFfjzfeeAMbN240Pt6wYQNef/31Yr2Wz2IwGLB7925MmDABnp6eBbZ5Xu+1SqXCuHHj8Msvv8Dd3f251xw/fjz8/f0RGRlp3BYSEoKbN29i3LhxBR7z8ccf49y5czh48CBOnDiBs2fP4saNGyZtZs6cicuXL2PXrl24efMmXnvtNfTv3x8REREAgOvXr2PUqFEYM2YMbt26hXnz5uGrr74qdBj76NGjcerUKQCAv78/4uPj4eXl9dznt2TJEmzZsgWrV69GSEgIZs+ejQkTJuDcuXPPPbYyMAgGHLx30KTYfkIv6LG2dmMR01FhHCxZdJur6FQV3t8VhAE/XsCx2wnPP4CIiCo1Di+nFyYIAk6fPo3jx49j1qxZxu12dnb47bffjMPK161bB7VajS1btsDO7vG9S1euXIkhQ4bg22+/RY0aNWBjY4O8vDyTwm/btm0wGAz47bffjMXjxo0b4eTkhLNnz6Jv375YtGgRPvroI7z//vvG49q3bw8AcHN7vFqsk5OTyXnnz5+Pzz77DJMnTwbwuCd04cKF+OSTTzB37lycOnUKd+/exfHjx43F7OLFizFgwIAivS4TJkzA559/jgcPHgAA/Pz8sGvXrnw9t0V5LQGgVq1aJo/r1KmDkJAQJCcnIyMjwzia4Im2bdsiLCwMADBkyBDs3Lmz0OvOnj0bHTt2xNChQ4v03Jo2bYqWLVtix44d+OqrrwAA27dvR4cOHYxfdjxNqVRi/fr12LZtG3r16gUA2Lx5s8lziomJwcaNGxETE2N8vefMmYNjx45h48aNWLx4MZYvX45evXoZr+nj44M7d+5g6dKlJvPkn3gyogJ4/HNQlC8U8vLysHjxYpw6dQqvvPIKgMc/GxcvXsSaNWvQrVu3Ir1GFdWluEtYfm05wtLDCm1zJOMu3nGpjVppMeWYjJ7H3lKH+LyqM02nKgpLzMY7266jRS1HfNTXF9242jkRkVli0U1FdvjwYSgUCmi1WhgMBowbNw7z5s0z7m/evLnJPO7Q0FC0bNnSWHADQKdOnWAwGBAWFoYaNWoUeJ3g4GDcu3cP9vb2JtvVajUiIyORlJSEuLg4YzFXVMHBwfDz8zP2bAOAXq+HWq2GSqVCaGgovLy8THqPnxRhReHm5oZBgwZh06ZNEAQBgwYNgqura4Ftn/daAo975p9+DaysrJ55/QMHDkCj0eDTTz9Fbm4ugMdfGixevNjY5s6dOwgKCsLff/+NwMAXW6F6/Pjx2LBhA7766isIgoCdO3fiww8/LLBtZGQkNBqNyZB0FxcXky8Kbt26Bb1eDx8fH5Nj8/LyjIVzaGhovi8GOnXqhBUrVkCv10Mqlb7QcyjIvXv3oFKp0KdPH5PtGo2mwKkBlUV4ejiWX1sOvzi/57bVCTr85t0c81h0VygK9nRXGTcfZmLyBn+85O2CT/r7op23i9iRiIioFLHopiLr0aMHVq1aBZlMBk9PT1hamv74PF1cl4RSqUTbtm2xffv2fPvc3NyM85qLc9758+djxIgR+fZZW1sX65z/9sYbbxiHz//yyy+FtnveawkAdevWhZOTU77tbm5ucHJyMvZqP/FkwTZ7e3tkZGQAAN555x2MGjXK2MbT0xPLly9HZGRkvnOPHDkSXbp0KbRnfuzYsfj0009x48YN5ObmIjY2FqNHjy70OT6PUqmEVCrF9evX8xXP5bno2ZM1Bo4cOYKaNWua7JPL5eWWo7QkqZKwMnAlDkYehEEwFPm4Q5l3Mc3ZCx7psWWYjl6EvbRkd4egysc/Og2vrr6MwS088PnAxqjpZCN2JCIiKgUsuqnI7OzsChxKXJjGjRtj06ZNyMnJMRbkfn5+sLCwMPZ4ymQy6PWmvTlt2rTB7t27Ub169Xyrdz/h7e2N06dPo0ePHgXut7KyKvC8YWFhhT6Hxo0bIzY2FvHx8cZVr69cuVLk5wvAOO9cIpGgX79+hbZ70dfyaRYWFhg1ahS2bduGr7/+utB53cDj3mUXF9Mek88++wxvvfWWybbmzZvjhx9+wJAhQwo9V61atdCtWzds374dubm56NOnj3E19X+rX78+rKyscPXqVeOXAenp6QgPDzcO127dujX0ej2SkpLQpUuXAs/TuHFj+PmZ9tT6+fnBx8enVHq5AaBJkyaQy+WIiYmp1EPJVVoVNtzegC13tiBXl/vCx2sNWqyv2wL/YdFdYdhyIbUq6/DNeJwKTcTULvUwvXsD2MhK5987IiISB4tuKjPjx4/H3LlzMXnyZMybNw/JycmYNWsWJk6caBxa7u3tjePHjyMsLAzVqlWDo6Mjxo8fj6VLl2Lo0KFYsGABatWqhQcPHmD//v345JNPUKtWLcybNw/vvPMOqlevjgEDBiA7Oxt+fn7GedFPivJOnTpBLpfD2dkZX3/9NQYPHozatWvj1VdfhYWFBYKDg3H79m0sWrQIvXv3ho+PDyZPnoylS5ciKysLX3755Qs9Z6lUitDQUOP/l0RSUhLUarXJtmrVqsHKygqLFy/G2bNn8dJLL2HBggVo164d7OzscPPmTVy+fBnNmjUr9LxPVkL/t9q1a6Nu3WevYv3kPdVoNPjhhx8KbadQKPDmm2/i448/RrVq1VC9enV8+eWXJqMUfHx8MH78eEyaNAnLli1D69atkZycjNOnT6NFixYYNGgQPvroI7Rv3x4LFy7E6NGjcfnyZaxcuRK//vrrM3O+CHt7e8yZMwezZ8+GwWBA586dkZmZCT8/Pzg4OBjXAKio9AY99kXsw69BvyJVnVqicx3IDMNURw9Uz4wvpXRUEgr2dFdpaq0BP/19D79fe4hPB/hiWKuapXaLRyIiKl9cvZzKjK2tLY4fP460tDS0b98er776Knr16oWVK1ca27z99tvw9fVFu3bt4ObmBj8/P9ja2uL8+fOoXbs2RowYgcaNG+PNN9+EWq029nxPnjwZK1aswK+//oqmTZti8ODBxhWvAWDZsmU4efIkvLy8jPNy+/Xrh8OHD+PEiRNo3749Xn75Zfzwww+oU6cOgMc9yAcOHEBubi5eeuklvPXWWybzv4vKwcGh0B76F+Hr6wsPDw+TP9evXwfwuPj29/fHpEmTsHTpUrz00kto3rw55s2bh9GjR2PdunUlvn5BXn31VaSmpkKlUpncHqwgS5cuRZcuXTBkyBD07t0bnTt3Rtu2bU3abNy4EZMmTcJHH30EX19fDBs2DAEBAcbe8TZt2uD333/Hrl270KxZM3z99ddYsGBBgYuolcTChQvx1VdfYcmSJWjcuDH69++PI0eOPPdLCLFdT7yOV/98FQuvLCxxwQ0AGoMGG+q1KYVkVBpsLVh0E5CQpcbs3cEY/uslBMakix2HiIiKQSIIAm8SSURUiaSr07Hs2jIcijwEAaX7T7i1VI6/ErPgmp1YquelF/ed62L8+tBb7BhUgUgkwLBWNfFp/0ZwdyydtUiIiKjssaebiKiSEAQB+8L3YcgfQ3Aw8mCpF9wAoNbnYVOD9qV+XnpxthxeTv8iCMCBwEfovfwcNvpFwWBgvwkRUWXAopuIqBKISI/A5GOTMe/yPGTmZZbptX5XRiDNruDb3VH5sZNoxY5AFZQyT4f5f97B8FWXcCcuS+w4RET0HCy6iYgqMJVWheXXlmPUn6MQmPRi91YvrlxdLjY37PD8hlSmbDinm54jODYD/7fyIpb8FQq1lqvdExFVVCy6iYgqqDMxZzDs4DBsDNkInVC+BdiunEhk2Lo8vyGVGWv2dFMR6AwC1py7j74/nMf58GSx4xARUQFYdBMRVTApuSl4/+/38d6Z9xCfI87tu1Q6Fbb6vCLKtekxFt30ImLSVJi0wR8f7ApEqjJP7DhERPQUFt1ERBXI8ejjGH5wOP6O/VvsKNipikKWjaPYMaosFt1UHH8ExaH38nPYd/2h2FGIiOh/WHQTEVUAmXmZ+OT8J5hzbg4y8jLEjgMAyNYqsd23k9gxqiw5WHRT8aSrtPhoTzCmbb2GtByN2HGIiKo8Ft1ERCK7+OgiRhwcgb+i/hI7Sj7bch9Aae0gdowqSQ4WS1Qyx0MS0feH8/j7bqLYUYiIqjQW3UREIlFpVVhweQGmn5qOpNwkseMUKEuTjZ2+ncWOUSXJ2NNNpSBFmYc3Nl3D5/tvQqXhivhERGJg0U1EJIIbiTcw8tBI7AnfI3aU59qijoVKrhA7RpXDoptK007/WAz48QKuP0gXOwoRUZXDopuIqBxp9Bosv7Ycrx9/HQ+VlWOhowxNJnb5dhE7RpUjEzi8nErXg1QVRq25jKXH70KrN4gdh4ioymDRTURUTu5n3sfYI2OxMWQjDELl+oV3syYOuTJbsWNUKVYsuqkM6A0CfjkTieG/+uFeklLsOEREVQKLbiKicnAo8hDGHB6D8PRwsaMUS1peOvb4dhU7RpViyaKbytDtR1n4v5UXeWsxIqJywKKbiKgM5epy8Z+L/8GXF79Eri5X7DglskmXgDxLa7FjVBlWBhbdVLZUGj0+2hOMOXuCkavRix2HiMhssegmIioj99LvYezhsTgYeVDsKKUiWZ2GvY27iR2jypCyp5vKyd7rD/F/Ky8iPDFb7ChERGaJRTcRURk4fP8wxh0dh8jMSLGjlKqN+mRopTKxY1QJloY8sSNQFRKRpMSwX/zwR+AjsaMQEZkdFt1ERKVIq9di0ZVF+PzC55V+OHlBEnNTcKARe7vLgwWHl1M5U2n0+GB3EL48cAt5Og43JyIqLSy6iYhKSbwyHpOPTcbusN1iRylT64V0aC2sxI5h9qR69nSTOLZfjcFrqy/jYbpK7ChERGaBRTcRUSm4En8Fow6Pwq2UW2JHKXNxuUk4xN7uMmfBoptEdPNhJob8fBGXI1PFjkJEVOmx6CYiKqHdd3dj+snpyMjLEDtKuflNkgWdhaXYMcyahEU3iSxdpcWkDVex42qM2FGIiCo1Ft1ERMWkN+jxzZVvsOjqIugEndhxytVDVQKO+LK3uyyxp5sqAq1ewBcHbmHuwdvQGwSx4xARVUosuomIiiFbk413T7+LXWG7xI4imt+kOdBLpGLHMF86tdgJiIw2X36AKRv9kZmrFTsKEVGlw6KbiOgFxWbFYvzR8bgUd0nsKKKKzonDMd+uYscwWxK9BhIJexap4rgQkYLhv/ghMlkpdhQiokqFRTcR0QsISAjA2KNjEZUZJXaUCmGdVR4MEn6UlBV7KW/bRBXL/ZQcDP/FD+fCk8WOQkRUafA3JSKiItobvhdTT05FZl6m2FEqjEjlQ5xo2EXsGGbL3rJqrRVAlUOWWoc3NgVgw0V++UhEVBQsuonMWHR0NCQSCYKCggAAZ8+ehUQiQUZGRonOu3btWnh5ecHCwgIrVqzAvHnz0KpVK+P+KVOmYNiwYSW6RkWiN+jxrf+3mH95PnQGFkH/tlauhwCJ2DHMkr2lQewIRAXSGwQsOHwHiw7fgSBwGgQR0bOw6Cb6n8uXL0MqlWLQoEHPbLdz505IpVLMmDGjwP1ZWVn48ssv0ahRI1hbW8Pd3R29e/fG/v37Rf/FpGPHjoiPj4ejo2Oxz5GVlYWZM2fi008/xaNHjzB16lTMmTMHp0+fLsWkFUeePg8fnv0Q20K3iR2lwopQxuDvhp3FjmGW7KX8kocqtt8uRuGD3UHQ6vkFERFRYVh0E/3P+vXrMWvWLJw/fx5xcXHPbPfJJ59g586dUKtNVxfOyMhAx44dsWXLFnz++ee4ceMGzp8/j9GjR+OTTz5BZqa4w5JlMhnc3d0hkRS/VzImJgZarRaDBg2Ch4cHbG1toVAoUK1atVJMWjEoNUpMPzUdf8f+LXaUCm+NjdgJzJOCRTdVAgeD4vDGpgDk5PHnlYioICy6iQAolUrs3r0b06dPx6BBg7Bp06YC20VFReHSpUv47LPP4OPjg/3795vs/+KLLxAdHY2rV69i8uTJaNKkCXx8fPD2228jKCgICoWiwPNGRkZi6NChqFGjBhQKBdq3b49Tp06ZtJFIJPjjjz9Mtjk5OZlk9ff3R+vWrWFtbY127dohMDDQpH1Bw8v37duHpk2bQi6Xw9vbG8uWLSv0ddq0aROaN28OAKhXrx4kEgmio6PzDS//N4PBgCVLlqBu3bqwsbFBy5YtsXfv3kLbVwSpual44/gbCEgIEDtKpRCa/QBnG3QSO4bZseNCalRJXIhIwdh1V5Ci5P3liYj+jUU3lUj37t3xwQcfiB0jnxfN9fvvv6NRo0bw9fXFhAkTsGHDhgKHgm/cuBGDBg2Co6MjJkyYgPXr1xv3GQwG7Nq1C+PHj4enp2e+YxUKBSwtLQu8vlKpxMCBA3H69GkEBgaif//+GDJkCGJiYor8HJRKJQYPHowmTZqgWrVqaN26NebMmQMAaN26db6CHQCuX7+OUaNGYcyYMbh16xbmzZuHr776qsAvHfz8/PD9999DKn18X+ZVq1YBAOzt7QEAaWlpcHJyKjDbkiVLsGXLFqxevRohISGYPXs2JkyYgHPnzhX5+ZWnOGUcJh+bjNC0ULGjVCpr7Ar++abiU3AhNapEbj7MxKurLiEmVSV2FCKiCoVFt5mYMmUKJBIJJBIJZDIZGjRogAULFkCn4y9sz5KbmwsXFxdMmzYNY8aMAQD0798fmZmZJgXhw4cPIZPJsGTJEkyYMAEAMGbMGFy8eBFRUVEQBAHLly9Heno6Nm3aBCcnJ7Rr1w4rVqyASvX8Xz5atmyJadOmoVmzZmjYsCEWLlyI+vXr49ChQ0V+Ljt27IDBYMD69ethZWWFpk2b4uOPPwYAnDx5EgMGDMh3zPLly9GrVy989dVX8PHxwZQpUzBz5kwsXbo0X9sPP/wQrVu3xpEjRwAAPXv2RHx8PFxcXJ6ZKy8vD4sXL8aGDRvQr18/1KtXD1OmTMGECROwZs2aIj+/8nIv/R4m/jURD7IeiB2l0rmdFYWL9V8RO4ZZsbXgv+FUuUSnqjBi1SXcfsS7PBARPcGi24z0798f8fHxiIiIwEcffYR58+YVWDwVlUajKcV0FdO+fftQr1496HQ6Y4+tpaUlRo8ebdKLvWnTJnTu3BkGgwGurq4AAFdXV/Tp0wcbNmzAxIkT8fXXXwMA3n33XQQFBeGrr77CwYMHceLEiefmUCqVmDNnDho3bgwnJycoFAqEhoa+UE93aGgoWrRoAWtra+O2V155xZhVLpcXeEynTqZDgjt16oSIiAjo9abDWiMjI9GzZ0/UqFEDQNHnh9+7dw8qlQp9+vSBQqEw/tmyZQsiIyOL/PzKQ3ByMKYcn4IkVZLYUSqt1Qrr5zeiIrNj0U2VUIoyD2PWXsGleyliRyEiqhBYdJsRuVwOd3d31KlTB9OnT0fv3r2NPaUFDbceNmwYpkyZYnzs7e2NhQsXYtKkSXBwcMDUqVMBPB5W3L17d9ja2sLZ2Rn9+vVDenq68TiDwYBPPvkELi4ucHd3x7x580yus3z5cjRv3hx2dnbw8vLCu+++C6VSadz/4MEDDBkyBM7OzrCzs0PTpk1x9OhR4/7bt29jwIABUCgUqFGjBiZOnIiUlH8+yHNycjBp0iQoFAp4eHg8c07yv61fv97YUztt2jRYWlrC0tISq1atwr59+5CZmQlBELBx40bodDoYDAZ06dLF2O7o0aNYtWoVtm/fju3bt8PJyQkqlQre3t4YOnQo/v77b/To0aPAa+v1erz55puoW7cunJyc8NNPP6Fjx464cOECgoKC0Lx5c+zYscP4vkkkEgiCYPK+abVaZGVlYciQIfj5559x+fJlbN++Pd+1/j28PCQkBD179kRQUBC+/fZbTJ061eQ9edqT246lpqbijTfeQOvWrQEAV65cee7txw4ePIgRI0YAABwcHPDmm2/i2rVrCAoKwp07dyrUvO5Ljy7h7RNv8x7cJRScFYnLdV8SO4bZsGHRTZWUMk+HKZsCcOYuv8QkImLRbcZsbGxeuLf6+++/R8uWLREYGIivvvoKQUFB6NWrF5o0aYLLly/j4sWLGDJkiEkv6ObNm2FnZ4erV6/iu+++w4IFC3Dy5EnjfgsLC/z0008ICQnB5s2b8ffff+OTTz4x7p8xYwby8vJw/vx53Lp1C99++61xwbGMjAz07NkTrVu3xrVr13Ds2DEkJiZi1KhRxuM//vhjnDt3ztirfPbsWdy4ceO5zzUyMhKXL19GUFAQFi5cCLlcjqNHjyIoKAjBwcHw9PTEzp07cebMGSiVSly5cgVLly6Fra0tLl26hKCgIAQGBiIjIwO1atXC8OHDMWbMGGzfvt24+rlEIjHenkupVJoM9zcYDKhVqxb27NmD+vXr4//+7/+wa9cuhIaGwt3dHdHR0SZ53dzcEB8fb3wcEREBlUqF3377DbGxsZgzZw7kcjlWrlyJpKTHv+RcuXKlwOf+6quvwtnZGQMGDECTJk1w6tQpzJw5E8DjL1l8fHyMc7e9vLwQHx8PBwcHrFixwuS9fZbU1FRMmjQJs2fPhkwmw8SJE3Ho0CHs3r0bDRo0QIMGDeDl5VWkc5W1Y1HHMPPvmcjV5YodxSysdix4wUB6cRxeTpWZRmfAtK3XcepOothRiIhExVVvzJAgCDh9+jSOHz+OWbNmvdCxPXv2xEcffWR8PG7cOLRr1w6//vqrcVvTpk1NjmnRogXmzp0LAGjYsCFWrlyJ06dPo0+fPgBg0sPu7e2NRYsW4Z133jGeMyYmBiNHjjRZFfuJlStXonXr1li8eLFx24YNG+Dl5YXw8HB4enpi/fr12LZtG3r16gXg8ZcAtWrVeu5z3bBhA1q1aoXAwEDMmjUL165dw6VLl4w99SNHjsT69evh4+ODRo0aGYftb9u2DXfu3DH2NtvZ2Rm/hPjmm29w9uxZdOjQAd988w3atWsHKysrXLhwAUuWLEFAQIBxsTErKyvMnz/f+JpGRkZiyJAhWLduHbZt2waDwfSepz179sTKlStRo0YN6HQ6vPPOO7C0tMStW7fg7++Pxo0bY/369XBzc0Nubi7u3LmDM2fOFPjc1Wo1tmzZgrCwMLRv3x7jxo3D1q1b0aZNG6xcudLk/ZZKpcZh5I6Ojsbh9c9z9+5dfPbZZ3jnnXfw8OFDrF69GiNHjsSvv/6KIUOGwM/PDw4ODpg8eXKRzldWDt47iK8vfQ2DwHvMlpYbmfcQUKcd2j+4JnaUSs9GohU7AlGJaPQGTN9+HT+PbYP+zdzFjkNEJAr2dJuRw4cPQ6FQwNraGgMGDMDo0aPzDfV+nnbt2pk8ftLT/SwtWrQweezh4WHsaQWAU6dOoVevXqhZsybs7e0xceJEpKamGhcYe++997Bo0SJ06tQJc+fOxc2bN43HBgcH48yZMyZzgRs1agTgcU91ZGQkNBoNOnToYDzGxcUFvr6+z8ys1+uxefNm6HQ69O7d27ga+aZNm4zF7siRI3Ht2jXs27cPcXFxGD58OCQSSb5VyxUKBRISEpCSkgIXFxdcuXIFEyZMwKJFi9C6dWt06dIFO3fuxNKlS4293k/88ssvaNu2Lc6dO4dbt25h9+7dOH/+PPr164c2bdqYtF22bBm8vLxw4cIFnD9/HnPmzIFMJoNUKkXbtm2hUCjw559/GueBHzlyBN9++22Bz79Zs2aws7NDmzZt8PvvvyMgIAAGgwHffPMNFixYYDLtoLiysrKwYMECKBQKrFixAtnZ2Vi3bh2SkpLQr18/HDlyBHXr1i3xdUriz8g/WXCXkTXOTmJHMAvWLLrJDGj1AmbuuIEjN+Of35iIyAyx6DYjPXr0QFBQECIiIpCbm2sc9g08HuL971tgabX5f5l70v4JGxub517XysrK5LFEIjEWrtHR0Rg8eDBatGiBffv24fr16/jll18A/LNQ21tvvYX79+9j4sSJuHXrFtq1a4eff/4ZwOMh2UOGDEFQUJDJn4iICHTt2rUoL0uBjh8/jkePHiEoKAjHjx+HpaUlxowZgwcPHuD06dMAgJdeegm//PIL8vLyEBUVhTVr1sDS0hKffvopLl68iPDwcACPv6ho2LChsQfY0dERS5YsQXh4OPLy8pCQkICTJ09i2LBhJouO7dq1C3PmzMGbb76JU6dO4e7du5g6dSoaN26MGTNm4OzZs/Dx8TG+b56enjh+/Dj69euHESNGYMCAAdixY4fJOV9++WUEBQXByckJH3/8MUaMGGHyvnfv3h2zZ882uXXZyJEjcfXqVQDAnj17jLcZK0yrVq0gCALc3f/psZg3bx4WLFhgfLxp0yZYWFhg/vz5xvcsJCQE4eHhiIiIQGJiIo4dO1ai97Ckjtw/gv/4/YcFdxm5mhmOQK/WYseo9Fh0k7nQGQS8tysQB4MeiR2FiKjcseg2I3Z2dmjQoAFq166d737Q/54PrNfrcfv27eees0WLFsYitDiuX78Og8GAZcuW4eWXX4aPj49xvvPTvLy88M4772D//v346KOPsG7dOgBAmzZtEBISAm9vb+M84Cd/7OzsUL9+fVhZWRmLRgBIT083FsSFWb9+PcaMGZOvmB8zZoxJL/b69evx0UcfmbQJDg5Gly5dsGHDBgCPh+CHh4fj4MGD+a4jCAIyMwtemMvPzw8dO3bEu+++i9atW6NBgwb5VvN+3vvWqFEj6HQ6XL9+3bgtLCzsmYubNW7cGMHBwcjJyTHJYmFh8dwRAi+iTZs2CAsLy/e+NWjQABYW4v7Tcyz6GL68+CUL7jK2xtVN7AiVHotuMid6g4APfw/G/hsPxY5CRFSuWHRXET179sSRI0dw5MgR3L17F9OnT39mYfbE559/joCAALz77ru4efMm7t69i1WrVpmsHv4sDRo0gFarxc8//4z79+9j69atWL16tUmbDz74AMePH0dUVBRu3LiBM2fOoHHjxgAeL7KWlpaGsWPHIiAgAJGRkTh+/Dhef/116PV6KBQKvPnmm/j444/x999/4/bt25gyZcozi7rk5GT8+eefmDx5Mpo1a2byZ9KkSfjjjz+QlpaGoKAg3LhxA2+99Va+dmPHjjUOTx81ahRGjx6NsWPHYvHixbh27RoePHiAw4cPo3fv3oXOq27YsCGuXbuG48ePIzw8HF999RUCAgJM2jzvffP19UX//v0xbdo0XL16FdevX8dbb731zBEK48ePh7W1NSZPnozbt2/jzJkzmDVrFiZOnGi8HVhp+Prrr7FlyxbMnz8fISEhCA0Nxa5du/Cf//yn1K5RHCeiT+Dz859DL+if35hKxC/jLm7VavH8hlQoOVh0k3nRGwTM2ROM36/Fih2FiKjcsOiuIt544w1MnjwZkyZNQrdu3VCvXr1Cb2X1NB8fH5w4cQLBwcF46aWX8Morr+DgwYP5etIL07JlSyxfvhzffvstmjVrhu3bt2PJkiUmbfR6PWbMmIHGjRujf//+8PHxMS7k5enpCT8/P+j1evTt2xfNmzfHBx98ACcnJ2NhvXTpUnTp0gVDhgxB79690blzZ7Rt27bQTFu2bIGdnV2Bc9V79eoFGxsbbNu2DevXr0eTJk2Mc8ifNnz4cCQlJeHo0aOQSCTYsWMHli9fjj/++APdunVDixYtMG/ePAwdOhT9+vUrMMe0adMwYsQIjB49Gh06dEBqaireffddkzZFed82btwIT09PdOvWDSNGjMDUqVNRvXr1Qp+/ra0tjh8/jrS0NLRv3x6vvvoqevXqhZUrVxZ6THH069cPhw8fxokTJ9C+fXu8/PLL+OGHH1CnTp1Svc6LOP3gND49/yl0AleELi+r3TzEjlCpsegmc2QQgE/33cQeFt5EVEVIhH9P9CUiMkNnYs7gw3MfQmdgwV3edufZo0lciNgxKqU7XmMxMGKI2DGIyoTUQoJfxrVG/2b8co6IzBt7uonI7J1/eB4fnfuIBbdI1rhXjPuxV0YyaMSOQFRm9AYB7+0MwoWIZLGjEBGVKRbdRGTW/B75YfaZ2dAaOExXLGfSQxHm3ljsGJWSlcCfWzJvGr0B07Zex/UH6WJHISIqMyy6ichsBScHY/bZ2dAY2FsoJgEC1nh6ix2jUrIS+LNL5k+l0eONTQG4m5AldhQiojLBopuIzNL9jPuYcXoGcnW5YkchAKfS7+BejdK7JV1VwaKbqorMXC0mrvdHdErO8xsTEVUyLLqJyOwk5CRg2qlpyMwr+B7pVP4ECFhbs77YMSodS0Oe2BGIyk1ydh7G/3YVCZlqsaMQEZUqFt1EZFYy8zIx7eQ0JOQkiB2F/uV4xh1EubHwfhFSTo2gKuZRRi4mrL+KtBz+7BOR+WDRTURmw6BWI/njz+GaxN7BisggGLDOi0PMXwSLbqqK7iUp8camAKi1erGjEBGVChbdRGQWBIMBj+bMgfbEGXy8Ph0Dc9ijWhEdzQhFbDVvsWNUGlIOL6cqKig2Ax/+HgRBEMSOQkRUYiy6icgsJC5eAuWp0wAAITMLr699gCnpTUVORf+mF/RYV4fvS1FZ6Fl0U9V19FYCvj0WJnYMIqISY9FNRJVe8q69SN+2zWSboFZj4Lrb+CSulTihqFB/ZobikUttsWNUChYcXk5V3OpzkdjlHyN2DCKiEmHRTUSV2v2gZBwKqI7clwbl36nXo93ma/guvE35B6NC6Qw6/ObdXOwYlYKFjj3dRP/54zYuRqSIHYOIqNhYdBNRpZUck42TG+9AnaPDVftByOw/tcB23vv8sfp6K1gK/CevojiYeRcJTrXEjlHhSfS8dRKRziBg+vbrCE/MFjsKEVGx8DdQIqqUkrLUWH0sDPjfIjsGvYDr6pZIfG1uge1dTlzDxrO+sDfIyzMmFUJr0GJ93ZZix6j42NNNBADIVuvwxqYAJGfz7wQRVT4suomo0lFr9Xh763Wsv5+I87UsYO0gM+4LSa6OqHErIMis8x0nv3IL6w57oqbeoTzjUiH2Z4UhydFD7BgVmsSghVRiEDsGUYXwMD0Xb225xluJEVGlw6KbiCqdz/bdRHBsBgDALy0bWxVqKDxsjfuj4qxwZ8QP0LvUyHesRUgEVuy2RVNN9fKKS4XQGDTYWI/z7Z/H3pIFBtETwbEZ+GTvTbFjEBG9EBbdRFSp/Hr2Hv4IijPZFq3Kw/faDNjVtzduS0wwIKj7QmjrNst3DuHBQ8zfnIduuXXKPC89297scKQo+AXIs9hLWXQTPe1QcBzWX4wSOwYRUZGx6CaiSuNMWBK+P17wPVuzdXrMT02C0PifoeOZaVoENJ4Jddu++dobUlIx87cEjMz2LbO89HxqfR42N2wvdowKjT3dRPktORqKq/dTxY5BRFQkLLqJqFJ4mK7C7N1BMAiFtxEAfB+fiITGtpBaSgAAapUeV12GI6vP6/nbK3Mwek04pie3KKPUVBS7lfeQbldN7BgVlsJSJ3YEogpHZxAwY0cgErO4wj8RVXwsuomowtPoDJix/QYyVNoitd8an4rLdSxhrbACAOi1BlzTtUPSyC/zN9Zq0WN9IOY+4NxiseTqcrHZ52WxY1RYCg4vJypQijIP72y7Do2Oiw0SUcXGopuIKrwFh0MQ/DDzhY45l5qFXU5aKKrbPN4gALdTPfFg3DIYLGWmjQUBTXf448eQNpA8oyedys4uZSQybZ3FjlEh2bOnm6hQgTEZWHA4ROwYRETPxKKbiCq0PwIfYduVmGIdG6HMxXJDJuzqKozbIuOsEfbajzA4uuZr73HIH79daQ65IC12XiqeHJ0KW306ih2jQrKzYNFN9CzbrsRgz7VYsWMQERWKRTcRVVjhidn4fP+tEp0jU6fHgvRkWDT6Z4G1+HgDgnt/A13tRvna258NxIaT9VHNYJtvH5WtHaooZFs7lsm5H2UZMGF/Lqp9lw2bb7LQfJUS1+KePWx7+00tWq5WwvabLHgsy8YbB3ORqvpnGOvJSB18flbCYUkWJh7IhUb/zzCJTLUAn5+VeJBR8mGvLLqJnu8/f9zG7UcvNiKKiKi8sOgmogopJ0+Hd7ZdR6625PNZDQC+TUhEamMFLKSPF1hLT9XhWovZULfqma+91fU7WHWgGrx1TiW+NhVdtlaJ7b6dSv286bkCOm3IgZUU+Gu8Le68q8CyvtZwtpYUeoxfjA6T/sjFm62tEPKuAntes4H/Iz3e/vPxok0GQcC4/bl4p50VLr9ph2txeqy9/s+aA5+dUuOddlao41Tyj1lbFt1Ez5WnM+CdbdeRmVu0tT+IiMoTi24iqpA+2XcT95NzSvWcG+KTEVTPCjJbSwCASqmDf/XXkN1zQv7G4VFYut0SbTUepZqBnm2bOgY5cvvnN3wB3/rlwcvRAhuH2uClmlLUdbZA3/qWqO9S+Efg5Yd6eDtJ8F4HOeo6W6BzbUtMayuD/6PHXwKlqASkqAS8216GptWl+D8fS4QmP953KVaHgDg93u8gK/T8L4JFN1HRPEzPxRcHSjY6ioioLLDoJqIKZ5NfFI7cjC+Tcx9PzsQfrjrYuVoDAHQaA64JryBl+Kf52gpxCfhsQzb6qeqVSRbKL1OThZ2NOpfqOQ+F6dDOQ4rX9qhQfWk2Wq9RYt11zTOPeaWWFLGZAo5GaCEIAhKVBuwN1WJgw8df2LjZSuChkOBEpA4qrYALMXq0qCGFVi9g+hE11gy2gdSi8J70F2FjwZ47oqI6cjMevwdwfjcRVSwsuomoQglLyMbiv+6W6TVCsnKx0iIbijqPF1gTBOBmem3Ejv0OgtTSpK2QnoG31sZgQkaTMs1E/9iifgiVzK7Uznc/3YBV1zRo6GKB4xNsMb2dDO8dU2NzUOGFd6faltg+wgaj9+ZCtigb7suUcJRL8MvAx1/WSCQS/P6aDRaez0PTX5Vo7W6BN1pb4b8XNejhbQlrS6DThhz4rlRipf+zC/znsZGw6CZ6EfP+DMH9ZKXYMYiIjFh0E1GFkafT4/1dgeVyz9UUjQ6LslJg5fvPAmsR8XYIH/0jDAonk7ZCrhr/t+4OPkxoVea5CEjXZOL3Rl1L7XwGAWjjIcXiXtZo7SHF1LYyvN1GhtXXCy9m7yTr8f4xNb7uKsf1qXY4Nt4W0RkGvHNYbWzTubYlAt5WIOp9e/wyyAZRGQZsuanFop5yTDyQi6ltrHDhdVssOJeHm4nFX5vAWsLh5UQvQqXR4/1dQbx/NxFVGCy6iajCWHosDHcTssvtelpBwOLERGQ3UUDyv6HAj+KAm/2/ha5mA9PGOh1e3ngNi++1Kbd8VdkmTRzUVjalci4PewmauJl+3DV2tUBMZuG/kC+5qEGn2lJ83EmOFjWk6NfAEr8OssaGIC3isws+btphNZb1lcMgAIEJBrzW1ArV7SzQzVuKc9ElKbrZ0030om49ysT3J8LEjkFEBIBFNxFVEJfupWC9X5Qo114dl4zQBnJYWT++P3daig7X236MvOZd8rVtsMcfvwa2ghSlM1+XCpaal449jbqVyrk6eUkRlmpaKIenGlDHsfCPQJVWwL+nZP9v4XsI+Ztj/Q0NXGwk+D9fK+j/d6knC+9r9YBeKOioomHRTVQ86y7cx4WIZLFjEBGx6CYi8WWqtPhoTzBKUJeU2J9J6firhgBbFzkAICdLB3/PccjpNiZfW9dj17DhfBMohNJZnZoKtlGXgDxL6xKfZ/bLclx5qMfiC3m4l2bAjltarL2hwYz2/7x/n59SY9KBXOPjIT6W2B+qw6oADe6nG+AXo8N7x9R4qaYFPO1NPzqTcgxYdCEPPw94nNXZRoLGrhZYcUWDy7E6nI7SoZOX6VoBL0IOFt1ExSEIwIe/ByNVmSd2FCKq4lh0E5HovvjjFuIz1c9vWMYCM3OwRpYDRa3Hi3hp8wzwl3ZB6tCP8rW18QvGuiNecNcryjtmlZGsTsP+Uujtbl9TigOjbbDzthbNflVi4fk8rOhnjfEtrIxt4pWCyXDzKa1kWN7XGisDNGj2qxKv7cmFbzUp9o+yzXf+94+p8dErcpNifNMwG+wK0WLwzlx83FGO9jWlxc4vR8kWYiOqypKz8/DJ3ptixyCiKk4iCGL2LRFRVbf/xkN8+Huw2DFMWFtY4GNXN6jDs4zbfD2y4bn7S0gMpnNzJXVr46uRGty1SinvmFWCu40bjobdgpW+6haeoV5jMCDi/8SOQVSpLRnRHGNfqi12DCKqotjTTUSieZiuwtyDIWLHyEdtMGBhUiJym9hD8r95vGHx9rg35kcY7BxM2gpRMVi4VY9Oai8Rkpq/hNxkHCilud2VlRWHlxOV2DdHQvEoI/f5DYmIygCLbiIShSAI+Oj3YGTnVdzbIa2MS8I9HxtYyh8PDY6Nk+DWwKXQeXibtBMSk/HBbykYqmwoQkrzt15Ih9bC6vkNzZRMqLq9/ESlRZmnw2f7OMyciMTBopuIRLHTPxZXo9LEjvFc+xPTcNpTAhunx4tupSbrcOOlz6Fp/LJJOyE7GxPWRGJqSjMxYpq1uNwkHK7Cvd1WLLqJSsWFiBTsuBojdgwiqoJYdBNRuUvMUmPJX6Fixygy//RsbLBRQ+H5eBEtZaYO/nWmIKfzSJN2gkaD3utv4svY1mLENGvrJFnQS4q/GFllZmlg0U1UWhYf5TBzIip/LLqJqNx99cdtZKsr7rDygjzMzcO3eemwaWAPANCo9QiQ9UL64PdMGxoMaLktAMtD24iQ0nzFqhJwpIr2dluyp5uo1CjzdPjywC2xYxBRFcOim4jK1V+34nHiTqLYMYpFpTdgQUoSdE0cAAlgMAgIVPoibvQiCE9WXPufWn/4Y51/C8iEqtk7WxbWSXNhkFS9jy1LA+8xTFSazoYl40DgQ7FjEFEVUvV+eyEi0WTmajH3UMVbrfxF/RCXiIeNbCG1evxP6N1EZ0SO/QkGazuTdo6nb2DD6YZwNFiLEdPsROc8wjHfrmLHKHdSDi8nKnUL/ryDVCW/0CKi8sGim4jKzeIjoUjKNo9fcnbGp8LPywLW9o9X1Y6Js0DI0GXQu9UyaScLuI21B2ugjs5JhJTmZ62VBgIkz29oRqTs6SYqdekqLeb9eUfsGERURbDoJqJycSkyBbuvxYodo1RdSMvGNnsNFO42AIDkRD1udPoaGp92Ju0kdyPx/U4rtNK4ixHTrEQqH+KEbxexY5QrCz2LbqKy8GdwHC5EJIsdg4iqABbdRFTm1Fo9vthvngvXRKnU+F6XCbt6jxdYy87Qwr/+W1C98n8m7YSH8fhyYw565XqLkNK8rJUZqlRvN4tuorIz91AINDqD2DGIyMyx6CaiMvfLmXuITlWJHaPMZOv0mJ+WBDR2AABocvXwt+2PjIHTTdoJael4Z20cxmY2FiOm2QhXxuDvhp3EjlFuJCy6icrM/eQcrL8YJXYMIjJzLLqJqEzFpqmw9vx9sWOUOQHA0vhEJDa2g4WlBAa9gBuqZkgYNd+0nUqF4WtD8V5iS3GCmok1NlXn40uiY9FNVJZ+/jsC8Zm8dzcRlZ2q81sLEYli4eE7yKtCQ/e2xKfgmrcV5HaPF1i7k+SK++N+hCC3+aeRTofOG29gYRTv5V1codnROFe/o9gxyodOLXYCIrOm0uix6HCo2DGIyIyx6CaiMnMxIqXS3pO7JE6nZGKvixZ21R8X2tFxlrgz/Afoq3n800gQ4LvLHytvtoa0Cs1PLk1rFDKxI5QLiaCHzKLqfHFFJIYjt+Lhdy9F7BhEZKZYdBNRmdDpDZj/Z+W/J3dx3c3OxU9CFhTeCgBAYoIegV3nQ1PfdFh59SMB+O1iU9garMSIWandyroPv3odxI5RLhws9WJHIDJ7Xx+8Da2eX3ARUelj0U1EZWLL5QeISFKKHUNUaVodFmamQNro8QJrWelaXPOdjtyXBpq0s7sQhPXH6qC6XiFGTBPadC1i18QidEYoQt4OQcR/IpAbVfhcR22GFrGrYxH+aThuv34b8dvj87VR3lYi/NNw3HnnDmLXxMLw1HQDvUqP8E/DoUnRFCvvanvbYh1X2dhLdWJHIDJ7kck52MBF1YioDLDoJqJSl5ajwYpT4WLHqBB0goD/JiQivYkCFhYSqFV6+DsMRla/t0zaSYPvYuU+RzTUVhMpKaDP0eP+ovuQSCWo81EdNFzcEO5j3GFhV/hHhaAVYGlvCbf/c4O1l3X+/QYBsWti4dLDBfW+qgd1tBrpZ9ON+xP3JMKlhwtkrsUbKh6UFYmrddsX69jKRMGebqJy8dPpCCRkch0FIipdLLqJqNQtPR6GLDV75p72W1wybtaXQWZjCb1OwDVNayS+9pVpo8gHWLxNQIe8mqJkTD6SDKtqVqj1Vi3Y1rOFzE0G+2b2kFeXF3qMzE0Gj/EecO7kDIsCVhTXK/XQZ+vh0tMF1jWtYd/aHnlxj1fjVkWooIpSoVrfkn3RsNrRoUTHVwb2LLqJykWORo/vT4SJHYOIzAyLbiIqVbcfZWJ3QIzYMSqkv5Iz8KebHrbV5IAAhCS7I3rcDzDI/ilqhYQkzFmfjsHKBuWeLzsoGzbeNohZGYPQWaG49/U9pJ1NK9E5pfZSWDpZQhmihCHPgJzwHFh7WUPQCYjbEoeaU2pCYlGyheSuZUbgWp22JTpHRafg8HKicrP/xkPcTcgSOwYRmREW3URUqhYevgODIHaKiutmlgq/WuZAUfvx/O37cTKEjVwBvXN1YxshMwuT10bhjdRm5ZpNk6RB2t9pkLnL4D3HGy49XRC/PR7pF9Off3AhJBIJvN71QvKhZER8GQGb2jZw7uKM5CPJsGtkB4mVBPcX3Uf4Z+FIPZVa7OusdnYu9rGVgZ2UPd1E5cUgAN/+dVfsGERkRlh0E1GpORuWhKtRJesZrQqS87RYlJ0Cme/jYdHx8QYE91wErXdTYxshLw/919/Cp49al18wAbD2tob7q+6wqWMDl+4ucO7mjLQzJXtP7XzsUH9uffh+7wvPSZ7QpGiQcSkD1UdWx8O1D+Hc3Rn1vqiHpINJUMcWby7l1cxwBHm1KlHOiszOQit2BKIq5UxYMi5HFv+LQCKip7HoJqJSIQgClh7nPLii0goCvklMhLKJPSQWEmSkanGt6XtQt+n9TyO9Hm23BGBpeJtyyWTpZAlrT9PF0OSecmhTS7fgi9sUB/cx7oAAqB+o4djeEZYOlrDztUPO3Zxin3e1a/XnN6qkbDm8nKjc/fcYe7uJqHSw6CaiUnH4ZjxC4jgH7kWtiktCWEM5rKylyM3Rwb/aSGT3nmLSps4+f6y91hKWQtn+k23b0BZ5CXkm2zQJGli5lt49xNPOpUFqJ4VDawfgf3cOE/SC8b9CCeYm+GXcxe2azUsjZoVjZ8Hh5UTlLTg2A0du5r8NIhHRi2LRTUQlptMbsPwkbxFWXAcT03HcXYCtsxw6rQEB+vZIHvG5SRunk9ex8awvHIX8t+UqLdX6VoMqUoWkP5OQl5iHjMsZSDubhmo9/1ldPGFPAh6ufWhyXO6DXOQ+yIUhzwBdtg65D3KhfpR/mLguS4fkP5PhMcEDACC1k0LuKUfqiVSo7qmQE5oD24Ylu+/26uqeJTq+orLh8HIiUSw9fhdavUHsGERUybHoJqIS23P9IaJSij8smIDrGTn4Ta6CopYdIAC30mohZuz3MFj+c/9q+ZVbWHPIHbV0jmWSwbaeLWrPqo3Mq5m49+U9JB9Khsc4Dzh1dDK20WXooEnVmBwXOTcSkXMjoY5WI/NKJiLnRuLB8gf5zh+/PR6u/V1h5fxPz3nNt2oi82omHvzwAK4DXGFbr2RF97mMUIR6NCnROSoiGwmLbiIxRKeqsNOfd+QgopKRCILAdYaJqNjUWj26Lz2LhKziLYBFpqwtLPBxNTeoIx4P1ff0kMDnyFewyPpnQR9J7ZqYPwq4bZUoVswKrZdTE6wIPCZ2jFK11/MTzLnfSuwYRFWSq0KGcx/3gJ3cUuwoRFRJsaebiEpk6+UHLLhLkdpgwMLkROQ1sQckQFy8gOC+S6Dz8jW2EWIeYd6mXHTPrSNi0orr74xQhNdoJHaMUmXN4eVEoklRarDhYpTYMYioEmPRTUTFlq3W4tez98SOYZZ+iktCtK8NLGUWSE/R4lqrD5HXoqtxvyElDTN+S8BrWb7POEvVJEDAmpp1xY5RqmwkXL2cSEwb/KKQk8e/h0RUPCy6iajYfrsQhXQVe+DKyp6ENJytaQEbRxlU2TpcdR8LZY/xxv2CMgevrQ3Hu8ktRExZMZ3KCMX96g3FjlFqrKF5fiMiKjPpKi22Xsm/VgURUVGw6CaiYlHm6bDRj8Ptytrl9GxstlND4WELncaAAHREyrCP/2mg1aL7+kDMi24tXsgKyCAYsKaW+RTdchbdRKL77cJ95Gp4+z4ienEsuomoWLZefoAsNYfalYcHqjx8p02HbX17CAJwM8MbD8d+C0H6v0V9BAFNdgbgx9utIeHSmEbHM0IR7VZf7BilQgaOKCESW4pSgx1cyZyIioFFNxG9MLVWj/VcVKZc5egMWJCaBH1jewBAeLwCEaN/hEHxz+3DPP4MwPrLzWEtcIVdANALeqzzMo8F1Vh0E1UMa89HIk/H3m4iejEsuonohe25FosUZZ7YMaocAcDy+CQ8amwHqZUFHsYBtwZ8B51nPWMbxblAbDhRD9UMJbvftbk4mhGK2GqVf5V3mcDh5UQVQWJWHn4PiBU7BhFVMiy6ieiF6PQGrDl/X+wYVdqO+BRcqi2Ftb0VUpN1uN7uU+Q17Wjcb3njDlbtr4Z6OmcRU1YMOkGH3+o0EztGiVlxTjdRhbH63H1o9QaxYxBRJcKim4heyKHgODxMzxU7RpV3PjULOx00UNSwQU6WDv61JkLZddQ/DSKi8O12KdrleYoXsoI4lBmKOOfaYscoESsDi26iiuJRRi72XX8odgwiqkRYdBNRkQmCgFVnI8WOQf9zL0eN5fpM2NW1hzbPgADLbkj7vw+M+4W4BHy6IRMDcsxjMbHi0hl0WF+3udgxSsSSw8uJKpRfz0ZCb+DKlURUNBJBEPgvBhEVyfGQBEzbel3sGPQ/2TcOI/Pqfhhy0lG7pg9ea/suvKs3gq97Fjx//w8khseL/UhsrLG4tR32nLkOTaIGgl6AvIYc1fpXg3Onf4agp/yVguSjyQAAt4FucB3gatynilQhbksc6n9dHxKppHyfaCmwsrDC0VQ13DMeiR2lWDLcX0Gr6FlixyCip6wa3wYDmnuIHYOIKgH2dBNRkf3KXu4KI+XoCqSdXA29MhWWLjWRJFdg5bHPkKPJQFiCAyLHrIDBRgEA+D0+AVd3XIMQpwMEwLq2NWwb2+LR+kfIvpUNAIjfGY+E3QkQ9AIc2jogcX8i1LFqAEBORA6i/hsFj4kelbLgBgCtQYsNdVuJHaPYLDm8nKjC2eDHu3gQUdGw6CaiIrlyPxXBsRlixyAAOaHnkXPrNKzrtIDH6z9D7ukLdcxtaCRS7E08AbmtJWLiLHB7yDLoatSBv0qF0Y5O2OFRCyunDIHcXY6MCxmQe8ihCldBHatG2uk0yDxkqD2zNjL8MiCrIUNefB4EvYDYX2Lh0NoBdg3sxH7qJbI/OxzJDu5ixygWqZ53CyCqaAKi03HrYabYMYioEmDRTURFsvlStNgR6H+y/A8AEGDfZghkrrXh0m8GLKzkkNq74HZ4EPZV08HOzRopSTrcePkLfNNzKMY6O6OxtTW6nwnDgZYDIOgF5CXkwc7XDnnxeZB5yKDP0kNWQwa5uxyaJA3kteRI2JMAQ54Bnq9X/gXZ8vR52Fi/ndgxisWCPd1EFRJ7u4moKFh0E9FzxWXk4sSdRLFjEABBr4Um8fEwf6mdEwBAIrGAtXcrCHm50OekIzQ7Fz9LsqGoo4AyUwd/7zeh6jgM2Xo92oaHofcvOyFoBLj3cIOimQLyWnLo0nSo1q8aov4bBfVDNVz7u0JiKUHa32nwnOQJ5W0lIr6MwL2v7yEnLEfEV6Bk9maHI1XhJnaMF2bBnm6iCunIzXgkZanFjkFEFRyLbiJ6ru1XH3CV1gpCr8oChPz3h5XaOsGg/ecXv1SNDguzUmDp6wCNWg9/m77QDJmJ/d510VthD0cLCyjPpkEeYoC1pzVqjKyBjEsZkEgl8JzoiRojaiBmRQzkteQwaAyI/TUWMABOnZ0QuyoWBm3lvEdtrl6NzQ1fEjvGC2PRTVQxafQGbL3yQOwYRFTBsegmomfK0+mxyz9W7BiUjwT6nAzTTQY9pHb/rEauEwQsSUxEZhMFIADBqmbYV/dlXFblYJNXbfSzU8B6QyKaaN3g0tMFPv/1gc9/feDS0wWpp1KhSdGg5uSaiN8eD3lNOTwmeSDlaAoMOgM0CZV3uPNuZSQybF3EjvFCJCy6iSqsHVdjoNbqxY5BRBUYi24ieqbDwfFIzam8BZa5kdo6ABILWDp7QP0g2Lhdn5MOgyYX8pqN8h2zNi4ZtxvIcfbOXmy/eBDz3voJDZ2qwSAAGpUK87do0VntZWyvy9YhYU8C3Aa5QZumhZWTFSQWEigaKyDoBQg6AUIlHvmg0qmwxecVsWO8EBbdRBVXao4GB4Mq5+0Iiah8sOgmomfacjla7Aj0FInUCjL3BrB0ckd28HEob52GJvkBVOGXIAGgaN4bAJByeBnSz20yHrdh5SwcuLIRrw/6DGkZtvi2+kv4MzsLQxwcISSl4P3fkjE82wcAELsqFpYKS7gNcQMMgMRKgrz4PGTfzIYhzwCJRAK5h1yEZ196dqruI9PGSewYRadj0U1UkW30ixY7AhFVYJZiByCiiiswJh3BvB1KhePQfhhSjvwAW99OSD+3CQZVBgAJ3EZ+DamdM1IOL4M65has67QEAGRe2Qt1dBAsbB3w66EFsLGSw1XhidcHfoahiAbuBULIVmLc2ntIbO+CkIgQ1P2iLiQWEtjUtYEmSQPn7s6I/TUWglZAram1YCGr3N/ZKrU52ObbCTOCjogdpUgkgh7WFnqoDVKxoxBRAe4mZONyZCpeqV9N7ChEVAFV7t+aiKhMbbnMxWEqIrvGXeHc4w3kPQyBQZ0NmXtDuE9YCtv/3Q5Ll5UM6zot4TpoNgAgO/AoIBhgyMkA9FrkqpWITQnHw4RH8PeZhtyXBgEActVqnNh2Bf99exBs69oCAKxcrOAxwQNZV7MgtZOizvt14NjOUZTnXdq2q6KgtHYQO0aR2VtyzihRRbY7IEbsCERUQUkEQai8E/OIqMykKPPQ8b9/Q6OrnKtU0/PN8KwOu9BsSCwkaG0VBMdja437Hg1tjw8bB0KQiBiwHMx0aIZpwUfFjlEkvSzWI1JlI3YMIiqE3NIC/l/2hqONldhRiKiCYU83ERVo7/WHLLjN3C9xSYjwsYHU0gLX1S2R8No8476aBwOwzr8F5IJ5D2feqo6BSq4QO0aROFjqxI5ARM+QpzPgEBdUI6ICsOgmogLtucbbhFUFBxLTcNIDsHGS4U6yG6LGrYAgswYAOPx9A+tPN4CzwXx7VzM1Wdjh20XsGEWi4PByogpvNz87iagALLqJKJ/rD9IQmZwjdgwqJwEZSmywyYWiph2i4qxwZ8QP0LvUAADIAkKw+g831NE5iRuyDG3VPEKuzFbsGM+lkLKnm6iiu/0oCyFxXICUiEyx6CaifH4PeCh2BCpnD3M1+K86DTYN7JGYYEBQ94XQ1msBAJCE3cf3O2VorfEQOWXZSMvLwO+Nuood47nsLFh0E1UGvwewt5uITLHoJiITuRo9jtyKFzsGiSBXb8CClCRomtgjM12LgEbvIrddPwCA8DAOX2zIRt+ceiKnLBubNAlQW1XsYfR2Ug4vJ6oM/giKg1rLv69E9A8W3URk4q/b8VDmsUetKvsxLgkxvrbQ6QT4Ow9DVp/XAQBCegbeXheLcZmNRU5Y+lLy0rC3gvd220q1YkcgoiLIzNXieEiC2DGIqAJh0U1EJvbf4MqrBOxOSMX5WhawsrHENV07JI38DwBAyM3FsLWh+CChpcgJS99GXRI0UrnYMQplK+GXYUSVxW4OMSeip7DoJiKjhEw1LkWmiB2DKgi/tGxsVaihcLfF7VQPPBi3DAZLGaDToePG6/jmfhuxI5aqJHUq9jfuJnaMQtlyTjdRpXH5fioeZeSKHYOIKggW3URkdCDwEQyC2CmoIolW5eF7bQbs6tsjMs4aYa/9CIOjKwCg4W5//BLcGlJIRE5ZetYbUqGVysSOUSAbCYeXE1UWggAcvcn1UYjoMRbdRGR0IJCrllN+2To95qcmQWjsgPh4A4J7fwNd7UYAALejAVh/oQlsDVYipywdCbnJONioYvZ2W7Onm6hSOXwzTuwIRFRBsOgmIgBAWEI2whOVYsegCkoA8H18IhIa2yIrU4+AFrOhbtUTAGB7MRjrj9VGdYOduCFLyW/IgM7CUuwY+bCnm6hyCX6Yidg0ldgxiKgCYNFNRACAo7xNGBXB1vhUXKljCQMk8K/+GrJ7TQQASIPDsHKPExrqqomcsOQeqRLxZwXs7Zaz6CaqdA5ziDkRgUU3Ef3Psdu8vQkVzdnULOx20sLaSY5rhpeRMvzTxzvuP8DiLQJeUdcSN2Ap+E2ihF4iFTuGCWuw6CaqbDjEnIgAFt1EBCAyWYmwxGyxY1AlEqHMxQohC7beCtxMr43YcUshSC0hJCbhw/Vp+D9lQ7EjlkiMKh5HK1hvt5xFN1GlExKXhaiUHLFjEJHIWHQTEXu5qVjStTosSE+GtJEDIuJsET7qJxjsXSBkZWHi2vt4M62Z2BFLZJ00FwZJxfmYlEEjdgQiKoYj7O0mqvIqzm8TRCQazuem4jIA+G9CItIaKxCfBNzstwS6Wg0h5OWh37qb+Pxha7EjFltUziMc9+kqdgwjGXu6iSolzusmIhbdRFVcbJoKIXFZYsegSm59fDKC6llBqQKut5kDdYsugMGA1lsD8P3dNmLHK7a1Mi2ECnIfcpnAnm6iyuhuQjbuJXEKF1FVxqKbqIpjLzeVluPJmfjDVQfILBHgMQ453cYAAGof8Mfaay0hEyrWwmRFcU8Zi1M+XcSOAQCwYk83UaX11y1O4yKqylh0E1Vxf3E+N5WikKxcrLTIhtzdFv7SLkgd+hEAwOnkdaz/uyEcBWuRE764NdZChejttjSwp5uosvo7LEnsCEQkIhbdRFVYfGYugh9miB2DzEyKRodFWSmwbOiA4Mx6eDj2vxAspJD738bag+6opXMUO+ILCct+gDMNO4kdA1YcXk5UaQXHZiBVmSd2DCISCYtuoirsVGgSBEHsFGSOtIKAxYmJyG6iQESiAyLG/ASDwhGS0Hv4YZc1mmuqix3xhayxEf/j0tKgFjsCERWTQQDOhSeLHYOIRCL+bxFEJJpzYfwFgMrW6rhkhDaQIzFNilsDvoPeoy6E2Ef4epMaPXK9xY5XZHeyo3G+/iuiZpByeDlRpfb3XQ4xJ6qqWHQTVVFavQGXI1PEjkFVwJ9J6firhoBcvRTXX/oMmsYvQ0hNw7vr4jEqq5HY8YpsjULc+egsuokqt/PhydDpDWLHICIRsOgmqqKuRacjR6MXOwZVEYGZOVgrUwH2cvjXmYKcziMh5OTg1TV3MTOphdjxiuRmViQu1e0g2vWles4HJarMstQ6XH+QLnYMIhIBi26iKopzy6i8xas1WKJKg4WXLQJkvZA+5H1Ap0PXDYGYH1057uW9xtFOtGtbGFh0E1V2XMWcqGpi0U1URZ1n0U0iUBsMWJicBFUjBYKUPogb/Q0EAI13+uPnW60hqeAL+93IvAd/7/aiXFvCnm6iSu8M53UTVUksuomqoKRsNUITssSOQVXYz3FJiPS1wb10F0SO/QkGazvUOByADZeaw1qwFDveM612chDluhY6Ft1ElV14ohKPMnLFjkFE5YxFN1EVdD48hbcKI9HtS0jD6ZoWSM6xRsjQZdBXrw2784HYcLwuXA3iDeN+noDMCFyv3bb8L8yebiKzwN5uoqqHRTdRFcSh5VRR+KdnY4OtGrlSOW50/A80vu1hGRiKX/c7o77ORex4hVpTTYRs7OkmMguXI1PFjkBE5YxFN1EVYzAIuHiPtwqjiuNhbh6+zUuHztUa/vXehOqV/wMiovHfbRK8lFdT7HgFupwRhmCvluV6TQkE2El5xwGiyu7K/VQIHG5GVKWw6CaqYu7EZyEth/f7pYpFpTdgQUoSVHXt4G/bHxkD34UQn4iPN2RgYE59seMVaLVrjXK/poMli26iyi41R4PwRKXYMYioHLHoJqpiAqLTxI5AVKgf4hIR42ODYG1zJIyaDyEjE6+vfYDJ6U3FjpbPxYy7CKnZvFyvaW+pK9frEVHZuHKfQ8yJqhIW3URVzLXodLEjED3TzvhU+HlZ4H6uB+6P+xEGQYJB627j47hWYkfLZ3X18h3+rmBPN5FZ4LxuoqqFRTdRFXPtAXu6qeK7kJaNHQ4apBjscWfYD9A7VUf7zdfwbUQbsaOZOJtxB3c9mpTb9eyl7OkmMgccdUZUtbDoJqpCYlJVSMziCshUOUTmqLFMnwmlnS0Cu86Hpn5L1N3rj9U3WsFSqDgfX2s8apfbtWy5kBqRWUjN0eBeEud1E1UVFee3FiIqc/xmnSqbLK0e89OSkOVug2u+05H70kC4HL+GDecawd4gFzseAOB0eigiaviWy7UU7OkmMhv+UfxMJqoqWHQTVSEcWk6VkQBgaXwiYupY45rz/yGz39uwvnwT6w57oqbeQex4ECBgbc165XItWwsW3UTmgl+EE1UdLLqJqpAALqJGldjm+BT4e0lx27I9El/9GhYhEVjxuy2aaqqLHQ0nMkJxv3qDMr+OHYtuIrPBnm6iqoNFN1EVkZ6jQWQy549R5XYqJRN7XbSItvBG9LgfoI9LxrwtGnRRl9+86oIYBAPW1vIp8+uwp5vIfDzKyEWKkuusEFUFLLqJqohrD9IhCGKnICq5u9m5+EnIQpLMBXdHrIBOZ4H3fkvCyOzymVddmGMZoYhxrVum17CVasv0/ERUvm49zBQ7AhGVAxbdRFXE9QccWk7mI02rw8LMFCQ7KRDUYxE01epg9JpwTE9uIVomvaDH2tqNy/QathL2dBOZk5ssuomqBBbdRFVESBw/2Mm86AQB/01IRLS7HNdbvAd1827osT4QXz9oLVqmIxl38dCl7Ia6W0vY001kTm494mczUVXAopuoigiJyxI7AlGZ+C0uGf41pAisNQrZvSaj2Y4ArAhpA4kI0yl0gg6/eTcvs/Oz6CYyL7ceZYgdgYjKAYtuoiogPjMXaTkasWMQlZm/kjPwh5MOd5y6IHnkF/A85I/frjaHXJCWe5aDmaGId/Yqk3Oz6CYyL4lZeUjKUosdg4jKGItuoiog5BF7ucn83cxS4RepElF2vogZ9z3sLoRgw8n6cDbYlGsOnUGH9d5lM7dcDhbdROaGQ8yJzB+LbqIq4E48i26qGpLztFiUnYIYRQ2Ev7YC0ohErP7DDd46p3LNcSArDImOnqV+Xjk4YoXI3HAxNSLzx6KbqArgImpUlWgFAd8kJSLc2Q43+y2BLtcKS3dYoa3Go9wyaAwabKzXptTPK2NPN5HZYU83kflj0U1UBXARNaqKVsUl46qLFMHt50Dt6ovPNmSjn6peuV1/X3YYUuxrlOo5WXQTmR8W3UTmj0U3kZnLzNXiYXqu2DGIRPFHYjr+sNfhps9EZLcahLfWxmJCRpNyubZan4eNDdqV6jllAoeXE5mb5Ow8JGfniR2DiMoQi24iM3eHvdxUxV3PyMEaaQ5Ca/ZBcr+Z+L91dzA7oWW5XHtPdgTS7FxL7XxWLLqJzFJkslLsCERUhlh0E5k5LqJGBDxSa7BYlYZwtxaIfW0xXt4SjMWRpT/n+t9y9Wps9ulQauezZNFNZJbuJbHoJjJnLLqJzFxEYrbYEYgqBLXBgIXJibjt7I6I0T+i3tFw/BrUClJIyvS6u5SRyLB1KZVzWRlYdBOZI/Z0E5k3Ft1EZi4qJUfsCEQVyk9xSbjoYIOQwd/CKTgNG843gUKQldn1VDoVtvi8UirnkrKnm8gsRSbzs5rInLHoJjJz0an8ICf6tz0JaThgA9zq9gUsMuyw7ogX3PWKMrveTtV9ZNk4lvg8lgYutkRkjiI5vJzIrLHoJjJjKo0OiVn8JZ2oIJfTs7FGkovbbd5GrnNL/LTXAb7a0lv07GlKbQ62+3Yu8XksOLycyCzFZeZCpdGJHYOIygiLbiIzxqHlRM/2QJWHJbnpuO0zCGnNRmLRVj06qr3K5FrbcqOhtHYo0Tmken6JRmSOBAG4zyHmRGaLRTeRGWPRTfR8OToDFqQk40bNNnjYYzY+2JCGocqGpX6dLE02dpSwt9uCRTeR2eJiakTmi0U3kRmLZtFNVCQCgGXxiTjj7Il7QxZh3NZkvJ3avNSvs1UdC5W8+HPHJSy6icwW53UTmS8W3URm7D6LbqIXsj0+BXvlcoQO+QY9/8zAF7GtS/X8GZpM7PLtUuzj2dNNZL64gjmR+WLRTWTG2NNN9OLOpWZhtaBDSN//oMl1CywLbVOq59+siUOuzLZ4B+tYdBOZq4cZuWJHIKIywqKbyIxxTjdR8UQoc7E4Jws3O01HteSaWBfQEjJBWirnTstLx+++XYt1rESfB4lEKJUcRFSxxLPoJjJbLLqJzFS2Wot0lVbsGESVVqZOj7kpKbjaYjgM1q9gw98N4WiwLpVzb9ImIM+yeOeyl+pLJQMRVSwpyjxo9QaxYxBRGWDRTWSmEjLVYkcgqvQMAL6LT8JJr3ZIrTsKaw65o7beqcTnTclLw97G3Yp1rL0l7+VLZI4MAj+7icwVi24iM5WYxbmfRKVlY3wKdjp44EG7mfhunyNaaGqU+JwbdMnQSOUvfJy9JXvCiMxVHIeYE5klFt1EZioxi9+WE5Wmk8mZ+BlWCO86B58fckRPlXeJzpekTsGBYvR220vZ001kruLZ001kllh0E5mpBBbdRKUuNDsXi3LycLv7h3jjTHWMyWxUovOtN6RCa2H1QscoWHQTma1H7OkmMkssuonMVBKLbqIykarR4T8pmQjo9Db6B9fHrKSWxT5XfG4yDjV6sd5uOy6kRmS24jNZdBOZIxbdRGaKPd1EZUcnCFgUn4oTLYahRVxbLIgq/r28f5NkQWdhWeT2Ci6kRmS24jP42U1kjlh0E5kpLqRGVPbWxKdiq1cHuBj6YuWtNpBC8sLneKhKwGHfovd221qw6CYyVxxeTmSeWHQTmSkOLycqH0eS0rHcxhO5Lq9h7ZXWsDW82BxtAPhNmgO9RFqktnYsuonMVoqSX5gTmSMW3URmSBAEJGXzg5uovARnqjBXI8Oj+pOw6nJrVNcrXuj4Bzlx+Mu3a5Ha2rDoJjJbGSqt2BGIqAyw6CYyQylKDXQGQewYRFVKolqLz9LyENJkMr672g4NtdVe6Ph1VnkwSJ7/sczh5UTmS2cQkK1m4U1kblh0E5mhDJVG7AhEVVKeQcBXCdk412Q0Pg/ugpfyahb52PvKhzjh0+W57Wwk/IWcyJyxt5vI/LDoJjJDWfyWnEhUP8VnYmfdvnjrXh8MUjYo8nFrZXoIz1mMzZpFN5FZY9FNZH5YdBOZoaxcDj8lEtv+pCwsd2mLAUlD8Hpa0yIdE6GMwemGnZ/ZhkU3kXnLyOVoNSJzw6KbyAyxp5uoYgjIyMGXFl5oon4NcxLaFemYNTbP3s+im8i8pbOnm8jssOgmMkNZavZ0E1UUD3M1mK20hZ10FBbFPn+F8rvZD3C2QeG93XLwF3Iic5bJdVmIzA6LbiIzxJVPiSqWXL0Bc1IMiLMbjmVR/WEpPPvjd41d4ffsZtFNZN44p5vI/LDoJjJDnNNNVDF9m5iHs/YDsDxqBBwF60Lb3c6KwoX6rxS4Twb2ghGZMw4vJzI/LLqJzBB7uokqrh3JufjNpgvmx45BTb1Doe1WKwouymXs6SYya5m5/DtOZG5YdBOZIc7pJqrY/DJy8Y3QAh8kTUEzbY0C29zMisTlui/l2y4T2NNNZM7UWr3YEYiolLHoJjJD7OkmqvjuqzT4WOmF1zLeRNe8ugW2We2oyLfNikU3kVnL0xnEjkBEpYxFN5EZysljTzdRZZCt0+OjFAe0Uk7BUFWLfPtvZN5DQB3TW42x6CYyb3k69nQTmRsW3URmiN+SE1UeAoBvkuSQKcdioqpLvv2rnZ1MHlsa8sonGBGJQsPPcCKzw6KbyAzxA5uo8tmQKkFY+mBMzx1kst0/MxyBXq2Nj6UG9nQTmTN+cU5kflh0E5khjZ4f2ESV0eksAQcTuuH93NGQCP9sX+3qavx/Ft1E5o1fnBOZHxbdRGaIH9hElVeY2oBfH7bFTPWbsBYsAQCXMsJws1ZLAICUw8uJzBrndBOZHxbdRGZIpxee34iIKqw0nQH/jW6IMZoZcBbsAABr3NwBABZ6Ft1E5oyj1YjMD4tuIjOkM7DoJqrsDAB+vu+BV1QzUUtwxfmMUNzxbAoLDi8nMmt5WhbdROaGRTeRGTIILLqJzMXuGGe4pk1HA6k3VtfwgoWOPd1E5ow93UTmh0U3kRnSs6ebyKxcSLKDMvZ1pKglCK1WR+w4RFSG9JwiRmR2WHQTmSEDi24isxORKcftkLH4u9pLYkchojJkYSEROwIRlTIW3URmSM/h5URmKUtjiR8DOokdg4jKkCWLbiKzw6KbyAxZSPiBTWSudAZ+dBOZM/Z0E5kffnITmSErKT+wiYiIKiMpvzgnMjssuonMkJWUf7WJiIgqIyl7uonMDn8zJzJDMkv+1SYiIqqMWHQTmR/+Zk5khmTs6SYiIqqUuJAakfnhb+ZEZojDy4mIiP6/vTsPj7I62D9+P7NnkklCkslKErIBWQhJWGQVkUUqIgoWFLEiba0V22rr+1L1h6K0WutSfbVqba2+1FK7qK21m0tfhCqWFrcqCChGFCJrSIAQss3vDzUaIciSyZl55vu5Li6SyZPJPblg5rnnnOec6MRCaoD9cGYO2BDTywEAiE6MdAP2w5k5YEOsXg4AQHRi20/AfijdgA0xvRwAgOjk9zhNRwDQwzgzB2yI6eUAAESnBJ/LdAQAPYwzc8CGvJRuAACiUsDnNh0BQA/jzBywIV6wAQCITgleRroBu6F0AzaUFEfpBgAgGgWYXg7YDqUbsCFKNwAA0SnASDdgO5RuwIYo3QAARCcWUgPsh9IN2BClGwCA6MQ13YD9ULoBG6J0AwAQnbimG7AfSjdgQ8l+SjcAANGIHUgA+6F0AzbESDcAANEpkdIN2A6lG7AhSjcAANEpLeAxHQFAD6N0AzaUSOkGACDqWJaUluA1HQNAD6N0AzbkcztZ/RQAgCiTFOeW28npOWA3/K8GbCojkXfKAQCIJkFGuQFbonQDNpWVFGc6AgAAOAZMLQfsidIN2FRWks90BAAAcAwyee0GbInSDdgUpRsAgOiSkchrN2BHlG7ApjKZXg4AQFTJZD0WwJYo3YBNMdINAEB0YXo5YE+UbsCmeOEGACC6ML0csCdKN2BTjHQDABBdclP8piMACANKN2BTyX6P4txO0zEAAMBRCHhdbBkG2BSlG7CxrGRGuwEAiAZ5qYxyA3ZF6QZsrF9qvOkIAADgKPRL4zUbsCtKN2BjRUFewAEAiAb9GOkGbIvSDdhYYTDBdAQAAHAU8pmdBtgWpRuwsUKmqgEAEBUKeM0GbIvSDdhYUToj3QAARIN8ppcDtkXpBmwsLcGrRJ/LdAwAAHAE8R6n0gPsOALYFaUbsDmu6wYAILJxPTdgb5RuwOaKKN0AAES0AnYbAWyN0g3YXCEv5AAARLSyrETTEQCEEaUbsDn26gYAILKVZgVMRwAQRpRuwOYGZPLuOQAAkawsK8l0BABhROkGbK5fql8JXlYwBwAgEqXEe5SZxMrlgJ1RugGbsyxLZdmMdgMAEImYWg7YH6UbiAEV2UxbAwAgEpVyGRhge5RuIAZU5PCCDgBAJGI2GmB/lG4gBgzKYaQbAIBIVMp2YYDtUbqBGFAUTFCc22k6BgAA+BSP06Hi9ATTMQCEGaUbiAEOB4upAQAQaYrTE+R2cjoO2B3/y4EYUUHpBgAgolTnJZuOAKAXULqBGFHOdd0AAESUof36mI4AoBdQuoEYMbhvsukIAADgU4bmp5iOAKAXULqBGNE/I0FJcW7TMQAAgKT0gFe5KX7TMQD0Ako3ECMsy9LQfKaxAQAQCYbwmgzEDEo3EEOGFzCNDQCASEDpBmIHpRuIIZRuAAAiw9B+vCYDsYLSDcSQQTlJ8nucpmMAABDTfG6HytnKE4gZlG4ghricDtXkMZ0NAACTBvdNltvJaTgQK/jfDsQYppgDAGAW13MDsYXSDcQYSjcAAGaNKEw1HQFAL6J0AzGmKjdZHqa0AQBghNfl4A1wIMZw5g3EGJ/bqcG5SaZjAAAQk4YXpMjnZlFTIJZQuoEYNLYkaDoCAAAx6WReg4GYQ+kGYtApA3jBBwDAhJP78xoMxBpKNxCDBuUkKS3BazoGAAAxJSPRqwGZAdMxAPQySjcQgyzL0sn900zHAAAgpnB5FxCbKN1AjBo/IN10BAAAYsrYEt7wBmIRpRuIUSeXBOV0WKZjAAAQExwWI91ArKJ0AzEqye9WdW6y6RgAAMSE8uwkpcR7TMcAYAClG4hh4wcyxRwAgN4wnp1DgJhF6QZi2Di2LQEAoFdMLs80HQGAIZRuIIZV5CQpPcDWYQAAhFNuSpwqcpJMxwBgCKUbiHETyzJMRwAAwNamMMoNxDRKNxDjvlDBiQAAAOE0hddaIKZRuoEYN7IwVcl+t+kYAADYUnrAq5q8PqZjADCI0g3EOJfToUmlTDEHACAcJpdnyLIs0zEAGETpBqDTB2WZjgAAgC19oYLXWCDWUboBaExJmpLimGIOAEBP6uN366SCFNMxABhG6QYgt9Oh08qZYg4AQE+aUJohl5PTbSDW8SwAQJJ0RmW26QgAANjKVC7fAiBKN4CPjC5OU2q8x3QMAABsIS3Bq7ElaaZjAIgAlG4AkiSnw2IfUQAAesj0qmymlgOQROkG8CkzanJMRwAAwBZm1vQ1HQFAhKB0A+g0JD9FhcF40zEAAIhqAzMDKstONB0DQISgdAPo4otDck1HAAAgqjHKDeDTKN0AuphZkyOnwzIdAwCAqOR0WJpezY4gAD5B6QbQRXqiT+P6B03HAAAgKo0tSVN6wGc6BoAIQukGcIhZQ5kWBwDA8ZjB1HIAn0HpBnCICaUZ7NkNAMAxCvhcmlyWYToGgAhD6QZwCLfToelVbB8GAMCxmDY4Wz6303QMABGG0g3gsGYPYxVzAACOxZdG5puOACACUboBHNaAzIAG900yHQMAgKgwvF+KBmayNzeAQ1G6AXTr/JN4xx4AgKNxAaPcALpB6QbQrTOrspXCgmoAABxResCrKRWZpmMAiFCUbgDd8rmdOm8413YDAHAk5w3Pk9vJaTWAw+PZAcARXTCin1wOy3QMAAAiksthac5JeaZjAIhglG4AR5SZ5GPKHAAA3TitPFMZiT7TMQBEMEo3gM910eh+piMAABCRWEANwOehdAP4XEPyU1TJ9mEAAHQxICOgEYWppmMAiHCUbgBHZd6ofqYjAAAQUeYxEwzAUaB0AzgqZ1RmKxjwmo4BAEBECAa8mlGTYzoGgChA6QZwVDwuh+aexHVrAABIH84A87qcpmMAiAKUbgBH7cJR+Yr3cIIBAIhtCV6X5o7gjWgAR4fSDeCoJfs9nGQAAGLeucNylRTnNh0DQJSgdAM4Jl8ZWyivi6cOAEBs8jgd+srYQtMxAEQRzpwBHJNgwKtzh+WajgEAgBEzh+QoM8lnOgaAKELpBnDMvjauSG6nZToGAAC9yumwdMm4ItMxAEQZSjeAY5adHKcZ1X1NxwAAoFdNHZSl/NR40zEARBlKN4Djcun4IjkdjHYDAGKDZUkLxhebjgEgClG6ARyX/NR4nVGZZToGAAC9YuqgLA3IDJiOASAKUboBHLfLxhfLYrAbAGBzLoel70weYDoGgChF6QZw3EoyApo6iNFuAIC9zazpq4I0ruUGcHwo3QBOyJWTB7CSOQDAtjwuh745scR0DABRjNIN4IT0S4vXbPbtBgDY1JzhecpJjjMdA0AUo3QDOGHfnFAiv8dpOgYAAD3K73HqslNZsRzAiaF0Azhh6QGfvjymwHQMAAB61LxR/ZSW4DUdA0CUo3QD6BEXn1yolHiP6RgAAPSIRJ9LXxtXZDoGABugdAPoEQGfW5eewskJAMAevjauSElxbtMxANgApRtAj7lgZD6LzQAAol5Wkk/zR3PZFICeQekG0GO8Lqe+Pam/6RgAAJyQ735hoOJYIBRAD6F0A+hRZ1fnqDQr0XQMAACOy5D8PppelWM6BgAboXQD6FEOh6Xrzyw3HQMAgGNmWdJ108pMxwBgM5RuAD1ueEGKpldlm44BAMAxmVnTV5V9k03HAGAzlG4AYXH16aWK53o4AECUSPC69N9TBpiOAcCGKN0AwiIj0advTCgxHQMAgKOyYHyx0gM+0zEA2BClG0DYfHlMgQqD8aZjAABwRPmpfs0f0890DAA2RekGEDZup0OLp7GoGgAgsl19eqm8Li6JAhAeLtMBANjbyf2DmlyWoafWbjMdBYAhoY52NfxjmfatXa6O/fVyJqQovmKCkkadK8uyOo9r3fme6p97UM2bX5dC7XKn5il49lVyJaZ3e98dzftUv+IXOrDhBbU375UrMV0pE76quKJhkqR9b/yf9jz3vwq1HFD8oIlKmfDVzu9ta9imbb9epKwL75DD6w/fLwARbVz/oE4rzzQdA4CNUboBhN2iM8q0YuMONbd2mI4CwIDGfz6qva/8RalTr5AnLU8H6zZq11/ulMMbr8ShZ0qSWuvr9MEv/1sJlZOUPOZ8WR6/WnduluX0dHu/ofZWbfv1Ijn9SUo76yq5Aqlqa9guh+/Dy1ramxq0+693KfX0y+VKztT2310vX/5g+YuHS5J2PXWP+oybR+GOYX6PU987q8J0DAA2R+kGEHa5KX5dekqxbn96g+koAAw4uGWd4opPkv+j0WdXUoaa1q1QS90nzwl7VixVXNFQ9Rk/v/M2d5+sI97vvteeVkfzXmXOvUWW09V53x9r2/OBLK9f8aUnS5J8eZVq3fWeVDxc+9c+J8vhkn/AqB57nIg+357UX7kpvOkCILy4phtAr7hkXJEGZARMxwBggDenVM3vvqrW3VskSS3bN6n5/bXyFQ6RJIVCHTqw6d9y9cnWtl8v0nt3na+6pd9W04ZVR7zfprf+KW/2QO1++l69d9dcbX3gUjWs+o1CHe2SJFdKjkKtB9Wy7W21H9irlroN8gT7qb15n/asfFgpky4J7wNHRKvsm6SLRheYjgEgBlihUChkOgSA2PDKe3s0894X1N7B0w4QS0KhDu15bqka//mo5HBIHR1KPvkCJY2cJUlq31ev9398gSy3V8ljL5Avr1IH3lmjPc8tVcZ5N8qXN+iw97vlp5eorWGb4stOUaBmqtrqt2r3U/cqMGSaksfMkSQ1bXhBe1b+UqG2FsWXn6LkMedr55/vlCfYT57MIu1+5n6po01Jo+cofuCYXvudwCyXw9IfLhut8uwk01EAxACmlwPoNVW5yZo/up9+uvId01EA9KKmdSu1f+1ypU27Uu5gvlq2bVL9sz+VMyFVCYMmKBT6cL2HuOIRShx2liTJk1Gog1vWae8rf+m2dCvUIac/WalTLpPlcMqbWaz2vbvUuPqxztLt7z9K/v6fTCFv3vwfte6oVcqkr2nr/Rcrbdp/yRnfR3VLvy1fboWc8cnh/FUgQnx5TAGFG0CvYXo5gF71nckD1C+V6+eAWFK//EEljThH8WXj5An2U0LFqQoMm66GF38rSXL6EyWHU+603C7f507NVXvjjm7v15mQIndKtiyHs+v37K9XqL31kONDba3a/dS9Sjltgdrq6xTqaJcvb5DcqX3lTsnRwbr1PfSIEcnyUvy6YlJ/0zEAxBBKN4Be5XM7ddOMSn1qlyAANhdqPShZXU85LMshfTTCbTnd8maWqO2ja74/1rp7i5xH2C7Mm1Oq1vq6zpFySWqt3yJnQoosp/uQ4xteeES+whp5M4s//NkfXfstSaGONqmDHRZiwffPrpDPzZ7cAHoPpRtArxtZlKrzhueZjgGgl8QVD1fDC79W09v/UlvDNjVteEGN//q9/P1Hdh6TeNIM7V+3Untf+ata67eqcc0fdeCt1QrUnN55zM4nb1P9cw91fh6oPl0dzXtV/8z9at29RU1v/0sNq36rQPXUQzK07Nys/W+uVPKYuZIkV0pfyXJo76tPqentf6l11/vyZJWE75eAiDCjOkdjS4KmYwCIMSykBsCIvc2tmvyjFapraDYdBUCYdRxs0p6VD6tp4yp1NDXImZAif+k4JY8+t8uI9L7XnlLDi79V+95dcqXkKHnM+fKXjOj8+gfLvitXUobSpl7RedvBLeu0+9mfqWX7JrkCqUqonKzEk2Z2mXIeCoW07ZcLlTjinM49uiWp6a3V2v30vQq1typ57AUKDD4tzL8JmJQe8Opvl5+sPvHd7/0OAOFA6QZgzP+9uV0XPfQv0zEAADHgf+cP17j+jHID6H1MLwdgzPiB6ZpRk2M6BgDA5i4YkU/hBmAMpRuAUdefWa7clDjTMQAANlUYjNc1U0tNxwAQwyjdAIwK+Ny6Y3a1nA6WMwcA9CyXw9Ids6tYrRyAUZRuAMYNye+jb5xabDoGAMBmvjmhRJV9k03HABDjKN0AIsI3Ti3R0Pw+pmMAAGyiOi9ZC8bzhi4A8yjdACKC02HpR7OrFPC6TEcBAEQ5v8epH82q4tIlABGB0g0gYuSm+LXkrArTMQAAUe7/TS1Tv7R40zEAQBKlG0CEOas6R2dVZZuOAQCIUmdUZmnOSXmmYwBAJ0o3gIiz5KwKthEDAByzwmC8bp5ZaToGAHRB6QYQcQI+t+46r0YeJ09RAICjE+d26t7zhyietUEARBjOaAFEpKrcZF0ztdR0DABAlFhyVoUGZAZMxwCAQ1C6AUSsC0f105mDub4bAHBks4fm6pwhfU3HAIDDonQDiGg/mDlIxekJpmMAACJUaVairp9ebjoGAHSL0g0govk9Lt03t0YJXKMHAPiMgNele8+vkc/tNB0FALpF6QYQ8YrTA7r1i5WyLNNJAACR5IfnVLIfN4CIR+kGEBWmVGTpknFFpmMAACLExScX6guDskzHAIDPRekGEDX+a/IAjS1JMx0DAGDYhIHp+u6UgaZjAMBRoXQDiBoOh6W7zqtWfqrfdBQAgCEDMgK687xqORxccwQgOlC6AUSVZL9HP583TIk+FlYDgFiTEu/Rzy4cyuKaAKIKpRtA1CkKJui+uUPkdjLKAQCxwuN06L65Q5SbwmwnANGF0g0gKo0qTtP3zqowHQMA0Eu+d1aFhhekmI4BAMeM0g0gas0elqevjSs0HQMAEGZfHlOgWcNyTccAgONC6QYQ1b47ZaCmlGeajgEACJNTBgR19emlpmMAwHGjdAOIapZl6Uezq1TZN8l0FABADxuYGdBd51XLyUrlAKIYpRtA1IvzOPWzLw1VdpLPdBQAQA/p2ydOS+cPV8DnNh0FAE4IpRuALaQn+vTAvGEKsJUYAES9lHiPls4frvRE3kwFEP0o3QBsozQrUQ9cOEw+N09tABCt/B6nHpw3TIXBBNNRAKBHcGYKwFaGF6Tox3Nq5OL6PwCIOm6npXvnDtHg3GTTUQCgx1C6AdjOhNIM3frFwbLo3QAQNSxLuuWcwRrXP2g6CgD0KEo3AFs6qzpH151RZjoGAOAoXXN6qc6qzjEdAwB6HKUbgG3NG12gyyeWmI4BAPgcF59cqK+MLTQdAwDCgtINwNYun9hf80b1Mx0DANCN2UNzddUXBpqOAQBhQ+kGYHvXTSvT2UxZBICIM6MmRzfNGCSLRTgA2BilG4DtWZalW86p1JTyTNNRAAAfOaMyS7ecM1gOdpsAYHOUbgAxweV06O451Tp9EMUbAEybUp6pO2ZXyUnhBhADKN0AYobL6dD/nFutqZVZpqMAQMyaVJahu+ZUy+XkNBRAbODZDkBM+bh4TxucbToKAMScSWUZuuf8Grkp3ABiCM94AGKO02HpjtlVml5F8QaA3kLhBhCreNYDEJOcDku3z6piVXMA6AWTKdwAYhjPfABiltNh6bYvDtaMGoo3AITLjOocCjeAmGaFQqGQ6RAAYFJHR0gLH31Nv13zvukoAGAr80b103XTytiHG0BMo3QDgKRQKKSb/vKm7l+xyXQUALCFb00o0RWT+puOAQDGUboB4FPuX/G2bvrLm+KZEQCOj2VJ155RpotGF5iOAgARgdINAJ/x6Jr3tfDR19TWwdMjABwLl8PSzTMrNXNIX9NRACBiULoB4DD+/uY2LfjlyzrQ2m46CgBEBY/LobvPq9bk8kzTUQAgolC6AaAba96t1/yH/qWGA62mowBAREvwunT/l4ZoVFGa6SgAEHEo3QBwBBu27dWXHlitDxqbTUcBgIiUleTTzy4cqvLsJNNRACAiUboB4HNs2XNAF/58td7avs90FACIKBU5iXrgwmHKSPSZjgIAEYvSDQBHoeFAqy5b9pJWbtxpOgoARISJpRn6n/Oq5Pe4TEcBgIhG6QaAo9TW3qEbnlyrpaveNR0FAIz68pgCXXN6qRwOy3QUAIh4lG4AOEa/WFWr6/+4li3FAMQcp8PS4jPLdcGIfNNRACBqULoB4Dj8Y+NOLVj2EiubA4gZCV6X7p5TrVMGpJuOAgBRhdINAMdp0459+vL//lvv7NxvOgoAhFVOcpwemDdUAzMTTUcBgKhD6QaAE9DQ1KpLl63R82/tMh0FAMJidHGq7jqvRinxHtNRACAqUboB4ASxwBoAu7pkXJH+67QBcrJgGgAcN0o3APSQP7yyRVc99h81tbSbjgIAJyTgdemWLw7WlIpM01EAIOpRugGgB23ctldf/+VLemv7PtNRAOC4lKQn6L4LhqgomGA6CgDYAqUbAHpYU0ubvvvof/TEq1tNRwGAYzK1Mku3nFMpv8dlOgoA2AalGwDC5BerarXkyXVqae8wHQUAjsjlsPTdLwzUV8YWmo4CALZD6QaAMHr1vT269JcvacueA6ajAMBhZSX5dMfsKp1UmGo6CgDYEqUbAMJsT1OLvv2bV/X3N7ebjgIAXXyhIlM/mFGpJL/bdBQAsC1KNwD0glAopJ8/X6sf/vVNHWxjujkAs/wep649o0znDs8zHQUAbI/SDQC9aMO2vfrWI69oXV2j6SgAYlRFTqLuPLea1ckBoJdQugGgl7W0dei2p9brpys3qYNnYAC9xLKkr44t1JWTB8jjcpiOAwAxg9INAIa8uGmXvvObV1lkDUDYpQe8un1WlcaUpJmOAgAxh9INAAY1Nrfquj+8ocdf3mI6CgCbmlKeqRtnDFJKvMd0FACISZRuAIgAT762Vdc8/roaDrSajgLAJtISPLr+zApNrcwyHQUAYhqlGwAixLbGZl3z+Ot6Zt0201EARLmzqrJ13bRy9WF0GwCMo3QDQIR54tWtuv6JN7Rrf4vpKACiTGaiT98/u0ITSjNMRwEAfITSDQARqH5/i67/4xv6/StbTUcBECXOHZarq6eWKtHnNh0FAPAplG4AiGDL12/Xoj+8rvd2s8I5gMPr2ydOP5hRycrkABChKN0AEOEOtLTrjmc36IGV76iNjb0BfMTttDRvVD9dMam//B6X6TgAgG5QugEgSqyra9TVj/9HL2/eYzoKAMNGFaXqhunlKk4PmI4CAPgclG4AiCKhUEiPvrRFN//1Te3Ye9B0HAC9LCvJp2umluqMymzTUQAAR4nSDQBRaN/BNt3997f083+8o5b2DtNxAISZx+nQV8YW6LJTi5lKDgBRhtINAFGsdud+fe9P69jbG7Cxcf2DWnxmuQrS4k1HAQAcB0o3ANjAig07dMOTa/XW9n2mowDoIXkpfl0ztVSnlWeajgIAOAGUbgCwibb2Di1d9a7ueGaDGpvbTMcBcJxS4z267NRinX9Svjwuh+k4AIATROkGAJup39+ie5a/paWr3tXBNq73BqKF3+PUV8YU6OJxRUrwct02ANgFpRsAbOqDhmbd+exG/fbf77G/NxDBXA5L5w7P1bcm9Fcw4DUdBwDQwyjdAGBz7+7ar9uf3qA/vrpVdG8gskwdlKUrTxvAImkAYGOUbgCIEW9+0Khb/7Zez6zbbjoKEPNGFaVq4ZSBGpybbDoKACDMKN0AEGNe2lyvW/66Xqs27TIdBYg5Y4rT9M0JJRpekGI6CgCgl1C6ASBG/XPTLt2z/G09t2GH6SiA7Y0tSdPlE0s0JJ+yDQCxhtINADHuja0Nunf52/rzf+q45hvoQZYlTSzN0KWnFKk6r4/pOAAAQyjdAABJUu3O/frJirf16JotamlnqzHgeDkdlqZVZunS8cXqnxEwHQcAYBilGwDQxbbGZv1s5SYt++dm7W9pNx0HiBrxHqfOGdJXXx5TqLxUv+k4AIAIQekGABxWQ1Orlq6q1cP/fFfbGg+ajgNErNyUOF04sp9mDctVos9tOg4AIMJQugEAR9TW3qG/vvGBlr7wrlbX7jYdB4gYIwpTdNHoAk0qzZDDYZmOAwCIUJRuAMBRW1fXqKWravX7l7fqQCtTzxF7vC6Hpldla96oApVlJ5qOAwCIApRuAMAxazjQqt/++z09/OK7qt3VZDoOEHY5yXE6b3iu5pyUr5R4j+k4AIAoQukGABy3UCik5zbs0MMvbtby9dvVxp5jsBGvy6HTyjM1a2iuRhenyrKYQg4AOHaUbgBAj9i576D+8MpWPbrmfa2tazQdBzhuFTmJmjU0V9MH5yjJz8JoAIATQ+kGAPS4dXWNenTN+/r9K1u1cx8rnyPyJfvdOqsqR7OG5nKtNgCgR1G6AQBh09beoRUbd+jRNVv09LptamnrMB0J6OR1OXTKgKDOHJyjiWXp8rqcpiMBAGyI0g0A6BUNTa368+t1+svrH2jV2zvV2s7LD3qfx+XQySVBnVGZpYllGUrwukxHAgDYHKUbANDrGppa9cy6bfrL6x9o5cYdOsgIOMLI43RobEmaplZmaVJZhgI+rtMGAPQeSjcAwKj9B9v09ze366+vf6D/W79dTS3s/40T53U5NKooVVMrszW5PEOJFG0AgCGUbgBAxGhubddzG3boqTe2acXGHdqxl0XYcPRykuM0fmBQ4weka1RRmuI8XKMNADCP0g0AiEihUEjr6vZqxcYdWrFhh/5dW6+Wdqah4xNup6Wh+SmdRbskI2A6EnpYbW2tCgoK9PLLL6uqqkrLly/X+PHjVV9fr+Tk5OO+3/vvv19LlizRli1bdPvtt2vPnj36/e9/r1deeUWSNG/evM7bAOBEOUwHAADgcCzLUll2oi4ZV6RlXx2hV66bpAcuHKoLR+arIC3edDwY0rdPnGYN7at7z6/RS4sm6VcXj9DFJxfZrnDPmzdPlmXpkksuOeRrCxYskGVZmjdv3iHHW5Ylj8ej4uJi3XDDDWpra5MkLV++vPPrn/3zwQcfdN5PY2OjFi1apPLycsXFxSk1NVXDhg3TD3/4Q9XX14f9cX+eUaNGqa6uTklJScd9H42Njbrsssu0cOFCbdmyRRdffLGuvPJKPfvssz2YFAA+wZKdAICo4Pe4NKE0QxNKMyRJ7+1u0oqNO/TPTbv1r9rdqmtoNpwQ4VCYFq/hBSk6qTBFwwtSlZMcZzpSr8nNzdUjjzyiH/3oR4qL+/BxNzc3a9myZcrLyzvk+ClTpujBBx/UwYMH9ec//1kLFiyQ2+3WVVdd1XnM+vXrlZjYdR/y9PR0SdLu3bs1ZswYNTY2asmSJRoyZIiSkpK0fv16Pfjgg1q2bJkWLFgQxkf8+TwejzIzM0/oPjZv3qzW1lZNnTpVWVlZnbcnJCScaDwAOCxGugEAUSk3xa/zT8rX/5xXrVVXTdDK/x6v2744WOcOy1VJeoIsy3RCHCvLkvpnJOiCEfm6e061Vl8zQX+/8hT9YGalzq7uG1OFW5JqamqUm5urxx57rPO2xx57THl5eaqurj7keK/Xq8zMTOXn5+vrX/+6Jk6cqCeeeKLLMenp6crMzOzyx+H48HTw6quv1ubNm7V69WpddNFFqqysVH5+viZPnqxf/epXuvTSS7vN+vbbb2v69OnKyMhQQkKChg0bpmeeeabLMZZlHTJdOzk5WQ899FDn56tXr1Z1dbV8Pp+GDh2ql19+ucvxH4/Y79mzp/O2Rx99VOXl5fJ6verXr59uu+22bnM+9NBDGjRokCSpsLBQlmWptrZWixcvVlVVVbff19HRoZtuukkFBQWKi4vT4MGD9bvf/a7b4wHg0xjpBgDYQm6KX7kpfs0c0lfSh9uSvfRevV5+t14vbd6j/2xpUMOBVsMp8WkZiV4NyklSRU6SBuUkqTqvj1LiPaZjRZT58+frwQcf1Pnnny9J+vnPf66LLrpIy5cv/9zvjYuL065du47q53R0dOjXv/615s6dq+zs7MMeYx3hnax9+/bp9NNP1/e//315vV4tXbpU06ZN0/r16w87Kt/dfZxxxhmaNGmSHn74Yb3zzjv61re+dcTvWbNmjWbNmqXFixdr9uzZeuGFF3TppZcqNTW1y/T7j82ePVu5ubmaOHGiVq9erdzcXAWDwc/NdtNNN+nhhx/Wfffdp5KSEq1YsUJz585VMBjUuHHjjurxAYhdlG4AgC0l+d0aPyBd4wekd972fn2T1m5t1Nq6Rr2xtVFrtzZqy54DBlPGjk8X7Mq+H/6dHvCZjhXx5s6dq6uuukrvvvuuJOn555/XI488csTSHQqF9Oyzz+pvf/ubvvGNb3T5Wt++fbt8np+frzfeeEM7duzQnj17NGDAgC5fHzJkiNavXy9JmjZtmn71q18d9mcOHjxYgwcP7vx8yZIlevzxx/XEE0/osssuO6rHumzZMnV0dOiBBx6Qz+dTeXm53n//fX3961/v9ntuv/12TZgwQYsWLZIk9e/fX2vXrtUtt9xy2NL98XXqkhQMBo9qqvrBgwd144036plnntHIkSMlfThK/o9//EM/+clPKN0APhelGwAQM/r28atvH78ml39yot1woLWziK/d2qgN2/aqdud+7T3YZjBp9EqN96gomKDCYLyKggkqTk9QeU4iBfs4BYNBTZ06VQ899JBCoZCmTp2qtLS0wx775JNPKiEhQa2trero6NCcOXO0ePHiLsesXLlSgcAni8653Ufev/zxxx9XS0uLFi5cqAMHun+Dat++fVq8eLH+9Kc/qa6uTm1tbTpw4IA2b9581I913bp1qqyslM/3yb+Vj0vukb5n+vTpXW4bPXq07rjjDrW3t8vpPPFt49566y01NTVp0qRJXW5vaWk57DR/APgsSjcAIKYlxbk1sihVI4tSu9y+c99B1e7cr3d27lftrv2q3dmkd3bu17u79mt/S7uhtJHB7bSU28evwmCCij4q10XpH/6d7Gd6eE+bP39+52jxj3/8426PGz9+vO699155PB5lZ2fL5Tr0NK+goOCwW20Fg0ElJyd3jmp/7OOp4YFAoMt11J915ZVX6umnn9att96q4uJixcXF6ZxzzlFLS0vnMZZl6bM71ba2Rv4lH/v27ZMk/elPf1JOTk6Xr3m9XhORAEQZSjcAAIeRluBVWoJXQ/ulHPK17XubVbuzSXUNB7StsVnbGg9qW2Oztu89qO0ffX6gNTqLudNhKZjgVUaST5mJXmUm+pSVHKec5DhlJ8epb584BRO8cjhYqa63TJkyRS0tLbIsS6eddlq3x8XHx6u4uPi4fobD4dCsWbP08MMP69prr+32uu7uPP/885o3b57OPvtsSR8W1dra2i7HBINB1dXVdX6+ceNGNTU1dX5eWlqqX/ziF2pubu4c7X7xxReP+HNLS0v1/PPPH5Klf//+PTLKLUllZWXyer3avHkzU8kBHBdKNwAAxyg94Pvc6dKNza2dBXznvoNqbG7T3uZW7Wtu096PPt770ceNnR+36mBbh9o7QmrrCB3x/g/H5bDkcTk+/ON0dH4c73Ep2e9WUpz7k7/jPEryu5Uc9/HtHvXxu5Wa4JWTQh1RnE6n1q1b1/nxidi+fbuam7tur5eamiq3260bb7xRy5cv1/Dhw3XDDTdo6NChio+P12uvvaZVq1apoqKi2/stKSnRY489pmnTpsmyLC1atEgdHR1djjn11FN19913a+TIkWpvb9fChQu7TG+fM2eOrrnmGn31q1/VVVddpdraWt16661HfDzf+c53NGzYMC1ZskSzZ8/WqlWrdPfdd+uee+45jt/O4QUCAV155ZW64oor1NHRoTFjxqihoUHPP/+8EhMTdeGFF/bYzwJgT5RuAADCINHnVqLPreL0wOcf3I0Py/cnJby9/aO/O0LqCIW6Fmyng9FnG/vs3trH67MLpUnSqlWrNGLECKWmpmr16tW6+eabdcstt+idd96Rw+FQSUmJZs+ercsvv7zb+7399ts1f/58jRo1SmlpaVq4cKEaGxu7HHPbbbfpoosu0tixY5Wdna0777xTa9as6fx6QkKC/vjHP+qSSy5RdXW1ysrKdPPNN2vmzJnd/tyamhr95je/0bXXXqslS5YoKytLN9xww2EXUTsRS5YsUTAY1E033aRNmzYpOTlZNTU1uvrqq3v05wCwJyv02YtrAAAAAABAj3CYDgAAAAAAgF1RugEAAAAACBNKNwAAAAAAYULpBgAAAAAgTCjdAAAAAACECaUbAAAAAIAwoXQDAAAAABAmlG4AAAAAAMKE0g0AAAAAQJhQugEAAAAACBNKNwAAAAAAYULpBgAAAAAgTCjdAAAAAACECaUbAAAAAIAwoXQDAAAAABAmlG4AAAAAAMKE0g0AAAAAQJhQugEAAAAACBNKNwAAAAAAYULpBgAAAAAgTCjdAAAAAACECaUbAAAAAIAwoXQDAAAAABAmlG4AAAAAAMKE0g0AAAAAQJhQugEAAAAACBNKNwAAAAAAYULpBgAAAAAgTCjdAAAAAACECaUbAAAAAIAwoXQDAAAAABAmlG4AAAAAAMKE0g0AAAAAQJj8f/lMXZRrzNTmAAAAAElFTkSuQmCC\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "#conn.close()" ], "metadata": { "id": "ZFtnWvXB-23y" }, "execution_count": null, "outputs": [] } ] }