{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Models of Pursuit"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With a system of ordinary differential equations, we can model problems of pursuit, modeling a predator chasing a prey."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"using Plots"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"using DifferentialEquations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. The Tractrix Problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A tractor is connected to a trailer by a rigid bar of unit length.\n",
"The tractor moves in a circle. The path of the trailer is the solution\n",
"of a system of ordinary differential equations."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Given are $(x_1(t),x_2(t))$ defining the path of the tractor\n",
"and $L$ is the length of the rigid bar.\n",
"\n",
"*Wanted:* $(y_1(t),y_2(t))$, the path of the trailer.\n",
"\n",
"\n",
"The velocity vector of the trailer is parallel\n",
"to the direction of the bar:\n",
"\n",
"$$\n",
" \\left(\n",
" \\begin{array}{c}\n",
" y_1' \\\\ y_2'\n",
" \\end{array}\n",
" \\right)\n",
" =\n",
" \\lambda\n",
" \\left(\n",
" \\begin{array}{c}\n",
" y_1 - x_1 \\\\ y_2 - x_2\n",
" \\end{array}\n",
" \\right), \\quad \\lambda > 0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The velocity vector of the trailer is the projection of the velocity vector of the tractor onto the direction of the bar:\n",
"\n",
"$$\n",
" u = \\frac{(y_1 - x_1 , y_2 - x_2)}{||(y_1 - x_1 , y_2 - x_2)||}\n",
" \\mbox{ and }\n",
" v = (x_1', x_2').\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We compute the projection of the velocity vector as $(v^T u) u$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then the system of first-order equation that defines the path of\n",
"the trailer is given by\n",
"\n",
"$$\n",
" \\left(\n",
" \\begin{array}{c}\n",
" y_1' \\\\ y_2'\n",
" \\end{array}\n",
" \\right)\n",
" = (v^T u) u.\n",
"$$\n",
"with $u$ the normalized vector of the direction of the bar\n",
"and $v$ the velocity vector of the tractor."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1 defining and solving the problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To setup the problem, we first define the path of the tractor. The tractor moves counterclockwise on a unit circle."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tractor"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"\n",
" function tractor(time::Float64)\n",
"\n",
"returns a 4-tuple xp, yp, xv, yv, with\n",
"the coordinates xp, yp of the position and\n",
"the components xv, yv of the velocity vector\n",
"for the tractor at the given time.\n",
"\"\"\"\n",
"function tractor(time::Float64)\n",
" xpos = cos(time)\n",
" ypos = sin(time)\n",
" xvel = -sin(time)\n",
" yvel = cos(time)\n",
" return (xpos, ypos, xvel, yvel)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1.0, 0.0, -0.0, 1.0)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tractor(0.0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result will be a circle, an algebraic curve, not a function, but a pair of two functions $(x(t), y(t))$, one function for each coordinate."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"runcircle = [tractor(t) for t=0:0.01:2*pi];\n",
"tractorpath = [(tpl[1],tpl[2]) for tpl in runcircle];"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(tractorpath, aspectratio=1, label=\"tractor\", xlims=(-1.2, 1.2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To define the function for the trailer, we follow the syntax as required by the definition of the right hand side of the system of differential equations, as required by ``DifferentialEquations.jl``."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"trailer!"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"\n",
" function trailer!(du::Vector{Float64}, u::Vector{Float64}, p, t)\n",
"\n",
"defines the right hand side of the system for the trailer.\n",
"\"\"\"\n",
"function trailer!(du, u, p, t)\n",
" x1p, x2p, x1v, x2v = tractor(t)\n",
" du[1] = x1p - u[1]\n",
" du[2] = x2p - u[2]\n",
" nrm = sqrt(du[1]*du[1] + du[2]*du[2])\n",
" du[1] = du[1]/nrm\n",
" du[2] = du[2]/nrm\n",
" vtu = x1v*du[1] + x2v*du[2]\n",
" du[1] = vtu*du[1]\n",
" du[2] = vtu*du[2]\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 20)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timespan = (0, 20)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2-element Vector{Float64}:\n",
" 2.0\n",
" 0.0"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"initconds = [2.0, 0.0]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[38;2;86;182;194mODEProblem\u001b[0m with uType \u001b[38;2;86;182;194mVector{Float64}\u001b[0m and tType \u001b[38;2;86;182;194mInt64\u001b[0m. In-place: \u001b[38;2;86;182;194mtrue\u001b[0m\n",
"timespan: (0, 20)\n",
"u0: 2-element Vector{Float64}:\n",
" 2.0\n",
" 0.0"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"odetractrix = ODEProblem(trailer!, initconds, timespan)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"retcode: Success\n",
"Interpolation: specialized 4th order \"free\" interpolation, specialized 2nd order \"free\" stiffness-aware interpolation\n",
"t: 39-element Vector{Float64}:\n",
" 0.0\n",
" 9.999999999999999e-5\n",
" 0.0010999999999999998\n",
" 0.011099999999999997\n",
" 0.04599932398208147\n",
" 0.09728271710309522\n",
" 0.16079177000527026\n",
" 0.24759897462440128\n",
" 0.36262238482279635\n",
" 0.5200773496772425\n",
" 0.7440094187324183\n",
" 1.132116226144266\n",
" 1.5254894720810634\n",
" â‹®\n",
" 11.751909721100244\n",
" 12.524523283793146\n",
" 13.254449405255654\n",
" 14.030230579412663\n",
" 14.766932756255922\n",
" 15.543381893121033\n",
" 16.28576560769865\n",
" 17.06063409787625\n",
" 17.807953989482346\n",
" 18.579020059215107\n",
" 19.330869527590004\n",
" 20.0\n",
"u: 39-element Vector{Vector{Float64}}:\n",
" [2.0, 0.0]\n",
" [1.99999999, 6.666666593333332e-13]\n",
" [1.999998790001098, 8.873321522941029e-10]\n",
" [1.999876801384152, 9.116304443552371e-7]\n",
" [1.9978874131298359, 6.473709738159338e-5]\n",
" [1.9906026292849084, 0.0006074547665777278]\n",
" [1.9746349277724395, 0.002694581947216229]\n",
" [1.94135368674023, 0.009476547921899784]\n",
" [1.8799939447491927, 0.02772671436559185]\n",
" [1.7729226188222376, 0.07183763258694799]\n",
" [1.5958733915215255, 0.1671418727348826]\n",
" [1.2706957076233512, 0.37205317224229306]\n",
" [0.9432881727415771, 0.5589732128331643]\n",
" â‹®\n",
" [-0.11309915046006529, -0.12659925276406733]\n",
" [0.006101484348355811, -0.15926680972476207]\n",
" [0.10423178479323221, -0.10881760912671246]\n",
" [0.14233322852523514, -0.005020527882808808]\n",
" [0.10372127693107322, 0.08699796405722568]\n",
" [0.012813198288401838, 0.1280299830058017]\n",
" [-0.07334292195464107, 0.09855907103756514]\n",
" [-0.1158429606113768, 0.01856693714362022]\n",
" [-0.0936832913050855, -0.06218188149740395]\n",
" [-0.023112160868232222, -0.10531128624617633]\n",
" [0.052741620709296444, -0.08924484165209348]\n",
" [0.09346372335246529, -0.03620824685748961]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"soltractrix = solve(odetractrix)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To plot the path of the trailer, we have to extract the coordinates, returned in the matrix sol.u, and store the coordinates as tuples."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"39-element Vector{Tuple{Float64, Float64}}:\n",
" (2.0, 0.0)\n",
" (1.99999999, 6.666666593333332e-13)\n",
" (1.999998790001098, 8.873321522941029e-10)\n",
" (1.999876801384152, 9.116304443552371e-7)\n",
" (1.9978874131298359, 6.473709738159338e-5)\n",
" (1.9906026292849084, 0.0006074547665777278)\n",
" (1.9746349277724395, 0.002694581947216229)\n",
" (1.94135368674023, 0.009476547921899784)\n",
" (1.8799939447491927, 0.02772671436559185)\n",
" (1.7729226188222376, 0.07183763258694799)\n",
" (1.5958733915215255, 0.1671418727348826)\n",
" (1.2706957076233512, 0.37205317224229306)\n",
" (0.9432881727415771, 0.5589732128331643)\n",
" â‹®\n",
" (-0.11309915046006529, -0.12659925276406733)\n",
" (0.006101484348355811, -0.15926680972476207)\n",
" (0.10423178479323221, -0.10881760912671246)\n",
" (0.14233322852523514, -0.005020527882808808)\n",
" (0.10372127693107322, 0.08699796405722568)\n",
" (0.012813198288401838, 0.1280299830058017)\n",
" (-0.07334292195464107, 0.09855907103756514)\n",
" (-0.1158429606113768, 0.01856693714362022)\n",
" (-0.0936832913050855, -0.06218188149740395)\n",
" (-0.023112160868232222, -0.10531128624617633)\n",
" (0.052741620709296444, -0.08924484165209348)\n",
" (0.09346372335246529, -0.03620824685748961)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trailerpath = [(x,y) for (x,y) in soltractrix.u]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd0AUR98H8JndvV7g6KggqKCCCIjYO2jsRo2oMTHRVBNLipqePM/7JE+6JiaaRBPjk2KMiSaxJRqxYewFG3YFVKSX62V35/0DQxABgSt75ff5C2Rv93fC3fdmZmcGE0IQAAAA4KsooQsAAAAAhARBCAAAwKdBEAIAAPBpEIQAAAB8GgQhAAAAnwZBCAAAwKdBEAIAAPBpEIQAAAB8GgQhAAAAnwZBCAAAwKe5VxASQp5//vmmH2+z2ZxXDHBz8Nv3ZSzLCl0CEAbHcQ5fGRS71VqjLMvKZLKmv8Hp9XqlUunUkoDb0ul0KpVK6CqAAAghRqNRoVAIXQgQgNlsZhiGYRgHntO9WoQAAACAi0EQAgAA8GkQhAAAAHwaBCEAAACf5pjxxoqKiqNHj2q12gkTJjR0zB9//HHy5MnExMR77rnHIRcFAAAA7OeAFuHOnTvDwsKefvrpBx98sKFj5s+f/+yzz2q12meeeWbhwoX2XxQAAABwCAdMnzCZTDRNnzp1asCAAQaD4c4DioqKoqKizp49GxUVlZubGxcXl5eXFxwcfOeRMH0CNB1Mn/BZMH3Cl7np9AmZTCYWixs5YNeuXR07doyKikIIRUVFxcTE7N692/7rAgAAAPZzZKg2pKCgIDw8vObb8PDwGzduNHQwz/MLFiyo+bZv374jRoxo6GCLxSISiRxVJ3ATHEHlFlxpJVVWpLXhSiux8NjIIhOLzBxCCPEIaW2ItWKpxKr8+09YziAJjeQ0kTFILcJ+YuInQv4SrBETGgv4bIDjEUIsFotj2wTAU1gsFo7jOI5r4vEikYii7tLkc8VfEsa3dcASQjBu7J3J39+/5mv4W/dWZRacqyf5enTdiK8ZUJEZ3zCQEgsuMaNKKwoQE38J5SdCfmLiJ6YkFFEwSEojGYMQQhghfxGy8ISmUeXf/egFJmThkIGlTBzS2UillaqyokorKbdQGjEJluEQKWktx2Ey0kaO2ihIpAJFqXCA2I1WVgIACMIVMRMeHl5YWFjzbWFhYe0GYh0URb3yyitNPLPNZpNIJPbWB5zMzKFzleRsJTlbSc5XoYtV5LKWMBSKUlFRShyhRG3VuGcYaqPAwVIUJMXB0iadVqezqFSN9clXIwiVmlGJmZSY0HUDuWlC+XqytwTl6clVHSEIt1fjWD/c0Q919sed/XEnfyyGWUXujRDCcZxXvvYJITNnzqz3ZgswaNCgp556ihDi8DFCh601evTo0To3y+Tn5yuVyoCAgOqbZc6dO9e2bVu4WcYXlJrR0VJyrIxkl5ETZSTfQDqocZw/7uSPOvrhGD/cXoU1dr+JOeRmmXILuqwlF6rI+SpyrhLlVJIrOhKtxF0DcVIA7haEuwXhQC98v/VsXnyzjNVqVSgUq1evFroQt3P06NGcnJwNGzY442YZB5yrvLz8ySefrKiosFgsGRkZISEhn376KUJo6tSp48ePnz9/fmho6NNPPz18+PCJEyeuW7du9uzZ9aYg8Fw2Hh0rJfuLycEScrCYVFhItyDcLRCPjcSvJVMd/bDIXdtYARIUEIxTg//pq7fy6GwlOVlOssvIf7P542UkWIp7BOOeIbhPKE4KwIy7PhfgHSiKmjRpktBVuB2pVJqTk+Okkztm+sSmTZtqvlUoFCNHjkQIZWVlhYeHd+jQofrft27deurUqa5duw4bNqyhU0GL0INYOHSgmOy6SXbf5I+UknYq3DcM9wrBPYNxjF+jg8AO4prpEzxBF6rIwRJyoJjsLST5etIzBA8IowaF454h7hvw3s27W4QqlcpisQhdiNvZuHHjihUrnNQihG2YQPOcKidbb5A/r/P7i0mcBg8KxwPCqL6h2O/uo3UOJsg8wkor2ltIdt/kd90kF6pI3zA8tDU1vA3u7A93proOBKEPcmoQwj2Z4O6MLPrzBr/5GtlyjUhpNLwNnhVHrU2jXB9+gvMXo9GReHQkjRCqsKAdBfyfN8iSMzwhaGQEHh1JDWmFpbTQVQIAmgOCEDSo3II25PG/5pGdBXz3YDw6klqQQMX4QdPnFo0ETYymJkYjhNDZSrL5GnnvJDd1B0lvTY2PwqMjKX/f+6AAgCeCIAR1VVrRL7n82iv8viKS3pqaFI1XDRTBe3rjqqdezE+gyixoUz7/81Xy9F+2AeE4ox01ri2lhlUfAHBjEITgFguHNl/jv71Idt7k01pRM2KpdemUHP5AmilQgh6KoR6KQTobvSmf//EKmbPPNrQ19UAHPCKCghmKALgheJ8D6FAJWXWBX3uFTwrED8ZQ/xskghaM/VQiNLU9NbU9qrDQ63P5xaf5x7K4Ke2pGbFUciB0LwNPcuTIkbZt29o57S03N9dkMnXu3NlRVTkQfED1XZVW9MkZPnE9O20n11qBj09gto9kHoqBfjwH00jQIx2pXaOYg+OYAAka/yeX8iv7+Vle29SbowEQ2DPPPLN//347T7JmzZqPPvrIIfU4HLQIfdGxUrLsLL/uKj8igvqoNz0o3BXT/kC0Cv+rG/16MsosIMvP8S8fsWVEU0/FUV0D4L8fuK8DBw4UFhZu3bq1sLAwJSWlQ4cOv/3225AhQ7799tvo6OiJEydu3br16NGjNE2np6f36tWr5oFbt249ePAgwzCjRo0KDg4+dOhQaWnp8uXLg4ODx48fX33Avn37wsPDp06d6ufnhxDKyspSKpU3btzYt2/f7NmzW7Vq5ZrnCC1CH8LyaO0Vvu9GdsJ2roMaX8gQrR5MD4YUdC0Ko6Gt8U9pdM59ojYKPHIrN2gzu+4qz7nRhF4AGlRcXPzUU09NmzZNLBZLJJL8/Px169aFhYWpVKopU6b88ssv1YfNmjXrxRdfDA4OlslkGzZsuPM8r7322nPPPRcWFnb48OFu3bpptVqE0OrVqzMyMn766afQ0NCm7y9hP2gR+oQqK1p+jv/kDN9BjeYnUGPbUrAzkeDCZOjVZOrFROqXPH7xaX7BIX5ePPVIR0oJXdOgFoLQxO2czuaiD0qt5XjVwNtmwvbq1SssLOyee+4ZO3YsQujixYsGg+Hzzz+vGe37+uuvq7+IjIxcvnz5+PHjT5w48eOPP16+fFmj0dScp0ePHlevXn388ccRQuXl5R988MHp06fbt2+PEBo2bNjy5cvnz5+PEIqJifnf//7nkuf6DwhCL3fTiD46zX11nh8eQf02jIbbNNwNQ6FJ0dSkaOpQCfngJP9mtu3JztScODpEJnRlwD1ghBZ2pfSuGlFuymr4SqWyJgUNBsOsWbMOHDhA03T1vhAIoezs7OTk5NopWMeFCxcCAgKqUxAh1L9//9OnT1d/3aNHDzufQgtAEHqtPD159wT/4xX+gQ7UsfFMpBIi0K31CMZr0+grOuqDk3znn20PdKAWdqVaK+C3BlCvEPf6M6i9AdaiRYusVuvZs2dpmt6yZUt1q04ulxuNxjqPqr0NrVwuN5lMNd8ajUa5XF79tVgswJxlGCP0Qrk68lgWl/ILq5Ggc5NEH/emIQU9RTsVXtaXPnOfSEyhruvZ2fu46wYYPAQC8/f3Ly8vr/dHxcXFUVFR1c3Bb775pvof+/Xrl5OTc+jQoepvq5dO9fPzKysrq/6X2NhYqVRavVuDwWBYt27doEGDnP0sGgFB6FWuG8isv7jU39hWcnQxQ/RWd7qJm9wCtxImQ+/3pM9PEqlEKGk9O3c/V2i6+6MAcJJHHnlk4cKFycnJK1asqPOjhx9++Kuvvho9enT37t1rFsIODw//8ssvx44dO3z48LS0tMceewwhNGbMmOzs7Pj4+OnTp0ul0pUrVz7++OMjRozo0qVLv379hN15Cnaf8BLlFvR2Nvf1Bf6xTtT8rrQv7CUryO4TrldsQu+c4L65yD/RmVrYlfbBhc7vBLtPuB4hpLKyUiaTicVirVbr7+9f86OqqqqcnJy2bduGhIQYjUa1Wl3970ajMScnRyaTde7cmaJuNbp0Oh1CqPqVazQaz549GxYW1rp165qHUBQlldbz+R12nwCNMXNoyRn+g5PcxGjq1ERRuFzogoBDhcjQol70swnUv47ysT/ZXkqkn4qDpdqAq2GMa25+qZ2CCCE/P7/evXtXf12TggghuVzevXv3Ouep/eFVLpenpKTU/mnNSKGLwevJgxGEfrjMd/qJPVhM9o5hPutLQwp6qwgF/moAvWMkk1nAx/3Mrs/lha4IAO8BLUJPdbSUzN3PWTn0zSB6QBjcC+MT4jV44zBmRwF57gD3yRn+4940rEoDgP2gReh5Ss3o8b3cmG3sox2pg+MYSEFfM6QVPjqemdyOGvY7O3c/V2kVuiDg7Y4cOVJSUtKshwQEBBQWFiKE7r///lWrVjmlLMeBIPQkPEErzvHx62wKBp29TzQjlqIgBH0SjdGTnamc+0Qsj+J+tn1zkXeje96A12nBotuLFy+uXj7UYrGwLOucuhwGukY9xukK8sReDiH05wgGOsQAQihAgpb1pR/pSD25l/v6Av95P7qjH/xhAAfbsWPH9evX169ff/bs2X79+sXFxX377bdjxoxZuXJlhw4dpkyZ8ttvvx07doyiqGHDhtVMB9TpdHdOSSguLv7uu+9u3rzZp0+f6nW3KysrV61ade+9965cuTI6OnrGjBkufnbVoEXoASwceu0ol7aFfSiG2jsGUhDcJiUIHxjHTIii+m9k3zzO2+A2GuBQcrmcYRiFQqHRaKRSaWlp6UsvvTRz5sxWrVoFBQUVFBTs3r07Pj4+Ojr60Ucf/fHHH6sfNX/+/Kqqqtrnyc/PT01N1Wq1SUlJixcvfu211xBC5eXlL7300owZM8LCwuzc79Ae0CJ0dweKycw9XJwGn5ggCoP1J0F9aIzmxFP3RuFZe7nUX/mvBtApQfBpyVsQUvLZy8Skd83V6MCwwIdfqf0vdy66bTQaly9fHhMTU33A0qVLEUJarVYul69cuXLy5Mn1nvmtt96aPn36v/71L4TQ8OHDIyMjX3/9dYSQ2Wz+7LPPOnXq5MyndRcQhO7LzKHXjnDfX+aX9Kbvi4a2O7iLCAXedA/z/SV+1Fb2sU7Ua8k0TDf0Bhj7T5hFbC6aYk9J7z4HS6VS1aSgVqudMWPGkSNHgoOD9Xp9I/Pcs7OzS0tLf//99+pvrVZrfn4+xlgulwubggiC0G0dKyUP7uK6BOCTE0RBsEwaaLJpHai01tQTe7mev7HfDqK7aKBp6PFEYZFCl3Cb2utiL1q0SKFQ5ObmYow3bdq0cOHChh6lVCpnzpyZkZFR8y9qtTovL0+QVbbrgE+Mbocj6L/Z/Iit7KvJ1I9DaEhB0FxhMvTbUHpuPDVkM7voFNxQCuyl0Wgamj5RXl4eEhKCMeY4buXKlY2cZPTo0d9++61EItFoNBqNxmg00jTdyPGuBEHoXvL1ZMhmNrOAP3ovM7U9/HZAy82IpQ6OY9bn8sN+Z2/W3RIHgGaYNWvWv/71r/bt2y9ZsqTOjx577LHvvvsuLS0tOTk5ICCgkZPMmTMnMTGxQ4cOQ4cOTU5Ovu+++5xZcvPAottu5JdcftZf3HMJ9PwEmCB4dz6y6LadOILePM4vP8d/2Z8eEeElf1Ww6LYgqocA71x022g0Xrp0KTIyUqlU1iy6bTQaZTIZxthisdA0XTN2qNfrr1y5EhQU1KpVK4QQz/N1ztYQWHTb+1k4tOAQt+Ua2TiMSQ32kncr4A5ojN7oRqW1wtN2cZPb4f92pxnoaAAtUtPqqJNbcrm8a9eu1V/XLLpds3x27V18q09SczBCiKKopqSgs8FrQni5OtJvI1tgREfvhRQETtEvDB8bz5ytJIM2szdgp18AbgdBKLDfr5FeG9hpHaif0mCrOeBEgRK0YRgzOpJK/Y3dUQBZCMA/oGtUMATdGrxZl870DYWGIHA6jNCLiVSPYPzALrZ6KFroigBwCxCEwtDb0PTdXLGJHL6XgfVigCsNaYUPjmMm/MkdKyVf9adl8B4AfB58JBRAro702cgGS9GOUZCCQAARCpw1hmEw6r8JhgwBgCB0ub+KSJ+N7OOdqC/6wQpYQDBSGn0ziJ7cjuq1gTtSClkIfBp0i7jU6sv8cwe4bwYxw1rDoCAQ3oKuVCd/NGor+1lfekIUfC4THkVRPM93795d6ELcTlVVVUJCgpNODkHoOv85zq+8wGeOZOJh+UfgNsZEUn8Mx2O3cbk69BzcPiM0hmHOnDmj0+mELsQdRUdHO+nMEISuwPJo1l/c8TKyfywMCgK3kxyI942lR/7B5RvIop40rGokrNjYWKFL8DnwAdDpjCyasJ27biC74NYY4K6qb585UUam7uQsnNDVAOBaEITOVWlFw35nNRK0YRijFAldDQAN8xejP4YzPEGjt7H6pi73C4A3gCB0oiITGrSJ7RGMVw2kRfA/DdyehEZrhtDtVDhtC1vujss+A+AU8PbsLNcMZMAmdmI0tagXDWMuwFPQGH3ejx4UjgdtZotMQlcDgEtAEDrFVR0ZuImb1Zl6LRn+h4GHwQi924POiKYGbmKvw3R74APgbdrxLmnJoM3cwq7UM13gvxd4qleTqcc7UYM2c/l6yELg5WD6hINd0pK0LdzrydQjHSEFASKsjVj/Hm3jOd7yz1bxvFH/z2EWE+Jv3azJWy2IvXWzCuFsxGK+9TXhibnWw00GRAhCiA4IkSf2o5SO39TtuQSKodCgzdzOUXRbJXTwA68FQehIV3SQgu6IKy82nz+KCCEcS6y3cgURwpsMNcfwpttiiXDsra9tNmKrSTK2ViwRUvvhZgMi/N8PN9c8HDMiLP57Y1JMUdJ/NlWn5Mqar7FEhij61r+LJYi5dYcxpkVYIv37IHzbw2UKhDFCyHolR7tplTgyVtZtoCyhb+3T2m9uPIUQStvC7RpFt1FAFgLvBEHoMPl6kraFezkJUtCNcOXF2u1rTCf2SuN7YkaEaQaLa+VKrcxgAkKrcwUhhCUyTN96aWCRCIv+TjKKqYkljDGW1YolqQJh6u+HS2se7hrEZjXnHDQe2131y3Jx+wR5twGyLr2xxDGzVufGUxypzkImXO6QUwLgXjAhbjQAwLKsTCaz2Zo6iUmv1yuVjvz822I3jWjgZnZ2HFX9CRq4gE6nU6lUDf2UqyjW7VxnPLpTnjJYNXQKrdK4sjahEJvVcuGY4XCm5dxRcfsEeVJ/Wde+DknEt0/w31/id41igqR3P9jZCCFGo1GhUNz9UOB1zGYzwzAM48jPmhCEDlBuQYM2s1PaUS8nQQq6TkNB6JsRWAdv0ptPHzBmZ1kvnxK3T1CkpksTetvZTn3lCLftOskcxaiFXhoCgtCXQRDW5Q5BaGBR+ha2fxh+rwctbCW+5s4ghAi8E2/Umc8cNGZnWXPPSuNS5Un9JZ26tzgRn97Hna0gW4YzUkH/2CEIfRkEYV2CB6GNR+P+ZMNl+MsBMGve1WoHYU0EKnoNV6VNouQNdpn6LK6qzJSdZczOYouvVSeitHMPRDWvD4MnaNouzsqhtWm0gH/xEIS+DIKwLmGDkCD08G6uwoLWp9MM9Im6XHUQcuXFul0Qgc3AVRSbTu4zZmdxFUWyrn1lSQMk0XE1NwrdlZVHo7ayMWq8rK9grUIIQl8GQViXsEH46hEus4BkjmTkcO+tELTXrvKH/4AIbDFbUb7p+B7j8d3EapEl9JYlDZC0i2/KA7U2NHATm9GOeilRmA+AEIS+DIKwLgGD8Kvz/Dsn+P1j3eImOl9T3Qo0HNmh7D0CItB+tsI8U3aW8cgOzDCypAHy5IFMaETjDykwkj4buHdSqSntBchCCEJfBkFYl1BBuKOATNvJ7hnNxPjByKBL1e4IxT1HqEPCha7Iq9gK84yHM41HMimZQpY0QN59CBPUqqGDT5WT9N/ZX9KZPqGufhVAEPoyCMK6BAnCC1VkwCZ2bRozIAxS0HXuHAtsfB4haDlCLFdzTNl7TMf3UAqVPDVd3j2N9gu888Ct18nMPdxfY+golUtfCxCEvgyCsC7XB2GlFfX8jX0hkZoZC7fHuEhDt8NAEDodz1tyz5qy9xiP7WaCW8uT+su6DawzKeWTM/yX5/m/xrh032kIQl8GQViXi4OQI2jUVjbOHy/qBVMGXeH2CMyos4omBKHLENZmOX/UmJ1lPn2QCWsrT+ov7z6EUqirf/r4Xq7MjH5Od918CghCXwZBWJeLg/DFw9zRUvL7PQxMlnC2xiOwGgSh61Uv4WbMzjKfOSSOjqtews0mkg3ZzN7TxnW7b0IQ+jIIwrpcGYQ/X+VfOMQfupcJlNz9YNBit5bJzt6j6D2yoQisBkEoIGK1mHMOGQ5vr17CzRbXf2Bur8UDFKMiXNEshCD0ZRCEdbksCM9VkoGb2T+GM8mBcIOMs7DlRbrtPzYlAqtBELoD3qg3nzlgzM4yXTqVqUgeNDK9bXKqszffgCD0ZRCEdbkmCA0s6vErO78rNQNukHGO5kZgNQhCt8IbtBv/PEifyEy2XJbF95An9Zd2Tq3ZZNGxIAh9GQRhXa4Jwum7OBGFvhoAN8g4XssisBoEoRuavIOL4kpfE++vWdRUkZouiUlq+hJuTQFB6MsgCOtyQRB+fYFfdIo/OA7WUXMweyKwGgShG9LaUPdf2TdTqIx2FFdebDrV8kVNGwFB6MsgCOtydhCeqyQDNrG7RjNx/jA06DD2R2A1CEL3dKyUjNjKHhjLRP89y/7WEm7HdhHWKuvSW56aLo6IsecSEIS+DIKwLqcGoYVDvTawT3WmHusEQ4OO4agIrAZB6LYWn+Z/vsrvHlV3otHfi5pmYkYkSxog7zaICWnTgvNDEPoyCMK6nBqE8w9yV3VoXToMDTqAYyOwGgSh2yIIjfiD7R1CvdGt/g+R1msXjYe3m7KzKLlSljRA3j2NCWrGsrEQhL4MgrAu5wXhzptk+i4uewLMGrTXbRGYnkHJHPb7giB0Z4UmlLze9stQpldIw8MKfy9qajy2m9EEy7unyZIH0OqAu54cgtCXQRDW5aQgrLKixPXsF/3oe9rA0GDLsWWFusy1zojAahCEbm59Lv/SYf74+CbcaMbzltyzxiOZpuw9TGhbeVJ/ecogSunf0OEQhL4MgrAuJwXhzD2clEYCbsDt6diSG9ptP5jPHlb2H6ccOI6SOuUNC4LQ/U3fxflL0JLeTX0pEZvVfPaI8fguy9mj4vZd1PdME0fG1nMYBKEPgyCsyxlBuPkambuPOzHBpavpe43bI/BeSip33rUgCN1fpRUlrGO/HUQPCm9e5wqxmo3Hdml//1bSsZvfqIfrbAIFQejLIAjrcngQVllRwjr2m+a/boGzO0LvBEHoETblk2cOcCcntGQmLrFadDt+0mdtUPQarh42FUtkt/4dgtCHQRDW5fAgfGIvR2H0GXSKNgdbckO7bbX57BHlgHuVA8Y5tRVYGwShp5i+iwuWoQ97tvBlxZUXV2780pp3zm/0THnyQIQxBKEvgyCsy7FBuKeQPLCTO30fo4ZO0SazFeWXLJmvHDjelRFYDYLQU5RZUJefbRuGManBLe9osVw5U/XLF4hh/Mc/KYqIgSD0WRCEdTkwCC0cSvqFfTuVurctTJ9vMp4r/ug5Ra97FH1Guv7iEIQe5PtL/Ien+EPj7NvLkxDTib1VG74URcaK06ep2kQ5qjzgQZwRhI45l8lkWrZs2YULF7p37z5z5kyartsHsmbNmry8vOqvAwICHnvsMYdc14HeP8l38sOQgs2i3fYDJVMoeo8QuhDg7qZ1oP53kf8kh3+2ix0vMYxlSf2lcT20mWu1yxbwvUfUHjgEoMUc874/ceLE7du39+7d+8svv5w7d+6dB6xYseLAgQMVFRUVFRVardYhF3WgKzry8Rnu496Qgs1gu3FZv3ejZuqzjt1YAHirpX3ot7O5AqO9XVBYLFEPf0A9+0NOW1b49mPGw9uRO3VrAU/kgK7REydO9OvXr7CwUKFQ5OXlderUKT8/Pzg4uPYxaWlps2bNuu+++xo/lVBdo2O3cf3C8MKuEIRNRVhb8YdzVOkZ8pQhQtUAXaMe5/Wj3EUt+mGwvTej1dwsY82/UPnL54hj/cc/IY6Od0iRwM05o2vUAW/9f/31V69evaoHrtu2bRsREXHkyJE7D9u0adMbb7zx008/sSxr/0UdaPM1clFLnrGnx8b3aH//hgkKFzAFgSd6KZE+UEx233RYA04cGRsy90PVkEnl375XtuotrrzYUWcGPsUBoVpYWBgUFFTzbXBwcEFBQZ1jEhMTZTIZRVH/93//98knn+zYsaOhPOd5fuLEiTXfDh06dPr06Q1d2mg0UpRdAWbl0bP7Re+ncKzZ6l757MbY/POGQ3+q5ywyGo0ClmEyme4cjQZu7s1EPOcv/q8RLG1Hh3p1ixDX9MnHpqjmdrEc2FL44RxJyhDZ4Ptg4NCLNbdFKBaL73qwA4JQLBbX7sy0Wq1SqbTOMYsWLar+Yv78+bGxsRs2bJgwYUK9Z8MYZ2Rk1HwbGxsrkTS47rXNZmvkp02x7DSJ9SOjo2DCRFMRq0W77lO/CU9JA0OFrcRqtdr52weuNyUGrbjEf58nfqxjy5OQEMJx3G2/fYlEOnSKssdQ3ZZV2o/nKdOnyHsNh9Frr0QIaVYQNqWx5IAgbN269aZNm6q/JoTcuHGjdevWDR2sUCji4+Pz8/MbOgBjPHny5CZemqZpe9oEpWb03ilb1hiGtufTqY+p3Py1OKqzInmA0IXY+9sHQvmoNzVyK3t/TMsn7BJC6v3t0wEhgQ8srB44NB3aBgOHXon+mwPP6YCBsZEjR548efLSpUsIod27d3Mc16dPH4TQ+fPnDx8+jBCy2Wxms7n64Ly8vEOHDiUmJtp/Xfv95zg3pT3V0Q9SsKksF7NNp/f7j39S6EKAB0sKxMPbUO+e4Jx0/joDh2x5kZMuBLyGA1qEoY6DmToAACAASURBVKGhL7300sCBAwcMGJCZmfn++++LxWKE0DfffHPy5MmNGzcWFxcnJCT07NmTYZisrKyHHnpo8ODB9l/XTpe0ZPVl/ux90CnaVLzZWP7DIs3keQ7ZVhf4sv+kUInr2VmdqTYK53wM/XvGoT7rt+JF8xQ9h8GMQ9AIh60sc/bs2fPnzyclJUVFRVX/S3FxsdlsjoyMRAhdu3bt1KlThJAuXbq0bdu2oZO4cvrE1J1cFw1+JQluFm2qitUfYpHEf9JsoQu5BaZPeLSXD3PFZvRl/5Z0cDVrrVGuqqxq00rLxRPqYfcreo+AgUNPB0us1dXiIMwuI6O2chcyGIUj/zO9mfnMgcr1n4cu/Mx9PlZDEHq0SiuKXWvLGsO0YGyiBYtuW/MvVP7yBWJtfuOfkLSDgUMP5qbzCD3Rq0e4l5MoSMEm4g3airWfaKY+7z4pCDydvxg9n0C/fpR3zeXEkbEhcz9QpU2q+P59GDgEdfhiEB4oJqcr0KMdffG5t0zFz5/KUwZLOiQIXQjwKrPjqaxC/mS5qzqlMJYl9Q994QtxREzxonlVG1cSi8lFlwbuzRfD4I2j3CtJlARuvG8a47FdtoJc9YgGlzUAoGUUDFrYlf73MRc1CqthsUSVlhG6YClv0he+/Zhh3xZYqhT4XBAeKCYXtOjhWJ974i3DacurfvkiYNp8LBILXQvwQk90og4UE9c1Cv9G+wVqMuYGPvK64XBm8aJ5litnXFwAcCs+lwdvHudeTKREPve8W6hizUeKvqPEkbFCFwK8k4xBzydQbx53aaOwhjji74HD794rXfEGDBz6LN8KhOwycqIcPRzjW8+6xQwHtnLaMtXQKUIXArzZE52p3YX8uUqB+ierBw5fXC5pFw8Dhz7LtyLh7RP88wkwOtgkXGWpdvOqgGkLMA031wInUjBoThz93klhGoXVYODQx/lQEF7Skp0FPNws2iSEVKxZrBw0QRQeJXQpwPs9HUdtyONvGATOnpqBQ+ORzOJFcy1XTgtbD3AZH0qFxaf5xztRSlhSrQn0WRt4s1E1eOLdDwXAbhoJejCG+viMkI3CGuKI2OA5H6jSMiq+e790xRtsWaHQFQGn85UgLLegNZf52fHQK3p3bOlN7bYfAqbNR/bt9QhA082Lp1ae53VNXVTKyaoHDl9aIWkXX7z4GRg49Hq+8k73xTl+XFsqDNZFuStCKlZ/oB4+jQlucC8tABwuSoWHtKJWXXCLRmE1LBLDwKGP8IkgtPFoWQ4/r4tPPFk76TLXIkak7Dta6EKAz3mmC/VJDs+7WdbAwKEv8Ils+DWPb69GiQGw6vxd2Arzdbt+CZj6HKzQD1yvTyhWi9DW626WhAih6oHDuR+qh0+DgUOv5BNBuDSHnx3nE8/ULjxX8f37fmMfoTUhQpcCfNTsOGppjrM27LWfNL5X7YFD3mwUuiLgGN4fDzmV5GIVGtfW+5+pnbS/f0epAxU9hgpdCPBdU9pTh0rIVZ07Ngqr1R44LHrnccO+LYh3o3FN0DLeHw9fnOUf6YhhTbXGWfMvGA7+oZk8T+hCgE+T0uiBDtSX5909Wm4NHM58zXB4e/HHz9kKrgpdEbCLl+eDiUWrL8Mk+rsgrK1i9Yf+42fRao3QtQBf93gnatUFwrp7FCKEkDiyY8jcD5X9Rpd+/nLl+s9gioXn8vKEWJ/Ldw/CkUq49aMxVZu+FrWKliUPELoQAFAnf9xOjTZf84QkRAhhLE9ND31xOWFtRe89ZT53VOiCQEt4eRB+fYGfATsuNcp69Ywpe4//xKeELgSAW2bEUl9fcN9hwjtRcpUmY65m6rOV6z8rW/UWr68UuiLQPN4cEvl6cqKcwG0yjSBWc/n3H2oy5lIKtdC1AHBLRjS1+yZfYha6jmaSdOgaumCZKKxt4TtP6nf/CrPvPYg3h8R3l8ikaNhrojGVvy6XdOgqjeshdCEA/EMpQmMiqR8ue0jvaC1YJFYPfyD46XeMx3eVfLLAVpQvdEWgSbw7CPkHYevBhpnPH7OcP+Z37+NCFwJAXQ/GUN9f8rwgrCYKjwqZt1jefUjJkvlVG1cS1k1WUAUN8tqcOF5GLBzqFQK3ydSPN+kr1nykmfIsJZULXQsAdQ1pha8ZyMUqj+1dxFjRZ2ToC59z2rKid5+0XMwWuiDQGK8NwjWX+SntYaGwBlX+vEzWtY8kJlHoQgCoB41RRjvqhyseG4QIIYRodUDAtAX+9z5W/sOi8u/f5w1aoSsC9fPOICQI/XSVTG7nnc/OfqZT+615Z/1GPiR0IQA0aHI76qcrnto7Wps0vlfYi8tpdWDRe7OMh7cLXQ6oh3dGxZESIqZQV1hluz68vqryp08098/HEtiVCrivXiG4yopyKj27UVgNi6V+Y2YGPfZ/+j0bSr94jS0vEroicBvvDMJ1ufx90ZCC9av46RN5z2GSdvFCFwJAYzBCE6Lx+qveEITVRG3ahzy7WNoppXjRXO0f3xGOFboicIt3BuH6XDIhyjufmp2Mh7ezRfnqYfcLXQgAdzchilqf6w29o/+gaOXAe0Oe/diae7b4wznWvHNCFwQQ8sogzKkkVg4lB0GLsC6uqqzyty810xZgkVjoWgC4u76h+IaR5Om9p1FYjQkMC3ryLfWw+8u++nfF2iWwSKngvDAIN+SRsW3hftE7EFKx5iPlwHHiiBihSwGgSWiMRkdQG/O9LQiryZL6h760AjOiwrcfM53YK3Q5Ps0Lg3BTPj860gufl530+zZzugrVkElCFwJAM4yOxBvzvKt3tBZKpvSfMCtg+otVW74pXfEGV1kidEU+ytsCo8yCTleQgWHQILwNW1ao3fJNwAMLMM0IXQsAzZDemjpQTAxefVuJpF2X0IXLJO3iiz6Yo9/9K+z063reFoTbrvODwmF90dsRUvHDh+phU0VhbYUuBYDmUYlQ92C8s8A7e0drYJpRpWWEzPvQdPpA0aK5tuuXhK7It3hdEN4g97SB5uBtrHnneH2VcsC9QhcCQEsMb0P9cd0nGklMcOvgp95W9h1V8vmr2s3/Izar0BX5Cq8KQoLQnzfIsNYQhLfhLSbaLwjB/UPAMw1rg7fd8PIW4T8wVvQeEfrCZ2xlcdG7T8BOv67hVSNGZyuJmELt1fCOfzuORTA0CDxW1wBcZSX5ehKp9JWXNq3SBExbYD57uHLtElFkrOa+2ZTST+iivJlXtQh3FJC0Vr7yUmk6wtowIxK6CgBaCCM0pBW1w9uHCe8k7Zwa+tIKUVjbwneeMOzbAjv9Oo9XBeHOAjIYgvAOhLVhBlqEwIMNCse7C30xBm7t9Dvrv4aD20o+XcgWXRO6Iu/kPUFIEMoq5GHiRD1YG6KhRQg82KBwvOumLwZhNVHrdiHPLJanDC7+ZIH2j+9gp1+H854gPFdJ1GLcWgFBWBfhWOgaBR4t1g+bWHLN4LtZeGun3wVLbTdzi9590nLxhNAFeRXvCcK9haQP7EdfH8KxMI8eeDSMUN9Qaq9P9o7WRvsFBs541f/ex8pXf1j+/fu8USd0RV7Ce4JwXzHpC/2i9YGbZYAX6BuK9xX5ehBWk8b3Cn3hM0qmLHr3Sdjp1yG8JwgPFJPe0CKsF2tDEITAw/UOxQeKIQhvoaQK/wmzAh9+Rbfj59Llr3PlxUJX5Nm8JAgrrajAQOI1EIT18PSuUVvBVdvNXLbsJqet4I16WInRNyUH4rOVxMwJXYc7EUfHhcz/VBzduWjRHP3uX+Cl0WIe/P5Y25ESkhyEacjBerEsEnvkBoTEZq1Ys9hy5QwllROrhVjNhLPxJgNCiJIpCKYNUjkWibFIjKVyTNFYpsA0gyUyLBJjRoylMkzRlEyJaJqS/H2kREarA2hNiNBPDjSPlEad/HF2GekFHT+1YJpRD50qTx5YsXaJ8chOzeR5ojbthS7K83hLEJaSFNiJtwGEs1G0Qugqmo2rKC796v9E4W3DXv6y7k7ChPAmg66qQiFmiNVCWBsxGwnPEZOBcDZiMRObhbA23mwkPMeWFSKO5S0mYrMSm5VYTGxpgWbqc7IuvQR6ZqCFUoLwkVIIwnowQa2CZ71tPJJZuvxVecoQ9YgHsVgqdFGexEuC8FgpuTcKXh7188SbZSxXzpT/77/KAeNUaRn1/BhjSq6kOMKoVC04ue36pdLlr/GGKkXPe+wtFLhQtyB8EIYJG4KxPDVdGt+ratPKwrce8Z/4tKxrH6Fr8hheMkZ4vIwkB0IQ1s/jgtCwb0v5qjc19z9ffwraTdSmQ/DT72n/+F63a70zzg+cJDkQZ5dBEDaGkis1GXMDpr9Ytfnr0hVvcJWlQlfkGbwhCA0sKjCSGFhruyGes+g24diKNR/pszYEz1sk7djNeRdiQiNC5n5g+Gtz1caVzrsKcKwEDT5fRWxwR8jdSNonhM5fKo6IKfpgtn73r7BI6V15QxCeLied/THjDU/FKQjLesRao5y2vOTThbxJH/LMYiYw3NmXozUhwXM/MJ87WvnL5/BO4RFkDIpQ4AtV8Mu6u1uLlD79jjF7T8knC2yF+UJX5Na8IT3OVJIuMHGiYR7RNWrNP1+8aJ60c2rgw69gicw1F6VVmuDZ79quXSz/YRHi4cZ8D9AlAJ+pgCBsKlF4VMjcD2Upg0o+XVCxdgmnLRe6IjflDUGYUwEzCBvj/kFoPLqzdPkb/hNmqYdNdfEGwpRMGfTkf3ldZelX/4ENwd1fvD/KqYQgbA6MlX1Hh738VfVKNFUbV/ImvdA1uR1vCMKzlaSzPwRhwzg33n2C56s2rtT+8V3w7HeFuskNiyWBj75BiSWlX7zKm42C1ACaqKM/PlcpdBEeiJIr/cbMDF2wjDfpC996VJe5Fj721eYNQXi+CsXC7s0Nc9sWIW/Qlnz+iq3gSsizH4vC2gpYCaaZgOkvilq3K136Im/QClgJaFwnP3wOWoQtRfsHaTLmBs95z3rtYuFbjxj2bYHFaKp5fBBaeXTDQKJV0CJskHsusWYruFq8aK4oLDLosf+j5Eqhy0EIY//xT8qS+hUvmQ83nbutGD98UQu3NtlFFBoZ+PArgQ+/Yjy6s+i9J03ZWUJXJDyPD8JcHWmjwCKPfx7OxNqQm901asrOKln6gnr4A/4TZiHKjX55qrQMZd9RJZ/MZ0tuCF0LqIdKhNQidNMIUWgvcVSn4Dnv+0+Ypd22uvijZy1XTgtdkZDc6D2oZS5rUbuWrC7iQwjHYvcZIySkavOqqg1fBj/1tjw13c6TsSU39Ht+s9244pDSqikHjFOlTy75dKGt4KoDTwscpZ0aX4beaweRxCaHzl+q6DW8/Jt3yr5+ky2+LnRFwnCvhkILXNWRdjCVvlHuM0bImw3l37xLrOaQ55ZQypaP67LlRabju3VHduiNOmmnFF3mWiY0UjV4orRTikNuOlX0HkHJlKWfvRz4yOviqM72nxA4ULQK5+pJilroOrwGRSl63SNPGazf82vxkudlXfuqhz9AqwOELsulPD4I8w2krRKCsFHusbIMW3KjdMUb0o7d/Mc/gSi6BWfgqspM2XuMx3ezpYXyxH6yETM0CT0QxoRjTcd2VW1aWbXhS+WgCfKUwfYHvyypP5bKS7/8d8ADC6SdUuw8G3CgKCXKhY3ZHQ2LxKq0DEXvEbrtPxa9+6Siz0hV2iRK6nmL9beM8O+PdsrXo66RQhfh3tykRajLXCtPHqAeMb25D+T1lcbsvabju22FebIuvdXDH5TGJiGK1ul01e0/TDPy1HR5arr5/DH9znXazauUA8Yp+oyk5HZ1mks7pQQ98nrZyv/43/eULLG/PacCDhSpxIdLYIzQKSi5ym/so8oB47S/f1v45iPq9AxFvzHu8O7hbB4fhNcMJELh8SOdTuUmQWi7mdes3R54k958+oAxO8t6+ZS4fYKy/1hpQu/Gb3+Vduwm7diNLbmhz9pQ+J8Z0i491UOnMiFtWlyzODou6Ol3Sj9/lTfqFb1HtPg8wIEiFPiXXLjp34lo/2DN1OdURdeqfv9Gt+sX9bCpil7D3eqmNofz+CAsMKBWcqGLcHPu0DVKCFuUz4Q1qfFuu3656vdvrJdPSzp1U/QYGvjwK3X3I2wUE9zaf8IsVfpk/Z7fij9+TtIhUTV4ojiqU8sKF4W1DZ79bulnL/Mmg2rIfS07CXCg1gpUAMseOB8TGhH48CuWK2eqNn6l37vRb/RMaVyq0EU5i9Dvj3a7aSKt5DBG2Bh3aBFylSVYIqNkTZgvSEj5msXyboMCp79oz6KjtDrAb/QM9dAphoPbyr99l1IHqAZPlCX0bsHdNExQq+C5H5Z+9hJv0vuNerjFJQGHCJdjmD7hMpJ28SHzFplO7a/asEK3Y63fmEfEbVv4mdKdeXZrt8qGRRjJPD7NnYkQd5hQbyvME4VHNeVIY/YeTNGqwRMdsvQ2lsiUA8aFvfKVatC9usy1hW89Yj53tAXnof0Cg+d8YDl/rHLdMvurAvYIlKBKK4LNmFxJltA7dOHn8u7pZV+/6ZWzLDw7CEvNKEQGzcHGEJ7DFO3ilazvZCvMZ0Kb0C/Kc9ot3/iNmeHggilKltg/5NmP/MY+UrluWcs2XaIU6uCn3zUc+INYLY6sDTQThVGgBJXCL8HFKErR656wV1aKI2OLlzxfsXYJV1UmdE0O4+FBaMFBUqGLcHOsDQndL4oQYgvzROF3X03UsP8PJjBMEpPkpDJkXftSUrn5/LGWPRxLZLR/MFdR7NiqQHMFy3CZBT4BC6B6lsWtvSzem+U1e1l4dhCWWRAEYePcYYAQIWQrzBfdrUVIbFbtttXqUQ85tRJF39H6rI0tfjgTGMaWFzqwHtACgRIEQSigv/eyWMrrKwvfnFn563JPX5LQs4OwwooDJfB6aIw7DBA28ZZR/e5fxO3ixRGxTq1FnjLYmneWLWthmNEBoWx5kWNLAs0VIMGVsImQ0KpnWYQu/IxW+ZcsfaH44+dN2VmEY4WuqyU8OwirrMivGffV+yJ3aBFyFSVYKm/8llHepNftWq8e/oCzi8EisSI13bBvS8sezgSEcuXQNSowfzGCIHQTtF+gKi0j7LVVqoH36vdtKfz39KqNKz1u+MCzg1DHYgjCu3CDSYS2wry7bjeoy/xJ1rXvXbtPHULRd7Th4NaWbUxKB4RC16jg/MRIa4OuIDeCaUaW1D/4qbeDZ7+HECr6YHbJspfMZw607MY01/PwILQRlQheD41xhxahrTCPaTQIOW25Yf/v6mFTXVMPExQujow1Ht/dkscGhHFl0DUqMJUI6WxCFwHqw4S08RszM/z1/8mT+ldt+bbwv4/qMte6/2bXnh2EBhYrhB7/cnPuEITs3VqE2q3fK3rdQ/sHu6wkZb+x+j2/tuCBMEboDuQMMnJCFwEahiUyRZ+RoQuWBkx/kS0rLHxrZtmqt6xXzwhdV4M8OwhNHFYIf0eke2Ntbt41ypbcMGVnqdIyXFmStHN3YjFb888394G0yp9YTcRqdkZVoInkDDJ55D0ZPkccEaPJmBv22ipJdHz5dx8UfzjHsG+LG87E9ewgNHNI2pL9fHwI4Vgs7Pb0hNiKrjFhEQ39XPv7N6pBE+zcKaLZMFb0GdmSeRQY0xpoFApMziATB2MiHoOSKZUD7w17daV6xHTT6QM3//1g5a/LrVfPIN5d1gdyTBAePnw4IyNj+PDhS5cuJfWNjpaVlc2dO3fo0KHz5s2rqKhwyEURBGETENaGGSFvKOIqSiiZoqGNzWzXL1sun1YOvNfFVSGEFD2Hmc8c4PVVzX0gExDKQRAKSkwhq7u8hYImw1galxr0+P+FPP8JJZFV/Lys4LUp5d+9Zzy+W/BZ+Q4Iwps3bw4dOrR///4LFy785JNPli2rZzHGyZMnl5eX//vf/y4tLZ08ebL9F63GEiSi4INho4S+a7TxflH93o3K/mOxWIBlESi5SpbQ13Dgj+Y+kIFhQqFBEHo0JiBUPeLB0AVLQxcslUTHGw9nFv57esnSF3Q71wk1Md8Bb5ErV64cOHDgnDlzEELvvPPOwoULn3766doHnD59ev/+/SUlJXK5PCkpKTg4OCcnJy4uzv5LszxiPLtz1+kEv1mm8VtGRWGRNuHWpFD2H1O68v9UQyY1a681GlqEQmMoxEIQej7aP1jRd5Si7yhitVguZpvOHCxZ+gIWSaTxPaUxiaKIWFqtcU0lDgjCY8eO9enTp/rrPn36XLx4UafTqVSq2gckJibK5XKEkFwuT0xMPHbsmEOCkCOIhgZhowRfWYYtzBO369LQTyWdUuxZ8MxOojYdaHWg6cxBWULvpj+KCQg15l9wXlXgriiMCIJXvvfAYok0vqc0vidCyHb9sinnkD5rg/XaRSwSiyNiRZEx4ohYJrgV7R/spHczB5y0qKhIo7mV2wEBAQihwsLC2kFY+4DqYwoLG5ySzHFct27dar4dP378s88+29DBLEeZTSa9Hj4cNshq0LMI6/WCdcFbCq5SyUMaLEAZyNss2vxLVEBYc89sMBiw3ZtUMKlDtbt/5aITmv4QTq62ld4U8L8UcFaK45BeD6vLeCP/UKrPGGmfMVKE+Ipi7sZly41Lxj9/5MtuEn0lVvghuVpyz4OSDk19zUqlUuZuNww6IAiVSqXJZKr+2mg0IoRqp2D1AWbzP7ebG43GOgfURlHUihUrar5t1aqVUtng0lwMbZHKxEolfDZskIGmsFTWyP+hcxFSVXJDFd2RksobOsTWuTuVf04Z2aH55yb2Py/SI73gl8/kDG7odp478a2jDZXFgv2XAoQkEp5hWKUSlpXydkolimiH0NDq7wjH8tpyc0WpOKytSN7UF2xTOCAIIyMjr1y5Uv31lStXZDJZcHBwQwdUH9O2bYODRhjjlJSUJl6awoj3jBV8BCPsGCFbUUzJlI2kIEJI0rGb6fgeZb/RLquqNmveeSaoVdNTECFEKf2IzUosJodsHQxawAYve5+EaYbWhNAytcOnhDngVpMpU6asW7eurKwMIbR8+fJJkybRNI0QWrt27bFjxxBC6enper1+27ZtCKGtW7eaTKYhQ4bYf10EY+ZNQFibgGOETdmGUNqxm+XSSaEWrTce2S7vMbS5j2ICQuDGUQFxBFEIshA4jAPeIgcPHjx27Ni4uLjQ0FCbzbZ169bqf//444/Hjx/frVs3iUTyxRdf3H///dHR0bm5uStWrBCLHdOnQd/6bAhdow3jOQGnT3CVpVgkafwYSqFmglpZ885JGr6nxkmIzWo6uS/0xS+a+0A6IIwrLxSFRzmhKHB3Nh6J4HZx4DgOeIvEGC9btuz111+vqKjo2LEj9fed6Dt37qxuGiKEJkyYMGzYsNzc3OjoaIXCYX27EhqmE90NIcRkEOrism6DtNt+sFw+JWnf2Mi2pFM3y7mjrg9C06l94shYWh3Q3AcyAaEsLL0tHAuHJLCSBnAch32sCgsL69y5M1VrPpZYLK4JQoSQUqns0qWLA1MQISSlkRnW3m2UvOcw44m9toKrglydksr9Jz5V8ePHje95JO2YYj53zKmVcFVlul3r6/yj8UimPDW9BWeDqYTCsvBIAi1C4Die/dckpQmsvds4Wh3gN2ZmxQ+LES/MRwZZQm9ReJTuzx8aOUYc3Zktvs4bdU6qgXBs2ar/Iva2nXs4bYU196wsoU8LTsgEwuIyQjKySErDGCFwGM8OQjmDDBCEd6PoOYxSqHQ767aHXMZ/4tP6fVtsN640dACmGXH7BMuFbCcVULVxJSVT1NngwnhspyyhLxbfZQizXrAZk7AMNgT7rwEH8uwgVDIE9udsCk3GPN2On2yF+YJcnVZr/EY+VLF2SSOLzUs7JpvPHXXG1U2n9ptO7g2YNh/dPvveeDhTnprWsnMyAWHQNSogAwdBCBzJs4NQLcI6G/SQ3B0dEKIe/kDl2o9RfXuDuICi9wjMiPR/bWroAGnn7ubzxxxeHltyo+LHjwNnvEop1LX/3VZwlTfpGr+FpxGUQk04ljcLdheSj9NakRo2IgWO4+lBSCrcbotHN6XsNwYhpN8r0MKeGGsy5mq3fs9VltT7cya4NRMUXrJ0oQObrcRqKfv6Tb8RD4ojYuv8yHgkU5GShuxYoY0JCOXgxlGBVFqRnxg+AQOH8ewg9BeTClhusIkw1kx9TvvHd2zZTUGuz4RGKPuPq1i7pKEDgp96R9HzntJlL1Su/4xYTPZfsfLnT0VhbRV9R9X9ASHGY7vk3e1a1YEOCINhQqFUWIg/tAiB43h2EAaIUbkZPhg2FRPcWjVkUsUawTpIVekZXHmxKTur/h9jLE9ND31xOWFthf991Hh4uz3XMuz/3XrtombKM3f+yHzuKO0fxIRG2HN+JhBmUAimzII00CIEjuPZQRgoISXmux8GaqgGTyQWo+HQn4JcHdOMZuqzlb98zhsb3LqBkqs0GXMDpr+oy/ypdMUbbFmDG5U0wlZwtWrzqoCHX653y1/jkUx595ZMH6yN1oSwFcV2ngS0TKkZBQmwlzPwWp4dhEESVAItwmahKM2UZ6s2ruS05YJcX9y2kyyhT9WGLxs/TNI+IWTBUkl0XPGiubo/1zRxJVJiNVsun9Lt+Lnsy39pJj4tCo2s5xiLyZxzWJ48oCXV18IEhnEtCmlgvxIzgSAEDuTpQUgqLIiDKGwOUatoZd9RlT99KlQB6tEzzOeOWi6davwwTDOq9Mmhz39qzTtX9N4sy8X6ZhnynO3GFcP+3yvWfFT03qyCV6dUbVzJVZb4TZglayDqjNlZkpiudW4ibQFM05y+0s6TgBYwsIgnSMXAyx44jGdPxmEopJGgUjMKhf1wmkM1bGrxB7ONx3fLkwe6/uqUVK7JmFvx40ehCz/Dorssv04HhAQ++i/zmQMVPyxmwqM0k+YgjG3XL1qvXTJePavLP0/JVeJ2ceI2MfIeQ8URMXc9ofHwduXAs0eXwAAAIABJREFUe+18CoS1VW1cqR75kJ3nAS1w00jC5bDOPnAkzw5ChFArOb5hIKEyeGE0Q/VYXdmX/5bGJtvfNmoBaVyq6NA23bYf1KOalCXS+F6hMcnabasL35pJyVXiyI7ith0lfUb5zXil8c0O62BLbtgK86RxPVpa+C26rauZ0EhZ1752nge0QIERtWrG7xyAu/P4IGyjwNcNpFsQBGHziCM7yrsPqVz/WcCDLwhSgP+Ep4remyXrNrCJmxlhscRv9Az1PdNq2nw6na7pKcgbdbodPxv2/66+Z5qdGzTablzR7/89dOFn9pwEtNh1A2mjgNc7cCTPHiNECLVRoGuwvkeLqEdMt+ZfMJ3aJ8jVabXGb9RDFT8sbmTdtTvdtefzTsRi0mWuLfzvo1xVachzHysHjGvuGW7DcxVrPvIb+wit1th1HtBS1/QowpF72ADg+UHYVonz9DBs3hJYJNZMfqZy3WdCLRWm6DUci8XazB8J65QVY4nVrNv+483/zLAVXQt59qOAaQuYwHA7z6nbuZ5SqBQt2rwJOESenkAQAsfy+K7RKBU6Uip0ER5L0iFBFt+z6rcvNZPnCXB5jDWTnylf/aE+8ydxu3hpxxRJp271znloLmKzGv7apNvxk6RD15A579s5d74GW3JDt/PnkOeW2LM2G7BTrp6MjPD4T/DArXh8ELZT4Ss62KW+5fzGPVr07izzuaPSTimuvzoT3Dpk3iJiMVnzzplOH9Avf51YLeL2XaSxydIuvVqwdzzhWOPBbdqt3zOhkUGPvylq095htRJS8dMn6mH3MwGhDjsnaL7LWtROJXQRwLt4fBC2V+PLWugabTkslmomz6tYszj0hc+xRJhpKFgik8QmS2KT0YRZbNlNy/nj5gvHqzZ9zQSGSWKTpR2Txe26YOZui0sSYjqxt2rTSjogLPCRN8SRdRfatpN+32ZiMVevXQ6EwhGUryfRKszDavvAcTw+CAMkiMGo2IRCYCphS0lik8TtE6q2/M9//JNC14KYwHCmT7iiz0jE89Ybly0Xjmu3r7XlvymKjJV2TJbEJosjYuo+pjoCN6+ilP6aKc9KOnR1eFVcVZn29++CZ7+LKOiUE1KenoTKsJRGRqErAd7E44MQIRTrh89XkRCYSmgH/wlPFr07S5bYX9IuXuha/kZR4ogYcUSMKi2DN2gtF0+YLxzXf/0fxLKSjsmy+F6kVQekVJpzDlZt+RaLxJpJcySxSU6qpfLnT5UDxonC2jrp/KCJLlShWD+hiwBexxuCsJM/Pl9F+odBELYcJVP6j3+i4sePQxcsvXsnpMtRCrUsqb8sqT9CyFaUbzl3zHBom+XyIoNMQasC/EY/LO2c6ryrG4/uZMsKAx5+xXmXAE10rpJ09odXOnAwbwjCOA3OqYBhQnvJEvsZj+3Wbv3eb9TDQtfSGFFopCg0UjnwXm1FucyiE4VGOvUeTl5fVfXb8sDH/m3nNHzgEDmVJDkQghA4mDcMeMT74zMQhI6gyZhjPLjNeu2i0IU0CWZEorC2zp7JULn+M3lq+p173ANBnKkgXTQQhMDBvCEIuwSgUxCEjkAp1H5jHqlYs7iJ2x55PXPOYeu1i+rhDwpdCEAIIYLQ6XIIQuB43hCEEQps4VCxSeg6vII8NY3RhOh2/CR0IcLjzcaKtUs0k+a0YF034Ay5OuInxhqJ0HUAr+MNQYgQSgzA2eXQKHQM/0lz9Lt/sxXmCV2IwKo2fCmN7+G8O1FBcx0vI4mBQhcBvJGXBGFyED5WCkHoGLRfoN+IB5u7HLaXsVw6ZT5z0G/0DKELAf/ILiPd4E4Z4AReEoQpEIQOpegzEktk+qzfhC5EGMRmrfjxI//7ZlMypdC1gH8cKSUpsOEacAIvCcLUIHwYgtCBMNZMnqf980e2tEDoUgSg/f0bcWSsLKG30IWA2xwpIanBXvKWBdyKl/xVdfDDWiuB+2UciAkMU6VnVKz5CBHf+oRhu3HZeCTTf/wTQhcCbnNVRyQ0Doe96YETeEkQYoR6BOMDxb47puUMqoHjCccZDvwhdCEuxHPlPyzyG/c4pfQXuhRwm/3FpFcI9IsCp/CSIEQI9Q6l/iryrbaL02EcMOWZqs3/4ypLhC7FRbR//kirA+Qpg4UuBNS1r4j0hiAEzuE9Qdg3FEMQOhwTGqHsP7Zi7RKhC3EFtvi6PmuDJmOu0IWAevxVRPqGQhACp/CeIOwVgk+UEzMndB1eRz10MqetMB7dIXQhTkZIxZrFfiMepP2DhS4F1FVlRVe0pBvcMgqcw3uCUMGgLhp8oBgahY5G0ZrJ86p+XWHYt4U36oWuxln0WRsQphR9RgpdCKjH3iLSIwSLvOftCrgXr/rLGhSOd92E+2UcTxwREzD9RcvFE4X/ebjs67fMZw542WKkbHmRdttqzZRnnL2EN2iZXQX8wDCverMCbsWrdpYZ3Ip68zj3r25C1+GNJDGJkphE3mwwn9qv2/1b+epFssR+8u5pbrSRrx0q1y5RDb6PCW4tdCGgfpkF5NM+EITAWbwqCPuF4uwyorchpdvtLOslKKlCnpouT01ny24aD2dWrP4AM2J5apq8exrt55GrQPIGrT5rA2/QqgZPELoWUL9SM7qiI6nB0FgHzuJVQShnUGow3l1IRkXAa8a5mMBw9fAH1PdMs+bmGA5nFr03S9ymg7x7miyxLxZLha7u7nh9lenkX6aTf1lzz0o6dgt48AVE0UIXBeqXWcAPDKdggBA4DybutG4Iy7IymcxmszXxeL1er1Tethrkeyf56waypDe8qbkUYW2W80cNhzMt545KOqUoUtOknVOdHS06nU6lUjXrIbxBa845ZMzOsl4+JW6fIE/qL+vaF0tkTqoQOMQje7huQfjpuH+SkBBiNBoVCoWAVQGhmM1mhmEYxpGtOG8LwhPlZFImd2GSV7V0PQhv1JmyswyHM7nyQlliP0XPYaLW7Z10raYHIa+vMp89DPnniQhCbVaze0bT7dX/dPNAEPoyZwShtwVG1wBsYtGFKhLrB72jAqDkKkWfkYo+I21F+abje8q++j8slshT0xU9h7l+0TKussR04i9jdhZblC+N76FITQ986GUshn1dPUl2GVGKUO0UBMDhvK1FiBB6Yi/X0Q8/lwBDCm6AEMvVHOORTNOx3aLIWEVqmiyxv6OiqKEWIVdebDq1z5idxRZfk8alypP6Szp1x7S3febzEf85zldayYc9b+tmhxahL4Ou0brqDcJN+eTDU9zOUfDG50aIzWo+c9BweLs196w0LlWRmi6JSbJz0l6dIGTLCs2nD0D+eZnUX9kPetIDw2/7U4Eg9GXQNdok6a3xg7tImQUFQh+Y28AisSypvyypP1dVZsrOqvxtBW/Sy5MHKXqPYILC7TkzW3bTfPpgTf6p0ye54D4d4BrXDCRXD0uMAqfzwhYhQigjkxsRgWfEQu+o+7IV5hkPZxoObmM0wfLuafLUNErejFtAbYV5VYcyuZwDvNko69pX1qWXpENXyD8v82kOf7SUfD2g7q8VWoS+DLpG62ooCH+4zK++zG8c5oXtXW/D85ZLJwyHt5vPHJTEJitS0xrvz7QV5pmys4zHdxOrhe6Y4tcjXRIdB+uieatBm9nnE6gxkXU/0UIQ+jIIwroaCkKdDUX8YMudIvIXO7Q+4DS8SW8+fcBwOJMtypcl9lP0GCpq06Hmp7fy7+hOxLHSLr1kSQMk0XE6vb658wiBBykyoc4/2wruF0nvaOdDEPoyCMK6GgpChNCE7dy4tvihGOgd9TBsyQ3j4e2GI5mUTClPGcJpy00n92KRRJ7YT5bYr/asxBZMqAceZGkOf7CYfDOonu5uCEJfBkFYVyNBuPYKv/IC/8dw6B31TIRYLp82HttJqwNkif1E4VF3HgJB6N36b2JfTKTrXS4RgtCXwV2jzTA6knryL67YhEJg/RBPhLGkQ4KkQ4LQdQBh5OnJuUoyrDWM/gJX8NqeQzmDxv5/e3caEMWVrw38f04V+yKggIBEEFBUFDUucYkL7iYuUbM5ahyXmThJxomTjJnk3okTM1Enc2/u+743icbrmEXz4rgmQaPGaFxQcEtURAQEEREUBKRZGrqqzv3gxElcEZqu6q7n98lqy+qDnD5Pn6VOPcST8/B4QgDnsy5XPNUBG22Dg7hyRZsRxz/NQRACOJ9Pc7QZsa7cOoGhuHJVGxbGrtbR6XIDTYICwH2lXRVE9EgIxkXBQVw5CDmjmXHsY3QKAZzKmmxtFnbDAAdy8dr2y458ba7WgCgEcBI1Cm3M13DjEziSi9e2GH/WLZBtuYAkBHAO6/O0R9vyMG+9ywFm4uJBSES/iucfZSEIAZzDirPar+Jdv10CQ3H9Cjcpip+tFFmVWDIDYHTHy0Splca0wzIZcCjXD0J3TnM68Q/OolMIYHTvZ2rPx3OOHATHcv0gJKLn4/m6XK2qsRu3AYAOyqy0tUCb08kUjRIYiinqXIQPG9WOf5yNTiGAcX2UpT3Rnrfx1LscYD6mCEIiWtCV/98zmoqJQgBDatDog7PaggSztEhgKGapdo+EsBBP2or7KAAMaX2e1iWAugdhehB0YJYgJKJXuvO/nUYQAhiOIPrbKe2V7nd49CCAA5goCCe15+X1tL8Ew6MAxvJ1oWBEI/HQJdCJiYKQM3qlG1/6g6p3QQDgZ5adVF9LxE0ToBsTBSERzYzjGRV0ogydQgCj2F8iSuroyQ7maovAUMxV+TwkerU7f/sHzBQCGMWS79XXErmE/iDox1xBSETzOvEjpeIkHlIIYACHrojzVYRn8IK+TFf/vGR6tRtffBydQgD9vXlCfaMHdzNdOwTGYsYK+OvO/FiZOI6ZQgBd7SsW+RaaiUcPgt7MWAU9JXqjB/+3Y1g+CqCnN46pi3uhOwj6M2kdnNOJ51TR3mJ0CgH0kXJRVNloWoxJmyAwFPvUwjNnzowYMSI6OvqJJ54oKiq6/YRXX3115I9++ctf2uVNm8ON09sP89eOYPNRAB2ogl4/pr7TW8LNg2AEdghCVVUnTJgwYsSItLS0du3azZgx4/ZzTpw4MWDAgEWLFi1atGjevHnNf9PmezqGa4I25GHVDICjfZKjBXnQ4w8hBsEQ5OZfYvfu3fX19YsWLWKMLV26NDg4ODs7u2PHjrec1q1btxEjRjT/7eyFEb3bT5qzX53Ynntgj0MAR6lR6E/HtS0j8KkDo7BDj/DMmTO9evVijBGRr69vXFzcmTNnbj9tyZIl/fv3nz17dm5ubvPf1C6GhrHuQez/nEGnEMBx/npSHRbG+gSjOwhG0dge4ZYtW25/sUePHtHR0deuXfPz87v5YkBAQGlp6S1nzps3LyIiQpbltWvXDhw4MCMjIzg4+I5vpKpqYGDgzcPp06cvXbr0bqWqqalpZPnvZnECG77bbWq4LcQT04VOpqam5sbXL3AiF2vo/Uz31NEN1dVNv4gQoq6uTgh8Zs3IarXKsizLjQ0vT0/P+57c2Gt9/vnnt7/o4+MTHR0dGBiYkZFx88WqqqqgoKBbznzmmWdu/KF///4HDx7ctm3brFmz7vhGkiTl5eXdPPT29vbw8LhHwXx9fRv3E9xZoi/N7qS+nSn9fTAGapyMEKKZv31wvMXp6ktdWacQ9+ZcRAjBOffx8bFXqcCJyD+y5zUbed6GDRvu9lcdOnRYtWrVjT83NDTk5eXFxMTc41IBAQG1tbX3OOGnPUIH+PeeUueNStpV8UgIuhcALejby+JYmfhkCL50grHYYY5w3Lhx5eXlmzdvJqL3338/KiqqZ8+eRJSSkrJy5Uoislgs+/btUxRFVdXPP//8yJEjSUlJzX9fe/Fzo+V9+AuHVNxLAdByGjR66ZD63iPcy55f5QHswA5B6OnpmZyc/PLLLwcGBq5evXrt2rU3Xs/MzExLSyOihoaGF154wdvb29/f/y9/+UtycnJ8fHzz39eOpsXyVm70QSZWzQC0lP88rcX408T2uIMeDIfZccLZarV6enre7W81TVMUxd39XnMDiqJ4eXnZbLZGvmN1dbW9ZomyKsXgFOWHyXK4NwZInYPFYvnpKi0wsjyL6PeFcmSiHO1nh8+XEKK2thZzhOb0oItlGsOe387ukYJExDm/dwrqKz6A/aYL/+1hdAoB7O83qeqr3SW7pCCA3WGY4l/+mChlVogtF5CFAPb0Wa52tY4WJqC1AYNC1fwXD4lWPSq9dFirqNe7KACu4kodvZqu/s+jkozGBowKdfNnBoayyVHsd2l4QhOAffwmVZ3dkfdqg0FRMC4E4a2W9pFSr4ivLmKAFKC5ks9rWZXizV64cRAMDUF4Kx+ZPh4szU/VrmGAFKAZimvpd2nqJ0MlbGoPBocgvINBbdm0GPb8QQyQAjSRIJq9X5nfWeqNQVEwPAThnS15WMq+LtZkY4AUoCk+yNQqGuiNHmhhwAmgmt6Zh0TrhkmLjqi5Vdh4DeDBZFSIP59Q1w7FSlFwDqind5UQyP7US5q2V21AtxCg0eoUenaP+te+Uqw/BkXBOSAI7+WFLjzcm71+FJOFAI31cpraPYjN6oi2BZwGKuu9MKK/D5Y25uNuCoBGWZ+n7SkWKwZhnSg4EwThfQR5UHKSNO+AesGCyUKAezl3Xfz2sLphuOTnpndRAB4EgvD+HglhryVKU79VrRgiBbiLGoWm7lbf6S0lBmFqEJwMgrBRfpfAY/3Zi4eQhAB3Nu+A2jeYzemEJgWcD2ptY/3Po1L6VbHiLCYLAW71H6e1nOvi/YGYGgSnhCBsLF832jJSWnxCPViCyUKAf/mmSPznaW3zSMkTOQjOCUH4AGL92adD5af3qAXVyEIAIqKc62LGd0pykhTpg6lBcFYIwgczKoL9oTufuEu12PQuCoDeKhtowjfq272lR9siBcGJIQgf2IIE3i+ETdurqOgWgonZNHryW2VsOzYXC2TAyaEGN8V/D5CsKr2M5/eCic1PVb1l9m4/TAyC00MQNoUbp43D5b2XxXsZWEQKZvT299rJa+LzYZKEMVFwfgjCJmrlTtvHSO+d1v6RhywEc1mTra3J1lJGyz6y3kUBsAcEYdNF+rBto6WXDqt7LmO2EMxiW6F445j69Rgp1EvvogDYCYKwWboFsQ3D5Wf3KsfKkIXg+lKviNn7la0j5Y6tMCQKrgNB2FyD27JVg6QJu5SzlchCcGU/XBNTditrh8p9g5GC4FIwxm8HE9rzKhuN/lr97nGpgx/aCHBBWZVi3E7lg4HSyAjUcHA1CEL7mB7Lq200crv63ePYYgNczfkqMeprdXlfaXIUxpDABSEI7eb5ztyq0vDt6t5xUgSyEFxFvkUM367+qRefEYsUBNeEmm1Pv0vgv4rnSdvVy7WYLwRXkG8RSdvVRYkc28eAC0PltrNXuvG5nfjQbWphDbIQnFueRSRtV//Qnc/vjIYCXBnqt/292p3P78yHpqj5FmQhOKtz18XQFPWPiUhBcH2YI2wRLydwT4mGblN3jZU64Y4rcDanysXYHeo7ffhzcUhBcH0IwpYyvzP3lilpm5oyWurZGlkITiPtqpj0jfL/BkhPRiMFwRQQhC3ouTju70Zjdij/SJKHhCELwQnsvCRm7lM+GSKPaYcaC2aBb3wt64konpwkP7VH2XwBe3OD0a3L1WbtU7aMQAqCuaBH2OKGhbEdY+Txu9TiWnqhC755gEH99ZT2Qab27WNylwCkIJgLgtARerZmBx+Xxu1UC6rFsj4SRzsDRqIK+u1h9WCJSB2PvSDAjNBBcZAoP5Y6Xj5SKp7ao9YqepcG4EcWG03YpZyvEgfGy0hBMCcEoeMEetCusbKvTENSFGw9A0ZwwSIGfqVE+rCUUbK/m96lAdAJgtCh3Dl9PESaGs37faEeLUUWgp4OlogBXylzOvIVgyQZLQGYGKq/DhYl8g8G8sd3KZ/mYCkp6GNlljb1W+XjIfKCBDQCYHZYLKOP8Q/xvY+xSd+ox8rEf/ST3NAWgaPUq/TiITXtqjg4Xo71x6QgAHqE+ukSwI5OlC9YKGk7pgzBQQqqxaCvlOsNdHgCUhDgnxCEemrlTl+Mksa24322qt9eRhZCy9pWKPp9oTwbw9cPl3yxNAbgRxga1Rkjer0H7x/KZnynzu3E/r2nJOFrOtibTaN/O6b+//Ni0wh5YChqGMDPoEdoCMPC2LFJcuoVMXy7cgkPMgS7yreIwSlKZqU48QRSEOAOEIRG0daLdo6RR7fjvbdiY1Kwm3W5Wr8vlKc78C9HyW089S4NgCFhaNRAOKM/JvLh4Wz6d+q2i+K/+kt+mMiBpqpsoPmp6qlrYtdYuQceBAZwd+gRGk7fYHZikixzStys7CvGMCk0xTdFovsmJcSTjk1CCgLcB3qERuTrRisHSdsLxS++U6dEsaV9JG/8oqBxqmz0h3R1Z5FYM0QaHo4IBLg/9AiNa1wkOzVZrqin7puVvegaQiPsvCS6b1I0opOTZaQgQCOho2FoQR706VBpe6GYtU8dGcHe7SsFeuhdJjCkMistTFMPXRWrB6MjCPBg0CN0AuMiWcYU2Uuirpts63KxoBR+RhCtyda6bbKFetEpdAQBHhwTwkBjboqieHl52Wy2Rp5fXV3t6+vbokUylCOl4vmDaqAHvT9Aijf9Y8QtFoufn5/epdDZqXLxwiHVptGKgZJ5FsUIIWpra318fPQuCOjAarXKsizL9hzORI/QmfQNZkcnyZPa88Epyh+OqJbGfmEAF1TZQAsOqyO/VqbH8kPjsTQUoOkQhE5GYvRSV356iluZleI3KGuyNc1AXXpwBFXQirNa/AZbg0aZU91+Hc85QhCgGbBYximFetHfB0vHysTLaep/Z2p/6ycNC0NbaAo7L4lX0tUQL9o5Vk4Mwi8dwA4QhE6sdxu2/3F5Y74274Aa34qW9ZUSAtEyuqwTZeK1o+rFalrel09sj7EcALvBx8m5MaIno3nmVHlUOz5iu/LcPjXPgqFSV5N9XTy7Vx2/S50cxTOmyEhBAPvCJ8oVuHP6bVee85RbBz/Wd6syP1UtxCMsXEK+Rczerw76SkkMYjlPyc935jI+sgD2hk+V6/Bzozd78XNPuQW6U8/NyvxUtaAaceis8ixi7gG1z1Yl0odynnJ7LZFjmz2AFoIgdDWtPeidPlLWk26B7vTwFmXOfvXcdcShMzlTIWZ8pz7yhRLhTTlPuf35YamVu95lAnBpCELX1MaT3ukj5T7tFuXHhqQoU3araVcRh0Z3oERM2KWO2K50DWS5T7v9+WHsqAfgCNhZxvXVKrQmW3svQ2vrRS8n8ElRXHKJtaUus7OMTaNN+dp7GVplAy3sxp+L456S3mUyNuwsY2YtsbMMgtAsVEFbL2jvZWiXaug3XficTry1k/c2XCAIr9bRqnPah2e1Tq1oQVf++EO4Nb5REIRm1hJBiPl3s5AYTYnmU6L58TLxfqYW9w/b45H8+c58QCiaXkcTRPuLxcosbcclbWo03z5a6o5b4wH0gx6hSV2rp0+ytY+yNJnT3E58eixv46l3mR6QM/YIS+rosxxt9TlN5vTreD4zjmMhTBOgR2hmGBq9FYKwmQTRgRKx+pz2ZYE2NIw/15GNi+TuTrKCyomC0KpSykXt0xxx8Ir2RHs+N573D0EXsOkQhGaGILwVgtBeLDbakK99lqNlVIjJUfzZGD64LTP4fJXxg1AVtOeySD6vbS3QerVhM+P45Cjug+mIZkMQmhmC8FYIQrsrrBHJ50VynlZcKyZH8SnRfHBbZsxVpoYNQkWjvcVi8wVt8wUtypc9E8Of7sDCvQ35n+icEIRmhiC8FYKw5eRcFxsviE352sVqMf4hPr49GxlhrN6M0YKwyka7LmlfFojthVpcKzY5ik+NZtF+yD/7QxCaGYLwVghCB7hYLb68KL4s0NKvikdC2NhIPqYdiw/Qv303SBBmVIgdl8SOQu1IqRgYyia05xPbo//XshCEZoYgvBWC0JEsNtpdpO24JHYVCVWj4REsKZwlhbEIH30afR2D8GK12Fssvi0Suy9r3jIb3Y6NaceSwo3VY3ZhCEIzc/ogtNlsbm5u9zgBQegssq+Lby+LPZfFvmKtlTsb1JYNCmUDQll8AHNYKjoyCDVBmZXi0BVxsEQcuCKsihgSxpPC2fBwFuOPzp+jIQjNzKBBeP78+bfeeuuHH35QVTUjI+OO56Slpc2cObOkpCQsLOyzzz7r27fvHU9DEDodQXS2UuwvFqlXxOGr4ppV9A1mfYJZrzasV2sW1ZIzZC0dhPkWcbxMnCgTR0rF0VLR1pv1D/ln5BthZNjMEIRmZtAgPHfu3I4dOzw9PRcuXFhTU3P7CaqqxsbGvvHGG3Pnzl21atWyZctycnI4v8PdaghCZ3e1jo6WiaOl2vEycaKM6lSRGMS6BbGEQNYlgMUHMDvetm/fILxaR2crxdlKcbpCZJSLU+XC1431asN6t2G927C+IczZd6RzJQhCMzNoEN5w/PjxwYMH3zEI9+zZ84tf/KKoqIhzrmlaeHj4+vXrhwwZcvuZCEIXU2qlk9fE6QqRWSEyK8XZSsGI4lqxWH8W40fRfqy9H3vIhyJ8WBO2mW5aEFpVKqwWhTVUUC3yLeJ8FeVWiZwqwYniA1iXQNY1gHULYomtkXzGhSA0M2fdazQ3Nzc+Pv5GF5BzHh8fn5OTc8cgvKGiouLmn729vT080CA5q2BPGhHBRkT8ayCx1ErZ10Vulci3iL3FoiBHK6ymolrh50ZtvVioF4V6sdae1NqDBXpQgDv5u5OvzFq5kxsnf3ciIm+ZeXAiouoGptQTEVlVqlMFEVXWkyKoqoEsNmGxUWUDldeL8noqs1JJrbhqpeJaUatQOx/Wzofa+7JoPzYmkmL9eZy/PbuqAOBcGhWEhYWFycnJt78+e/bs1q1b3/efV1ZW/vS7m5+f30/vwB23AAAFdUlEQVSj7haqqnbo0OHm4fTp05cuXXq3k+/YAQUj8yJK9KFEH6Kwn71eVs+uWqmkjpVa6Vo9q6ins9XsegOrslGtStcbmE0ji42IqE6leo2ISAg3xhqIyIOTl0RE1MqdZE7+bsJHIj83auUuAt1FpAf18BehnhTiKUK9KMj9TkMgClVXt/BPDvYjhKirqzPUindwmAftEXp6et735EZdy2azlZeX3/66qqqN+edt2rSpqqq6eVhRURESEnK3kyVJukdM3g5Do67B15eiHvCfGOQ+QnA8IQTnHEOj5iT/yJ7XbMxJHTp0uEe37L46d+6ckZFx494Jm8125syZzp07N/lqAAAAdmSHBw3U19fv3r37yJEjqqru3r07NTX1xuu///3vN23aRET9+/ePjIxcsmRJWVnZkiVLoqKi7nb7BAAAgIPZoXdpsViWL19ORI8++ujy5cvbtm07cOBAImpoaFAU5cY5mzZtevHFF3v16pWQkLBx48bmvykAAIBdOPcWax9++OHEiRPDw8NbtFRgQEKIN99886233tK7IKCD/Pz8PXv2zJkzR++CgA62bNkSGRnZu3dvO17TSZ7Behfr16/PysrSuxSgA5vNdmMcAkzo1KlTW7Zs0bsUoI+dO3empaXZ95rOHYQAAADNhCAEAABTQxACAICpGWuxjKqqHh4e7du3b+T5xcXFgYGBnp7YHct0hBAFBQVRUVF6FwR0UFdXV1VVFRoaqndBQAfXrl1zd3dv/GYa06ZNW7Jkyb3PMdaDRCVJysvLu3nTxX3V19djJ1LTwm/ftIQQNpvN3d1d74KADhRFYYxJUmP36Q8LC7vvOcbqEQIAADgY5ggBAMDUEIQAAGBqCEIAADA1BCEAAJiasVaNNllZWdnx48cLCgoGDRrUpUsXvYsDLctms61ZsyYrK6tbt24zZ85s/PoxcHY3nuN28uRJDw+PZ555Ru/igEMVFRWlpKRkZ2eHhIRMmzYtMjLSXld2kSAcO3Ys5/zChQuLFy9GELq8WbNmXbx4cdq0aR9++GF6evqKFSv0LhE4yLp16xYvXhwcHFxZWYkgNJvnnnsuPDy8Z8+eWVlZXbp0SU9Pt1dr7yK3T2iaxjlPSkp68skn58+fr3dxoAXl5eV17dq1qKgoKCioqKgoJiYmPz+/MbcKgQu48Un/6quvFi5cmJOTo3dxwKGsVuvN7VMmT57csWPHZcuW2eXKLjJHyLmL/CBwXwcOHOjZs2dQUBARRURExMXFHT58WO9CgYPgk25mP91EzGq1+vr62uvKLjI0CuZRUlISHBx88zA0NPTy5cs6lgcAHGzbtm1Hjx5ds2aNvS7oNF+v+vXrJ99m3rx5epcLHE2WZVVVbx5iqy0AU0lPT581a9batWvtuNms0/QI09PT9S4CGEJERERRUdHNw6KiovDwcB3LAwAOc+LEiYkTJ37yySejR4+242WdpkcIcMPIkSPPnTt37tw5Ivr+++9LS0uHDh2qd6EAoMWdOnXqscceW7ly5bhx4+x7ZRdZNfr666/v2rUrOzs7MDAwODj43XffHTZsmN6Fgpby9ttvf/TRRyNHjvz6668XLVq0YMECvUsEDpKZmTlz5szr168XFhYmJCQkJiauXr1a70KBgzz88MPnz5+PjY29cThq1Kh33nnHLld2kSDMz88vLy+/eRgTExMQEKBjeaClff/99zduqE9ISNC7LOA4NTU1WVlZNw99fX07deqkY3nAkTIzM+vq6m4eBgUFRUdH2+XKLhKEAAAATYM5QgAAMDUEIQAAmBqCEAAATA1BCAAApoYgBAAAU0MQAgCAqSEIAQDA1BCEAABgaghCAAAwNQQhAACYGoIQAABM7X8BdBTWgSbt4LUAAAAASUVORK5CYII=",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(tractorpath, label=\"tractor\")\n",
"plot!(trailerpath, label=\"trailer\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"C:\\\\Users\\\\jan\\\\Courses\\\\MCS507\\\\Fall23\\\\Lec19\\\\figtractortrailer.png\""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"savefig(\"figtractortrailer.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To obtain a smoother path in the drawing, use the ``saveat`` option in the ``solve`` and ask to save at ``0.05``."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"retcode: Success\n",
"Interpolation: 1st order linear\n",
"t: 401-element Vector{Float64}:\n",
" 0.0\n",
" 0.05\n",
" 0.1\n",
" 0.15\n",
" 0.2\n",
" 0.25\n",
" 0.3\n",
" 0.35\n",
" 0.4\n",
" 0.45\n",
" 0.5\n",
" 0.55\n",
" 0.6\n",
" â‹®\n",
" 19.45\n",
" 19.5\n",
" 19.55\n",
" 19.6\n",
" 19.65\n",
" 19.7\n",
" 19.75\n",
" 19.8\n",
" 19.85\n",
" 19.9\n",
" 19.95\n",
" 20.0\n",
"u: 401-element Vector{Vector{Float64}}:\n",
" [2.0, 0.0]\n",
" [1.997504675808827, 8.31041876921322e-5]\n",
" [1.9900742708062662, 0.0006594057371512341]\n",
" [1.9778714905280526, 0.002195544810901092]\n",
" [1.9611546904934793, 0.005107714337157864]\n",
" [1.9402605373000013, 0.009742783978294237]\n",
" [1.91558263040191, 0.01636561487308071]\n",
" [1.8875491644398903, 0.02515341066765396]\n",
" [1.8566003462497298, 0.03619674515230162]\n",
" [1.823171146019369, 0.049504000465124987]\n",
" [1.7876726457003616, 0.06501466249670602]\n",
" [1.7504838499630295, 0.08260922112646732]\n",
" [1.711943184205482, 0.10212051915721762]\n",
" â‹®\n",
" [0.06256329888904243, -0.0818635402059948]\n",
" [0.06639470168498783, -0.0784428858730456]\n",
" [0.07004222709265318, -0.07484517135795445]\n",
" [0.07349823881710851, -0.07108017891437543]\n",
" [0.07675548916562636, -0.06715798213680772]\n",
" [0.07980711904768246, -0.06308894596059465]\n",
" [0.08264665797495456, -0.05888372666192529]\n",
" [0.0852680240613231, -0.05455327185783354]\n",
" [0.08766552402287138, -0.050108820506197915]\n",
" [0.08983385317788499, -0.04556190290574242]\n",
" [0.09176809544685259, -0.040924340696035295]\n",
" [0.09346372335246529, -0.03620824685748961]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"soltractrix2 = solve(odetractrix, saveat=0.05)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"trailerpath2 = [(x,y) for (x,y) in soltractrix2.u];"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(tractorpath, label=\"tractor\")\n",
"plot!(trailerpath2, label=\"trailer\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"C:\\\\Users\\\\jan\\\\Courses\\\\MCS507\\\\Fall23\\\\Lec19\\\\figtractortrailer2.png\""
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"savefig(\"figtractortrailer2.png\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.2 an animation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The animation is defined by taking longer and longer slices of the paths for the tractor and the trailor."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have to calculate the path of the tractor for the *same* time span as for the trailer."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"runcircle2 = [tractor(t) for t in soltractrix2.t];\n",
"tractorpath2 = [(tpl[1],tpl[2]) for tpl in runcircle2];"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To tests, let us plot the first half of the paths, for both the tractor and the trailer."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"401"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"length(tractorpath2)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plot(tractorpath2[1:100], label=\"tractor\", xlims=(-1.1,2.1), ylims = (-1.1, 1.1))\n",
"plot!(trailerpath2[1:100], label=\"trailer\")"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"animTractorTrailer = Plots.Animation()\n",
"for i = 10:10:length(tractorpath2)\n",
" plot(tractorpath2[1:i], label=\"tractor\", \n",
" xlims=(-1.1,2.1), ylims = (-1.1, 1.1))\n",
" (xtp1, xtp2) = tractorpath2[i]\n",
" scatter!([xtp1], [xtp2], legend=false)\n",
" plot!(trailerpath2[1:i], label=\"trailer\")\n",
" Plots.frame(animTractorTrailer)\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To display the animation, create a gif and set the number of frames per second, defined by the ``fps`` keyword."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaved animation to C:\\Users\\jan\\Courses\\MCS507\\Fall23\\Lec19\\tractortrailer2.gif\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"Plots.AnimatedGif(\"C:\\\\Users\\\\jan\\\\Courses\\\\MCS507\\\\Fall23\\\\Lec19\\\\tractortrailer2.gif\")"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gif(animTractorTrailer, \"tractortrailer2.gif\", fps = 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. A predator chasing a prey"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To model the pursuit of a predator chasing a prey, we can use as the right hand side\n",
"\n",
"$$\n",
" y' = s(t) w,\n",
"$$\n",
"\n",
"where\n",
"\n",
"* $s(t)$ is the speed of the predator, and\n",
"\n",
"* $w$ is the direction of the predator.\n",
"\n",
"This direction is computed as before, as in the fuction ``trailer!``."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"predator!"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"\n",
" function predator!(du::Vector{Float64}, u::Vector{Float64}, p, t)\n",
"\n",
"defines the right hand side of the system for the predator,\n",
"chasing a prey with accelerating speed.\n",
"\"\"\"\n",
"function predator!(du, u, p, t)\n",
" x1p, x2p, x1v, x2v = tractor(t)\n",
" acceleration = p\n",
" speed = acceleration*t\n",
" du[1] = x1p - u[1]\n",
" du[2] = x2p - u[2]\n",
" nrm = sqrt(du[1]*du[1] + du[2]*du[2])\n",
" du[1] = speed*du[1]/nrm\n",
" du[2] = speed*du[2]/nrm\n",
"end"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We use the same initial conditions as before, but a shorter time span.\n",
"So we have to recompute the path for the prey."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2-element Vector{Float64}:\n",
" 2.0\n",
" 0.0"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timespan = (0, 13)\n",
"initconds = [2.0, 0.0]"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[38;2;86;182;194mODEProblem\u001b[0m with uType \u001b[38;2;86;182;194mVector{Float64}\u001b[0m and tType \u001b[38;2;86;182;194mInt64\u001b[0m. In-place: \u001b[38;2;86;182;194mtrue\u001b[0m\n",
"timespan: (0, 13)\n",
"u0: 2-element Vector{Float64}:\n",
" 2.0\n",
" 0.0"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"odepursuit = ODEProblem(predator!, initconds, timespan, 0.1)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"retcode: Success\n",
"Interpolation: 1st order linear\n",
"t: 261-element Vector{Float64}:\n",
" 0.0\n",
" 0.05\n",
" 0.1\n",
" 0.15\n",
" 0.2\n",
" 0.25\n",
" 0.3\n",
" 0.35\n",
" 0.4\n",
" 0.45\n",
" 0.5\n",
" 0.55\n",
" 0.6\n",
" â‹®\n",
" 12.45\n",
" 12.5\n",
" 12.55\n",
" 12.6\n",
" 12.65\n",
" 12.7\n",
" 12.75\n",
" 12.8\n",
" 12.85\n",
" 12.9\n",
" 12.95\n",
" 13.0\n",
"u: 261-element Vector{Vector{Float64}}:\n",
" [2.0, 0.0]\n",
" [1.9998750778887264, 4.159597965513017e-6]\n",
" [1.9995012316255796, 3.310313742402896e-5]\n",
" [1.9988811406436153, 0.0001107953373072529]\n",
" [1.9980189596856734, 0.0002596015365894804]\n",
" [1.996919978612548, 0.0004997436733455744]\n",
" [1.9955901427906897, 0.0008488732040035506]\n",
" [1.9940355856955636, 0.0013218976487065878]\n",
" [1.9922623051970139, 0.001930910781491278]\n",
" [1.9902758266309786, 0.0026852317458934197]\n",
" [1.9880808246527915, 0.0035918992425424292]\n",
" [1.9856810920603103, 0.004655710285796258]\n",
" [1.9830795300528536, 0.005879332177659338]\n",
" â‹®\n",
" [0.989227365127873, -0.11869330107438048]\n",
" [0.9979258708628043, -0.06847820617404236]\n",
" [0.9982701266992365, -0.017659034418929236]\n",
" [0.9989075594589828, 0.03310046133206673]\n",
" [0.9965792709349012, 0.08263790620011283]\n",
" [0.9898113431604002, 0.13185941644452664]\n",
" [0.9832287400284712, 0.18117772788057357]\n",
" [0.973157695055093, 0.2302731654092359]\n",
" [0.9592431337485544, 0.27823512884430707]\n",
" [0.9436015234512855, 0.325537279192627]\n",
" [0.9279036816340297, 0.3730055139536691]\n",
" [0.9070585450267917, 0.41912917344017686]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"solpursuit = solve(odepursuit, saveat=0.05)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"runcircle3 = [tractor(t) for t in solpursuit.t];\n",
"tractorpath3 = [(tpl[1],tpl[2]) for tpl in runcircle3];"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"\n",
"\n"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predatorpath = [(x,y) for (x,y) in solpursuit.u];\n",
"plot(tractorpath3, label=\"prey\")\n",
"plot!(predatorpath, label=\"predator\")"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"C:\\\\Users\\\\jan\\\\Courses\\\\MCS507\\\\Fall23\\\\Lec19\\\\figpredatorprey1.png\""
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"savefig(\"figpredatorprey1.png\")"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"animChasingPredator = Plots.Animation()\n",
"for i = 10:10:length(tractorpath3)\n",
" plot(tractorpath3[1:i], label=\"tractor\", \n",
" xlims=(-1.1,2.1), ylims = (-1.1, 1.1))\n",
" (xtp1, xtp2) = tractorpath3[i]\n",
" scatter!([xtp1], [xtp2], legend=false)\n",
" plot!(predatorpath[1:i], label=\"predator\")\n",
" Plots.frame(animChasingPredator)\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaved animation to C:\\Users\\jan\\Courses\\MCS507\\Fall23\\Lec19\\chasingpredator2.gif\n"
]
},
{
"data": {
"text/html": [
"
"
],
"text/plain": [
"Plots.AnimatedGif(\"C:\\\\Users\\\\jan\\\\Courses\\\\MCS507\\\\Fall23\\\\Lec19\\\\chasingpredator2.gif\")"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gif(animChasingPredator, \"chasingpredator2.gif\", fps = 2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.9.1",
"language": "julia",
"name": "julia-1.9"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.9.1"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}