diff --git a/AIandML/e1_python_basics/e1.3_pandas.ipynb b/AIandML/e1_python_basics/e1.3_pandas.ipynb
index 5bb0eb7..66993ec 100644
--- a/AIandML/e1_python_basics/e1.3_pandas.ipynb
+++ b/AIandML/e1_python_basics/e1.3_pandas.ipynb
@@ -9,7 +9,7 @@
"\n",
"|学号 |姓名 |\n",
"|----------|--------|\n",
- "| | |\n",
+ "|***REMOVED***|***REMOVED***|\n",
"\n",
"本部分的实验,需要自己在网络学习相关基础函数使用。"
]
@@ -23,7 +23,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -44,7 +44,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -60,20 +60,293 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 9,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 886 | \n",
+ " 887 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " Montvila, Rev. Juozas | \n",
+ " male | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 211536 | \n",
+ " 13.00 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 887 | \n",
+ " 888 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Graham, Miss. Margaret Edith | \n",
+ " female | \n",
+ " 19.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 112053 | \n",
+ " 30.00 | \n",
+ " B42 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 888 | \n",
+ " 889 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Johnston, Miss. Catherine Helen \"Carrie\" | \n",
+ " female | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " W./C. 6607 | \n",
+ " 23.45 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 889 | \n",
+ " 890 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Behr, Mr. Karl Howell | \n",
+ " male | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 111369 | \n",
+ " 30.00 | \n",
+ " C148 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " 890 | \n",
+ " 891 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Dooley, Mr. Patrick | \n",
+ " male | \n",
+ " 32.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 370376 | \n",
+ " 7.75 | \n",
+ " NaN | \n",
+ " Q | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Pclass Name \\\n",
+ "886 887 0 2 Montvila, Rev. Juozas \n",
+ "887 888 1 1 Graham, Miss. Margaret Edith \n",
+ "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n",
+ "889 890 1 1 Behr, Mr. Karl Howell \n",
+ "890 891 0 3 Dooley, Mr. Patrick \n",
+ "\n",
+ " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n",
+ "886 male 27.0 0 0 211536 13.00 NaN S \n",
+ "887 female 19.0 0 0 112053 30.00 B42 S \n",
+ "888 female NaN 1 2 W./C. 6607 23.45 NaN S \n",
+ "889 male 26.0 0 0 111369 30.00 C148 C \n",
+ "890 male 32.0 0 0 370376 7.75 NaN Q "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "titanic.head(5)\n",
+ "\n"
]
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 10,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 886 | \n",
+ " 887 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " Montvila, Rev. Juozas | \n",
+ " male | \n",
+ " 27.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 211536 | \n",
+ " 13.00 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 887 | \n",
+ " 888 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Graham, Miss. Margaret Edith | \n",
+ " female | \n",
+ " 19.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 112053 | \n",
+ " 30.00 | \n",
+ " B42 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 888 | \n",
+ " 889 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Johnston, Miss. Catherine Helen \"Carrie\" | \n",
+ " female | \n",
+ " NaN | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " W./C. 6607 | \n",
+ " 23.45 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 889 | \n",
+ " 890 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Behr, Mr. Karl Howell | \n",
+ " male | \n",
+ " 26.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 111369 | \n",
+ " 30.00 | \n",
+ " C148 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " 890 | \n",
+ " 891 | \n",
+ " 0 | \n",
+ " 3 | \n",
+ " Dooley, Mr. Patrick | \n",
+ " male | \n",
+ " 32.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 370376 | \n",
+ " 7.75 | \n",
+ " NaN | \n",
+ " Q | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Pclass Name \\\n",
+ "886 887 0 2 Montvila, Rev. Juozas \n",
+ "887 888 1 1 Graham, Miss. Margaret Edith \n",
+ "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n",
+ "889 890 1 1 Behr, Mr. Karl Howell \n",
+ "890 891 0 3 Dooley, Mr. Patrick \n",
+ "\n",
+ " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n",
+ "886 male 27.0 0 0 211536 13.00 NaN S \n",
+ "887 female 19.0 0 0 112053 30.00 B42 S \n",
+ "888 female NaN 1 2 W./C. 6607 23.45 NaN S \n",
+ "889 male 26.0 0 0 111369 30.00 C148 C \n",
+ "890 male 32.0 0 0 370376 7.75 NaN Q "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "titanic.tail(5)"
]
},
{
@@ -85,11 +358,20 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 12,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(891, 12)\n"
+ ]
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "print(titanic.shape)\n",
+ "\n"
]
},
{
@@ -101,7 +383,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
@@ -358,7 +640,7 @@
"[891 rows x 11 columns]"
]
},
- "execution_count": 6,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
@@ -376,11 +658,34 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 14,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "PassengerId False\n",
+ "Survived False\n",
+ "Pclass False\n",
+ "Name False\n",
+ "Sex False\n",
+ "Age True\n",
+ "SibSp False\n",
+ "Parch False\n",
+ "Ticket False\n",
+ "Fare False\n",
+ "Cabin True\n",
+ "Embarked True\n",
+ "dtype: bool"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "titanic.isnull().any()\n"
]
},
{
@@ -392,20 +697,37 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 15,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "80.0\n",
+ "0.42\n"
+ ]
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "print(titanic['Age'].max())"
]
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 16,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.42\n"
+ ]
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "print(titanic['Age'].min())\n"
]
},
{
@@ -417,11 +739,21 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 17,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "342\n"
+ ]
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "survived = titanic[titanic['Survived'] == 1]\n",
+ "\n",
+ "print(survived.shape[0])\n"
]
},
{
@@ -433,20 +765,46 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 24,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "male:0.18890814558058924\n",
+ "female: 0.7420382165605095\n"
+ ]
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "male=titanic[titanic['Sex']=='male']\n",
+ "survived=male[male['Survived'] == 1]\n",
+ "print(\"male:\" ,end=\"\")\n",
+ "print(survived.shape[0]/male.shape[0])\n",
+ "\n",
+ "\n"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 25,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "female: 0.7420382165605095\n"
+ ]
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "female=titanic[titanic['Sex']=='female']\n",
+ "survived=female[female['Survived'] == 1]\n",
+ "print(\"female: \",end=\"\")\n",
+ "print(survived.shape[0]/female.shape[0])\n",
+ "\n"
]
},
{
@@ -458,11 +816,252 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 19,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " PassengerId | \n",
+ " Survived | \n",
+ " Pclass | \n",
+ " Name | \n",
+ " Sex | \n",
+ " Age | \n",
+ " SibSp | \n",
+ " Parch | \n",
+ " Ticket | \n",
+ " Fare | \n",
+ " Cabin | \n",
+ " Embarked | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 258 | \n",
+ " 259 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Ward, Miss. Anna | \n",
+ " female | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " PC 17755 | \n",
+ " 512.3292 | \n",
+ " NaN | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " 737 | \n",
+ " 738 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Lesurer, Mr. Gustave J | \n",
+ " male | \n",
+ " 35.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " PC 17755 | \n",
+ " 512.3292 | \n",
+ " B101 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " 679 | \n",
+ " 680 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Cardeza, Mr. Thomas Drake Martinez | \n",
+ " male | \n",
+ " 36.0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " PC 17755 | \n",
+ " 512.3292 | \n",
+ " B51 B53 B55 | \n",
+ " C | \n",
+ "
\n",
+ " \n",
+ " 88 | \n",
+ " 89 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " Fortune, Miss. Mabel Helen | \n",
+ " female | \n",
+ " 23.0 | \n",
+ " 3 | \n",
+ " 2 | \n",
+ " 19950 | \n",
+ " 263.0000 | \n",
+ " C23 C25 C27 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 27 | \n",
+ " 28 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " Fortune, Mr. Charles Alexander | \n",
+ " male | \n",
+ " 19.0 | \n",
+ " 3 | \n",
+ " 2 | \n",
+ " 19950 | \n",
+ " 263.0000 | \n",
+ " C23 C25 C27 | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 633 | \n",
+ " 634 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " Parr, Mr. William Henry Marsh | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 112052 | \n",
+ " 0.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 413 | \n",
+ " 414 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " Cunningham, Mr. Alfred Fleming | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 239853 | \n",
+ " 0.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 822 | \n",
+ " 823 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " Reuchlin, Jonkheer. John George | \n",
+ " male | \n",
+ " 38.0 | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 19972 | \n",
+ " 0.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 732 | \n",
+ " 733 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " Knight, Mr. Robert J | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 239855 | \n",
+ " 0.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ " 674 | \n",
+ " 675 | \n",
+ " 0 | \n",
+ " 2 | \n",
+ " Watson, Mr. Ennis Hastings | \n",
+ " male | \n",
+ " NaN | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " 239856 | \n",
+ " 0.0000 | \n",
+ " NaN | \n",
+ " S | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
891 rows × 12 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " PassengerId Survived Pclass Name \\\n",
+ "258 259 1 1 Ward, Miss. Anna \n",
+ "737 738 1 1 Lesurer, Mr. Gustave J \n",
+ "679 680 1 1 Cardeza, Mr. Thomas Drake Martinez \n",
+ "88 89 1 1 Fortune, Miss. Mabel Helen \n",
+ "27 28 0 1 Fortune, Mr. Charles Alexander \n",
+ ".. ... ... ... ... \n",
+ "633 634 0 1 Parr, Mr. William Henry Marsh \n",
+ "413 414 0 2 Cunningham, Mr. Alfred Fleming \n",
+ "822 823 0 1 Reuchlin, Jonkheer. John George \n",
+ "732 733 0 2 Knight, Mr. Robert J \n",
+ "674 675 0 2 Watson, Mr. Ennis Hastings \n",
+ "\n",
+ " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n",
+ "258 female 35.0 0 0 PC 17755 512.3292 NaN C \n",
+ "737 male 35.0 0 0 PC 17755 512.3292 B101 C \n",
+ "679 male 36.0 0 1 PC 17755 512.3292 B51 B53 B55 C \n",
+ "88 female 23.0 3 2 19950 263.0000 C23 C25 C27 S \n",
+ "27 male 19.0 3 2 19950 263.0000 C23 C25 C27 S \n",
+ ".. ... ... ... ... ... ... ... ... \n",
+ "633 male NaN 0 0 112052 0.0000 NaN S \n",
+ "413 male NaN 0 0 239853 0.0000 NaN S \n",
+ "822 male 38.0 0 0 19972 0.0000 NaN S \n",
+ "732 male NaN 0 0 239855 0.0000 NaN S \n",
+ "674 male NaN 0 0 239856 0.0000 NaN S \n",
+ "\n",
+ "[891 rows x 12 columns]"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# 请填写相应代码\n"
+ "titanic.sort_values(by='Fare', ascending=False)\n"
]
},
{
@@ -474,11 +1073,32 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 20,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAGsCAYAAADXIZZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqoElEQVR4nO3df5SWdZ3/8dfAMKMgMwjKjKwglj/JXysWzkn3uykr6eTxB51jRkrGyc1GV0UtPWtqthukm79KpbNroKd1LdqsVVcT0fCk+At/a5KaBgYDlsEAxe/r+4df7m+z6Mo1jtwDPB7n3OdwX9c19/2+6nPG8zzXfd1TUxRFEQAAADZZr2oPAAAAsKURUgAAACUJKQAAgJKEFAAAQElCCgAAoCQhBQAAUJKQAgAAKKm22gP0BOvXr8+CBQvSv3//1NTUVHscAACgSoqiyLJlyzJkyJD06vXu152EVJIFCxZk6NCh1R4DAADoIebPn59dd931XfcLqST9+/dP8vb/WA0NDVWeBgAAqJaOjo4MHTq00gjvRkgllY/zNTQ0CCkAAOA9b/nxZRMAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAAChJSAEAAJQkpAAAAEoSUgAAACUJKQAAgJKEFAAAQElCCgAAoCQhBQAAUJKQAgAAKElIAQAAlCSkAAAASqqt9gBsbPiFd1V7hIrXJ7dWewQAAOhxXJECAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAAChJSAEAAJQkpAAAAEoSUgAAACUJKQAAgJKEFAAAQElCCgAAoCQhBQAAUJKQAgAAKElIAQAAlCSkAAAAShJSAAAAJQkpAACAkoQUAABASUIKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAAChJSAEAAJQkpAAAAEqqakhddtllqamp6fTYZ599KvtXrlyZtra2DBo0KDvssEPGjh2bRYsWdXqNefPmpbW1NX379s3gwYNzwQUXZO3atZv7VAAAgG1IbbUH+MhHPpL77ruv8ry29v+PdO655+auu+7K9OnT09jYmDPPPDMnnnhiHnrooSTJunXr0tramubm5jz88MNZuHBhTj311PTp0yff/OY3N/u5AAAA24aqh1RtbW2am5s32r506dLcdNNNufXWW3PEEUckSaZOnZp99903jzzySA499NDce++9efHFF3PfffelqakpBx10UL7xjW/kq1/9ai677LLU1dVt7tMBAAC2AVW/R+rll1/OkCFD8qEPfSjjxo3LvHnzkiRz5szJmjVrMnr06Mqx++yzT4YNG5bZs2cnSWbPnp39998/TU1NlWPGjBmTjo6OvPDCC+/6nqtWrUpHR0enBwAAwKaqakiNGjUq06ZNyz333JMbb7wxr732Wg4//PAsW7Ys7e3tqaury4ABAzr9TFNTU9rb25Mk7e3tnSJqw/4N+97NpEmT0tjYWHkMHTq0e08MAADYqlX1o31HH3105d8HHHBARo0ald122y0/+tGPsv32239g73vRRRdl4sSJlecdHR1iCgAA2GRV/2jfXxowYED22muvvPLKK2lubs7q1auzZMmSTscsWrSock9Vc3PzRt/it+H5O913tUF9fX0aGho6PQAAADZVjwqp5cuX59VXX80uu+ySkSNHpk+fPpk5c2Zl/9y5czNv3ry0tLQkSVpaWvLcc89l8eLFlWNmzJiRhoaGjBgxYrPPDwAAbBuq+tG+888/P8cee2x22223LFiwIJdeeml69+6dk08+OY2NjZkwYUImTpyYgQMHpqGhIWeddVZaWlpy6KGHJkmOOuqojBgxIqecckquuOKKtLe35+KLL05bW1vq6+ureWoAAMBWrKoh9cYbb+Tkk0/OH/7wh+y888457LDD8sgjj2TnnXdOklx99dXp1atXxo4dm1WrVmXMmDG54YYbKj/fu3fv3HnnnTnjjDPS0tKSfv36Zfz48bn88surdUoAAMA2oKYoiqLaQ1RbR0dHGhsbs3Tp0h5xv9TwC++q9ggVr09urfYIAACw2WxqG/Soe6QAAAC2BEIKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAAChJSAEAAJQkpAAAAEoSUgAAACUJKQAAgJKEFAAAQElCCgAAoCQhBQAAUJKQAgAAKElIAQAAlCSkAAAAShJSAAAAJQkpAACAkoQUAABASUIKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCS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/OQn3TIcAABAT9SlkBowYEBOOOGE7p4FAABgi9ClkJo6dWp3zwEAALDF6NI9Ukmydu3a3Hffffne976XZcuWJUkWLFiQ5cuXd9twAAAAPVGXQuq3v/1t9t9//xx33HFpa2vLm2++mST51re+lfPPP3+TX+fGG2/MAQcckIaGhjQ0NKSlpSV33313Zf/KlSvT1taWQYMGZYcddsjYsWOzaNGiTq8xb968tLa2pm/fvhk8eHAuuOCCrF27tiunBQAAsEm6FFJnn312DjnkkPzxj3/M9ttvX9l+wgknZObMmZv8OrvuumsmT56cOXPm5IknnsgRRxyR4447Li+88EKS5Nxzz80dd9yR6dOnZ9asWVmwYEFOPPHEys+vW7cura2tWb16dR5++OHcfPPNmTZtWi655JKunBYAAMAmqSm68B3mgwYNysMPP5y99947/fv3zzPPPJMPfehDef311zNixIj86U9/6vJAAwcOzJVXXplPf/rT2XnnnXPrrbfm05/+dJLkpZdeyr777pvZs2fn0EMPzd13351PfepTWbBgQZqampIkU6ZMyVe/+tW8+eabqaur26T37OjoSGNjY5YuXZqGhoYuz95dhl94V7VHqHh9cmu1RwAAgM1mU9ugS1ek1q9fn3Xr1m20/Y033kj//v278pJZt25dbrvttqxYsSItLS2ZM2dO1qxZk9GjR1eO2WeffTJs2LDMnj07STJ79uzsv//+lYhKkjFjxqSjo6NyVeudrFq1Kh0dHZ0eAAAAm6pLIXXUUUflmmuuqTyvqanJ8uXLc+mll+aYY44p9VrPPfdcdthhh9TX1+dLX/pSbr/99owYMSLt7e2pq6vLgAEDOh3f1NSU9vb2JEl7e3uniNqwf8O+dzNp0qQ0NjZWHkOHDi01MwAAsG3rUkh9+9vfzkMPPZQRI0Zk5cqV+exnP5vhw4fnd7/7Xb71rW+Veq299947Tz/9dB599NGcccYZGT9+fF588cWujLXJLrrooixdurTymD9//gf6fgAAwNalS39Hatddd80zzzyT2267Lc8++2yWL1+eCRMmZNy4cZ2+fGJT1NXVZY899kiSjBw5Mo8//niuvfbanHTSSVm9enWWLFnS6arUokWL0tzcnCRpbm7OY4891un1Nnyr34Zj3kl9fX3q6+tLzQkAALBBl0IqSWpra/O5z32uO2dJ8vb9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s7P//vtXIipJxowZk46Ojrzwwgvv+D6rVq1KR0dHpwcAAMCm6jEhtX79+pxzzjn5+Mc/nv322y9J0t7enrq6ugwYMKDTsU1NTWlvb68c85cRtWH/hn3vZNKkSWlsbKw8hg4d2s1nAwAAbM16TEi1tbXl+eefz2233faBv9dFF12UpUuXVh7z58//wN8TAADYetRWe4AkOfPMM3PnnXfmwQcfzK677lrZ3tzcnNWrV2fJkiWdrkotWrQozc3NlWMee+yxTq+34Vv9NhzzP9XX16e+vr6bzwIAANhWVPWKVFEUOfPMM3P77bfn/vvvz+67795p/8iRI9OnT5/MnDmzsm3u3LmZN29eWlpakiQtLS157rnnsnjx4soxM2bMSENDQ0aMGLF5TgQAANimVPWKVFtbW2699db87Gc/S//+/Sv3NDU2Nmb77bdPY2NjJkyYkIkTJ2bgwIFpaGjIWWedlZaWlhx66KFJkqOOOiojRozIKaeckiuuuCLt7e25+OKL09bW5qoTAADwgahqSN14441Jkr/927/ttH3q1Kn5/Oc/nyS5+uqr06tXr4wdOzarVq3KmDFjcsMNN1SO7d27d+68886cccYZaWlpSb9+/TJ+/Phcfvnlm+s0AACAbUyP+jtS1eLvSL07f0cKAIBtyRb5d6QAAAC2BEIKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAACipttoD0LMNv/Cuao9Q8frk1mqPAAAASVyRAgAAKE1IAQAAlCSkAAAAShJSAAAAJQkpAACAkoQUAABASUIKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAAChJSAEAAJQkpAAAAEoSUgAAACUJKQAAgJKEFAAAQElCCgAAoCQhBQAAUJKQAgAAKElIAQAAlCSkAAAAShJSAAAAJQkpAACAkoQUAABASUIKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAACipqiH14IMP5thjj82QIUNSU1OTn/70p532F0WRSy65JLvssku23377jB49Oi+//HKnY956662MGzcuDQ0NGTBgQCZM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t9MxK1euTFtbWwYNGpQddtghY8eO3egPls+bNy+tra3p27dvBg8enAsuuCBr167dnKfCB+TGG2/MAQcckIaGhjQ0NKSlpSV33313Zb/1wTuZPHlyampqcs4551S2WSvbtssuuyw1NTWdHvvss09lv/XxNiHVQ/zwhz/MxIkTc+mll+bJJ5/MgQcemDFjxmTx4sXVHo3NZMWKFTnwwANz/fXXv+P+K664Itddd12mTJmSRx99NP369cuYMWOycuXKyjHjxo3LCy+8kBkzZuTOO+/Mgw8+mNNPP31znQIfsFmzZqWtrS2PPPJIZsyYkTVr1uSoo47KihUrKsece+65ueOOOzJ9+vTMmjUrCxYsyIknnljZv27durS2tmb16tV5+OGHc/PNN2fatGm55JJLqnFKdLNdd901kydPzpw5c/LEE0/kiCOOyHHHHZcXXnghifXBxh5//PF873vfywEHHNBpu7XCRz7ykSxcuLDy+OUvf1nZZ338PwU9wsc+9rGira2t8nzdunXFkCFDikmTJlVxKqolSXH77bdXnq9fv75obm4urrzyysq2JUuWFPX19cV//Md/FEVRFC+++GKRpHj88ccrx9x9991FTU1N8bvf/W6zzc7ms3jx4iJJMWvWrKIo3l4Tffr0KaZPn1455le/+lWRpJg9e3ZRFEXx3//930WvXr2K9vb2yjE33nhj0dDQUKxatWrzngCbxY477lj827/9m/XBRpYtW1bsueeexYwZM4r/83/+T3H22WcXReF3CUVx6aWXFgceeOA77rM+/j9XpHqA1atXZ86cORk9enRlW69evTJ69OjMnj27ipPRU7z22mtpb2/vtEYaGxszatSoyhqZPXt2BgwYkEMOOaRyzOjRo9OrV688+uijm31mPnhLly5NkgwcODBJMmfOnKxZs6bTOtlnn30ybNiwTutk//33T1NTU+WYMWPGpKOjo3LVgq3DunXrctttt2XFihVpaWmxPthIW1tbWltbO62JxO8S3vbyyy9nyJAh+dCHPpRx48Zl3rx5SayPv1Rb7QFIfv/732fdunWdFluSNDU15aWXXqrSVPQk7e3tSfKOa2TDvvb29gwePLjT/tra2gwcOLByDFuP9evX55xzzsnHP/7x7LfffkneXgN1dXUZMGBAp2P/5zp5p3W0YR9bvueeey4tLS1ZuXJldthhh9x+++0ZMWJEnn76aeuDittuuy1PPvlkHn/88Y32+V3CqFGjMm3atOy9995ZuHBhvv71r+fwww/P888/b338BSEFsAVqa2vL888/3+kz65Ake++9d55++uksXbo0P/7xjzN+/PjMmjWr2mPRg8yfPz9nn312ZsyYke22267a49ADHX300ZV/H3DAARk1alR22223/OhHP8r2229fxcl6Fh/t6wF22mmn9O7de6NvO1m0aFGam5urNBU9yYZ18L+tkebm5o2+nGTt2rV56623rKOtzJlnnpk777wzDzzwQHbdddfK9ubm5qxevTpLlizpdPz/XCfvtI427GPLV1dXlz322CMjR47MpEmTcuCBB+baa6+1PqiYM2dOFi9enIMPPji1tbWpra3NrFmzct1116W2tjZNTU3WCp0MGDAge+21V1555RW/S/6CkOoB6urqMnLkyMycObOybf369Zk5c2ZaWlqqOBk9xe67757m5uZOa6SjoyOPPvpoZY20tLRkyZIlmTNnTuWY+++/P+vXr8+oUaM2+8x0v6IocuaZZ+b222/P/fffn913373T/pEjR6ZPnz6d1sncuXMzb968Tuvkueee6xTdM2bMSENDQ0aMGLF5ToTNav369Vm1apX1QcWRRx6Z5557Lk8//XTlccghh2TcuHGVf1sr/KXly5fn1VdfzS677OJ3yV+q9rdd8LbbbrutqK+vL6ZNm1a8+OKLxemnn14MGDCg07edsHVbtmxZ8dRTTxVPPfVUkaS46qqriqeeeqr47W9/WxRFUUyePLkYMGBA8bOf/ax49tlni+OOO67Yfffdiz//+c+V1/jkJz9Z/PVf/3Xx6KOPFr/85S+LPffcszj55JOrdUp0szPOOKNobGwsfvGLXxQLFy6sPP70pz9VjvnSl75UDBs2rLj//vuLJ554omhpaSlaWloq+9euXVvst99+xVFHHVU8/fTTxT333FPsvPPOxUUXXVSNU6KbXXjhhcWsWbOK1157rXj22WeLCy+8sKipqSnuvffeoiisD97dX35rX1FYK9u68847r/jFL35RvPbaa8VDDz1UjB49uthpp52KxYsXF0VhfWwgpHqQ73znO8WwYcOKurq64mMf+1jxyCOPVHskNqMHHnigSLLRY/z48UVRvP0V6F/72teKpqamor6+vjjyyCOLuXPndnqNP/zhD8XJJ59c7LDDDkVDQ0Nx2mmnFcuWLavC2fBBeKf1kaSYOnVq5Zg///nPxZe//OVixx13LPr27VuccMIJxcKFCzu9zuuvv14cffTRxfbbb1/stNNOxXnnnVesWbNmM58NH4QvfOELxW677VbU1dUVO++8c3HkkUdWIqoorA/e3f8MKWtl23bSSScVu+yyS1FXV1f81V/9VXHSSScVr7zySmW/9fG2mqIoiupcCwMAANgyuUcKAACgJCEFAABQkpACAAAoSUgBAACUJKQAAABKElIAAAAlCSkAAICShBQAAEBJQgoAAKAkIQUAAFCSkAIAACjp/wKGyGu8/gM1nAAAAABJRU5ErkJggg==",
+ "text/plain": [
+ "