{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Important reminder\n", "\n", "No lecture on 1 Nov. 2024 due to holiday.\n", "\n", "Lecture will be at start of tutorial on 4 Nov. 2024 (at the normal tutorial time and loaction, namely 14:15 in the Computer Pool in Bio 2/3 building.)\n", "\n", "# File naming in assignments\n", "\n", "Please use original name and overwrite original file." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Review\n", "\n", "One key idea in programming is a **variable**. A variable is a name that refers to a value. It lets us reference the value, even if we do not know what it is. We can **assign** to variables in Python using the `=` symbol.\n", "\n", "Even though we are still working with simple code, we have already learned two key ideas of programming that let us build more complex systems through modularity.\n", "\n", "The first is **functions**. We learned that code is organized in **blocks**.\n", "\n", "The second idea is **scope**.\n", "\n", "We also learned about **exceptions**." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "x = 0\n", "\n", "def foo(a):\n", " return a\n", "\n", "z = foo(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Coding style\n", "\n", "It is great if your code runs successfully! However, you are likely to want to run it again. (And even if not, it is good to practice \"Doin' It Right\".) Therefore, it is good to optimize it for readability and reuse. There is certainly a sense of style in software coding. It's good to develop your own sense of good style.\n", "\n", "There is more one way to write correct code. (In fact, there are infinitely many ways.)\n", "\n", "Depending on the programming language, and often depending on the project or environment, there are standard, \"idiomatic\" ways of doing things. You should prefer those - they make your code easier to read for others - and also yourself in the future.\n", "\n", "It is useful to spend time refining code so that it looks simple and, ideally, *is* simple. Of course this is not always possible.\n", "\n", "One stylistic rule that holds pretty much in every programming language is the principle \"Don't Repeat Yourself\" (DRY). If you need to change something, ideally you will only need to change it in one place in your code. Another way of saying this is that there should only be a \"single source of truth\".\n", "\n", "The python package \"black\" is commonly used linter for making code style changes to an idiomatic format.\n", "\n", "### Style suggestions\n", "\n", "- In general: simplify\n", "- Remove irrelevant code (e.g. `plt.show;`)\n", "- Remove irrelevant comments (e.g. `# YOUR CODE HERE`)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Types\n", "\n", "Every value in Python has a **type**. You don't usually *see* the types written, but it is critically important to understand what types are used in code you are working on. Python checks *exactly* how something is typed and, according to strict rules, decides what type the value will have. For example, these will all be different types:\n", "\n", "```python\n", "10\n", "10.0\n", "'10'\n", "```\n", "\n", "\n", "## Types of types\n", "\n", "So far, we have mostly worked with whole numbers called **integers** - in python, an `int`. We briefly saw `None` and some strings. You may have also seen **floating point numbers** (`float` in python).\n", "\n", "Let's practice with some of these types.\n", "\n", "## Playing with types" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "10" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(10)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10.0" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "10.0" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "float" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(10.0)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "int" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 10\n", "type(x)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(\"10\")" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type('10')" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "my_string = \"Hello, My name is Angela Merkel\"" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "my_string = \"übersetzen😀\"" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "Übersetzung = \"translation\"" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "übersetzen😀\n" ] } ], "source": [ "print(my_string)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the data is like this: \"gcatcccggg\"\n" ] } ], "source": [ "my_string = 'the data is like this: \"gcatcccggg\"'\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (1042171736.py, line 1)", "output_type": "error", "traceback": [ "\u001b[0;36m Cell \u001b[0;32mIn[41], line 1\u001b[0;36m\u001b[0m\n\u001b[0;31m my_string = \"the data is like this: \"gcatcccggg\"\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "my_string = \"the data is like this: \"gcatcccggg\"\"\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the data is like this: \"gcatcccggg\"\n" ] } ], "source": [ "my_string = \"the data is like this: \\\"gcatcccggg\\\"\"\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the data is like this: \\gcatcccggg\"\n" ] } ], "source": [ "my_string = \"the data is like this: \\\\gcatcccggg\\\"\"\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the data is like this: 'gcatcccggg'\n" ] } ], "source": [ "my_string = 'the data is like this: \\'gcatcccggg\\''\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (57043761.py, line 1)", "output_type": "error", "traceback": [ "\u001b[0;36m Cell \u001b[0;32mIn[45], line 1\u001b[0;36m\u001b[0m\n\u001b[0;31m my_string = 'the data is like this: 'gcatcccggg''\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "my_string = 'the data is like this: 'gcatcccggg''\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the data is like this: 'gcatcccggg'\n" ] } ], "source": [ "my_string = \"the data is like this: 'gcatcccggg'\"\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the data is like this: \\ 'gcatcccggg'\n" ] } ], "source": [ "my_string = \"the data is like this: \\\\ 'gcatcccggg'\"\n", "print(my_string)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "x=10" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n" ] } ], "source": [ "print(x)" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1234" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1234" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "def myprint(x):\n", " print(x)\n", " return 32" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello\n" ] }, { "data": { "text/plain": [ "32" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "myprint(\"hello\")" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello\n" ] } ], "source": [ "myprint(\"hello\");" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello\n" ] } ], "source": [ "z=myprint(\"hello\")" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "32" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "10" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "# In Jupyter, `_` is a special variable, which means the output value of the previously run cell.\n", "y=_" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "x=x+1" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "11\n" ] } ], "source": [ "print(x)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "z=x=x+1" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "12" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# None type\n", "\n", "The `None` type is used when there is no value. It is actually very common in Python. For example a function which does not return anything actually returns the value `None`." ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n" ] } ], "source": [ "x=None\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "NoneType" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=None\n", "type(x)" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "None" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "10" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n", "None\n" ] } ], "source": [ "x=print(10)\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "x=10" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Operators\n", "\n", "Many of the most commonly used operations (like addition) could be written as function calls, but instead have special symbols (like `+`)." ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3+4" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "int.__add__(3,4)" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'abcdef'" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"abc\" + \"def\"" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'abcdef'" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "str.__add__(\"abc\", \"def\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Complex expressions\n", "\n", "Often we write expressions in which multiple operations happen in one line of code" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "4 * 3 + 2" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 + 4 * 3" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "x = 4 * 3 + 2" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [], "source": [ "x = x * 2" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "28" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y=4*3+2\n", "y" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "14" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tmp = 4*3\n", "y = tmp+2\n", "y" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "tags": [] }, "outputs": [], "source": [ "tmp = 'my super import data'\n", "\n", "y=4*(3+2)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "20" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'my super import data'" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tmp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# list type\n", "\n", "## list construction" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 2, 2, 2, 2, 'three', 4.0]\n" ] } ], "source": [ "x = [1,2,2,2,2,2,\"three\", 4.0]\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[]\n" ] } ], "source": [ "x=list()\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3, 4]\n" ] } ], "source": [ "x=[1,2,3,4]\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[]\n", "[1]\n", "[1, 2]\n", "[1, 2, 3]\n", "[1, 2, 3, 4]\n", "None\n" ] } ], "source": [ "x=[]\n", "print(x)\n", "\n", "x.append(1)\n", "print(x)\n", "\n", "x.append(2)\n", "print(x)\n", "\n", "x.append(3)\n", "print(x)\n", "\n", "z = x.append(4)\n", "print(x)\n", "\n", "print(z)" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 'green', 'blue']\n" ] } ], "source": [ "x=[\"red\",\"green\",\"blue\"]\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 101, 'green', 202, 'blue', 303]\n" ] } ], "source": [ "x=[\"red\", 101, \"green\", 202, \"blue\", 303]\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 101, 'green', 202, 'blue', 303, [1, 2, 3], 'lkasjdf\"laskdjfj']\n" ] } ], "source": [ "x=[\"red\", 101, \"green\", 202, \"blue\", 303, [1,2,3], 'lkasjdf\"laskdjfj']\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## list indexing" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'red'" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"green\",\"blue\"]\n", "x[0]" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'green'" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"green\",\"blue\"]\n", "x[1]" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'blue'" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"green\",\"blue\"]\n", "x[2]" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'blue'" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"green\",\"blue\"]\n", "x[-1]" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'violet'" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[-1]" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'blue'" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[-3]" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'yellow'" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y=2\n", "x[y]" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "list indices must be integers or slices, not str", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[119], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mx\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mhello\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\n", "\u001b[0;31mTypeError\u001b[0m: list indices must be integers or slices, not str" ] } ], "source": [ "x['hello']" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "list indices must be integers or slices, not float", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[120], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mx\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1.23\u001b[39;49m\u001b[43m]\u001b[49m\n", "\u001b[0;31mTypeError\u001b[0m: list indices must be integers or slices, not float" ] } ], "source": [ "x[1.23]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## getting index of item in list" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x.index(\"blue\")" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "321 is not in list", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[122], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m321\u001b[39;49m\u001b[43m)\u001b[49m\n", "\u001b[0;31mValueError\u001b[0m: 321 is not in list" ] } ], "source": [ "x.index(321)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## setting an item in a list" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [], "source": [ "x[3]=3" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow', 3, 'blue', 'indigo', 'violet']" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## list slicing" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow']" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[0:3]" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'green'" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[3]" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow']" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[:3]" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow']" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[None:3]" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['red', 'orange', 'yellow']" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[0:3]" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['green', 'blue', 'indigo', 'violet']" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[3:]" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['green', 'blue', 'indigo', 'violet']" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[3:None]" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['green', 'blue', 'indigo']" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "x[3:-1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# tuples\n", "## tuple construction" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "(1, 2, 3, 4)\n" ] } ], "source": [ "x = (1,2,3,4)\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "()\n" ] } ], "source": [ "x = ()\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "(1,)\n" ] } ], "source": [ "x = (1,)\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "1\n" ] } ], "source": [ "x = (1)\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "(1,)\n" ] } ], "source": [ "x = 1,\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "(1, 2, 3)\n" ] } ], "source": [ "x = 1,2,3\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "1\n" ] } ], "source": [ "x = 1\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "()\n" ] } ], "source": [ "x = tuple()\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "(1,)\n" ] } ], "source": [ "x = tuple([1])\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "(1, 2, 3, 4)\n" ] } ], "source": [ "x = tuple([1,2,3,4])\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "tuple expected at most 1 argument, got 4", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[146], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m,\u001b[49m\u001b[38;5;241;43m4\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28mtype\u001b[39m(x))\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(x)\n", "\u001b[0;31mTypeError\u001b[0m: tuple expected at most 1 argument, got 4" ] } ], "source": [ "x = tuple(1,2,3,4)\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "(1,)\n" ] } ], "source": [ "tmp = [1]\n", "print(type(tmp))\n", "x = tuple(tmp)\n", "print(type(x))\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## tuple indexing and slicing" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'yellow'" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=(\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\")\n", "x[2]" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'violet'" ] }, "execution_count": 149, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=(\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\")\n", "x[-1]" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'blue'" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=(\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\")\n", "x[-3]" ] }, { "cell_type": "code", "execution_count": 151, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('red', 'orange', 'yellow')" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x=(\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\")\n", "x[0:3]" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('red', 'orange', 'yellow')" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x[:3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## lists are *mutable*, tuples are not" ] }, { "cell_type": "code", "execution_count": 153, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']\n", "['red', 'orange', 'yellow', 3, 'blue', 'indigo', 'violet']\n" ] } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "print(x)\n", "x[3]=3\n", "print(x)" ] }, { "cell_type": "code", "execution_count": 154, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet')\n" ] }, { "ename": "TypeError", "evalue": "'tuple' object does not support item assignment", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[154], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m x\u001b[38;5;241m=\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mred\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124morange\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124myellow\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mgreen\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mblue\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mindigo\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mviolet\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(x)\n\u001b[0;32m----> 3\u001b[0m \u001b[43mx\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m3\u001b[39m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28mprint\u001b[39m(x)\n", "\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" ] } ], "source": [ "x=(\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\")\n", "print(x)\n", "x[3]=3\n", "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### passing mutable lists to functions" ] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n" ] } ], "source": [ "def modify_arg(a,b):\n", " a.append(b)\n", " # Notice that there is no return here!\n", " # So, this function has an important \"side effect\",\n", " # but the output is None.\n", " \n", "x = [1,2,3]\n", "y = modify_arg(x, 4)\n", "x\n", "print(y)" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 160, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n" ] } ], "source": [ "def modify_arg(a,b):\n", "\t a = a + b\n", "\t # Notice that there is no return here!\n", "\t # So, this function has an important \"side effect\",\n", "\t # but the output is None.\n", "\t \n", "x = 10\n", "y = modify_arg(x, 4)\n", "x\n", "print(y)" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 161, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## variables can be names pointing to an object in memory" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']\n", "['red', 'orange', 'yellow', 3, 'blue', 'indigo', 'violet']\n" ] } ], "source": [ "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "y=x\n", "print(x)\n", "y[3]=3\n", "print(y)" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 'orange', 'yellow', 3, 'blue', 'indigo', 'violet']\n" ] } ], "source": [ "print(x)" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "0\n", "3\n" ] } ], "source": [ "x=0\n", "y=x\n", "print(x)\n", "y=3\n", "print(x)\n", "print(y)" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']\n", "['red', 'orange', 'yellow', 3, 'blue', 'indigo', 'violet']\n" ] } ], "source": [ "# View the previous example and then this one in pythontutor.com\n", "x=[\"red\",\"orange\",\"yellow\",\"green\",\"blue\",\"indigo\",\"violet\"]\n", "y=x.copy()\n", "print(x)\n", "y[3]=3\n", "print(y)" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']\n" ] } ], "source": [ "print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Plotting" ] }, { "cell_type": "code", "execution_count": 168, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 174, "metadata": {}, "outputs": [ { "data": { "image/png": "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PvD09LRarOYy5z1WJikpCf7+/pYOTwlHu4aWYM/XT9M0TJ48GatXr8aGDRvQtm3baz7Gka6hOe+vMvZ8DSujaRoKCgoq/ZojXb+qVPf+KmPP1y8kJAT79+/H3r17y299+vTBgw8+iL1798Ld3f2qxyi5hlZbGmsHVq5cqXl6empLlizRDh48qE2bNk2rU6eOdvz4cU3TNO2FF17Qxo0bV97/2LFjWu3atbXp06drBw8e1JYsWaJ5enpq3333naq3cE2mvsc5c+ZosbGx2t9//6399ddf2gsvvKAB0GJiYlS9hWrl5uZqSUlJWlJSkgZA+/DDD7WkpCTtxIkTmqY5/jU09f052vV7+umnNV9fXy0+Pl5LT08vv128eLG8jyNfQ3Pen6Ndw4iICG3Tpk1aSkqKtm/fPi0yMlJzc3PT4uLiNE1z7Ounaaa/P0e7fpW5cjeNPVxDp05GNE3TPvnkE61169aal5eXduONNxpsuZswYYJ2yy23GPSPj4/XevfurXl5eWlt2rTRFi5caOOITWfKe3znnXe09u3baz4+PlrDhg21gQMHamvXrlUQtXHKttFdeZswYYKmaY5/DU19f452/Sp7bwC0pUuXlvdx5GtozvtztGv46KOPlv98adq0qRYSElL+Qa1pjn39NM309+do168yVyYj9nANdZr2v1UpRERERAo47ZoRIiIicgxMRoiIiEgpJiNERESkFJMRIiIiUorJCBERESnFZISIiIiUYjJCRERESjEZISIiIqWYjBAREZFSTEaIiIhIKSYjREREpBSTESIiIlLq/wGFAKvoaga2GgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x=[1,2,3,0,4,1]\n", "y=[0,4,0,3,3,0]\n", "plt.plot(x,y,\"ro:\");" ] }, { "cell_type": "code", "execution_count": 175, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1t0lEQVR4nO3deVxU9f7H8dcs7KuCLCoq7guiuKPQZmmCpu27tlhZKpa3e2/W3bv9vPf+uv0STc3S9tIKMxU0rVzAHUXFDXdBZRGVHWaYmfP7A4a0UAGBMzN8no/HPB4xnsN8zuPQzGfO+3y/X42iKApCCCGEECrRql2AEEIIIVo2aUaEEEIIoSppRoQQQgihKmlGhBBCCKEqaUaEEEIIoSppRoQQQgihKmlGhBBCCKEqaUaEEEIIoSq92gXUhcVi4fz583h5eaHRaNQuRwghhBB1oCgKxcXFtG3bFq322tc/7KIZOX/+PCEhIWqXIYQQQogGyMrKon379tf8d7toRry8vICqg/H29la5GiGEEELURVFRESEhITWf49diF82INZrx9vaWZkQIIYSwMze6xUJuYBVCCCGEqqQZEUIIIYSqpBkRQgghhKqkGRFCCCGEqqQZEUIIIYSqpBkRQgghhKqkGRFCCCGEqqQZEUIIIYSqpBkRQgghhKpuqhmZPXs2Go2Gl19++brbbdq0iYEDB+Lq6krnzp1ZuHDhzbysEEIIIRxIg5uRXbt2sWjRIsLDw6+73alTp4iJiSE6Opq0tDRef/114uLiSEhIaOhLCyGEEMKBNKgZKSkp4fHHH+eDDz6gVatW19124cKFdOjQgXfffZdevXoxefJknnnmGd5+++0GFSyEEEIIx9KgZmTq1KnExsZy55133nDbbdu2MWrUqKueGz16NKmpqVRWVta6j8FgoKio6KqHEMLxKIrC16lZ7Dp9Se1ShBAqqnczsnTpUvbs2cPs2bPrtH1OTg6BgYFXPRcYGIjJZCI/P7/WfWbPno2Pj0/NIyQkpL5lCiHswLYTF/nDt/uZ/EkqRpNF7XKEECqpVzOSlZXFjBkz+Pzzz3F1da3zfr9eOlhRlFqft5o1axaFhYU1j6ysrPqUKYSwE6v2ZwNQWF7JluO1fzkRQjg+fX023r17N3l5eQwcOLDmObPZzObNm5k3bx4GgwGdTnfVPkFBQeTk5Fz1XF5eHnq9Hj8/v1pfx8XFBRcXl/qUJoSwMyazhbUHsmt+Xr0/m9t7BqhYkRBCLfVqRkaOHEl6evpVzz399NP07NmTP/7xj79pRAAiIyNZtWrVVc+tW7eOQYMG4eTk1ICShRCOYNvJi1wuq0Sv1WCyKKw7lIPBFIaL/rfvI0IIx1avmMbLy4uwsLCrHh4eHvj5+REWFgZURSwTJ06s2WfKlCmcOXOGmTNncvjwYZYsWcLixYt59dVXG/dIhBB2JbE6onlwUHsCvFworjCRckyiGiFaokafgTU7O5vMzMyan0NDQ0lKSmLjxo3079+fN998k/j4eO6///7GfmkhhJ2oNFtYe7Aqvh0b3paYvsHALw2KEKJlqVdMU5uNGzde9fPHH3/8m21uvfVW9uzZc7MvJYRwENtOXKSgrBI/D2eGhrbGWa/l462nWX8oF4PJLFGNEC2MrE0jhGh21isgd4cFoddpGdihFYHeLhQbTCQflahGiJZGmhEhRLO6MqKJDa+KZ7RazS9RTbpENUK0NNKMCCGa1Zbj+RSWV+Lv6czQ0F+G94+tbkzWH8qlotKsVnlCCBVIMyKEaFbWiGZMWDA67S8TH0aEtCLYx5USg4nNRy+oVZ4QQgXSjAghmo3RZOGHX0U0VhLVCNFySTMihGg2W47nU1Rhoo2XC4M7tf7Nv1sblB8lqhGiRZFmRAjRbFZXRzQxYUFXRTRWESG+tPN1o9RoZmOGRDVCtBTSjAghmoXBZGbdoaqIxhrH/JpGo2FMWBAgUY0QLYk0I0KIZrHleD7FFSYCvFwYVEtEY2WNan46LFGNEC2FNCNCiGZRE9H0Da41orHqXx3VlBnNbMzIa67yhBAqkmZECNHkDCYz6w/mAr8dRfNrGo2mZpvVslaNEC2CNCNCiCaXfDSfYoOJQG8XBnZodcPtY/tao5o8yo0S1Qjh6KQZEUI0OevNqDF9g9FeJ6KxCm/vQ/tWbpRXmtkgUY0QDk+aESFEk6qoNLP+UFVEM/YGEY3VlVFNokQ1Qjg8aUaEEE1q89ELlBhMBPu4EhFy44jGamzftgD8dCSXMqOpqcoTQtgAaUaEEE3KGtGMCatbRGMV1s6bkNZuVFRa+PmIRDVCODJpRoQQTaai0syPh+o2iubXNBoNsdVXR5JkAjQhHJo0I0KIJrPp6AVKjWba+rgSEeJb7/2t95j8fCSPUoNENUI4KmlGhBBNJnF//UbR/Fqftt509HOXqEYIByfNiBCiSVRUmvnxcMMiGquqqEZG1Qjh6KQZEUI0iY0ZeZQZzbTzdaN/AyIaK2sjsyEjjxKJaoRwSNKMCCGahHUq99jwYDSa+kc0Vr2DvQn198BgsvBT9ZUWIYRjkWZECNHoyo1mfjpcdY+HNWZpKIlqhHB80owIIRrdhow8yivNtG/lRnh7n5v+fdaoZuPRCxRXVN707xNC2BZpRoQQjc56BSO2781FNFY9g7zo7O+B0WSpueIihHAc0owIIRpVmdFUMwy3oaNofu2qtWpkAjQhHI40I0KIRrXhyAXKK82EtHajb7ubj2isrM3IpgyJaoRwNNKMCCEaVWL6eQBi+7ZtlIjGqkegF13aeGA0W2rmLxFCOAZpRoQQjabU8EtEM7aRIhqrqqimaq0aGVUjhGORZkQI0Wh+PpJHRaWFjn7u9Gnr3ei/39rgbD6aT2G5RDVCOAppRoQQjaaxR9H8WvdAL7oFeFZFNYckqhHCUdSrGVmwYAHh4eF4e3vj7e1NZGQka9asueb2GzduRKPR/OZx5MiRmy5cCGFbSgwmNmQ07iia2sioGiEcT72akfbt2/Ovf/2L1NRUUlNTueOOOxg/fjwHDx687n4ZGRlkZ2fXPLp163ZTRQshbM9Ph3MxmCyE+nvQO7jxIxor62ysyccuUFgmUY0QjqBezci4ceOIiYmhe/fudO/enbfeegtPT0+2b99+3f0CAgIICgqqeeh0upsqWghhe6wRTUzfoCaJaKy6BXrRPdCTSrPCukM5TfY6Qojm0+B7RsxmM0uXLqW0tJTIyMjrbhsREUFwcDAjR45kw4YNN/zdBoOBoqKiqx5CCNtVYjCx8egFoGpIb1OzvkaSRDVCOIR6NyPp6el4enri4uLClClT+O677+jdu3et2wYHB7No0SISEhJYvnw5PXr0YOTIkWzevPm6rzF79mx8fHxqHiEhIfUtUwjRjH46nIvRZKGzvwe9gr2a/PViw4MASD6WL1GNEA5AoyiKUp8djEYjmZmZFBQUkJCQwIcffsimTZuu2ZD82rhx49BoNKxcufKa2xgMBgwGQ83PRUVFhISEUFhYiLd302XRQoiGee7TVNYfymX6HV353agezfKad7+7mSM5xfzngXAeGiRfWISwRUVFRfj4+Nzw87veV0acnZ3p2rUrgwYNYvbs2fTr1485c+bUef9hw4Zx7Nix627j4uJSM2LH+hBC2Kbiiko2ZVRHNE04iubXrDeyygRoQti/m55nRFGUq65i3EhaWhrBwc33hiWEaFo/Hs7FaLbQpY0HPQKbPqKxiqlufLYcz+dyqbHZXlcI0fj09dn49ddfZ8yYMYSEhFBcXMzSpUvZuHEja9euBWDWrFmcO3eOTz/9FIB3332XTp060adPH4xGI59//jkJCQkkJCQ0/pEIIVRRM9FZeOOuRXMjXdp40ivYm8PZRaw7lMPDgzs022sLIRpXvZqR3NxcnnzySbKzs/Hx8SE8PJy1a9dy1113AZCdnU1mZmbN9kajkVdffZVz587h5uZGnz59SExMJCYmpnGPQgihisLySjYfzQcafy2auhgbHszh7CJW78+WZkQIO1bvG1jVUNcbYIQQzSth91l+980+ugV4sn7mrc3++qfyS7n97Y3otBp2vXEnrT2cm70GIcS1NdkNrEIIYWWdkj2mrzr3gVlnezVbFH44KBOgCWGvpBkRQjRIYXklyceafxTNr1lfWyZAE8J+STMihGiQ9YdyqTQrdA/0pHszjqL5NesQ360nLnKxpO4j+4QQtkOaESFEgyTuPw80z/Tv19PJ34OwdtaoJlfVWoQQDSPNiBCi3grLKkk+VjWKxjo1u5qsDVFi+nmVKxFCNIQ0I0KIevvhUA4mi0LPIC+6BqgX0VhZo5ptJy6SL1GNEHZHmhEhRL3VTHSm0iiaX+vg5054ex8sCqw9IKNqhLA30owIIerlcqmRLcerIpoYFUfR/JqsVSOE/ZJmRAhRL+uqI5pewd50aeOpdjk1rHOd7Dh1kbziCpWrEULUhzQjQoh6WV0T0ah/4+qVQlq70686qvlBohoh7Io0I0KIOrtcamTriYuAerOuXo91ArREmQBNCLsizYgQos5+OJiD2aLQO9ibzjYU0Vj9EtVckqhGCDsizYgQos6sVxzUnP79etq3cqd/iC+KjKoRwq5IMyKEqJOLJYaaiMZWhvTWZmx1o7RaRtUIYTekGRFC1MkPB3MxWxTC2nnTyd9D7XKuaUx1o7Tr9CVyiySqEcIeSDMihKgT61Traq9FcyPtfN0Y0KEqqlkjN7IKYRekGRFC3FB+iYFtdhDRWMWGW9eqkWZECHsgzYgQ4obWHsjBokB4ex86+LmrXc4NxVTPgbLr9GVyCiWqEcLWSTMihLgh6xTrtji3SG2CfdwY2LEVAElydUQImyfNiBDiui4UG9hxyn4iGitrrdKMCGH7pBkRQlzX2oNVEU2/9j6EtLb9iMbKehUn9cxlsgvLVa5GCHE90owIIa4rcX/1KBobnejsWoJ8XBncyRrVyARoQtgyaUaEENeUV1zBjlOXAPu5X+RK1qjG2lAJIWyTNCNCiGtaeyAHRYH+Ib60b2U/EY3VmL7BaDSwJ7OAcwUS1Qhhq6QZEUJck3VK9bF2FtFYBXq7MrhTa0AmQBPClkkzIoSoVW5RBbtOV0U0Y+wworGStWqEsH3SjAgharUmPRtFgQEdfGnn66Z2OQ12d1gQGg3szSrg7OUytcsRQtRCmhEhRK2sU6nb442rVwrwcmVITVQjo2qEsEXSjAghfiOnsILUM5cB+29G4IqoRu4bEcImSTMihPiNNQeqIpqBHVvR1o4jGqvRYUFoNbAvq4CsSxLVCGFrpBkRQvyGdS0ae5r+/XoCvFwZGuoHyPTwQtiiejUjCxYsIDw8HG9vb7y9vYmMjGTNmjXX3WfTpk0MHDgQV1dXOnfuzMKFC2+qYCFE08ouLHeoiMbKOoNsojQjQticejUj7du351//+hepqamkpqZyxx13MH78eA4ePFjr9qdOnSImJobo6GjS0tJ4/fXXiYuLIyEhoVGKF0I0PuvU6YM7tSLIx1XlahrP3dVRzf6zhWRelKhGCFtSr2Zk3LhxxMTE0L17d7p3785bb72Fp6cn27dvr3X7hQsX0qFDB95991169erF5MmTeeaZZ3j77bcbpXghROOrWYvGga6KAPh7uhDZpSqqkasjQtgWfUN3NJvNfPPNN5SWlhIZGVnrNtu2bWPUqFFXPTd69GgWL15MZWUlTk5Ote5nMBgwGAw1PxcVFTW0zOvKulTGFzsyMZjMTfL7hbA35wvK2ZNZAMCu05c542A3e+6ujp/+vfYIecUVKlcjhO0I8nblqRGdcNHrVHn9ejcj6enpREZGUlFRgaenJ9999x29e/eudducnBwCAwOvei4wMBCTyUR+fj7BwbV/85o9ezZ///vf61tavX22/QyLNp9s8tcRwh45+tWDj7acVrsEIWzKgI6tapZPaG71bkZ69OjB3r17KSgoICEhgUmTJrFp06ZrNiQajeaqnxVFqfX5K82aNYuZM2fW/FxUVERISEh9S72hiZEd2ZRxgYzcYgBauTvx0OAQ9Npr1yaEI3tvwwkAvFz0TBzeUeVqmob1GLUaePG2LipXI4Q68ouNfL07i+qPZO4b0I4BHVqpVk+9mxFnZ2e6du0KwKBBg9i1axdz5szh/fff/822QUFB5ORcPeNhXl4eer0ePz+/a76Gi4sLLi4u9S2t3tq3cuf7aSP4+6qDfLUzi8tllaRlFjD30QgCvR3nxj0h6uLs5TLe23ACjQZ++t2tBDjo/wPtW7kza3k6vYK9+f3onmqXI0Sz23o8n7ile1EUcHPS8Y/xfXhwUON/4a+Pm55nRFGUq+7vuFJkZCTr16+/6rl169YxaNCga94v0txcnXTMvi+cOY/0x8NZx85TlxgzJ5mNGXlqlyZEs7JOlT6kU2uHbUQARvcJQqfVcPB8EafyS9UuR4hmY7YovLP+KI8v3kF+iYHugZ6snDZC9UYE6tmMvP766yQnJ3P69GnS09N544032LhxI48//jhQFa9MnDixZvspU6Zw5swZZs6cyeHDh1myZAmLFy/m1VdfbdyjaATj+7dj1fQoegV7c6nUyFMf7eLfa49gMlvULk2IZmGdKt06dbqjau3hzPAuMgGaaFlyiyp4/MPtxP90DEWBhweF8P3UKLoFeqldGlDPZiQ3N5cnn3ySHj16MHLkSHbs2MHatWu56667AMjOziYzM7Nm+9DQUJKSkti4cSP9+/fnzTffJD4+nvvvv79xj6KRdG7jyXcvDefJYVVZ+YKNJ3hk0XbOF5SrXJkQTSvrUhn7sgrQaqqmTnd0NWvV7JdmRDi+zUcvEDMnme0nL+HurOPdh/vz7wfCcXNWZ+RMbTSK9Y5SG1ZUVISPjw+FhYV4e3s3y2sm7s/mtYT9FBtM+Lo78d8H+zGyV+CNdxTCDr2/6QSz1xwhsrMfXz0/TO1ymtzlUiOD3/oRk0Xhp9/dSpc2nmqXJESjM5ktvLP+KPM3Vt203SvYm/cei6BzM/691/XzW9amuYbY8GBWx0XRt50PBWWVPPtJKm8lHsJokthGOB7rMN5YB49orFp5ODOiqz8ASXJ1RDig7MJyHv1ge00j8vjQDnz30vBmbUTqQ5qR6+jo58G3L0by9IhOAHyQfIqH3t8mq34Kh5J5sYz9ZwvRaqqmTG8pZK0a4ag2HMkjZk4yu05fxtNFz7zHInjr3r64OtlOLPNr0ozcgItex1/H9eH9Jwfi7apnb1YBsfHJ/HAw58Y7C2EHrB/Gwzr74e/Z9EPqbcWo3oHotRqO5BRzPK9E7XKEuGmVZguzkw7z9Me7uFxWSVg7bxLjohgb3lbt0m5ImpE6Gt0niMS4aPqH+FJUYeKFz3bzt5UHZSp5YfeSWlhEY+Xr7kxUt+qoRq6OCDt39nIZD72/jferZxV/angnEl4cTkc/D5UrqxtpRuohpLU7X78QyXPRoQB8vPU0DyzYxpmLMleBsE9nLpaSfq46ounTciIaK+tigIly34iwY+sO5hAbn0JaZgFernoWPjGAv93TR7V1ZhpCmpF6ctZreSO2N4snDcLX3Yn0c4WMjU+RNzNhl6wRzfAu/vi1oIjGalTvIJx0GjJyizlWvSyEEPbCaLLw91UHef6z3RSWV9IvxJekuGjuDrO/q5zSjDTQyF6BJMVFM6hjK4oNJqZ+uYc/rUinolJiG2E/rE10S4torHzcnYju1gaQG1mFfcm8WMYDC7fWLPg4OSqUb16IJKS1u7qFNZA0Izehra8bXz0/jJeqF9v6fHsm987fyskLcjOcsH2n8ks5eL4InVbD6BYY0VhJVCPsTVJ6NrHxyew/W4iPmxMfThzEn8b2xllvvx/p9lu5jXDSafnD3T355JkhtPZw5nB2EePmpvD93nNqlybEdSXVRDR+tPZwVrka9dzZOxBnnZZjeSUclahG2LCKSjN/XnGAl77YQ7HBxMCOrUiaEc2dve1/Qk5pRhrJrd3bsGZGNENDW1NqNDNj6V5eS9hPuVFiG2GbrFOhO/paNDfi4+bELd2rRtXI9PDCVp3KL+X+BVv5bPsZAKbc2oWlzw+jna+bypU1DmlGGlGgtytfTB5K3MhuaDSwdFcWE97bwvE8+bYlbMuJCyUczi5Cr9UwqnfLjWisaiZA238eO1ghQ7QwK/edZ2x8MgfPF9Haw5mPnx7Ma2N64qRznI9wxzkSG6HXaZl5V3c+f3Yo/p4uZOQWM27uFr7dfVbt0oSoYZ0CfXhXf1q14IjGamSvqqjmxIVSMiSqETaiotLMrOXpxH2VRqnRzJDQ1iTFRXNbjwC1S2t00ow0kRFd/UmaEcWIrn6UV5p59Zt9/O7rfZQZTWqXJkTNyJGxfVt2RGPl7erELd2rRtXIWjXCFhzPK2HCe1v4amcmGg1Mv6MrX04eSpCPq9qlNQlpRppQgJcrnz4zlJl3dUergYQ9Z7ln3hYycuSbl1DP8bwSjuQUV0U0fez/xrfGYr13ZnV6tkQ1QlXL95zlnnkpHMkpxt/Tmc+eGcrvRvVA70CxzK857pHZCJ1WQ9zIbnz53DACvV04nlfCPfNSWLozU97whCqso2iiuvnj6y4RjdXIXgE467WcvFDKEfnCIFRQZjTx+2/2MfPrfZQZzQzv4kdSXHTNsgWOTJqRZjKsc9Uf1S3d22AwWXhteTovL9tLiUFiG9G8aiY6k4jmKl6uTtxWHdXInCOiuR3NLWb8vC18s/ssWg28cmd3Pnt2KAHejhnL/Jo0I83Iz9OFj58azB/u7oFOq+H7vee5Z24KB88Xql2aaCGO5RaTkVuMk05G0dSmZlSNRDWimSiKwte7srhnXgrH8koI8HLhi8nDmHFnN3RajdrlNRtpRpqZVqvhpdu6suz5YQT7uHIyv5R751eNHZc3P9HUrDeuRndrg4+7k8rV2J6RvQJx0Ws5lV/KoewitcsRDq7UYOKVZXv5Q8J+KiotRHfzJ2lGNJFd/NQurdlJM6KSQZ2qhmiN7BmA0WThzysOMO2rNIoqKtUuTTgwiWiuz9NFz+3VwyYlqhFN6dD5qtm6V+w9j06r4feje/DJ00Pwb4ELVoI0I6pq5eHMh5MG8UZML/RaDYn7sxkbn0L6WYltROM7mlvMsbwSnHVah5g+uqlIVCOakqIofLHjDBPmb+FkfilB3q4sfX4YU2/virYFxTK/Js2IyjQaDc/d0pmvp0TSzteNzEtl3L9gKx9vOSVvhKJRWac6j+7mj4+bRDTXckfPAFz0Ws5cLOPgeYlqROMprqhk+ldpvPHdAYwmC3f0DCBpRjSDO7VWuzTVSTNiIwZ0aEVSXDSjegdiNFv426pDTPl8N4VlEtuIm6coSs2Q3tgWvhbNjXi46LmjZ3VUky5RjWgcB84VMnZuCqv3Z6PXang9picfThzUohepvJI0IzbEx92J958cyF/H9cZJp+GHg7nEzk0mLfOy2qUJO3c0t4TjEtHU2S9r1UhUI26Ooih8svU0983fypmLZbTzdePrKZE8f0uXFh3L/Jo0IzZGo9Hw9IhQEl4cTofW7py9XM6DC7fxweaT8qYoGixx/3kAbuneBm9XiWhu5I6eAbg6acm8VMaBcxLViIYpLK/kxc/38NeVBzGaLdzVO5DEuCgGdGildmk2R5oRGxXe3pfVcVHE9g3GZFF4K+kwkz9J5XKpUe3ShJ1RFIXV1rVoJKKpE3dnPSN7Vl1BWp1+XuVqhD3am1VAbHwyaw/m4KTT8JexvVn05ECZ9fgapBmxYd6uTsx7LII3J4ThrNfy05E8YuOTST19Se3ShB05klPMyQulOOu1jOzleKt9NhWJakRDKIrCh8kneXDhVs5eLiektRvfThnOM1GhaDQSy1yLNCM2TqPR8OSwjnz30nBC/T04X1jBw4u2M3/jcSwWeYMUN2adL+O27m3wkoimzm7vEYCbk46zl8vZL8PtRR0UlBl57tNU/pl4mEqzwpiwIFZPj6ZfiK/apdk8aUbsRJ+2PqyaHsX4/m0xWxT+szaDpz/excUSg9qlCRumKErNiBAZRVM/bs66mitJMqpG3MjuM5eImZPMj4fzcNZpeXN8H+Y/PkCG0deRNCN2xNNFz7sP9+df9/XFRa9l09ELxMQns+PkRbVLEzbqUHYRp/JLcdFrGdlLRtHU11iJasQNWCwKCzed4KH3t3O+sIJOfu4sf2k4T0Z2klimHqQZsTMajYZHhnTg+2kj6NLGg9wiA49+sJ25Px3DLLGN+JWaiKZHGzxd9CpXY39u6xGAu7OOcwXl7M0qULscYWMulhh45pNd/GvNEcwWhXv6tWV1XDRh7XzULs3uSDNip3oGebNqehT3D2iPRYH/rj/KxCU7uFAssY2ocvVEZ21VrsY+uTrpaq4oJUlUI66w89QlYuKT2ZhxARe9ltn39WXOI/2l6W+gejUjs2fPZvDgwXh5eREQEMCECRPIyMi47j4bN25Eo9H85nHkyJGbKlxUDT/870P9ePvBfrg56dhy/CJj5iSz5Xi+2qUJG3DwfBGnL5ZVRTQ9ZRRNQ1kXFZSoRkBVLDPv52M8smgbuUUGOrfxYMXUETw6pIPEMjehXs3Ipk2bmDp1Ktu3b2f9+vWYTCZGjRpFaWnpDffNyMggOzu75tGtW7cGFy2u9sDA9qycNoIegV7klxh4YvEO3ll/VGKbFs560+UdPQPwkG9rDXZbjzZ4OOs4X1hBmkQ1LdqFYgOTPtrJ2+uOYlHgvoh2rJoWRa9gb7VLs3v1eodau3btVT9/9NFHBAQEsHv3bm655Zbr7hsQEICvr2+9CxR10y3QixVTR/D3VQdZuiuL+J+OsfPUReY8EkGgt6va5YlmpihKzf0iMorm5rg66bizdyDf7z1P4v5smT2zhdp6PJ8Zy/ZyodiAq5OWN8eH8eCgELXLchg3dc9IYWHV2PvWrW+84mBERATBwcGMHDmSDRs2XHdbg8FAUVHRVQ9xY27OOv51fzhzHumPh7OO7SerhpptOnpB7dJEMztwrojMS2W4OmlrFn0TDWeNapLSs2V+nxbGbFH4v/VHeXxx1T153QM9WTUtShqRRtbgZkRRFGbOnElUVBRhYWHX3C44OJhFixaRkJDA8uXL6dGjByNHjmTz5s3X3Gf27Nn4+PjUPEJC5KTXx/j+7Vg1verS4cVSI5OW7OTfa49gMlvULk00E+sU5iN7BuLuLBHNzbqle9VopOzCCtKyZOHKliKvqIInPtzBnJ+OoSjw0KD2fD81im6BXmqX5nA0SgPvyJo6dSqJiYmkpKTQvn37eu07btw4NBoNK1eurPXfDQYDBsMvo0KKiooICQmhsLAQb2/J5uqqotLMPxMP8fn2TAAGdWxF/KMRtPV1U7ky0ZQURSH6Pxs4e7mc+Y8PIKavxDSN4ZVle/ku7RxPj+jEX8f1Ubsc0cQ2H73AK8v2crHUiLuzjrfuDePeiPp91omqz28fH58bfn436MrI9OnTWblyJRs2bKh3IwIwbNgwjh07ds1/d3Fxwdvb+6qHqD9XJx3/nNCXeY9F4OmiJ/XMZWLik/n5SK7apYkmtP9sIWcvl+PmpOP2HhLRNBaJaloGk9nC//5whEkf7eRiqZGeQV6smh4ljUgTq1czoigK06ZNY/ny5fz888+EhoY26EXT0tIIDpZva81lbHhbEuOi6NvOh4KySp75OJX/STpMpcQ2DqlmFE2vANycdSpX4ziiu/vj5aInt8jAnkyJahxRdmE5j32wg/c2nEBR4PGhHVgxdQRd2niqXZrDq1czMnXqVD7//HO+/PJLvLy8yMnJIScnh/Ly8pptZs2axcSJE2t+fvfdd1mxYgXHjh3j4MGDzJo1i4SEBKZNm9Z4RyFuqKOfB9++GMlTwzsBsGjzSR5cuI2zl8vULUw0qitH0YyVeKZRueh13NW7agK01ftlAjRHs+FIHjFzktl5+hKeLnrmPhrBW/f2xdVJGvrmUK9mZMGCBRQWFnLbbbcRHBxc81i2bFnNNtnZ2WRmZtb8bDQaefXVVwkPDyc6OpqUlBQSExO57777Gu8oRJ246HX87Z4+LHxiIN6uevZmFRAzJ5kfDuaoXZpoJPvOFnKuoBx3Zx23SUTT6KzDpCWqcRyVZguzkw7z9Me7uFxWSVg7b1ZPj2JcP5m1uDk1+AbW5lTXG2BE3WVdKmPaV2nsq57E6ekRnZg1phfOelkhwJ69lXiID5JPMa5fW+Y+GqF2OQ7HYDIz6J8/Ulxh4usXIhkSeuNpDYTtOldQzvQv97AnswCAp4Z3YlZMT1z0cjWksTTpDazC/oW0duebFyJ5Lrrqvp+PtpzmgYVbybwosY29umqiM4lomoSLXseo3kEAJO4/r3I14masP5RLzJxk9mQW4OWqZ+ETA/jbPX2kEVGJNCMtmLNeyxuxvflw4iB83Z3Yf7aQ2PhkWRDMTqVlFXC+sAIPZx239WijdjkOa6w1qjmQI0su2CGjycI/Vh3iuU9TKSyvpF97H5Liork7TBp4NUkzIrizdyBJcdEM7NiKYoOJl77Yw59XHKCi0qx2aaIerFdF7uwdKDfdNaERXf3xdtVzodjArtOX1C5H1EPWpTIeXLiVJVtOAfBsVCjfTBlOSGt3lSsT0owIANr6urH0+WG8eFsXAD7bfob75m/lVP6NF0EU6rNYlJorWhLRNC1nvZbRfaxRjVxFtBdrD2QTE5/MvrOF+Lg58cHEQfx5bG+5T85GyFkQNZx0Wv54d08+fnowrT2cOZRdxNj4ZL7fe07t0sQNpGVdJruwAk8XPbd0l4imqcVURzVrJKqxeRWVZv76/QGmfL6H4goTAzr4kjQjumaYtrAN0oyI37itRwBJcdEMCW1NqdHMjKV7mbV8v8Q2Nsw678WdvQIkomkGI7r44+PmRH6JgZ2nJKqxVafzS7l/wVY+2XYGgBdu7cyyFyJpJ0ti2BxpRkStgnxc+XLyUKbf0RWNBr7amcX4eVs4nleidmniVywWhTXpVXPFxIbL3AjNoSqqqfpmnZguo2ps0cp95xk7N4WD54to7eHMR08PZtaYXjjp5GPPFslZEdek12n53agefPbMUPw9XcjILWbc3BQSdp9VuzRxhT2Zl8kpqsDLRU90N3+1y2kxrI3f2gM5siK2DamoNDNreTpxX6VRYjAxpFNrkuKiZZ0mGyfNiLihqG7+JM2IYngXP8orzfzum328+s0+yowmtUsT/BLR3CWjaJrV8C5++Lo7kV9ilKjGRpy4UMKE97bw1c5MNBqYfkdXvnxuKEE+rmqXJm5AmhFRJwFernz27FBm3tUdrQa+3X2W8fO2cDS3WO3SWrSrRtGEyyia5uSk03J39aia1TI3j+q+SzvLuLkpHMkpxt/TmU+fGcLvRvVAL7GMXZCzJOpMp9UQN7IbX0weRoCXC8fySrhnXgrLdmViB6sKOKTUM5fJKzbg5aonSiKaZmdtACWqUU+50czvv9nHK8v2UWY0E9nZj6S4aKK7yagyeyLNiKi3yC5+JM2IJrqbPxWVFv6YkM4ry/ZSYpDYprlZpyQf1TtIprFWQWRnP1q5O3Gp1Mj2kxLVNLejucXcMy+Fb3afRaOBl+/sxueThxLgLbGMvZFmRDSIv6cLnzw9hD/c3QOdVsOKvee5Z24Kh84XqV1ai2G2KCQdqBpFM1YiGlXoddqaacRlVE3zURSFr1OzuGdeCsfySmjj5cIXk4fy8p3d0Wk1apcnGkCaEdFgWq2Gl27rytLnhxHs48rJ/FImzN/C59vPSGzTDHadvsSFYgPernpGdJWIRi3WGW/XHsihUqKaJldqMPG7r/fxh2/3U1FpIbqbP2tmRDO8i/w/YM+kGRE3bXCn1iTGRXNHzwCMJgt/WnGAaV+lUVxRqXZpDs06FfmoPkEypbWKhnVuTWsPZy6XVbL95EW1y3Foh7OLGDcvheVp59Bq4Peje/DJ00Pw93RRuzRxk+QdTDSK1h7OfDhxEK/H9ESv1ZC4P5uxc1NIP1uodmkOyWxRWHPAOtGZRDRqqopqZK2apqQoCl/uyGTCe1s4eaGUIG9Xlj4fydTbu6KVWMYhSDMiGo1Wq+H5W7rw9ZSq6ZbPXCzj/gVb+XjLKYltGtnOU5fILzHg4+bECLk8rbqx1qjmoEQ1ja24opK4pXt5/bt0DCYLt/doQ9KMquUqhOOQZkQ0ugEdWpEUF82o3oEYzRb+tuoQL36+h8JyiW0ai/VmydF9AiWisQFDQlvj7+lMQVklW09IVNNYDpwrZNzcFFbtO49eq2HWmJ4snlS1kKdwLPIuJpqEj7sT7z85kL+O642TTsPagznExiezN6tA7dLsnslsYe0BWYvGllwd1ciompulKAqfbjvNffO3cvpiGe183Vj2QiQv3NpFYhkHJc2IaDIajYanR4SS8OJwOrR25+zlch5YsJUPk09KbHMTqiIaI77uTgzv4qd2OaJabN+qxvCHg7kYTRLVNFRheSUvfbGHv3x/EKPZwp29AkmMi2Jgx1ZqlyaakDQjosmFt/dldVwUMX2DMFkU/pl4mOc+TaWgzKh2aXbJOvX43X2CZAVSG1IV1bhQWF7JlhP5apdjl/ZlFTB2bjJrDuTgpNPw57G9+WDiQHzdJZZxdPJOJpqFt6sT7z02gDcnhOGs1/Lj4Txi5iSz+4zMWlkfV0c0MorGlui0GmL6yqiahlAUhcUpp3hg4VayLpUT0tqNb6cM59moUDQaiWVaAmlGRLPRaDQ8Oawj3700nFB/D84XVvDQ+9tZsPEEFovENnWx/eQlLpUaaeXuRGRniWhsTUz1qJp1B3MkqqmjgjIjz326mzdXH6LSrDAmLIjV06PpF+KrdmmiGUkzIppdn7Y+rJoexT392mK2KPx77RGe+WQXF0sMapdm8xKtEU1YkKxGaoMGd2pNGy8XiipMbDkuUc2N7D5zmdj4FH48nIuzTss/xvdh/uMD8HFzUrs00czk3UyowtNFz5xH+jP7vr646LVszLhATHwyO2QGy2uqimiqmhHrzZLCtui0GmKqR9WslqjmmiwWhfc3neDh97dxrqCcTn7uLH9pOBMjO0ks00JJMyJUo9FoeHRIB76fNoIubTzILTLw6AfbmfvTMcwS2/zGtpMXuVxWSWsPZ4Z1lgmfbJV1uPW6QzkYTGaVq7E9l0qNPPvJLmavOYLJojCuX1tWTY8irJ2P2qUJFUkzIlTXM8ibldOiuG9AOywK/Hf9USYt2cmFYoltrmS9KVIiGts2qGMrArxcKK4wkXJMopor7Tx1iZg5yWzIuICLXsv/3NuX+Ef64+UqsUxLJ+9owiZ4uOh556H+/O8D4bg56Ug5nk9MfDJbJXcHoNJsYe3BqlE01qnHhW3SajU1N7LKqJoqFovCexuO8+gH28kpqqBzGw9WTB3BY0M7SCwjAGlGhI15cFAIK6eNoHugJxeKDTy+eAfvrD/a4mObrScuUlBWib+ns6zJYQfGVg+7Xn8ol4rKlh3V5JcYmPTRTv73hwzMFoX7ItqxaloUvYK91S5N2BBpRoTN6RboxfdTo3h4UAiKAvE/HePxD7eTW1ShdmmqsU4xLhGNfRjQoRVB3q4UG0wkt+CoZuuJfMbMSSb5WD6uTlr+80A4/32oHx4uerVLEzZG3tWETXJz1vHvB8J59+H+uDvr2H6yKmvefPSC2qU1O6PJwg8HcwEZRWMvro5qWt5aNWaLwrs/HuWJD3dwodhAtwBPVk6L4qFBIRLLiFrVqxmZPXs2gwcPxsvLi4CAACZMmEBGRsYN99u0aRMDBw7E1dWVzp07s3DhwgYXLFqWCRHtWD296pLuxVJj9eXeI5ha0DLtW07kU1heib+ni0Q0diQ2vGqI74+H81pUVJNXVMGTi3fw7o/HsCjw0KD2rJwWRfdAL7VLEzasXs3Ipk2bmDp1Ktu3b2f9+vWYTCZGjRpFaWnpNfc5deoUMTExREdHk5aWxuuvv05cXBwJCQk3XbxoGTq38eS7l4bz+NAOKAq8t+EEj36wnezCcrVLaxZJ1TdBjgkLQicrltqNiJBWBPu4UmIwtZgresnHquYL2nriIu7OOt55qB//eaAfbs46tUsTNk6j3MTyqRcuXCAgIIBNmzZxyy231LrNH//4R1auXMnhw4drnpsyZQr79u1j27ZtdXqdoqIifHx8KCwsxNtbbnpqyVbvP89rCemUGEy0cnfinYf6c3vPALXLajJGk4VB/1xPUYWJpc8PY5hMAW9X3lx9iMUppxjfvy1zHolQu5wmYzJbePfHY7y38TiKAj2DvJj32AC6BniqXZpQWV0/v2/qnpHCwkIAWre+9qXjbdu2MWrUqKueGz16NKmpqVRWVta6j8FgoKio6KqHEABjw9uyenoUYe28uVxWydMf72J20mEqHTS22XI8n6IKE228XBjcSSIae2NdzPBHBx5Vk1NYwWMf7GDehqpG5LGhHVgxdYQ0IqJeGtyMKIrCzJkziYqKIiws7Jrb5eTkEBgYeNVzgYGBmEwm8vNrv8t89uzZ+Pj41DxCQkIaWqZwQJ38PUh4cThPDe8EwPubT/LQ+9s4e7lM3cKagHVK8RiJaOxSRIgv7XzdKDWa2ZjheFHNhow8YuKT2Xn6Ep4ueuIfjeB/7u2Lq5PEMqJ+GtyMTJs2jf379/PVV1/dcNtf3z1tTYaudVf1rFmzKCwsrHlkZWU1tEzhoFz0Ov52Tx8WPjEAL1c9aZkFxMansK56YjBHYDCZWXeo6nisU4wL+6LRaIjpW3Ujq3WRQ0dQabYwe81hnv5oF5dKjfRp683q6sUvhWiIBjUj06dPZ+XKlWzYsIH27dtfd9ugoCBycq7+gMjLy0Ov1+PnV3v+7eLigre391UPIWpzd1gwSXFVy40Xllfy/Ge7+fuqgw6xfHvKsXyKK0wEeLkwqGMrtcsRDWRtJH86nEu50f6jmnMF5TyyaDvvbzoJwKTIjiS8OJxO/h4qVybsWb2aEUVRmDZtGsuXL+fnn38mNDT0hvtERkayfv36q55bt24dgwYNwslJ1iMQNy+ktTvfvBDJ5Kiqv8ePtpzmgYVbybxo37GNdSrxmL7BaCWisVv92vvQzteNMqOZjRl5apdzU9YfyiVmTjK7z1zGy1XPgscH8PfxYRLLiJtWr2Zk6tSpfP7553z55Zd4eXmRk5NDTk4O5eW/DLGcNWsWEydOrPl5ypQpnDlzhpkzZ3L48GGWLFnC4sWLefXVVxvvKESL56zX8qexvflw4iB83JzYf7aQ2Phk1tjppfGKSjPrD1VNdGadWlzYJ41GU3MOV9vp36PRZOHN1Yd47tNUCssr6dfeh8Tp0YyRdZJEI6lXM7JgwQIKCwu57bbbCA4OrnksW7asZpvs7GwyMzNrfg4NDSUpKYmNGzfSv39/3nzzTeLj47n//vsb7yiEqHZn70CSZkQzsGMrig0mXvxiD3/5/oDdjWRIPpZPscFEkLcrAzpIRGPvrLOx/nw4z+6imqxLZTz4/jYWp5wC4JkRoXwzZTgd/NxVrkw4knotEFCXKUk+/vjj3zx36623smfPnvq8lBAN1s7XjaXPD+O/646ycNMJPt12ht1nLjPvsQGE2kmunVT9DXpM3yCJaBxAeHsf2rdy4+zl8qoRKHZyRWHtgWx+/+1+iitM+Lg58faD/bird+CNdxSinmRtGuGQnHRaXhvTk4+eHkxrD2cOni9ibHwyK/fZ/johEtE4Ho1GUzPniPVeIFtmMJn56/cHmPL5HoorTAzo4EtiXJQ0IqLJSDMiHNrtPQJIiotmSKfWlBrNxH2Vxqzl6TYd22w+eoESg4lgH1ciQiSicRRjqxc5/OlILmVGk8rVXNvp/FLuX7CVT7adAeCFWzuz7IVI2reSWEY0HWlGhMML8nHly+eGMv2Ormg08NXOTCa8t4XjeSVql1Yr63wUMorGsYS186ZDa3cqKi38fMQ2R9Ws3n+esXNTOHCuiFbuTnz01GBmjemFk04+KkTTkr8w0SLodVp+N6oHnz4zBH9PZ47kFHPPvBSW7zmrdmlXqag082N1RBMrEY1DseWopqLSzOvfpTPtyzRKDCYGd2pF0oxoh173SdgWaUZEixLdrQ1JcdEM7+JHmdHMzK/38ftv9tnMZfONGRcoNZpp5+tGRIiv2uWIRhZrHVVzJI9Sg238zZ24UMKE97bw5Y5MNBqYdntXvnpuGME+bmqXJloQaUZEixPg7cpnzw7llTu7o9XAN7vPMn7eFo7mFqtd2hURTdA1l0sQ9qtPW286+bljMFn4yQaimu/SzjJubgpHcorx83Dm02eG8OroHugllhHNTP7iRIuk02qYcWc3vpg8jAAvF47llXDPvBS+3pVVpyHsTaHcaOanw9aIRtb4cERXRzXqjewqN5r5w7f7eGXZPsqMZiI7+7FmRjTR3dqoVpNo2aQZES1aZBc/kmZEE93Nn4pKC39I2M/Mr/epcgl9Y0YeZdURTb/2Ps3++qJ5WOcY2ZBRNWqquR3LLWb8eyl8nXoWjQZmjOzG55OHEuDt2uy1CGElzYho8fw9Xfjk6SH8fnQPdFoN36WdY9zcFA5nFzVrHdaIJjY8WCIaB9Y72JtQfw+MJkvNlbDm8k1qFuPmpXA0t4Q2Xi588exQXrmrOzoZtSVUJs2IEIBWq2Hq7V1Z+vwwgrxdOZlfyvj3tvDFjjPNEttURTRV9xDE2snsnKJhNBpNzTlurlE1pQYTM7/ey++/3U9FpYXobv5VN3J39W+W1xfiRqQZEeIKgzu1rhrS2KMNRpOFN747wPSv0iiuqGzS192QkUd5pZn2rdwIl4jG4VnvG9l49EKT/20dySmqHsZ+Dq0Gfj+6B588PYQ2Xi5N+rpC1Ic0I0L8SmsPZxZPGszrMT3RazWs3p9dPRFUYZO9pvUbskQ0LUPPIC86t7FGNU0zqkZRFL7amcn4eVs4caGUIG9Xlj4fydTbu8pkesLmSDMiRC20Wg3P39KFZS9E0s7XjTMXy7hv/lY+2Xq60WObMqOJn45Ur0XTV0bRtAQajYax1VHN6iaIaoorKolbupdZy9MxmCzc1qMNSTOiGRLautFfS4jGIM2IENcxsGOrmgXCjGYLf115kBc/30NheeNdWv/5SB4VlRY6tHYnrJ13o/1eYdusw7c3H71AUSNGNQfOFTJubgqr9p1Hp9Uwa0xPlkyqWjBSCFslzYgQN+Dr7syiJwfyl7G9cdJpWHswh9j4ZPZmFTTK75eIpmXqHuhJ1wBPjGZLzRIAN0NRFD7bdpr75m/l9MUy2vq48vULkbxwaxeJZYTNk2ZEiDrQaDQ8ExXKt1OGE9LajbOXy3lw4VY+TD55U7FNqcFUs2iajKJpWRpzVE1RRSVTv9zDn78/iNFs4c5egSTNiGZgR1n1WdgHaUaEqId+Ib6snh7NmLAgKs0K/0w8zHOf7qagzNig3/fTkTwMJgsd/dzp01YimpbGOqom+Vh+g6O/fVkFxMYnk5Seg5NOw59ie/HBxIH4ukssI+yHNCNC1JOPmxPzHx/Am+P74KzT8uPhXGLmJLP7zOV6/64ka0TTVyKalqh7oBfdGhjVKIrCkpRTPLBwK1mXymnfyo1vpgxncnRn+VsSdkeaESEaQKPR8GRkJ5a/NJxOfu6cL6zgofe3sXDTCSyWusU2JQYTGzKqI5pwiWhaqpq1atLrHtUUlBl5/rPd/GP1ISrNCnf3CSIxLpr+stKzsFPSjAhxE8La+bBqehTj+rXFbFH415ojPPPJLi6WGG6470+HczGYLIT6e9A7WCKalsp630jysQsUlt04qtmTeZnY+BTWH8rFWaflH+P7sOCJAfi4OTV1qUI0GWlGhLhJXq5OxD/Sn9n39cVFr2VjxgVi4pPZeerSdfdLlIhGAN0CvegR6EWlWWHdoZxrbmexKCzafIKHFm7jXEE5Hf3cWf7ScCZGdpK/H2H3pBkRohFoNBoeHdKBFVNH0LmNB7lFBh5ZtI15Px+rNbYprqhk49ELgEQ04sZRzaVSI5M/TeV/ko5gsiiMDQ9m9fQowtrJ0gHCMUgzIkQj6hXszappUdwX0Q6LAm+vO8qkj3Zyofjq2Oanw3kYTRY6t/GgZ5CXStUKWxFTHdWkHMv/zcisXacvERufzM9H8nDWa/mfe/sy99EIvFwllhGOQ5oRIRqZh4ue/z7Uj/88EI6rk5bkY/nExCez9Xh+zTbWKcDHSkQjgK4BnvQM8sJkUVh3sGpUjcWi8N6G4zyyaDvZhRV09vfg+6kjeGxoB/mbEQ5HmhEhmoBGo+GhQSGsmhZF90BPLhQbeHzxDv5v/VEKyoxsroloZC0aUcV6I+vq9GzySwxM+mgn//tDBmaLwr0R7Vg1PYpecqOzcFAapbFX/WoCRUVF+Pj4UFhYiLe3/M8o7Eu50cxfVx7g69SzVz3fpY0HP868Vb7lCgBOXChh5H83AeCs12I0WXB10vKPe8J4cFB7+TsRdqmun99yZUSIJubmrOM/D/Tj/x7uh7uzruZ5Hzcn+YARNTr5edT8t9FkoVuAJyunRfHQ4BD5OxEOT5oRIZrJvRHt+fK5YTU/78ks4O0fMjCZLSpWJWxBXnEFTy7ecdVz308bQfdAublZtAzSjAjRjE7klVz187wNx3nsgx1kF5arVJFQW8qxfGLmJLP1xMWa53RaDRWV0qSKlkOaESGakXUeiZfv7MbcRyPwdNGz8/QlYuYks6F69V7RMpjMFv67LoMnl+wgv8RIzyAvfpx5K33aemO2KPxw8NoToAnhaKQZEaKZFJZVknysehRN32DG9WtbPXGVN5fLKnn6413MTjpMpcQ2Di+nsILHPtzB3J+PoyjUTJjXNcDzlwnQ9td9rRoh7F29m5HNmzczbtw42rZti0ajYcWKFdfdfuPGjWg0mt88jhw50tCahbBL6w7lUGlW6BHoRbfqewE6+XuQ8OJwJkV2BOD9zSd5+P2q6b6FY9qYkVezXICHs474RyOYfV9fXJ2qbm62DvHdeiK/TmscCeEI6t2MlJaW0q9fP+bNm1ev/TIyMsjOzq55dOvWrb4vLYRds0Y0v57+3UWv4+/jw1jw+AC8XPXsySwgZk4y6+u5pLywbZVmC/9ac4SnPtrFpVIjfdp6szoumnv6XT3XTEc/D/q288GiwFqJakQLoa/vDmPGjGHMmDH1fqGAgAB8fX3rvZ8QjqCgzEjKsaoZWK1Tf//amL7BhLXzYdqXe9h3tpDnPk3lmRGhvDamJ856SVTt2fmCcqZ/lcbuM5cBmBjZkddjetVcDfm1mL7BpJ8rJHF/No8P7dicpQqhimZ7h4uIiCA4OJiRI0eyYcOG625rMBgoKiq66iGEPVt3MBeTRaFnkBddAzyvuV1Ia3e+mTKcZ6NCAViy5RQPLtxK1qWy5ipVNLIfD+USE5/M7jOX8XLRM//xAfxjfNg1GxH4JarZfvIi+RLViBagyZuR4OBgFi1aREJCAsuXL6dHjx6MHDmSzZs3X3Of2bNn4+PjU/MICQlp6jKFaFI1Ec01ropcyVmv5c9je/PBxEH4uDmx72whMfHJrD0gNzTaE6PJwj9XH2Lyp6kUlFUS3t6HxLjoa14Zu1IHP3fC21dHNQckqhGO76amg9doNHz33XdMmDChXvuNGzcOjUbDypUra/13g8GAwfDLt4GioiJCQkJkOnhhly6XGhn81o+YLAo//e5WurS59pWRXztXUM70L/ewJ7MAgEmRHZl1ncv7wjZkXSpj2ldp7MsqAGhQ3Pb+phPMXnOEyM5+fPX8sBvvIIQNsunp4IcNG8axY8eu+e8uLi54e3tf9RDCXq07lIPJotAr2LtejQhAO183lr0QyQu3dgbgk21nuH/BVk7nlzZFqaIRrD2QQ2x8MvuyCvB21bPoyYH8ZVzvet/3Y72CsuPURfKKK5qiVCFshirNSFpaGsHBN75UKYQjWF09X8TY8Ib9zTvptMwa04uPnhpMK3cnDp4vYuzcFFbtO9+YZYqbZDCZ+dvKg0z5fDdFFSYiOviSNCOaUX2CGvT7Qlq70y/EF4sCP0hUIxxcvZuRkpIS9u7dy969ewE4deoUe/fuJTMzE4BZs2YxceLEmu3fffddVqxYwbFjxzh48CCzZs0iISGBadOmNc4RCGHDLpUaa6b5rsu9Atdze88AkmZEM6RTa0oMJqZ/lcas5elUVJobo1RxE85cLOWBBdv4eOtpAF64pTNfvxBJ+1buN/V7x1b/zayWCdCEg6t3M5KamkpERAQREREAzJw5k4iICP7yl78AkJ2dXdOYABiNRl599VXCw8OJjo4mJSWFxMRE7rvvvkY6BCFs1w8HczBbFPq09SbU3+PGO9xAsI8bXz43lGm3d0Wjga92ZjLhvS2cuFBy451Fk1i9/zyx8SmknyuklbsTS54axKyYXjjpbv7C85i+VVdVdp6+RF6RRDXCcd3UDazNpa43wAhha574cAcpx/P5w909eOm2ro36u5OPXeCVZXvJLzHi7qzjrXvDuDeifaO+hri2ikozb64+xBc7qr58De7UivhHIwj2cWvU17l3/hbSMgv4+z19mDS8U6P+biGamk3fwCpES3CxxMDWE1UTndVlSG99RXdrQ1JcNJGd/Sgzmnll2T5+/80+yo0S2zS1kxdKuHf+Vr7YkYlGA1Nv78JXzw1r9EYEfvnbkbVqhCOTZkSIJrL2YA4WBcLaedPR7+YjmtoEeLvy+eShvHxnNzQa+Gb3We6Zl8LR3OImeT0BK9LOMXZuCoezi/DzcOaTp4fw+9E90TdCLFObMdXNyK4zl8iVqEY4KGlGhGgiSTUTnbW9wZY3R6fV8PKd3fli8lDaeLlwLK+Ee+al8HVqFnaQwtqNcqOZP367n5eX7aXMaGZY59YkzYjmlu5tmvR12/m6MaCDL4oCa9Ll6ohwTNKMCNEE8ksMbKseRdMUEU1thnfxZ82MaKK7+VNRaeEP3+7nd1/vo9RgapbXd2TH84qZ8N4WlqVmodHAjJHd+GLyMAK9XZvl9WPDqxraRGlGhIOSZkSIJrD2QFVEE97ehw5+Nze8sz78PV2qY4MeaDWwPO0c4+ZVRQqiYb7dfZZxc7eQkVtMGy8Xvnh2KK/c1R2dVtNsNcRUj6rZdfoyOYUS1QjHI82IEE3AerNhc10VuZJWq2Hq7V1Z+nwkQd6unLxQyoT3tvDljkyJbeqhzGhi5td7efWbfZRXmonq6k9SXDTDu/o3ey3BPm4M6tgK+CX+E8KRSDMiRCPLK65gx6nGmejsZgwJrbqn4bYebTCYLLz+XTpxS/dSXFGpWk324khOEePmprB8zzm0Gnh1VHc+fWYIbbxcVKsptnoGX4lqhCOSZkSIRvZDdUTTL8SXkNbNF9HUprWHM0smDWbWmJ7otBpW7TvPuLkpHDhXqGpdtkpRFJbuzGT8vC2cuFBKoLcLXz03jGl3dEPbjLFMbcaEBaPRwO4zlzlfUK5qLUI0NmlGhGhkNWvRqHhV5EparYYXbu3C1y9E0s7XjdMXy7hv/lY+3XZaYpsrlBhMzFi6l9eWp2MwWbi1e9U8LkM7+6ldGgBBPq4M7tgakKhGOB5pRoRoRHlFFew8fQn4ZSpvWzGwYysS46K4s1cgRrOFv3x/kJe+2ENhucQ2B88XMm5uCiv3nUen1fDamJ589NRg/DzVi2VqY72RVaIa4WikGRGiEa09mIOiQP8Q35teJK0p+Lo788HEgfx5bG+cdBrWHMhh7Nyq5e5bIkVR+Gz7Ge6dv5VT+aW09XHl6xeGMeXWLqrHMrUZ07cqqknLLOCcRDXCgUgzIkQjqolowm0joqmNRqPh2ahQvp0ynJDWbmRdKueBhVtZnHKqRcU2RRWVTPsyjT+vOIDRZOHOXgEkxkUzsDoKsUWB3q4M7lRVn0yAJhyJNCNCNJLcogp21UQ0ttuMWPUL8WX19GjGhAVRaVZ4c/Uhnvt0NwVlRrVLa3L7zxYwNj6FxPRs9FoNf4rtxQcTB9HKw1nt0m7I2uiulrVqhAORZkSIRrImPRtFgQEdfGnn2/gLpjUFHzcn5j8+gH+M74OzTsuPh3OJjU9h95nLapfWJBRF4aMtp7h/wVYyL5XRvpUb3744nMnRndFobC+Wqc3dYUFoNLA3q4CsS2VqlyNEo5BmRIhGYr2p0Dp1t73QaDRMjOzE8peG09HPnXMF5Tz8/jbe33QCi8VxYpvCskpe+Gw3f191iEqzwt19gkiMi6Z/iK/apdVLgJcrQ0Oro5oDcnVEOAZpRoRoBDmFFew6XXU1IcbGRtHUVVg7H1ZPj2JseDAmi8LsNUd49pNdXCq1/9gmLfMyMfHJrDuUi7NOy9/v6cOCJwbg4+akdmkNUrNWjUQ1wkFIMyJEI7DO+zCoYyuCfewjoqmNl6sTcx+N4H/u7YuzXsuGjAvEzElm56lLapfWIIqi8MHmkzy4cBvnCsrp6OdOwovDmTS8k93EMrW5u08QWg3sO1soUY1wCNKMCNEIfolobP/G1RvRaDQ8NrQD308dQec2HuQUVfDoB9t5b8Nxu4ptLpcamfxJKm8lHcZkUYgND2b19Cj6tvdRu7Sb1sbLhWHVk7HJnCPCEUgzIsRNOl9QXnPD55gw+29GrHoFe7NqWhT3RrTDbFH43x8ymPTRTvJLDGqXdkOppy8RE5/MT0fycNZreeveMOY9GoGXq33GMrWxrnskUY1wBNKMCHGT1hzIAWBwp1YE+biqXE3j8nDR885D/fjPA+G4OmlJPpbPmDnJbD2Rr3ZptbJYFOZvPM7Di7aTXVhBZ38PVrw0gseHdrTrWKY2d4dVRTXp5wrJvChRjbBv0owIcZMS958HINYO5hZpCI1Gw0ODQlg5LYpuAZ5cKDbwxIc7ePfHo5htKLbJLzHw1Me7+M/aDMwWhQn927JyehS923qrXVqT8Pd0IbKLRDXCMUgzIsRNOFdQzp7MAjQa+5jo7GZ0D/Ri5bQoHhrUHosC7/54jCcX7yCvqELt0th+8iIxc5LZfPQCrk5a/nN/OP/3cH88XfRql9akYvtWj6pJP69yJULcHGlGhLgJ1im5B3dqTaC3Y0U0tXFz1vGfB/rxzkP9cHfWsfXERWLik0k+dkGVeswWhfifjvHYB9vJKzbQNcCT76dG8dDgEIeLZWozuk8gOq2GA+eKOJ1fqnY5QjSYNCNC3AR7WIumKdw3oD0rp0XRM8iL/BIjE5fs5O0fMjCZLc1WQ15xBROX7OCd9UexKPDgwPasnDaCHkFezVaD2vw8XRguUY1wANKMCNFAWZfK2JtVFdHcHWafE53djK4BnqyYOoLHhnZAUWDehuM89sEOcgqbPrbZcjyfmDkpbDl+ETcnHe881I//fbAf7s6OHcvUJlZG1QgHIM2IEA1knYp7aGhrArwcP6KpjauTjv+5ty/xj0bg6aJnZ/WQ2g0ZeU3yemaLwjvrMnhi8Q7ySwz0DPJi1fQo7hvQvklezx6M7hOETqvhUHYRJy+UqF2OEA0izYgQDWT9Jmpva9E0hXv6tWXV9Cj6tPXmUqmRpz/axew1h6lsxNgmt6iCxz7YTvzPx1EUeHRICCumjqBrgGejvYY9auXhzIiu/sAvMwELYW+kGRGiAbIulbHvbCFaTdXU3AJC/T1IeHE4EyM7AvD+ppM8smg75wrKb/p3bzp6gTFzktlx6hIezjrmPNKf2feF4+qku+nf7Qhiq9dDSkzPUbkSIRpGmhEhGsD6DXRoqB9tvFxUrsZ2uDrp+Mf4MBY8PgAvVz27z1wmZk4y6w/lNuj3mcwW/r32CJOW7ORSqZHewd6sjotmfP92jVy5fRvVOwi9VsPh7CJOSFQj7JA0I0I0gCOtRdMUxvQNJnF6NP3a+1BYXslzn6by5upDGE11j23OF5TzyKLtLNh4AoAnh3Vk+UvDCfX3aKqy7dZVUY3cyCrskDQjQtRT5sUy9lsjmhY4iqauOvi5882U4TwzIhSAxSmnePD9bXVaZfanw7nExCeTeuYyXi565j8+gDcnhEkscx3WxliG+Ap7VO9mZPPmzYwbN462bdui0WhYsWLFDffZtGkTAwcOxNXVlc6dO7Nw4cKG1CqETbC+2Ud28cPfUyKa63HWa/nLuN58MHEQPm5O7MsqICY+mbUHav/ANJosvJV4iGc/SaWgrJLw9j4kxkXXLAonrm107yCcdBqO5BRzPK9Y7XKEqJd6NyOlpaX069ePefPm1Wn7U6dOERMTQ3R0NGlpabz++uvExcWRkJBQ72KFsAXWqbetU3GLG7urdyCJcVFEdPCluMLElM/38NfvD2AwmWu2ybpUxkPvb+OD5FMAPDMilG+mRNLBz12tsu2Kj7sTUdVRTeJ+uZFV2Jd6zxA0ZswYxowZU+ftFy5cSIcOHXj33XcB6NWrF6mpqbz99tvcf//99X15IVR1Or+UA+eK0Gk1jO4TqHY5dqV9K3e+fiGSt9dl8P6mk3yy7Qy7My8z79EBZOQW8/tv9lFUYcLbVc/bD/ZjlIxSqrfY8LZsyLhAYvp5ZtzZTe1yhKizJp+ucNu2bYwaNeqq50aPHs3ixYuprKzEycnpN/sYDAYMBkPNz0VFRU1dphB1Yo1ohnfxw08imnpz0mmZNaYXw0L9mPn1Xg6cK+K2tzfW/HtEB1/mPhpB+1ZyNaQh7uodiJNOw9HcEo7mFtM9sOVMjS/sW5PfwJqTk0Ng4NXfIAMDAzGZTOTn59e6z+zZs/Hx8al5hISENHWZQtRJzURncg/DTbm9ZwALnxj4m+c/e3aoNCI3wcfNiVu6tQFkenhhX5plNM2vV89UFKXW561mzZpFYWFhzSMrK6vJaxTiRk7ll3IouyqikQjh5iTuz2byJ6m/ef6BBVtlnoybZL3ZV2ZjFfakyZuRoKAgcnKuvpkqLy8PvV6Pn59frfu4uLjg7e191UMItSVdEdG09nBWuRr7VFFp5k8r0pn65R6KDSYGdWzFtll38OkzQ/DzcOZITjHj5qawIu2c2qXarTt7B+Ks03IsryqqEcIeNHkzEhkZyfr16696bt26dQwaNKjW+0WEsFWrqy97j5WJzhrk5IUS7p2/lc+3ZwLw0m1dWPr8MIJ93LilexvWzIhmWOfWlBnNvLxsL3/8dj/lRvMNfqv4NR83J27pXjWqZrVENcJO1LsZKSkpYe/evezduxeoGrq7d+9eMjOr3mBmzZrFxIkTa7afMmUKZ86cYebMmRw+fJglS5awePFiXn311cY5AiGawYkLJRzOLkKv1TCqt0Q09fX93nOMm5vC4ewi/Dyc+eSZIfzh7p7odb+8BQV4u/LF5GHMGNkNjQaWpWYx/r0Ujsm3+3qrmQBt//maWFwIW1bvZiQ1NZWIiAgiIiIAmDlzJhEREfzlL38BIDs7u6YxAQgNDSUpKYmNGzfSv39/3nzzTeLj42VYr7Ar1im2R3T1p5VENHVWbjTzWsJ+ZizdS6nRzLDOrUmaEc2t3dvUur1Oq+GVu7rzxbNDaePlwtHcEsbNS+GbVLlvrD7u7BWIs17LiQulZEgzJ+yARrGDtrmoqAgfHx8KCwvl/hGhirvf3cyRnGL+80A4Dw2S0V11cTyvmKlfpJGRW4xGA9Pv6MaMkd3QaWu/cf3XLhQbmPn1XpKPVY26u29AO94cH4aHS5PPSOAQnvs0lfWHcpl+R1d+N6qH2uWIFqqun9+yNo0QN3A8r5gjOcU46TSMloimTr7dfZZxc7eQkVuMv6cLXzw7lJl3da9zIwLQxsuFT54ewqujuqPVwPI957hnXgpHcmTeoboYWxPVZEtUI2yeNCNC3IB1au2orv74uMtN19dTZjTxu6/38eo3+yivNBPV1Z81M6IZXj1NeX1ptRqm3dGNr54bRqC3CyculDJ+3ha+2pkpH7A3MLI6qjmZX8rhbIlqhG2TZkSIG6hZiyZc1qK5noycYu6Zt4WEPWfRauB3d3Xnk2eG0Mbr5meqHdrZj6S4aG7r0QaDycKs5enELd1LcUVlI1TumDxd9NxWfW+O9W9YCFslzYgQ13Est5ijuSU46TTc1VvWoqmNoigs25XJPfNSOJ5XQqC3C18+N4zp9bg/pC78PF1YMmkwr43piU6rYdW+84ybm8KBc4WN9hqOxjqqJik9R64kCZsmzYgQ12Fdiya6Wxt83CSi+bUSg4lXlu3ljwnpGEwWbu3ehqS4aIZ1rn1Cw5ul1WqYcmsXvn5hGG19XDl9sYz75m/ls22n5cO2FiN7BeKi19bMHiyErZJmRIjrkLVoru3Q+SLumZvCir3n0Wk1/PHunnz01OBmWUBwYMeqIcJ39grAaLbw5+8PMvXLPRRJbHMVTxc9t/cIAGStGmHbpBkR4hqO5hZzLK8EZ52WOyWiqaEoCp9vP8OE+Vs4mV9KsI8ry54fxou3dUHbiLHMjfi6O/PBxEH8KbYXTjoNSek5xMYnsy+roNlqsAc1E6Cly6gaYbukGRHiGqxTad/S3V8immpFFZVM+yqNP604gNFkYWTPAJLiohnUqbUq9Wg0GiZHd+abKcNp38qNrEvlPLBwK0tSTskHb7U7egbg6qTlzMUyDp6XqEbYJmlGhKiFoigk7reOopGIBiD9bCFj41NI3J+NXqvhT7G9+HDSIJuYkbZ/iC+JcdHc3SeISrPCP1Yf4vnPdlNQZlS7NNV5uOi5o2dVVCNr1QhbJc2IELXIyC3mxIVSnPVa7uzVsiMaRVH4eMsp7l+wlcxLZbTzdeObKZFMju6MRtN8scyN+Lg5seCJAfz9nj4467SsP5RLbHwKezIvq12a6mL7Vg1LT0yXtWqEbZJmRIhaWG/2u7V7G7xcW25EU1hWyZTPd/O3VYcwmi2M7hNIUlw0ER1aqV1arTQaDZOGd2L5S8Pp6OfOuYJyHlq4jUWbT2CxtNwP4dt7tsHNSUfWpXLSZSi0sEHSjAjxK1URTVUzMrYFRzRpmZeJnZvMDwdzcdZp+du43ix8YqBdzEIb1s6H1dOjGBsejMmi8D9JR5j8aSqXSltmbOPu/EtUI6NqhC2SZkSIXzmcXczJ/KqIZmQLjGgUReHD5JM8uHAbZy+X06G1OwkvDuepEaE2FcvciJerE3MfjeCte8Nw1mv5+UgesfHJ7Dp9Se3SVCGjaoQtk2ZEiF9Jqp7o7LbubfBsYSvEXi41MvmTVP6ZeBiTRSE2PJjVcVH0be+jdmkNotFoeHxoR1a8NILO/h5kF1bwyKLtvLfheIuLbW7vEYCbk46zl8vZf1aiGmFbpBkR4gqKotTMutrSRtHsPnOJ2PhkfjqSh7Neyz8nhDHv0Qi8HeCemd5tvVk1PYp7I9phtij87w8ZTPpoJ/klBrVLazZuzjpG9qqOatIlqhG2RZoRIa5wKLuIU/mluLSgiMZiUViw8QQPvb+d84UVhPp78N1Lw3liWEe7imVuxMNFzzsP9eM/94fj6qQl+Vg+MXOS2XbiotqlNRvrPVCJ+yWqEbZFmhEhrmC9ue/2HgEtIqK5WGLg6Y938e+1RzBbFMb3b8uq6VH0aWufscyNaDQaHhocwsppUXQN8CSv2MDjH25nzo/HMLeA2Oa2HgG4O+s4V1DOXpmpVtgQaUaEqNbSIpodJy8SE5/MpqMXcHXS8u/7+/Luw/1bRBPWPdCLldNG8ODA9lgU+L8fj/Lk4h3kFVeoXVqTcnXS1cybI6NqhC2RZkSIagfPF3HmYhmuTtqaYZCOyGxRmPvTMR79YDu5RQa6Bnjy/dQoHh7cwaFimRtxd9bzvw/2452H+uHurGPriYvEzEkm5Vi+2qU1KWujnZSe3eJu4hW2S5oRIapZp8q+o2cAHg56deBCsYGJS3bw3/VHsSjwwMD2rJw2gh5BXmqXppr7BrRn5bQoegZ5kV9i5MklO/jvugxMZovapTWJW7u3wcNZx/nCCtIkqhE2QpoRIbBGNFVr0cT0dcyIZsvxfMbMSWbL8Yu4Oen474P9ePvBfrg7O2bjVR9dAzxZMXUEjw7pgKLA3J+P89iHO8gpdLzYxtVJV7MKtUQ1wlZIMyIEkH6ukKxL5Q4Z0ZgtCu+sP8oTi3eQX2KgR6AXq6aP4P6B7dUuzaa4OumYfV9f4h+NwMNZx85Tl4iJT2ZjRp7apTW62OqGe80BiWqEbZBmRAh+mXdhZM9Ah7pSkFtUweMfbif+p2MoCjw6JITvp42ga0DLjWVu5J5+bVkdF03vYG8ulRp56qNd/GvNESodKLa5pXpCv+zCCtKyZCFBoT5pRkSLd+VaNI40imbT0QvEzElm+8lLeDjrmPNIf2bfF46rk07t0mxeqL8Hy18azsTIjgAs3HSCRxZt53xBucqVNQ5XJx13VUc1qyWqETZAmhHR4u0/W8jZy+W4Oem4vYf9RzQms4X/rD3CpCU7uVhqpFdw1eyj4/u3U7s0u+LqpOMf48OY//gAvFz07D5zmZj4ZH48lKt2aY3CGtXIqBphC6QZES1eTUTTKwA3Z/u+apBdWM6jH2xn/sYTADw5rCPfvTSczm08Va7MfsX0DSYxLprw9j4UlFUy+dNU/rn6EEaTfcc20d398XLRk1tkYHemRDVCXdKMiBbtyohmrJ1HND8fySVmTjK7Tl/Gy0XPe48N4M0JYRLLNIIOfu58MyWSZ0aEAvBhyikefH8bWZfKVK6s4Vz0Ou7qI6NqhG2QZkS0aHuzCjhXUI67s47b7DSiqTRb+J+kwzzzcSqXyyrp286H1XFRDnX/iy1w0ev4y7jeLHpyIN6uevZlFRATn8zaAzlql9ZgY6+YAK0lTIcvbJc0I6JFs34jvLNXoF1eQTh7uYyH3t/Gos0nAXh6RCe+fTGSjn4eKlfmuEb1CSJpRjQRHXwprjAx5fPd/G3lQQwms9ql1VtU1zZ4uerJKzaQevqS2uWIFkyaEdFiWSwKSdX3i9jjRGc/HMwhZk4yaZkFeLvqef/Jgfx1XB9c9PbXVNmb9q3c+fqFSF64pTMAH289zQMLtnHmYqnKldWPs17LqN5BwC/3TgmhBmlGRIuVllXA+cIKPJx13Najjdrl1JnRZOHvqw7ywme7Kaow0T/El8S4aEb3CVK7tBbFSadlVkwvljw1iFbuTqSfKyQ2PoXV+8+rXVq9WKOaNQdyJKoRqmlQMzJ//nxCQ0NxdXVl4MCBJCcnX3PbjRs3otFofvM4cuRIg4sWojFYr4rc2dt+IprMi2U8sHArH205DcBz0aF8/UIkIa3d1S2sBbujZyBJM6IZ3KkVJQYT075M443v0qmotI/YZkRXf7xd9VwoNrBLohqhkno3I8uWLePll1/mjTfeIC0tjejoaMaMGUNmZuZ198vIyCA7O7vm0a1btwYXLcTNujKiibWTiCYpPZvY+GT2ny3E192JxZMG8UZsb5z1coFTbcE+bnz13DBeuq0LAF/syOTe+Vs5eaFE5cpuzFmvrbmqJqNqhFrq/S72zjvv8OyzzzJ58mR69erFu+++S0hICAsWLLjufgEBAQQFBdU8dDr7+CYqHFNa1mWyCyvwdNFzS3fbjmgqKs38ecUBXvpiD8UGE4M6tiIpLpqRvQLVLk1cQa/T8oe7e/LJM0Pw83DmcHYRY+emsCLtnNql3VBs+C9r1UhUI9RQr2bEaDSye/duRo0addXzo0aNYuvWrdfdNyIiguDgYEaOHMmGDRuuu63BYKCoqOiqhxCNyToF9l02HtGcyi/lvvlb+Wz7GQBeuq0LXz0/jLa+bipXJq7l1u5tSJoRzbDOrSkzmnl52V7++O1+yo22G9uM6OqPj5sT+SVGdpy6qHY5ogWqVzOSn5+P2WwmMPDqb2SBgYHk5NQ+1j44OJhFixaRkJDA8uXL6dGjByNHjmTz5s3XfJ3Zs2fj4+NT8wgJCalPmUJcl71ENN/vPcfY+GQOZRfR2sOZT54Zwh/u7omTTmIZWxfo7coXk4cRN7IbGg0sS81iwntbOJ5XrHZptXLSablbohqhoga9q2k0mqt+VhTlN89Z9ejRg+eee44BAwYQGRnJ/PnziY2N5e23377m7581axaFhYU1j6ysrIaUKUStdmdeJrfIgJeLnuju/mqX8xsVlWZmLd/PjKV7KTWaGRramjUzornVxuMkcTWdVsPMu7rzxbNDaePlQkZuMePmbuHb3WfVLq1W1qhm7YEcTA60QrGwD/VqRvz9/dHpdL+5CpKXl/ebqyXXM2zYMI4dO3bNf3dxccHb2/uqhxCNxfrN764+gTY3J8fxvBImvLeFr3ZmodFA3MhufDF5KIHermqXJhpoeFd/kuKiierqT3mlmVe/2cfMr/dSajCpXdpVIrv40crdiYulRnacklE1onnVqxlxdnZm4MCBrF+//qrn169fz/Dhw+v8e9LS0ggOtt3L48Jx2XJEk7D7LOPmpnAkpxh/Txc+f3YoM+/qjl5iGbvXxsuFT54ZwqujuqPVwPI957hnXgpHcmznfjgn3RWjamQCNNHM6v0uN3PmTD788EOWLFnC4cOHeeWVV8jMzGTKlClAVcQyceLEmu3fffddVqxYwbFjxzh48CCzZs0iISGBadOmNd5RCFFHqWcuk1dswMtVT1Q324hoyowmXv1mH7/7Zh/llWZGdPUjaUYUI7raRn2icei0Gqbd0Y2vnhtGoLcLJy6UMn7eFpbuzERRbGMEi0Q1Qi36+u7w8MMPc/HiRf7xj3+QnZ1NWFgYSUlJdOzYEYDs7Oyr5hwxGo28+uqrnDt3Djc3N/r06UNiYiIxMTGNdxRC1FFi9eyYo3oH2UREczS3mKlf7OFYXglaDbx8Z3em3t4Vnbb2e7CE/Rva2Y+kuGhmfr2PTUcv8NrydLaeuMj/3NcXT5d6vyU3qsjOVVHNpVIj209espmGXTg+jWIrLfl1FBUV4ePjQ2Fhodw/IhrMbFEYNvsnLhQb+OipwdzeU71VehVF4evULP668iAVlRYCvV2Y80gEwzr7qVaTaF4Wi8L7m0/y9roMzBaFUH8P5j0WQZ+2PqrWNWt5Ol/tzOTRISHMvi9c1VqE/avr57eE0aLF2HX6EheKDXi76lWNQEoMJl5Ztpc/JqRTUWnhlu5tSIqLlkakhdFqNbx4Wxe+fmEYbX1cOZVfyr3Vc8qo+R1x7BVRTaVENaKZSDMiWgzrKJrRfYJUm0L90Pki7pmbwoq959FpNfzh7h58/NRg/DxdVKlHqG9gx9YkxkVzZ68AjCYLf15xgGlfplFUUalKPUNDW+Pn4czlskq2nZAJ0ETzkGZEtAhmi8KaA9WjaMKbfxSNoih8seMME+Zv4WR+KcE+rix7fhgv3dYVrdwf0uK18nDmg4mD+FNsL/RaDYnp2YyNT2H/2YJmr0Wv03J3mEyAJpqXNCOiRdhx6iL5JUZ83JyaPaIprqhk2ldpvPHdAYwmCyN7BpAUF82gTq2btQ5h2zQaDZOjO/PNlEja+bqReamM+xds5aMtp5o9tqkZVXNQohrRPKQZES2C9Rve3X2CmnU69QPnChk7N4XE/dnotRr+FNuLDycNopWHc7PVIOxLRIeqhRBH9wmk0qzw91WHeOGz3RSWNV9sMzTUD39PZwrLK9lyPL/ZXle0XNKMCIdnMltYe6Bq1uCYZopoFEXhk62nuW/+Vs5cLKOdrxvfTIlkcnTnay6dIISVj7sTC58YyN/v6YOzTsu6Q7nExCeTlnm5WV5fp9XURDVJMgGaaAbSjAiHt/PUJS6WGvF1d2J4l6YfsVJYXsmLn+/hrysPYjRbGNU7kKS4aCI6tGry1xaOQ6PRMGl4JxJeHE5HP3fOFZTz4MJtfLD5JBZL08c2sX3bAvDDwVyMJolqRNOSZkQ4vNXpzRfR7M0qIDY+mbUHc3DSafjruN68/+RAfNydmvR1hePq296HVdOjiA0PxmRReCvpMJM/TeVyqbFJX3dIaGv8PV2qopoTEtWIpiXNiHBoV0Y0TTmKRlEUPkw+yYMLt3L2cjkdWruT8OJwnh4RKrGMuGnerk7MezSCf04Iw1mv5ecjecTEJ5N6uukWtNNpNcT0lVE1onlIMyIc2vaTl7hUaqSVuxORTTSpWEGZkec+TeWfiYepNCvE9g1mdVwU4e19m+T1RMuk0Wh4YlhHVrw0gs7+HmQXVvDwou3M33i8yWIb62KSPxzMkahGNClpRoRDS0yvWovm7rDgJln9dveZS8TMSebHw3k467W8OSGMeY9F4O0qsYxoGr3berNyehQT+rfFbFH4z9oMnvp4F/klhkZ/rUGdWhPg5UJxhYmU4xca/fcLYSXNiHBYlVdENGMbOaKxWBQWbjrBQ+9v53xhBaH+Hnz30nCeHNZRYhnR5Dxd9Pzfw/359/19cXXSsvnoBWLmJLP9ZOPOmFoV1VT9v7NaohrRhKQZEQ5r24mLXC6rxM/DmaGhjTfB2MUSA898sot/rTmC2aIwvn9bVk2PUn2BM9GyaDQaHh7cge+nRtE1wJO8YgOPfbCd+J+OYW7E2MZ6r9X6g7kYTOZG+71CXEmaEeGwaiY6CwtqtIhmx8mLxMQnszHjAi56Lf++vy/vPtxf9aXfRcvVI8iLldNG8MDA9lgUeGf9USYu2UFecUWj/P6BHVoR6O1CscFE8lEZVSOahjQjwiFVmi38cKh6FE3fm49oLBaFeT8f49EPtpNbZKBLGw9WTovi4cEdJJYRqnN31vP2g/3474P9cHPSseX4RWLmpDTK7KlarYYxYVX/D8kEaKKpSDMiHNLWExcpKKvE39OZITcZ0VwoNjDpo528ve4oFgXuH9CeVdOj6BHk1UjVCtE47h9Y/bcZ6EV+iYEnFu/gnXUZmG5yfRnrPVfrD+VSUSlRjWh80owIh5S43zqK5uYimq3H84mJTyb5WD5uTrqqb58P9cPdWWIZYZu6Bnjy/bQRPDokBEWB+J+P89iHO8gtanhsM6BDK4K8XauimmMS1YjGJ82IcDhGk4UfDuYCv0xpXV9mi8L/rT/K44t3cKHYQI/AX3J5IWydq5OO2feFM+eR/ng469h56hJj5iSzMSOvQb9Pe8WoGmujL0RjkmZEOJwtJ/IpLK/E39OlQRFNXlEFj3+4nTk/HUNR4JHBIayYOoJugRLLCPsyvn87Vk2PonewN5dKjTz10S7+vfZIg2KbWIlqRBOSZkQ4HOsompi+Qei09bu5dPPRC4yZk8z2k5fwcNYx55H+/Ov+cNycdU1RqhBNrnMbT5ZXz4EDsGDjCR5ZtJ3zBeX1+j0RIb609XGl1Ghm01GZAE00LmlGhEOpimjqP4rGZLbwvz8cYdJHO7lYaqRXsDerpkcxvn+7pipViGbj6qTjzQlhvPfYALxc9KSeuUxMfDI/Hc6t8++4OqqRUTWicUkzIhxKyvELFFeYCPByYVCnukU02YXlPPrBdt7bcAJFgSeGdeC7l4bTuY1nE1crRPOKDa9aN6lvOx8Kyip59pNU3ko8VOd1Z6xRzY+HJaoRjUuaEeFQVtdENMF1img2HMkjZk4yu05fxstFz7zHIvjnhL64OkksIxxTRz8Pvn0xkqdHdALgg+RTPPT+NrIuld1w3/4hvrTzdaPMaG7wzbBC1EaaEeEwDCYz66tH0cTcIKKpNFuYnXSYpz/exeWySvq282F1XBRjwxs2+kYIe+Ki1/HXcX14/8mBeLvq2ZtVQGx8ck3EeS0ajYaYvkEAJKZff1sh6kOaEeEwUo7lU2yojmg6trrmdmcvl/HQ+9t4f/NJAJ4a3olvX4yko59Hc5UqhE0Y3SeIpBnR9A/xpajCxAuf7eZvKw9edw2a2OqG/afDuZQbJaoRjUOaEeEwEq+IaLTXiGjWHcwhNj6FtMwCvF31LHxiIH+7pw8ueollRMvUvpU730yJ5PlbOgPw8dbTPLBgG2culta6fb/2PhLViEYnzYhwCBWVZtYfqoporFNXX8losvCPVYd4/rPdFJZX0i/El8S4aO4OC2ruUoWwOU46La/H9GLJU4PwdXci/VwhY+NTah01o9Foav4fWy1r1YhGIs2IcAjJ1RFNkLcrAzpcHdFkXSrjwYVbWbLlFADPRYfyzQuRhLR2V6NUIWzWHT0DSYqLZlDHVhQbTEz9cg9/WpH+m5Ez1lE1Px/Oo8xoUqNU4WCkGREOwTpF9a8jmjXp2cTEJ7PvbCG+7k58OHEQb8T2xlkvf/pC1KatrxtLnx/GS7d1AeDz7ZncO38rJy+U1GzTt50PIa3dKK80s+GITIAmbp68Iwu7d2VEY/3GVlFp5i/fH+DFL/ZQXGFiYMdWJMVFc2fvQDVLFcIu6HVa/nB3Tz55Zgh+Hs4czi5i3NwUvt97DqiKaqzrPiWmy1o14uZJMyLs3qajFyg1mmnr40pEiC+n8ku5f8FWPt12BoAXb+vC0ueH0dbXTeVKhbAvt3ZvQ9KMaIaGtqbUaGbG0r28lrCfcqO55r6Rn4/kUWqQqEbcnAY1I/Pnzyc0NBRXV1cGDhxIcnLydbfftGkTAwcOxNXVlc6dO7Nw4cIGFStEba4cRbM6PZtxc1M4eL6I1h7OfPz0YP54d0+cdNJ3C9EQgd6ufDF5KHEju6HRwNJdWUx4bwuuTlo6tHanotLCz0dkVI24OfV+h162bBkvv/wyb7zxBmlpaURHRzNmzBgyMzNr3f7UqVPExMQQHR1NWloar7/+OnFxcSQkJNx08UJUVJr5sXp9jS0nLhL3VRolBhNDQluTFBfNbT0CVK5QCPun12mZeVd3Pn92KP6eLmTkFjNu7paae6+SZFSNuEkaRVGU+uwwdOhQBgwYwIIFC2qe69WrFxMmTGD27Nm/2f6Pf/wjK1eu5PDhwzXPTZkyhX379rFt27Y6vWZRURE+Pj4UFhbi7e1dn3KFg1t7IIcpn++u+Vmjgem3dyVuZDf0cjVEiEaXV1zBK8v2suX4xZrnXPRa9vz5Ljxc9CpWJmxRXT+/6/VubTQa2b17N6NGjbrq+VGjRrF169Za99m2bdtvth89ejSpqalUVlbWuo/BYKCoqOiqhxC1ubIR8fd04bNnhjJzVA9pRIRoIgFernz6zFB+d1d3rAPXDCYLP0lUI25Cvd6x8/PzMZvNBAZePSIhMDCQnJza1ynIycmpdXuTyUR+fn6t+8yePRsfH5+aR0hISH3KFC3E8bxfhhp6OOtImhFFVDd/FSsSomXQaTVMH9mNL58bRqC3CwBHsuVLo2i4Bn191GiunmpbUZTfPHej7Wt73mrWrFkUFhbWPLKyshpSpnBw7Vu5EdHBF4D9fxtNgJerugUJ0cIM6+xHUlw0b47vw7NRoWqXI+xYvQI+f39/dDrdb66C5OXl/ebqh1VQUFCt2+v1evz8/Grdx8XFBRcXl/qUJlogVycd3700Qu0yhGjR/DxdeDKyk9plCDtXrysjzs7ODBw4kPXr11/1/Pr16xk+fHit+0RGRv5m+3Xr1jFo0CCcnJzqWa4QQgghHE29Y5qZM2fy4YcfsmTJEg4fPswrr7xCZmYmU6ZMAaoilokTJ9ZsP2XKFM6cOcPMmTM5fPgwS5YsYfHixbz66quNdxRCCCGEsFv1Hof18MMPc/HiRf7xj3+QnZ1NWFgYSUlJdOzYEYDs7Oyr5hwJDQ0lKSmJV155hffee4+2bdsSHx/P/fff33hHIYQQQgi7Ve95RtQg84wIIYQQ9qdJ5hkRQgghhGhs0owIIYQQQlXSjAghhBBCVdKMCCGEEEJV0owIIYQQQlXSjAghhBBCVdKMCCGEEEJV0owIIYQQQlXSjAghhBBCVfWeDl4N1klii4qKVK5ECCGEEHVl/dy+0WTvdtGMFBcXAxASEqJyJUIIIYSor+LiYnx8fK7573axNo3FYuH8+fN4eXmh0Wga7fcWFRUREhJCVlaWw6554+jHKMdn/xz9GB39+MDxj1GOr+EURaG4uJi2bdui1V77zhC7uDKi1Wpp3759k/1+b29vh/wDu5KjH6Mcn/1z9GN09OMDxz9GOb6Gud4VESu5gVUIIYQQqpJmRAghhBCqatHNiIuLC3/9619xcXFRu5Qm4+jHKMdn/xz9GB39+MDxj1GOr+nZxQ2sQgghhHBcLfrKiBBCCCHUJ82IEEIIIVQlzYgQQgghVCXNiBBCCCFU5fDNyPz58wkNDcXV1ZWBAweSnJx83e03bdrEwIEDcXV1pXPnzixcuLCZKm24+hzjxo0b0Wg0v3kcOXKkGSuuu82bNzNu3Djatm2LRqNhxYoVN9zHns5hfY/P3s7f7NmzGTx4MF5eXgQEBDBhwgQyMjJuuJ+9nMOGHJ+9ncMFCxYQHh5eMyFWZGQka9asue4+9nL+oP7HZ2/n79dmz56NRqPh5Zdfvu52zX0OHboZWbZsGS+//DJvvPEGaWlpREdHM2bMGDIzM2vd/tSpU8TExBAdHU1aWhqvv/46cXFxJCQkNHPldVffY7TKyMggOzu75tGtW7dmqrh+SktL6devH/PmzavT9vZ2Dut7fFb2cv42bdrE1KlT2b59O+vXr8dkMjFq1ChKS0uvuY89ncOGHJ+VvZzD9u3b869//YvU1FRSU1O54447GD9+PAcPHqx1e3s6f1D/47Oyl/N3pV27drFo0SLCw8Ovu50q51BxYEOGDFGmTJly1XM9e/ZUXnvttVq3/8Mf/qD07NnzqudeeOEFZdiwYU1W482q7zFu2LBBAZTLly83Q3WNC1C+++67625jj+fQqi7HZ8/nT1EUJS8vTwGUTZs2XXMbez6HdTk+ez+HiqIorVq1Uj788MNa/82ez5/V9Y7PXs9fcXGx0q1bN2X9+vXKrbfeqsyYMeOa26pxDh32yojRaGT37t2MGjXqqudHjRrF1q1ba91n27Ztv9l+9OjRpKamUllZ2WS1NlRDjtEqIiKC4OBgRo4cyYYNG5qyzGZlb+ewoez1/BUWFgLQunXra25jz+ewLsdnZY/n0Gw2s3TpUkpLS4mMjKx1G3s+f3U5Pit7O39Tp04lNjaWO++884bbqnEOHbYZyc/Px2w2ExgYeNXzgYGB5OTk1LpPTk5OrdubTCby8/ObrNaGasgxBgcHs2jRIhISEli+fDk9evRg5MiRbN68uTlKbnL2dg7ry57Pn6IozJw5k6ioKMLCwq65nb2ew7oenz2ew/T0dDw9PXFxcWHKlCl899139O7du9Zt7fH81ef47PH8LV26lD179jB79uw6ba/GObSLVXtvhkajuepnRVF+89yNtq/teVtSn2Ps0aMHPXr0qPk5MjKSrKws3n77bW655ZYmrbO52OM5rCt7Pn/Tpk1j//79pKSk3HBbezyHdT0+ezyHPXr0YO/evRQUFJCQkMCkSZPYtGnTNT+w7e381ef47O38ZWVlMWPGDNatW4erq2ud92vuc+iwV0b8/f3R6XS/uUKQl5f3m47PKigoqNbt9Xo9fn5+TVZrQzXkGGszbNgwjh071tjlqcLezmFjsIfzN336dFauXMmGDRto3779dbe1x3NYn+Orja2fQ2dnZ7p27cqgQYOYPXs2/fr1Y86cObVua4/nrz7HVxtbPn+7d+8mLy+PgQMHotfr0ev1bNq0ifj4ePR6PWaz+Tf7qHEOHbYZcXZ2ZuDAgaxfv/6q59evX8/w4cNr3ScyMvI3269bt45Bgwbh5OTUZLU2VEOOsTZpaWkEBwc3dnmqsLdz2Bhs+fwpisK0adNYvnw5P//8M6GhoTfcx57OYUOOrza2fA5roygKBoOh1n+zp/N3Ldc7vtrY8vkbOXIk6enp7N27t+YxaNAgHn/8cfbu3YtOp/vNPqqcwya7NdYGLF26VHFyclIWL16sHDp0SHn55ZcVDw8P5fTp04qiKMprr72mPPnkkzXbnzx5UnF3d1deeeUV5dChQ8rixYsVJycn5dtvv1XrEG6ovsf4f//3f8p3332nHD16VDlw4IDy2muvKYCSkJCg1iFcV3FxsZKWlqakpaUpgPLOO+8oaWlpypkzZxRFsf9zWN/js7fz9+KLLyo+Pj7Kxo0blezs7JpHWVlZzTb2fA4bcnz2dg5nzZqlbN68WTl16pSyf/9+5fXXX1e0Wq2ybt06RVHs+/wpSv2Pz97OX21+PZrGFs6hQzcjiqIo7733ntKxY0fF2dlZGTBgwFVD7iZNmqTceuutV22/ceNGJSIiQnF2dlY6deqkLFiwoJkrrr/6HOO///1vpUuXLoqrq6vSqlUrJSoqSklMTFSh6rqxDqP79WPSpEmKotj/Oazv8dnb+avt2ADlo48+qtnGns9hQ47P3s7hM888U/P+0qZNG2XkyJE1H9SKYt/nT1Hqf3z2dv5q8+tmxBbOoUZRqu9KEUIIIYRQgcPeMyKEEEII+yDNiBBCCCFUJc2IEEIIIVQlzYgQQgghVCXNiBBCCCFUJc2IEEIIIVQlzYgQQgghVCXNiBBCCCFUJc2IEEIIIVQlzYgQQgghVCXNiBBCCCFUJc2IEEIIIVT1/zqxEa6jdUysAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x=[1,2,3,0,4,1]\n", "y=[0,4,0,3,3,0]\n", "plt.plot(x,y);" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y=[0,4,0,3,3,0]\n", "plt.plot(y);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cheatsheet for much more matplotlib: https://twitter.com/dr_shlee/status/1282772480046891010" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Boolean (`bool`) type\n", "\n", "Python's `bool` type can take one of two values: `True` or `False`. It is used to test a condition, such as in an *if statement*." ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 177, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1\n", "y = x > 0\n", "y" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "bool" ] }, "execution_count": 178, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(y)" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x is positive\n" ] }, { "data": { "text/plain": [ "10" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = 1\n", "\n", "if x > 0:\n", " print(\"x is positive\")\n", " x = 10\n", "\n", "x" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x>0" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "bool" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(x>0)" ] }, { "cell_type": "code", "execution_count": 183, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x is positive\n", "x is still positive\n", "out of the blocks\n", "20\n" ] } ], "source": [ "x = 1\n", "\n", "if x > 0:\n", " y = 20\n", " print(\"x is positive\")\n", " print(\"x is still positive\")\n", "else:\n", " y = 40\n", " print(\"x is negative\")\n", " print(\"x is still negative\")\n", " \n", "print(\"out of the blocks\")\n", "print(y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Equality testing" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Equality and comparisons\n", "\n", "Comparison operators: `==`, `>`, `>=`, `<`, `<=`, `!=`\n", "\n", "These operators take two arguments (left and right hand side) and return a boolean." ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 > 4" ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 185, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3 == 4" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 186, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2+2 == 4" ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 188, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2+(2 == 2)" ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 189, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2+(False)" ] }, { "cell_type": "code", "execution_count": 190, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 190, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2+False" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Coercion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## explicit coersion" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = \"10\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "type(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x+32" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = int(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "type(x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x+32" ] }, { "cell_type": "code", "execution_count": 192, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 192, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(10)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(\"\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(\" \")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(None)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(\"False\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "str(False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "bool(str(False))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int(False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int('False')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int(bool('False'))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int(False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "int(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## implicit coersion" ] }, { "cell_type": "code", "execution_count": 193, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10 is an integer, not a boolean. Why is this not an error?\n" ] } ], "source": [ "if 10:\n", " print(\"10 is an integer, not a boolean. Why is this not an error?\")" ] }, { "cell_type": "code", "execution_count": 194, "metadata": {}, "outputs": [], "source": [ "if 0:\n", " print(\"why doesn't this print?\")" ] }, { "cell_type": "code", "execution_count": 195, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "hello\n" ] } ], "source": [ "x = \"False\"\n", "if x:\n", " print(\"hello\")" ] }, { "cell_type": "code", "execution_count": 196, "metadata": {}, "outputs": [], "source": [ "x = \"\"\n", "if x:\n", " print(\"hello\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Python's `assert`" ] }, { "cell_type": "code", "execution_count": 197, "metadata": {}, "outputs": [], "source": [ "assert True" ] }, { "cell_type": "code", "execution_count": 198, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[198], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28;01mFalse\u001b[39;00m\n", "\u001b[0;31mAssertionError\u001b[0m: " ] } ], "source": [ "assert False" ] }, { "cell_type": "code", "execution_count": 199, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(1)==True" ] }, { "cell_type": "code", "execution_count": 200, "metadata": {}, "outputs": [], "source": [ "assert bool(1)==True" ] }, { "cell_type": "code", "execution_count": 201, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[201], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mbool\u001b[39m(\u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m==\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m\n", "\u001b[0;31mAssertionError\u001b[0m: " ] } ], "source": [ "assert bool(0)==True" ] }, { "cell_type": "code", "execution_count": 202, "metadata": {}, "outputs": [ { "ename": "AssertionError", "evalue": "When I wrote this function, I assumed this would be otherwise.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[202], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mbool\u001b[39m(\u001b[38;5;241m0\u001b[39m)\u001b[38;5;241m==\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mWhen I wrote this function, I assumed this would be otherwise.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", "\u001b[0;31mAssertionError\u001b[0m: When I wrote this function, I assumed this would be otherwise." ] } ], "source": [ "assert bool(0)==True, \"When I wrote this function, I assumed this would be otherwise.\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Blocks and control flow" ] }, { "cell_type": "code", "execution_count": 203, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "statement 1\n", "statement 2\n", "statement 3\n" ] } ], "source": [ "if True:\n", " print(\"statement 1\")\n", " print(\"statement 2\")\n", " print(\"statement 3\")" ] }, { "cell_type": "code", "execution_count": 206, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "here\n", "a is one\n" ] } ], "source": [ "a = 1\n", "b = -2\n", "\n", "if a==1:\n", " if b>0:\n", " print(\"a is one and b is positive\")\n", " else:\n", " print(\"here\")\n", " print(\"a is one\")\n", "else:\n", " print(\"a is not one\")" ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a is one and b is negative\n" ] } ], "source": [ "a = 1\n", "b = -1.0\n", "\n", "if a==1:\n", " if b>0:\n", " print(\"a is one and b is positive\")\n", " elif b<0:\n", " print(\"a is one and b is negative\")\n", " else:\n", " print(\"a is one\")\n", " print(\"b is zero\")\n", "else:\n", " print(\"a is not one\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "b" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" } }, "nbformat": 4, "nbformat_minor": 4 }