diff --git a/Lab 0/Basic SciPy Functions.ipynb b/Lab 0/Basic SciPy Functions.ipynb index 2453e11..0d4fd0a 100644 --- a/Lab 0/Basic SciPy Functions.ipynb +++ b/Lab 0/Basic SciPy Functions.ipynb @@ -34,7 +34,7 @@ "from scipy.misc import imread, imsave, imresize\n", "\n", "# Read an image into a numpy array\n", - "img = imread('bajrangbali')\n", + "img = imread('./images/bajrangbali')\n", "print(img.dtype, img.shape)\n", "\n", "# we can tint the image by by scaling each of the color channels by a different scalar constant.\n", @@ -47,7 +47,7 @@ "img_tinted = imresize(img_tinted, (300,300))\n", "\n", "# write the tinted image back to disc\n", - "imsave('bajrangbali_tinted.jpg', img_tinted)" + "imsave('./images/bajrangbali_tinted.jpg', img_tinted)" ] }, { @@ -56,11 +56,11 @@ "source": [ "### Original image:\n", "***\n", - "![screenshot](./bajrangbali)\n", + "![screenshot](./images/bajrangbali)\n", "***\n", "### Tinted and Resized:\n", "***\n", - "![screenshot2](./bajrangbali_tinted.jpg)\n", + "![screenshot2](./images/bajrangbali_tinted.jpg)\n", "***" ] }, diff --git a/Lab 0/bajrangbali b/Lab 0/images/bajrangbali similarity index 100% rename from Lab 0/bajrangbali rename to Lab 0/images/bajrangbali diff --git a/Lab 0/bajrangbali_tinted.jpg b/Lab 0/images/bajrangbali_tinted.jpg similarity index 100% rename from Lab 0/bajrangbali_tinted.jpg rename to Lab 0/images/bajrangbali_tinted.jpg diff --git a/Lab 0/matplotlib_tutorial.ipynb b/Lab 0/matplotlib_tutorial.ipynb index 32d3f0a..3103352 100644 --- a/Lab 0/matplotlib_tutorial.ipynb +++ b/Lab 0/matplotlib_tutorial.ipynb @@ -22,7 +22,7 @@ "data": { "image/png": "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\nkUcfHTpJ7VxwAbz5JixcGDpJ4WW6+M+dC++9B2efHTpJ7XXu7PstJ08OnUSyrrzcT0O+7rrQSWqv\nfn246ip/7m/WZLr433kn/OxnsN12oZPUnpnv+//Nb7I7YCXxMHGiPyjl1FNDJ6mbH//Yz/pZvjx0\nksLKbPFfvhyeew4uuSR0krrr3dsPWGV9sYqE45xvNV9/fbK6Tre0yy7+nN+sbZ2e2Y3drrzSt1aG\nDCnI7fLmrrt899Xw4aGTSBbNmuXnzC9dGv81MluzejUceij87W9+C+qk0a6e22jtWmjZ0p/ruc8+\neb9dXq1bBwcc4Hchbdo0dBrJmnPP9Yu6rrwydJLc/eAHcNRR/szfpNGuntvowQehe/fkF37wG1Wd\nd54/KUmkkFatgmnT4MILQyeJxk9/Cn/6U3Zm0GWu+JeX+0L5k5+EThKdK67w/0/a8kEKaehQ3/Jv\n1Ch0kmi0awe77QZTp4ZOUhiZK/7Tp/sBnrZtQyeJzne+4+dYjxoVOolkxaZNvvinqRFl5lv/994b\nOklhZK74//nPcPnlyZ2ZUJ2BA/2mWiKFMH48HHggtGkTOkm0+vWDOXP8wG/aZar4r1wJL77o+8jT\npls3P2NhzpzQSSQL7r3Xt5LTpkEDuOgi30hMu0wV//vvh+9/Px6HSUetuBguuyx9Z5NK/CxaBEuW\nxO+Ixqhcfjk88og/myDNMjPVc9MmaNHC9/m3bp2XWwS3apXv/1+5Mp2/4CQeBg70A6O33RY6Sf50\n6+a3fRkwIHSSbaOpnlsxfryf25/Wwg9+nv8pp8DIkaGTSFp99ZVfUPjDH4ZOkl+XXAIPPRQ6RX5l\npvjff7/fwyPtfvhDdf1I/owbB8cdB/vtFzpJfp15pl+1vGxZ6CT5k4niv3IlzJuXjJO6ctWlC6xY\n4ftlRaL20EN+QDTttt8e+vf3ff9plYni/+ijcM45fiQ/7erV8ysuH3wwdBJJmxUrYP586NUrdJLC\nuPhiGDYsvSfmpb74O+d/e2ehtVLp4ovhsce04leiNWyYnya9ww6hkxRG69aw777pPeQ99cX/5Zf9\nfv1pWtFbk5Yt4fDDYcKE0EkkLcrL4eGHfcMiS9I88Jv64v/II366VtpW9NYkzW9aKbzSUr+HT9KO\naczVuef6cz8++SR0kuilep7/l19C8+bZ3O54/Xpo1swvxtlrr9BpJOn694fjj/dHHmbNhRfCkUfC\n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\n0gAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -58,7 +58,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEZCAYAAACAZ8KHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4VMX6xz+TQgglQOiEKiGhSS8CovSaCkgTpCr2cq/t\nqlfFn4pcy8UuKAgovSahg4DSpHdIofcaagip8/vjJFxKes7u7J7M53n2YbN7duab5eS8Z955i5BS\notFoNBpNTnFRLUCj0Wg0zoU2HBqNRqPJFdpwaDQajSZXaMOh0Wg0mlyhDYdGo9FocoU2HBqNRqPJ\nFdpwaJweIcRAIcQy1TqyQwixRggx3M5z/ksIMcGec2qsjzYcGqdACPGoEGKDEOKqEOKSEGKdEKIp\ngJRyupSym2qN+UUI4SeEmC2EuCiEuCKE2CWEeE0IIfI6ppRyjJTyGTN1ajTacGgcHiFEcSAC+Boo\nBfgAo4EElbrMRAhRE/gbOA7Ul1KWAp4AmgLFVWrTaO5HGw6NM+AHSCnlbGmQIKVcJaXcByCEGCKE\nWJd+sBAiVQgxSggRLYSIFUJ8d/dgQojhQogDQojLQoilQoiqmU2ctgI4m7YCWCuEqHvXe78KIb4T\nQiwSQlwXQmwSQtS46/3OQoiDaZ/9Fshq5fAhsEFK+YaU8jzGLxwjpRwkpbyeNl6QEGJf2u+0WghR\n+6653hJCnErTcVAI0T7t9Q+EEL+lPa+W9t08JYQ4LoS4IIR4564xhBDibSHEobRVz0whRMks/2c0\nBRJtODTOQDSQIoSYLITolsnF7P7aOT0x7tYbAn2FEF0AhBDBwNtACFAWWAfMyGLuJUBNoBywA5h2\n3/v9gA+AksBh4JO0eUoD84B3gDJp77XJYp5OwNzM3hRC+AHTgZfTdC8FIoQQbmnvvQA0lVJ6AV2B\nY3d9/P7vpg1QK23O94UQ/mmvvwwEAW2BSsAV4IcsNGsKKNpwaBweKeUN4FEgFZgAXBBChAkhymbx\nsTFSyhtSypPAGqBR2uuj0t6LllKmAp8BjYQQVTKZe7KU8paUMgn4CGiY5jpLZ4GUcnvaWNPumqcH\nsE9KuUBKmSKlHAecy0JvaeBsFu/3BRZJKVdLKVOALwBPoDWQAhQC6gsh3KSUJ6SURzMZRwIfSikT\npZR7gN0YxjX9u3lXSnn2rt+3jxBCXyc096BPCI1TIKWMklIOl1JWBepj3BGPy+Ij5+96fgsolva8\nGvB1mrsnFriMcTH1uX8AIYSLEOKzNNfNVeBo2rFl7jrsbmNw9zyVgJP3DXn/z3dzGaiYxfuVMPY/\nAMNvlzaej5TyMPAqhrvrvBBiuhCiQhZjZfXdLLjruzkAJAHlsxhLUwDRhkPjdEgpo4HJGAYkt5wE\nRkkpvdMepaSUxaSUf2dw7EAgEOggpSwJVMfYp8hJlNNZ4P69kwxXNWmsAnpn8f4ZjAv7/eOdBpBS\nzpRStr3rmLE50Hg/J4Du9303RaWUWa2ENAUQbTg0Do8Qwl8I8Q8hhE/az1WAAcCmPAz3E/BO+ia3\nEKKEEKJPJscWx4jcuiKEKAqM4cH9gsxYDNQVQoQIIVyFEK+Q9Z37B0BrIcRYIUT5NG2+QojfhBBe\nwGygpxCifdq+xuvAbWBjWhhveyFEISARiMdw62VEVkZvPPBperCAEKKsECIoh7+vpgChDYfGGbgB\ntAQ2CyFuABuBPcDrmRx//8X9zs9SyoUY+xoz09xPe4DMckCmYtyFnwb2pc2bI6SUlzHCaccClzA2\n2DdkcfwRoBVQA9gvhLgCzAG2AjfSVlmDgO+Aixib/4FSymTAI+13uoixMikL/CuzqbL4+WsgDFgh\nhLiW9vu2yOGvrClACNWNnIQQE4EA4LyUskEmx3wDdAfigKFSyl12lKjRaDSau3CEFcevGOGDGSKE\n6A7UlFLWwoj6+MlewjQajUbzIMoNh5RyPUa8eGYEY7gMkFJuBkqk+4A1Go1GY3+UG44c4MO9YYyn\nySB0UqPRaDT2wRkMh0aj0WgcCDfVAnLAae6Nf6+c9to9CCHU7vJrNBqNkyKlzFUFZkdZcWSVVBUO\nPAUghHgEuJpeBO5+pJR3Hqevn+aVpa9Q6rNSvL/6fZJTku953xEeR45IWraUtG8vWbxYkpyc9fFb\ntxrHt2xpPM/suA8++ED57+YoD/1dPPhdLD+0nPKfl2fA3AFsObUly8+kpKYwdddUqnxVhdCZoRyO\nPaz897j/kZAg+fe/JeXKScaPl1y7lvXxly5JHn30A8qWlfz6qyQ1Vf3voPKRF5QbDiHEdIx4cT8h\nxAkhxLC0yqbPAEgplwBHhRCHMBKUns/JuJWKV2Jct3Hse34ff534i+CZwVxPuG6z3yO3zJwJLVpA\nv36wahX06AGurll/plkz2LgRRo2CgAD473/to1VjDaSUfPTnRwwLG8asPrOY3ns6zX2aZ/kZF+HC\n4IaDiXoximaVmtF6Yms2nMg0HcXu7Ntn/B3t3Am7dsEzz4CXV9afKV0aOnaEFSvgm2+ga1e4dMk+\nei2DamtnotWUmZGYnCifjXhW1v2+rjx0+VCmx9mD1FQpX39dSl9fKbdty/s4x49L6e8v5TvvGGPe\nzQcffJAvjVZCfxcG125fkzVDa8q2k9rKM9fP5HmcZTHLZNn/lJVz9s8xUV3e2LpVynLlpJw48cG/\ngexIPy+Skoy/x/r1pTx3znyNzkDatTN319vcfsBRH1kZjnS+3/K9LP95eXngwoGcfJ824b33pGzU\nSMrY2PyPdeGClM2aSfnMM1ImJ//v9TVr1uR/cIugvwsp45PiZfvJ7WWPj3vIxOTEfI+348wO6fOl\njxy3aZwJ6vLGli2G0QgLy9vn7z4vUlOl/PBDKWvXlvL0aXP0ORPacOSAX3f+KmuMqyHP3bD/7cVn\nn0lZp45xwTeL69el7NhRyqFDc3/XpbE+ySnJstesXrLvnL4yOSU5+w/kkONXj8sa42rIqbummjZm\nTkk3GuHh5o776aeGJ+DECXPHdXTyYjiUlxwxCyGEzOnvMnrtaBbFLGLtkLUULVTUxsoMfvgBvvwS\n/voLfEzOQomLgzZtYOhQePVVc8fWOC9SSp6JeIZj146xaMAiPNw88jRO9erVOX78ePYHahyaatWq\ncezYsQdeF0IgcxlVVSANh5SS4eHDuXTrEgv6LcDNxbZRyX/+aWyCb9oENWpkf3xeOHYMWrWC336D\nTp1sM4fGufj4r48Jjwpn9ZDVFCtULPsPZELahcVEZRoVZPb/mBfDoTyqSgVCCCYETCA+KZ7Ra0fb\ndK5Ll2DQIJg0yXZGA6B6dSNS68kn4fBh282jcQ42nNjAd1u+Y2H/hfkyGhpNRhRIwwHg7urOb6G/\nMWHHBP4+lVEPn/wjJQwbZqw2evSwyRT38Pjj8P77EBoKCQm2n0/jmFy7fY1BCwYxIXAClYpXUi1H\nY0EKrOEAqFi8It/3+J6nFjxFXGKc6eN/8w2cPw+ffmr60Jny/PNQsyZ8/LH95tQ4Fs8veZ5uNbsR\n5K97MGlsQ4E2HAB96vahZeWWvLnyTVPH3bsXPvnEcB8VKmTq0FkihLERP3487N5tv3k1jsHve35n\n59mdfNn1S9VSlDNmzBieeeYZ1TJyzfTp0+nWLbPeYo5Bgdwcv5+rt6/S4McG/Bz4M119M20NkmOk\nhMceM/Ybnn0238PliUmT4PvvYfNmcHOGimSafHMh7gL1fqjHysEraVShkWnj6s1xa6A3x02mZOGS\nTAyayLOLn+V28u18j/fbb3D7Njz9tAni8siwYUZphS/1jWeB4V+r/sVTDZ4y1WhoNBmhDUcanWt2\npnGFxny16at8jXP1Krz1luEuyq72lC0RAiZMgM8/h5gYdTo09mHL6S0sPbSUD9p9oFqK3Rk7diyV\nK1fGy8uLOnXqsGbNGgBGjx7N4MGDATh+/DguLi5MnTqVatWqUa5cOT69a/NRSslnn32Gr68vZcuW\npX///ly9ejVH86empvLpp5/i6+tLiRIlaN68OadPGwW8N27cSIsWLShVqhQtW7Zk06ZNdz43efJk\natasiZeXFzVr1mTGjBkATJkyhbZt2945zsXFhfHjx+Pn54e3tzcvvvjiPfNPmjSJunXrUrp0abp3\n786JEyfy8C3mktxmDDrqgxxmjmfF4djDsvTY0vL09bzXHXjhBSlHjcq3FNMYM0bKXr1Uq9DYkpTU\nFNl8QnM5eedkm4xvxt+WrYiKipJVqlSR59IKTR0/flweOXJESinlhx9+KAcPHiyllPLYsWNSCCGf\neeYZmZCQIHfv3i09PDxkZGSklFLKcePGyVatWskzZ87IxMRE+eyzz8oBAwbkSMN//vMf2aBBAxkT\nEyOllHLPnj0yNjZWxsbGylKlSslp06bJlJQUOWPGDFmqVCkZGxsr4+LipJeX153PnDt3Th44YJRC\nmjx5smzbtu2d8YUQMjAwUF6/fl2eOHFCli1bVi5fvlxKKeXChQtlrVq1ZFRUlExJSZGffPKJbN26\ndYY6M/t/RJccyT9vrXxLDlkwJE+f3b7dKIVw6ZIpUkzh1i0pq1SRcsMG1Uo0tuKX7b/IR355RKak\npthk/Jz8bRk7e/l75IVDhw7J8uXLy1WrVsmkpKR73rvfcLi4uMgzZ/5X4LFFixZy1qxZUkop69Sp\nI1evXn3nvTNnzkh3d3eZkpL9d+rv7y8jIiIeeP23336TLVu2vOe1Vq1aySlTpsi4uDhZqlQpOX/+\nfBkfH3/PMRkZjo0bN975uW/fvnLs2LFSSim7d+8uJ02adOe9lJQUWaRIEXkig7opZhoO7aq6j3fb\nvsuKwyvYcnpLrj/7+uvwf/9n7C04Cp6ehqbXXzf+PDXW4urtq7y7+l2+6/4dLkLdn7MZpiMv1KxZ\n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\nYr5771o5AAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -100,7 +100,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -142,7 +142,7 @@ "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAACACAYAAAAF3qJbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXe8JEd177+nqrsn3Rz2bg5arXa1YneVkZCEEAgRDAiM\nRbQBgQ3Y2GDAGHDCNrYxPOMHNjwwySSbYFlECyPJCASSUF7lDdqcd28Ok7q76v1R1TNz794NAiQL\nPvdItTO3p6e7p+r0r875nVOnxVrLnMzJnMzJnPzqivrfvoA5mZM5mZM5eXxlDujnZE7mZE5+xWUO\n6OdkTuZkTn7FZQ7o52RO5mROfsVlDujnZE7mZE5+xWUO6OdkTuZkTn7F5QkHehF5rohsEpEtIvLu\nJ/r8czInj4fM6fWcPJlFnsg8ehFRwBbgWcB+4E7gFdbaTU/YRczJnPyCZU6v5+TJLk+0RX8+sNVa\nu8taGwNfBa58gq9hTubkFy1zej0nT2p5ooF+EbCn5e+9ftuczMkvs8zp9Zw8qWUuGDsnczInc/Ir\nLsETfL59wNKWvxf7bQ0RkbniO3PyuIu1Vn6BhzuhXsOcbs/J4y/H0usnGujvBE4VkWXAAeAVwCtn\n7nQK2bUefV/MdEGyvwVBCYh120xo0dq9D3KCDixhKIQhBAHowKKUQgTS1BCnkKSKJLbECdRrljiG\nJIVJAxILYQBDqaVba1AWUGhrMAYktZiW61U0+9vM8jum/YZc871RgkVRSwUrCqIAJVUSKZLEVdrb\nNMVCiZyJmRLFt675Div7b2F0+2E6T30J7//Qe7n2hn3k43GCfDsrerrZuHML9bqhUokpElKv1FGp\nRQEiluPBT+vvOPY+kPjfaBAEQc/4zQoYxtIDFBGCGZ8bJaQGKlhAMMc517E+O5bM7P/dj/H7JyEn\npdcApxznIMfWbfc+ezUKAgUiEGjXQr8t0KAVaOXGLTWWmgVjhDixxAZqKSQJxBbKFsQIgVhGLHRr\nwQLWWgIEY1zf2VmuC44/FoG/IQ3uWhOEempBBKM1RllyuDF/z9PW8V9bdvCq9SvZOzLGaN3y9ouf\nQn9oaevq48+uv5M3XHAmX7v9AcaqFX66b5DNo+O0CYynMC/MMTRZRYxpXOPx6IrHQmUY3wRBYafd\nEdlxhoEFQG7Gd2O/T6XlOMe6nseu19PleHr9hFI31toU+H3geuAh4KvW2kdm7ne8DjHHaO4z6xso\nr+iiFWARAVEWlEWU+1tpC2JQOrtxLEq7z5UG7bcXtJDTFp1alAWVpkhskTglTS0Yi5XsRpSjwDHb\nNttn4G4iowUjCkSRaFCBplAQwoJQ1QGhqpHPR0ShIp4cI8xbcoGi4+AnKG/fiNl9A1P/83YOP/Qo\nd331jWiEajzBfXs3c+riPgKVsOG0xdiCQhU1JlDYQEhFkYrCIBjcJNOqyiejIIbmhOBg/tgqW0DQ\nsxzUGDduke+R2W7U7GZQLe0XaZb/rHKyeg0/j267luBAE0BEEFwfiJ8FRHAGj1jAosT1qdvmmsZP\nBgJ5gUgs2rpjqdQZLWIhtdaBPtP7vFXUcT4zymIEjAd5lKC0oAJNWwRRIKxb0MXZ8zv41F0PMFSu\n8onb7ueGR/fx4vXryYUHGDy0m3tu/B5jI7tZXhhhTf8CvrN5O8uKQl8UEYsggWI0jbGR0FnKoZRg\nEVKEpKXvHqtez/ydMgPkW8dRA9Esyhjgxiw4QR/O1OtfNDA/4Ry9tfa/rbWrrbWrrLV/f7x9HfAc\nX7JBTLH4/9377HNjGgNiM60FlPFKLYD3djIrUwFW+clCQFmLEsFYD+bWeQ5i3XG8CeTOccLrPXoP\nE2isOEvNhAFRPiToKEKhyNK+EgvaDO94zfNAaozXhSkJmSpb1s1vR1e2MVXdT7D2KuyGV5PvUdTH\ntpEvpEzVDFN1zb27j0AYMjw2Tk+H8OJfuxByYEOwoSbV0uhLi7u5Dc1tJyuqBeRn+50KUJHF6unb\nU1otViEEfKeiGo3G39AcyNmAvjnh21mv4/GQx6LXkPX1ifdxuu3P4VvT37WkLdvJdNLrZTYhWAti\nHOg3+rkF9J1NlIGYbei48vouJ3Gt2fW2SmocyFvc/WSV0J4LKYSKUAtFDQ8PjnLnwVFGY8WRVBhJ\nFQWlWZo3FCbHmbdiPf9tYzq6ljA2vo+SqqF1yM1HyowldZZ1FPjoJWfwilPn05UTJqwhCRSlQohR\n0OodWm8Enmz/Z3IsDybbHuAmTZN1Vvb7afa1wvV163dbAf1kDaqZBsDJyhOaR38yIiJ2+Sy3rzoR\n/dHyPhBBQosWnGUeCaG2BIEQhBAGFhW4/RyqOxc3TZxbG9edi2ljSFIhTSypgcQK1diSd1f6mDt7\npliBVCDRFl3UJMYQ5PIkVvjjt17Npvs3csdPb6caa8qBohTkWdyp+Nu3zOfOOw8x0B4wf+l6zr7w\ncuLugNAO8q1vDBJu/zHl8DDfv8synAqPHB6nK2ojF6SEKuHRg1VqiWJJd5EDE3VU3aDqKWGaIn6y\npEGDnbzNnIHqzO8YHA0QY+kMvYcTt0zGoWBS6+ZKBVEeKlOzKfXslJ6Z9tmJqbLd/MI5+pMSp9tH\ny4lu8tbPQ2+5BwKinGWe0Tah90CVt9ZFHMgbC4mBmoE4hTSF1Pr3BhLr+nDKQMmf5+fVbQfwguTc\nuBeCgCnj7slKYtBKOK09z+FKwlBcZ21HgT6dIggffHqJBb3dqNxTqE89RH7gdD5y49287LQzmRy8\ni+72lH/cWGbjqGVPxVAKFbVESGwFGwNKMR4LCggTg07NDM05mlo87m/xr7ONk8J5TDUFbYBuMSaN\nN9WtP0YYQjVupYKak/iJzj3z/WxyPL3+JQL62eRoHhhAhU7ZxYIOxFEwIegAIm3pKMGaUxQhUK4o\nNh9ISBOn+AYhrjvQT1PHUaaJkBqL8TeKMe4Gmm6YPjbgz1xaGwRYZR2FEsK5a5by8O59jNU0oakg\nYZ6l7bAoH3JkMua7n1pN17nPpq6egZo4yI6HvsOy9b9JmOunNrGX8X330D7QSVA8hYkkYs9//xXv\n++wR+nSN+w7WOVJXVOsV3vOGF/KtG+9g24ERgnrMRAXy1RRtwGKm9ffJgP1McD2avoJIQRg5WkBb\nsHVn6SHOvVUaohxEEYwMNXlRvOU6vX9nTibHvpaZ8ssG9K37ZHEn8Hy8OLDPePr5BVjaATkl7J20\nHKo6MK8bT/2krqXWNWvcq7EQGxArJNhput2CXScUAyDeI1SKGEOqFKIspQh6CjnW9RT57p4R8igu\n6Ao5VK/Sp+GjV15EPR1itJajLTWUeuZhhh+lZ8W5MLSNXO9q9uy9l6XLziS1O/nR7Zv54sN1bBRx\ny2CZEKibhGoi5ELNgnzA9rEqUQKh9+yn6/Vj+E1eZhjtDaAPA483gE1b+k15kA+gGMLwVNPSz/ZJ\nTvLcPw/Q/9KkV07/kUerXusPyWZJUTT2s9ZiUktbl9DdC8OThqGKoSYJaxYJtdS7yWnzuCKe29eC\nFkEpN2GEofMM/F6NazoRv5ZRCVZARJNqTaKFqjLUAkuxVOD2R/fxgkvOpRDGJGI5s7/AQMly5cvP\n5Ybb/4Kq6ac8ElG780P8wzf+k1plMWb3j5jacie7b/wo7ekQubCX1/zV31DZ8mlWX3Emn/3AeUzV\nR/ityxZz/iJBjObvPvt9HthxmJX9XSxYuhhT0EhOO/cT4UQwaGHWfVrjEHbGGGUWZuPvCNDOpVfa\nfR5Fjnt2VyENXvToPj029DwWL+TJICe6gWdSB5bWvnT0ZmpgSZeQz8FwHY7ULYUcrO0W6t5LMy0n\ncpSCoyYz8NIKrFiCGZ2d9f+xdHua5yVgRJEqIQ6E9lIOtGLDgh7KacD28YRv75pgVTHHmlLIB5/R\nxdvOaOfTVwwwVhmiPddBT7yVoBjS3tZG5/LT+MmPHsL2zaccD7F5bIzDQ1sIbI5F+Un+/NISf3Fe\nnnPbA7pyipiQzlzAc5b3snOiShwodAh1dTQVOVu/22Nsb40JnWi8RLtmWjorUs0YSSOuQoNQOPax\nZlzDzyq/NEAPM1341tbCZ4YC1gVhLN5SsWCsULMQRJZyHSp1qNSFSh2GqpauNiFNwRrB2ukgJt4E\n1YGgcUFdrZ3nIEGTC21OQK3csm10smqJOZgCqK6QJCckOqLYnqO/t0RAytdvuYee9hJn9LdRl4R/\n+LMX8po3PZ9N12/D9q9l8MgwozXLay9dTnXoNkw4wKY7/oepiXbCoJvayN187k+vZGDJGgqhZniy\nn69+/Spe/OKnk05OsGF+nu4gJRcUuOzyi9h1eJTuUsiwQC10nkmrYZBZyFZZJASJ/Oss6TrH48ZN\naqcFEsHzw9mE6ifTWi3byTYmjmBW8G7t7xNb8k9mOR54ZOBulKdhaOp23Vq3TWAitkwlUDZQTaGc\nwlDsPCiTWfC0Ao7j7bV2AfJAmlk7Ss0+kcPRQcPWCcAAKgKbE+rAwXrC5af0sWlomL5igASKtR2a\nAMXvnVGgUrU8Y4FiT9qDqZXpLXWzbMXTKeqUQCyF+igXn3MWbfVR9u54mOedsYKeji6Gdu5gp11I\nbwK5sMafnF1gIBTOag8Zqaf8985hNIqXrlrAuFbUxZKIzyiaFo1o/ijJaK8WVJwZDJ9tnOot71u7\nLPDw5PoY6okbh5l9eDyz5GQmlpORJyXQ2xn/EbS0WfYlFIwCCRz35gBISPH8o7EurQuoxYqpFKZS\nYbJuKceKWl3o6AodRZM62ibDMNHestcOiKxyNwY4qkEpIGwF+9Zha05EAqAsQajILwyQNqiLIY0U\nKrRceulF7B9NUPmQDYv76C5o6rbAtR85i/6BbfzwmrvJ2UEmtsakuw+TH5hi+MEfsbB9FXvuvo6B\nFSGLlhi27b6f8eFJHr72m5R3XMvIphvY9vB+vvTxPSxYcpAP/MWzyQeGNQsKLO0K+dRX/htTrXDq\n8iUE+Yi+eR2QC70t3VQPg0WMYGMwdbCx9dGnYwVexdMuzZGKcROpiJBKC9hne1hLEkO9ZhrHyPru\nxBD+ywHydkY7nqmcfZ7611ZQSH2zQN06CqdmhLJ1AD8RQzmBcgyRdhy9tdOt+sZ5xCJKGplj4Kz9\nQGVe8fHFO4FYBVFJsKEiRljRUyAfKG7YdYjJRHOwWmddmyY2lgu7U555xkoWzMtTHTiVv/r+XuZ3\ntnHHvffwwCMbaeveQH1sEFU8lXc+cAeHx3vZP1mnHK5m80Ob2Lu1wg131SktWkqShuic4Q/XRNRt\nzCXdEWC5aHk339i8F7HQXcpjA4USaYn3NYOzGYqnxtFZ2aaZciyvJvXB77TFYm+exVG+9bR5jCda\nnpRATyTTmlXNloSWNKLRCN0sLdoFfTJKQcS9T5yB3+Agy9ZQi501PxVDJbFUjOXIaExsrZvlvTWT\nWTQq40W1IQgFpZzlmaVsagUqFAgE8SsTRLy1H7jsFgmdB2C0cZaxypHEhmJQgGKBLQ/fz3h5ksXz\n2piqlqlUKnzxD4ps2XKAfYPns+mBrTx4w2/w/vdHzD+ln+13hbStPIOqOcD8Uxew+55JDu3sZ/G8\nRVR/ehf3l1MGR7v5y/dczMbrLscWnspn/vUgS3uX8tl3LWKipunLpfQWQyaTmF27HiW0KSPVOnFR\nYYvKZci0YHUG6DIDxI+VOtoMzrpvAVTrlta4kBU3ruKtrbFRSLyJlE22jsc8mhqbaQ3NtPpnprUe\nK731CRU9vWV6ZgUSBal2zfgfanHGRMbj2izISouV6cG9Yi3VFCoe8KsGqhbGYufVZvdG5iFk1muA\nu18Cb7i0ellKHNi7lnlafgJQDtwzS7it06VPujRQYddklRwJKQFGCeu680zEln6d8LsXLkOZcXRp\nCVd8cjML7FP46HWGMzZsIC71Qf0h2gcG0HaM951xAf3tE6xecjrDm37AgxXDmqeuJjbL+P1/F3oX\nLqSUC7j4jNN5aptlNE1Y2xnxvW2DgGZdb4mpNCEOnMdvtbeyfZ82s3KO5vBnm4dnter9JNEq2VgJ\nMFl1gVjffQ1JZjnHzPPNXOx0PI/qWPLkBHov1k4HBWhagZlN5KwRi8pbwk6gHQi9m2odeMQWUgSb\nuNeqgUpqqCUwVbeUUzh8yGJSiFNL4rMUrO8dg3uvvOJnlnwG9tbiaAblHcMACDKO300EIhYECl0K\npQSDJdI5zjt/NV2mzoPbh+jNa1Q9Zqpq+cs3rGPMLqZn4aWE0X7Gtv4G1971E2xcpjaym3mnFZna\nOs7EvirRGX/MBW97HysuPxe78mqCc57Kb1x4CnH7YlC9PDp+kMO3r2DN8lXQtYRHd43wmbctY6ic\n0hGliA3YPyZYG6O0oqugiLXCaIvON828k1s8JQ2Kyr3Pxqo5auUa1GsuT1uwiHF/V2tugUmdDMQc\nBZTiKJwIGi13gmuRWT5/ItMtTyTWTo9XQKtX6AHZA6oKIciBzQHaAbv1FI7TbZzu4oC9amyDuikb\nn+nhA7KJ3996GsjgzpNNmg0dl+Y1tVKTqgW8RJrZPUb5OJi3DAomASNctHwp5ThleVEzWTeUU+Fv\nN0RIbZSf7B3hhZ+/n/NKZzAEHK5NMLHvEZa2pdy+cQdBrcTO0YSFA5o4N58Dw2NMpvD8dYsY3TdG\nGmqMCbn6U6N0dy+kXB7jjeu7iRNhtFJnXX87sSguXLaIVBRXnbaMNAxIxYH9zDTfE0lmpc8Grhao\nGKglNHL3xf9dTaGGG58sqSBLmxWYodcnvoaZcjLplj9z1o2ILAa+CAz483zaWvtPItINfA1YBuwE\nXmatHfPf+SfgecAU8Dpr7cZZjmuXn+jXtohug6AoWE/NZK6mDoXaiIUqDctJ+3TKrgHHfCkFQSCM\nHACVAMo2eGJ3LdP7xnozymXdiA/wusycxo1rHYiLCCIuUye7WYwGyWui9oChqYQVCxbz8J7DdEWW\nA2N1Vi/qoK4CyvWUVd2TfOZvX02oH+bXXlXmtPmXMU8m+btvXcJzX/lmPvZbT2P9q97F/Tc9wNrT\njrD/3j3o6maqxW7C3hew/OkbiPdey9j4MH/+W0VqukRXkvLh/7iPg5uX8Xt//hXuHm2nsxBQKBi2\nHqny2heezbXf2UixmGOyEhPGdYI0ARHslEGM+22zAb4JLEHRWeFZ1oGpONOzeUO0Wvizy8w8ZQ2U\ncgo0BMq442uX1VGvQaVmp6WoKeWzR1qu0RF5TdmJPW7WzeOq248BXIK89wozGtEDbKBhatIBiXir\n37OJ9HQ6y1KJW+g3OGob1EoGztlxWiVbY2JaArfZhGJpTkrZHTEtsC7OC+loU2gJOVCDghj2VWMC\nYHlbnlSEqhXieo0vn1+ko3ceudDyrdtWsaUyxFsuili+NKGnlIfccg7suQ8VdtNh93FwtIclK7tI\nTRvlyd2gFzNeG2NxqcjvfukgpThHsfc+XrZhHsHEQV5+c41EB2hlOFxNKIUB1QTOWdDFfYdHkdiQ\ns6nTtcT1Y/ZTZupmCuQKQuIXS2acm0mP3rdJ1B4tM/VaAQXP3Sun3o01B3EKlWR6No4SN6lPJ0Nn\n6vXjk3WTAO+w1p4BXAi8RUTWAO8BbrTWrgZ+ALwXQESeB6y01q4C3gR88lgHdiB5nKZAowg7QRc9\nT69p9KAVMAnOwi80rSeDA+SRg5bxAzByQBjap1wapbiArbWWJLWkytE+eO4STcNSV5m1rvE0ztFU\nTpYtopXzAGwIYRgQ6hAVROTDiKtf+WLyuYChKcv6U/oZrhqGxsuUqzHvfeEiBrft4MB+YX3f5Swu\nbOdjnz/IyH+9h3971xWsftGbmdh5K0sXbmXkyCQPfvMRulc9nRXnPYvBZJTJXQ/xzS/eyrZvfIsP\n/J8bectv7WQ0CLnyJbdy4MAgH37HapIUhqbqjE9ZzlrSwTXfu49Ua1Yu7SQkgVzgFlOJQZVoTGCN\n7CHcalpTsATtHj20IJG4vim1WtAnZ1C0WksaKOR90BDjLMvQW57aEuUt7R1CABTbFWHBBQKjnLOA\ns+xpN60/pgVUj6Nun7hpINcuTs+yH+CbwXG9URsN7iGjcSwwPAbjEzA6AQfHXFwko3ey14QmpWnF\ndbb4+yez3jMKp9V6b1A5NLdpf1/ktaJchYnY0BHAQCmiEAREKqCGcKhSZ7BexUY51q1ZxkMHDvIb\n3xrk7rGDfOLXBzln0SGObH+Y8QOHOLLvQdrUQrQZ4kC8iO33bacyEvHwA9dTHhwnzKf0pwfZvP1m\n/vnKHQyphPsODdAejDNv8UKMCBNpykgsnN5ToI4inxMeOjzM+f092EBIxHvkjew5J82gq/NKc0Xn\nqWjfR+Ipt3w0y9geR6Fm6nXRl65Q+Ena971WLhWzPe+s+2LO/a20i7UEujlpyLTrPb78zEBvrT2Y\nWS3W2kngEVwxpyuBL/jdvkCzLveVOCsJa+3tQKeIDMx6bGWPamjXsvIFad5gis66sw2QzbhxwQRg\nlRD2ttIszaFI/UpXYwzWWlIc2MfWTzQ+PJ5iG15CFqRx3FuWnWNcKQWaNwa03BiBoLUQKoVohShF\ndTKGuuFDn/oi9WrC0r52RsZjJiZj0kShbcoFz13HfY+O8LvvfpS3v/kI73zFIxy+aQ/S82yS/KXk\nihXGN15DOlll/qnnsuyyS5jSz2XyoRvp6VzFyM776OtZzLxL30O8T7Ng0R1M5mocrK5n84P3smDD\nWWhVo55YqgaSNAWjSBXYOEdUKKCjAN0WuclOg0QKGzhlVwGoyKByhnw3qMBn4ngLxfo+L7ZnKnZ8\nqmWmoiqgGIBGQFuCoDnOQeCtoNBZvW3zVINzbqUawtC2HO/kOfrHVbfl6JYhQMPziyAV61eTzpgI\nMn4fyHfgPKYWC70B+t64EaSh2zMX5xiafWW9eSiqSVFkiD7TUs3Op/1kEOIMsFBryvWYFW0Fto5W\niVNYWQwYrqbERtBo8rUqD+zcwXPXtnFmaSUro0OUh8bZsy2m57QrKOfnUbZ17t2+jWT3YZb0LKXW\n10kQHmDtikXEVYvYUYKOtURpntpYjZeeuo+Vpfl0FEvUy3XWlgzGaOrGMlSNWd0ROg0Qxc7xIQCK\nnUWf60/TSPTgrz2gBsVmn4vn9a2nq8ws9sLJmBAGV3Yio8q0dm80bjFclqGjA8iXvN6q5sQKTEt/\nfUI5ehFZDpwJ/BQYsNYeAnfD4NxfOLpm9z6OUbN7NisnE+vdm6jfWdOuZwQTuJZqIatng7LOhe/C\nUS6t2mqcn+puDEsqPniohLqyxC09EyvXjKax0Mn49eEigrEK0e46lBIH8Aq3jczyNxCADZ3SRWJY\n0FnEiCVnE8r1KkmSUq3XeMaGRWz9yX2cua6PSy5cypZNO6h3n8G+ngvY9fDtLF5b45Yvf5z+p76C\nw9u7uOtjf4MN78Xufze1rgF2ffcjLHzKAOsvew1bb/oiycAa7t14OlFcY15+GavO72TPQ5t5+dl9\nJGlMajUT9ZCnrOgjssKh4UH++p2vJ66mEOaxhZCgS5CiQUXW5777cfFur0TOslOhRfmCcmjfT80c\nE58GebTM5gaTAwncscT6peYetFR2g4pFa+OK1IVuYnX97/r955UnXLcFciW/PbPilWtpBrzZZymO\n2LUtut3sakcDeN3ONsczOjqWo7njLDbVuDaPJNoDTpaKqDMd8BNSzVhCCVjb04lCKIphJEmpmwSD\nZbJu+cDZ3QxO5Hhkj+Gy08ZJQ01u4FJyvTHDh3dSTtoYaC8x0DZKsnAhd976dS5YU2TLg48wxTn0\nL+pk274RBse2EAQph6OLOKuzzv56hWvvLfPNB4f5k/UdjMUxIpaa1US4RWKlSPGOi86hAJQrMRIq\ndASSd8AqqpmAkYpF+5gIylvffq2H9bo3k445GaCPcDGXbMLOQDoLsKuWyTXUYLX1k480Yiiz1Yo6\nkfzcQC8ibcA1wNu89TPz9z7mIEAWKLFZZoJqdi66CaJZsDPjw3VD+Zo0j3O/xO8vTaDW4guJZRaQ\nJfWjnHGPqUznyVonCtvac8o0bkKUoALlLOAMkACtNYHW3voX1p22hJ17h+kMDHWliE2A1m7Yf3zn\nNrY/2oORYYYPaS6/YDPLzlqCmXqQC16ymt3XfZr58Sj3/fAwkt5O59N/h95nvo1y38vY/0CF7rNW\ncv/XbsLu+xzn/Np5hKecwrLVFT73iVFCVWPpwjYO7Am5bfNhjCiX0aIspDUSIxRz8NF/+hxaC3Gl\njg0iglIb0TwhGoBgPq7iprc8tHctdeAtlGx8siD0LHIiVzMKFSqVRuZCM1roU139Iiv8egaVs02L\nzGdjEbSuYXjs8rjodqslP+N9ZmBaWicCaQQ9dYt1LTh9DKKMXvG63DIptPZxYptgn3rrPpXsdzYN\nqCwInJnwovzEmgGRlqM8V62EXBASBYp8KBQLecTC6V1FEoRANEoUBYFd4TxWdPcxUom5akMPb71w\ngl27f4TpWsj77txCafBe7t64A9t5Cts3b2b1Oc8n7lqLWXQm40d+yG07qqwujLPvwC76lixnZM8d\nLF27nrXth9k7VeOcJe1cdyhPqIQURWIMsYX+EOK6YcfgGIkKUEbcaxiRL0JQgqjD647Xo8CDaqCa\nY5RhTBasnikn0msNKNME9Ua8JJtAZLpHrLNt4u6vDA8fq17/XEAvIgHuRviStfZbfvOhzG0VkfnA\nYb99H7Ck5euz1uwGGK01WzVt8uAZeBsPIkpnzfh0LzutOZfLIqE0LNDM4pZpyiqN18bqPivTouNZ\n/nEqNCwko8VRHUrQYv1Na0mVJWjw9uLAPTDO8rEWCTWFUoRJNSuX9JBagyXGiKCUYpJulm+osX97\njVJ7TLV0MQe2C+Xtt7P/wRF6r7iG0pXf5u6D85n/7H9nz1030jv2EN0loWPD67jzjn56nvtZqmv+\nmb4wZv+1X6avcJhbrrmZwXKV7ZtHWLBScd+gwRhDUkuoVqtUqjXm5Q1HBof5o7e/maKqsDBfZvP9\n/8HXP/RyglTQoZArOsBvrF/IgdWCDbzXo2ksKgtaONCZynm8m0KUcTSRD6C7Y+IpDh8DEDWtKmPg\nXWzxN6cpoMmlAAAgAElEQVROnUdVwzKMZdS3k5HHTbeTZqv6oGnrbzCZnjaanWbdN+gUb1WrgMZk\nqESm7YZ/tdY2jJ6M2jH4Mgg0+f1GATKaE0G2qMoCKMGInXbNGRDFcUKcGlIjBKQo7bwFg5AYg7GW\n2Fp+cO8WCu2WYhF2TQo7DglB1MGWOx7gr0/robz2VdwytohYTmWk/xmUOMC9D92NHj/EbUOr2Lw/\nYVvbC9g02MOPb72HUxYFxJVB7h+OeNqSDiKJWaHqIJAYF7yvGsvpHREimsAmvHLNYgphwK63X8Bd\nv/scSrGjA6MQ8u1gc67fKnX326zXqSyVNMONmQ7jyeh15ol6tfbrSWiAuVEZzeiD7F6Xs3TXQCD0\nBmkNVx551Lfjyc9r0X8OeNha+9GWbd8GXuffvw74Vsv21wCIyAXAaOYGz5SefLMVAmiqn2tO6awL\n/GVK3sJlNicGZvVz1DHu9cz6zDJqnGUlDXoiNc1BzDyDbJIw0OD7Mis+VWAD31BYK9QNWGM59dSV\nhHlBk5Ckllwu51PVhN++fBmllRdw8z27OG+9oXtelZ07f8TpK7oZXPkBNv/ok/z265/O12/8PF/4\n/D9ysHg6B4d2sOXHX+L73/x/3PjIrbzl6g2M3v63PFp8H2HbKkaP9PLUV72S0doe9g110bZgEa87\ns51QBWgx1GJDFOU5b9UAEnZx809vpSxtfPy31/CJ57+Iuz/xdS7rLXnX1aILoLscjVM95Or7B0Ew\nbTwsUB5t9v9smQfHEmvxYO5WfmozS3+LwRowqRBFLr4gynE8UU5Iq248C0AP0OdfT1IeH90Om60w\nC7VkaVp20wKgLf3aSOtVMusCqNlEsjUmLZa9uHmwsWrWMMPDwE8EFu9RNVc2Z16B8ROvC+5qImW5\n5tF9zA8Uk3GMCERKESIEorh4cTtGCSt7imw9NM7ZF64nNLBkoJ+xgYuRfXewOany9Yfv4qf7trF1\n2x76piYZmL+AG3Y9zA9HDvLDn36VDaefRe/Zv8nIWIXD5RFqOmZ+R0xPVxdD6ZRLx/WdVzeQGEsi\n0N/Xw1cf3o6Jy3z28z/mh9/6H67qddaIwelcseiNihjS0HlLtmUswFFBs8HIifQ68RiSZUlp2zIW\n+MkjqyxoHYZlabYoyAVCHD92vf6ZHzwiIhcBrwYeEJF7cZf2J8AHga+LyOuBXcDLAKy114nI80Xk\nUVwK2tXHOrZS07uqNQVUxOdmx7gsGH+zGNv6Y1r2x1IZzzrSWTYZNzbtHDT5OVef1d0FxjaDsdlS\n8obV5K13Mc5jyO4kjfM6sM7TsAZsaFFhQK2SkFPC/fdtQddTVKooFnJMjFfcYpMEPnPzNp6zqsLb\nr15JjS42T6zCRIPs3TmFsu/nJR/ayDV/9VbOffUfoAsdDL/n2RTX/iOLNvRxlkzx5vkrSY4c4r1/\n8Hqe2f0Qy47soeus3+TiLzzIe69azLrlB9jzgwe55qEptIogCokKAeW4Rq1sMfkCL//1i/nzF44y\nUYc3fvV1TGyq8sE3fRlpo1HvO2izmDE3PuXD0DHfODqhLhBBctASiEwLAhqm933WlzPxyqTemrQ0\n+VDjx9s2uX6lcVkWh4y7+fwBa8bFRDSAVVjJVts63TmePK663UrKM7tuB9hpdVKm63bLd7HEtQx8\n7LSA3fT9poN363Eb+0sztVJoAr4Yt8Fl7bliZ9nqz+w2dZOTUEtTQgzGCqs6QvbUDZEWUhJSUSAp\nCxe0MXhwiiPxFOuXFbn0tt18dXGOauUQ/3j7RuLxQT73st+gvbubei1mcngPhc5FHPrxf/Gp178R\nrGXb3j1c+q9f5+vndlEzCRf8eDd9SRdxtcDtO/fytNO6MVsGXfVVpfwKX6FLC/WJIT5y8TIW2VE2\nnLmQIN/Ojf96j1vxnqF4aJ03mUA6DlKwjZIQSkOlCirxs2TWlxyNKbPFoyzOKs8gJqODxfr+9q9K\nuZhhteJKJ2TYVLNO+bUftKyelGKWk7XIzwz01tpbONp7yeTyY3zn90/q2McyuQFjDQjUR6CwEMSj\niKYl7ch3YiIQRiCHxNcPbfgDzXMZbyWGFomcBpsEbNJC7eBz4mlOtgh+Ob87uSRulLLgbpbymVn6\n1hqqcUyNOrk0YteRIbraAqpxQq1qCUUz6Re1F6o1XvGJ3Xz7nRtY85Zv0RUpdv39a/jYnZv4wXf2\nc9Uznkpx/kpyYQFlLH0XvpRw6SpMFRLaUSZBdXbxR3/0ZzzliudRbIu4/7JFvODQAyw9+wB33nWY\nt35tkqWdOXYOp0SpJq8DcsWICMPG/+yj1HEA6fkjRq77IKpa5TN/cg2XLuzk5vExrHbPkBISt6rV\nUxDlQxZrBYnd+gEFGJv6TBc7qx425tZsPPyrqzvk3GZlmxxx5s1lRqZVUK84yz67TzPLrHEOny7V\nAMITAP3jqtszYxYt4GtcmgzlSWjrEGdkWF9szE7/SiJu4XjaUgqx9cjW/5OtWrWBt+ZT7y2Je20E\nAm3zUjJ6R8BRZZni04IlLeOhrKXqa+4Uo4ChJCVBY43FJAZUQJokWKv4ygPDrOrM8de//jJy7fP5\nf8n9LAgPs+IHO3jtWUVefe7FlIodiChyuYhC/0KSUNNeqbknXmHoyhd533lruTnXzeUjd3Lbrz2V\nW7ZsYfPEFPNKHbz/x8OYQJDYoC0oFVBLhetfM4+u7uXI5Chbtx5CwhyDjx7m1LzihroHaxHXVDMR\nN6nQWEMTZx0jTYA9XnLBTL22OKu+Ebtr+Uy8l5RNAnVfUnqaXrfMJuKVoqHXxwH6nzsY+3iIZE+B\nmqU1VqUC1UEg11w2nvGWWUXEXAS1A6oRvJutEQqqQ4h6hajDErZBvgd0u58YxGflZO6tn4WNlUYA\ny1hvcgWCBIL1pRBUlpalQbQi1Ir2zgGqQcD4lGGgr0hsUnTgWNHQGoJAMxkpaqL5yYPDbHpkG1se\n2cdP5l/J1x+BP3n7m+kuCStXr8fUa4Ahd9ZF2HoVU68QKk2KkMZ1wr5ePvyn72Z0OOWcv7oJ3TvA\nvRt3snVXDlWxPHqkQltHF1FoUfEE//kHHXz200vJBSuZ2rqda3/n9ezeNsK26+9kw+kdtOdLWM8j\nSCAuwuf7qHVuFqWaXpASjOfpp8WvacZXs2Ai2d84+7Qy1exzUa5PC0VLfzfM74HuTrAi1KvSALSs\nFnuWqRAqIdCuuZIUs5i8T6DMlnUzjZZxDieVijMUUh9Ybc2jswpyGqoTNGISM1vGBas8hCVf/jnn\n8sIbcROZwdVLE+Sn51NOP3eWiZKlHDqazmCDkMF6QiAhdePiVFoJBbHkA00YWG4drbO0K09VdZJa\nw7xTTuPdu/NUUqFSTygFGmxCahyijjxyFzadxIrBiKOqutrbCcKQm7Zs48pNIUO96xgoVVja3cGB\nyQn+ZzhGxwkdeYWyKS+dV+ELz4TuqARjh7nj7oeIpY/t9z9E1NOBJDWyDDqlBWuNC15nXg3N8UG1\ndI2a9jKtq6SlMeN9te5XJ7dYOfkQ+gqwoAQ9BdfH9bhJF/nkwkbWTSj+0ZGqqQPHkycl0M+sB3Ks\nJilUDkEYicvhDnA1ZfJOaav7xOXJK4vxNEtrM9qXTuiwSJSl51kIISq548B0dzirFWK0z+/3Qd9G\nzr+41yyToTnyBkWCsjFdYUpeQyGXo1QqUghDCkFAR15jrCWnQkJJueTqv2T1aas5Y9Uy7t70MDop\n8LXPfoLfffO7OPtZl3DB2avZ+F9foW4NVHdhb/pPhrds5JKzTuGic87kb/749zj3zPX8zbvfzsjW\nn3Lei94EU53oqTrVECIdYcujbPrIAm758ioSmcAueQtMtjG+ay9Pe9cbuex33sXpz3sWaY9ibX6Y\nQmxcLMMakjpYYxpB8qY0LWjXaWA9wCqy7BH3d5p1aqOCpe9vcZNrtezWO6At83phaR/0d0JPF3S0\nQah9xpC/k0SDChU6gEC5R0Nqrxehdg+g+V8VdZIthdokRH7dQpaOp0OXGDA13gQiQzNJIGsJbtFY\nFLnjNbj9wOl1lhXWmpRg/XGMB7eZWUEZh9/4zP+dYgmw5JRhUSGgEGjaogARS6iFglaE4rJvcqL4\nx4fHKadCnCZEQcAd27ZRKuV4+ZoB3vn9m1n9fz/OSz7+Lxw+spf6XQ9BUqE8VeOan9zEug/9X573\nyc9w1XnnsPfIQa5afzofu+Vu/s+WgH07j/CO+yqECFor3nlqjrt/s4+XL9Lk5q8hzZ9C7dBOdkuB\nNWedyuqnXsq2jZt43upuLtIhVhmsNaTGxYQEaQBkq3ZLy5us3nw2/7V6Ra37twK9ASo1T5Up6CvC\n0hLMy0NvHrpznt5pOalLPmlWGc0yckQ70A9PgORP9MPBT0oe0yMhUpja6xaXNNz1GJzfSjOjBhfY\na5zDc45RUaG1ByYRrFj3gG6xhAWmV7Js7Xif4WA9QFnbDLBY5YGshd9HhNSkjA+N0yYKG5SJwi5s\nOcUqS6CFmhSwpoxNBaU02w9MsT5nUGGeA7t3YmWKv3vfB9m+/RH+6KXPYf/OHVz/7a+xaeOtvPIl\nVzO0cCX//ulP8Pxzz6E8NsTFz7iCzff/hH/55Cd4x1v/nDOesowDZ6zlTz91O6IjyCke+bcugvPf\njfn+O+h90dewYzcjD3+Pnld8jTCcILnjnRzYHHHFc5ayubPOWYOK29MpTFWIJxwHaq1tAHfWN3ie\nWRnrrKRWot5mYyLH5EfA9XsSW6ZGhUK/o4UmK5YEZxVN1NwN1d4lTI5aUqNcoDgbS59tAt6iOQ4l\n+ETJY7oCA5OjTc4WHJ3FDH3MMjimnUOc5d4s5+GDquLL5wbN4nGWJqg0aB2a37O2aVVmX2ikBXoJ\nrGK8Wmc0CDBBgk1DQqXIB4pKmlKJY1Jx1SPjeo3+9hxiDYO1Gg/u388LlvVy/aYdvO289fz4kUfo\nKxb5i+uu5wPPvZJ9197Ax9IcK8ZGuWJ+D0u72tm+Zy//8sJn8sJrbmCgs4cFdpw3bzaYMCCHZfcb\nlxKGMZWRSZK+HqKuM5m454sM9Z3GlU85k3TkBwxuG6RS0rQX6hRNgmjnMcQZVUOm102KpHX8srCc\n5mhgb30/c8wF50VNVqE77/R8KnFYU05hMnHnby/ARMVRPRkvnx2vxRk4KXP9SQn0WfrR8cTOBF/b\nBGQCUGlmjdiG4s5g592/jTS+Jn9vfW6+9Y9wP6qwGmCMo5Gyj7Q0y8mKt6qUzZ465Y6XDzTzxTBZ\nTanXI3Qq5FGoeookKdbUMClYiQmUZsnipdQTIRcpfu/8JWy+VfHgg/fyzg99DkPAZG2Spw/M4zdf\nu4zagl7u+ur3OLR/Nwuf8Xo+/Bdv58bBEhd0jfGmF1zOVz77d5w10M71399OEEaQxuz/3jnodJDx\nm/4BpRfRLR3Ub/ksw91r6A+Wk6a7UfEkoY4xp3XRt62Xt79okld8oU5tPHUTklhEFMYYlDi3tzE2\nNIFCxHlMEuOs95bgU8twzCoGS1yHQ8PWP/Td+gVq2UPcLYU2oTxpGpOMqGbVcTfOx9enJ0zUdCCY\nTRogO8vGDNQblrad/p1WyeJH2eeCj2crF4OaZlBlO/gJoUG94QA+keng3ohTWRAsbVrRZRWHyzFi\nc4RYl1GSWAJrKIXCROo8QAefLt1zUaFAm4JfW7mEb256lGt3jbF7bJAzFy/j+Z0FHji4nw3PvYKX\n7z/A1d+9hXFjiA+X+dQjO/jUcy9DC/zrM8/lhd+5gVPyll1VWBSlMDoCp15M29gPKKx+CeX9/0Ex\nSGlfegkpdeqVMfrbLX3rzub+n97FZYtL/GTLJGPW9U3gO9DpbjMLD5zHo1v6Leu6Rtxoxtgda7wV\nDvAPl1smZB/0zfL123LOoMl0eeYEe7J6/WRR/2kyM799+meOJshSKGd+B6BjoaJtpVBaBh2naOcN\n66ObKGfZZ7y/1r5cgXa1uK31C63CZu9m59d+AZb2tW9sKBC6J9JLIKjAmU6SkWnakNoUVEQhilCh\nYXh4CFOvuWsJFMUgT0cxcAEeY7jzrjtpL+apTExw14NbKUUFzj33efz7B9/PS89YxkevvorPf+3L\nLF22nqg0wMIlp/GXn7iGJfVtvPqpZ3L1hSv4i7/+OHEKp6w8hzQeQ+kykTEuc+bB+9ErziK/ezcd\nZzwFM/UZzOA4/Vf8vQOSiZuYemSKR4eFaN6LiNQhepcrLp7Xh0mbbq0xBkVWadQvVPNAbo7jnh0V\nl5Sj6xoB5LRCafc4ApWC1gqFdS4rbuyinG0s3xdlHd/s/WkJmum2JzIgHm/JTj/bdbSmU05z21v2\n6ekVCr1Q7IK2Nmlw5DObVtJI28v4Xe1d/MzwkVYvuOXcGchoz/dneeSNGJi/QCs+zqUEMSlxahGt\nCXx2DsZnq1joDCK0uMVXoYJ9YxNU4gRjhXk9A+SDEv/8kl/n/A7hD1ct5APnnsobnvUsRDToEssH\nFnHda1/C76xayJuWDXD9q15GFBZQKG7Z/CDGwNP720Fpfnh5gXJiGNt0M8PjAcqMkmyZYrSwgFQi\n8rZKvlbDhmBzK5lXEC7bUOBV/SEmboKisXZa8kZmuPif1pBANVmDxn4zxnxmy7b7hfwo659ihwuy\nh/7zKGhOsFmWjs1iBT5GMvN8s8mT0qKXsAXAT/ATZn4uymKLnooJwJKSFkFiOdoyV4KJXZlccq7T\nUu/uJ3VLWs0UVY4ZxLM+IyerwQN++T8+A0W8ZWmESAd0qQJxeZTUhuydjFk7P8/EcEIqhnJqKBby\nJBKTJAmPbrwNu+17jB8Zob2k6ejooDx8hGe9+vU8+41/AFjiqTqTw5MgIf0LlqI0vPgP/5IXvaVK\nUi0z9MiDjI1Msqy7k3/79vd5zUvP4fsfvo2Le6uEtTwM7qY0vwfb3UN85/fJrV9Okgao6ndRu75E\n5e46Z/7tO6lu+Q6dKkbOOZOXbbib6zdb11cpaFHOvbctj3HMqABtUcYrpQd/hdPOBiWGo9WsP4Bh\n+viL9wAUQqIgssaXv/AWvbg0M8lSTfAPz26Yn67CpZxkzvnjKdOygU6074y/gwBiv2AJBTawUJ7N\nW3VWtklwmWTaZrS/y9ip00ibnHlNmbRSN615/JllOc1qNRAozcJ8yL5qitGKtpymkFjqsaGApS6W\nSAlaaQShe2Iz3bqXfdsPszzIMT46TiSKT7/xDWhxFv/o0Ag9pRJhGCBJQPe8Pt770pdi0oRkqsLm\n/fs5Z94CBjo6Wdc5zHVH6kTKkJsKiBaHDN81zsGS0D5xN2rMMvDU5WAGqY/eyMguQ9wdMt9MkK/E\n5DpLXLV0gi8NpozXXOcoHNhLC9w3qC1vuivlMCMLrbSOW2uyAS33RrZP9rkWV3Ihyo4hzfISaStT\ngdfrlkFKOdpgmk2enEAvTbokc5uO3mfmdvfzdUdzjVRGybb1KCpHmvsAXpMdzVAbg6ADVN75YWnN\nEk846+W0l57GpE3Zd8325letd6FUdgOIX5bsOeFgOm3gFkVYTGzoChPozBNVQ3ZNQhgEdLVDUtHk\nI00tcby3DmBZuIn/+dibmH/eWlbPm8+6ZWcxumcfQ/feS9eq1ehSARmZxNYNaZpQnayQDo6gahUq\n5XEmB4fY8fAjdA2sYM2GS/jk+97K1h0Q5QOesqwdM5Rn5KYtlCqG+KEfMXVLma5TezH2z8hVtjJ6\n1xCdF6RUa5OUDj1KTSJK1Um6o4hch6I6bDzIO2veiCCpbRTLysC/YcFYnKYmja6hUBBUYNBWEB8o\nNcZSrwk1zyGfuiLg8KBLPQ3xN5W4wnMO9CxJLI2Dim1Sas1RcPz2/zZLn/XLzPfH2qexDSh1NH9j\nJjpwaw5mE2MgrlrCHI3a60ns4hsLFhVo687Tmc9xz52HjrJc/Vzs87kdADVW7dJCU3jqoqeQoxDX\nmRdaxgxsGk+Zl9OMJ3VUqLCpQStXfK6eJBx8+Ie0rVvOH1//CFdseD6TR3aw//Ag+SCg2NHhvIE4\noRTmyekco+PDFFVEKilj5SlGxibZMTTEC9ato2pG2DoV8+3nncILrtvCnhFFb9WSJhErFnYQHxzF\ntKVUpg6QHn4YDo5hDybkVi6jMngbkJJry1MS+PX+PF/YU3ZJFb5LsiJxmcwcGwWN9TKZrue0qzqp\nWyDHWJcyWfN1VRZ2CLXY1SIKW+IgYnHGkYJay9hKdu7MiPL/ZGNwPPm5qRsRUSJyj4h82/+9XER+\nKiJbROQrfik5IhKJyFdFZKuI3CYiS495Uf5pN66Gim3UU2ltWapl9oxL7TMs7CSOMtG4p08FMDVk\nEDWjaYPorFiQYCYU1SOQDLlFEsoIF7/hQqyGTq2PTvH03yUApSxau+qNKpc9VxWUb+TBRhCHKcMx\nqNRQlARry+TymskUytWYSnUKbeqktTppTXhtV4nl0sc3Pn0/8396K4tPOZ1ND2xk+6aHGHvwftIj\nR1DFPFFSZ+rgXvZseghsHRNEVA8PMbRnB/v37iCMSkzWK1hb43lPW09iLV+5Z5IjyRTbbq9y872j\nPHBrmZ5LV7JrfBuDNzzE4Y1THL6/zD03ddMV386ur1b54U1j7PnuncTxOH39CbqNowLnDdomAzNL\noyqF+9w/jAXIFS35nCFUfpw9XRAG0FawFCLoLVlyKuXZp7uJNLCCMqCsaWYmJEJlyjasLaCxzt+m\nHggTcSueH4NV/7joNp7JU0fTJM1aTc2l740aNwrK487DzMp/GL945Jipmp42iatCdQqSMpi645c7\nF5TQgWLKF/+a7fvio3+BcvRkmJWY8JlAVtMo2324VmXcaIpAkiaMx66QWWzdgv5coAmVxcQpkREW\n0ct3friXd/Z2sHvPg6ioxI5Dh9l/aJDa4AgWy9b9BxgeH2FqYpyx8THIh5gkZWJiioOjw4xUqvTm\nAt79kzvoyUW84obtWBVQLKR0SB9dT+mkVCiwY6xKz/pTKO88xOEDVUYmoHdtG739eca3DdNezBGP\njTBai1mWt/TPk6Nq2cx0erQ3YFTLpJ3VlQ+1S5fMGN9W2qwtcCWKQ6AnspzfBxohW/vpF3bjQ1FU\n6jQoOHDbMG5SMZmO29kNhpl69/PK24CHW/7+IPBha+1puBIMb/Db3wAM+5rdHwE+dMyLChw3rjXH\nbEHgmmjHh2flgJUSaocgCN2UWhl0dZwbBf5nHCd7KpS1LpiYzZZKwW3/ehuF7oiuYrt/crJrWkuj\nfrfSzj2WnAf3vELlQedcGltQACJXfIq8JewMqMYh45UqS7tzDI9Nsm5ewMLukI485AOL1iGXrSty\n3Tic/8VNfOi+Mf6mkufis/sYHRlleP92kqlhd6khLFq/ngN33cL5Z55FmO/ATpUp5nJMDQ6yb9cm\nFi4eYMfWL1CtC/l8jY+/ZDmL53exc2fCziM1nvO+i1m0Jo/tK/GjH0+x+C1XMaWmWPO+p7P2jf3s\n/8ZO+pdUuOSl3bSlmv6FIV2Ll7D+imWEJeuAwHo6wDQfTKJbLJzMvVQARtCRpRQ6pfb1x7JK1Gjr\nuMhiwTI6BTqxXH+vwcSuFj7GW+0G6nVheNhZ9Mriy1c4x9ha1bgZTGobD4z5X9Vtz3fPBvBZCzxI\nt9ZzyrzUehUCv2NlpJlmp2YcI6NccNo9DbgCgUc3DmJzwpatQw3OFz/5iOcUGnVZ/CMxVQAqpFnE\nLnTb3CAaOtvyTBgo6oCeSFjToVjdpigFUFCWgrYgKV975mL+bNcYV28u84xNZZ65vpP53f0MTYxS\nLo8hNkFZw/rTT2VJqY3bNt7LqQsWYKs1NBaVJExOTXHWytP/P3XvHS/XVd19f/c+ZfrM7V33qhfb\nkizZsmUbN2yTYIiBUAKPeSkpQCAPJAGSQMKbkPIkgRRKCMRACPAhQAjB9GJiA7blLtuyitXbvbq9\nTZ9T9n7/2OfMjGzZmPhxwrs/n9GM5s6cmTln7bXX/q3f+i0mvRMQKFwr5NdGc+xMhTipHN945BQi\np/nWvpNsWjvKxNF5CitGGN12Ht0jnUw1YHLvSeZPaiqhy4H7lhgnhU4m6esrkEqJVi5DRwnq2Ibb\nd6mtU2cieglZxzhyG3N/ll0TyboIsLXgRNnC902xWbwj0FHkv1A1VbFStztzU5WuIrwuEuH9qY7+\nWUE3USeeG4G/AH43evr5wGuix58F/hj4J4xm9x9Hz/878A9PfdwnYOnnyFy1oJ0n/0LVgOKxuH2y\nMUrznvYDtEDiGEdrQjIRxi6AfZ/Zh9KRkJNucYzNJNDIFKQ6BDJvI3yNVwoIw9YKD8YBamWq7WZr\nZbqsJMlsEoRkuSHZ0eHg+JIpodlfsUlYFfI6zVv+4zEcJZG2w48PHGP2n77Iqy/cxNLsaWbHE2Q7\nsyRr/Yiyhww1wfwMUtvosMH89HHmx48Q1os8cniWf/xeGavR4JPfOkCpXOIjL1zFjA5Zt2aSh245\nRHG6gjc8zeqGpnLPD0krRaNeZXn3NA/+YJEX3jTK49+pMOUnKKPJF1xSWZdMj6amzS4IwHJNKCJD\ngW7os063VBD6xuhcp7WtNaXq4iwWjhtdmHRS89BRTW8BLKFJ2rBcAu2DawtqvsZrmAVfCTMbDdQf\nXcs44gFE2LKbnzaeM9t+0uc8+TXtVapPHH4d/LrZlsRt/OL3nOtzWrbditbBXIOjD82ZLlVttt08\npjRV5U4KLEfie5rQ181K2rPmlAQlNAerZQZtq8ljny4FjGUcsjpgKoS5is3tN23g8q8dJBABpqGM\n5qP3HuEVF6xiuVFnobjEcjpBl9QI28EOQ8ZyOfxSEWlb1L06k/OzTC/Ns6ZvFWnLYB6niw0+uNTg\nbWMZXnnvHB/ZIjl51Genm+HRXacYSLsc3nOcoZV9zOo0c/VFCotJilLilHwGMxYCxT/PNsh0uKTS\n5tzVKtH5ihZepWh1ZaeNzRS2dmt227lvf42gZdcpC3bPa7oTIY6EpGWqboteVAwXQzyixXCSOs4h\ntk+uuNUAACAASURBVODJeCF6Th098PfAu4ECgBCiG1jUurlBHqely93U7NZah0KIJSFEl9Z64YkH\njY2oNc6B0bf/VZ97wsRUu/gdsu04oYzoX7JtEmAcg4pASqU1UrekboWMVm7L4MlWHnrP6yPX100i\nJRG2TW15mZm9k4Reo0XLUtJU2/mgdIO+nmGWJxZZqNSx0wnGSy6OVcVOWlSLHm+5YYgPfm+SBDaW\ntEgkMyyVPNb39uK7aaaLJyj/eIIkCXJd/TT8OnbnAKdPHCQ7e5pAS44dfoyl2jLZ0fN5bGGAtJjG\nc22KgSJ0kvzFPWf481+/lFMHlpiWDd70py9j+cQRJrLHue+HZdwlzY7tCbLBAGJVhUcfKDE8miO0\nAg6dtsmlaxw7cIyULSCvUR7YjqFQGqcqUFUIyiC0RnvmnMYGZ9tRGj2yUK01ln5yPsZB0JU0uwaF\n0RkpZASlmsaRBn+2bSiXNUhpoi/OnmQqoki0lvVn5OyfG9t+Bnvodlt+Stt+4nGjJ+KiJkufDavF\nziGm4WsMLtzUWomx98ihuTnBYH+BRMLGtSVKwFKxwvJspQklaG3miIp3bo6iWtO4dhJbBxyq2XRn\nzbV2hU2oa3zrwDi+Ckg7FnUVIATsHO7lzOICHbkOZiolnJNVVjU8pGWx6Pm4lsP49Diu7VLx6hya\nnGDWC5g7McG2MU29oZA29GRTfGwy4OObM9y5YLMl8BnclGFb5xDl6RL1qs037p/iso1J+q0sX55Z\nZn0CnAWJHkqwa1KQ7YakYzGBxkoYsoZSJjCJsXoRQFA3j5WK2GDRuXdkC3aJrczmyY44IUxvZEea\nhGs9iLTqlYEuHdv8rdTAsJtos2t9Lrt++vFfhm6EEC8CpqNOPO1290z3xk/5upnZ1q1aI4JkWvft\nVEgrgnjaqWWi+ZxuVgOKqOI1vlnRvirultSsPoy2o9LWpuDExWDv0XaVOG/gwsCGTgqDAzjJJHY2\nTTKfpG/dMENbR9COhSUdHDuB49hYtsBxBVZKc2RhnFpYw3IUv3TNNh46sUiQdJkoeyRsRcl3GB0Y\nMA2XBTSqZb7xpc/wJx/4AB0XvgC7ex1da9Zw5+77eOzR+0kOrSbUPqlVa/DTOY4e309VSpYDxbZf\nfCuve9FG/vPr38USNtoPkUqzFGRQVY8/2+VxRX/IxG2PkgocLrtmDTtePURu3Rjf+9ijWIUql162\njvnAYVovs+eUz3yfIqU8VNlEzykX8p2mxN4SRkbV0hrH1diWJp2FTAHy+djFgFT6LAOwEM0tcaw3\nYqxEU6kDoUCEhq5pY+NakR6OhpQlEUKgAoUONFopIzUaaAg05UAz5WumPM1U46dPi+fUtsutW9Wj\nVdYuWsk4q/0mW883pYFjWOYsyqO5xRIQcT1H+629QtaOYZkY6ml7v+PCYH+BZDKBnXCwXJts2mV0\nqJN8Zzr6jhaWELiWZZKODghHUbYEnu+DI7F1yH3zVSrS5owXclGnzSfH60gEXlR3EVqS12y7hvFi\nmcu3XMapapUTXsCuU6epKEVnVw9WJoXV2cOZWpm9c/PY6SQb12xixfAqxrJrGc5mcISgWvfA9/nQ\ngTp/eaJItx1y5kSR2cllyjJg5YYCr7lpJw8eqXP74/O87spOUhbInOTuccVBO2QobbH3xDyOAFdo\ncinTzs900jKLoyUhYUM+KcgnoCNlrm3Moml38mAWXUMgaC3aQkS9LnQLmklYwjj+aBealAJbRj2p\nQ42OcZpIj6WsYCps3Z5uPBuM/grgJiHEMeCLmG3thzFt1OLjtutyNzW7hRAWkD9XxAMwNNi65XMG\nnjHSrLpNplU3b0/kEBuMUzTxRdsRWC5YrikLN7fWc1aEPbYmRWuenpWYsuL8AbhZQbq3F9exSKds\nEpYkkXRIJCW9a3pI5NLIpMHuZVJgJxM4roXlCHTWQyU1lcBlulilLi3u2DNPOpOkN59i4vQsR09O\noJXJHSR7VtC/fieid4jK8d3c8GvvZ2KuyPmXX8b2l/wKPevXM3rhZYxtv5zh7TtZuXMnVVnjvOvf\nRKVa48KLn0fP2vN56ws3Uw98Aj+gXK5zz70HyeRSPDreT7E8y0Ijy+TpM/zTHz/C4LYMfqrMD7++\nTFoXqVvzPDzVyR2zMzy++xRH9s5Fhm/47F05E307ocQKNHYIroLBIYGloxJtGYk2oQl94+wtDXZM\nko0W5ughloKgYd5Tq5sQ1VKCUzOBUbdURoAuCBQojfLN7oFIEA3M//PAkIChEAaeWTL2ubPtfOuW\nT3IWffGJ2vTtz8W3ZgJaRu3urBZBwW67tRMX4s5ITZtuu5cxpiBar3NTkE66JCxJypKkbUHSkaQT\nFr3daWzHQdpgOUY/yJYSO9IiEkmFZyuOFn3W9uWZ10k8CR2u5NUrO5irNEzvYUsihc0Vgyup5fq5\n+bKLCB2X89dvJZVJcPHGdQyPjNDX18/w8ApGhoZYPbaaQkcGmSywbcNmTp46TOfAev5wxzqu3LiT\nMNQopfClxUBC8plxRWfW4f7jVQZ60nzp24d57NFHuGF7Dq1S7Nk/x/CaNLfP+txWrzC+WOGh40st\nh66h4Jjo29Im2rYVJDRkHIOW28L43aQd7RVDc2/sOormReukx1i975sIfbGOoaciOF6OKMIRXu+H\nuplbai4gunXtmnatYeC5gm601u/FSLcihLgaeKfW+rVCiC8DrwS+DLyeszW7Xw/cF/399qc6tmzn\nJEUjBIQ0jA7rHJNVa918nyI22vbuUwbkOjsZJwiUbib2cCMMLsLnhTLUQaXiikyzcCgElqNJptMk\nXQfHsXCEjR0IHN/Gxidtu3hKNHMIWilCYdQzfBFQDj3wNXYuz/JCkZq2SDdshgspXnZRge+dnEB6\nDYb6N/H7b/kN7vngK9i1d5ydN7yF0uwiz//Vf2TfHR/m+MF/YWBolPLiHJ1dXVTKJZY8l7XX/QGe\nY3H3v36Ob/3zXvrYxS+97ANs/4Xf4m3veBuJZJ3D1TykNJ84eIhPXn0Rw5evoLx/gpX9klv+zxGu\nuLCLR5bhj76wwBUv7ufwYyextMaNk30AShCicYTA0dqo+0V4ZahABbopoWpJ0/AYoKcTLuwW2JZk\nciHk1DIoZSpttTLXM5QGt9RAyZOUPNW8NtW6IJE019MPNNrTZlJ5mAVZxsB0hPsHIsI5f3pE/5za\n9jlCqxDRxNHPJcWjdcv+DHVVN7F0Ac3mH+0/LYgdgo7ng4FZzHPmWJpIZTTOJUXHSbiCpG3jWhJL\nCBJCYCuBFUjSUmIJC2lJcwRtjmRJ0yo+SCg8DVZoMdRRoHi6yG1Vj4Kt+MmkzatGsnxl0kOj+cxN\nr4SERe/kt/jDO5Z5y84r6e0ew8908uOju+k7M04+6VL3ApKOw1y1Qk/fGnYMr+P0YpGTC7Pse+zr\nKJnideetZf+xR/D9Knlb4gube6plfuXeKre+6gLISQatCT565yLvurqPRCHFfSVJdhGC/pD0rKEy\n+kFL0iTOXbiRM48VWbU2hUy+H51/jE58I9DkXbioIHC1ZtmHoxUTuce5Jw3N3tQ2Rq1l1sc8AZR9\nSEWic35o5pCNWUCIF3nMYxEbBD89Yn8uePR/AHxJCPFnwMPAp6PnPw18XghxGJgHXv1UBxBnfSvd\n9kWjs3XWQhAVJgEIUwLvRIk4bYtmxG8ai9NaGiOJPqki+p0S6MAUO4XxRRGKWJAXWhQ0hIkkhVcm\nme/DdhwjrqUFshZQWqoRVhWu46LtEK2M8l7c5QcRotMhKvD4zg/vYlVvimR3lr0nqoxPLeHaDm88\nX1D2clz/5t/gvC3X8pPiLFduyvOlL3+EQ7u/z47rf5kLrvpVxvfdgyx0Mbyhi4SbxKqWyCa7Obb/\nLsZ338WZ8ZMcXTzDxa99J7lN13BZRy/DK95DRtrM1RUZe5HvfOFXcbsbhEIztTvggVMz5NdkOD7m\nsvWqNFt8xbEjx/EqIUlbECgTzcS6zb4P1bLB6R1FU7NfeTCzCB2ZeNIIEg505TRBFU47mpGMojcL\nIzm4f1yidIiWZhKVK/EOAFSbBmsIVD1NzTPfI+Z5N+0nJJKvbt+ZxXYiWnb0s49nb9vnmJF2/H3O\nAfg0E7NR4Z0DzYKdJrOmzS7NmyKGhzYOJtQYNpSI9W5aBU8xm0fQgneChhEpS0YVxTbR+fQDisse\njo6gtYhrrqJsoBN9uJdQ4At+cHSCbjskl0xytOzxYElxQc7mvWtslpNdbBxOcWJ2ni/th6OlZT5/\n/108f9Vq0pk8F6zbSaNWIZ/L0qEFNb/OqLCpaMHX7/whXsPjTHWebx7p57JVObaO9PEHV1zKLQ/u\noibAklW+ftM6BgcGqagSZ46d4EzdxunX3F6qsW5jil5lsVAp8dCEceZx8OJpE5AEyjhbv2GceYy1\nqxAW6oYqGevPLNU1w2kTMJ6oalalBHlbs6MD9iybblAaE7jUfIPPP3EoTNexRoNmgZuiLbmrWwtG\n055oJXufbohnykL47xpCCL3zstb/m0p68d/12ffxiAN1LUzkL20dybWax3F/0SZFSpjVMox41mEI\nOhTo0EAEKmzLZrV9mCBaiCxBx4jDuh2byWUyhs6pFZVKiZP7JqmXGoiERmuJJjQaNkGADhWe5+F7\nAWENvMU0127cyl27Hydr+ZQTecZnK1y2ZQN//dF/pVgUDPbnOHhgluqhB/noZ/6WHevz2E4XYUMz\ns7xEd9rCKy3RWeigq6vA/OwcHf3dOIksD+87wEzVZyjRz7s+8WnKnsvU37+K8/cv8dLiQZ6X6yLn\nzzF0yRB9VpoNlw9x+L79TA1LRoZ6qReXOX1ynOOnQxplQb1hml14dfA948wbHiwtQXEZUpZASE0Y\ngNcwySwT+4ElBEMdBrCM/V13SjCYNpSzrAX/eQIagaZcM5MDWjLbkrN7+NLmtGOYmuZrW4uz1mZC\nxtowDwL6Z+RZ/t8YQgi9c6z1//akMW2Pn9K2MQtFE96JqZUx/h6/RketACOutWrnWuu2x+0fqlsL\niGXB4GCSVb29JB0T1RMqlusNjk8u4wO2FdUlYHoBBKEJaLxQ4QWmKtetuIgALNdirhSwhMNoLsEV\nq1bwiq2XkEmlKJcX2XXfLr46vcTarGRTZwEhE5xeWibrJslonxWFPFppSo06KcdCJpNMLJc5Vanx\njmt/mbJqMNzbhVWvYH3xs/xascx8Dl5juzTyFn0OrBwusHlFis8dO82a7gK2hqlikcNzPuW6oTEG\nobHlRghBYJx8zYfZckQBjhZKP3ottGxuLGsWhljgrGDDoGtsOq3hx8vQUFDxod52bWMbaNOqe9Jo\nj3ubxJDo9e2Cak9n1z+XlbFWG+vmSYKDovlPc2gdOQ8r+uFSN7nulq0RtsHihRVjnwaSsUIDLYQ+\nhEqgGhotJWEY9aCNYJz2z9PCbKOFpanOehx/ZA8Da/vp6M5QK/lMH1+iUfeQSYe4sbPWEiUUSkpU\nI8S2IzVHG0Sqyh2H7yHRyPDS172av/nUv/G87Tv46D/cQnVmErcwQrFeIZx5iIFVQ2xZN0zPUA9D\nI6NMj49zYuI4l134PBxLkO4aoFaaRjuS9RdfgZPupRRoLuk9D2/PbWQKXfQkLQov+23Uj3+D1zQk\n1+kc6d8Zou/yEW77m4f46l//iJGNg+yaOMNA9xRoTaNqDF+gsQNj6EKBFRpHjh9po3uxEYvmdTGU\nYRNHd3Zo7AQQiaFJDaWGpupj4CBgsSaiykFjyk80ZnNZnuweFTH1T5ylNtoOhTyTUvHnerR3tnxK\nMU3RqkaN6YuxTn2cZI0lamMOfVPnJ2J6xQm9MDQOSIeR048i/fjYom0RAaPbIoRmdr4O4RT9XRmy\nCZuFksf8Uh2kwG1iPWZuhKhoYRXY0arsCagmPURRoKuKZaX50+u2cfnqDXSmU+w/s8CG4QEqqTQD\nHR383YXX8s09/8nW0VEqnmKxVibvWqzu6CCbSmNJB7s4S2e+QG9nD8mpKeZOnqZUnKN3aAjHUlgJ\nl/tEnc8WOhHS4l67wgtfvoldP9rPUKLO135S4kEr5PTyPGkbGn5s1+YExBXGpiDP2E65YXYzkZk3\nz5UVMfos3fIrTrTYSm3okafq5v8JYdQpy+doP/hEx/1Uo33DFsNF7X/7aePn0tHH9Mp2mYM4SWGG\nRguJlVWs3jyA59UBi0TC5vAD07iWNBx3S2O7AjsJwgHbtlFSICO1RREofE8RWtpQH4Ew0FE5swAl\nUTFpVpsIyXHN50tpItf6vM94aYJJVyNtB2nbOJaFlEal2+wcFEIrLAG+ZY4di1HZrokmstkcH/n8\n17n/nsdIJBMc3XMfB+79MXd797HrmyfY/sJreOHyUX7rfZ/jrls/Tt/AClauvZhUIkUy7bJm0060\nUDTKXWy69DqwbA7seQCocfH2S/jb736R7/3NC7lq6wvZ+NkPUygIxubTdL1jC303dvL9D32OvEyy\nYUUPH9s3T/cKCJWmkAEZSagqX+Ar0zpRBBglSqC0BIEf5yMM7utYJp+CCyKqQ+jP23hhGC3kLdNW\nCmpRqC5lKwqXmAKpmFBwNupx9gIc/y2WTJbCtHTU6LN0wv+nR4yxniWF8KQIXpBMaUZ70wRRAw4d\nKk5NN3AjJpYTFVLZEWPMlhItWgusVpogMOJuIuJjB03M11ybZg+lCIWzpfmPFeU1Sss+1cqSabou\nLWxL4DQjIOPaTY2J0YMJoiBISo2ljDNUaUG17HDDhlX88vadBH7AI8cOcbyyxPtuvZ1ev5MNuQRi\n+jCXrDmPufI8O1avoy+f48Dpk6STaYa6+1mqLLN+ZBXZVIqa71NpNNg+soLO6h7ed+/9FGWdt/eP\nsqkrQWKiyh9rnw++dQ3FmSU2jqX54v1l9tVs6hnNVBm6UwYGC1W0EEYLo4g7mymoNgyMEl+vZktH\n0bpoApOwdaShWbYPFe2sysoUbdK2C4h3qU+EHZ9qxNYekaWaAdAzteufS+jm2utF85eJs5oqQvzT\nEgXF4OoOELEqoUBYNrlMhj27jmM7Ro/bdgVWQmC5jmlebVtRRkShghDfNywUvwGhF8ERClQoDZND\nx3ElLTEuKcBSpojCNs7fSsYVurbRqrESaB2CtqhXNImUJgg1gRfgeT7KVzTqmqAmGbQu5dNf/DoJ\nFMWlReyEhV+tUMGi8ol76LjvJ2RvfhMP5yZYfvQvWH3Tx1iePsDQ0Coq5Qr7du9iZGgFbjrHeTsu\nY3lhjmJpkSPHTrB9+1U8+vX38icPjfP9F3wAK93FLbtfz/aDj9N/qocH+mvsuOkyTu7fQ4Iaxx/I\ncGNXJz/JwK3iACkHUlEEGdaNVnfYAK8B9QoszEOp1GK5xPztWK9fYAqdJIK1gwIhVTPKDogwTyUI\nA4P3npozzY/bd6CqDYc3ha7nQiZNRG9Hz0lh5BIU+qxoRgi4W//PQTfXrqNl282vcDaOks1CTyER\nvweBgUqyboJHTyya6tlYS8USSEtiS2l6AxAl/rUmCEJCpfGCKLKPonqtzAIY94iNPzmO7o1QXMTa\nkWYxkZbEkjLKC8gI/pGowEJJH6U1fqBQocYLFEEAQcPi/c9/OTvXrMKrVfFCk1RVnsfmz32VO+UQ\nMpPk8unHubl3mXfe9FbuOXWEdV0dJGybYq3O+PwMPdkOzlsxjKcF9XqNqXKJld2jfP/+b/Hw3AKD\n5V5eq/J8fjjNG/S9lA9ovpXwyQ7l6XQCElbA9DRYVc2WXDd/6UxiATnHsGvC0BTy+aHJDYU+LHsw\nW6JZlNS06/iaaI0UAgtN2oHhNE16cCzlFPPslYa5Oix5Z0ftUdF2m12fexi7bj2OHf1Zdg3czf/P\noBu7bU+rZFtEHw+tWbd1CN0ITZJORCfZVuigSqHHwq8o7ISBCuykg+VIbFtiWeYnh6FPYJkiJyOm\nFTY/I/BBCIWO2SO65VgsoRFRklYSF0jotjLnSO1O+QhslFa8+xUf4UP/8n78zBkjxKVCAg+2rX4p\n/+/v/R0n9u3hkTu+S+CXEJZFtbKEX/dYmD3DjoNDjG6/lHf/1fvZ/sEXc8m2DorH3sW6532Brq4+\ndn3/Vi7ecRWJriwJaTM9PUl/7wi9K7eR1Ldz+vZ3ERTrzB2uU0g9wtG7v8XY/4KxS3pQxxSdfQVG\nhn0WliV336Y5Tyc5ulCiMV2irz/FhFvj5BSkk6a0WwdxdaagvKyptwGOlgakURo3DsEkwp2o0nim\nqFndb7bGcaGaQtLwlWmmHphsk4xYM553Nte+NRnOMgbgyRh9PGRzUTg7iv6fGnbbHlyJJ9q2+b2j\nPRnDmY4drwYhNCr0SLoRzS+iN9q2hSXBlZKY+RlqbRLmQiJCZVg75vAmxyF0E75RbaL2seStxDh6\nG1NkKCO7ltqI2MXl915N8KbN1/KpQ7ehtNm1ojVSCf7pl96AG1qcnp3lkYOPs+RVSUqHhvbw6x5u\n0KB/dS+lk4vctHOEG7MXc9s9n2Ex0ccNF7yKUnmZRqDYvGIM25bUfZ+FcoU6CVKJNLPHvs/WQo25\n7Bauunuc9Io8hclZnMsElRMWA90263tsNm0Y4McPLbPPm+e3PZdvlha5wU3ynVSd+ZI595koqaoi\nWLJSNzUO8YgDk9gWJTrKjxg7DzSk7SaSZa6kNph8KM2OqhpVIDuWYeec266fPJ7arlvjp8E+8HPq\n6J3oW517bTI/ydZ+s55YStGkoNm2xQVbh9i/e9y0j3MkrmvjJKwo2jYrchi4OHaI55kLJwONsFWU\n2TbQjopX7qbcgrkcJhcQKVVKQ8+0I82ceKKgBRqfmy/+G0b7NnLDxhex7QW/wJ99/KWEHvzd+35I\nQgru+u6/YylJvrsb104xunoNSnnMzc2hfMW+l6T4s8MP8aGffIrjD9/FN77t8sa3vICZfe+jY9tL\nmDzzIBdf99u86e2v56/f9ttMT8/x0B2f56LNDVau6Mc/Mkny5q/wg99Is/m117JoeeyqVBkZS7EU\nVtn5onXMqRP86Ace690MOxoNTm/ppbM8zzuv7uKOEnz8385QLWsWA1MIlUiY359MQMIRhKHGr2Oc\nvgIpZVSQY1rJYZnKVm1BZ16iQkU6YRJWoYbpEizV4fgMrB2UVENN6JlK4oWSSYi1b3dbj9sCgubz\nZveg2x4rjOP6n3by0Gr59nT7CVfoCIQVzaboUghsKRnqcJgv+liW0em3pMCxBVLKyFELAmVhCSP6\nVlcGwvSjRVgKjQ5NYxyhIYjZZNFnC9Eu8aybTl9GEJiMziyhxc2jVzCQ6eKfdr6a//Xdr5FIFfEb\nNl95zdt46MhRvHoD17EZ6OihhxwdyQTL9RpzlSq/vrKf4VMPc+nKDm7Zdj1nlhU3chC/10JP38eh\nimSyFHJDXwXfX0YVrmXXyb38ynmD1BYPMDsbcMQe4KKhAq/uPcTO1BH+Zl0V/zgk8jaDhRqr148w\neXiaM4se76un+Odkg999zTUcfeROMn6KDx+ooRUsa5NzStoGT3ck5BKgHeP4GyGoUESsHBOIOMJc\nQ8syTrQeQn8KEhK6LGOPCz7MebDow3DG0FtDpQlCqIWw6D2VXbdGe8QfJ9vj9URxdv7q6cbPp6OP\nscanmAxKgOu00hFCRNRGxzSoMM08NG5U0epKhS2EKTYxQCRah3how60XCiUNtdIwNJQpaNA6wopb\niauYoiajpJVpRC1Myzyi6CvUCKlQ2qZnoJ/FyWMUJ8bxyhaqofnsh/Zzcv9+Hj9+gLGx1axYsYpM\nzwjpbIb68iJBrUKjWkPKgHDycW7544+SsizklgsorPocieR7SLCI2HWUqy/vR0/u47Mf+wDHH7yL\n/lGftZ0X4jd+zMyePXT92qd5+Ls/4mW/+wZuu/VuxOyDZN3P4qa3c3r6R2R2PwjJDla4KS6YCPmi\nPc+7/uETzHuPo35yGy8RYL8sz4e+fACBJpeNIpcGkbcwjsBNC/IpzXJVE2iBEKqpPuraEW4rYe+0\n4qbzLZ6/0bRWrNVg9MU5/uj3KuQzoFyF3QCRACR0STgzx1m0SDMZ2uOYs2MahbGHUOjosTEm9Yym\nxHM74lYLT/VNVBT1NZulR7mGuOG3DkNTj2CBkJpklKh1TSYaAEsrfAk6VLgSPGUulS1Nb4AwNmLR\n+j4CWosKNCtsLWGcSazWKJSZCNf1bqUzYbFQqZCral5//k7+9fAP+c7r3snDx4+RS1okMx305PJI\nLXGSSYRQZEJFGSMDfOrNryWdzLJYrTB5+gGKei3bnaOk0qe4Mr+a39x7klduv4RSbZl3f+s/+MRL\nb6A8/Rh75izGRi9iKDfGWIfNoS1buO/I49RLP2Hw+ReRO7jAyGCNgw+OM1cLuXdBsJ2QfN5GFXro\nPX8tVx47wrrndfGm2xewpCDnaFxhErIiWssEhg2Wd6Doa+qKpuKoFFGxGia3MR9CP/DaMXM+gwC6\n1zj8w+0+R0PoT2n8kCbFOy1ajr557X+K7cTOPmx7/EzeB5xzV/A/PhzXlM9bDjgOSEdjxTfbVGL2\n9+ZJOJqEpUk6mkRC41om6XFo/wy2NNFQ0pE4tsKSAksqLFTTaC0dIpRGaIUtddOojSM3FbVSRg15\nLdPRHoiOZYqwTOBqdFosBDLSxtU6ZOmkZvrMKXJdPVx6zY1MnDwIXoLK7AJTpw5y0fad9PT3k+0b\nxLYUy5MT1JbnmZ+dxA888h2dLCx7ZKTGdR20neT05AwP3jqPHj9EbcUuulYOcPrRr7H02T8nbR9j\nbHQlj9z2ARpTJ5mqr2BSdbFi0whKKVJuinseOYxTXuDEbR9h5cW9nPeu32R2/yL/cWKRnrrHlZvT\nFEtfIpF/CfPyKL/4h3fwD187AxqyOUAKVvZJtq2BC9Zorlpv4Tow1KXZshIuXAeFgjLXLmGqLBNJ\nTSIFybSgrxMqSvH9/QHfPwQDrwBPl3jvn2iuPc8mYYOTJKpyFmjnbBZWazzZVcZaU/FfYnw1FJDb\n5wAAIABJREFUwIicnftd/73DsczNtloJVSuucLVMgrA37ZKUmkTkyF3LFKklBCxVVZPdkZICO4rc\nTcQdazOJZpenuHozdtoIAzk4dmTjUQQfl6a0O/fIJxnhM8wuztApFUPpTvadOsW6vm72T89w16HH\nec/zXszuo4dBBSTtNMNdnWRSGWzbJmzUCGtVKo06nlZsXzHM3QceBzSZVAJZ6GHlus0c2LvEmdMN\najLJB67fzL13fpvGyd386fNW0ajNs/fUCaYXfIqdI1SX5smkXbTWrOsdpjfXS23xIN/efxqLQUIs\nHp5y+f3A5oDT4OVXSabLE+Q6O3k8M8DXJ3sREhKOxrXNorezHy7ogku7ocOFriRs6oDLeqEvE10j\ny/gl14aka+QQOhLQm4IfzsAPZsEbctCuz9uvhyv7BKkop+JEci3Chqz7zGzmSXZNu123nnu68awc\nvRCiIIT4ihDigBBinxDiUiFEpxDiB0KIg0KI7wshCm2v/0ik2f2IEOLCpzquaxsRoZRtHHnKMupu\nCRltrxzNrh8coiPjkE4IwwawIeVoSvMlIw1qaePstYr0QUIsoZA6RGgPwgChFFIoRKgM5ECMo0kc\nWzQnhG0Lg4la2txHeuq2MOwCW0dNMJTpuOQIjfThj37zc4yu3YRsVDl+4iBXXPWLfPIvv8uh/Q8w\ntHoTiUInuUyOU4f2MXnqMMePPka9USOdy9Pbv4LzL7yUzr5eQhHx8X1JPpejlG3w5duHSfX08tXP\nfI5lbw3WxTcw6B7iU//nL3h0eQNhdgw2vpsTxw6y44brzHl1k3zgw58kCGdxukaopQ/xjff/FYvC\n4fqMy70dC+Q21inUHsY/9Xbe/2mfX3nR1bz9rb/FyNgabBcuWG/RXVCm8beEohfyqktgoANSKRjr\ng9UDgnQObFfiuEYDJ5UwSpRrB6CnS5PNQcaFfT+CMAGPPWqxYtAincSce0cgE+Z8a4tmZ6r2xNTZ\nyVjRnAC6/bloWxgCAYLwGfIUnjPbliYYSUpjzylpHrvC3CctuP/IIjlHkrJNS0tXQlJqziyWcaEl\nZay1qRlBtxw9CoFCKGVyJRFjLF4rHSHO0kdvyihEx4wdfywB4Oi2iF6bhaheTXB0dok1o6soVqrM\nlpd51faL6RQ5ErZFb0cXK7o6CfyQer1CqVFmrlKhESpSiSSre3rpyORxE1mktPF8wd6ZMumkhV1I\ncTA4jwd2P8zRAw+waK/mwPwq3vuj/TQac/znbB9r+3NMFyvs3DSCJQR+qKkoh0RfgYad5crLVpBw\n59m8MsudfhVHh5y/0iEZWHSyl20fu5P9E5qRQobfu+EFJBxzLS7sEdRCE60HEi7pgi0dplK1OwXr\n89CRNElqJ/JJKcv8fTgDgxnIJwzmf99+H+2Am0mTtjRZN7pmwrCkLBE1/aaFwz8VvPJku249NnZ9\ndveqc41nG9F/GPiO1noTsBV4HFM9+EOt9QZMKfh7AIQQLwTWRJrdbwY+8VQHTTiQcgWJpMRNmlXT\ndQSuE0VD0YV54EfjTB6fpb+QxQ4Ue+6b4tSRkkmKqijKEQoZhNhKIYIGImigGw106JmSN79hJBU8\nAUpghSCVioxamImAxoo44S5m4sWTIVauM++Lngsl9YUMxx/8CUvFOeYXZwlCRa22zJf+5V8YGVnL\n6PBKLMtieXGJ4uwZju27H0faZPOddI+toWvVagoDo/QNj7IwVSL0Q0QiQSZrM7j1Xdx06XbK8xt4\n/vMuYvuO01z27o9y7wMlXv3qjWw+/1L6etPgTbJxzSg+PoiAQw/fT18yidt/FSd2+1QPznLx4AZO\nHapxVZik54bzGbg8T33B4nW/fZA3veGtXPGCV3H5NS/id97zl2hpkUuFaG0EyCzL9GrtycP1F4Kb\nFOQz0NUJiSQ4CU3ChWRSkEgKMkkjfZDPQ74gyOU1E4cVX/u44NGHAu48VCeTEmZxsM0im0wYExW2\nPgt6aQPu2ixHNBNbAZrAxJ9tUM/PgW1HziHhCBMRWi3n7wizeLrA7uMl5pdq9CddlB+w52SFpZKJ\nzuNGLhKFpTS21ggVgArQYYBWhl4TBzBxSGhrE5U3ddKFcS6xLosb3eI8k02LTx5rD1lK8KJ1FzMz\nM0098KkEIV6oeWRqirwj6cnmGchmCMOQIAx59ORJzszNgdJ0ZbIUOjrIdnSworuHO4/sJwgVuYTN\n71x1MY6VZHRwjCMzU1y0dQ39fVn+8MAsV2xzeX2/ougP84IVSZKDlxq9d9uk2quez9u//G9MLAf0\nZpMM9Ce484dHuf3RIn2B5pQbUh2oo/2Qaz41xzu2ns9lG7ZyyeoNZJwEoXa5fKWFH12DWOQtn4TX\nrxUkHUi70Jei6bDd6Bo6jnH0PQnz+lzK3GcT8M274ZY7qixqyEWRvxOhDq5lKnCFdTb08lTOvmXX\n5vZ0Cdxzjf8yRi+EyANXaq3fAKC1DoBlIcRLgKujl30WuAMzQV4CfC567X1RxNSvtZ5+4rFNQ9zW\nGqZsmnx6FXFcQ4zxzU+F3DF11HwnLXAiMqvUAkvpiMkREvghMir0CMMQHUo8zzSzCH1TyUdojhFH\nSMRJqijjoaOkTVO3Qpmtt1BRZKUNBopWbL/gBXgNxfLcEvmEzZptF9PbkaersxcpFd3rNlKZOIqf\nTnLs4GP0DQ/R0dNDtrsX7aYQ0kKkHVZt2IgfCpTw6B8eYnL2IImejaxfsZuZhe0cufufyRcqfOc1\nHax+8QvZ9eAIV129gM68C3ciZGTNGFLahEGNvpGN5DJJpH8Sac8wdsNObv3ftzPvuHRWBWt6qiTX\nX8I/fqLOZes167ZfQyKdp1qsIxtlLjzvQm7+nRRicpEv/OM+tBJYWlLVIRdtTPLoZJ1MTmBXY9VQ\nbba4rukYZjsSbStyaQgCTeCAdCCsmgIfVRUcPi1YOWDUR8tzivE5FUHPbc3Im4TXc1pm8zXAWe95\npuM5tW3ZSnQCRqE0/o4qki5Q5rmppZAzS4vEatvNFpnKPNYKlAgJtUnWKkztg9Km7iGMnLxQ5kaM\ns7efKdFK7AndBtfETJMoadvsEqY1ytes7e0lDANW5guczKfZsmkjeydOs7qzi76uHpQfcHh2jmOz\nU2wZHSOZsLHdBK6bQEhBT0cHW/q6CSOp3aQNpxuK8eU8r7jApaHWsVg5yQ8utfi7b+8iWVjFlmSB\n3tUJpq0+xno0IgxIOCk0IRcUkvTbJY4cXmDtpm3Y4WPMzQW8KpVBJzTr80mOqQsY7XyYbWvXMtTZ\ng8RChSG3vPKlKOteUpbkk985QSI634GGutBmcXYNg0YJg9s7VhSMCOO0Qwl5N9JmiiA5hCmyKvrw\n8CKsSAsyCahVNScr5hoqZZh8hoH2zHB6+Nnw+fbX/1fGKmBOCPGZqN3aLUKINNA0cK31FCZHAW2a\n3dGYoKXnfdbIJI00aDoBmSgSTCclSUeQtM1kcSyz9bSihJJNlJRVZiIIZRJycWGP9jTKC9H1EFWD\nsKaggamGbZjXCF8gA1MgJENT5WeFwkRCysjvmi5KRpHRAmQIMoja2wUCFZro3sZhbmaKrnw3M4cO\ngedRmVugrjRBvY5YLOGmsrhulqGRUfIdHZTLRcrlGZRXQ6sAqQWuTPKZD74d17LwfE1XvsBAdyez\n997G0Ue/zvDF7+CrP4LPPgDT5etZd8EWju76JocrWfzAwSuXsWzJ8VNTfOzv/oK8bBAenWDk4g2E\nRUWtUaUR1iin6+iRXk796d386cdvZ+2a9cxNT+EVKzRqRRzL4eZffxcaC6s/y8tfM4zjaNJOyHwR\nvvijOrYjyeY1ThLWjAo2jkF3p8B2DHxj25rpJcNmSKchkRJtOzZYrBoMeP/pkIMTIXMVs2uwXJNU\nt9zYecdO/4kb2vZh3NkTI6BnODGeO9t2DBUvbZvH8S0pW3COI1u4uSNaiVDZ5nDjvqIyKvAJQ42O\nAhblxwVuhhOuo+xdrMAoo+g+VleUmP/HDt2KAhozj0yG1ooWC0sLZKjJOBYJx6Xh17Bw8RsNDs7O\nkUIws7RIynFY0VnAki7phEsunQZLolTQ7EaWsm2+99geBIJaKMkk4YKxLdz1yKN0ZHKMy61844Rm\nZHA7V2++nHxykdMzNnPlEpIE1cCo11Y9xYu3XUipDkJ0cN+u20gPpslJixWBTyXrkyr30hXMsi5f\nIJNMgxLM12vUfJ+ir6nVJL4KePONo2QkZCyoCjhTk3jCyBHbNqzIwvouQX+2TTfeglJoqsLTkS0n\nnQiZkIZ9I4EjZc3jS5qpGs2CSSl10ws/FZXyXONntetnw7qxge3A27TWDwoh/h4T3Txx5v3M+a8H\nHjb3Ahgd1qwcBrTGl5oQSYih3gXa4FwK89jSoCxj/AhQnkY7MWMmYvJoQeipaHJA4Bn+rApMYVRc\nAQcaETXHELHhAyKMEnuRj5Fx9a42K3mz4UMgGRxexYnbvsK1r30bmY5OsG2ef92L0bUpqotTJPJJ\nKuVFSsVFsh15QBHWGgRiGW2XUNLCSWbZuW07WAkcAgZHhvjBV29lEyvZNHyMb9/5VW5+0/tIJwWH\nj5+iNH03127McMTT7Dl0P50jW0n4OXr6BskEsyR7u/nJXfMMWLt5+O46j8/AUuBT602RXtvJ2NXv\n5bJjH2dmchLn8d2UBhdNgVfo8NhdtxAk9nPDK9dTuHCMzm9OEAroLFjcvydk+1pFNRB4Gjryms4s\nZBJw5AyUa5KEUFQ82HtCsHFYkxAa2xbUFRyZFSzXlElM6oj9IAxfWcTXtkkwM+NsmuVTQzNloPK0\nr3jSeO5se9zcC2C0ACsjlN+3IBTCFNUJExnGlZVh5JQVxuEizflpfng0y5WONJuUKY6KKz7jHUJs\n21JGxT8Rh17GtqxaZzIqfUCEkW1L81yIKRSampmnX/ukR1dww4VbkK7Nuu4uJucXGS0UaHg+S9Ua\nE0tLbAlWMFcskrRshLBQbojnB6zqGSSb7TGfKBT7Th5n55pRrtu8knJxmcvXbeJURydD3f1MLcxQ\nLZ4g1/d8xheXKYYZsq7L9NIydx2doEvWWZovIZ0KW3uG+PK982wRLkLU2X7xatwVHbz7KwcYSyY4\nODnJcGc3gVI4UnL81ClevM7iVKRvnXKNzSUkfOawZlXB7FDnPROEdrlGpXKqAtN1I6IYanh4ATZ3\nQD7C4EPgeBXmGzypp4AU5rrKtkg+ts9z0SzPNX4Wu342jn4cOK21fjD6/1cxk2E63rYKIQaAmejv\nTc3uaLTreZ81bryCliZ35DhDpSPdDk2AwAs1XmSgKopYlACpjA6NjKJv4/Q1wooSFkqDb6IdLzAF\nQDEcZOhlhrEgpUmwNrWkwxaNU2htZAyiql0LCWHYbJwcCqhXFpgPU1x1480obbEwO0NxaZF7H/ox\nKTvDpZdaHJ8+w/r1azl+5Ch333U/L3/jG9j78L2sX3eBWUcCM8ESrk29GOCkLJaKZa644SZKpUvw\n73kbq0c2oMunuf+BI6wc7KR7+T7ueOg8hnaW2XbRBVhWCqUcXBde9+b/zY+/8c8UEpN0doxwTC1T\nU7P0OjB61Srmvn+QjgvOsKGngK/gzMnD1Bs1gnoIdpJf+703Mn/w28wfvx/WjzHa7/DgEZ8HD4es\nHoH+bsmRaQOSuAlwXUgkNOevhj2HzeIqFUwvw1zRRKsNX7NUhnLd4MbYYAeCwIo6+0T0QC2Mg5G2\nRgWiWQj19BPCXJ9sdItd48xTvfy/w7ZXNVmQzQka6khgT4MvDXZrYe7j6FdHSdJWZN+yTykixxB5\njKaYWdSYResWddKJ3g/mnMYoUuzgVRNHMt9OCN38fGUZWYNAhWQ7etixYQOlWgNVr7Fcq6JtyXB3\nJwGaheV5pkslQ5SQRpDsxMw0w52dFMtFwlBR9z1uvX8Xv3rtNdiOori8hKXX8eiColjZTW/HCpTl\nsiwV01PH6C8E+NkU/TmBCHy04+K4aXYMDbHnxH6+cabGu29cxV2f30tYNYuH1BJvcZyjJ85w57Fl\nNm4Z4uj0JMu1Clpphjp7aPjLnJgRaGuJsDvHaE4wVxf8ZFLRmdCs6YCJKtS1oVraEca+vhNqsxHt\nEij5cN+s2ZEFoamuLfo0+/A6Ec1VRDs1KYx6tq0xi7f62SCZll2b8XR2/Wz06KeFEKeFEOu11oeA\n64B90e0NmEbKb+Bsze63AV8WQuwEls6FYQIUHKMjE2vJa20gkUBoPKWptXFdCU1Bg1RRQYwwBUwG\n7zTYr5ACFWjDQQhNuX3g6ahxhTQdiSJL1yKePBFGHy0m8QRTgZkMOtAESpuLitkxqBAIBQrFvkfu\n5zde/+eEpRpTc/voHBsh29XF1c97AYf372Zs+xUE+x5Euhl2Xv9i7rntOzTmzyC0ZO/D91LIJJg4\nfBjtCoJA8o+feif3zxxidKjK87f8PVduv5BGt6QxPsvwmisY3Xwx9/3HZxjsW8X5V/0R6Dz3P/Jv\n3PqvXyEQkt9/7d/SODNLZ6GTdMpF+iW6JhvYUnJptpMD9xxi48sF04/59HWtY+OGjZRqDSxhUbEs\nzl9TJzz+AR6/v0TvqGb/v+/la/cGphNOEnqycPCMotoAJxMVvUVYZUfSRELlqsGkrQhDrgRGciII\njZOLXEtUTSsR2pTSWxgnoyKpXS1aEgkOLV7xTx+xa336QPw5tW2rLYiJvomxbWho0383drhaRc4+\nyknR9h7QzTaASsQO3ewIwrAVvOj458avlbQ489FpsKBZri+jRSfuoxDJ5CCEyXkJoQkqVbaOruHo\nxCTz9Qpb16xislglKSXHZubZvLaHnp5uGkqzQ65h/5kpurMZwkBRrFWplItU6h7lwGNiep6PPPQD\nFhseF6YHGF+qInyLrqU58sMbGR0couF7dBUDlgNYrlR4aPwkMt3g+2f2IoI0lyVG6RAlxmyP2uIi\n4w0PLZP4SqCSmvH5Oit7s+xc0cP6wUFAUvUCCrkcpWqRF5zvUjx+nCk3h1Wvc+sJw1ayLOhJwWQV\nZmomcLFEiz3jWDCYhJPVtsImbZx7EJpdWXyd43NuR5nuOE8upXlPXPgUW6ZLC5r5vzGebcHU24Ev\nCCEc4BjwRsx3/jchxK8CJ4FXAWitvyOEuFEIcQSz43jjUx00a0cRNcZJo41R+wrqkaMgMsggAOmL\nqEGIoSRoZbBdraJvE+lva20aHJuGGEbqQEVOXiiBkrpZmCK0REjVlIMlmghxcovAbKPj7RdotAVe\nFCVdf+1F2Giq5UXsdALhpCguz1CaXWDjhq2Ihs/j+x7kZTe/GTuZ5LwdlzB95gTFShHl2cyfPsJ1\nmzdQdAs8fvQgH7j9MfZe8C5e8KW/4uZ/z3Pi5AnO2/wKyod/hJNK41gOM4sHueiaJKfmGvhikTvv\n/THP40Vc/x+38eb73sSGQppX/tJmekSd5GKA5UnGHJts0kGvHCNz4ybqj5xiTXI9Pf2j9KUy5Dv6\n8QIN1Yf50lfOkOl+DcHEd7nlyyUjZiVBVeHxSchnDPMmbWtsx9xf/QtphCVYPVyhWnX50g89Qq3J\nJWBFF3geTC5hpG1FpGophKltILp+ShBGWsOxmqNSZqsXq1bKKLoPIIr2n/V4bmw7ptjRiuyVAM+P\nqI0aSlEiUEW4uNRRpB1BL3GVr5Zti4U25yRsi+jDaDcQf4aUBnoUUULYiheOKOpvFgpFEBCYz9aA\ntjSBNue2LwuBHzBXWWb9CrORySZs+pNphGtTatRIJdOMdvaQcVx+sHcfl64eplJtsFCuU1+c5qKx\nVZwuLXPAr3PlUcHvbLmC9zz2XTqdTkoli82yQn8hZzbTfsiRw0dZGN7C0vIRPnv4EDs7BvmTY100\nhof5gn8aT3lc12lz74NnWKxL1kmbhIAAh61ru0gpi23dLv35TlKpFELYOLZDo1bitl0HeMUL/x+s\n09/jHV+bIBHl/HwNx3XEn48osDFT6YatKYSv8ct1Ts3DrcfMYpy2YDhlzuNMDU7Xz65JiNlMxqfE\n+I3Jo1hRVA+thSOGcQKeXUL1WTl6rfWjwI5z/On6p3j9bz2T42adSEeC6ARp80M90fTbeL5x1IFv\nOgyFGoQ2ySjLkmhpgE0TAZpFI9QapSRhoNC+aTQSd5EKI+xSSOPgLceAZ5YUWKHJioeYqF2FYPtR\nxKRk1LlHoyWAQGjJiYlHGRu5npVrNnN43/9H3XuH2XWVZ9+/tdvpM2f6aIo06rIkS5YtW+64YYzB\nNhBTDInpxODw5iKELyQhCYSXnkASQsuHA4G4YgewjW1ccMO4yFaX1aXRaHo9Z+a03db6/ljrzMgJ\n5MXhJfG3r+tcZzRlj2bvZz/rWfdzP/e9l+a2mLmpAmdedDluUzNhtcLk1BRKOGRzeRJumh/d+wDd\nXe10tbfS2rmIb939IOUYFq/q49A7v05TTvLgoj9j+/QxyieOYmd2srK6jZnjB7HTjZzd8hwnHm2j\ndk6ZL935D3z6J9M0nV1mTOSRhXFaFmdorjzHwPHj5P0umrINrLdytMeK6mJwEqdwwxd/wo3vPg8v\n20SuqYUwDHHdJMs3t5PPrODIi3spHmqhVBvSzTsTfTUfWnJmtgBtuXb5lWm97ZchMzNQrQa87vQ0\n+45VWd6tRcdqNUVvHvYPCfYNLSRt1zJ4s6WTjO6H6EUcB6SPsSBcoByCjhNfGFgPkCexdV7O8VuL\nbTNNWTe5ECapByaBoPQONTZKk1bMvIGIFLq4kJb5e00vqr4DiA2MWe8/1QfGzNqooUUWFhmXBcZN\nXb4Ys7jUN7m6QNLnFAISQjEyO8ni5mVs7FvGzNwclmXTmk6xtKub2LYZnppAWRaeY9GezXLOsj7u\nP3iYVU2NCFnGw+FbO/Yw5vvMRC5vnhijOTdIZcSncZOH27KWU9p9xgpjeGFARgisfMzapeuR0uGM\ndDuFR5+nubOdpuZmvHCa6myNNaeuRA4fZehYgRkpcZXFZGOSpmQTYWGClkwKqSySTtIIDzqMlcu4\nrmJgOkJKGz9S+GrhGjmWtuvzzLxB0hK8YVMSVYuIMLBjCL+zDB4bhA1NerAtjKE3DU1F2FFcwOxd\nseCpoAzNSZwE0Ev0fVEYhRfzpQg9jF6X4KkvBL/u8Zvy6H8rR84RZC1d/WRsPVWWEpBUkJQWXgxu\nDHbdgisEagJVA0IIfUkcKCJjihEHiiBU2n/UV6hAIAPNspGhhFBhhwo7BDuSODFYocKNBZ4UZigK\nvEiRkOBG+gEU8YIhdeyDmv8/SNa0B/izgySa8mzcch7H+3czN1vQia9WYWzoMG974xUoOU40VybT\n0MSiFev4yQsHuOsXu9l1pB+8JJs2boAw5vQvvJ39n/8O37z9GyTsdo6PHSRu3UJTokbXur3Y6a8x\n9dA0J9ou4MUXHuYPrr2RDFnSQ0fpdKY4Fs7wi107WX36CuypNB1LIypCklKS5iDmzD/7LKLtPEpB\nE+lkhqBUxXUztLa2097RzJ5H7mJm7zjnvnYF4f2jeELLDVtKPwxzJYGKICkEjlH1I4iQKqIyGDJT\n1I3vjnyVZYv09YxCrctvC+hrVrRkNbNJM6osXAc8W+BaAs/Wei6epQfUEglBQ1rSkhVkE5qZYyOw\n0UYPWcQrUt8jZ+I6KyBjaVZGPbYTCjylsVxb6h6NkKBC/TGx0AqUkd7JRlJDYH5dRjoyib6OZZnz\n2LGZK4n1AuzEkJALg1Cu+b2e2QHUqZiqbspTZ/AE0ORCeyrCjwJS6TQtDY1MFiZJOlrAL6xVODY+\nRujXIKpSqvmESrC7WOWOo2M8NzlLf7VKcybFqxZ3k3B8MnYPjx8+yCGrQk93FxetXcILI0WmnnuU\n+yYHqY0+xYzXTDLTQGwLfrZ/P13VCrUjB9leLvPwgYO8anknR5/Yzk+fmuSNl5/KIscjFnDu5j46\n+y6gd/Ul2JZLezZDYzpDyk3SnE4zUZ3l6vM76GrMMrd1nK5UUlft5hXEWre+PjcjlSKu+UgkVi1i\ncM4syhGsadRJvr6rEkBPWsM7jqqzqbQBuGsG1OrvntHMSdrauaotIcg4hlmIfqXRmPx/Ja5fic8C\nmXplbAwvpdRG0yrWzTs7FDi+fgCsQE+hEiujxAc4uvKTkcaIlVioWkSk74SKtHBZzoP2Bn2BKxFM\nl/SNdZVOGpaQZDy9rar4EPpqngUSxNq8REmBkno4RynwY8HyroitB55h6aYraMu3kc92MjOwjeGD\n24ltwdNP3Mfb3j5FKv0WRsqL8Utl3nLtO3jiuedoz+V48fgoUgoSo2NkGtPc94ut7B/czTtXd1Ir\nL2JqX5bijOR7z4W8sfR5ujesZfuqs1lEOx15C8dxuO7CSeaio9AM37n2/yE88TTZdRvxB39CYfEQ\nw7KJNlIoN83Y3kdoXnUG7S15ho8foL29m3Jhirnyv7Fq9WWsvaSXqW/4+N5nOPPTe3noSxOMT8WE\nhoURhoqhMV11t7pCb0FnQiamFIePg4uFsBS5vMIZxjA6JK7Zl2YtaE/CtKX15CNLaiqgpbAdiJTA\niiWho5uQjZ6etwhCRc1UuiHMa9hbKNLCwHX/d6Cc/ytHpt6INZiLNAlWmUreifRL1ouJeoUN1CUn\npSnDLWuh6q7DNHXYxRK6H9BmBnzmIi2TGygzJIV+zzj656uxFvCad5+SGieat4U0v/5oUXBGeYqj\nDNDd2koqkaRSCzkxMUbNr1EOK4yP7SK11GLvWIVQNFOuVfFDSV9jmmqk2FuoknMsZvyQZW6ah65e\nwubec3gqkSP0Yd/kDHtHcoznLD7aXOBbh1ppKE2zOgppzaRo7GvkBs9n1+gw3qFHubGvm8W5ccZj\nxdpT0xw8Mk5jLKkKi2JtCmv6AS7/9iAfPX051WqFhnSGvLOb6ekONq1O8NyPj3Du20JaNzi8ZsTj\n7n01ytECQ2a4rOVUEmmtUhsFEr8K+yeNR4WAtKvd1VBqnprqmt1YlwtD5lyxVMRC8+6MSB8HAAAg\nAElEQVQddKVuS72jU5YuBFK2NgY33kT4LEA4FpCp3/OXEXevyESfMo0gqXQCDSNQga7g7Rqomq7K\n65V0FJpV1SRaK4bYXhCC0qbg+txxpIxtoKSjUbCiWZF09Gi4ayv8JtgzDNVIkQHOXCxY3q11cEpl\nwbMHFcenIZJG4bIuPl3fMkuIheLz/1Ciu+cQbvJf2XT6JShZpXPxSu6+52bims+mLSW+/4VROu13\nEa9/K8ncWlzVQ0IIcp7k7C3ryGQyrN90HsWpYRzhcsUFryEKfCbiAr093fSuuZgrDnyCc278NL5f\n4g2NdyF73szWR76LX57hoa/fy+T4LAE1Xnz8J4iprRS3baWaq5EpCzwnQ1Mt5rCapHf0B4jx22lP\nN3Fw30EWLVpObviT2A908M993+X66y/h63sOcNZ9n+fIfVX6li8hFR3h2BR61N6BWV9TKU9MKJIe\ndOc9SiWfhA2OoykHjz8G3S36WrkS4tj0YJSZj1CY0X6wbUGsBJGS2r5R6l5MKgnNKUEt0jxxS+jG\nmTRN3flDLTRrXylHqr5FN3BIaAoSO9bzG8QLVXldQz6WC3onlqWZG5bZ8p8svRyZokgoDRssTZmJ\nV1MtzkSwr6S/p9mD81uhLa2T/kQFnpqASV9fwzot02KhcRiZivb2AzGXrY/Y0X+UroYm/DhEKY/7\n9+2hVKvxxxdZ/Pj+R7j40tW8MJigN59nZT5LLfJZknY5fVEvLbksLZkMxUqZ81euptFzODEziuM2\nsLatkbXnSian1zJWTXNhW5XVa6cZ8QM6kwmu2XwOV0tJLfQZmS5x6MB2BkaP05ux6ExHPLR1kDWi\ngaE4ZvzZY2wWNmNBxN7haZqSWc5aEzCxbY7lfeMcHFQ8mklwaukYg/5GhqYPsiwJh0r63lhCK4Ae\nK8FYVWPwhQosbRA4QmsRCQHl0MKO9US9YwrBukF7QpjmqtLYvJ5lEETzLA99vRM2tHpG3jjWEiy6\nL/LSpmwd1qm+jLh7RUI3KQVeZJGIFI4PdgQiEKgq4CtkTcMxsqYXABnoraXlAzGEodAmGb4irGkJ\n3cg3Ouq+XhwSSrAsB4kYrJpA+AIntGi1YUMrJIEzOi1O7VXkPWhyBd0NistWWbR74EiJJwVJpW+c\nE4MdCexYYMXaYHnfkSrP7x/mO9/4Aj//2U8YGTvIGZdewiXXvRuRvpyJhs088GIr6678NA1Lt/Dx\nP7yB5oYGsglBY2MD6zedRffytVxw5e/S1mgRxxGO5zB+7CBzswGNecGXn8py4qF/ZXjH93ng2Fmk\nGnMUpwrkmtqphBWaO9pYsqSXqmynZUmKJ//xEJnOLkjmoVLCliGTJHAfDGlo6uDYsRFOO+ds1l7z\nPs48fSM9187x9LYUw5m/4YZP3Etl78N84JNnctUqh989P6knACUIM2QW+1queK4s+MGjPjMFSMaQ\ndgW/eFFxYByIhB63j8X82H1CQrlstsiWMENwCteSpvrU07WuBfk02I7WdsEyjXuFmTLV9Fuj+GKM\nSNSvCrX/9iOl9N+diE3MxLpBqrRKBdLY28WG+lu3AKxTi8KToZtIG2VERkc9DPUikbOgz2PeJF2E\nevhvqQurk1o58aJmWJ6FvA2NFixPw2UtGhrwAFcpUmiopw7/WGYRKceKb287zOFCgTuff5ahuQKx\nIzhn7Ro+8LrXU0tdzU8qST5wy2EGKjaLWroZmK3SkvDoa0iTTzosae1geUcXLckUaTtGAq25NqZr\nMdXiOIcGbELLZkViOz0tjdyzN6TbS2ATYSEIYkkykUCKCus7s5zW2cJj4y5izqNnWZ4w8qkA0rHI\nBh4tToJc0mHVqs08tXUGv2GSm3cUaV9xNR+58i3UJk/gTu3l9X02b+mFZtfoh0pzDaWGyOYC2F+E\nnROKjNB5YqAIdx+XBIEuLDzJvMxEQsFsYBZcoV+uAM/SQnUuBiYCGj2d7G0AoRlmdn0h4KUDUjYv\n73hFJvqkskhKie2jL3QN/JqWpgmqFmEIQU0Q+oJQ65MRhYIgEgQ+KF8Q1hTSh6gGcRUiXyBruokX\nBpBxFE6oiGsG/wwkTk3ihNDjQqsDpzRJshLSka4+U1LQmpSsaYA0OsnbCDxD97QUqFjpadwYLMvl\nivNaWHf2Zs696ipWn7qZZUtPI+25rFwxxLs+9L/4k2/dwSO3fonmXDPp2GJmdJxQKspzU7iOhNin\nUJigUFIIJahWZlm8pIupySEq5ZD3X/MuFi1roqdnMVduuY7dO7bT2dbN1Mgw/QefRylFGMBFW1bS\nNluh0WvhK3vn6PjQ77HovDSRjBivzDDTNEP/sSQVZdPUdSpbH3iYQ9X3Uzv1Jr54227uuvU7eF7E\n6/74YW6+qcpQIkl1OuTyVbbe7seacioEIMX8BOb2Q4J7dsCPnxKUSlAtw6EBhR0IUpYiJRQJBUPT\nMFeBhLBwUHigRemsBSclB01py9Q1j2wTwELwybPgTzcIMsIxmun6sFCvIOAGkgiSdb9i8/QGxoja\nN7MdUaSx4dBU9PWXnvvQOH1sWGOxMaqWZlEIDAymzGKhoR/t9WvFsMyDdgd6PUhKyEqh/09ATwIW\nuXrRTZn/r8VJrJH5pCe44cKzieOYizasY03PInryLXSkGygXCiRci89cfS1fftubeezFrVTsLOlS\nkVPaW0knU9SikHwqAUIxFfpYwjENdUmxXOLuXfuI7OW0Ooe4aX+GdLSPi1ZdyqfuvxepYkbmCuRS\nHinHoT2dpCt5gqH9ozwVJ3A39tHe5jEhbKoyRHoKN+9QjmMuX7eO2VrA7mLAVOIK3nT+DczVFOPl\ngM4V11Dr3My9I2UeGBWcm1fzpup6Iph5nEwomKjB3Sfg3gE4WNQL7f6Cvu4pofH0NDBZhfEaJISG\ngl0M64aFASpX6AImY79UTVQi+N+98PEOaOGlyfrlTNHCKxS6cQOJkPri2QEEvk1ci4mrEAaSWg38\nQBH45oHw9SCVVIZab+uNThQLxLyRozLsAQ0Hxb7eCQgJ2ALL1nrpVgiOJ8gqRUqYxqsDSP3ztoRG\nBUnUSzR3lIKarGuVCJSE912a4+ALu5jxOri0uZmZkUlcoKdxJ/ufnSM99B6yV32RFSuXMDF1CDeK\nicYm2fK+t5FSFY7seYHJkTHybe1EYpj8lReTSOS55Uffoz2taO5cxs6De8m3XMXaDWu594f38obr\nP8ZAcZQNr7+EmcIkwooZH5ugoVRFScHxRat45pFfMPrEt2iu9TGRlLiWT95O85Y/fQ7HyfDIV/+B\n/JpmqhPraW3txU4nuWDzGorFGcpVRYEU17/zJ3zjDy6jMHVIg+PGTFNFCttY8lho+MwOAFdro1vA\n8WmoVBXtaV0ljpZgpKRZIY7SiTmyDF5ssnSMHnpDaswZibGPVGzISGxLM7VuPDvD554uzseSRDeG\nI14ZhxvpHk9oMNww0lpLUbBgclGLdbL3TQVfn/6WQGyp+SlKcdKTXmfH1GHEKNZJRUo9k+JYC43X\nLDrJe6YHIkyvIAlk1UKST6O5DnXWjWO+TylB5dgLvO+8Hu4ZLLCqeRGz5SL2XMxTe5/n3desxx3w\nmG1p4T3nbGb4sW+jJDx5fIzr1vVSKZXYPXCEznwL07Nz+JEiUhG2ZbGyJc/T26bpXr+WoWobfflD\n+KkNNCdcGtyQaiDpacgTRfqKlKVHqVpiquijZJLK0AkSIz79QlBxPF6/pJnjhybpsiQ33v84r+vr\nwBOCwbERinPTOI7Nmq5uan6FHZMl1vWezcozWrn7/lvICP1MK8N7d+tsJwBLy0FgbDIdoZjy4ZkJ\n6DLN12kfho19oI0iAYRCx7QyN00K5uch6gneMtSoBmUkpm346FKXPzlWtyc/ibf/a8bdK7KitwOw\nqmAFFrIGUSUmKkOtql9+DfyaIIwgrgmiUBCFEAaCKNBVfGjgnKgmCGva4zTwIQoVcQhzZX0OFYEM\npcb/Qx38cVVRCmB2EiNSpl8CsHzBVEmQUBp2SCgNDzgK3LqQllRIabP9RZ/zz4/5yGduYvT5bXgJ\nh7auJUyfeI4lSw/xL/vGmdvxNZq/8o905RtBxggUX//s11m98QIO7d5FYeo4jQ2tFEcO8MYPns7t\nj/4Op29eRTLbzeF9z3HdG97OiUMv8t2vfZO3XP9e/PIUhbkRju/bSkoJZFAhmUmSX9fH3K4ZaF9D\ndz6L/WQ3hytHqDo241aOqW0Ow3GSlY1JVvsBw9NVdm97noGBncyWCzS19dKYa6K5sYE3XPs27r3j\nGzSe/2pqZT3xqszW3oqZnzWwYg2v2GJBS6WuljhXExydhIOTMF1jQcPFxICWrdDaRdqrc6EuDwwX\nXCn9AwdKFimlwerPn5TkQUM5rySM3o7Rukqxic86OyyEWqRN0gPDqFHRQjUfmmZpvYqXsaYYh+b7\ng5MgnIKvz601bNU86yYp9fTmbABxjfmKtR7bKtDwhIuGb2yDJXss0JqV0nLP7VnJtvEkbzntbPbt\n383xoQkWt3dy4xvOInxxP/nVxzhFjpCcGOcrR0MEUB6bpK25k7kIjowMU66VWN++iF2jB7nih19l\n/8xhGhIeZ3S34iSaCSuTnL72fFzLIkrmOG9JD8dnZpmrlhgrzlCr+SzJNyBmk5Sb2+jNpNn1VIiX\nTzEoYoZin30jPq5qZqmXRAUxtxwcY7JSZbYyw5GpCZTlUA4lM5Uqbz1tPY25JJMMMVEzyVEuaATV\nfZEtpSEtSy6o19Y1g2oxHCnBgTKMmuZ2nU4L5lqfRAeu011BLyr1pjdAVUCjq7vlHz8pyZvTvKy4\n/o0SvRDiI0KIPUKIXUKIm4UQnhCiTwjxjBDioBDiViGEY77XE0LcZjS7nxZCLP6VJ/Yh9gWqIgmq\nEFYEUUVjv7U6jGOqoCDSbvdhwLwKZRRgjL4VcQAyEChfn1fVNGZZKcPgtP66U2+GxaB8ODCq4Z49\ngxBO2hAIRCQQJcHIMZgpKZIoUgj9bpqItoCk0hroZWkxkF7H9vt8jv3dmZx7ySjLqrcyedeH6csm\neH70Ev76ph20Lh5n6KJ2wt//EJa0sBRkZczkZJnzX3MV6VQDDQ2tfOy7d/C3j15K1y2baMp4pNON\nPH33PxF0n0Z7RzvX/u7vs2/K5pFbP081KNO5fDmOHSBmRmkojVGdqxBd92mSboqz1q0kai4zMhFw\nyIbZOES4Tcz6As+2EQRM9o/ysS99l3MvfQcXv/699K45nUxbN16+EWUJjg+Ns2XFhbr5FwmT7OuM\nA2H0gSysWG9ZE+b6WEqLdznoSsi2BE7dtEUwD7vYQswPj2hsWH9eKUEp0I16IQRKaSbJH2+Fz+wW\n85xjPUClCMFg9q+Q2DaMGoKFWZAw1Am+FurP1WGbmmnuh/FLNWxi83UlFxq3Il5YbAu+hgtkbGh9\npildC+DQnD7HrgJYxvpRSBBV2G1YJCmlE33KgqRQ8ywdG33dZ2NYs+EaxEg/0wO3cuEayRWLI+Lj\n93Pfozs42nQhDx5Yi1qxgpWlUa7LNcyLAH7+zvs5ra+PvpY2ko5HJpWm9EKVm0bO4C9veYGyDBGW\nR7MnOVFRDA8exvYSlIslkq7N2rYU6ZRHe9JCVWeozEyQ7LuIRWu20JFO8qSw2XOsQGzZOG6CTKg4\n6Nv4kaQ3lSQjLP7yta9j/dL1XHP6uWxcuoqWxhY68o04rkMpqBHINjxlUwqgLrFS17uqK3zaJsY8\n6rEMSQPDJMy7ozRbry73rGB+IlnBwgyE/jWUzdT9/CAdghsOR3xmhLoKy3wVH/LyJmf/y4leCNEF\nfBg4XSm1Af33XIceD/9bpdQqoAC81/zIe4Fpo9n9d8AXf9W5ZRVkBYIyRGXdQK36At+Hqq+rjiiw\ndNUeCMJQJ5VYWsSRgFgQRwIVWpqV42uMPg4EcagbhnEkGJgUHJiCqRJUfcFEUfDskIYSXHTV+cje\nmP07FP27FM/vULwwpPTDIwUJoYWPbLPFcsxyHFqCDcksf/WZv2KmaRl3D23gE585yrd/0cCxRa/l\ncPNHWL/lGgaPHeBL9/Vx8Z//AT+zAv528dL5qverX/47+lZvYXx4kP4jL3JunKBzucf5q9bzuW/f\njBvHLFmxjKGf34RCcnDfThqnHuTMCy9n+vmtVA72Q7IV8t1Y2Ra8TCO5hiYufMsHWNbVzuGd8JrT\nVvLEzBizkUNQHEE6AW2Wg+/An/7N3/PEj7+NUCHlwiRRsUhhZITpwUGG+g+RSydo3rSZF4cVytBM\nrVgsqB9GYCNxpJpvHFkKPKG/x7HNcJXQrki2YyAEoRO4HhYSmisuoDmj+cURiqIvmPWV2ePqyl4p\npa0fhYaM6up+AQLji/RrPxS/1dgONWQYBJhCRSd5v/4uFyp4zLtQmn0UG/wmkqBiMd+QjaKFBSA2\nFf7BChwq66RfDWCgBM/OCkoxeDEMVuHxETg2DEeG4akRPcWZRFfw9WRvK9MgRyeLCJsP5lIMFmd4\nYC7Ll7an+aedigeHBMPtF7DuzNcRKjh31TKeeuxW9jbBRXE8z0ZxgGUti6jFEhVLbj54mLOGT7Ck\nL8EN2SyNjktTMsWT257hknWLaevoYs/hQzhRkV1HT3DHI0+RFA7KzpBsbCO0LOb8KnnP4/KzzuLO\nYkDn0iwtUrBc2UQ2/Kh/ktiOWWTB4394PQ++uItKuUjVr1EtV4n8gMlCkcHJcTzLptFLsXsu1kNi\nUhcqQprkLhdYNfWBt3pFb6NhxXpyt1lI8PMDUUaDKzI72EZbN8SV0Im+EC4keoWe6K8vBPUiJkIn\n+vrXfp24/k0xehvICO2anQKGgYvRDwVoze6/Ar6F1uz+K/P5O4F//FUnrZU0PzoMNVOmFoBfUfjm\n4zAEP5ImyBUYamVcBy/Nm0KhLH2xHDQ1r65iKaXmV48UYGYO0q62Ikx5kDaYvSNBRoKBKd0Bt5RO\n7LEBRC2lq85ACTy06mDFtogij/ffsITn7r+PpvZWutMN9C7to6G5jXy+kc6eZQg3wfCRF/nsp75G\nwvkWV13ZwMzdNbqSHuO1gDioUShMk/CyhHMjbLj+Yn740xI/+/uP8Od3fQ1ZDhg5+Dxr5p6h530X\nMluqULnlCO6Vb+FNn/oKOILK8/cwN3iAE3M2G6+4hplCgexsgWs/+jm+8pkvcP2Bh3jfezbS/8Q2\nurtaeMt0hg9/7q9RPRs5vOdx2hYtoTQ7he16jB6eoRaG+H6ZHTu3UpqaRMV1EF3NywZbsZ5/cNz6\nwyCwI8WSJu3AMzCjee+gKYJSamxexfW5CY2nx0qrOa5t0XZuYQjlrKBSU+wcU0yWIeuaEDd0XFFX\nEqWe7P9jcn8Zlf1vJbarvk7egelB1SIN2/ih3vbXvxaYhK8nstVLaKM6eaj5/oXDQiKoH1EMgzVt\nTp22TYXu6N2nYwscpahFmkZoG2JSUkAgNZaMGfypK2naCgIheH0mSd9l57D96CDdTY0I4Myli2nJ\npOltbiF0k8QIZgozbDzzenKlu3n941X+qjHLZwslBNCSTdPbkGNydo4L2hs4b/tuOscPcrTBZa9p\nn1+8zuLxO7/HWycCdl7eSEN6HReuXcnqJSupTg9TmR6jUvPJdS8njiOKUYyTSPHsRz/KoVu+TsUK\nuOHaUzj2+EG2lkP++Q2X0dXdy77jQyxr76AWR0zPFXEsh1oYMlWugIiZKZU4d+06qrHx5TU7TGEC\nQhul65eroNmBlRm9g5o1Jfd8tW6uqxBm94UZuAI6HDglrXdtpQi6EnC4YhQyDcngZJ2ck1oDv9RR\n6v8U17+JqNmwEOJvgQGgAjwIbEMLOtV/7yALutzzmt1KqVgIURBCNCulpv/9uf2SRS1SlCNFxddb\n2loAlaC+1V0wC9Fdca0oOa/KZ97j+n4H3cQS5mkQUuHYYp4pI8z32mi5A8fS1DdtxSYQlm7o2QBS\ni6K5ApqEYlyCL5VpygoC6fKXqQT75hopFA+RbW3FkoookiQzGfLtrchQi4W5wmOk/0UKt32JtZta\n+dcHJO9f1M7n+wepzc7RmMpw2nmXgVJc3rSJNX90Bit/uJihgWGW9/SSWbSJxMVZdj3usOWdX2b8\nnV9i13NZRm79KOe9/2qOfeOrnP3Jv0eUJTueeISu7h5sx0MAV19zKSuu+ia/+OY7+b0f/RE//2Eb\n7zqvwq6jL9JQK9LW3UO5OEPN95kZ6cdLpSnNTlAYH6Y5n6Kr+3QKY0NYQlMhPVFnDCg9/Sc1tz5r\nK96wBiwXHBdW9UIq63LnMyGYxTdWutKJlEIJgRXpxrorFB1p3aD0TcKLLFjZCs8NwESgjbQtpQXv\nEHrxDlEEhl75Enz/pGT5PxXbQSCoSUVFQjnUFbwf64GlOh4fmz25MjElT45tFiq5+hFbnBTbzHvB\nWmg4J0LDZbbUsIKjtAWmsOZp3DqBGCpl0oK02TmECFylKAMlabFJ+pyYrWCpmGwmTRRF+vuEoBQF\nCAktyQT7ZmbINTbiDpb49Ck5wv6YVzdleLhY1rsuN0V7S5aUkDz1sd8njGOKk/0kHS2c9uQR+Msp\nn/4P/C4fuv1B/jq7iKHBw/S2LOIX997JprNXIRuW49d8qpUSK7oXUwpjdh47Qu/V13H28XsZLowQ\nb1jBtzd2cXxmjHDSoSGVYmh2lrZMGogYLRbJpdJUq7PMVObI5ZrZdvgwnb29zA6f0HGNhhIdzG7e\n3Ii3dS7AMasaIefCD07o+yBParRG5mMhFwT4Ts1C1XDppVkUulMwZFAL7bWh9bcwPxeiJRBOrvB/\n3eM3cZjKoyuZJUAR+AFwxcs5xa/6wt/ulkSmolmVhSVJTMIXWsogVNpBJxJm2w7EYFmCUKl5PEoA\nmK2VlhkGJQ3dTmqM2LL0XbGU1sKpY5b1rZkeG1fzGt5IxeWrLERNQqRZE1IJ/vmIHpYIo5iZljLp\njnUM7HicpU05gtki2Vwj1XKFidFhnJkilptlrlBE1Wr8YjbP2osW0fW1CQbKPlFKcN+OXTx9379x\nytp1NKTzJPs2IZVkw5a3k8m49O96luZ8Czvu/EcueserKDz8Bww+uo3R2dNoPW0j4weK7Cs4HP3D\nD/GWb9xC59KVDB3eTbrik25oxEk28MyPvkdrX8DUfT8jWdtC06pLsewkyVyaOKyRamjAcbMUyyWa\nG9tpaJvkmLuHRK6Zju7lHN23g0RzM151EsfScrSepZkcrq0X36tWQCgFCZS5/hbVcsTqFtg/qeYD\nOK5rBcVCe+QC5yx2tDVebOoq03xVwiKRlMyWBX4IMlaEinkLQeOUql2llFYZeznDJb/V2B7RQzCR\ngtUeLHagbJg2gUmu0jQ99Uv/YZZYqOLqVd487iqZFyezQOPK1PnYdc61kddWurqsD+44MO9clZBw\ncYuOeWl2FUcDxaOzGi/+cDbNcKdkcGYKVExDKkn/+ARBFBL4ASeCadobGvEth1IYoYKI9OJGxg5P\n8jgOWyyHB4SFEhYNqSTdLW341QDPFiS9JCORIopiLMtmRcM0j7//erbe9QRfumId46OPUlY9DE6O\n0NjZx4O7J2lpjHjVuRcRTY5xZGQImUiR8rTe/Gi5mzPWbaS4+3u0966hrakJ4dj4YcQpXWkELp7r\n0tfhMl0pUwkkXS0dJDI5puZmefWKxdwzdkLLEwiwhZqnQVrAWxcJAqNeW8fdS4Hg6l744YBO3rGB\naMymVydooWmsCJ1vYhYqdhtBh6cYqmr4La7vbk96mdsNvLy4/k2gm8uAo/WqRQjxQ+A8IC+EsEzl\n08OCLndds3tYCGEDDb+s4gF4a6fWm68Y7LJUg6qEMNINWBkKo16oYRtL6iQhldKCQIapYVh+dSh3\nvqJzjKa8DViRwnLAkQJXCmwpsQwfXEj0/kwtPFTn9jlY1UivsrFmllQixRt7XL7fH/KeliY2fPJ9\nbB96nsamZqaHR0gnU4wPDaAcCyEUiUSCnuWrGDg2wIbTNvOVu4rccE2O7t6Y7Xti3tvVxci+F6lN\nHiOZ2UKpUmB66AhtPUtobk4zdPg4UalC1fd51btvJNd+HcdHbyNzlcVF9ru5/zvf4rJ/+A5nvP5t\nnNi7A89yKU0O07xoMcJLM1MsMTU5jF+ZZvvzRzi3NeJ4tJNXn/420o3NVGpV0s2dCBXjJFM0xDEn\nDu3FUgmWrTuD6ekCxw7uYP+OZ0lWJvEcSBgzdtvR19NGkTTYo2fKURnrCsZGsWG5ze6JmBg9uWkJ\nDdVFQmopCwtcT1Lz9cJhufo+OgoiKUnYunKNUNpk2ShZ1ut3BfMqljnzqt/Dyf9zaf/bi+2cbh5X\nTCVfirTOeSiZt/+rhzbSwDRiIXHXG3nzfY9/t6Q4pnVRx9RdDEPEsJ/q/q/zrA8T50rBBW2mUYxp\nPgLtAtptmA0VGT/irC1ruX1/lbGyz2ILsq5LqVKmFkdUA59qEODYCTwBD996J0tX2QRpSY/wOBGH\n/N273swT258hm86xbFEXs9WAhOOADLCiiMpchYof0F8UPHPgIS7cmOOpnXtZv7SLuABLF3XhLT+F\nnskRwlAxWyySTSYIsfEsl+FCAWEppss1UqkE/UM10l2SrnwLsYwJkwrbsqnFMY5tI5TE90Py2Rzl\nKMaOauweGOLRF7aRt4yTHXoxtA2k4gr93NdvgkLfNywdwwH6HlpCT3vX+0z1IXohNCRWN2kXZnJZ\nKkXCTNpKoXdqdchHsdCIrcfxf4zrX338Jol+ADhbCJFEyzFcCmxFc/vfDNwOvJOXana/E3jWfP1n\nv+rEMxWtW1MNtah/ORLUQkUUWkSR0rZpcb0Lrq+GpfQWExZoUCcfyjYqhkp3UixllCnRWDxC14HC\nVDvaiERArOanPx0BTqQ12EWkH5a6PkhVhtgRROUSHd1JOuaGyLZuYOjEYaJ0yEixQCKXoTAzjbBi\nxk4cIdGyir+4+hre3dXMrh/NsXZxA995fo4bL0rz7e9/kdPOuhTPTeFkbFr6lmIbYWQAACAASURB\nVFCaC4hljhOTJRLBOIXRo9x6tJEzOj5Apn0QL/5HIseha+N6bvvg9VT6D5FYtZTW7uXkevsoVQZo\nWtRHKQzx/SpxHHHqEps2W7DnuM+BPdsRnkdXVyeHXxxEKotwboKx0VGy2WZqQcDwiRGmi9McOXyA\neHCI5qSFJSSJhG6WdqYglYKWBLiuYFmPYmYGKoYsLJUiVoIgkmQ9WN1hkUlKpIThadg9ZTEdA7Hi\nqSHJWZ060aUifV9iBZEQlGOF62koz8XC9yUOgsAk+1/GMX4Z+PxvL7ZDnQSqUuOzZak/jmJBKNWC\njrziJQ5Qbj2O//0aper0UwPVmF4S5r2OKdcXiXmntHqfxCR/B0PJxDw/auH9vAwcm4EpYK46ztbB\nCrO1iOZckePTMwQypiWbZbw0RxjUSHgp+tp6ebbq89mnfW5aneNblTJb7IjVLc3sOWbR4CWJY4mV\nzDBZqpFJOjRkMuwZG8cmZCB0WduT5neeO8rt5y1iNrWSU7sF33vwp0xPFWnKZultbaKlpY2paoXG\nXJ7QCvTErIzoaGxgeLREPAfjxRlqQYwUklDF9Dbl2T94AiybYrnKYKGIEBa5TJpH9h2ks7GRTkdq\n0TGh47rF1sbgra6u6pe2QbkEM3VoWDHvBJYQsCYraEpoCHLSh11zMGpYO0MBLM8sJH0ZG2hGCCZC\nhWvXYWdBJDRcVFet/K/G9W+C0T8nhLgT2I7efW8H/gm4D7hNCPFp87mbzI/cBHxfCHEIHTNv+1Xn\nLvi6eg/MwxCESmOZgYZ09FiyEa8SutshzbZeGoxS1blL88lfYVvC6NsbOAYNMbiYwQRpIYQR04ow\nIICFkHJ+iEGZKy6kLrMs41jlRfpiFvCoHn0Iq3CEXMM5eNk8x44fxZMWjlS0tXcxOTrG1q27cZ0B\nsnHMWttj54mYF/b002M7jG6fIXNWDtd1qdRKJDJ5RgcnaV3UiV+tcc7ZZzGwrcjIkeOM7HiSTV+9\nm/37nmJ09AhtDSu5YN1qvv/AzVy1uRHvxn8ln05z78d+h9Yz1lMaPsFMucLoxAgjU2OsLxVYfq7F\nrsNlSD1GT+8iBg68QHtHF2FUYmR0ABHbFArj9O87ypHpKdau3ETr0BFsV+E50JKCLV2wejFYeQu1\nQUEHqDLQLGh6QZHYrZgxXdg4hqPjitP6BJm0vrfEgq5ORSIDzxyTzNQsKqHCyyWwK762GIwFjqUY\nmYCEA4Glt9NRKPEMlu2F4t8xbF4OkvnfENtmCjZAV/KBoVEGsYZ06rrwOtz0rrPOMahr0v+SXP8S\nrraLkS2w9ES3sM2Mw0ldPVH/t9n9Ji2ou5sIoz1EXOfN659LSkVzXOGRwSm+fPk53L/vKOOVCjU/\npiWbozGZYdfwGMs7FvHIbXcSSMWrGlKsWpTg3SFcZUm+8/MnSNgWfc0NuJZNrVxmVgYIqxnP8jgy\n1k93UhHUQvqWvZo/iw6T7l3N3OggkpjFdoHFTZJLr34rVSW4+fZb6OrM4gub6Vghhc3WkSEaLAtn\nbILAzXFgaJAoVnS15bGloDg7TSglU6U5Zv2Q6eIsu6ZnySbSVGZnqRYnyTu6ib0xC5uaIJEGWgWy\nTWmf6JwgPaRIjcBwRV+fWEI6bXNaPiaf0vdTKGhxYLMLz03DSKDRiJlYfz6u78AkzAVa5iM2/a56\nI7guH/3rMmx+2SHUfygR/mcPIYT6whJBjNLb2fqgiNIwTiB1Mg9NEEr0v5scOLXJJopjXQkpm6cL\nEaHpXtXZNpZhaDiCeS0J19Yddk8Iko4ibWtVv7QFCVuQtDTu7wjYsgSjgGmw4RhKkfY9vW1IcVqi\niatu/QDKfpiOV+9isSv57Of+mp/cditbtqyld9lGtm1/ip6lZ/LMZz6FAhpaO7CWerx59Qx9H3oT\nzofv5R9Sizj98tey9uwryac9rvjrd7HeeT0Ha4/wL//7dsTUIcpTJ6jseZYfPbmVC8+/gHWveT/7\nnrqNlW13UahlOXLHMR7efCm79w0xfqLM3V/6Ik5UYt9zzzM20s/ytb20Np3C8e98nB+zhLaGFKIa\nYzuKZNYhmcqgPIejBwcYLpb1JObMLEspkra1AXJPTnDpqQq3TzOV6Baoc3V2UBGIpJaesO+Dgd0a\nk8w0euwdiFjcoTNaLEwzVmom1bFRwc5RbSQTx4qsJzi722a6HLFtCCqhvv/VSMtQ+0bUbp5mGAhD\nTHtp46qe8ncAqm5R9d94CCHUF5p0Pg0MRGNUsjXTRi18zli1IpWGTtamdMUv0AvD8zV9HlPnAAtb\n+Hoj1jUVqSs0bchztHpmziT2lPVS6uRZjehK3jwzNQmlGApY/KiouNR12XLdEubcPBu/+QLvXLmY\nTYt72HHkEBesXkn/9DSe47D72d3YxuZwSTbFZcugOZdm1i7BLovBTaeQaWplfXcvE3Ml3n7/g1RE\nzNfO3Uw1TLG+2WPfwBC54iRnvvoantz1AmcuXs7uXY+x+aw2gv5RPnhYclo+RSa5jG/ue4wnrrqW\ng0NjDBSmGZmbIVOc4rWLHW7vlwzj4VmCtOuQ8VywBVO1kCiSjJUrhJZLb0c7wcG9JGz93OdceE0r\n5DvAckB4wApQZuVVCoQLHIOJQxovdwW8MAvrm0ylDgsMMgVjVcEvphfMYRIWnNUoiBU8O6OYi/T3\nV6KFOYq6929kfqaeretJ/+RezX8W16/IRP+JLuMYFWsmRiyF9oo1W5zIgF3SPAxbGuvmEvqRrj/Y\nVqw4PAdjgBB60yPmf4/mvAphxIZsgSch6SpSriBjQ9pSeJbAM5WjJSAtBKcuAhHqxlbNhzkEPx9V\n9AeCdak8+b40Wz61ltVveoo2YkpJm0/e+AHuv+8nhNVZTlu/icK9DyAsG1dpQad7cNn73EYmyz79\n9x1lw8Mpvj8WccqHPky6Kcvq8oUEN/0LjZdeSvEPLqF66Bd0fPl3GT9m07rap/yOZvJr2xn6xEGe\nnotZeV43DYcKpDZ/gtS2IkNY3O7v5j0feBs7nnyAgb276dq6FzYHXOFZ9N5TZeJDzTwwvoh/eeAg\nk5HH3qLi0bMFAwONPFAdIuVAOgFpT5FyoSkJl54J1hod9LYN8lSB6FQLd8NMaYoTcPQWh8cPRExH\n8KoVkM0K7QVrifkxcKUUUwV46hjzLkf6C7oSkvIkbRgJ1ZouAHyjeRSEEEkzIOWbH51P+/r4n0z0\nn2gwraWTXvXEXk8KdcaNAi5OQUW9lGIHugLcHkBpvohZ0PQRmNhGJ3jH1s3wlLWgf58Smk7p2QLb\n9KvWZgRZR81X8tVYu139eBaKMbwxnUK2BqTWZHjVA2VWOpBryPHZ11zMD559luNzJZJTs3SohR1G\nQzbLJWekWLPGIfLn2H1/jcXKYX9PH0uX9vL1HUf5c7kEd6ifL3oWl166llMn+2kZOoRwoT8V0XGW\nS4Pbzs0/GKChzaUrKVjWfh6TvkXuRImWy8/h6PRRCtVZ9p4YpFapcm15mqOdsDHVwr390yxNOXzg\nUBFHOCSE4J5ewY5Ri7tklbSlZcozJslnHLigGZqWgOUZGnAOxKKF6y8liBDwobBN8NCQoj+E0xuh\nO8s8vbJegSt0gfLYpI5XqJND9E5UKr3QR7He6dWi+k7P6BzFhr0D813ZeozUj/8srl+RWjcl02w1\ncvQLDSo0nmUJa55bsdjRCRlLwznCsDuk6V6ta4G5aaElha2FhwIEjlS4rq6KLKk76wL9MZjFwlKa\nvmlplk41hq2DijO7bUQQY7sOT/ZHjMaCOAI7YTPcP4rdchaB7+M2ePi4hMkUmzadzv79+5m55wES\nAmwpsdH88b9Ztpjpfz5Oal+FrpVtjLymRNdtEU1f/xodLYIvjH2fG4JGrHsiqu/cQvn5Jzh6NElH\nHuKPd5Jf8hHCd3yMzjR0CZeH75rgyi/8gCVPH2Ps6E/J77dYfeMpPHHH/8vs7j28Jqgw2BGy+X1p\n1LdtWlI2MwWfy37/g9z1049RiENsO6C3p5XSvjnyaYeUHZLxtEds2oUNPSA2CqwGtGm3BSKxcB8F\nQEKreqqqYv9QxHiok0DFyE3Y6IpeW6vpDGE54DiAA47SZHvLMjEhIbR1I1PEBm/29W/z0ZOKItIL\nQuzpxGnHFhLdR/BcAbP/c8VNKdYP9nxsq4Vdh2bN6MVPKFhp1K9S4mQ4h3kbwbMz8POS/oQULwWp\nPAm2IdiLutduHRYSC4lYSg1bArxYUjTYsDqrG+c+igeKZvchLErCwhYOG1d3kXjgEBnPZbBcY+/E\nJPtm51g5WZpvBLvm983VKrz/kRI7jycpdrr0NGVZdWaWwr+N0H58gDPcFNFYDajh9aUYmZrgtL2H\n+KFwyDkBV113BYOP/RzxYj9vb0nwkcmQ7mQ3TVMlslNV4kzMOTd9nU+fdQqHhodZPDXJ6Y6Ld0mC\n7nGLK392gjtes5RnDw6BtGkQipoFwlVMeSH52CZNTMrSiT7jQEcCGpcAORAOSIsFuydzWBaGJQYn\n5hTHQ30vq2aHZilMvjH3RYBla6tM2zGEELQctwIwLKfQgPA2Or5PPoTJg7HNgv8AGsb0bOYLm192\nvCITvS+lsTOrP5BqfgT85NrGEoLTW6AUaGVHIdS8joRlm8AWWpL15zNC2wuycE4bbWJRFxMSSksh\nSEsPWFlCYUnzBUBGRgJXwUPHYg3bxBGVCKJYGbsvmxa7gaF/up9vfGg537tjjGIl5LILX8X3juxl\naU8DxRcMrqrAsRSuJbi4ewZvp8cLAwnOSvv058u8/rl/Y/K297PjR1UWXbKWN20/zEVLJ7hx6CCV\n27/LgLQoTDu0PDHM0Xs+QvFgxIpUAw+4irdnJZEX82fs5WccJlwZ8Ilbd5ILp0lZiiWf6aL6Q0Hp\nqyVaK4JaaNO+Mc/ff/Tj+DKmxQrpyGVJXJ+j/MQcSSFp8AS5hCKbgHQKutYIZLeWDI4TGqqhohBN\nL72fMlIwKOhuUWyfAl9aDBQU6bRh6Cg9XSwFJBBMzimQQrNxLInjgmVqIyEh9ARWoLAjKBl2QmxG\nFP2aILYUVmRpRpUCYSk689CcAyEUj8/+NqP3Pz98tSAiVj9ieXKTtR7bsCKpq7p6gp+PbWsBXlnp\nwvHIJJ2TDtskAj3boJNKnYXmGjEuxxQw9UUkUDAewPEpCJSibOAk7V8rmVSK9kLA2J5jRLGiWcUM\nScmpnc0cbWnkcLlKby3SzV+DPZ8IFduWJ4liKB6OIekTda5n0/8KKew4xiWpLJc+PkakLO5qWIw4\nsI8TUlC2BA/XIjbvfITEHokUCS7d73PHyizZa3+P+47u4DOPP8aalm6+vOlsUs88TdVXtC1P0N2V\n4fiRMkvHQqZR/GBgmsuSaWyryOakzYuR4lhO8ObzzuH4zdvwUlUyNjQ4kHJgdR6sJnASIB2dd4yb\n5UsPAaqgHaQUetZjsAadaV242ErDZ5HSu6dhXxeNnlDaUAddXIL+ftfAZXashzd0XDO/gseWmT6X\nat4astUQH4SAx///luhDWR9kMhAOhl1Tn1KT2tXIQlGNBY5dp1IKnTSMLIGwNE2p0RHYQs6zEurg\nlkAZFxmz0prK0pNayVJIEI6GhUSsVw0ldWUZK4tA6j6CL/UCEEqFZwsytseq9nacta/iHX/zVVZ2\ntjM5coRNG9bx07vuwJPoleXKHv7oq+8hX32cnW/azpp8RAeCAwcjGncK/u2O17Fx8wq6enKcfvkf\n8t4/2UitUKMxU6NwbiM7HyoQWLB4ohlVmGVxq8enR6f5am8j32lu5TWhy+f+5AsU3nUjpSjHEx/c\njDdR4cq/WMxwxmfVVMALRy1SSzwOn+4j8z30TM/gYBPYMXm/hpzMcNmnX8eev/gZKXeGlAcZV9CQ\nVMguBRmIPA3dCAmWL1DjClr1/aAAYhuocUUqASiLMFIcmYFkSrCoSeEorafiuoLhOegvAp4eVnNs\nLfFqWQvQhBXqhbgsNOYvJSjPDF+5ChVYSEuXRVJBQ1bQ0bTQp/klj+x/21Gv9uqVuQ7FheLlZC2V\nQGlYsV4RLsQ287F9WtpiaE4unMH8acJAjVrrXM2bUycUKKGTvrJMsYMeWlOqLheh/59+HU5Afzwu\nYtI4dKkcP7z+PJblWzjv2/+KQrK8o5nJIIZjI1jC4uMffy2ZTMjkk0+x/emIlGuztjHm+UmH+Obt\n3B9FNDr/H3XvHWfXVd19f/cpt8+dXtVGGkmWZUvu3ca4YMAGjLFxMMGACS2E2HTMG0J9KAklheQB\nEkwPJS5gjHHHvclyk63epenlztx+T9v7+WPvc2fkFpL3eTHv+XzsmTlzde6ds9dZe63f+q3fcsi4\nNR76iw/w+J4t9Pa0U3cneXJc8sDBOmd2ZJktpNkZlugOJJ/syvPrScVbLMHafAc3vOlyOtvbuOmO\nW3nt+R0MTRboPO4oxu98GrEnhIzDw4st3rZjjnee0smigy5LLIc2N6JVtHBwyxOcJSRPCD3VKWv+\nS2WBNIQGjhSg4ZIikDc30gcxAhR0RK2E9lvDDciWYUVOr1OIdvYzgWBnVRHZsYM3YwTVPEU27muo\nQVPPJjKburRBhaIZ0EgF+QT0Zhb0U7zE8Sfp6OeHo6smVTLWMxFGC0WImAuvo3nHsG1cyxiw1AMs\nJIq0JXEWKPUrR0dR9nPRLNNhaLs64okjk3jXjZuz9FQgqRtfIlNMixRhCCnl0B1GcPWDrMQhmtrP\npz/+Xr72z9+jI5Nl074S7zra4s3vGGJuRFF+07dx35tg+fvbGL83oDZcJitS9AwI5A6X8kMF2lNJ\nimdN0CKS4JSRZPjE90c4szvN5kwe764GW0o2Qxb0tfXwb7MNPvjdfya56AgkDi29i7HmAkozDQY7\nO0l928abDPBaE7hOSHVS4LcLEmv286ZHzmHfRfdzcJdDMq3IHLGMbVfdzamBYKutjdpxdWNUmNBR\nj0qAZVsoKTW+WwRGLCgrrFmFmhMQGCw9kFoCwYONB6G/DH2tWnO+WFVM1CBSgqSt5jM0S2HbFo7Q\n99+xFJ5l44pIzzsNdQTqxHhnJJsSx7YS9OQhYVuG7PzyHop5cao4io/tqtnyboIY25xrcuOFjtxd\nw6iJhCAtVLPhCbTzV8w//ErNszgcEx3a+ovRYpmvX0RKD8YO4uKf0rfMM1/HpGSILOEZf8GauVnG\nCjPc8563cs+23Xzz4S20WIqbL+gh3Z5i43d+R3dSMHBGilPO6eb+O2cZmVUsTULVBqdk0ykkGRRV\n3+e01UeyffdBbp9tZ+PBCc7LZPnZTJXO7SHfr/p0JhNkvYh2J8QLJYu6FiGlj2M5RGNFdpR8+gsO\n6qnHGQ0Egy02dd9hU93n+nd1EfZk+c9jWvntj8bpsmyuDWtckRb0SAfb9snYmtbo2tqpWrYOXmLq\nqgQIQI2DaIDlgayDCqCqzGxZs8CbyjDuw6KMzhDKAUz6Ci/SBVgl5nsdbFto/6K0P/KF1iIKlFYb\njWz9vaN0d79s2jV0pXQQ9HzO7fOPP0lHLw3FC3hh4iimkUTpIeLVSDv5hK0dvCU0TGPZClsJZpTA\nQj/8tm3pDlhUUxul2XQizQIrhSU01TKmbSqTbktlWBPo2bCeVPgKJtp7ecXVn+LVrz+PkoJascRT\nd9zEjq2beOV5r+XkU04jk06SSbqUKx5XvekCPv3+Nvo+2sFnP7qXRMXiFcd2c85XjuPXH9vI3kYb\ne+vTHNsCHTnJnvtuQ7zuAnCTVIVFwvY4r7uHo/KT3DXZxiJH0JqwiOam2SltZM8RlKsR6VatpulP\nzzJZtdni+5ywrIZjRzw7HCHsFtrOzOOlAgqXFTnr4I0sztgc5aQ4Kmmz59bHWPrKJYxs2UWQbMey\nCnr2pQC/qNfKQiGl1JiiNJ4lUghfoQL9vefDSFGzk3yznlIp9szASFHfd0doh580musqAVjxGkls\n475CobDsCCcyreIOerKXMCMIHf0eQupCrGWkF+frVC9fRB8zJYDnV1jNoSUd9ADxGvONN7Y0Dtx0\nY1pKsdmbv4z9/Es1udpNiYT4Z6GXKg52AjXP8gmABrooWFeCyqpBPvbac2ixFLlMK9XiLM/s20vC\nkrRmkpyxYoA1HWdTrAfsSicZKj7BiW9fxdO37uK2W13Wd5fpGMoxNTbFszXIhVk6pU9XUpFKpMjm\nc0gLOlpSXHX+q/nGv+8mJUKu73D4ekXx7rZWZpGEfsSyZAYnigiFRSqRAiXZUqqwfbrCh/qzZEPJ\n7mnw52x6cgGLlzk8c2eZbx2YZSZjc6KwWCIk39kQ8tE32mxPwNowz4RbbA4C8YJ5xclY48qKd2jD\nhV/Ysjpe0z4oMEV0aWmBuEnfbLCWvs9JE4nHXfaR0DIfFro2E4p5GNkV4Fnz8Fsg9OYeGEhOxXCz\npZoqry91/JdRvxDiGiHEhBBi04Jz7UKI24UQ24UQtwkhWhf87p+NXOtTQoijF5x/h5F33S6EePtL\nfiijPyDFi79GmUjk2Vmd9lsm2ot1yhMm5UoIxdHL4SPHwIdP0hFfzDQK0f8mkgpl3qwpIbpgd9EP\ngDBYpWoKTzWUoOWY43nFZ/6WL934Uy69+ELGp0bp7OhidPMmtm58lPMvvZzWvqUsP/JEMn1LSC86\njI7BNXzh59fx01tcnNPfzru/cRZdq3OMj0Xcte8phk4XCGeKKw9vpa0rzXY/w/LLP6gHeYgEKVVn\ndecSZjOKt2xJssHzeKJSZW1bisOyebqtEMdNI1MpKpUqUaioqCSTtTr75kK+sGGcMhGWU+W4H6ao\nLuvlFd8f5lOFiEs6UhzTLRnqiHjbj9pZPNTB5J49fNFqsGHapiRSOipV4O+HoAxBFcIaSN9M8vIU\nylcoTw8iUQ2YqwuemYSqr9v9G6HCD7Q6Zd1I9TYkhKHAN1SyKBTIyNDUIoxImTFsGUMexmYstUD1\nj0OGclR90137nLDmZbFtg6G81LOpDH9+X+xwjF0Ka0FnJpC34aI+wUcH4OODThO6UehAJLZlDcmY\nz8p8x7hBO3VBOKZ5Gpy4rGDFEYdxyZ+dz2fPP5u+bIZipYpAMjozje81OH7lavo6Olnat4gTVh/B\n6UeuY7Crh/vrK0m0H8vyVx/Fe97Sxtf3Fxk6rp1VlyziohMynJzwObXTYsZy2BXqQAmgv7cPUi77\nLY/fhj5fbQg81+aXhVmOCjxuDBRHXXo5Nzy2CSywhUUm4RIEDRpS8rUDc/xy2ucVKcmS4xzcUx1u\nO5jkdXs8Fqctag2f05dYnPWaJI//eQJJgp8GAdck4anAieX7qVTBL+mZFoGxzdDo/ceaHZEEEUIp\nhGdKUDMsMC9mykjNWvIioQu0pt4RqPmaTKQWDpXRdi0XrBPQHFDeRJwX+MRKaCC6PwC7+UMi+h8A\n3wJ+vODc1cCdSqm/F0J8EvgUcLUQ4rXAkFJqlRDiJOA76A7DduAzwLHmb3hcCHGjUurQKRHxhxIC\naWvRMoFOV8ULsYYswf5QsQRFqwDXxDauJXTKKxWFAFaGCikEtqFExjcZQ9d0hE5bm1Qoqd9TP1yi\n+fAoTLu60rzZ1ZdcirN8MSddfAmJfCcCC8srMTs1Sb00wdARh2MrwdjuZ5k5uBVweOieG8mm84hG\nQOua47j9r/+OJSsi3vzuQX7yfY/b/q3BR8+S9L3SJbxkHV2DA9z+7l9Q+8U/cFj335Bv76I6dw1f\nefhhbjhlKc8ELic7nVg0eP2ju/jCim4K7/k4P7jkYt75i+vIt2RRMqC+7UmOzgsiWebyH57F7Oan\ncYa7+dL7DvB32/Zxfn+aBBZP+AnOiBq87n/109N7DF9928285qvf5NPvPYwdT24kiuokOztYkqwz\n++xtzD1xP61HhbroBNh1he3p9NbxFdShFgqe2KcYLQq8yKiMonF3Gc2zQ2yg4ShUaKFszUWxTOgS\nNqE7o+oYQRQ3GSEMxmy2aGE6PU0mNl2EXEqQfQ5z4uWxbR3xycjYtjgUo4+PSMGWAJYkNXbrxjiu\nefBdBT05i0iaam0QNrnVUi1wDNBsIIttP367uAM8TsI8pQOYqrA44pgjaOntZP2q1URCYEUhE+Ui\nvW0dpC1Y1J5Hhj5P7d3Nyt5udkxMMFeeoyudx5Ye/X/7S359fIJj1/Xzjr4sb7/2AOd1Si7oT9J3\ncS9bx6boznay8feTLK3UyLekQAT40uaKjiz5YoIv18usdmFTCG8oNKgqhUxlOaonRxSGVGRAqdhg\nseOTtCKOXu/i5GFsLKA4ZfORu+u0Oj79QvCYH/Kh49tpyVTpWrICZyrJZ+7bw1V/cTGlqs+2yQmy\nuRRDaYe5sT2MHtxJ5wof1zG2JHVtKO4PsULt0HeXBVur6pBM1Yojd7OrOhFgo5ssTQTvGwhGxH5G\n6E0mpo3rJmXdT6QW+J+YpaaU7rjNJ3Rd4b86/ktHr5R6QAix7DmnLwTONN//CLgb/YBciHlolFKP\nCiFahRC9aHnX22PjF0LcjhaJ+uULvadtCm+OZXY4CXJh0qsUyrKwTQrz8DT0peC0LqGxeaUQjsWd\nY4oaghOlMiWneTqbprJaKKUnJDmmmBKgCx5SorMKKQltvdCx0H9VQvufvRN/oI8LP3w1kZ1EAFG9\nwOjoCMcedQbS98ikkzx2703cv+ERVLKDM884nUTPEZx36VvYv2sfx3W1Mbd9Bx29GXY/dSdHejfz\nqO/zldtDltk+7zm5TPXm21htdzDxyK2kP/5N3ITD6OybaVma5L1z3Xy+U7KuG96UzvDRzgy5t1/J\nhe+/Cu+DnyCTdgnCiIQr2P+fX2F5vyKbz1Iv+mzY4vLlaycYJ8f713Zwwesu46Ybb+TV+SInr1/E\nzLaz2f+sxeu/+HUG1h1LtV7nFRddglQWrm0xvmMzqZP6qBdeSTYrqZZ/R2XyCdoSCuUpnJoi8ED4\nsH234t79gkpDEUS6CUoIkJbAsuPJXBZKSJ1Z2bJZGFRKr0XC1oUpG10MbFgr6gAAIABJREFUD+OO\n0kAPn5FSZ10yAivS7BYwm3MIu8cUXe1ahvpltW0TnTlxVK8wGj0LPpfQpAKlFLeVYdCFkzKabZFA\nY8J318CuSd7bbwIX86zMi1/pzdHVjwuOYX+E6EAlpj+Gwti1CX5mFbzhTa9DphOsWrEC10piyYCa\nV2ewox0v8Kl7IbUg4JcbHuXRsSkSbppzDltBb98QRa/BKYOr2XPSqYxOzlFOS045Y5LPXft7SoHL\nNQeqvHl/mctOX0Q0XKUu66i5aeyWQSpKMvrjH3Pk5X/N4i99k0+32hzVKri/BItDwb9f9Zes/+o3\n2P+5jzNVrdKaTFENBIe1ueTdFI1yhaVD3Vz7dJnPTNQ4OZfkL1auRgmHFcVRhrwa943kSEetrF6z\ngo9fcgTJRJL2fJ6enm6EUKSlZDaysdJdRvRwhMniXjqtCNd4YBnpEaMjZbhlQgeTnoniQW+eljXv\nv5RtNnZlNLnQQUgktI0HIh7qYhpDTVbgSdVUdZWGoOItyMZ8CbtLmnmT/i88+f8Uo+9RSk0AKKXG\njcHDArlWc8RSrs89P8K8xOvzDstGF/VYUAhZcCi0A44xWwRMenDDqCSNjpgsqVkXCsXXnoFeWzc0\n2FIrXEZxghDNU9NsoVUUQwmRLZqj6pScb6sPFRyM4ENvv5zC1DhhtYRKZwlDSdhoUPV8vHKRsZGD\nCDfBmW+4gnPf+XECYZFO5bAsh0h6rF7fBbUK/ce2MjU1ytGveS/ua9/N2on93PXr29i5ZR+f+Nsn\nGKvDTLlCu624z7EplhssW7mUX//0Op598E5G902QsgIC12XRuvVUPn0un/vAJq767Gdpy63kjpt/\nxvLV67ns3mdJyQCv4ePd8hjCsXnb2hX87QfeR/f6E0C6nHTBeUT1Bu2LBimNbsG1O3jgkR+TW9JD\n59IVeI067b39DO/exeL1xzE5NUG7WoM/O4qMcljZ46l4z2AXHyLnC9Q4PLRFct9BwWxZQzVBqIgi\nQWRSTuEoM4zBOHdH9yvE8sVCAI6+747SOHzcWRhE8zNVw8AijGSz3wLmU2QRgR8KRkYVjvsiwPgf\ny7aNQb+Ubatm2K0f0JEAri8p0spws+NoXMA/jOkZsLGOSqjiTmPVFERLWKYpyzKBjok4EabfROgI\nUgIzLS00XIucbRM2fKyU3thtS7C4o53RQpFpr05froV3vPI8LokUuWzadKqbLAxIRiG97S0kHQsn\nmeWO919Gwklw6+PPcM/2vVxxa5HxmkfFg/c8u5OPL11Ka8JFXHEFR3/1n/jCieu46JRTcQj4R+lw\ndDbJXddcw77PfoJAevRkM7iuwzfu3MC/Dgf4UQ0PEFtmaHdtdr7xVXT39uCk0jTqAVVvFb3t3ZxV\nLeKXyty1cze9fZ20ZtIsXrSEsOYRCQs3k2bJ0mW01bqJGhWCRhbbbsNK1xkb30KvkNhVwbNTitum\nYbSh1Vl9k6lG0KTBxt3NKF3kjSG4WPYAW9PGndj3LIB2AqnXMojUIV3SYK6r9Hr7EkZKHEI2eaHj\n/1Yx9sWenJdA2V/8sInTSqEZCuLQuZ8R4Ao95BulI3BhcEsPM4jBEaboqjssDwbaeTTQ5yMFMpJY\nloWtTPobQcIS5kHQFMpAyaZsgjTNLJm1a9i+9XHKlVmCSDK0ehWZth5mp4dxowaOFWG5aUaG91Mq\nztCZawHbRUZ6GrkQgkQqh8ikiRo+va3tRNUykVch6bRy5rknc8Lxx9DVexU/+PwXuW7bTvZW6tz+\n259z1kWXEim44B0XYRUabP7YuVxWDmlf6fPWsI/LTzmVT3/5m+RzCfbceDtrwg4e+O6vSFU8ygmL\nZGRzRneW//3pT7P0jJPx6iHVoEq2tZvy2C6qlQpzjWnKjz+LPbqbvXaZg7M3cMT6Y0mkWih099DS\n1ovv14m8ALujl4SdpdVqpT6SBGc5yl3H7b/5NgfLgokiFAOFF2r9osCIeoVSY+aW1JRVTIqcVHpz\nThh4Rri609U2wwMcNOYcSqU7ZKWZmar0QyMj/eDFWYPWahGGWqvnDP83j//7ti0WMMsEh25OGP6B\n0lltzJixAM9AUsLAZEJpLL5m0v3QpPpSxtfTA3EC8z5NjFjR1EmPI8lIamd/2jHrePzgAY7o68G1\nLBzHoTOfZ7w4TQJBKpUia9t4UUCpViObSeNHIUnbIVIWkYywbRtcl4ybIAgD7EiSTWSYLRc4fvkA\nhy/qIWo0+OQdD1BRDl9+eCMfOv9sLevbKLD1U1dy77e/z5U7t/JMI6BsZ/hsT5rLL3k9liNwqpLy\nyDB7i0X+46H7qQlIWBY9UcSvzj+Dwb5O0q1tVOtVUkg8ERCEPpvG9vLYjj1c2NLBAyP76K3McOLg\nCoq1bWC7LO7sInIsao2AbCqDSGew/TxTNUnJUyTSLdzx5MNM+4oRTwvUeRIqoWYHRmre0S/slZAx\nM9wxdUcFdUtDzbZS+OhCa7wJeMbJ+3Le8UuTjUVyvvgeGluJqZ0vdfxPHf2EEKJXKTUhhOgDJs35\nWK41PmIp1xHglc85f/eLXfyRksHJpaLfhoGF1MgYh1Xaem0532EYMwq0tKdqyr3KZqQuCJDNm6ZR\nAqnH11k6Agqkxn0DEwXZ9rzmvTTOpG9RD76SjI0exCVB5FVo6+4g29nF+NQEk6OjTBQKLD9sLbXC\nDGFtjmxLKyqdItnSoh1SIoWlLFKpLJ4fYDkuXpSmZ9kQjfZOZg4eoDQ7zeX/z0e5qBzwtY9eyfuu\n/GvuG1rH4AnH40jFrAj4z1efyd9X2rjsfdN85Ct3MfjZ/4Xr5tn+/W/Q09uJTLtceMERnHbsF6j5\nPl1LF5HuWIYnS0xODlOrl5keG8ErVBG2xbOPb2TF4Wv5+a2/08wPNyKdybNn1y5yuRTHnnYW7W29\ndE3P0NnXj2jUyLXmCVyXlT19FKdHqLT2kzp+lqnf/IJqqIfG+J6eJeApXcSS6NF4tmPmCUj91ZLa\nWauEVhZVgW6GshE4FvhC6UY6A6UFkaZtRiaiUnK+0U5KCxlKqpFiLtIP30vG8n8M227EUTv0CxhY\nUEiLiWamhIGt5m27uUEsOAfzDjtQEBg8Nx4zZ5vW+rSBbSLbvBbt9OOdShncP5SC/YUZGmmXx/fv\n54j+iIG2PEEU0Jdv48ZNT3PBUUfTmU7y1NgE+UwLUVAhkIKubA5PKHw/wkqkyDg2wklgKYnluKTd\nBMKCesMnnJ0lSme48d2X8dS+Yd5/6738+oHf84aTz6I934kMJcdc8VZ2/ewatr12Ed7SDJ99NkJ1\n9DExOUGuOAlKsabD4eG3XsB0uYjjJuju6ES4LtWgQb1cYqo0R6laI4oU44U5DlZrbJsu8pvRETJK\nMitChotPo6KAs49YS7FWpT/fTns2h69CMuk0iUyGI5ctZ6pSIqHaOezoFE/cdzeNSBdb6ya48BVN\nZy+secet0QfDtEFTN6WlO5elUs3Gsrh+otT8ejaM7IEmgdBk10jzc1XC3ALH/1LHH+roBYdGML8B\n3omeoflODpVr/Svgl0KIk9ETeSaEELcBXzIMBgt4FRr3fMHj5LyO5mQg9KhA0DS70DgDk54qI5xk\nS30DgSZvOM6JJfqmRFJroUcIc9NUkyssDGPDTejKesMVOJHCRVMGXQTK0t2vKCjN1ci0L0Y5exie\nOEAinaStr5ukm2G2OEtHPssbL7qEG37xc1wknb3LiPyQYqVEwhW0tHciIoGyXHLZVmq+RyabAiGo\neBaunSAQFoPrTySsFHDcaT74+av5l7ntJL5xHs7fnkRt5CTSP/gavTtSnH5xhsmnHK4earD5kadI\nuTYdRx1LqrWN2lwRHEV1boqGYzMnFfXiOKXyDH5QY2pyhKheZGasSLlUZ6weUBud5TWXXs7atetY\nsWqIPXt3cetvf8uuzRvp3LOd7JE5BBG5XAtBIkeqtYtkxqNSr9Hf1U11aoKj7Qw3/Oe1OFGkx+eF\nijAQTYoqQj8godINPbHzA0jEDCh3fj0tobClNsO4QBVGgiBSzXmpMoRAmSY7BVJIFIKMpcgK0XSO\n49Ehj8Uf17ZTxlkvxHRNcKJYYNsGdrHNvYplhqMFT3V8L2PKbxxRNgMctMPxpcaLAwmeDalIEJjO\nTCXmM1wLGK/WOXnFIIXyHPvmZpioljl9aIggCpmuVylWKmyfnWW8WMAJlzI849Gdz7JvZopARrSm\n07QoxcHpCrl0GoRFRERHJgNKB1xuKsOifCu7J8boyKW58S2vZckjt7Bv4klSvQmqOyK6rQbXr22j\nEgxz+80p3pkT2DKiPDvOQF8/05Ua2WSSysw0DTeBcB2EV8erlfBCn5IXMF6YQijFXNVjzg+ZdZL8\n2akn0pnLUfI8jhzoo1ir8Nlb7+TJ4VFWd3XR15InUJLeXJbIcrAcF9tJsTiVwg8DlgmX1UtX8cju\nnc0h7rHoWBxUSxOR25ZRoRQ6G4vXOA4+Y/2smAUlxXx2FQ+hiYOXWMs+xvcVWqAua7PArl/M6v4A\nRy+E+Bk6YukUQhxAz8b8KnCtEOJdwH7gUgCl1O+EEOcLIXahiSlXmPOzRtp1o/m8n1dKzb3Eu5qO\nWDWPI5rx6Mrg60LppngrBquURWApHBPNxdFPUzzK0k5comWPwTBuMDsxetEcSxBGGiqKLA0LKHM9\nzEIMb9nK3NQMfZ29ZFo76V8yxBNP3o8t63R1D+A4DvWE4pQzzuKBe2/G3ncAy7ZZc/gQo1NzJGdG\nicp12lq7iJSDZVmkc61IIXEdR2OiCKb27cTFolCapn/5Klo+/wX4yVVse8+XWckjBNOKE0/qpGV5\nlQcfynDhl+8nOzJBfskyMgmXpx9+gM7WPMJK4GEjXYtKsUhFlJmZPEjNL1IoFBifq/C6N19Bf9cS\nPK9KMpOhUphFBhGOZdHb0cN7rngXIvV+GnNjtA2sAjuJLxLYlqBWnMFxLES9igxTuG6S8clp3vJX\nf8uPvv45wijebCE0IacCPYhFGWjBBWHraB9HoUIN0ShXZ2eWZWEp3QEa09Ai49AFhomzIJqPgWeB\nuc4LhD0vj23PO2GMWceAfezIhRmiYjU/r97cLPRrYw587NxDMd/gFMdFhkugaZPo13hKO5eGpUhI\nnbUqpW1dmWdpcUsLCUvQm8vR09JG0Q/YPDHKXKWG14joyuVoSyfw7AQbRw6ihMX+wgyjtRL5hEvC\ndmlNpqiFEV2ZFpSCwwd62Do6Sjpp40qB54dMzYZ0JFOkEknsjb+lUoSVF51K6Yf30m1DInAJkoJn\ndodcdME7SSRcpmtVBpevxg99ZrwC+0tzrO7ooKJ0R/pYuYQMQ6pBnclKlZm6R0u+nbeecwYHZork\n0wlabItSI6Anm8YSkHYS/M05Z5FNCPLZHIlElrTjImybMAxRUlGuVulsyRCEAYV6nVcedzx37djZ\npFE2J0mZ6Fpaxu5MJB+a9T3kMBF/3OEvFthFzL6J11mp5/T6RS9c33mp4w9h3bz1RX517ou8/oMv\ncv6HwA//kA8VGGpMnMroh9o0zqCjIYRhZJiUyFUKSy7gUsepEDpq8aOYemaKqmZXDJXuUAvRcsiO\nqyvedaE1J1xA2Kr5OZSyGKjVeHLDI3R0tbAmk0WGEcOjBZYv7eWEU87koUfuZvHAGg4c2MmioXX0\nLl7B2K4neHjDwwzv30N3Rw+ZXJZq2aOtJc+KoVXs2r2NZFJ7u1xbG/gejVKFnt5FTM9Mkvz8JzkQ\nuQw8dRPdY3mmazXGvAxDH1rJwQfu4bg3fhU73UrrsizIOpXpaXpas9RLFSqhz9jYFN39A4yNDzM7\nO0c6k+ChJ7fzrr+8ChmWkcUZCjJg6JhTEZk2OlZZqEhHlV3tvTjYBI0SQaOuqWNeg2phjHxHJ9J1\ngQSbHrybzc8+Ra4lwcT0LEcffarG0UOIAg2LWaFlhoMAodH5dyGK9VoCiL2yUNoR2TYIw5wSSp9P\nudDdIki6emOerSumyuBX4iKsIhJay8gyMJGReHl5bds8xM20nvniWuyYEWqenicMW0PM+4om9ou2\nY38BfBnDNvGRQNu2byAFX2pcv2LrrNmNIQWlXze6aTNWPkl7Os2KDhthO2wtTrOmv48zDlvNVKVE\nOplmaWsr/e1dpNwEzx7YScX38CNFoVpAYLG4pYWx2RKZpMuO6XF6cjkc20YpyaKWHPum5mhJJmjH\npm13Gftkl3t/eQ+tUZJjEoKNnsNRXX2cffgqfNcmsPVgkrniHO0Jl4m5ClJFbK7P0JFNsG1iimzC\nZrhYZs/0LEetWMqJawZIETA+PUFLtpWeji6E7WD5PpZtI1Bk05K2nIcfNHCtBEQhE6US2WQSYdu4\nboKpuVm8apE7t2/Fi+DcI9ZRM4FFFJlai1xw76VpULJ11inNaEwTtzbX37b02gpoSlQ4FvQntSRD\npPT8gikPvMa8nUSC5gCZSD3frl/o+JPsjFVmiERcxY6pSTolMkRJqTnWAQIHiRSGQqlUs1km/tsj\nqZC+vpZHs8ENYp0PdGocSIEbKnxXYEuFFerirHY6AkspfFviSJi+/RamTz+Oul/m9O5+2tq72LF9\nE4evO46HH9nAOy5fx7Zd2+hbtJSj+hbhplOc/qa/wHEk2598Ail9ypNjTE7Pkcx3020nqNQKzBUn\nSCQturo7mBufouH7DK5cRakiGR/IMfbFMe6dtjg/00FJRNgbHqEt6GXX5qfp6FqGTCRQtTmmRkd4\n+tENFEolFvd0M1NqcOc9t9LfnqcmXU49+1VctHSQenmCvv7FdK09Ek9kiFyXsO5B0kUEEV5pjrRt\nUZgaoaW9DUv6TO55lkQ6h9fwqZbmaO/spDBToFopgojo6Rlktlbn4P59hAFEvikohTRpsvH915ar\noxc7tLBsiYj0Gi7MRIXQc3ulhI60YLBdoYTCN0XXlqR2WggozLJAOkPMG4J6fmD1xz4WYuwLB43E\njjZ2BJb52VHz0Xkzs2T+T4rx2oB55kwc6QlzLomGbRx0i33DOAnLwDnxtQOgVUIXLg+OT9KIQlpz\nbTw9NkXCVrTl8kxWyyzJdzJTbeBYFmsH+hjq6WKiVmWgLU+5NEu14fHogRGW51rIJlJEssHOqWmW\nd3VyYGaWIAi0IKCvGNj9FOmExb5tNdbRRirdoBFZjFoOx9UmaQwXkN3rKHseLUmHibFJhgOPmcIM\nmXSSPcUGtTAgl3B5vFDEzWU5d+1hREQklE9PRwfZTI5SEFAOQjpsm2QiQbVWw/M8qpUSvW2tREHI\nbKVEwnFIOQnKlQrpVJLRiSkmy0VGZMCa7l6emZxgx0xBD103axg9B1qJDyvS2agyBXVNQjBsM/Pi\nWJMokNDuwmB2AXsKaLHBSenrTdfn4U3V/B9/kF3/STp63/Ck4whHswg051RIDd1Y5uGwQgW2ZsPE\n+Ff8R8fpkM6c5odRqOZvdbQvlVaeFEJPtRKR3kTsOPqSYNuqyZAIpaBlbo68SrNjosiBG64nkbAp\nl8rs2bGFKPRJJnIctupIfn/fXZzz6ktZnl+GY1uEYcja404iCvTgu6Bexyak4UtmC8Ms7h1gujiD\nq2DxkqOJVMT0Fz9BkE5w4rsG+PX1u9i+ZY62ZDeT9QrvePWrGX3wIW755Y+YHKuwZkuG9nVZlv/8\n56y+/BtMl7aTO+VM3vvwP1CcjBha2kd3aw6XiN6+ZeR6+sjnc4TCJekmCapl8DwmpiZoT6WZnp7A\nsRJUq3Wmp8aYK86y7PB1DAyuZOvGhyjNTbFjy2ZSiTQzMzNUygXcXIYjjzqNb3/uc01+dhQYXvxz\nTFIhEEYxVEjVFCKTEcgYfxMxFCdwbEVfq7aB0Dw4USQIlJai7sjozsa6J0zkpJodtM8F41+Ow48f\ndkxaHuO2GIcvdKRtmWYmZR3yPD/PtmE+Goxf89yv8Ri6QGoaXqC0nG6EmSm7IDCKgKfve5TFJx7D\nPz32LEMdbUxWqjgioi2TZ6Q8R3+2g4PFMsOlEsu6uwjCkMWtrVgIMtlW8i0JLursR0aSbMIhlBGD\n3X1MlkucNNRJ4IfkU0lSSrH7iQ1sEi6DKzIcfDakxdLzh/dGPlF7Oz+9bT+y7UEG0i0cvmk/i9OL\n6D1yFYsf30rYv5xz3/k6duw/wJduup3zVi6hPZvCtRzasnlW9PVRCUNKXoCFpFIqkAnSlDyfuWoF\npRQ1P0KFIQGKfEuaXKYFK5JU/SLbR8fxpaQShOwvTLO4q4uTVxzGg3sPNHWAYgjtuQF17PAV8TxY\ngz5LmplmrHmjTA2mN6UX0o+fGTk/jKY9ARVf91DEGcFCW/j/paMPIwupJEpZRAak0gUMjbWKAOLH\nQ6Cxdydh8FlT5It1bJSKI0m9FHHBo/mUmCvFasQSDTP4lu7YjB2KLQWWpXOmUCqUEEzc+Fsyymbi\n7FOYLk0xuHw537zm3+jMJKjVPTraernsHR/gmSfuZmjlGqLJiGw6T6a9EzuRYm5kmHy+A8KQwuQB\nEkmXQEqkr5XVc+kkQioKUyNUI4eRzSVa9kVk27u4vVKnXvW55s238Oz99/CPn1zPwW89QPjo9wlv\nKiKOvoRdP72Gg3In1ob7+E24keEtu2lNtSAaPtf/27cItu5iOTZz01P093VRrNeJpE9ppkCtWuax\nvaP09vZSrdSZnR6lf6CfniVDJFr7GD5wkJoX4lsugQ2NcoFScYre/uXk0m2UPcHIwYP4YRxlqubY\nl3DBY2HFbjjQ+kRRKPTknkgR2LrhR8i43U3RkgLL0rTb0AjJhUAUSjPyTpBNKxq+KWzCIbSE/w6u\n+f/FERrhNWVwd5gvzsWe1kI/5HGgE3dpxzWi+FDoTUEyH00u/PueG2HGLCXdrKY3klCg5YoBZbJb\nqWBsw5OcuGoZOytlIkuypRYxvOlpfF/xqlVHUG343LP/AN3pNEctWsxcsYDtJOhryzM2UySXcAgC\niaccSo0akZSkUwk6kgmq2DT8iHq5wI11xeG9IUNVi70RJJVNSQoaMuRf76lw5RWfwhYWEz/cxIHM\nDhYvXcFTw48jEg6dc2X6v/gNlg1lefyD7yMUgpseeYzpuTJJN8GesSm623LU6g0iIZFhyOaJWXZP\nznHysiXcsnUnq7q6mAobZDM5+nr6wbKYLBaoBhEtuQxT5SKFegWFIO0kKDV8Htu5RwsbGkcvF9zf\n+IjJVCrSRJHIZGkOhkIb79rGcWccnZFGhjocD6OJ8X8UZF09fep/Ytd/oo7ecIEjaQoc5uGQNAsR\nYB4EodvBI1+PSpMGDmiKupnoH0wKrLRzkego3oHmMBLJ/GJZUtEIDONGgB3DRQZQC6RhLaiIrrsf\nINPXzQ4rxRGDgwRBmb17d+nRhK7LT679GUeuGuLII9bRCCQ9vYtpz7eSSrrMjRW57tb7yeZbEZ7H\nbLVAV0sXs5MTLOlfxNYtu8gc8zrWn3EeD+3czGZ1PWMU2BkKejsH2b35WZSyiWRIUKuRavTT9dq3\nwbnryd78n9xVWk5nZjHipsf5xNf/ke9efTWhJbjkrz+KQrDz8YeZfuoJtm3cSEtnB539HYxPjLB7\n2zZC4fLkMxs59phTeNWFf46Qkl07N5MhZGpumsHlK5gpTDEw0Mf9d9xOtSE4OPIsc7MV0ulOAj8i\nCkEG805IxlG9Ga6hzAagm0k0rm6bgntCaiAziiS2UZ6zTRNcFOhIHqGQ0bzDRBhqm9SCdi9BRHhZ\njtAUkJWhk8ZFtXgQ93Mjs5gsEBfv4sNwE+Zxe/P1uTVnteD3sX3bQjsQz4rb+010iX6fCM1ky27b\nz1oBtcFelJBkbAeyFvvmiriO4Lwj1nH/gd1snZ5geUcnK7t7mCkXiSLJlFIUyx47agFRGFAPPFLC\npjXhMlOq05ZOsnH/MH2nnMHizhy/fmYru8KDtNqCaRnxo499AtuCMJQoIcl1ZTlMHcbM7AhrTz6f\nB399HTLp0og8do7ZhFLhWBYXnXSiZvag+I8776E9lWCqXmdRVxtlv46KAvYXi2x9cpq13b30dbSz\nvKODbRPjNOpValFIezZNeybJMyPjlDwPsDg4W2S2EZBwM2wZGTf070OdfHyvFxZK4yYpteB1SaUX\nTy6oKYq4ZmhowtaCa8b/Wda8D/vv2vWfpKMPIoWQlo7I0UVXFWkZ3Jh+ZoZK4Sit7KYAJxQIOx6w\nEGvX2EgijEwFgZjXuLeIb9y8k3fMOT9+iExEZVv6PYVZRbFgt0kIUGNTvK4twTO1IsPZdtI5l6Bm\ncf0Nv+ChZ3ZzYGySp7bswgKOPvZYHJUkiBrse+Bx7CjkY1/7NNMzJR54JsE7P/Jh6kpHIG9MZACF\n4yQQVoT6zOfwAh83lcQOqngNhUg3aD1yOb/o+jPOVpsoFdcxcd8tfGxsM5/6xFX87lfXkUvn+fDb\n3kUkFbbrIqVEEbF8/XGsOPoE/LDBN/76A6RSEb1LF9Has5RjTz6FZYuXcWDvbkbG9lOcmaYwM8HW\nn/wry4cO48C+veRyaapewNM7tmLbLhOjBYTbzS9+9m3yMRvhue5LKMMN13COHsMp9cYZzcMVMhJI\nS+ooyISyvqTJ4hHx2guBipRRaFRNiCMS8SYeN5aIZh/Gy3UEUrNqYlE+FcM3xp7jhqm4dcTHdE7q\n0obudkUHOJFxNIH5dzGEsDC6i69jYiTdZLPgWhEx04dmD0p875Sli7nqwBS93a08LUDlW6iHIYOd\nvcx4De48WGBZS40NI1MMtBzEiyJOXbaU5W15rrvvEU47bDnHrVnCWA1aWvMcs2wQLwjBErwpUqRc\nByEEZ68/Un9Qodg7WyGSEVLCOdf+gCd2F9gpuyikG4iWpXzsntsJjhykXmmQruQ4vG+5rjmImK2k\nazdvedXZSAUzkxNcv2EDPpJ8KsX564+gN9dKveExVqnw9OgoU+USjx04wOKOVmbrPplEglwiwayv\n2FGYJp/JcqDi8fC+nWRUrEVzaBYV3/sXalKVUq+ZJQwDzYwnjak53N7VAAAXhUlEQVSRTbjGePVQ\nxOQP/XPsb2zzu7iu8ofa9Z/kzNiLEkabQ2pMS4Yax4L5lEigDdXGPAhovDGBZdyKduURkjqY6U8Q\nNima+kpCSSMTqq/jYDoRFaQAOzHfem+hG6ji/VlZZvEUlLuyHNfdwxrpMaocRhd3sPzi9/Doxru5\n5e4NOI7kzNNOx0261ItFdh/cS71YptGoUgktqr7CKs5x+dpBTrrsEhYNruHggRnOecufodJdRF4D\nJ2HTaDQIw5BUMkOkQlJugnJplr/53k28r28dq596imj5LOXRQWpLXJZfcR7SyRJI+P2GpwjsNG84\nZS2WZRHQoDG9n7G9O5ENm66uTnZt3cvA4HLybVlcW3BwZBfbt2+lWtXUUfyAzZufZnR6koMTU7Qk\nU3QsHsD1fSKRpFQpcP31d7A4bRGWPK30Z4qvMXwWRyMxtmybiF64Wls9YQY+uAJwBa7Q9RPQv1vV\nbSGE0mqWSvda+BJEKPBtGJ9SVGpo7ZtmUXYeOnrKU7xcM2MvMnLMoTJQoZyP9hZi7Qvt0UIXVBPE\nKpSq6bjr5quPtnGdkcY1CTPkwlwjseC6SfQzph1knNnOf1ZpokcBLGpvYW/k86pUit5IEp17BtOh\nYOfMDN96fBOvWNRDezpDKEMK9TrjpSqKkLSdYNdclVIQcLxj88WzjydKZ1CJDGFdcvKx65EIyg1P\nr7tt68KyVLSkkuwaGeZfdk1woFzmo3sadNb3smr9KYykAtK5JC3r12DbFr8/MIHtpljWmmJ5SwYL\nzea6/sH76M60sW5ZB/dtHuGYZUvozmWQQjFWKjBRqer3Fg5J22Ln1AwTtQqW4zI6V2K8VuPCw4Z4\nZnKOzlyGXz3+DElLUZmr6z4IFtBkmYfQ5u3afG+yzIStv7roX7piPgNzLFid09lWCM3GKV/OQ2wT\nNSj78+ybOFCIP8NTES9q13+SEb0SRhYU5ucmmqch/lGImLmhDklXFdKoWApCZLMDNlRxo40yWK75\nF0LXA6wFV4kU2KZI60gLKWSzUBZDQpaJ8BvAzJJ26nU4QtS5qzjLKZkM0u6io3cRc6WA2vAYY8Jh\nyYppKoUCh60Zoi3dzilHnkxfzwAbbn2IP88k+fKBXVy3vcJ3/+Y7NKolvra6k4cmD7D0xGPZNgWv\nfvNbcJyQZDKJ4yQJ/QAJtLZ38c2rLkOoBt/JFbFGLS6Yvg/bSuDfO4R93CCJ7haSezcRVKaZyhTJ\ntHXy4L23kremOfa40/nB9bdSnhtjYM2JyMijXq3g2YpUNs3oVBEhBA/edD2t+S4WDy6hL53FyrQw\nOzHJ3l0H6O0eYG7P01z74DM62rFdegINpelo89AsKj70z0bfJgCRFgbPNBFvqIhs0YRuPF8xUpb0\n5YW+dmQ6axFEFlRqUPd14VYvs66nWHFu/DIfOj2flzBYeDRtm0OhmHlnopoPbMh8VLkwmo83AjOR\nFPWc+x5fL+LQTSWGdJTCzGSAwBbcZsPVjuACJ0lIxJT0OXVwOXdt203gBYyUPfZWQ7bPTbIklyOT\ncOjLZjhl6SClQoXvnbCcv7z7HsrC5i23PsVY6HOyknxkzQB31oscs2yAzXWbM1Ys047SgRZhI6Ri\nxUA//9jfz4Zt2+l55RCPTK6jvyQYKz7CokoX7C/QubKH43M2+0eGSYUt1P08w3OzNGrTnDzQyvVb\nxrh/6w5W9vUzXS4xXJimFPnkEykqpmt6dG6GnpYMyUyKtJSMV2ugBGv7erh51zDHdnXxrw9uZNiL\nsIDD1aFQWHw8FyeP769jUswYm4+n3IWWwDFGEEo9nWogNR/Jx9IYUujhJbVw3m3FA0is52J1L3L8\nlxG9EOIa4HXAhFJqvTn398Dr0UHybuAKpVTJ/O5TwLvMPbhKKXW7Of8a4B+NXV2jlPq7F3k/dYEt\ntM5JkycjnsM4mOeeWuhW+Tiqdxa8Ll6MCNM0gu6OPRRKUM2oyeH5UZSV0AtlY5w72hgj2+LoniyL\n8kkaMkW3E9CQgkkFr/+7Tm7dfyFHn3EZX/77T/PDH/9GR5NSd2r297TwrS98lZMOP55vvuMLvH/R\nLhad9edM3HctH9mcJO+kOb7X4zT2sTZbI1IR+7xOdq04hhumy9SSed5+8fm0tnVTHC/Q25nh2eFJ\nSqU6rSnBZR98L3M/v4OO9YfRuP1njC07gc3FXWzdt51QpfHL0xy2chH5RsAjv72Te/ft5O59X+Lg\n7x/mQx/Yx4VXvoldW5/BCz3chMtUtYRSgtHhEUIFcw2fro4uGkFAykpy5vrDOeqR3zGAg+14jPmC\ndx8o0e1JgkqgJYZ5YXu0m/deuyYnpe+za+uo3lYgjHdzjLOPULTl9IQdYWsOfgDM1aBQ1D9LpQuM\nMW895hzDfET/ctj2+ebBPDQ4eT6DIp4CFdv1C9l2jOHGsORCnDg+Xsy2U8ae3fj9TKoc2ZBwLU5I\nJ+hOu5SDiA5Lb77blc8bL3CotFzGrtkqk9UZ3nn9neZe6w3lhxeew1G9i/jWrx7gyqxH1mpQS/Vz\nw8QwzzRy5BC8Ol/lDFWmLyWoWy73lmF0cDV3VX3WdbZz7opFeI2IutdAWDYzQURnNs3vd2/js2ef\nS3W8QHL4CdJHnsuduzbhtmbZcGCUlkSSQrnEQMrCKZf5/vZh7v7kUXhRmQu/Psz5px7NCQO93Lhl\nMzPVOplsGoTgsQPDrOjoYEexSGc6w2nLhzhQmKJWrXNpfZYOGdFqCyqh4s/nArpQeNXgkA02XruF\n2Zm94Ktj05yAZ4l5fwI0h7NHQGsCulwzQczQNmd9mKlr+40bBE3P56F2/f8yov8Bz9fsvh24Wikl\nhRBfRWt2f0oIsRbdSXg4WvPjTiHEKnMP/gU4BxgFHjOa3dte6A1jJsHC0lT88YWJ3uJI0EEXNHy0\nINZzNasUhpUR0zOhmaMqJZspa9x1uBDGsRxd6LWFhSV0OrjPhnxLklN7OhHKY8qyuLtQpuDXeNvF\n6/jfv9oOn1Kcff3lPPbkRuqNgGyuhUbUwK/52K7g2v+4idxYlY9f9Bkyah+1RWnkvu2MlYq4R/SS\nGQn55ajHB4YP4jcqlMdH2P+db7Pu/hs5z5rGkhbhD+8klC47oyyb2pZxsGuQzhVDVKs1nr79FlZd\ndAbcsp0Djz9E9aZN1N58MtU7f8eZHVm2Z7N0Hb6WH3/939hjt3LlBy/FGr6BJWvP4HV/8w7Wn/NK\nOk8qMProdRSLYxR270CpiGxbF20DvRzZYtNWG6PvoZ0cnbHhoR0EKK6r1jkrk6bLghuW5LmrIrlh\ntEyxqqcW14H0C6zP/EYuDGNKd72ampWZbzpv0ErBXBFKRRCuxpwboY6UY1rVQhjC4kWPP7pto54f\n+S10FPHnVRjBMbQDSPJStr1ws5iHbWIIYaHTaUI4Bn8XQphxnLDPFQylEqxKujRsxVQo+UmpQTZh\nc1yPS7mS5He/s7j4va08NDKMcJLkUwnmPB+p4FUrhzhp+Wq+/sM7qPo2JXeOo447i12P3sER2VZC\nq8LN5YjvXfkhIhkwV6syM1Vg5Fe/4aKDm3l7SkIdxH6baWweCByCpSsZVbDbFrx5zSpu3PQ0561a\nxcHHU7S42/jt1l04YZFTkIw3apx2wkkMb3qabxdSeFYWUd5HJtXHXukxtOpEejuydE14VNRuap6P\nELCiq5uGUJw5tILJ6WEmn3qYVzuCPtvGkorbQsVSy+JY1+GXHS7bPcX3FEzWgubavZBtL1xbKWO7\npln4lhiUIH6tgmIDyg29YLaBbgK5AIBYcO2XsOvnHX8QRm80u2+Ko57n/O6NwMVKqcuFEFcDKo5o\nhBC3AJ8zn++zSqnXmvOHvO4511PnNLFIfdgLCqi2eYL1jFyFLYQWTjIGGxdpBQvSWWEcvblGXDAR\nGH1wNS8V6iqNnSVMCuua4eC2pRCW4PeRIkxm2FL3iJBEUmHZWocnm3KQmRzf/c4POH3tEAdH9lCN\nFBe8/lIUET+65nucdvTx3PJP1zN42htZekw/n3nN29g6u5FzFqe5LpcjKtU5rNxF2t7L5a84nsu+\n/0vsVAuRslDKpzE7xdzoPmb3jrPvq5/mhESBnhYf2ZCEoeAr+yPeMLiYm8o2H152MYn83dTO/hCP\nRLM4tsuJ57wGJ5dH+hFfeuPRPF4/km/84vvce/Pd3DX9cTK3trPytVfw73f/hFemOhgtj+ImHV6f\nCdg8sp+9hZApBYdnU0zUyvzre9oY3+Xx7Xsi7i54fPqoAW6ZLfJ0wadUjBhMWER1HWsWgI7nMb4X\nbKwmO7NSuibiOALbUc2RbiLWaQfd4awWrHOc0kYathHmNXGAE6Ga0cJCjP6Pb9uHRt1xQVqa74nt\n0sBZtglOFjpqOLQIuLAIqxa8bqGDj6N5F0gtwOZdDHvHgptDKDkuI0GEsnTxQKEdTosjqAqXPZ/8\nK1psiy/d/Xu+ed+TSMB1LK486Tg+fMrxXPXdO/jouy7i4a1buPvBbaSdGR4oF6kMtGNNeCx2Eryx\nTfCJt70Bp62fhJMgIsTzPbx6nUapyl33PMCxlQJDdpUE6v+0d+4xVhVnAP9959zX7t1lHyC7AREs\ntIJgwBfSStsEilDTlkajUWsRE61GaWs0FnxUbWurJiVGrTap9GFrwdo0KloFfMZYH1AfIEJ5iIvu\nA5AV2Od9nq9/nDm7Z7dgWZe7e1nnl0z2nNlzz/3OmW++OzPfNzNkPOX2T/JcXRnnoc44TZFyfl7q\n8pHTyQkz5/L8gX2MG1VLzfBqHBV+fe89rCit4P5zLmR0WZQfP7qc2acmWL+hguc7mpC9LcwZN5J0\nPs/UkjjxpnpWtaTYjctER8jHIyz5chnjsnDt6/t4rT3LlbVlrE3nWJ/O09CaY5SjSL67PHzd7knw\n/rta9hFTFm6oVW+qg9l7p2vMXegeqwe6lkIQuod0grIPTj6tRX8kDP1KYIWqrhCR+4DXVHW5+d8y\n4Gkj91xV/YHJvxiYrqo/Osj9dFbodytw4Dn0lN8N1ohQv1K45hrHhO0JdG1F6Jm1TsLP6oTCJl01\nE0cwRt7xnSMR13eAOY7vJHQch+fSHm5M+KS6jFSkgoq40hkt4bwFi5g6bQozp06lrDRGc9NuHlyx\njDt+uZR4PE6iJMqiyy/jTw88T6ebIJvpwHNTSN7BcwU8IZ8X1ElBLkPEjZLJdeDQSSbVxnm1SX54\nzcVMueJ6IpRATsiRQXN5mrbXkXNjNNbt5I9/+we33XIXw0uHUVrfQvt15yInjGXPyEr2N7Wzbuta\nvlAzg4teXEOVxvn7yQu4bWyaN99/gX07WijRCn83nM4WiCfp1P1kWxqBKJNL80ysHc7KumY8R/hW\nbYLp5S7NEuf+7QdIZbPgQiTmkojFyLR2MFrF+FnChv5/dc7fHs835BJTIq6YzRv8WbKOafmIdLeO\noKdTyixT2rXXgGp3NEJ4HbM+GPoC6HY34RC8MGEDHwy1BCkY2gk7AXsPi4V/EAIHbMwk1+i3I+bc\nCTZDEZ7OKW5M+ACXKSOr2J3Kkiwv4/yppzCxppqvjx5FKpumLZPhma0fcM0Tz6CirL70IioiLrP+\nsAoQHMnjoUheyTsOjkRI51uJOFFi4tKZSeM5WXJejkr1WDw6yXWXfp9spJSsqonKgY62dva2p8ml\nOvnVa+u5dc4sjqmuIPZWE3it6Lsv0X7MWOLjJ7Fx/Uv8om4PTdkYLYk4T045kwXrXqBpWIKU5CjJ\nJIk6DtlMBsfNI5Ek+9oacBCSonynOsnqlnb25mBcAq4YlsAR5cF2YXtbCkEQs6Y8nlKj/ghCwMEM\nfVAW0aDszNCNSPcs7qDBGaxrE9SOoIyDqBu8XnrNQfS6UM5YEbkJyKrqiv7cpzddsez+twDh7q5Z\nu8SM+zrmPGeGcdQY++5P0nXeNfwDKEpETfcV/0XExCHqekSNofcrgr87vDgQEY+EQG0ySl1HmuRI\n4eqbl3L+vLkQiZJOp0nEojR82MhfHluOOAmibpRYIk7znn3cfudS6l9aRPmI0WT2f0h783BqJp2K\nOK207nqWZNVkWvZuJlZ1Ko07/k2qLUlnrpFp0yaz9dVtbHxnE/ed/hX2ZjKckkwwpWY43/7tMo77\n0niyqThjxk/g5Zdf5I0rZ3N2+VhS0TgdM8+j5NVlpDL1lI86mUsumUP5iafTuGsykVie9+qFn7kH\nWPVcGRfcMZ3jRk0hUlmF19FM84EUJfEyxs64jtZsjsZIjJasS7w0QcJN8WRTmscb8zheC24kgusq\nFWVlVGg7506rYVQyzvJX3ueT/bmuoTN6lIxfntCtsAI4GcGL+eqew4+rFzcY3vFrQ2Dc1VQC8fx7\n5SVowXdvMJ8PAuz7wMDots/BnNPQHerr0d3iC0edhe/Te5w4MPCBkQ9mwEZMKz6K8YNgkqMkHUi4\nDq7CptZ2Hlu4gJNGVJv3rLSl02Q9jye2bGPpCy/7/gEPZv/uYW6ZfRo7Lh9HaSRKc9qjprKWPS1N\ntKeVqmiOPBm2NB4gUlpGmeYZXjkShywbG+pp2dPGzQ8/wpttGSK5DN8tG8b35n8DTZRz4rE1pL0I\nE3d8RPt769inMSY1bKd2znxa645HstvwOhNMnj6GVfMmIE6MVi/Pzv0f89RJ0/npW1u46aTRfHHM\nsURcl2xnllTao7wkwTH37CKdV6pL4jzVlqIikSTR1k59Cm5Mp3G8wJ44JB1/U6NZI2LMHFHB6p37\nea81cIcfmnDPy/XMHAUniLoy22lqz3LsSqG5FYGRzxNMHuxp5P8v/uzRT0/AWGBDr7yFwL+AeChv\nCbA4dL4KOAOYAaw61HW97qs22VToZHXbpqGYDmXDP9N69CbK4Hrga6qaDl23EviriNyNv53aBGAt\n/g/WBNNNbgIuAC482BcNRnyz5XON1W3LkOezrkd/I36P8Fkz8/B1Vb1KVTeJyKPAJvyor6vUb8rk\nRWQRfkRDEIK2uRAPZLEcLla3LZ8Xim5mrMVisViOLH0JxSw4IjJPRP4jIltFZPEgyVAnIutF5G0R\nWWvyqkRkjYhsEZHVZtu44Pp7RWSbiLwjItMKIM/vRWS3iGwI5fVZHhG5xLzXLSKyoMDy3Soi9SLy\nlknzQv+7wci3WUTOCuUPetkXkmJ4Pqvb/Zbt6NXrw3HGDkTC/9HZju8ciwLvABMHQY4dQFWvvLuA\nn5jjxcCd5vibwD/N8Rn43fwjLc9MYBohh2Ff5QGq8Gd5VgCVwXEB5bsVuPYg104C3sYfMhxnyjuY\n0zPoZV9AnSqK57O6/fnV62Jq0U8HtqnqTlXNAo8A8wdBjqCAwswHHjLHD9Et13zMrEpVfQOoEJGa\nIymMqr4C7OunPHOBNap6QP39TNcA8zgCHEI+OHg843zgEVXNqWodsA2/3Iul7AtFsTyf1e3+yQZH\nqV4Xk6EfDXwUOq83eQONAqtFZJ2IXGbyalR1N4Cq7gIChe8tcwMDI/PIw5QneIeDIefVpou9LNT9\nPpQcxVL2haJYns/qdv85KvW6mAx9sXCmqp4GnI1fqF/FryBhis2DfSh5Biuc7wFgvKpOA3YBSwdJ\nDktPrG73j6NWr4vJ0DcAx4XOjzV5A4qqNpm/HwOP43e/dgfdVhGpBfaYyxuAMaGPD5TMfZVnQN+t\nqn6sZvASeBD/HRaNfINAUTyf1e3+cTTrdTEZ+nWYiSciEsOfeLJyIAUQkVIRKTPHSeAs4F0jx0Jz\n2ULgCXO8Elhgrp8B7A+6nUdaNHq2YPoqz2pgjohUiEgVMMfkFUQ+U0EDzgE2huS7QERiInI83ZOO\nBr3sC8ygP5/V7f7LdlTr9WB4gD/F0z0P2ILvzFgyCN9/PL5n/G38SrDE5FcDzxnZ1gCVoc/8Bt+z\nvh44pQAyLcdf/jYNfAhcih9p0Cd58CvNNmArsKDA8v0Z2GDe5eP448DB9TcY+TYDZxVL2Q+Ablnd\nPjzdKQrdHmp6bSdMWSwWyxCnmIZuLBaLxVIArKG3WCyWIY419BaLxTLEsYbeYrFYhjjW0FssFssQ\nxxp6i8ViGeJYQ2+xWCxDHGvoLRaLZYjzX0T906+ScIACAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -152,7 +152,7 @@ "source": [ "from scipy.misc import imread, imresize\n", "\n", - "img = imread('./bajrangbali')\n", + "img = imread('./images/bajrangbali')\n", "img_tinted = img * [1, 0.55, 0.5]\n", "\n", "# show the original image\n", diff --git a/Lab 1/Nearest Neighbour Classifier.ipynb b/Lab 1/Nearest Neighbour Classifier.ipynb new file mode 100644 index 0000000..0ebb024 --- /dev/null +++ b/Lab 1/Nearest Neighbour Classifier.ipynb @@ -0,0 +1,274 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nearest Neighbour Classifier\n", + "***\n", + "Among the various methods of supervised statistical pattern recognition, the Nearest Neighbour rule achieves consistently high performance, without a-priori assumptions about the distributions from which the training examples are drawn. A new sample is classified by calculating the distance to the nearest training case.\n", + "\n", + "This classifier is very rarely used in practice, but it will allow us to get an idea about the basic approach to an image classification problem.\n", + "\n", + "### Problem 1: Classifying Points\n", + "***\n", + "Given some data points (in 2D space) with their color labels, design a NN classifier to assign a color label to the test point.\n", + "\n", + "Given data points:\n", + "\n", + "|Sno| Coordinates| Color|\n", + "|:---:| :----------: | :----: |\n", + "|1. | (1, 1) | red |\n", + "|2. | (2, 2.5) | red |\n", + "|3. | (3, 1.2) | red |\n", + "|4. | (5.5, 6.3) | blue |\n", + "|5. | (6, 9) | blue |\n", + "|6. | (7, 6) | blue |\n", + "\n", + "Test data:\n", + "\n", + "|Sno| Coordinates| Color| True Value |\n", + "|:---:| :----------: | :----: |:----:|\n", + "|1. | (3, 4) | ? | red|\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The test data point belongs to class with color: red\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# define training data\n", + "training_data = np.array([[1,1], [2,2.5], [3,1.2], [5.5,6.3], [6,9], [7,6]])\n", + "training_labels = ['red', 'red', 'red', 'blue', 'blue', 'blue']\n", + "\n", + "# define test data\n", + "test_data = [3, 4]\n", + "\n", + "# Plot the training and test points\n", + "plt.figure()\n", + "plt.scatter(training_data[:, 0], training_data[:, 1], color = training_labels[:], s = 170)\n", + "plt.scatter(test_data[0], test_data[1], color = 'green', s = 170)\n", + "plt.xlabel('X-axis')\n", + "plt.ylabel('Y-axis')\n", + "plt.title('Data Points')\n", + "plt.show()\n", + "\n", + "# define distance function\n", + "# L2 distance\n", + "def distance(a, b):\n", + " return np.sqrt(np.sum((a - b)**2))\n", + "\n", + "# Calculate the distance of test point from all the given data points\n", + "num = len(training_data)\n", + "dist = np.zeros(num)\n", + "for i in range(num):\n", + " dist[i] = distance(test_data, training_data[i])\n", + "\n", + "# Select the label of data point with minimum distance from test point\n", + "index = np.argmin(distance)\n", + "print('The test data point belongs to class with color: ', training_labels[index])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 2: Classifying Images:\n", + "***\n", + "Design a NN classifier to correctly identify digits from a dataset of tens of thousands of handwritten images.\n", + "Define two cases with different number of data values for training the model and output the accuracy of the model in each case.\n", + "\n", + "**Given**: Use the [Digit dataset](http://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html) : Sklearn is a Python modules for machine learning. This module comes with a few standard datasets, such as the digits dataset. This dataset is made up of 1797 8x8 images and contains two arrays _digits.images_ and _digits.target_.\n", + "\n", + "Case 1: 100 data vales as training data
\n", + "Case 2: 1000 data values as training data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n0QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from sklearn import datasets\n", + "digits = datasets.load_digits()\n", + "\n", + "# plot the first digit and print it's target value\n", + "plt.figure()\n", + "plt.imshow(digits.images[0], cmap = plt.cm.gray_r, interpolation = 'nearest')\n", + "plt.show()\n", + "print(digits.target[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# define the distance function\n", + "# L2 distance\n", + "def distance(a, b):\n", + " return np.sqrt(np.sum((a - b)**2))\n", + "\n", + "# define an accuracy function\n", + "def accuracy(e, total = 100):\n", + " return str(100 - ((e / total) * 100)) + ' %'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 86.0 %\n" + ] + } + ], + "source": [ + "# use first 100 images as training data\n", + "training_data = digits.data[0:100]\n", + "training_labels = digits.target[0:100]\n", + "\n", + "# define a distance vector and error count\n", + "num = len(training_data)\n", + "dist = np.zeros(num)\n", + "errors = 0\n", + "\n", + "# use random 100 values as testing data\n", + "for i in range(1597, 1697):\n", + " test_data = digits.data[i]\n", + " for j in range(num):\n", + " dist[j] = distance(test_data, training_data[j])\n", + " index = np.argmin(dist)\n", + " label = training_labels[index]\n", + " if label != digits.target[i]:\n", + " errors += 1\n", + "\n", + "print('Accuracy: {}'.format(accuracy(errors)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Increasing the training data set from 100 data values to 1000 data values:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 91.0 %\n" + ] + } + ], + "source": [ + "# use first 1000 images as training data\n", + "training_data = digits.data[0:1000]\n", + "training_labels = digits.target[0:1000]\n", + "\n", + "# define a distance vector and error count\n", + "num = len(training_data)\n", + "dist = np.zeros(num)\n", + "errors = 0\n", + "\n", + "# use random 100 values as testing data\n", + "for i in range(1597, 1697):\n", + " test_data = digits.data[i]\n", + " for j in range(num):\n", + " dist[j] = distance(test_data, training_data[j])\n", + " index = np.argmin(dist)\n", + " label = training_labels[index]\n", + " if label != digits.target[i]:\n", + " errors += 1\n", + "\n", + "print('Accuracy: {}'.format(accuracy(errors)))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Lab 1/images/boundaries.png b/Lab 1/images/boundaries.png new file mode 100644 index 0000000..fe73210 Binary files /dev/null and b/Lab 1/images/boundaries.png differ diff --git a/Lab 1/iris.data.csv b/Lab 1/iris.data.csv new file mode 100644 index 0000000..5c4316c --- /dev/null +++ b/Lab 1/iris.data.csv @@ -0,0 +1,151 @@ +5.1,3.5,1.4,0.2,Iris-setosa +4.9,3.0,1.4,0.2,Iris-setosa +4.7,3.2,1.3,0.2,Iris-setosa +4.6,3.1,1.5,0.2,Iris-setosa +5.0,3.6,1.4,0.2,Iris-setosa +5.4,3.9,1.7,0.4,Iris-setosa +4.6,3.4,1.4,0.3,Iris-setosa +5.0,3.4,1.5,0.2,Iris-setosa +4.4,2.9,1.4,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +5.4,3.7,1.5,0.2,Iris-setosa +4.8,3.4,1.6,0.2,Iris-setosa +4.8,3.0,1.4,0.1,Iris-setosa +4.3,3.0,1.1,0.1,Iris-setosa +5.8,4.0,1.2,0.2,Iris-setosa +5.7,4.4,1.5,0.4,Iris-setosa +5.4,3.9,1.3,0.4,Iris-setosa +5.1,3.5,1.4,0.3,Iris-setosa +5.7,3.8,1.7,0.3,Iris-setosa +5.1,3.8,1.5,0.3,Iris-setosa +5.4,3.4,1.7,0.2,Iris-setosa +5.1,3.7,1.5,0.4,Iris-setosa +4.6,3.6,1.0,0.2,Iris-setosa +5.1,3.3,1.7,0.5,Iris-setosa +4.8,3.4,1.9,0.2,Iris-setosa +5.0,3.0,1.6,0.2,Iris-setosa +5.0,3.4,1.6,0.4,Iris-setosa +5.2,3.5,1.5,0.2,Iris-setosa +5.2,3.4,1.4,0.2,Iris-setosa +4.7,3.2,1.6,0.2,Iris-setosa +4.8,3.1,1.6,0.2,Iris-setosa +5.4,3.4,1.5,0.4,Iris-setosa +5.2,4.1,1.5,0.1,Iris-setosa +5.5,4.2,1.4,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +5.0,3.2,1.2,0.2,Iris-setosa +5.5,3.5,1.3,0.2,Iris-setosa +4.9,3.1,1.5,0.1,Iris-setosa +4.4,3.0,1.3,0.2,Iris-setosa +5.1,3.4,1.5,0.2,Iris-setosa +5.0,3.5,1.3,0.3,Iris-setosa +4.5,2.3,1.3,0.3,Iris-setosa +4.4,3.2,1.3,0.2,Iris-setosa +5.0,3.5,1.6,0.6,Iris-setosa +5.1,3.8,1.9,0.4,Iris-setosa +4.8,3.0,1.4,0.3,Iris-setosa +5.1,3.8,1.6,0.2,Iris-setosa +4.6,3.2,1.4,0.2,Iris-setosa +5.3,3.7,1.5,0.2,Iris-setosa +5.0,3.3,1.4,0.2,Iris-setosa +7.0,3.2,4.7,1.4,Iris-versicolor +6.4,3.2,4.5,1.5,Iris-versicolor +6.9,3.1,4.9,1.5,Iris-versicolor +5.5,2.3,4.0,1.3,Iris-versicolor +6.5,2.8,4.6,1.5,Iris-versicolor +5.7,2.8,4.5,1.3,Iris-versicolor +6.3,3.3,4.7,1.6,Iris-versicolor +4.9,2.4,3.3,1.0,Iris-versicolor +6.6,2.9,4.6,1.3,Iris-versicolor +5.2,2.7,3.9,1.4,Iris-versicolor +5.0,2.0,3.5,1.0,Iris-versicolor +5.9,3.0,4.2,1.5,Iris-versicolor +6.0,2.2,4.0,1.0,Iris-versicolor +6.1,2.9,4.7,1.4,Iris-versicolor +5.6,2.9,3.6,1.3,Iris-versicolor +6.7,3.1,4.4,1.4,Iris-versicolor +5.6,3.0,4.5,1.5,Iris-versicolor +5.8,2.7,4.1,1.0,Iris-versicolor +6.2,2.2,4.5,1.5,Iris-versicolor +5.6,2.5,3.9,1.1,Iris-versicolor +5.9,3.2,4.8,1.8,Iris-versicolor +6.1,2.8,4.0,1.3,Iris-versicolor +6.3,2.5,4.9,1.5,Iris-versicolor +6.1,2.8,4.7,1.2,Iris-versicolor +6.4,2.9,4.3,1.3,Iris-versicolor +6.6,3.0,4.4,1.4,Iris-versicolor +6.8,2.8,4.8,1.4,Iris-versicolor +6.7,3.0,5.0,1.7,Iris-versicolor +6.0,2.9,4.5,1.5,Iris-versicolor +5.7,2.6,3.5,1.0,Iris-versicolor +5.5,2.4,3.8,1.1,Iris-versicolor +5.5,2.4,3.7,1.0,Iris-versicolor +5.8,2.7,3.9,1.2,Iris-versicolor +6.0,2.7,5.1,1.6,Iris-versicolor +5.4,3.0,4.5,1.5,Iris-versicolor +6.0,3.4,4.5,1.6,Iris-versicolor +6.7,3.1,4.7,1.5,Iris-versicolor +6.3,2.3,4.4,1.3,Iris-versicolor +5.6,3.0,4.1,1.3,Iris-versicolor +5.5,2.5,4.0,1.3,Iris-versicolor +5.5,2.6,4.4,1.2,Iris-versicolor +6.1,3.0,4.6,1.4,Iris-versicolor +5.8,2.6,4.0,1.2,Iris-versicolor +5.0,2.3,3.3,1.0,Iris-versicolor +5.6,2.7,4.2,1.3,Iris-versicolor +5.7,3.0,4.2,1.2,Iris-versicolor +5.7,2.9,4.2,1.3,Iris-versicolor +6.2,2.9,4.3,1.3,Iris-versicolor +5.1,2.5,3.0,1.1,Iris-versicolor +5.7,2.8,4.1,1.3,Iris-versicolor +6.3,3.3,6.0,2.5,Iris-virginica +5.8,2.7,5.1,1.9,Iris-virginica +7.1,3.0,5.9,2.1,Iris-virginica +6.3,2.9,5.6,1.8,Iris-virginica +6.5,3.0,5.8,2.2,Iris-virginica +7.6,3.0,6.6,2.1,Iris-virginica +4.9,2.5,4.5,1.7,Iris-virginica +7.3,2.9,6.3,1.8,Iris-virginica +6.7,2.5,5.8,1.8,Iris-virginica +7.2,3.6,6.1,2.5,Iris-virginica +6.5,3.2,5.1,2.0,Iris-virginica +6.4,2.7,5.3,1.9,Iris-virginica +6.8,3.0,5.5,2.1,Iris-virginica +5.7,2.5,5.0,2.0,Iris-virginica +5.8,2.8,5.1,2.4,Iris-virginica +6.4,3.2,5.3,2.3,Iris-virginica +6.5,3.0,5.5,1.8,Iris-virginica +7.7,3.8,6.7,2.2,Iris-virginica +7.7,2.6,6.9,2.3,Iris-virginica +6.0,2.2,5.0,1.5,Iris-virginica +6.9,3.2,5.7,2.3,Iris-virginica +5.6,2.8,4.9,2.0,Iris-virginica +7.7,2.8,6.7,2.0,Iris-virginica +6.3,2.7,4.9,1.8,Iris-virginica +6.7,3.3,5.7,2.1,Iris-virginica +7.2,3.2,6.0,1.8,Iris-virginica +6.2,2.8,4.8,1.8,Iris-virginica +6.1,3.0,4.9,1.8,Iris-virginica +6.4,2.8,5.6,2.1,Iris-virginica +7.2,3.0,5.8,1.6,Iris-virginica +7.4,2.8,6.1,1.9,Iris-virginica +7.9,3.8,6.4,2.0,Iris-virginica +6.4,2.8,5.6,2.2,Iris-virginica +6.3,2.8,5.1,1.5,Iris-virginica +6.1,2.6,5.6,1.4,Iris-virginica +7.7,3.0,6.1,2.3,Iris-virginica +6.3,3.4,5.6,2.4,Iris-virginica +6.4,3.1,5.5,1.8,Iris-virginica +6.0,3.0,4.8,1.8,Iris-virginica +6.9,3.1,5.4,2.1,Iris-virginica +6.7,3.1,5.6,2.4,Iris-virginica +6.9,3.1,5.1,2.3,Iris-virginica +5.8,2.7,5.1,1.9,Iris-virginica +6.8,3.2,5.9,2.3,Iris-virginica +6.7,3.3,5.7,2.5,Iris-virginica +6.7,3.0,5.2,2.3,Iris-virginica +6.3,2.5,5.0,1.9,Iris-virginica +6.5,3.0,5.2,2.0,Iris-virginica +6.2,3.4,5.4,2.3,Iris-virginica +5.9,3.0,5.1,1.8,Iris-virginica + diff --git a/Lab 1/k-Nearest Neighbour Classifier.ipynb b/Lab 1/k-Nearest Neighbour Classifier.ipynb new file mode 100644 index 0000000..258f94f --- /dev/null +++ b/Lab 1/k-Nearest Neighbour Classifier.ipynb @@ -0,0 +1,460 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# k-Nearest Neighbour Classifier\n", + "***\n", + "It is strange to only use the label of the nearest image when we wish to make a prediction. Indeed, it is almost always the case that one can do better by using what’s called a k-Nearest Neighbor Classifier. The idea is very simple: instead of finding the single closest image in the training set, we will find the top k closest images, and have them vote on the label of the test image. In particular, when k = 1, we recover the Nearest Neighbor classifier. Intuitively, higher values of k have a smoothing effect that makes the classifier more resistant to outliers:\n", + "![figure 1](./images/boundaries.png)\n", + "\n", + "k-NN is a type of instance-based learning, or lazy learning, where the function is only approximated locally and all computation is deferred until classification. A useful technique can be to assign weight to the contributions of the neighbors, so that the nearer neighbors contribute more to the average than the more distant ones. For example, a common weighting scheme consists in giving each neighbor a weight of 1/d, where d is the distance to the neighbor. A commonly used distance metric for continuous variables is Euclidean distance. For discrete variables, such as for text classification, another metric can be used, such as the overlap metric (or Hamming distance).\n", + "\n", + "## Validation sets for Hyperparameter tuning\n", + "***\n", + "The k-nearest neighbor classifier requires a setting for k. But what number works best? Additionally, we saw that there are many different distance functions we could have used: L1 norm, L2 norm, there are many other choices we didn’t even consider (e.g. dot products). These choices are called **hyperparameters** and they come up very often in the design of many Machine Learning algorithms that learn from data. It’s often not obvious what values/settings one should choose.\n", + "\n", + "We might be tempted to suggest that we should try out many different values and see what works best. But, doing this will result in _overfitting_ the testcase. **We cannot use the test set for the purpose of tweaking hyperparameters.** There is a correct way of tuning the hyperparameters and it does not touch the test set at all. The idea is to split our training set in two: a slightly smaller training set, and what we call a _validation set_.\n", + "***\n", + "\n", + "### Problem 1: Classifying Points\n", + "Given some data points (in 2D space) with their color labels, design a kNN classifier to assign a color label to the test point.\n", + "\n", + "Given data points:\n", + "\n", + "|Sno| Coordinates| Color|\n", + "|:---:| :----------: | :----: |\n", + "|1. | (1, 1) | red |\n", + "|2. | (2, 2.5) | red |\n", + "|3. | (3, 1.2) | red |\n", + "|4. | (5.5, 6.3) | blue |\n", + "|5. | (6, 9) | blue |\n", + "|6. | (7, 6) | blue |\n", + "\n", + "Test data:\n", + "\n", + "|Sno| Coordinates| Color| True Value |\n", + "|:---:| :----------: | :----: |:----:|\n", + "|1. | (3, 4) | ? | red|\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The given test point belongs to class with color: red\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import operator\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# define training data\n", + "training_data = np.array([[1,1], [2,2.5], [3,1.2], [5.5,6.3], [6,9], [7, 6]])\n", + "training_labels = ['red', 'red', 'red', 'blue', 'blue', 'blue']\n", + "\n", + "# define test data\n", + "test_data = [3, 4]\n", + "\n", + "# Plot the training and test points\n", + "plt.figure()\n", + "plt.scatter(training_data[:, 0], training_data[:, 1], color = training_labels[:], s = 170)\n", + "plt.scatter(test_data[0], test_data[1], color = 'green', s = 170)\n", + "plt.xlabel('X-axis')\n", + "plt.ylabel('Y-axis')\n", + "plt.title('Data Points')\n", + "plt.show()\n", + "\n", + "\n", + "# define distance function\n", + "def euclidian_distance(x, y):\n", + " return np.sqrt(np.sum((x - y)**2))\n", + "\n", + "# process of calculating the distance of test instance from all items of training set\n", + "# function that returns k nearest neighbors from the training set for a given test instance\n", + "def getNeighbours(trainingSet, testInstance, k):\n", + " distances = []\n", + " for i in range(len(trainingSet)):\n", + " dist = euclidian_distance(trainingSet[i], testInstance)\n", + " distances.append((trainingSet[i], training_labels[i], dist))\n", + " \n", + " # sort in accending order w.r.t distance\n", + " distances.sort(key = operator.itemgetter(2))\n", + " neighbours = []\n", + " \n", + " for i in range(k):\n", + " neighbours.append((distances[i][1], 1/distances[i][2]))\n", + " return neighbours\n", + "\n", + "\n", + "# Once we have located the most similar neighbors for a test instance, \n", + "# the next task is to devise a predicted response based on those neighbors.\n", + "# We can do this by allowing each neighbor to vote for their class attribute,\n", + "# and take the majority vote as the prediction.\n", + "# value of each vote depends upon its weight (calculated as 1/distance)\n", + "# Below provides a function for getting the majority voted response from a number of neighbors. \n", + "def getResponse(neighbours):\n", + " classVotes = {}\n", + " for x in range(len(neighbours)):\n", + " response = neighbours[x][0]\n", + " if response in classVotes:\n", + " classVotes[response] += 1 * neighbours[x][1]\n", + " else:\n", + " classVotes[response] = 1 * neighbours[x][1]\n", + " # sort the votes in decending order and take the label with maxm votes\n", + " sortedVotes = sorted(classVotes.items(), key=operator.itemgetter(1), reverse=True)\n", + " return sortedVotes[0][0]\n", + "\n", + "# using k = 3\n", + "neighbours = getNeighbours(training_data, test_data, 3)\n", + "print('The given test point belongs to class with color:', getResponse(neighbours))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 2: Classifying Images:\n", + "***\n", + "Design a kNN classifier to correctly identify digits from a dataset of tens of thousands of handwritten images.\n", + "Define two cases with different number of data values for training the model and output the accuracy of the model in each case.\n", + "\n", + "**Given**: Use the [Digit dataset](http://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html) : Sklearn is a Python modules for machine learning. This module comes with a few standard datasets, such as the digits dataset. This dataset is made up of 1797 8x8 images and contains two arrays _digits.images_ and _digits.target_.\n", + "\n", + "Case 1: 100 data vales as training data
\n", + "Case 2: 1000 data values as training data" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy for Case 1: 83.0\n", + "Accuracy for Case 2: 90.0\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import operator\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from sklearn import datasets\n", + "digits = datasets.load_digits()\n", + "\n", + "# Define the distance function:\n", + "def euclidian_distance(x, y):\n", + " return np.sqrt(np.sum((x - y)**2))\n", + "\n", + "# Define the accuracy function:\n", + "def getAccuracy(testInstance, predictions):\n", + " correct = 0\n", + " for i in range(len(testInstance)):\n", + " if str(testInstance[i]) == predictions[i]:\n", + " correct += 1\n", + " return (correct / float(len(testInstance))) * 100.0\n", + "\n", + "# process of calculating the distance of test instance from all items of training set\n", + "# function that returns k nearest neighbors from the training set for a given test instance\n", + "def getNeighbours(training_data, training_labels, testInstance, k):\n", + " distances = []\n", + " for i in range(len(training_data)):\n", + " dist = euclidian_distance(training_data[i], testInstance)\n", + " distances.append((training_data[i], training_labels[i], dist))\n", + " \n", + " # sort in accending order w.r.t distance\n", + " distances.sort(key = operator.itemgetter(2))\n", + " neighbours = []\n", + " \n", + " for i in range(k):\n", + " neighbours.append((distances[i][1], 1/distances[i][2]))\n", + " return neighbours\n", + "\n", + "# Once we have located the most similar neighbors for a test instance, \n", + "# the next task is to devise a predicted response based on those neighbors.\n", + "# We can do this by allowing each neighbor to vote for their class attribute,\n", + "# and take the majority vote as the prediction.\n", + "# value of each vote depends upon its weight (calculated as 1/distance)\n", + "# Below provides a function for getting the majority voted response from a number of neighbors. \n", + "def getResponse(neighbours):\n", + " classVotes = {}\n", + " for x in range(len(neighbours)):\n", + " response = str(neighbours[x][0])\n", + " if response in classVotes:\n", + " classVotes[response] += 1 * neighbours[x][1]\n", + " else:\n", + " classVotes[response] = 1 * neighbours[x][1]\n", + " # sort the votes in decending order and take the label with maxm votes\n", + " sortedVotes = sorted(classVotes.items(), key=operator.itemgetter(1), reverse=True)\n", + " return sortedVotes[0][0]\n", + "\n", + "# use fist 100 images as training data for case 1 and first 1000 images for case 2\n", + "training_data1 = digits.data[0:100]\n", + "training_labels1 = digits.target[0:100]\n", + "training_data2 = digits.data[0:1000]\n", + "training_labels2 = digits.target[0:1000]\n", + "\n", + "\n", + "# use random 100 values as test data\n", + "test_data = digits.data[1597:1697]\n", + "test_labels = digits.target[1597:1697]\n", + "\n", + "# using k = 5\n", + "predictions1 = []\n", + "predictions2 = []\n", + "for i in range(len(test_data)):\n", + " neighbours1 = getNeighbours(training_data1, training_labels1, test_data[i], 5)\n", + " neighbours2 = getNeighbours(training_data2, training_labels2, test_data[i], 5)\n", + " predictions1.append(getResponse(neighbours1))\n", + " predictions2.append(getResponse(neighbours2))\n", + " \n", + "print('Accuracy for Case 1:', getAccuracy(test_labels, predictions1))\n", + "print('Accuracy for Case 2:', getAccuracy(test_labels, predictions2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Problem 3: Classification of Iris Dataset:\n", + "***\n", + "Fisher’s Iris data base (Fisher, 1936) is perhaps the best known\n", + "database to be found in the pattern recognition literature. The data\n", + "set contains 3 classes of 50 instances each, where each class refers\n", + "to a type of iris plant. One class is linearly separable from the other\n", + "two; the latter are not linearly separable from each other.\n", + "The data base contains the following attributes:
\n", + "1. sepal length in cm\n", + "2. sepal width in cm\n", + "3. petal length in cm\n", + "4. petal width in cm\n", + "5. class:\n", + " - Iris Setosa\n", + " - Iris Versicolour\n", + " - Iris Virginica Design\n", + " \n", + "Design a kNN classifier to classify the given test spicies as belonging to one of the class" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set: 103\n", + "Test set: 47\n", + "1. predicted='Iris-setosa', actual='Iris-setosa'\n", + "2. predicted='Iris-setosa', actual='Iris-setosa'\n", + "3. predicted='Iris-setosa', actual='Iris-setosa'\n", + "4. predicted='Iris-setosa', actual='Iris-setosa'\n", + "5. predicted='Iris-setosa', actual='Iris-setosa'\n", + "6. predicted='Iris-setosa', actual='Iris-setosa'\n", + "7. predicted='Iris-setosa', actual='Iris-setosa'\n", + "8. predicted='Iris-setosa', actual='Iris-setosa'\n", + "9. predicted='Iris-setosa', actual='Iris-setosa'\n", + "10. predicted='Iris-setosa', actual='Iris-setosa'\n", + "11. predicted='Iris-setosa', actual='Iris-setosa'\n", + "12. predicted='Iris-setosa', actual='Iris-setosa'\n", + "13. predicted='Iris-setosa', actual='Iris-setosa'\n", + "14. predicted='Iris-setosa', actual='Iris-setosa'\n", + "15. predicted='Iris-setosa', actual='Iris-setosa'\n", + "16. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "17. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "18. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "19. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "20. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "21. predicted='Iris-virginica', actual='Iris-versicolor'\n", + "22. predicted='Iris-virginica', actual='Iris-versicolor'\n", + "23. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "24. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "25. predicted='Iris-virginica', actual='Iris-versicolor'\n", + "26. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "27. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "28. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "29. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "30. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "31. predicted='Iris-versicolor', actual='Iris-versicolor'\n", + "32. predicted='Iris-virginica', actual='Iris-virginica'\n", + "33. predicted='Iris-virginica', actual='Iris-virginica'\n", + "34. predicted='Iris-versicolor', actual='Iris-virginica'\n", + "35. predicted='Iris-virginica', actual='Iris-virginica'\n", + "36. predicted='Iris-virginica', actual='Iris-virginica'\n", + "37. predicted='Iris-virginica', actual='Iris-virginica'\n", + "38. predicted='Iris-virginica', actual='Iris-virginica'\n", + "39. predicted='Iris-virginica', actual='Iris-virginica'\n", + "40. predicted='Iris-virginica', actual='Iris-virginica'\n", + "41. predicted='Iris-virginica', actual='Iris-virginica'\n", + "42. predicted='Iris-virginica', actual='Iris-virginica'\n", + "43. predicted='Iris-virginica', actual='Iris-virginica'\n", + "44. predicted='Iris-virginica', actual='Iris-virginica'\n", + "45. predicted='Iris-virginica', actual='Iris-virginica'\n", + "46. predicted='Iris-virginica', actual='Iris-virginica'\n", + "47. predicted='Iris-virginica', actual='Iris-virginica'\n", + "Accuracy: 91.48936170212765%\n" + ] + } + ], + "source": [ + "import csv\n", + "import operator\n", + "import random\n", + "import numpy as np\n", + "\n", + "# Load the IRIS dataset csv file and convert the data into a list of lists (2D array),\n", + "# make sure the data file is in the current working directory\n", + "# Randomly split dataset to training and testing data\n", + "def loadDataset(filename, split, training_set=[], test_set=[]):\n", + " with open(filename, 'rt') as csvfile:\n", + " lines = csv.reader(csvfile)\n", + " dataset = list(lines)\n", + " \n", + " for i in range(len(dataset)-1):\n", + " for j in range(4):\n", + " dataset[i][j] = float(dataset[i][j])\n", + " \n", + " if random.random() < split:\n", + " training_set.append(dataset[i])\n", + " else:\n", + " test_set.append(dataset[i])\n", + " \n", + "# function to calculate euclidian distance between two point;\n", + "# this distance gives a measure of similarity between the two\n", + "def euclidianDistance(x, y):\n", + " return np.sqrt(np.sum((x - y)**2))\n", + "\n", + "# process of calculating the distance of test instance from all items of training set\n", + "# function that returns k nearest neighbors from the training set for a given test instance\n", + "def getNeighbours(training_set, test_instance, k):\n", + " distance = []\n", + " for i in range(len(training_set)):\n", + " dist = euclidianDistance(np.array(training_set[i][:-1]), np.array(test_instance[:-1]))\n", + " if dist == 0:\n", + " dist = 0.000000009\n", + " distance.append((training_set[i], dist))\n", + " \n", + " distance.sort(key=operator.itemgetter(1))\n", + " neighbours = []\n", + " for i in range(len(distance)):\n", + " neighbours.append((distance[i][0], 1/distance[i][1]))\n", + " return neighbours\n", + "\n", + "\n", + "# Once we have located the most similar neighbors for a test instance, \n", + "# the next task is to devise a predicted response based on those neighbors.\n", + "# We can do this by allowing each neighbor to vote for their class attribute,\n", + "# and take the majority vote as the prediction.\n", + "# value of each vote depends upon its weight (calculated as 1/distance)\n", + "# Below provides a function for getting the majority voted response from a number of neighbors. \n", + "def getResponse(neighbours):\n", + " classVotes = {}\n", + " for x in range(len(neighbours)):\n", + " response = neighbours[x][0][-1]\n", + " if response in classVotes:\n", + " classVotes[response] += 1 * neighbours[x][1]\n", + " else:\n", + " classVotes[response] = 1 * neighbours[x][1]\n", + " # sort the votes in decending order and take the label with maxm votes\n", + " sortedVotes = sorted(classVotes.items(), key=operator.itemgetter(1), reverse=True)\n", + " return sortedVotes[0][0]\n", + "\n", + "# Define the accuracy function:\n", + "def getAccuracy(test_set, predictions):\n", + " correct = 0\n", + " for i in range(len(test_set)):\n", + " if test_set[i][-1] == predictions[i]:\n", + " correct += 1\n", + " return (correct / len(test_set)) * 100.0\n", + "\n", + "def main():\n", + " # prepare data\n", + " training_set = []\n", + " test_set = []\n", + " # 2/3 for training and 1/3 for testing\n", + " split = 0.67\n", + " loadDataset('iris.data.csv', split, training_set, test_set)\n", + " print('Train set: ' + repr(len(training_set)))\n", + " print('Test set: ' + repr(len(test_set)))\n", + " # generate predictions\n", + " predictions = []\n", + " k = 3\n", + " for x in range(len(test_set)):\n", + " neighbours = getNeighbours(training_set, test_set[x], k)\n", + " result = getResponse(neighbours)\n", + " predictions.append(result)\n", + " print('{}. predicted='.format(x+1) + repr(result) + ', actual=' + repr(test_set[x][-1]))\n", + " accuracy = getAccuracy(test_set, predictions)\n", + " print('Accuracy: ' + repr(accuracy) + '%')\n", + " \n", + "\n", + "main()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pros of kNN Classifier:\n", + "***\n", + "- It is very simple to implement and understand\n", + "- The classifier takes no time to train, since all that is required is to store and possibly index the training data\n", + "- Naturally handles multi-class cases. (_KNN works just as easily with multiclass data sets whereas other algorithms are hardcoded for the binary setting._)\n", + "- New training examples can be added easily. \n", + "- The non-parametric nature of KNN gives it an edge in certain settings where the data may be highly “unusual”.\n", + "\n", + "## Cons of kNN Classifier:\n", + "***\n", + "- Comparitively higher computational cost since classifying a test example requires a comparison to every single training example.\n", + "- Not appropriate for high-dimensional objects since distances over high-dimensional spaces can be very counter-intuitive (_The accuracy of KNN can be severely degraded with high-dimension data because there is little difference between the nearest and farthest neighbors._)\n", + "- KNN can suffer from skewed class distributions. For example, if a certain class is very frequent in the training set, it will tend to dominate the majority voting of the new example (large number = more common). " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Lab 2/Histogram.ipynb b/Lab 2/Histogram.ipynb new file mode 100644 index 0000000..973ddd6 --- /dev/null +++ b/Lab 2/Histogram.ipynb @@ -0,0 +1,156 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Histogram:\n", + "***\n", + "A histogram is an accurate graphical representation of the distribution of numerical data. It is an estimate of the probability distribution of a continuous variable (quantitative variable) and was first introduced by Karl Pearson. It is a kind of bar graph.\n", + "\n", + "# Image Histogram:\n", + "***\n", + "An image histogram is a type of histogram that acts as a graphical representation of the tonal distribution in a digital image. It plots the number of pixels for each tonal value. By looking at the histogram for a specific image a viewer will be able to judge the entire tonal distribution at a glance.\n", + "\n", + "1. Histogram is a graphical representation of the intensity distribution of an image.\n", + "2. Histogram quantifies the number of pixels for each intensity value.\n", + "\n", + "We can consider histogram as a graph or plot, which gives you an overall idea about the intensity distribution of an image. It is a plot with pixel values (ranging from 0 to 255, not always) in X-axis and corresponding number of pixels in the image on Y-axis.\n", + "\n", + "It is just another way of understanding the image. By looking at the histogram of an image, we get intuition about contrast, brightness, intensity distribution etc of that image. Almost all image processing tools today, provides features on histogram. \n", + "\n", + "Both [_OpenCV_](https://docs.opencv.org/3.2.0/index.html) and [_Numpy_](http://www.numpy.org/) come with in-built function to find histograms. Before using those functions, we need to understand some terminologies related with histograms.\n", + "\n", + "\n", + "**Bins**: To construct a histogram, the first step is to \"bin\" the range of values—that is, divide the entire range of values into a series of intervals.\n", + "\n", + "**Dims**: It is the number of parameters for which we collect the data. \n", + "\n", + "**Range** : It is the range of intensity values you want to measure. Normally, it is [0,256], ie all intensity values.\n", + "\n", + "## Problem 1: \n", + "**Aim**: To get the histogram of an image using matplotlib.\n", + "\n", + "**Gven:**
\n", + "Image 1:
\n", + "![Image1](./images/stairs.jpg)
\n", + "Image 2:
\n", + "![Image2](./images/bajrangbali)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Min: 0\n", + "Max: 255\n", + "Mean: 148.39576\n" + ] + }, + { + "data": { + "image/png": "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\nYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Min: 0\n", + "Max: 255\n", + "Mean: 74.82777517361112\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy import misc\n", + "from scipy import ndimage\n", + "\n", + "# mode can be one of the following strings:\n", + "# ‘L’ (8-bit pixels, black and white)\n", + "# ‘P’ (8-bit pixels, mapped to any other mode using a color palette)\n", + "# ‘RGB’ (3x8-bit pixels, true color)\n", + "# ‘RGBA’ (4x8-bit pixels, true color with transparency mask)\n", + "# ‘CMYK’ (4x8-bit pixels, color separation)\n", + "# ‘YCbCr’ (3x8-bit pixels, color video format)\n", + "# ‘I’ (32-bit signed integer pixels)\n", + "# ‘F’ (32-bit floating point pixels)\n", + "\n", + "image_1 = misc.imread('./images/stairs.jpg', mode='L')\n", + "image_2 = misc.imread('./images/bajrangbali', mode='L')\n", + "\n", + "hist_1, bin_edges_1 = np.histogram(image_1, bins='auto')\n", + "hist_2, bin_edges_2 = np.histogram(image_2, bins='auto')\n", + "bin_centers_1 = 0.5*(bin_edges_1[:1] + bin_edges_1[1:])\n", + "bin_centers_2 = 0.5*(bin_edges_2[:1] + bin_edges_2[1:])\n", + "\n", + "im_min_1 = image_1.min()\n", + "im_max_1 = image_1.max()\n", + "im_mean_1 = image_1.mean()\n", + "\n", + "print(\"Min: {}\".format(im_min_1))\n", + "print(\"Max: {}\".format(im_max_1))\n", + "print(\"Mean: {}\".format(im_mean_1))\n", + "\n", + "plt.plot(bin_centers_1, hist_1)\n", + "plt.show()\n", + "\n", + "im_min_2 = image_2.min()\n", + "im_max_2 = image_2.max()\n", + "im_mean_2 = image_2.mean()\n", + "\n", + "print(\"Min: {}\".format(im_min_2))\n", + "print(\"Max: {}\".format(im_max_2))\n", + "print(\"Mean: {}\".format(im_mean_2))\n", + "\n", + "plt.plot(bin_centers_2, hist_2)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Lab 2/images/bajrangbali b/Lab 2/images/bajrangbali new file mode 100644 index 0000000..c609b8d Binary files /dev/null and b/Lab 2/images/bajrangbali differ diff --git a/Lab 2/images/stairs.jpg b/Lab 2/images/stairs.jpg new file mode 100644 index 0000000..19f53b2 Binary files /dev/null and b/Lab 2/images/stairs.jpg differ diff --git a/README.md b/README.md index 7b7ec3c..ac84a2b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,29 @@ -# Pattern-Recognition-Lab +# Pattern Recognition Lab -Code for the PR lab course DTU +Code for the PR lab course of DTU -Lab 0 : Basic python tutorials +### Lab 0: +*** +1. [Basic Python tutorial](Lab%200/Python_tutorials.ipynb) +2. [Basic Numpy tutorial](Lab%200/Numpy_tutorial.ipynb) +3. [Basic SciPy functions](Lab%200/Basic%20SciPy%20Functions.ipynb) +4. [Basic Matplotlib tutorial](Lab%200/matplotlib_tutorial.ipynb) + +### Lab 1: +*** +1. [Nearest Neighbour Classifier](Lab%201/Nearest%20Neighbour%20Classifier.ipynb) +2. [k-Nearest Neighbour Classifier](Lab%201/k-Nearest%20Neighbour%20Classifier.ipynb) + +### Lab 2: +*** +1. [Image Histogram](Lab%202/Histogram.ipynb) + +## To Do: +- PCA +- kMeans +- NaiveBayes +- NaiveBayes NLP +- Linear Regression +- SVM +- MLP +- Neural Network