{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Theme: Did Kobe Bryant have a \"hot\" hand in 2009 NBA Finals?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### First, let's load our data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>vs</th>\n",
       "      <th>game</th>\n",
       "      <th>quarter</th>\n",
       "      <th>time</th>\n",
       "      <th>description</th>\n",
       "      <th>basket</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9:47</td>\n",
       "      <td>Kobe Bryant makes 4-foot two point shot</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9:07</td>\n",
       "      <td>Kobe Bryant misses jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>8:11</td>\n",
       "      <td>Kobe Bryant misses 7-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7:41</td>\n",
       "      <td>Kobe Bryant makes 16-foot jumper (Derek Fisher...</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7:03</td>\n",
       "      <td>Kobe Bryant makes driving layup</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    vs  game quarter  time                                        description  \\\n",
       "0  ORL     1       1  9:47            Kobe Bryant makes 4-foot two point shot   \n",
       "1  ORL     1       1  9:07                          Kobe Bryant misses jumper   \n",
       "2  ORL     1       1  8:11                   Kobe Bryant misses 7-foot jumper   \n",
       "3  ORL     1       1  7:41  Kobe Bryant makes 16-foot jumper (Derek Fisher...   \n",
       "4  ORL     1       1  7:03                    Kobe Bryant makes driving layup   \n",
       "\n",
       "  basket  \n",
       "0      H  \n",
       "1      M  \n",
       "2      M  \n",
       "3      H  \n",
       "4      H  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import io\n",
    "import requests\n",
    "\n",
    "df_url = 'https://raw.githubusercontent.com/akmand/datasets/master/openintro/kobe.csv'\n",
    "url_content = requests.get(df_url, verify=False).content\n",
    "kobe = pd.read_csv(io.StringIO(url_content.decode('utf-8')))\n",
    "\n",
    "kobe.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### The number of games played"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5\n"
     ]
    }
   ],
   "source": [
    "print(kobe['game'].nunique())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check if and which games went into overtime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['1' '2' '3' '4' '1OT']\n"
     ]
    }
   ],
   "source": [
    "print(kobe['quarter'].unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>vs</th>\n",
       "      <th>game</th>\n",
       "      <th>quarter</th>\n",
       "      <th>time</th>\n",
       "      <th>description</th>\n",
       "      <th>basket</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>ORL</td>\n",
       "      <td>2</td>\n",
       "      <td>1OT</td>\n",
       "      <td>4:13</td>\n",
       "      <td>Kobe Bryant misses 22-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>ORL</td>\n",
       "      <td>2</td>\n",
       "      <td>1OT</td>\n",
       "      <td>2:17</td>\n",
       "      <td>Kobe Bryant makes 11-foot two point shot</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>ORL</td>\n",
       "      <td>4</td>\n",
       "      <td>1OT</td>\n",
       "      <td>4:13</td>\n",
       "      <td>Kobe Bryant makes 11-foot jumper</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>ORL</td>\n",
       "      <td>4</td>\n",
       "      <td>1OT</td>\n",
       "      <td>3:32</td>\n",
       "      <td>Kobe Bryant makes 19-foot jumper</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>82</th>\n",
       "      <td>ORL</td>\n",
       "      <td>4</td>\n",
       "      <td>1OT</td>\n",
       "      <td>2:49</td>\n",
       "      <td>Kobe Bryant misses 10-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>83</th>\n",
       "      <td>ORL</td>\n",
       "      <td>4</td>\n",
       "      <td>1OT</td>\n",
       "      <td>1:58</td>\n",
       "      <td>Kobe Bryant misses 18-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>ORL</td>\n",
       "      <td>4</td>\n",
       "      <td>1OT</td>\n",
       "      <td>0:47</td>\n",
       "      <td>Kobe Bryant misses 15-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     vs  game quarter  time                               description basket\n",
       "53  ORL     2     1OT  4:13         Kobe Bryant misses 22-foot jumper      M\n",
       "54  ORL     2     1OT  2:17  Kobe Bryant makes 11-foot two point shot      H\n",
       "80  ORL     4     1OT  4:13          Kobe Bryant makes 11-foot jumper      H\n",
       "81  ORL     4     1OT  3:32          Kobe Bryant makes 19-foot jumper      H\n",
       "82  ORL     4     1OT  2:49         Kobe Bryant misses 10-foot jumper      M\n",
       "83  ORL     4     1OT  1:58         Kobe Bryant misses 18-foot jumper      M\n",
       "84  ORL     4     1OT  0:47         Kobe Bryant misses 15-foot jumper      M"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kobe[kobe['quarter'] == '1OT']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### View of the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>vs</th>\n",
       "      <th>game</th>\n",
       "      <th>quarter</th>\n",
       "      <th>time</th>\n",
       "      <th>description</th>\n",
       "      <th>basket</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9:47</td>\n",
       "      <td>Kobe Bryant makes 4-foot two point shot</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9:07</td>\n",
       "      <td>Kobe Bryant misses jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>8:11</td>\n",
       "      <td>Kobe Bryant misses 7-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7:41</td>\n",
       "      <td>Kobe Bryant makes 16-foot jumper (Derek Fisher...</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7:03</td>\n",
       "      <td>Kobe Bryant makes driving layup</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>128</th>\n",
       "      <td>ORL</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>3:33</td>\n",
       "      <td>Bryant Layup Shot: Missed</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>129</th>\n",
       "      <td>ORL</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>2:02</td>\n",
       "      <td>Bryant 3pt Shot: Missed</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>130</th>\n",
       "      <td>ORL</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>00:23.9</td>\n",
       "      <td>Bryant 3pt Shot: Missed</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>131</th>\n",
       "      <td>ORL</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>00:06.9</td>\n",
       "      <td>Bryant 3pt Shot: Missed</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>132</th>\n",
       "      <td>ORL</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>00:00.5</td>\n",
       "      <td>Bryant Layup Shot: Made (31 PTS)</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>133 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      vs  game quarter     time  \\\n",
       "0    ORL     1       1     9:47   \n",
       "1    ORL     1       1     9:07   \n",
       "2    ORL     1       1     8:11   \n",
       "3    ORL     1       1     7:41   \n",
       "4    ORL     1       1     7:03   \n",
       "..   ...   ...     ...      ...   \n",
       "128  ORL     3       4     3:33   \n",
       "129  ORL     3       4     2:02   \n",
       "130  ORL     3       4  00:23.9   \n",
       "131  ORL     3       4  00:06.9   \n",
       "132  ORL     3       4  00:00.5   \n",
       "\n",
       "                                           description basket  \n",
       "0              Kobe Bryant makes 4-foot two point shot      H  \n",
       "1                            Kobe Bryant misses jumper      M  \n",
       "2                     Kobe Bryant misses 7-foot jumper      M  \n",
       "3    Kobe Bryant makes 16-foot jumper (Derek Fisher...      H  \n",
       "4                      Kobe Bryant makes driving layup      H  \n",
       "..                                                 ...    ...  \n",
       "128                        Bryant Layup Shot: Missed        M  \n",
       "129                          Bryant 3pt Shot: Missed        M  \n",
       "130                          Bryant 3pt Shot: Missed        M  \n",
       "131                          Bryant 3pt Shot: Missed        M  \n",
       "132                 Bryant Layup Shot: Made (31 PTS)        H  \n",
       "\n",
       "[133 rows x 6 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kobe"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### First, let's replace \"1OT\" with \"5\" for the quarter column to make sorting easier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "kobe['quarter'] = kobe['quarter'].replace('1OT', '5') \n",
    "kobe['quarter'] = kobe['quarter'].astype(int)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Then, we can sort the data by game and quarter in ascending orders"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>vs</th>\n",
       "      <th>game</th>\n",
       "      <th>quarter</th>\n",
       "      <th>time</th>\n",
       "      <th>description</th>\n",
       "      <th>basket</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9:47</td>\n",
       "      <td>Kobe Bryant makes 4-foot two point shot</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9:07</td>\n",
       "      <td>Kobe Bryant misses jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>8:11</td>\n",
       "      <td>Kobe Bryant misses 7-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7:41</td>\n",
       "      <td>Kobe Bryant makes 16-foot jumper (Derek Fisher...</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ORL</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>7:03</td>\n",
       "      <td>Kobe Bryant makes driving layup</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>128</th>\n",
       "      <td>ORL</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>6:22</td>\n",
       "      <td>Kobe Bryant misses 18-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>129</th>\n",
       "      <td>ORL</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>4:26</td>\n",
       "      <td>Kobe Bryant misses 27-foot three point jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>130</th>\n",
       "      <td>ORL</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>3:12</td>\n",
       "      <td>Kobe Bryant misses 27-foot three point jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>131</th>\n",
       "      <td>ORL</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>2:38</td>\n",
       "      <td>Kobe Bryant makes 9-foot two point shot</td>\n",
       "      <td>H</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>132</th>\n",
       "      <td>ORL</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>2:06</td>\n",
       "      <td>Kobe Bryant misses 13-foot jumper</td>\n",
       "      <td>M</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>133 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      vs  game  quarter  time  \\\n",
       "0    ORL     1        1  9:47   \n",
       "1    ORL     1        1  9:07   \n",
       "2    ORL     1        1  8:11   \n",
       "3    ORL     1        1  7:41   \n",
       "4    ORL     1        1  7:03   \n",
       "..   ...   ...      ...   ...   \n",
       "128  ORL     5        4  6:22   \n",
       "129  ORL     5        4  4:26   \n",
       "130  ORL     5        4  3:12   \n",
       "131  ORL     5        4  2:38   \n",
       "132  ORL     5        4  2:06   \n",
       "\n",
       "                                           description basket  \n",
       "0              Kobe Bryant makes 4-foot two point shot      H  \n",
       "1                            Kobe Bryant misses jumper      M  \n",
       "2                     Kobe Bryant misses 7-foot jumper      M  \n",
       "3    Kobe Bryant makes 16-foot jumper (Derek Fisher...      H  \n",
       "4                      Kobe Bryant makes driving layup      H  \n",
       "..                                                 ...    ...  \n",
       "128                  Kobe Bryant misses 18-foot jumper      M  \n",
       "129      Kobe Bryant misses 27-foot three point jumper      M  \n",
       "130      Kobe Bryant misses 27-foot three point jumper      M  \n",
       "131            Kobe Bryant makes 9-foot two point shot      H  \n",
       "132                  Kobe Bryant misses 13-foot jumper      M  \n",
       "\n",
       "[133 rows x 6 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kobe.sort_values(by = ['game', 'quarter'], ascending = [True, True], ignore_index = True, inplace = True)  \n",
    "# Note: time is already in descending order for each game and quarter, so we do not need to sort that one.\n",
    "kobe"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### For this lab, we define the length of a shooting streak to be the *number of consecutive baskets made until a miss occurs*.\n",
    "#### For example, in Game 1 Kobe had the following sequence of hits and misses from his nine shot attempts in the first quarter:\n",
    "\n",
    "#### H M | M | H H M | M | M | M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    H\n",
       "1    M\n",
       "2    M\n",
       "3    H\n",
       "4    H\n",
       "5    M\n",
       "6    M\n",
       "7    M\n",
       "8    M\n",
       "Name: basket, dtype: object"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kobe['basket'][0:9]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### We will define a function which calculates the length of all shooting steaks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 0, 2, 0, 0, 0, 3, 2, 0, 3, 0, 1, 3, 0, 0, 0, 0, 0, 1, 1, 0, 4, 1, 0, 1, 0, 1, 0, 1, 4, 3, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 2, 0, 1, 2, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 2, 0, 0, 0, 3, 0, 1, 0, 1, 2, 1, 0, 1, 0, 0, 1]\n"
     ]
    }
   ],
   "source": [
    "def calc_streak(x):\n",
    "    all_shoots = list(x)\n",
    "    streak, count = [], 0\n",
    "    \n",
    "    for shoot in all_shoots:\n",
    "        if shoot == 'H':\n",
    "            count += 1\n",
    "        elif shoot == 'M':\n",
    "            streak.append(count)\n",
    "            count = 0\n",
    "    \n",
    "    # If the last shoot is a hit, make sure to append the last count to the streak list as well.\n",
    "    if all_shoots[-1] == 'H':  \n",
    "        streak.append(count)\n",
    "        \n",
    "    return streak  \n",
    "    \n",
    "kobe_streak = calc_streak(kobe['basket'])\n",
    "print(kobe_streak)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Let's make a barblot of the lengths of all shooting streaks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAAClXREAf51a9+lVmzZmX+/PlZsWJFmjVrlg4dOqRfv34555xz0qZNm632mTZtWh544IFMnz49GzZsSKdOnTJo0KCce+65KS+XiwEAAADsKxok6Xn00Uezbt26HH300RkyZEhOPfXUNGnSJPfdd1+++c1vZsmSJVuMnzBhQq655pq88sor6d+/f84+++xUV1dn5MiR+dGPftQQJQEAAACwh2iQFVAjR45Ms2bNttp+991358EHH8xDDz2Uiy66KEmyevXq3HbbbSkvL8+IESNy5JFHJkkuuOCCXHvttXn22Wfz9NNP5+STT26I0gAAAAAosQZZAbWt8ClJTjrppCTJ/Pnz67Y9++yzWbFiRQYOHFgXPtUeY9iwYUmSxx9/vCHKAgAAAGAPUGizpeeffz5J0r1797ptkydPTpIcd9xxW43v1atXKisr6/pCAQAAALD3a5Bb8Go9/PDDWbt2bVavXp1Zs2bl1VdfTffu3XPeeefVjaldDdWlS5et9m/SpEkOOeSQzJs3LwsXLkzXrl0bsjwAAAAASqBBA6jf/e53Wb58ed2fjzvuuFx66aU54IAD6ratXr06SdKyZcttHqN2e+24HRk+fPg2t99www1Jkvbt2+9c4XuheaUugN22L1+X7N0qKjb/leAahcZl7kFpmHtQGube/qtBA6if/exnSZJly5Zl+vTpufPOOzN8+PAMHz48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8+dv8/UFCxYk2X6PKAAAAAD2HiUJoPr06ZMkeemll7Jp06YtXluzZk1effXVNGvWLB/4wAdKUR4AAAAADagkAVSnTp1y7LHHZvHixfnDH/6wxWv33ntv1q1bl9NOOy3NmzcvRXkAAAAANKCSNSH/whe+kKuuuip33HFHXn755XTt2jUzZszIlClT0rlz53z6058uVWkAAAAANKCymtpHzpXAkiVLcu+992bixIl55513cuCBB6Zfv3751Kc+ldatW5eqLAAAAAAaUEkDKAAAAAD2fSXpAQUAAADA/kMABQAAAEChBFAAAAAAFEoABQAAAEChBFAAAAAAFEoABQAAAEChBFAAAAAAFEoABQAAADSqkSNH5plnnil1GTSiilIXwP5t/fr1mT59eubPn59Vq1alrKwsLVu2TOfOndOjR480a9as1CUCALAPW7lyZcrLy9OyZctSlwL7lVGjRmXt2rU56aSTSl0KjUQARUmsXLkyv/71r/Pkk09m3bp12xzTrFmzfOhDH8qwYcPSunXrRq4QABre+PHjM2XKlDRp0iTHHXdcjjnmmG2OGz16dMaMGZNrrrmmkSuEfc/bb7+dBx98MAsWLEj37t3zd3/3d2nTpk1mz56dm2++OfPmzUuS9OzZMxdffHEOPfTQElcMe78nnnhip8ZVVVVtMXbw4MFFlcQeoKympqam1EWwf1m1alWuvPLKVFVVpbKyMkcddVQ6d+6cli1bpqamJmvWrMn8+fMzbdq0rFu3Ll26dMn111+fVq1albp02O/8z//8T8aPH58f//jHpS4F9mo1NTX5j//4j4wbN26L7SeccEK+/OUvb/V33H333Zf7778/99xzT2OWCfuclStX5lvf+lbefvvtum2HH354vv3tb+db3/pWVq5cma5du+btt9/OihUrcuCBB+bGG2/0706opwsuuGC39vP33r7NCiga3X333Zeqqqp8+MMfztChQ9O8efNtjlu7dm3uueeejBo1Kvfff38++9nPNnKlwDvvvJNFixaVugzY6/35z3/OuHHjcvDBB+fMM89MkyZNMmbMmLzwwgu5+uqrc/XVV6dt27alLhP2OY899ljefvvtfPzjH89JJ52U5557Lvfee29uueWWtGjRIt/97nfTvn37JMndd9+dhx56KL///e9z/vnnl7hy2Ps1b948Z555ZiorK7d6raamJr/5zW/yvve9Lx/84AdLUB2lIICi0U2YMCF9+/bNhRdeuMNxzZs3z2c/+9nMnj0748ePF0ABsNcaPXp0WrZsme9///t1QdNHPvKR/OpXv8qjjz6a6667LldffXUOOOCAElcK+5YJEybkyCOPzLBhw5Ik3bt3z6RJkzJx4sR885vfrAufkmTYsGEZO3ZsXnjhBQEU1NNll12WO+64I+PHj8+ll16anj17bjWmNoD61Kc+VYIKKQUBFI1u2bJlOfnkk3d6/Ac+8IFMnz69wIpg/3HzzTfv0vhp06YVVAnsX+bOnZsBAwZsscqpvLw8F154Ydq3b5+RI0fmuuuuyzXXXKPvITSgxYsX59RTT91i2xFHHJFXX301Rx111Bbby8rK0rt374wfP74xS4R90mmnnZbevXvnpz/9aUaMGJEhQ4bk05/+dJo2bVrq0ighARSNrnXr1qmqqtrp8W+++aZ/jEMD+ctf/lLqEmC/VF1dvd1b7IYMGZLy8vLccccduf7663PVVVc1cnWw71q/fv1Wt//UPu1uWysO27Ztm7Vr1zZKbbCva9++fa666qqMGjUqd911V1588cVcdtllef/731/q0igRARSN7thjj82YMWPyhz/8IWefffYOxz722GN57rnncvrppzdOcbCPa968eQ4++OBcdNFFOzX+oYceyksvvVRwVbDvO+igg7JkyZLtvn7OOedk48aN+eUvf5nvfve7W63MAHZPmzZtsmLFii22VVZWbjcQXrlypQbk0MCGDBmSY445JjfffHOuuuqqfPSjH83QoUNLXRYlIICi0Q0bNiwvvvhibr/99jzyyCM55phj6p6ClySrV6/O/PnzM2nSpCxatCht27bd7acoAFs6/PDDM3v27PTu3Xunxo8ePbrYgmA/0a1bt0yZMmWHYz784Q9nw4YNufvuu/P66683UmWwb+vSpUveeOONLbZ97GMfy8c+9rFtjl+4cGEOPvjgxigN9itdu3bN9773vdx333156KGH8vzzz5e6JEpAAEWjO+igg3L99dfn5z//eSZNmpQ//elP2x17zDHH5KKLLspBBx3UiBXCvqt79+559dVXs2DBgnTq1KnU5cB+4/jjj8+ECRPywgsv5IQTTtjuuPPOOy/V1dW57777GrE62He9733vy6hRo1JdXZ2Kih3/6LNs2bK88sorOfPMMxupOti/lJeX54ILLsgHP/jB/PjHPy51OZRAWU1NTU2pi2D/tWjRokyePDlVVVVZvXp1ks335Xfp0iV9+vRJx44dS1wh7FueffbZPPDAA/nc5z63U6ugJkyYkNmzZ3s6CdTTypUr88wzz9T9/fZeRo8encWLF5t70IiqqqoyceLEHH300TnssMNKXQ7s0zZt2pS1a9emoqIizZo1K3U5NBIBFAAAAACFKi91AQAAAADs2wRQAAAAABRKAAUAAABAoQRQAAAAABRKAAUAAABAoQRQAAAAABRKAAUA1JkyZUqGDh2ayy67rNSlbKW6ujr3339//u///b/5+7//+wwdOjRDhw4t/LyjR4/O0KFDM2LEiMLP1ZgWLVrUaJ8hDeOyyy7L0KFDM2XKlFKXAgC7rKLUBQBAqd1yyy0ZM2ZMevfuvc+FDO82fvz4zJ49O3369EmfPn1KXc4u+/nPf54nnngiSVJZWZm2bdvu8jHGjRuXMWPG5PXXX8/y5cvTtGnTtGvXLu3bt0/Pnj3Tp0+f9OrVK2VlZQ1dfqPa27/r9/Lyyy/niSeeyIwZM7J06dKUl5enXbt2Oeigg3LUUUeld+/e6du3byoq/t8/dVetWpVHH300SYRuAFACAigA2E9MmDAhY8aMSZK9LpRYvXp1Xe3f+MY38jd/8ze7tP+6dety00035cUXX6zbVlFRkfLy8ixYsCDz58/Pyy+/nPvuuy933HFHWrVq1aD1N7ad+a4rKirSpUuXxiyr3jZt2pT/+q//qgsik6RJkyaprKzM4sWLs3DhwkydOjUPPfRQfvCDH+Twww+vG7dq1arcf//9SQRQAFAKAigAYI9XVVWVjRs3pk2bNrscPiXJyJEj8+KLL6ZJkyb52Mc+lr/9279N+/btU1ZWlvXr12fWrFl57rnn6kKb/cFBBx2UH/3oR6UuY5f89re/rQufzjrrrJx77rnp3LlzysvLU11dnTlz5uSFF17I6NGjS1soALAVARQAsMdbv359kqR58+a7vO/q1avrAolPf/rT+djHPrbF682aNUvPnj3Ts2fPDBs2LOXlWmTuiWpqavLYY48lSc4+++x84Qtf2OL1ioqKHHnkkTnyyCPzyU9+Mps2bSpFmQDAdgigAKAe5s6dm0ceeSRTpkzJsmXL0rRp0xx22GE59dRTM3jw4C160CSbGz9/+ctfTpLce++9mTt3bh544IFMmTIlq1evTocOHXLKKafkvPPO22rfWuvXr89DDz2Up59+OkuWLEmrVq3Su3fvfOITn0jz5s23OH6yubH4d77znbr977///rpbkWrVjv1rr776ah566KHMmDEja9euTZcuXXLGGWfk7LPP3u0+SQsWLMjDDz+cSZMmZenSpWnWrFm6deuW0047LYMGDdoiABo9enR+8pOf1P158eLFW9w+demll+b000/f4fmqqqpSXV2dJPngBz+4w7Hb+8zf7bnnnsujjz6a119/PRs3bky3bt1y7rnn5pRTTtnuPqtXr84jjzySCRMmZMGCBUmSjh07pn///vnIRz6Sli1bbnffXfm8duW7/utr8d1q+6Kdf/75Of/88/P73/8+o0ePzvz589O0adMcddRR+dSnPpUjjzxyu3W/+uqrefDBBzN9+vRUV1enU6dOOf3003Puuefmpz/9ad3xd/Z2uHfeeSdLly5N8t7fY3l5+Rafy4gRI/LKK6/U/fmvz/nuOmrHXnrppenXr18efPDBPPfcc1myZEkqKiryi1/8om6/6urq/OlPf8rYsWMzb968rFu3Lu3atUvfvn3zsY99LF27dt2qturq6kyaNCnjx4/PzJkz8/bbb2ft2rVp27ZtevbsmY985CM54ogjduozebeVK1fm+9//fmbMmJHu3bvnyiuvrOuTtnz58jz88MOZOHFiFi1alE2bNuWAAw7IwQcfnKOPPjqDBw9Ohw4ddvmcALArBFAAsJsee+yx3HHHHampqUmyuTH22rVrM23atEybNi3PPPNM/uVf/iWVlZXb3P+ll17KD3/4w6xfvz4tW7ZMdXV1qqqqcu+992bWrFm5/PLLt9pn9erVufbaazNr1qwkmwOTdevWZezYsXn++edzySWXbLVPRUVF2rZtm9WrV2fDhg2prKzcqZVEo0ePzq233pqampq0aNEiGzZsyJw5c3L77bdnwYIF+dznPrcLn9Zmzz//fG666aZs2LAhSdKyZcusXbs2U6dOzdSpUzN27Nh861vfqquvWbNmadu2baqrq7Nq1aqUlZXlgAMOqDtes2bNdun8b7/9dg499NBdrrvW/fffn3vvvTdlZWVp0aJF1q1blxkzZmTGjBlZvnx5PvzhD2+1z4IFC3Lddddl8eLFSVJ3PcydOzdz587N6NGjc9VVV6Vz585b7burn9fuftfbs2nTpvzbv/1bJk6cmCZNmqRp06ZZtWpVXnjhhbz88su55ppr0qNHj632GzNmTH7yk5/UzY1WrVrljTfeyMiRIzN16tS0aNFit2tKNn+Pu6J169Zp06ZN3nnnnSTZqoH9tj6jFStW5F/+5V+ycOHCNG3adKtwcunSpfne976XOXPmJEnKysrSvHnzLFmyJKNHj87TTz+dr371q1vdMvrSSy/lhhtuqPtz7fWwZMmSPPXUU3nmmWfypS99KaeddtpOv79ly5bl+uuvz9y5c/OBD3wgV1xxRVq3bp1kc2h75ZVX1oV35eXladGiRd5+++289dZbmT59eg488MCcddZZO30+ANgdAigA2A0TJkzI7bffnsrKynziE5/I4MGD64KSV155JbfffnumTJmSkSNH5uKLL97mMX70ox/lgx/8YP7+7/8+hxxySNauXZvHHnssd999d5577rm88MILOeGEE7bY5/bbb8+sWbNSWVmZf/qnf8rAgQNTUVGRefPm5dZbb81///d/b3Weo446Kj/72c/qVrV89KMffc9VJytWrMh//dd/5ayzzsonPvGJtGvXLqtWrco999yTxx57LL///e9zxhln5LDDDtvpz2zBggX50Y9+lA0bNqR37965+OKL06VLl2zYsCFjxozJHXfckZdffjm/+MUv8sUvfjFJMnDgwAwcOLBuZU/79u1zyy237PQ5k+Swww5Ls2bNsn79+vzqV7/KN77xjRxyyCG7dIwkmTNnTl599dVccMEFOeecc9KqVassW7Yst99+e5599tncdddd+dCHPlT3g3+yebXLjTfemMWLF+fggw/Ol770pRx99NFJksmTJ+enP/1plixZkn//93/Pv/3bv6Vp06b1+rx257vekT/84Q8pKyvL1772tfTv3z8VFRWZM2dO/vM//zPz5s3LHXfcke9///tb7PPmm2/mtttuS01NTY4//vh84QtfyCGHHJL169fnf//3f/PLX/5yt0KxAw44IB06dMjixYvzm9/8Ju9///vTrVu3ndr3m9/85hYrvn72s5+95z73339/WrVqlX/913/NMcccU9ewPtn8vf7gBz/InDlz0qtXrwwbNiwf+MAHUlFRkWXLluXhhx/OI488kptvvjndu3dPp06d6o7bvHnznH766TnttNPSvXv3tGnTJsnmAOqRRx7JqFGjctttt6V3795p3779e9a5ePHiXHfddVmwYEGOPvroLQLJJLnvvvuydOnSdOrUKV/60pdy1FFHpby8PBs2bMj8+fMzduzYtGvXbqc+RwCoD00OAGAXbdq0qe42nK985Sv5+Mc/XreioqKiIsccc0z+9V//NZWVlfnzn/9ct/Lgrx155JH52te+VheGNG/ePOedd16OP/74JMmzzz67xfiFCxfmL3/5S5LkkksuyWmnnVa3KuOwww7Lt7/97V1eEbQ969aty2mnnZbPf/7zdT+ctmrVKp///OfTrVu31NTUZNy4cbt0zAcffDDr1q1Lx44dc8UVV9Q9ga1p06b527/92/zjP/5jkuTPf/5z3Q/6DaGysrKu79Prr7+er371q7nqqqvyP//zP3nmmWeyZMmSnTrOqlWrMnTo0Hzyk5+se0peu3bt8uUvfzkHHHBANmzYkOeff36LfcaOHZs5c+akSZMmueKKK3LMMcekrKwsZWVlOfroo3PFFVekSZMmmTdvXt13W6tUn9dfv+fLL7+8LuhMku7du+eyyy5LksycObNuZde7666urs5hhx2Wb33rW3XXd7NmzXLuuedm2LBhWbVq1W7Vc/755yfZHLp885vfzPDhw3PHHXfkySefbPDPYMOGDbniiity3HHH1d3OVxskjRkzJjNnzsyRRx6ZK6+8Mr169ar7fNq1a5cLL7wwZ511VtatW5dHH310i+P26dMnl156afr27VsXPiVJ+/bt87nPfS6DBg3Khg0b8uc///k9a3zzzTdz9dVXZ8GCBTnxxBPzL//yL1uFezNmzEiSDBs2LL169ap7L02bNk23bt0ybNiw9O/ffzc/JQDYeQIoANhFU6ZMyeLFi9OhQ4ft/uB2yCGHpEePHtm4cWOmTJmyzTHnnXfeNvso1R5z3rx5W2wfP358ampqcvDBB+fkk0/ear+WLVvmzDPP3NW3s10f//jHt7n9xBNPTLL5FrKd9e7A6sMf/vA2b0scPHhwDjrooNTU1GwVvtXXpz71qXz6059O8+bNs2nTpkybNi2/+93v8h//8R+59NJL8/Wvfz2PPfZYXa+obWnatGmGDBmy1fZmzZrl2GOPTbL1d1b7Pvr167fN1TqHHXZYBgwYkCR55pln6raX+vOq1atXr/Ts2XOr7UcccUQOPvjgJFu+502bNmXChAl1dW+rp9Y555yz3dtS38ugQYPyxS9+se42zNdffz2///3vc/PNN+erX/1qLrvssjzwwANZu3btbh3/3Y4//vjtrrCqfVri2WefvcWqtXer7Qk2adKkXTpvbX+radOm7XDcrFmzcs011+Stt97KKaeckm984xvbrKW2v9j2gnAAaCxuwQOAXVT7g+HSpUvzT//0T9sdt3r16iTJW2+9tc3Xt9fA+aCDDkqSrVaJvP7660k232a1vQbg2woLdkfr1q3TsWPHXapvRxYuXFj3efTt23ebY8rLy9O7d+889dRTdT2uGkpZWVk+/vGP5+yzz86ECRMyZcqUzJw5M2+++WY2bdqUN954I7fffnvGjh2bb3/729sMSLp27brdW8dqP5OVK1dusb32O+vTp892a+vbt2+efvrpurFJ6T+vWjtqMn7QQQflrbfe2uI6WLRoUdasWZNk+9diZWVljjjiiEydOnW3aho8eHBOOeWUuj5Ur732WubNm5fq6uosXrw4v/71r/OXv/wl11xzTb1uLdtWb6sk2bhxY1577bUkyS9/+cvceeed2xxX+xS+bc3/lStX5rHHHsvEiRNTVVWV1atXb/XUvh0FRlOnTs3vfve7rFmzJmeddVa+8IUvbPe/Cccff3xmzJiRO++8M/Pnz8+AAQPSo0ePBlstCQA7SwAFALto2bJlSTb3gVm+fPl7jl+3bt02t2+vEXPtKoaNGzdusb22gfKBBx643XPVBiH1taMm0bU/uP51fTuyYsWKuv+/oxprV9XUvteG1rJly3zoQx/Khz70oSSbQ7SJEyfmgQceyLx58/Lqq6/m7rvv3maD9R19Jtv7zmrf986+55qampSVle0xn9eOejVt6z2/u+4dhT87uoZ3RrNmzTJgwIC61WPr1q3Lyy+/nN/+9reZNm1a3nzzzfzsZz/Lt771rd0+x7ub3b/bypUr61bK/XXguC3r16/f4s9vvPFGvvOd72zx344WLVrUzavahvs7WsVV+9TCvn375qKLLtrh+f/u7/4us2bNynPPPZfHH388jz/+eJo0aZIjjzwy/fv3zxlnnFF3SykAFEkABQC7qHalQv/+/fPNb36zxNXsfWqf6LYnaNWqVU4++eT069cvV1xxRebNm5cxY8bkwgsvrOuV0xDq8573pM9rT1VZWZkTTzwxH/zgB/Pd7343kyZNynPPPZd33nlniz5Lu2J733/tk/2S5Ic//GG6d+++S8f9yU9+kuXLl+d973tfPv3pT6dnz55bBH0vv/xyrrvuuh0eY+DAgRk7dmwmT56cxx9/fIdPsGvatGkuv/zyTJ8+PePHj8/UqVMza9asTJ8+PdOnT8/DDz+cK6+8MocffvguvQ8A2FV6QAHALqpd2fHGG2806nlrf5De0a05e2qfl3evJvnrptXvVnu70u6GBrurWbNmdT17Vq1atcVKnvqofd87anT+7vdcexvVnv55bc+7665dKbgtO3qtPsrKynL66acn2RwUFdGcvXXr1nXh1K7+N2DJkiV57bXXUl5enuHDh+e4447bapXZzqyqPPPMM3PhhRcmSf77v/87TzzxxHvu06NHj/zDP/xDvvvd7+aOO+7IP//zP6d9+/ZZsWJFbrvttl16HwCwOwRQALCLanvDVFVVbdV0ukjve9/7kmzuQfXuVRjvtqO+OtvrEdMYOnbsWHebz/aasm/atCmvvPJKks1Nrhvbu/s+bat59u6o/c62956TZPLkyVuMTer/eZXquz7kkEPqblV89dVXtzlm/fr1hfWsSra8bfDd3+O7VzRtb/7sjIqKirreWLv6JMjawPCAAw7Y7q2VO9u0/CMf+Ug+85nPpKamJrfddluefPLJna6jefPmOfnkk3PxxRcn2dzQvCEatwPAjgigAGAX9e3bN+3bt0+SjBw5cqvmwe+2Mz1idla/fv1SVlaWt956a4snptVavXp1/vjHP253/9qnYe1K8/CGUlZWVvd0v1GjRm2zL9YTTzyRt99+O2VlZXW9fRrCihUrMnv27B2O2bRpU91n2qFDh7Ru3bpBzl37Pl588cUtmozXmjdvXt0T7E466aS67fX9vEr1XZeXl6dfv35JNte9racK/uEPf9itsKO6uroucNuRp556KsnmVW1dunSp2/7uHl71/Vxqe4iNGzeuLkDcnnf/N6D2e1m+fPk2VzrNnTs3Tz/99E7Xcd5552Xo0KGpqanJT37yk4wdO3arMTt6smNt36mampodjgOAhiCAAoD/38aNG7NixYod/q+6ujoVFRX5/Oc/n7KyskyaNCnXX399ZsyYUbeqYuPGjZk1a1buvPPOfOUrX2mw+jp16lR3m9itt96ap556qq4B9BtvvJHvf//7WzU8freuXbsmSSZOnFiSW/U+/vGPp7KyMkuXLs2//du/paqqKsnmHkd/+tOfcscddyRJBg0alE6dOjXYeZctW5bLL7881113XUaPHr3FLW3r16/PlClT8t3vfrfu6Ybnnntug5174MCBdT2CfvjDH2bSpEl118nLL7+c73//+9m4cWMOO+ywnHrqqVvsW5/Pq5Tf9XnnnZeKiorMnTs3N954Y93nvX79+jz22GO56667dqvpdXV1dUaMGJFvf/vb+cMf/pCqqqq6z7K6ujozZ87MTTfdVBfCDB48eItVba1ataprfj569Oh6vcfBgwfnAx/4QGpqanLDDTdk1KhRWwRNy5cvz1NPPZURI0Zk1KhRddsPPfTQHHzwwampqcmPfvSjulsEq6urM27cuFx33XU7bPy+Leeff34+8YlPZNOmTfnxj3+c8ePHb/H6N77xjdx111157bXX6kKmmpqavPbaa3XX0JFHHtlgoSsAbI8m5ADw/5s2bdp7PlHqmmuuSZ8+fXLiiSfmi1/8Yn72s59l8uTJ+fa3v52mTZumefPmWbVq1Q5XRdXH5z//+cybNy+zZ8/Of/7nf+anP/1pmjZtmtWrV6d58+a5+OKL85//+Z/bvIWsf//+ueuuuzJ//vx88YtfTNu2beueZHbLLbcUUu+7derUKf/8z/+c//iP/8iUKVPyta99La1atcratWvrgrSjjz56m0+gq48mTZqkrKwsL7/8cl5++eUkmxszN2vWbKuVMGeddVaGDBnSYOeuqKjIN77xjVx33XVZvHhxrr/++rpQpHZVU/v27fONb3yj7ruoVZ/Pq5TfddeuXfNP//RPufXWW/P888/n+eef36LuAQMGpFmzZnnyySe3es87UlZWlvLy8syYMSMzZsxIsvm7bdGiRVatWrXFbXX9+/fPP/zDP2x1jDPOOCP3339/fvnLX+aee+6p61k1ZMiQfPjDH97pWioqKnL55Zfn3//93zNt2rT84he/yMiRI9OyZcts3LhxixVeffr0qfv/5eXl+cd//MfceOONmTJlSr761a+mRYsW2bBhQ6qrq9O+ffsMGzYsN998807XkiTDhg1LdXV1Hn744fzoRz/KN7/5zZxwwglJNodhDz30UB566KGUl5enZcuWWbNmTd011KZNm3zxi1/cpfMBwO4QQAHAbho0aFD69OmTUaNG5eWXX87ixYuzevXqtGnTJl27ds0JJ5zQoLeSJZtXcVx33XV56KGH8vTTT2fJkiVp2rRpTj755Hzyk5+sW+GwrRUmBxxwQK655prcd999mTZtWlasWFFYULY9J554Ym688cb89re/zaRJk7J06dJUVlamW7duOe200zJ48OAGffpcsnnVyS233JLnn38+U6dOzZw5c/LWW29lzZo1adGiRTp06JAePXrk9NNPr+vv1ZA6deqUH/7wh3nkkUcybty4LFq0KEly2GGHpX///vnoRz9ad2vWX9vdz6vU3/WgQYPSuXPnPPDAA5k+fXqqq6vTtWvXDBo0KOecc07+/d//Pcm2r9PtqayszH/913/l+eefz5QpUzJ79uy6OVdZWZmDDjoo73//+3PKKafkuOOO2+Yxzj///FRWVuapp57KggUL6lZn7c4teW3bts13vvOdjB07Nn/5y18ya9asrFy5MhUVFTn00ENz1FFH5W/+5m9y9NFHb7Ff//79c8011+SBBx7IjBkzUl1dnQ4dOuTEE0/Mxz/+8cyZM2eXa0mSf/iHf0h1dXVGjRqVG2+8MZdffnmOPfbYXH755Zk4cWKmTp2aJUuWZPny5amoqEjXrl1z/PHH58Mf/nDatm27W+cEgF1RVlOfLowAwB7liSeeyK233prevXtnxIgRpS4HtlJTU5NLL700b731Vt2KQgBg36cHFADsI2pXPyTJMcccU+JqYNuefvrpvPXWW2nRokXe//73l7ocAKCRuAUPAPYiS5Ysyb333ptBgwblfe97X5o3b56amprMnDkzd955Z+bOnZuWLVtm8ODBpS6V/dgDDzyQFi1apF+/fjnooINSXl6elStX5sknn8xdd92VJDn77LO3aBIOAOzbBFAAsBeprq7O6NGj657i1apVq6xfvz4bNmxIsrm59le+8pW0a9eudEWy33vjjTfy1FNP5Y477khFRUUqKyuzevXqukbhRx99dM4///wSVwkANCY9oABgL7Ju3br88Y9/zEsvvZSqqqqsWLEiNTU1Ofjgg9OnT5989KMfTefOnUtdJvu5adOm5S9/+UteffXVLF26NKtXr07Lli3TrVu3nHrqqfnQhz6UJk2alLpMAKARCaAAAAAAKJQm5AAAAAAUSgAFAAAAQKEEUAAAAAAUSgAFAAAAQKEEUAAAAAAUSgAFAAAAQKEEUAAAAAAUSgAFAAAAQKEEUAAAAAAUSgAFAAAAQKEEUAAAAAAUSgAFAAAAQKEEUAAAAAAU6v8DUDnj018hmQgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 315,
       "width": 592
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline \n",
    "%config InlineBackend.figure_format = 'retina'\n",
    "plt.style.use('ggplot')\n",
    "plt.rcParams['figure.figsize'] = (10,5)\n",
    "\n",
    "kobe_streak_counts = pd.Series(kobe_streak).value_counts().sort_index()\n",
    "\n",
    "kobe_streak_counts.plot(kind = 'bar', color = 'crimson')\n",
    "plt.xlabel('Length of Shooting Streaks')\n",
    "plt.show(); "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### We've shown that Kobe had some long shooting streaks, but are they long enough to support the belief that he had hot hands? What can we compare them to?\n",
    "\n",
    "#### To answer these questions, let's return to the idea of independence. Two processes are independent if the outcome of one process doesn't effect the outcome of the second. If each shot that a player takes is an independent process, having made or missed your first shot will not affect the probability that you will make or miss your second shot.\n",
    "\n",
    "#### A shooter with a hot hand will have shots that are not independent of one another. Specifically, if the shooter makes his first shot, the hot hand model says he will have a higher probability of making his second shot.\n",
    "\n",
    "#### Let's suppose for a moment that the hot hand model is valid for Kobe. During his career, the percentage of time Kobe makes a basket (i.e. his shooting percentage) is about 45%, or in probability notation\n",
    "\n",
    "#### P(shot 1 = H) = 0.45\n",
    "\n",
    "#### If the shots are not intependent then we can say for example that P(shot 2 = H|shot 1 = H) = 0.60.\n",
    "\n",
    "#### But if the shots are independent then it must be P(shot 2 = H|shot 1 = H) = 0.45\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Simulations in Python"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tails\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "outcomes = np.array(['heads', 'tails'])\n",
    "print(np.random.choice(outcomes))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "sim_fair_coin = np.random.choice(outcomes, size = 100, replace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[['heads' '53']\n",
      " ['tails' '47']]\n"
     ]
    }
   ],
   "source": [
    "unique, counts = np.unique(sim_fair_coin, return_counts = True)\n",
    "print(np.asarray((unique, counts)).T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[['heads' '25']\n",
      " ['tails' '75']]\n"
     ]
    }
   ],
   "source": [
    "sim_unfair_coin = np.random.choice(outcomes, size = 100, replace = True, p = [0.2, 0.8])\n",
    "unique, counts = np.unique(sim_unfair_coin, return_counts = True)\n",
    "print(np.asarray((unique, counts)).T)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise: Create a random player (Independent Shooter) who has Kobe's shooting percentage (45%) and\n",
    "## a) Make a bar plot of his shooting streak.\n",
    "## b) Count every different length streak of Kobe's and The independent Shooter.\n",
    "## c) Repeat the experiment \n",
    "## d) What are your thoughts of Kobe's shoots? (Independent or not)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Simulating the Independent Shooter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Simulating a basketball player who has independent shots uses the same mechanism that we use to simulate a coin flip. To make a valid comparison between Kobe and our simulated independent shooter, we need to align both their shooting percentage and the number of attempted shots."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "outcomes = np.array(['H', 'M'])\n",
    "sim_basket = np.random.choice(outcomes, size = 133, replace = True, p = [0.45, 0.55])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['H' 'M' 'M' 'H' 'H' 'M' 'M' 'M' 'M' 'H' 'H' 'H' 'M' 'H' 'H' 'M' 'M' 'H'\n",
      " 'H' 'H' 'M' 'M' 'H' 'M' 'H' 'H' 'H' 'M' 'M' 'M' 'M' 'M' 'M' 'H' 'M' 'H'\n",
      " 'M' 'M' 'H' 'H' 'H' 'H' 'M' 'H' 'M' 'M' 'H' 'M' 'M' 'H' 'M' 'M' 'H' 'M'\n",
      " 'H' 'H' 'H' 'H' 'M' 'H' 'H' 'H' 'M' 'H' 'M' 'H' 'M' 'M' 'M' 'M' 'M' 'M'\n",
      " 'H' 'M' 'H' 'M' 'M' 'M' 'M' 'H' 'H' 'M' 'M' 'H' 'M' 'H' 'H' 'M' 'H' 'M'\n",
      " 'M' 'M' 'H' 'M' 'M' 'M' 'M' 'H' 'M' 'H' 'M' 'M' 'H' 'M' 'M' 'H' 'H' 'M'\n",
      " 'M' 'M' 'M' 'H' 'H' 'H' 'M' 'M' 'H' 'M' 'M' 'H' 'M' 'H' 'H' 'M' 'H' 'M'\n",
      " 'M' 'H' 'M' 'M' 'M' 'H' 'M']\n"
     ]
    }
   ],
   "source": [
    "print(np.array(kobe['basket']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['M' 'M' 'H' 'M' 'M' 'H' 'H' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'H' 'H' 'M'\n",
      " 'M' 'M' 'M' 'H' 'M' 'H' 'H' 'H' 'M' 'H' 'M' 'H' 'M' 'M' 'H' 'H' 'M' 'H'\n",
      " 'M' 'H' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'H' 'H' 'H' 'H' 'H' 'M' 'H' 'H' 'M'\n",
      " 'H' 'H' 'M' 'M' 'H' 'M' 'M' 'M' 'H' 'H' 'M' 'M' 'M' 'H' 'M' 'H' 'M' 'H'\n",
      " 'M' 'M' 'M' 'M' 'M' 'M' 'H' 'H' 'M' 'H' 'H' 'H' 'M' 'H' 'H' 'M' 'H' 'H'\n",
      " 'H' 'M' 'M' 'H' 'M' 'M' 'H' 'M' 'M' 'M' 'H' 'M' 'M' 'H' 'H' 'M' 'M' 'M'\n",
      " 'M' 'H' 'H' 'H' 'M' 'H' 'H' 'H' 'H' 'M' 'H' 'M' 'M' 'H' 'H' 'M' 'H' 'M'\n",
      " 'H' 'M' 'H' 'M' 'H' 'H' 'M']\n"
     ]
    }
   ],
   "source": [
    "print(sim_basket)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare the random player'streak with Kobe's"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 3, 1, 1, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 5, 2, 2, 0, 1, 0, 0, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 2, 3, 2, 3, 0, 1, 0, 1, 0, 0, 1, 0, 2, 0, 0, 0, 3, 4, 1, 0, 2, 1, 1, 1, 2]\n"
     ]
    }
   ],
   "source": [
    "random_player_streak = calc_streak(sim_basket)\n",
    "print(random_player_streak)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAJ3CAYAAACjsikRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAABYlAAAWJQFJUiTwAABOF0lEQVR4nO3de5iXdZ0//ucMA4Oc5QwimBZy0tSERTwkuJ4oWytDanetLcvSatsOsm4eSK3WWq2rtHRtNdrUUlMzJbPWwAMKeEDkIOAJkOGoAnJmYH5/8Jv5Sgw4OHMz4Dwe19V1xX2/7/t+fe7P27mYJ+/7dZdUVVVVBQAAAAAKUtrYBQAAAADw7iaAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQZY1dQJEqKioau4Qmo3PnzkmSFStWNHIlUBzznKbAPKcpMM9pCsxzmgLzfM/r2bPnOz7WCigAAAAACiWAAgAAAKBQAigAAAAACiWAAgAAAKBQAigAAAAAClXIW/AefvjhXHvttUmS8847LyeddNIOY+bMmZO77rorc+fOzebNm9O9e/cMHz48p59+ekpL5WIAAAAA7xYNHkCtWLEiN910U1q2bJkNGzbUOmbq1Km5+uqr07x58wwbNixt2rTJU089lXHjxmXOnDn5+te/3tBlAQAAANBIGnSpUVVVVX7+85+nbdu2Ofnkk2sds27dutxwww0pLS3N2LFj86UvfSn//M//nB/84Afp27dvnnjiiTz22GMNWRYAAAAAjahBA6g//vGPmTFjRr70pS+lvLy81jFPPPFEVq9enWHDhuWQQw6p2d6iRYuMHj06SfLggw82ZFkAAAAANKIGC6BeffXV3HLLLTn99NMzYMCAnY6bMWNGkuSII47YYV///v1TXl5e0xcKAAAAgH1fg/SA2rJlS6699tp07tw5n/rUp3Y5dvHixUmSnj177rCvWbNm6dq1axYuXJilS5emV69euzzXmDFjat1+1VVXJUk6d+5cl/JpAGVl26aSe867mXlOU2Ce0xSY5zQF5jlNgXm+b2mQFVB33nlnXn755VxwwQVp0aLFLseuW7cuSdKqVata91dvrx4HAAAAwL6t3iugXnjhhdx9990544wz0rdv33oXVFVVVeex1SuddmbFihX1LYc6qk6c3XPezcxzmgLznKbAPKcpMM9pCszzPa+2p9nqql4roLZs2ZKf/vSn6dGjR84+++w6HfN2K5zWr1+/3TgAAAAA9m31WgG1YcOGmp5O//iP/1jrmBtuuCE33HBDRo4cmc985jPp0aNHXnzxxVRUVOTggw/ebuyWLVuybNmyNGvWLN26datPaQAAAADsJeoVQDVv3jwjRoyodd/LL7+cl19+Of369UvPnj1rHs8bNGhQHn300UybNi3HHXfcdsfMnj07GzduTP/+/dO8efP6lAYAAADAXqJeAVSLFi3yxS9+sdZ9t99+e15++eV88IMfzEknnVSzfejQobnlllsyadKknH766TnkkEOSJJs2bcpvfvObJMkpp5xSn7IAAAAA2IvUuwn57mrVqlXOO++8XHPNNRk7dmyOPfbYtGnTJk8++WQqKioydOjQDBs2bE+XBQAAAEBB9ngAlSRDhgzJ2LFjc/fdd2fy5MnZtGlTunfvnnPOOScjR45MSUlJY5QFAAAAQAFKqqqqqhq7iKJUVFQ0dglNhtdf0hSY5zQF5jlNgXlOU2Ce0xSY53tez5493/GxpQ1YBwAAAADsQAAFAAAAQKEEUAAAAAAUSgAFAAAAQKEa5S147NwBNx7Q2CU0OYs+v6ixSwAAAIB3NSugAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQgmgAAAAACiUAAoAAACAQpU1xEl+/etf56WXXsrixYuzevXqtGjRIl26dMngwYNz2mmnpW3btjVjly1bli9/+cs7PdewYcPyta99rSHKAgAAAGAv0CAB1P3335+DDz44hx12WNq3b5+NGzdm3rx5ueOOO/KXv/wl3/3ud9O5c+ftjunTp08GDx68w7l69+7dECUBAAAAsJdokABq3LhxadGixQ7bb7vtttx999255557cu65526376CDDsqoUaMa4vIAAAAA7MUapAdUbeFTkhxzzDFJksWLFzfEZQAAAADYBzXICqideeqpp5Jse9zub73xxhv585//nDfffDNt27ZN3759ax0HAAAAwL6tQQOoe++9Nxs2bMi6devy0ksv5fnnn0+fPn1y5pln7jB2+vTpmT59+nbbBg4cmAsuuGCHflE7M2bMmFq3X3XVVUlS5/PQtJkn1FVZ2bYfmeYM72bmOU2BeU5TYJ7TFJjn+5YGDaD+8Ic/ZNWqVTV/PuKII3L++eenXbt2NdvKy8vz8Y9/PIMHD063bt2SJPPnz88dd9yRmTNn5vLLL88PfvCDtGzZsiFLAwAAAKCRlFRVVVU19ElXrlyZuXPn5pZbbsmGDRsyZsyYHHzwwbs8ZsuWLbn00kszb968fOYzn8nIkSPrXUdFRUW9z7GnHXDjAY1dQpOz6POLGrsE9hHV/7KyYsWKRq4EimOe0xSY5zQF5jlNgXm+5/Xs2fMdH9sgTcj/VocOHTJkyJBcfPHFefPNN3Pddde97THNmjXLiBEjkiSzZs0qoiwAAAAAGkEhAVS1Ll26pFevXlm4cGFWr179tuOrH9XbuHFjkWUBAAAAsAcVGkAl2952lySlpW9/qXnz5iVJTW8oAAAAAPZ99Q6gFi1alJUrV+6wfevWrbntttuyatWqHHrooWnTpk2SbSFTZWXlDuNnzJiR+++/P0ly/PHH17csAAAAAPYS9X4L3rRp0/LrX/86/fv3T7du3dK2bdusXLkys2fPztKlS9OhQ4ecd955NeNvueWWLFy4MAMHDkzHjh2TJAsWLMiMGTOSJGeffXYOPfTQ+pYFAAAAwF6i3gHUYYcdlpNOOilz5szJ/Pnzs3bt2pSXl6dnz545/vjjM3LkyJrVT0lywgknZMqUKXnxxRfzzDPPZMuWLWnfvn2OOeaYnHbaaenfv399SwIAAABgL1LvAKp3794599xz6zx+xIgRNW+7AwAAAODdr/Am5AAAAAA0bQIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUGUNcZJf//rXeemll7J48eKsXr06LVq0SJcuXTJ48OCcdtppadu27Q7HzJkzJ3fddVfmzp2bzZs3p3v37hk+fHhOP/30lJbKxQAAAADeLRok6bn//vuzcePGHHbYYRk5cmSOP/74NGvWLHfccUe++c1vZsWKFduNnzp1ai677LLMmjUrQ4YMyamnnprKysqMGzcuP/7xjxuiJAAAAAD2Eg2yAmrcuHFp0aLFDttvu+223H333bnnnnty7rnnJknWrVuXG264IaWlpRk7dmwOOeSQJMnZZ5+dyy+/PE888UQee+yxHHvssQ1RGgAAAACNrEFWQNUWPiXJMccckyRZvHhxzbYnnngiq1evzrBhw2rCp+pzjB49Okny4IMPNkRZAAAAAOwFCm229NRTTyVJ+vTpU7NtxowZSZIjjjhih/H9+/dPeXl5TV8oAAAAAPZ9DfIIXrV77703GzZsyLp16/LSSy/l+eefT58+fXLmmWfWjKleDdWzZ88djm/WrFm6du2ahQsXZunSpenVq1dDlgcAAABAI2jQAOoPf/hDVq1aVfPnI444Iueff37atWtXs23dunVJklatWtV6jurt1eN2ZcyYMbVuv+qqq5IknTt3rlvhNGnmCXVVVrbtR6Y5w7uZeU5TYJ7TFJjnNAXm+b6lQQOoG2+8MUmycuXKzJ07N7fcckvGjBmTMWPG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AACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAAolgAIAAACgUAIoAAAAAApVVt8TvPnmm5kyZUqefvrpLFiwIK+//nrKysrSu3fvDB8+PCeeeGJKS3fMuebMmZO77rorc+fOzebNm9O9e/cMHz48p59+eq3jAQAAANg31TuAevzxx/OLX/wi+++/fwYOHJjOnTtn5cqVmTJlSq6//vo888wz+frXv56SkpKaY6ZOnZqrr746zZs3z7Bhw9KmTZs89dRTGTduXObMmZOvf/3r9S0LAAAAgL1EvQOonj175sILL8xRRx213cqlT33qU7nooosyefLkTJ48OUOHDk2SrFu3LjfccENKS0szduzYHHLIIUmSs88+O5dffnmeeOKJPPbYYzn22GPrWxoAAAAAe4F6P+s2aNCgHH300Ts8NtehQ4ecfPLJSZJZs2bVbH/iiSeyevXqDBs2rCZ8SpIWLVpk9OjRSZIHH3ywvmUBAAAAsJcotNlSWdm2BVZvDadmzJiRJDniiCN2GN+/f/+Ul5fX9IUCAAAAYN9X70fwdmbLli2ZOHFiku3DpsWLFyfZ9uje32rWrFm6du2ahQsXZunSpenVq9curzFmzJhat1911VVJks6dO7+T0mlizBPqqjpUN2d4NzPPaQrMc5oC85ymwDzftxS2AuqWW27JwoULc+SRR24XQK1bty5J0qpVq1qPq95ePQ4AAACAfVshK6DGjx+f++67LwcccEC+8pWv7NaxVVVVdR5bvdJpZ1asWLFb16ZpMk+oq+p/WTFneDczz2kKzHOaAvOc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9dfz0Y9+NMccc0yefPLJ3H777bnuuuuy33775bvf/W46d+6cJLnttttyzz335I9//GPOOuusRq4c6q5ly5Y5+eSTU15evsO+qqqq/O53v8t73vOefOADH2iE6qBhrFy5Mhs2bKj589atW/Pzn/88mzZtyoc//OGcfPLJad++febMmZObbropTz/9dB555JEcf/zxjVg1tRFAUWdTp07NoEGDcs455+xyXMuWLfPpT386r7zySqZMmSKAAtjLTJgwIa1atcr3v//9mqDpwx/+cH7961/n/vvvzxVXXJFLL7007dq1a+RK4Z2bOnVqDjnkkIwePTpJ0qdPn0yfPj3Tpk3LN7/5zZrwKUlGjx6dSZMm5emnnxZAsc+44IILcvPNN2fKlCk5//zz069fvx3GVAdQn/jEJxqhQijG7Nmzs2zZspx88sn553/+55rtRxxxRC655JL827/9Wx5++GEB1F5IAEWdrVy5Mscee2ydx7/vfe/L3LlzC6wIinHttdfu1vg5c+YUVAkUY8GCBRk6dOh2q5xKS0tzzjnnpHPnzhk3blyuuOKKXHbZZXr5sc9avnz5Dr98HHzwwXn++edz6KGHbre9pKQkAwYMyJQpU/ZkiVAvJ5xwQgYMGJCf//znGTt2bEaOHJlPfvKTad68eWOXBoWaP39+kuS0007bYV+XLl1y1FFHZfbs2Xu6LOpAAEWdtWnTJhUVFXUev2jRIr+4sE965JFHGrsEKFRlZeVOH7EbOXJkSktLc/PNN+fKK6/MJZdcsoerg4axadOmHR5Lqn7bXW2r+9q3b7/dIx6wL+jcuXMuueSSjB8/PrfeemueeeaZXHDBBXnve9/b2KVBYapfhtW1a9da93fr1i1PPvnkniyJOhJAUWfvf//7M3HixPzpT3/KqaeeusuxDzzwQJ588smceOKJe6Y4aEAtW7ZMp06dcu6559Zp/D333JNnn3224Kqg4XTs2DErVqzY6f7TTjstW7Zsya9+9at897vf3WG1COwL2rZtm9WrV2+3rby8fKfh65o1azQgZ581cuTIHH744bn22mtzySWX5IwzzsioUaMauywoRPUj1Bs2bEiLFi122L9+/fpa+6LR+ARQ1Nno0aPzzDPP5Kabbsp9992Xww8/vOYteEmybt26LF68ONOnT8+yZcvSvn37d/x2DmhMBx10UF555ZUMGDCgTuMnTJhQbEHQwHr37p2ZM2fucsyHPvShbN68ObfddltefvnlPVQZNJyePXvm1Vdf3W7bRz7ykXzkIx+pdfzSpUvTqVOnPVEaFKJXr1753ve+lzvuuCP33HNPnnrqqcYuCRrM/fffX/N37s2bNydJFi5cmIEDB+4wdvny5enQocMerI66EkBRZx07dsyVV16ZX/ziF5k+fXr+8pe/7HTs4YcfnnPPPTcdO3bcgxVCw+jTp0+ef/75LFmyJN27d2/scqDBHXnkkZk6dWqefvrpHHXUUTsdd+aZZ6aysjJ33HHHHqwOGsZ73vOejB8/PpWVlSkr2/VfeVeuXJlZs2bl5JNP3kPVQTFKS0tz9tln5wMf+EB++tOfNnY50CCqVzxVVVUlScrKytK5c+fMnj17hwBqzZo1mTFjRv7u7/5uj9fJ2yupqv4WYTcsW7YsM2bMSEVFRdatW5dkW1+Fnj17ZuDAgenWrVsjVwjv3BNPPJG77rorn/nMZ+q0Cmrq1Kl55ZVXvGGGfcaaNWvy+OOP1/zMfjsTJkzI8uXLzXHetSoqKjJt2rQcdthhOfDAAxu7HGgQW7duzYYNG1JWVlbrY0rwbvTqq6/m8ccfz8CBA+v8NAN7jgAKAAAAgEKVNnYBAAAAALy7CaAAAAAAKJQACgAAAIBCCaAAAAAAKJQACgAAAIBCCaAAAAAAKJQACgCoMXPmzIwaNSoXXHBBY5eyg8rKytx55535t3/7t/zjP/5jRo0alVGjRhV+3QkTJmTUqFEZO3Zs4dfak5YtW7bH7iEN44ILLsioUaMyc+bMxi4FAHZbWWMXAACN7brrrsvEiRMzYMCAd13I8FZTpkzJK6+8koEDB2bgwIGNXc5u+8UvfpGHHnooSVJeXp727dvv9jkmT56ciRMn5uWXX86qVavSvHnzdOjQIZ07d06/fv0ycODA9O/fPyUlJQ1d/h61r3/Xb+e5557LQw89lHnz5uWNN95IaWlpOnTokI4dO+bQQw/NgAEDMmjQoJSV/b+/6q5duzb3339/kgjdAKARCKAAoImYOnVqJk6cmCT7XCixbt26mtq/8Y1v5O/+7u926/iNGzfmmmuuyTPPPFOzraysLKWlpVmyZEkWL16c5557LnfccUduvvnmtG7dukHr39Pq8l2XlZWlZ8+ee7Ksetu6dWv++7//uyaITJJmzZqlvLw8y5cvz9KlSzN79uzcc889+cEPfpCDDjqoZtzatWtz5513JhFAAUBjEEABAHu9ioqKbNmyJW3btt3t8ClJxo0bl2eeeSbNmjXLRz7ykfz93/99OnfunJKSkmzatCkvvfRSnnzyyZrQpino2LFjfvzjHzd2Gbvl97//fU34dMopp+T0009Pjx49UlpamsrKysyfPz9PP/10JkyY0LiFAgA7EEABAHu9TZs2JUlatmy528euW7euJpD45Cc/mY985CPb7W/RokX69euXfv36ZfTo0Skt1SJzb1RVVZUHHnggSXLqqafmc5/73Hb7y8rKcsghh+SQQw7Jxz/+8WzdurUxygQAdkIABQD1sGDBgtx3332ZOXNmVq5cmebNm+fAAw/M8ccfnxEjRmzXgybZ1vj5y1/+cpLk9ttvz4IFC3LXXXdl5syZWbduXbp06ZLjjjsuZ5555g7HVtu0aVPuueeePPbYY1mxYkVat26dAQMG5GMf+1hatmy53fmTbY3Fv/Od79Qcf+edd9Y8ilSteuzfev7553PPPfdk3rx52bBhQ3r27JmTTjopp5566jvuk7RkyZLce++9mT59et544420aNEivXv3zgknnJDhw4dvFwBNmDAhP/vZz2r+vHz58u0enzr//PNz4okn7vJ6FRUVqaysTJJ84AMf2OXYnd3zt3ryySdz//335+WXX86WLVvSu3fvnH766TnuuON2esy6dety3333ZerUqVmyZEmSpFu3bhkyZEg+/OEPp1WrVjs9dnfu1+581387F9+qui/aWWedlbPOOit//OMfM2HChCxevDjNmzfPoYcemk984hM55JBDdlr3888/n7vvvjtz585NZWVlunfvnhNPPDGnn356fv7zn9ecv66Pw7355pt54403krz991haWrrdfRk7dmxmzZpV8+e/veZb66gee/7552fw4MG5++678+STT2bFihUpKyvLL3/5y5rjKisr85e//CWTJk3KwoULs3HjxnTo0CGDBg3KRz7ykfTq1WuH2iorKzN9+vRMmTIlL774Yl5//fVs2LAh7du3T79+/fLhD384Bx98cJ3uyVutWbMm3//+9zNv3rz06dMnF198cU2ftFWrVuXee+/NtGnTsmzZsmzdujXt2rVLp06dcthhh2XEiBHp0qXLbl8TAHaHAAoA3qEHHnggN998c6qqqpJsa4y9YcOGzJkzJ3PmzMnjjz+ef//3f095eXmtxz/77LP54Q9/mE2bNqVVq1aprKxMRUVFbr/99rz00ku58MILdzhm3bp1ufzyy/PSSy8l2RaYbNy4MZMmTcpTTz2V8847b4djysrK0r59+6xbty6bN29OeXl5nVYSTZgwIddff32qqqqy3377ZfPmzZk/f35uuummLFmyJJ/5zGd2425t89RTT+Waa67J5s2bkyStWrXKhg0bMnv27MyePTuTJk3Kt771rZr6WrRokfbt26eysjJr165NSUlJ2rVrV3O+Fi1a7Nb1X3/99RxwwAG7XXe1O++8M7fffntKSkqy3377ZePGjZk3b17mzZuXVatW5UMf+tAOxyxZsiRXXHFFli9fniQ182HBggVZsGBBJkyYkEsuuSQ9evTY4djdvV/v9Lvema1bt+Y///M/M23atDRr1izNmzfP2rVr8/TTT+e5557LZZddlr59++5w3MSJE/Ozn/2s5r+N1q1b59VXX824ceMye/bs7Lfffu+4pmTb97g72rRpk7Zt2+bNN99Mkh0a2Nd2j1avXp1///d/z9KlS9O8efMdwsk33ngj3/ve9zJ//vwkSUlJSVq2bJkVK1ZkwoQJeeyxx/LVr351h0dGn3322Vx11VU1f66eDytWrMijjz6axx9/PF/60pdywgkn1PnzrVy5MldeeWUWLFiQ973vfbnooovSpk2bJNtC24svvrgmvCstLc1+++2X119/Pa+99lrmzp2b/fffP6ecckqdrwcA74QACgDegalTp+amm25KeXl5Pvaxj2XEiBE1QcmsWbNy0003ZebMmRk3bly+8IUv1HqOH//4x/nABz6Qf/zHf0zXrl2zYcOGPPDAA7ntttvy5JNP5umnn85RRx213TE33XRTXnrppZSXl+fzn/98hg0blrKysixcuDDXX399/ud//meH6xx66KG58cYba1a1nHHGGW+76mT16tX57//+75xyyin52Mc+lg4dOmTt2rX57W9/mwceeCB//OMfc9JJJ+XAAw+s8z1bsmRJfvzjH2fz5s0ZMGBAvvCFL6Rnz57ZvHlzJk6cmJtvvjnPPfdcfvnLX+aLX/xikmTYsGEZNmxYzcqezp0757rrrqvzNZPkwAMPTIsWLbJp06b8+te/zje+8Y107dp1t86RJPPnz8/zzz+fs88+O6eddlpat26dlStX5qabbsoTTzyRW2+9NR/84AdrfvFPtq12ufrqq7N8+fJ06tQpX/rSl3LYYYclSWbMmJGf//znWbFiRf7rv/4r//mf/5nmzZvX6369k+96V/70pz+lpKQkX/va1zJkyJCUlZVl/vz5+clPfpKFCxfm5ptvzve///3tjlm0aFFuuOGGVFVV5cgjj8znPve5dO3aNZs2bcr//d//5Ve/+tU7CsXatWuXLl26ZPny5fnd736X9773vendu3edjv3mN7+53YqvG2+88W2PufPOO9O6dev8x3/8Rw4//PCahvXJtu/1Bz/4QebPn5/+/ftn9OjRed/73peysrKsXLky9957b+67775ce+216dOnT7p3715z3pYtW+bEE0/MCSeckD59+qRt27ZJtgVQ9913X8aPH58bbrghAwYMSOfOnd+2zuXLl+eKK67IkiVLcthhh20XSCbJHXfckTfeeCPdu3fPl770pRx66KEpLS3N5s2bs3jx4kyaNCkdOnSo030EgPrQ5AAAdtPWrVtrHsP5yle+ko9+9KM1KyrKyspy+OGH5z/+4z9SXl6ev/71rzUrD/7WIYcckq997Ws1YUjLli1z5pln5sgjj0ySPPHEE9uNX7p0aR555JEkyXnnnZcTTjihZlXGgQcemG9/+9u7vSJoZzZu3JgTTjghn/3sZ2t+OW3dunU++9nPpnfv3qmqqsrkyZN365x33313Nm7cmG7duuWiiy6qeQNb8+bN8/d///f5l3/5lyTJX//615pf9BtCeXl5Td+nl19+OV/96ldzySWX5H//93/z+OOPZ8WKFXU6z9q1azNq1Kh8/OMfr3lLXocOHfLlL3857dq1y+bNm/PUU09td8ykSZMyf/78NGvWLBdddFEOP/zwlJSUpKSkJIcddlguuuiiNGvWLAsXLqz5bqs11v3628984YUX1gSdSdKnT59ccMEFSZIXX3yxZmXXW+uurKzMgQcemG9961s187tFixY5/fTTM3r06Kxdu/Yd1XPWWWcl2Ra6fPOb38yYMWNy88035+GHH27we7B58+ZcdNFFOeKII2oe56sOkiZOnJgXX3wxhxxySC6++OL079+/5v506NAh55xzTk455ZRs3Lgx999//3bnHThwYM4///wMGjSoJnxKks6dO+czn/lMhg8fns2bN+evf/3r29a4aNGiXHrppVmyZEmOPvro/Pu///sO4d68efOSJKNHj07//v1rPkvz5s3Tu3fvjB49OkOGDHmHdwkA6k4ABQC7aebMmVm+fHm6dOmy01/cunbtmr59+2bLli2ZOXNmrWPOPPPMWvsoVZ9z4cKF222fMmVKqqqq0qlTpxx77LE7HNeqVaucfPLJu/txduqjH/1orduPPvroJNseIaurtwZWH/rQh2p9LHHEiBHp2LFjqqqqdgjf6usTn/hEPvnJT6Zly5bZunVr5syZkz/84Q/50Y9+lPPPPz9f//rX88ADD9T0iqpN8+bNM3LkyB22t2jRIu9///uT7PidVX+OwYMH17pa58ADD8zQoUOTJI8//njN9sa+X9X69++ffv367bD94IMPTqdOnZJs/5m3bt2aqVOn1tRdW0+t0047baePpb6d4cOH54tf/GLNY5gvv/xy/vjHP+baa6/NV7/61VxwwQW56667smHDhnd0/rc68sgjd7rCqvptiaeeeup2q9beqron2PTp03frutX9rebMmbPLcS+99FIuu+yyvPbaaznuuOPyjW98o9ZaqvuL7SwIB4A9xSN4ALCbqn8xfOONN/L5z39+p+PWrVuXJHnttddq3b+zBs4dO3ZMkh1Wibz88stJtj1mtbMG4LWFBe9EmzZt0q1bt92qb1eWLl1acz8GDRpU65jS0tIMGDAgjz76aE2Pq4ZSUlKSj370ozn11FMzderUzJw5My+++GIWLVqUrVu35tVXX81NN92USZMm5dvf/natAUmvXr12+uhY9T1Zs2bNdturv7OBAwfutLZBgwblscceqxmbNP79qrarJuMdO3bMa6+9tt08WLZsWdavX59k53OxvLw8Bx98cGbPnv2OahoxYkSOO+64mj5UL7zwQhYuXJjKysosX748v/nNb/LII4/ksssuq9ejZbX1tkqSLVu25IUXXkiS/OpXv8ott9xS67jqt/DV9t//mjVr8sADD2TatGmpqKjIunXrdnhr364Co9mzZ+cPf/hD1q9fn1NOOSWf+9zndvoz4cgjj8y8efNyyy23ZPHixRk6dGj69u3bYKslAaCuBFAAsJtWrlyZZFsfmFWrVr3t+I0bN9a6fWeNmKtXMWzZsmW77dUNlPfff/+dXqs6CKmvXTWJrv7F9W/r25XVq1fX/P9d1Vi9qqb6sza0Vq1a5YMf/GA++MEPJtkWok2bNi133XVXFi5cmOeffz633XZbrQ3Wd3VPdvadVX/uun7mqqqqlJSU7DX3a1e9mmr7zG+te1fhz67mcF20aNEiQ4cOrVk9tnHjxjz33HP5/e9/nzlz5mTRokW58cYb861vfesdX+Otze7fas2aNTUr5f42cKzNpk2btvvzq6++mu985zvb/ezYb7/9av67qm64v6tVXNVvLRw0aFDOPffcXV7/H/7hH/LSSy/lySefzIMPPpgHH3wwzZo1yyGHHJIhQ4bkpJNOqnmkFACKJIACgN1UvVJhyJAh+eY3v9nI1ex7qt/otjdo3bp1jj322AwePDgXXXRRFi5cmIkTJ+acc86p6ZXTEOrzmfem+7W3Ki8vz9FHH50PfOAD+e53v5vp06fnySefzJtvvrldn6XdsbPvv/rNfknywx/+MH369Nmt8/7sZz/LqlWr8p73vCef/OQn069fv+2Cvueeey5XXHHFLs8xbNiwTJo0KTNmzMiDDz64yzfYNW/ePBdeeGHmzp2bKVOmZPbs2XnppZcyd+7czJ07N/fee28uvvjiHHTQQbv1OQBgd+kBBQC7qXplx6uvvrpHr1v9i/SuHs3ZW/u8vHU1yd82rX6r6seV3mlo8E61aNGipmfP2rVrt1vJUx/Vn3tXjc7f+pmrH6Pa2+/Xzry17uqVgrXZ1b76KCkpyYknnphkW1BURHP2Nm3a1IRTu/szYMWKFXnhhRdSWlqaMWPG5IgjjthhlVldVlWefPLJOeecc5Ik//M//5OHHnrobY/p27dv/umf/inf/e53c/PNN+df//Vf07lz56xevTo33HDDbn0OAHgnBFAAsJuqe8NUVFTs0HS6SO95z3uSbOtB9dZVGG+1q746O+sRsyd069at5jGfnTVl37p1a2bNmpVkW5PrPe2tfZ9qa579TlR/Zzv7zEkyY8aM7cYm9b9fjfVdd+3ateZRxeeff77WMZs2bSqsZ1Wy/WODb/0e37qiaWf//dRFWVlZTW+s3X0TZHVg2K5du50+WlnXpuUf/vCH86lPfSpVVVW54YYb8vDDD9e5jpYtW+bYY4/NF77whSTbGpo3RON2ANgVARQA7KZBgwalc+fOSZJx48bt0Dz4rerSI6auBg8enJKSkrz22mvbvTGt2rp16/LnP/95p8dXvw1rd5qHN5SSkpKat/uNHz++1r5YDz30UF5//fWUlJTU9PZpCKtXr84rr7yyyzFbt26tuaddunRJmzZtGuTa1Z/jmWee2a7JeLWFCxfWvMHumGOOqdle3/vVWN91aWlpBg8enGRb3bW9VfBPf/rTOwo7KisrawK3XXn00UeTbFvV1rNnz5rtb+3hVd/7Ut1DbPLkyTUB4s689WdA9feyatWqWlc6LViwII899lid6zjzzDMzatSoVFVV5Wc/+1kmTZq0w5hdvdmxuu9UVVXVLscBQEMQQAHA/2/Lli1ZvXr1Lv9XWVmZsrKyfPazn01JSUmmT5+eK6+8MvPmzatZVbFly5a89NJLueWWW/KVr3ylwerr3r17zWNi119/fR599NGaBtCvvvpqvv/97+/Q8PitevXqlSSZNm1aozyq99GPfjTl5eV544038p//+Z+pqKhIsq3H0V/+8pfcfPPNSZLhw4ene/fuDXbdlStX5sILL8wVV1yRCRMmbPdI26ZNmzJz5sx897vfrXm74emnn95g1x42bFhNj6Af/vCHmT59es08ee655/L9738/W7ZsyYEHHpjjjz9+u2Prc78a87s+88wzU1ZWlgULFuTqq6+uud+bNm3KAw88kFtvvfUdNb2urKzM2LFj8+1vfzt/+tOfUlFRUXMvKysr8+KLL+aaa66pCWFGjBix3aq21q1b1zQ/nzBhQr0+44gRI/K+970vVVVVueqqqzJ+/PjtgqZVq1bl0UcfzdixYzN+/Pia7QcccEA6deqUqqqq/PjHP655RLCysjKTJ0/OFVdcscvG77U566yz8rGPfSxbt27NT3/600yZMmW7/d/4xjdy66235oUXXqgJmaqqqvLCCy/UzKFDDjmkwUJXANgZTcgB4P83Z86ct32j1GWXXZaBAwfm6KOPzhe/+MXceOONmTFjRr797W+nefPmadmyZdauXbvLVVH18dnPfjYLFy7MK6+8kp/85Cf5+c9/nubNm2fdunVp2bJlvvCFL+QnP/lJrY+QDRkyJLfeemsWL16cL37xi2nfvn3Nm8yuu+66Qup9q+7du+df//Vf86Mf/SgzZ87M1772tbRu3TobNmyoCdIOO+ywWt9AVx/NmjVLSUlJnnvuuTz33HNJtjVmbtGixQ4rYU455ZSMHDmywa5dVlaWb3zjG7niiiuyfPnyXHnllTWhSPWqps6dO+cb3/hGzXdRrT73qzG/6169euXzn/98rr/++jz11FN56qmntqt76NChadGiRR5++OEdPvOulJSUpLS0NPPmzcu8efOSbPtu99tvv6xdu3a7x+qGDBmSf/qnf9rhHCeddFLuvPPO/OpXv8pvf/vbmp5VI0eOzIc+9KE611JWVpYLL7ww//Vf/5U5c+bkl7/8ZcaNG5dWrVply5Yt263wGjhwYM3/Ly0tzb/8y7/k6quvzsyZM/PVr341++23XzZv3pzKysp07tw5o0ePzrXXXlvnWpJk9OjRqayszL333psf//jH+eY3v5mjjjoqybYw7J577sk999yT0tLStGrVKuvXr6+ZQ23bts0Xv/jF3boeALwTAigAeIeGDx+egQMHZvz48XnuueeyfPnyrFu3Lm3btk2vXr1y1FFHNeijZMm2VRxXXHFF7rnnnjz22GNZsWJFmjdvnmOPPTYf//jHa1Y41LbCpF27drnssstyxx13ZM6cOVm9enVhQdnOHH300bn66qvz+9//PtOnT88bb7yR8vLy9O7dOyeccEJGjBjRoG+fS7atOrnuuuvy1FNPZfbs2Zk/f35ee+21rF+/Pvvtt1+6dOmSvn375sQTT6zp79WQunfvnh/+8Ie57777Mnny5CxbtixJcuCBB2bIkCE544wzah7N+lvv9H419nc9fPjw9OjRI3fddVfmzp2bysrK9OrVK8OHD89pp52W//qv/0pS+zzdmfLy8vz3f/93nnrqqcycOTOvvPJKzX9z5eXl6dixY9773vfmuOOOyxFHHFHrOc4666yUl5fn0UcfzZIlS2pWZ72TR/Lat2+f73znO5k0aVIeeeSRvPTSS1mzZk3KyspywAEH5NBDD83f/d3f5bDDDtvuuCFDhuSyyy7LXXfdlXnz5qWysjJdunTJ0UcfnY9+9KOZP3/+bteSJP/0T/+UysrKjB8/PldffXUuvPDCvP/978+FF16YadOmZfbs2VmxYkVWrVqVsrKy9OrVK0ceeWQ+9KEPpX379u/omgCwO0qq6tOFEQDYqzz00EO5/vrrM2DAgIwdO7axy4EdVFVV5fzzz89rr71Ws6IQAHj30wMKAN4lqlc/JMnhhx/eyNVA7R577LG89tpr2W+//fLe9763scsBAPYQj+ABwD5kxYoVuf322zN8+PC85z3vScuWLVNVVZUXX3wxt9xySxYsWJBWrVplxIgRjV0qTdhdd92V/fbbL4MHD07Hjh1TWlqaNWvW5OGHH86tt96aJDn11FO3axIOALy7CaAAYB9SWVmZCRMm1LzFq3Xr1tm0aVM2b96cZFtz7a985Svp0KFD4xVJk/fqq6/m0Ucfzc0335yysrKUl5dn3bp1NY3CDzvssJx11lmNXCUAsCfpAQUA+5CNGzfmz3/+c5599tlUVFRk9erVqaqqSqdOnTJw4MCcccYZ6dGjR2OXSRM3Z86cPPLII3n++efzxhtvZN26dWnVqlV69+6d448/Ph/84AfTrFmzxi4TANiDBFAAAAAAFEoTcgAAAAAKJYACAAAAoFACKAAAAAAKJYACAAAAoFACKAAAAAAKJYACAAAAoFACKAAAAAAKJYACAAAAoFACKAAAAAAKJYACAAAAoFACKAAAAAAKJYACAAAAoFACKAAAAAAK9f8BFRR098CiSoQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 315,
       "width": 592
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "random_player_streak_counts = pd.Series(random_player_streak).value_counts().sort_index()\n",
    "\n",
    "random_player_streak_counts.plot(kind = 'bar', color = 'green')\n",
    "plt.xlabel('Length of Shooting Streaks')\n",
    "plt.show(); "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    39\n",
      "1    17\n",
      "2    11\n",
      "3     4\n",
      "4     1\n",
      "5     1\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(random_player_streak_counts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    39\n",
      "1    23\n",
      "2     6\n",
      "3     5\n",
      "4     2\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "print(kobe_streak_counts)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
