Skip to content

Instantly share code, notes, and snippets.

@neizod
Last active November 16, 2018 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neizod/252cfbd84a610b86d17d27827163c2d2 to your computer and use it in GitHub Desktop.
Save neizod/252cfbd84a610b86d17d27827163c2d2 to your computer and use it in GitHub Desktop.
Smallest-circle
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# An $O(n)$ Algorithm for Smallest-Circle Problem"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"from itertools import combinations\n",
"from collections import namedtuple\n",
"\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Basic Properties\n",
"\n",
"Finding circumscribed circle from 3 points: $u, v, w$ can be done with these beautiful determinant matrices:\n",
"\n",
"\\begin{array}{r r}\n",
"a = \\begin{vmatrix}u_x & u_y & 1 \\\\ v_x & v_y & 1 \\\\ w_x & w_y & 1\\end{vmatrix}, &\n",
"b = \\begin{vmatrix}u_x & u_y & |u|^2 \\\\ v_x & v_y & |v|^2 \\\\ w_x & w_y & |w|^2\\end{vmatrix} \\\\\n",
"c_x = \\frac1{2a}\\begin{vmatrix}|u|^2 & u_y & 1 \\\\ |v|^2 & v_y & 1 \\\\ |w|^2 & w_y & 1\\end{vmatrix}, &\n",
"c_y = \\frac1{2a}\\begin{vmatrix}u_x & |u|^2 & 1 \\\\ v_x & |v|^2 & 1 \\\\ w_x & |w|^2 & 1\\end{vmatrix}\n",
"\\end{array}\n",
"\n",
"Then the circumcenter $c = (c_x, c_y)$, and the circumradius $r = \\sqrt{b/a + |c|^2}$."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"Point = namedtuple('Point', 'x y')\n",
"Point.__repr__ = lambda s: f'Point(x={s.x:.3f}, y={s.y:.3f})'\n",
"\n",
"Circle = namedtuple('Circle', 'c r')\n",
"Circle.__new__.__defaults__ = (None, 0)\n",
"Circle.__repr__ = lambda s: f'Circle({s.c}, r={s.r:.3f})'\n",
"Circle.__contains__ = lambda s, p: s.c is not None and sq_dist(p, s.c) <= s.r**2\n",
"Circle.from_arc = lambda *ps: ( circle_from_2_points(*ps) if len(ps) == 2 else\n",
" decide_from_3_points(*ps) if len(ps) == 3 else\n",
" Circle() )\n",
"\n",
"sq_dist = lambda p, q=Point(0, 0): (p.x-q.x)**2 + (p.y-q.y)**2\n",
"\n",
"det = lambda u, v, w: u.x*v.y + v.x*w.y + w.x*u.y - u.x*w.y - v.x*u.y - w.x*v.y\n",
"detx = lambda u, v, w: ( sq_dist(u)*v.y + sq_dist(v)*w.y + sq_dist(w)*u.y\n",
" - sq_dist(u)*w.y - sq_dist(v)*u.y - sq_dist(w)*v.y )\n",
"dety = lambda u, v, w: ( u.x*sq_dist(v) + v.x*sq_dist(w) + w.x*sq_dist(u)\n",
" - u.x*sq_dist(w) - v.x*sq_dist(u) - w.x*sq_dist(v) )\n",
"dets = lambda u, v, w: ( u.x*v.y*sq_dist(w) + v.x*w.y*sq_dist(u) + w.x*u.y*sq_dist(v)\n",
" - u.x*w.y*sq_dist(v) - v.x*u.y*sq_dist(w) - w.x*v.y*sq_dist(u) )\n",
"\n",
"\n",
"def circle_from_2_points(p1, p2):\n",
" dx = (p1.x + p2.x)/2\n",
" dy = (p1.y + p2.y)/2\n",
" c = Point(dx, dy)\n",
" r = sq_dist(p1, p2)**.5/2\n",
" return Circle(c, r)\n",
"\n",
"\n",
"def circle_from_3_points(p1, p2, p3):\n",
" a = det(p1, p2, p3)\n",
" b = dets(p1, p2, p3)\n",
" sx = detx(p1, p2, p3)\n",
" sy = dety(p1, p2, p3)\n",
" c = Point(sx/a/2, sy/a/2)\n",
" return Circle(c, (b/a + sq_dist(c))**.5)\n",
"\n",
"\n",
"def decide_from_3_points(p1, p2, p3):\n",
" ps = {p1, p2, p3}\n",
" for p in ps:\n",
" circle = circle_from_2_points(*ps-{p})\n",
" if p in circle:\n",
" return circle\n",
" return circle_from_3_points(p1, p2, p3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Our Main Algorithm\n",
"\n",
"Note that each time we have to grow the circle, we start by consider every combination of partitioning 3 points into two groups of size 2 and 1. The former group will be used as endpoints of a diameter of a newly created circle, while the later group will be test whether it's lie within that circle. If it does, return imedietly the circle. If all failed, then return a circle whose all of 3 points sitting on the edge."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"def shuffled(points):\n",
" ls = list(points)\n",
" random.shuffle(ls)\n",
" return ls\n",
"\n",
"\n",
"def mincircle2p(points, q1, q2, allpoints={}):\n",
" circle = Circle.from_arc(q1, q2)\n",
" debug(circle, bound=[q1, q2], future=points, unvisit=allpoints)\n",
" seen = set()\n",
" for i, p in enumerate(points):\n",
" if p not in circle:\n",
" circle = Circle.from_arc(q1, q2, p)\n",
" debug(circle, bound=[q1, q2, p], seen=seen, future=points, unvisit=allpoints)\n",
" seen |= {p}\n",
" print('[dbg]')\n",
" print(' points:', points)\n",
" print(' fixed:', q1, q2)\n",
" print(' circle:', circle)\n",
" return circle\n",
"\n",
"\n",
"def mincircle1p(points, q1, allpoints={}):\n",
" circle = Circle()\n",
" ps = shuffled(points)\n",
" for i, p in enumerate(ps):\n",
" if p not in circle:\n",
" circle = mincircle2p(set(ps[:i]), q1, p, allpoints=allpoints)\n",
" return circle\n",
"\n",
"\n",
"def mincircle(points):\n",
" circle = Circle()\n",
" ps = shuffled(points)\n",
" for i, p in enumerate(ps):\n",
" if p not in circle:\n",
" circle = mincircle1p(set(ps[:i]), p, allpoints=points)\n",
" return circle\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test Input"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Point(x=0.240, y=0.422)\n",
"Point(x=0.123, y=0.242)\n",
"Point(x=0.443, y=0.149)\n",
"Point(x=0.295, y=0.442)\n",
"Point(x=-0.471, y=-0.034)\n",
"Point(x=0.401, y=-0.387)\n",
"Point(x=-0.031, y=-0.253)\n",
"Point(x=0.044, y=0.074)\n",
"Point(x=-0.487, y=-0.283)\n",
"Point(x=-0.221, y=0.416)\n"
]
}
],
"source": [
"n = 10\n",
"randomseed = 5\n",
"random.seed(randomseed)\n",
"points = {Point(random.random()-0.5, random.random()-0.5) for _ in range(n)}\n",
"\n",
"for point in points:\n",
" print(point)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize Debugging Step-by-Step"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482ce400b8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: set()\n",
" fixed: Point(x=-0.487, y=-0.283) Point(x=-0.221, y=0.416)\n",
" circle: Circle(Point(x=-0.354, y=0.067), r=0.374)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cea42e8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: set()\n",
" fixed: Point(x=0.240, y=0.422) Point(x=-0.487, y=-0.283)\n",
" circle: Circle(Point(x=-0.123, y=0.070), r=0.506)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cc91cc0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: set()\n",
" fixed: Point(x=0.295, y=0.442) Point(x=-0.221, y=0.416)\n",
" circle: Circle(Point(x=0.037, y=0.429), r=0.258)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cc2f278>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: {Point(x=-0.221, y=0.416)}\n",
" fixed: Point(x=0.295, y=0.442) Point(x=-0.487, y=-0.283)\n",
" circle: Circle(Point(x=-0.096, y=0.080), r=0.533)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAFpCAYAAAB0yyjhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xt0XWd55/Hvc3R0lyVZF19iW5YdX2LHpFyUS2m5kzVxZ1bCdBgakoDp0LpAWLMKJW2YdDpT06xFYfU2JdNpBtY0tKGQdLXBqyRAkpaWUgxRmsTEDo4dG9uyHVu+yZZ1l5754z3CinxkyTqXvc/Zv89aZ51zpO2znyjSb7/73e9+X3N3REQkWVJRFyAiIsWn8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUmgdNQFzKStrc07OzujLkNEpKQ8++yzJ929fbbtYhv+nZ2ddHd3R12GiEhJMbODc9lO3T4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUkghb+ISAIp/EVEEkjhLyKSQAp/EZEEUviLiCSQwl9EJIEU/iIiCaTwFxFJIIW/iEgCKfxFRBJI4S8ikkAKfxGRBFL4i4gkkMJfRCSBFP4iIgmk8BcRSaC8hL+Z3WJme8xsn5ndO8M27zOz3Wa2y8y+ko/9iojI/KRz/QAzqwAeAG4GeoBnzGy7u++ess1a4NPAz7n7GTNblOt+RURk/vLR8r8B2Ofu+919BPgqcNu0bX4VeMDdzwC4+4k87FdEROYpH+G/DDg85X1P5mtTrQPWmdn3zGyHmd2Sh/2KiMg85dztA1iWr3mW/awF3g4sB75rZpvc/exrPshsK7AVoKOjIw+liYhINvlo+fcAK6a8Xw4czbLN19191N0PAHsIB4PXcPcH3b3L3bva29vzUJqIiGSTj/B/BlhrZqvMrAq4Hdg+bZvHgHcAmFkboRtofx72LSIi85Bz+Lv7GPBx4FvAS8Aj7r7LzLaZ2a2Zzb4FnDKz3cA/Ave4+6lc9y0iIvNj7tO75+Ohq6vLu7u7oy5DRKSkmNmz7t4123a6w1dEJIEU/iIiCaTwFxFJIIW/iEgCKfxFRBJI4S8ikkAKfxGRBFL4i4gkkMJfRCSBFP4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUkghb+ISAIp/EVEEkjhLyKSQAp/EZEEUviLiCSQwl9EJIEU/iIiCaTwFxFJIIW/iMzPeB/svzY8S8lR+IvI/PR/A0Z2w4XHo65E5kHhLyJX5sgdsKcBjm0J749+MLw/cke0dckVUfiLyJVp3waVHWCV4b1VQuVKaP9MtHXJFVH4i8iV9d9XrYG2beCjYPXhue13oerqwtcpeaPwl+LSRcJ4utL++/OPQKo+hH6qHs4/Wtj6JO8U/lJcukgYL/Ptv2+5B1bvgdbfCM8t9xS+Vskrhb8Uhy4SxtN8++9rr4f04vA6vRhquwpbp+RdXsLfzG4xsz1mts/M7r3Mdu81Mzcz/aYkjS4SxpP67xMr5/A3swrgAWAzsBF4v5ltzLLdAuC/Aj/IdZ9SghQy8aX++0TKR8v/BmCfu+939xHgq8BtWbb7DPA5YCgP+5RSpJCJJ/XfJ1I6D5+xDDg85X0PcOPUDczsDcAKd/97M/tUHvYppajlHlj8p6GPuOkuGD08+7+Rwqu9/uLr9OKLfflS1vIR/pbla/7Tb5qlgD8CPjTrB5ltBbYCdHR05KE0iRWFjEhs5KPbpwdYMeX9cuDolPcLgE3Ad8zsJ8BNwPZsF33d/UF373L3rvb29jyUJiIi2eQj/J8B1prZKjOrAm4Htk9+09373L3N3TvdvRPYAdzq7t152LeIiMxDzuHv7mPAx4FvAS8Bj7j7LjPbZma35vr5IiKSf/no88fdHwcen/a135lh27fnY58iIjJ/usNXRCSBFP4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUkghb+ISAIp/EVEEkjhLyKSQAp/EZEEUviLiCSQwl9EJIEU/iIiCaTwFxFJIIW/iEgCKfxFRBJI4S8ikkAKfxGRBFL4i4gkkMJfRCSBFP4iIgmk8BeJs/E+2H9teBbJI4W/SJz1fwNGdsOFx6OuRMqMwl8kjo7cAXsa4NiW8P7oB8P7I3dEW5eUDYW/SBy1b4PKDrDK8N4qoXIltH8m2rqkbCj8ReKoag20bQMfBasPz22/C1VXR12ZlAmFv0hcnX8EUvUh9FP1cP7RqCuSMpKOugARmUHLPbD4TyG9GJrugtHDUVckZUThLxJXtddffJ1eHB4ieZKXbh8zu8XM9pjZPjO7N8v3P2lmu81sp5k9bWYr87FfERGZn5zD38wqgAeAzcBG4P1mtnHaZs8BXe5+HfA3wOdy3a+IiMxfPlr+NwD73H2/u48AXwVum7qBu/+juw9k3u4AludhvyIiMk/5CP9lwNQrUT2Zr83kw8ATediviIjMUz4u+FqWr3nWDc3uArqAt83w/a3AVoCOjo48lCYiItnko+XfA6yY8n45cHT6Rmb2buA+4FZ3H872Qe7+oLt3uXtXe3t7HkoTEZFs8hH+zwBrzWyVmVUBtwPbp25gZm8A/pwQ/CfysE8REclBzuHv7mPAx4FvAS8Bj7j7LjPbZma3Zjb7PNAAPGpmz5vZ9hk+TkREiiAvN3m5++PA49O+9jtTXr87H/sREZH80Nw+IiIJpPAXEUkghb+ISAIp/EWkdGmN43lT+ItI6dIax/Om8BeR0qM1jnOm8BeR0qM1jnOm8BeR0qM1jnOm8BeR0qQ1jnOiZRxFpDRpjeOcKPxFpDRpjeOcqNtHRCSBFP4iIgmkbh9JLvdLHwBmF5+nPkTKiMJfys/YGIyOvvYxNASDg699jI299t+ZXTwATL6fVFMDtbUXn2troaoKKisvPqqqdJCQkqHwl9I2MgIDA3DhApw+HR6Dg5cGeSoF6fTFR2MjVFTMbR/uMD4eDiKDg9DbGw4cPm2p6lQKmpuhtTV8fl1dOEik1Lsq8aPwl9IxMhJCvr//YtAPDV3slqmuDo+Ghvzu1+ziQeNyJiZgeBgOHLh4VpFKhQNBS0s4MNTVQX29zhAkcgp/iS/30Ko/cwaOHAnPEIKzpiYEaWNjtDVOlUpd7BKa5B4OCIcPw/794X11NSxdCosWQVPT7AcVkQLQb53Ey/g4nDsHJ09CT09o2adSIejb2kqvxTx5oKqpufi1sTE4ehQOHgzfb2sLB4OFC1974BApIIW/RG9sLHThHD0KJ06E7pN0OnTfxKllny/pdOgCgnAm0N8PO3eG1w0NsGwZtLfDggXR1illTeEv0envD905Bw+GA0BdXWj9lssF0vF+OPbLsPT/QcUM1yHMQuBPXqcYHoa9e2HPnnCAWLUqnBmoa0jyTL9RUlzj43DqVOj/PnMmDJEs137vwX+BsQPhueGWuf2byYvWEK53PPdc+NmsXAlXXZX/i9mSWObTh6vFRFdXl3d3d0ddhuTLhQuhW+cnPwmt/Pr68ChHJ+6DgX8CRoFxoAKohLq3waL7r/zzxsbCdZCxsTBqaNWqMJx0rkNVJVHM7Fl375ptuzJsbkmsnD0L+/aFsfGT4+vLsZU/1cKPwMgeGDtGCP80pJfCwo/O7/PS6RD6EA6izz4bzpjWrAnXByor81W5JEiZ/xVKZM6dC6H/6quhL3/RoqgrKp7KFdD8ETh5H1ADjELzr0Hl8tw/e/KMaWwMfvzj8DNevz6MFir3g6rkVZlcWZPYmBy58r3vQV8fLF6czFErA0+B1YaDgNWG9/mUTocRQQ0N8OKL8M//HC6ej4/ndz9SttRUkPwYGAh3th46FOa4aW8vvTH5+dT4gbDYSLoVGjbD2PHC7KeyMpxVjYzACy/Ayy/Dhg3ha+UyakoKQuEvuZmczuDAAYX+VDXXXnydbg2PQqqqCmdZQ0NhhFB9fTgIlOKNcVIUCn+ZH/fQn//ii+F1W5tamnEweTfx0BA880y4FnDNNbpzWC6h8JcrNzgIu3fD8eNhFIpGm8TP5EHg9Gn47nfh2mvDfQI6C5AMhb/M3cREGKu/a1e44LhYa6bGXnNzmIr6hRfC/7uNG8v3/gq5Igp/mZv+/hD6p06FG4w0rLB0VFaGA3VfXzgL2LABVqxQN13C6S9YLm9iIozgeeml0I2g1n7pamoK9wfs2hXOAjZtSuYwXAE0zl8uZ/Ki4Usvhb79cpxhM2kmu+tGRsJZQE9P1BVJRNTyl+zOng3TCJgl6+7cpGhoCGdyL7wQ7sZev15zBSVMXlr+ZnaLme0xs31mdm+W71eb2dcy3/+BmXXmY79SID098P3vh9klm5qirkYKZfIs4NChcIY3NBR1RVJEOYe/mVUADwCbgY3A+81s47TNPgyccfc1wB8Bv5/rfqUAxsfDEM4XXgjdPBobXv7Mwo15Fy6EKTnOno26IimSfLT8bwD2uft+dx8BvgrcNm2b24CHMq//BniXmQYcx8pk//6hQ6E1qNE8ydLcHLqBvv/9cOYX06neJX/yEf7LgMNT3vdkvpZ1G3cfA/qAAt/vLnN29mxo9V24oOkZkqymJpzx7dwZLvJrkriylo/wz5YU05sNc9kGM9tqZt1m1t3b25uH0mRWr74aWns1NRfXlZXkSqfDBf5Dh8IF/5GRqCuSAslH+PcAK6a8Xw4cnWkbM0sDTcDp6R/k7g+6e5e7d7W3t+ehNLmsnh74t38L6+bW1ERdjcTF5HWAvr7QFTg8HHVFUgD5CP9ngLVmtsrMqoDbge3TttkObMm8fi/wDx7X9SOT4ic/CRd2W1s1N49k19ISrgX98IdhPicpKzmHf6YP/+PAt4CXgEfcfZeZbTOzWzObfQloNbN9wCeBS4aDSpG4h9Wfdu0KrTtd2JXLmZwbaMeOsGaDlA0t4B43431w8M2w8l+hogBj7Pftgz17tNiHXJnz50PD4cYbw7KcEltzXcBdf/1x0/8NGNkNFx7P/2e/8oqCX+ZnwYJwLeAHP9AZQJlQAsTFkTtgTwMcy1waOfrB8P7IHfn5/FdeCQt+K/hlviYPAD/8oQ4AZUApEBft26CyAyxz8dUqoXIltH8m988+dEjBL/mxYEHo/unu1jDQEqckiIuqNdC2DXwUrD48t/0uVF2d2+eeOhWWWtQyi5IvjY0h+Hfu1I1gJUxpECfnH4FUfQj9VD2cfzS3z+vvDzfqNDdrVI/k18KF0NsbriHFdNCIXJ4SIU5a7oHFfwrpxdB0F4wenv3fzGR4OAR/dXV4iORbezscOBCWhVy5Mupq5Aop/OOk9vqLr9OLw2M+xsfDDVyjo6GFJlIIZqE78cUXw/BP3ZVfUtTtU27cw8XdU6cU/FJ46XT4PXv22XAvgJQMhX+5OXgwPNQKk2Kprg4t/+5uLQhTQhT+5aS3N0zb0NamaZmluOrrYWIidDdOTERdjcyBwr9cDA+HoXcLF2otVolGczOcPh0mDZTYU/iXA/ew+MbEhEb2SLRaW8Pwz3Pnoq5EZqHwLwfHj8PRo2EKXpEoVVSELqAXXtANYDGn8C91g4Pwox9pZI/ER319WBL0lVeirkQuQ+FfytzDBd5UCqqqoq5G5KLW1jB9+JkzUVciM1D4l7IjR+DECa29K/GTSoU5gJ5/PtxsKLGj8C9VFy6EOytbW6OuRCS72toQ/Hv3Rl2JZKHwL0XuIfirqzVhm8RbS0sY+nn6dNSVyDQK/1LU2xv+mBobo65E5PLMwhoAu3fr5q+YUfiXmvHxMKZfwS+loq4uzPtz/HjUlcgUCv9Sc+xYWEKvpibqSkTmrqkpNFrGxqKuRDIU/qVkdDTM2Kkx/VJqqqvD6l89PVFXIhkK/1Jy6FDo9qmsjLoSkSu3cGEY+TM8HHUlgsK/dAwOhj8ctfqlVKXTYaTagQNRVyIo/EvH/v1h3hTN2CmlbOHCEP4XLkRdSeIp/EvB+fNhgRa1+qXUTU5Fsm9f1JUknsK/FBw8GC6YaYEWKQdNTWEWWrX+I6Xwj7vh4TBCQuP6pVyYhf5/jfyJlMI/7o4dC38sKf2vkjLS1BTOaDXpW2SUKHE2MREu9DY1RV2JSH5VVIRhy729UVeSWAr/ODt1KnT7aFy/lKPGxnDh1z3qShJJ4R9nr7wSVkUSKUc1NeGirxZ8iYTCP67Onw9/FAp/KWc1NaHvX4pO4R9Xhw+ru0fK34IF8OqrYbJCKaqcwt/MWszsSTPbm3m+5C4kM3u9mX3fzHaZ2U4z+6Vc9pkIIyMh/HWhV8qdWbj4e/Ro1JUkTq4t/3uBp919LfB05v10A8AH3f1a4Bbgj81Mi85eztmz4SKYhndKEjQ2hsaOLvwWVa7pchvwUOb1Q8B7pm/g7i+7+97M66PACaA9x/2WtyNHwvqnIklQWQlDQ9DfH3UliZJr+C9292MAmedFl9vYzG4AqoBXctxv+RobgxMnwupHIkmRSoWhzVI0s67+bWZPAUuyfOu+K9mRmS0F/hLY4u5ZF/M0s63AVoCOjo4r+fjy0dcXbu5Sl48kSUNDmO6hszPqShJj1vB393fP9D0zO25mS939WCbcT8ywXSPwDeC33X3HZfb1IPAgQFdXVzI7AI8fD7MeiiRJTU044x0Y0FlvkeTavNwObMm83gJ8ffoGZlYF/B3wZXd/NMf9lbeJiTDqoaEh6kpEii+V0g1fRZRr+H8WuNnM9gI3Z95jZl1m9sXMNu8D3gp8yMyezzxen+N+y9O5c2Giq/SsJ2Qi5aeuTjN9FlFOKePup4B3Zfl6N/Armdd/BfxVLvtJjN5eBb8kV21t+BsYHg7rV0hB6apiXLiHVs+CBVFXIhINs/Do64u6kkRQ+MfF0JBm8BSpqtKQzyJR+MeF5jYRCaN+Tp6MuopEUPjHxblzGtsvUl0dpnkeG4u6krKntImLU6c0pUOcjPdDz38Oz1Jc7lrcvQgU/nHgzuE9e3jHJz7Bhve+l2vf9z7+5K//Ouqqkm3wX2DsQHiW4kqlFP5FoHGFcTA4SBr4g098gjdecw3nL1zgTR/4ADffeCMbV6+OurpkOXEfDPwTkFlY/OT/gJO/B3Vvg0X3R1paYlRVwenTcNVVUVdS1tTyj4OBAZa2tvLGa64BYEF9PRs6OzlyIutsGVJICz8C6SVcbBelIb0UFn40yqqSpbZWI36KQOEfB2fPhgUtMn5y9CjP7dnDjZs2RVhUQlWugOaPAGNATXhu/jWoXB5xYQlSWQmDg+FudykYhX8cnD7904u9/QMD/Kff/E3++Dd+g0bN8RONgafAasNBwGrDeyk+9fsXlPr8I/Twww9z33/7NOsOHaZ68SK2fvRjfOGb3+TOW27hF9/5zqjLS67GD0DLPZBuhYbNMHY86oqSaXAQmrXoX6Go5R+Rhx9+mK1bt9Jz6DAGHDl+gg9v20atGZ+8666oy0u2mmtD8EN4rtkYbT1JVFERwl8KRuEfkft+aysDAwNMTuZwAeidmOAffriD199xB6+/4w4e/xcNM5SESqcV/gWmbp+IHDoafrEnw78BeCNg4073V74SVVki8TB50VcKRi3/iEwuUzl9za4lS7KtmCmSMOm05rsqMIV/RO6//37qaiuYOodnTXWKu+++O7KaRGJD3T4Fp26fiNx5550wsp8/u+8Bxo8dZ+mSRdy99RfZvHlz1KWJRM8szPEzOqppzgtE4R+hO3/5v3Pn9f8xTGGrRVxELqXwLxh1+0RtcFBLN4rMRHf5FozCP2oDAwp/kZko/AtG4R+1iYnQvykil5qYiLqCsqXwj5rCX2Rm7lFXULYU/lFT+ItkNzniRwpC4R81hb/IzBT+BaPwjwOFv8il3BX+BaTwjwP9gotcykwNowJS+EctlVL4i2TjrvAvIIV/1BT+IjNT+BeMwj9qGtEgMqP/8uu/zqJFi9ik9azzTuEftSkLt4vIa33o/e/nm9/8ZtRllCWFf9RqamBsLOoqRGLprW99Ky0tLVGXUZYU/lGrq1P4i8xEM3oWjMI/arW1mrxKZCZV09e6k3xR+Eetrg7Gx6OuQiQ2nnjiCf7Dv/8F/t3mzXRevZrHHnss6pLKkuYSjlpVlUb7iGQ88cQT/N799zM2NEQ1cPBwD5/+9Kdpa2uLurSyk1PL38xazOxJM9ubeV54mW0bzeyImX0hl32WHfVpivzUA//rfoaGhkgDkyv4Dg0N0dPTw/Lly/nSl74UZXllJdeW/73A0+7+WTO7N/P+t2bY9jPAP+W4v/Kj8Bf5qVd7h4AQTH1Tvm5m9PT0RFJTucq1z/824KHM64eA92TbyMzeBCwGvp3j/sqPwl/kp5YsWQKE8B+Y8vWOjo5I6ilnuYb/Ync/BpB5XjR9AzNLAX8A3JPjvspTZaXu8hXJuPvuu6mpTlHBxW6futoK7r///ijLKkuzdvuY2VPAkizfum+O+/gY8Li7H7ZZ5ukws63AVkjYkX7BAhgeDjd8iSTY5s2bYfQIX/mzR+nuPcXKjuXc/z+3cuedd0ZdWtkxz6HFaWZ7gLe7+zEzWwp8x93XT9vmYeAtwATQAFQB/9vd773cZ3d1dXl3d/e8ayspL78Mhw9Dc3PUlYjEQ28vvOMdUF0ddSUlx8yedfeu2bbLtdtnO7Al83oL8PXpG7j7ne7e4e6dwKeAL88W/InT3AwjI1FXIRIPY2NhCLSCv6ByDf/PAjeb2V7g5sx7zKzLzL6Ya3GJUV+vqWtFJg0NQWtr1FWUvZyGerr7KeBdWb7eDfxKlq//BfAXueyzLNXWhnn9JybCs0iSKfyLQkkTB6kUNDWFi74iSecODQ1RV1H2FP5x0doaWjwiSece5rySglL4x0VTk6Z2FhkdDcGv2TwLTuEfF/X1UVcgEr3BQfX3F4nCPy5qa8Pdvmr9S5INDyv8i0ThHxdmcNVV0N8fdSUi0XHXzY5FovCPk8WLdbOXJNfQEDQ2hrNgKTiFf5w0NUFFRRjvL5I0/f2wYkXUVSSGwj9OKipgyRK4cCHqSkSKb2ICWlqiriIxFP5xs3SpxvtL8oyMhO4ejXorGoV/3DQ1hWfN7y9Jcv48LF+uOa6KSOEfN1VVYajbwMDs24qUi/FxaG+PuopEUfjH0bJlCn9JjrGxcI/LggVRV5IoCv84amkJ3T7q+pEkOH8+NHg0o21R6acdRzU14Yavc+eirkSk8EZHQ3+/FJXCP65WrtQUz1L++vvDNS51+RSdwj+umprCH4SGfUo5GxiAVauiriKRFP5xZQZXX62uHylfIyOhi1MTuUVC4R9n7e3hrl/N9CnlqK8PVq/Whd6I6KceZ+l0OCXu64u6EpH8mpy/asmSaOtIMIV/3C1bFm6A0bBPKSfnzoVJ3Kqro64ksRT+cVdXF1pHmudfysnIiGbwjJjCvxSsWhVGRaj1L+Xg/Hloawtz90tkFP6loLk5tP7V9y+lzj2s07t+fdSVJJ7Cv1SsWxdOlbXQi5Syvr5wHUut/sgp/EtFQ0O46/fMmagrEZmf8fEwlcOaNVFXIij8S8vq1eG0WeP+pRSdPRt+h+vqoq5EUPiXlpoaWLs2/BGJlJKxsXDXemdn1JVIhsK/1KxYEW7+GhmJuhKRuTt9Oly3qqqKuhLJUPiXmspKuOYatf6ldAwPh7NWTdscKwr/UrR0aZjx88KFqCsRmd2ZM7BhQ5inSmJD4V+KUil43evCXb/j41FXIzKzs2fDwkSLF0ddiUyj8C9VTU3hRplTp6KuRCS74eFwX8qGDeFir8SKwr+UdXaGg4Dm/ZG4cQ/dPdddF/r7JXZyCn8zazGzJ81sb+Z54QzbdZjZt83sJTPbbWaduexXMioqwh/XwIDG/ku8nDkDHR3q7omxXFv+9wJPu/ta4OnM+2y+DHze3TcANwAnctyvTGpogI0bw1A6kTgYGgoNE83fE2u5hv9twEOZ1w8B75m+gZltBNLu/iSAu/e7+0CO+5WpVqwIS+Fp4jeJmnv4PfyZn9GY/pjLNfwXu/sxgMzzoizbrAPOmtnfmtlzZvZ5M9OYr3xKpWDTpjBvirp/JEqnT4cpyLUub+zNGv5m9pSZvZjlcdsc95EG3gJ8CrgeWA18aIZ9bTWzbjPr7u3tnePHCxDmS9m0CU6e1Lz/Eo3+/nBxVxO3lYT0bBu4+7tn+p6ZHTezpe5+zMyWkr0vvwd4zt33Z/7NY8BNwJey7OtB4EGArq4uJdiVWrYsLI934IAutElxDQ2FKUd+9mfDXegSe7l2+2wHtmRebwG+nmWbZ4CFZtaeef9OYHeO+5WZrF8fgl8XgKVYxsZCP/+b3hQGIEhJyDX8PwvcbGZ7gZsz7zGzLjP7IoC7jxO6fJ42sx8BBvzfHPcrM5m8+7emJiyXJ1JIExOhq/G666ClJepq5ArM2u1zOe5+CnhXlq93A78y5f2TwHW57EuuQFUVvPGN8K//Gk7HdZONFEpvL1x9tSZtK0G6w7dc1ddDV1e4BqARQFIIp06FLsZ166KuROZB4V/OFi4Mp+MnT2rtX8mvc+dCA+O660JXo5Qc/V8rd8uWhdW/ens1BFTyY2AgzCb7hjdoZE8JU/gnwZo1YfH3Eyd0AJDcDA6Gx/XXay3eEqfwT4JUKkyr29GhA4DM3+BgaPXfeGOYTVZKmsI/KVKpMAGcDgAyHwr+spPTUE8pMZMHAIDDh6G9XYtsyOwGBkL4K/jLilr+STN5AOjsDGcAGgUkl9PfH1bkuukmBX+ZUcs/iVIpuOaaMOf63r3hDECLa8t0586F55tu0rQNZUgt/6QyCzfnbNgQhoGOjkZdkcTJmTOhQXDjjQr+MqWWf9KtXh2G7D3/fHiur4+6IonS5Fw97e1hjqjq6qgrkgJRy19gyRJ485vDH/6ZM1FXI1EZHQ3Xga6+OswNpeAvawp/CRobw1zszc1w/LguBCfNhQtw9myYlnndOk3ZkAD6PywXVVeHFt+aNaEFqOsAyXDmTDjYv/nN4SxQEkF9/vJaqVRo+TU26jpAuZuYCBf7Fy0KE7RpwfVSpZBHAAAGrUlEQVREUctfsluyBH7u58KdwKdO6Y7gcjM0FM7u1qwJZ3sK/sRR+MvMFiwI1wGWLw9BMTgYdUWSq4mJcDAfGQnDONW/n1jq9pHLq6oKdwQvWQI7d4ZhgC0tCoxSNDAQlvZctSq0+DUdc6LpL1jmpqUFfv7nw7QQvb1hdIiUhsm+ffdwJrdhg4Jf1PKXK5BOw/r1Yem+F18MgdLSoqkh4qy/Pxyo164NLf60/uQlUMtfrlxzc2hBrl0b+o8n54CR+BgbC9dp0ulwxrZ2rYJfXkO/DTI/FRXhTtBFi2DPnnBjWH295oGJ2thYuFnLLFyrWb5cZ2aSlcJfcrNgAXR1hRuFXn45HAQaGnRvQLGNj4fQh9DKX7FC/fpyWQp/yY+FC+GGG+D06XAmcOJEODDU1kZdWXmbnI9pYiKciXV0aE4emROFv+SPGbS2husBJ0/Cj38cDgKNjVBTE3V15cU9tPRHR8OF3M5O/Yzliij8Jf/MwpTAra0h/H/843BRuLY2dAlp6cj5Gx2Fvr4Q/itWhOCvq4u6KilBCn8pnFQq3By2aFFopR48CK++Gi5ANjaqT3qu3MOQzcHB0Lpfvz78XNXSlxwo/KXwUqlwP0BLSwiw48fhwIHQV62zgZmNjoYzpvHxcG/F614Xrq3o7mrJA/OYTthlZr3AwajrANqAk1EXcYVKreZSqxdKr+ZSqxdU83ytdPf22TaKbfjHhZl1u3tX1HVciVKrudTqhdKrudTqBdVcaDp/FBFJIIW/iEgCKfxn92DUBcxDqdVcavVC6dVcavWCai4o9fmLiCSQWv4iIgmk8J/GzFrM7Ekz25t5XjjDdh1m9m0ze8nMdptZZ3ErfU0tc6o5s22jmR0xsy8Us8ZpNcxar5m93sy+b2a7zGynmf1SRLXeYmZ7zGyfmd2b5fvVZva1zPd/EOXvQaae2er9ZOb3daeZPW1mK6Ooc1pNl615ynbvNTM3s0hH08ylXjN7X+bnvMvMvlLsGufE3fWY8gA+B9ybeX0v8PszbPcd4ObM6wagLu41Z77/J8BXgC/EuV5gHbA28/oq4BjQXOQ6K4BXgNVAFfACsHHaNh8D/k/m9e3A1yL8uc6l3ndM/q4CH42y3rnWnNluAfDPwA6gK871AmuB54CFmfeLovwZz/RQy/9StwEPZV4/BLxn+gZmthFIu/uTAO7e7+4DxSvxErPWDGBmbwIWA98uUl0zmbVed3/Z3fdmXh8FTgCz3riSZzcA+9x9v7uPAF8l1D7V1P+WvwHeZRbZ7cqz1uvu/zjld3UHsLzINU43l58xwGcIjYahYhaXxVzq/VXgAXc/A+DuJ4pc45wo/C+12N2PAWSeF2XZZh1w1sz+1syeM7PPm1mUK2bMWrOZpYA/AO4pcm3ZzOVn/FNmdgOhlfVKEWqbahlweMr7nszXsm7j7mNAH9BalOouNZd6p/ow8ERBK5rdrDWb2RuAFe7+98UsbAZz+RmvA9aZ2ffMbIeZ3VK06q5AIuf2MbOngCVZvnXfHD8iDbwFeANwCPga8CHgS/moL5s81Pwx4HF3P1yMhmke6p38nKXAXwJb3H0iH7Vdye6zfG368Li5bFMsc67FzO4CuoC3FbSi2V225kyj5Y8If19xMJefcZrQ9fN2wpnVd81sk7ufLXBtVySR4e/u757pe2Z23MyWuvuxTPBkO2XrAZ5z9/2Zf/MYcBMFDP881PyzwFvM7GOEaxRVZtbv7jNeYIu4XsysEfgG8NvuvqMQdc6iB1gx5f1y4OgM2/SYWRpoAk4Xp7xLzKVezOzdhIPw29x9uEi1zWS2mhcAm4DvZBotS4DtZnaru3cXrcqL5vo7scPdR4EDZraHcDB4pjglzo26fS61HdiSeb0F+HqWbZ4BFprZZB/0O4HdRahtJrPW7O53unuHu3cCnwK+XKjgn4NZ6zWzKuDvCHU+WsTapnoGWGtmqzL13E6ofaqp/y3vBf7BM1f5IjBrvZkulD8Hbo1JX/Rla3b3Pndvc/fOzO/uDkLtUQQ/zO134jHChXXMrI3QDbS/qFXORdRXnOP2IPTXPg3szTy3ZL7eBXxxynY3AzuBHwF/AVTFveYp23+IaEf7zFovcBcwCjw/5fH6CGr9BeBlwvWG+zJf20YIIIAa4FFgH/BDYHVUP9c51vsUcHzKz3R7lPXOpeZp236HCEf7zPFnbMAfEhqEPwJuj/pnnO2hO3xFRBJI3T4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0Qkgf4/aRmBfgIHeQMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cfa5780>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: set()\n",
" fixed: Point(x=0.401, y=-0.387) Point(x=-0.487, y=-0.283)\n",
" circle: Circle(Point(x=-0.043, y=-0.335), r=0.447)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cf458d0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482d0639b0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: {Point(x=-0.487, y=-0.283)}\n",
" fixed: Point(x=0.401, y=-0.387) Point(x=-0.221, y=0.416)\n",
" circle: Circle(Point(x=-0.011, y=-0.064), r=0.524)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482ccb7ba8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cde1ac8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: {Point(x=-0.487, y=-0.283), Point(x=-0.221, y=0.416)}\n",
" fixed: Point(x=0.401, y=-0.387) Point(x=0.240, y=0.422)\n",
" circle: Circle(Point(x=-0.010, y=-0.048), r=0.532)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cdc0be0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAFpCAYAAAB0yyjhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3XlwHOd55/HvAwxOAiBAkCAhkhB1UJYoWpJFWGcUn0xJ3kRyJY4lR3bkrGz5iCu1lbJrlVI2LjtWVRLHib22dmPF3l05jmLZqcRmJVJsSY5vyhJoXZRkiacF8L4JEOcA7/7xzAhDECCO6Zmemf59qqbmQBP9cDDz6+63335fCyEgIiLJUhV3ASIiUnwKfxGRBFL4i4gkkMJfRCSBFP4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRKxV3ATJYuXRrWrFkTdxkiImVly5Yth0MIy2ZbrmTDf82aNfT09MRdhohIWTGzX81lOTX7iIgkkMJfRCSBFP4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUkghb+ISAIp/EVEEkjhLyKSQAp/EZEEUviLiCSQwl9EJIEU/iIiCaTwFxFJIIW/iEgCKfxFRBJI4S8ikkAKfxGRBFL4i4gkkMJfRCSBIgl/M7vRzF42s+1mdvcMy7zbzF40sxfM7MEo1isiIguTyvcXmFk1cB+wEegDnjKzTSGEF3OWWQv8CXB9COGYmXXku14REVm4KPb8rwK2hxB2hhBGgW8At0xZ5oPAfSGEYwAhhIMRrFdERBYoivBfCfTmPO/LvJbrIuAiM/upmT1hZjdGsF4REVmgvJt9AJvmtTDNetYCbwZWAT82s/UhhOOn/SKzu4C7ALq6uiIoTUREphPFnn8fsDrn+Spg7zTLfCeEMBZC2AW8jG8MThNCuD+E0B1C6F62bFkEpYmIyHSiCP+ngLVmdp6Z1QK3AZumLPNt4C0AZrYUbwbaGcG6RURkAfIO/xBCGvgY8F3gJeCbIYQXzOzTZnZzZrHvAkfM7EXgP4FPhBCO5LtuERFZGAthavN8aeju7g49PT1xlyEiUlbMbEsIoXu25XSFr4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUkghb+ISAJFMaqnSPkbH4d0GsbGJm/Zq99DmLxNTEBVFZj5DSYfp1JQUzN5q66O7/8jMguFv1S+sTEYGpoM9eFhf557S6fP/HdmkxuA7POsqa9PN0xKKgUNDaff6usnNw4NDX4vEgOFv1SW0VEYHIRTp+DoUb8NDfnPsiFdVeXBnL21tBRmL3183G+nTsGJE76BmZg4fUNRXw9Llvht0SJobIS6uuhrEZlC4S/la3jYg35gAI4d86AfGfGfmXmI1tdDU1M89VVX+622duZlxsa87n37JjcKtbXQ1gbt7V57doNg082bJLIwCn8pH+k0nDwJBw54WGaDvqrKQ76x0ffiy0m2Cai5efK17P/z4MHTNwidndDRAYsX+xGLSB70CZLSNjQEx4972B865M0mtbW+R7x4cdzVFUYq5f+/3COWdBr27oXdu/0IYNky3xi0tvpGT2SeFP5SWiYmoL8fjhzxsOvv97BraPBmkKQ2faRSHvTgRwOnTsFzz/njRYtg5UpYutSPIKrUg1tmp/CX+IXgbfZ798L+/d4Onkp5qHV0xF1d6THz92bRIn8+MgI7dsArr/j71tnpt7Y2bQhkRgp/ic/IiLff79jhJ2/r6grX86aS1dVN9hAaH/fmsd5ePw9y3nmwYoU/Fsmh8JfiCsHb8F991dvxq6q8qaLcTtSWqupqfy9bWvwI6uWX4Ze/hOXL4dxz/WggqU1nchqFvxTHyIj3Xtm507tn1tV5G7WCqHBqavw9zm5w9+/3I4Dzz/ejAV1PkGgKfymcEPzipt5e2LPHg765We34xWY2eTQwOupHAi++COecA11dfiJZG+HEUfhLYRw96k0Ox4/7HmZ7u04+loLa2smjgWyPqpYWuPhiv8pYG4HE0LdRonX8ODz1FDzxhLc5Zy9KUvCXFjP/u3R0ePfan/8cnnzSe13NQ29vL295y1u45JJLuPTSS/nCF75QoIIlatrzl2icPAnbt3u78qJFfoJRykNjo98GBmDzZt8grF07p4voUqkUn/vc57jyyivp7+9nw4YNbNy4kXXr1hWhcMmHwl/yMzDgJ3H37PGTiQr98pW9qri/H372M79W4IILTh96YorOzk46OzsBaG5u5pJLLmHPnj0K/zKg8JeFGRyEXbu8y2ZtrQ83oPbiytDc7BuB7IBzq1Z5D6HsRWUz2L17N08//TRXX311kQqVfCj8ZX5GR31Pf9cuhX4ly54TCMG76Pb1+XUCF1447SilAwMD/M7v/A6f//znadE1G2VBZ+Fk7g4ehJ/8xPf2ly5VF8EkMPO/89KlvgH48Y/hwAH+8etfZ825XVRVGed2rea6667j9ttv57d/+7fjrljmSHv+MruREe+22dfne4OVOpqmzKyqyrvrjozw/b/+a774xS+yf2SEALza20dq336W63xPWdGev8wsBO+986Mf+Rg8HR0aIybp6ur4mwe+ROPICDcA7ZmX0+k0f/AH7+OKK67g4YcfjrNCmSPt+cv0hobgpZc8/Nvazj4blZS1EAKW03w39flU+w8NE/DweCNwCHgRGE7DM888U+BqJSoKfzldCN5t88UXfZCwCA/l5xsyUng9PT0MPPssoaeH4SNHqG9vx7q7abr8crq7u6f9NytWrGDf/v2kgYPAYuAG4GRnp18wpgv6yoL+SjLp1Cno6fFJQhYvnpw8JAI9PT1s3ryZkJmWMITA5s2b6enpiWwdMj8hBAaefZbBRx9l+PBhCIHhw4cZfPRR3yDkTjSf4w//8A+pr5uMjhPAUK1x7+23+9XdAwNF+h9IPhT+4vbv9548/f2+tx/hHLEhBEZHR9m6detrG4DNmzezdetWRkdHZwwZKSwzI/T0YOPjp78+Pu6vz3BUdtNNN/Gn//0uOld0YEDnig7+5O4P8dZbb/Xmwp/8xI8epaSp2SfpJiZ8WIZt27w3R01N5KswM6699loAtm7dytatWwFYv3491157rZp+YjR85Mi8Xs+66eYPcNPNHzjzB83NPuXmM8/4kB8XXaTJeUpUJHv+Znajmb1sZtvN7O6zLPcuMwtmNn1johTXyAj84hc+k1ZHR0GCPyt3A5Cl4I9ffXv7vF6fk1TKjx5374YtW3yWNik5eYe/mVUD9wE3AeuA95jZGQN7mFkz8EfAz/Ndp0Tg5EkfxOv4cQ/+Ap+kyzb15Mo9ByDFF0LAursJU/bMQ3W1v57P38bMP1fZcYJOnMizWolaFN/4q4DtIYSdIYRR4BvALdMs9+fAXwHaDYjb/v3+hayq8m6cBZbbxr9+/Xo++MEPsn79+tPOAUjxmRlNl19O48aN1GdmVatfupTGjRtpuvzyaI7KWlu9m/BPf6rzACUmijb/lUBvzvM+4LSRnczsDcDqEMK/mdnHI1inLMTEhLftb99esPb96ZgZtbW1p7XxZ5uAamtr1fQTo+7ubsKGDdidd772WuRdcBsa/LP27LM6D1BCogj/6T4lr+3KmVkV8LfA+2f9RWZ3AXcBdHV1RVCavGZkBJ5/Hg4dKkozz1TdmWaEbKhkNwAK/vhN/RsU5G+SSvnn7le/8qagyy7T1eIxiyIB+oDVOc9XAXtznjcD64EfmNlu4Bpg03QnfUMI94cQukMI3cuWLYugNAH8y7Z5s7e7xhD8WUUJGSldZj4KbPY8wMmTcVeUaFGkwFPAWjM7z8xqgduATdkfhhBOhBCWhhDWhBDWAE8AN4cQdHVPMZw44VMqVlVFetGWyIK1tnoz0ObN8542UqKTd/iHENLAx4DvAi8B3wwhvGBmnzazm/P9/ZKHY8c8+BsaZp2IQ6SoGht9wpgnnoDDh+OuJpGsVHtadHd3B136n4dDh3yohpYWta1K6RoZ8aPTK6/UFKARMbMtIYRZr6XS8A6V6MABH2OltVXBL6Wtrs67G2/Zoq6gRabhHSrN/v1+1e6SJUXryimSl5oa73qcHQ565cp460kI7flXkgMHFPxSnlIpnyrymWdg797Zl5e8KfwrxYEDfuis4JdypQ1AUSn8K4H2+KVSpFKTTUDaABSUwr/cHTvmwd/WpuCXypC7AZhlaGlZOIV/ORscnOzOqeCXSpJKeW+1LVs0M1iBKPzL1eiofzFqatSdUypTXZ3ftmzx6wEkUgr/cjQx4YO0DQ35zEkilaqpCdJpHxF0ynSTkh+Ffzl6+WU/yZvPbEsi5aK11dv+f/lLKNERCcqRwr/cvPoq7Nzpo3OKJMWyZT4c9K9+FXclFUPhX06OHIGtW70vtIZDliQx88/9Cy/AwYNxV1MRFP7lYmDAT3y1tnpPCJGkqa72a1l+8QvNBRABhX85GBnx4M/2fhBJqtpaH568pweGNR14PhT+pS4Eb+oZG/OeDyJJ19jo34vnnvOeb7IgCv9St2eP9+xpa4u7EpHSke0B1NsbdyVlS+Ffyk6d8r1+dekUOdOSJfDiiz4nsMybwr9UTUx48NfV6QSvyHRSKW8Cev55XQC2AAr/UvXqq3D0qI/bIyLTa2ryaSB37467krKj8C9F/f1+OLtkSdyViJS+9na/6v3EibgrKSsK/1IzPu69GBYtUnOPyFxUV/sRwLPP+jhAMicK/1Kze7dfwKJunSJzt2iRD3G+fXvclZQNhX8pOXECXnlFvXtEFqK93ce9Ono07krKgsK/VGSHrW1q8sNYEZmfqipYvNi/R2NjcVdT8hT+paK31w9bGxvjrkSkfNXX+0RH6v0zK4V/KRgZgW3bdBWvSBTa2mDHDp/sSGak8C8FO3f6vXr3yFTjA9D3u34vc1Nd7d+lHTvirqSkKfzjduqUH6Jqr1+mM/QTSO/ye5m71lZvStXQzzNS+Mdt2zYfprZKfwrJcfAe2P1rcPiT/vzwJ/35wXviratcmHn7/yuvxF1JyVLixOn4cdi713soiORq+zCkVgDZpsAUpDqh7SNxVlVeWlp81i91/ZyWwj8uIfiE1IsWaUpGOVPNamj9MJAG6v2+9UNQsyrmwspMczO89JLG/Z+Gwj8uhw7BsWO6kldmNvgYWINvBKzBn8v8NDZ6u7/m/T2DupfEYXzc90Y0YqecTcv7YMknINUOTTdB+kDcFZWnxYv9+7Z0qXrU5dCefxz27fMLuurr465ESln9pR784Pf16+Ktp1zV1fm1NHv2xF1JSYkk/M3sRjN72cy2m9nd0/z8j83sRTN7zsweN7Nzo1hvWRof9+Fn1bVTpHja2vx7p2EfXpN3+JtZNXAfcBOwDniPmU3dRXka6A4hXAb8M/BX+a63bB065Jef19TEXYlIcqRSvuN16FDclZSMKPb8rwK2hxB2hhBGgW8At+QuEEL4zxDCYObpE0Byuyzs3Ok9EESkuFpafMjnEOKupCREEf4rgd6c532Z12ZyJ/BIBOstPydO+K2hIe5KRJKnvt6vqD9+PO5KSkIUp76n66Q+7abVzN4LdANvmuHndwF3AXR1dUVQWol59VW/mldE4lFfr+FUMqLY8+8DVuc8XwXsnbqQmb0duAe4OYQwMt0vCiHcH0LoDiF0L1u2LILSSsjwMPT1qXunSJyam2H/fu9tl3BRhP9TwFozO8/MaoHbgE25C5jZG4Av48GfzKst9u/38Xs0ho9IfMx81M+9Z+yfJk7eSRRCSAMfA74LvAR8M4Twgpl92sxuziz2WaAJ+JaZPWNmm2b4dZVpfNyHl9UYPiLxW7wYdu1K/GTvkVzuFkJ4GHh4ymt/lvP47VGsp2wdPerdO1tb465ERFIpD/5Dh6CzM+5qYqM2iGLYscMHcBOR0tDS4t2uE9ztU+FfaCdP+gBuCn+R0lFf79/NEyfiriQ2Cv9C27dPg0mJlKLa2kSf+FX4F1II/uHSFb0ihZHPHMdNTf79TOhY/wr/QhoY8P79GsdHpDDymeM4lfKB3vr7o6+rDKg9opCOHPE+xSISrYP3wOAPgcwonYc/CYc/A41vgo575/57Uinv9ZPAbtja8y+kvj7N1CVSCFHNcdzcDL29iez1o/AvlMFBP5ysq4u7EpHKE9UcxzU13jR76lQBiixtCv9COXpUE7OLFFJUcxxXVXkTbcKozb9Q9uxR336RQopqjuOmJm+iPTdZEwxqz78QRkZ8z1/j9osUTlRzHGcv+Boaiq62MqDwL4TsZBFq9hEpD2Z+JX6CKPwLYc8eaGyMuwoRmavGRv/eJojCP2rj43D4sMJfpJw0NvpJ3wQN86zwj9rQkF8urklbRMqHmff1T1CXTyVU1BL04RGpKFVVifr+KvyjduyYxvIRKUe1td5LLyEU/lE7ckRdPEXKUUNDoi72UvhHKZ32kTxra+OuRETmq6bGz9mNjsZdSVEo/KM0OOgne9W/X6R8DQ7GXUFRKPyjNDio4JdJ+Uw0IvEw86P3BFD4R+nIEY3iKZPymWhE4lFfn5h2fw3sFqWjR/3DI8kW1UQjUnwJCn/t+UdlbEwne8VFNdGIFF8q5Sd8R0birqTgFP5RUXu/ZEU10YjEJwEnfRX+UUnAnoLMQ1QTjUg8EvB9Vpt/VEZHtecvk6KaaESKr7rap3ascAr/qAwOenuhCPhEI1mp9slJR6T0pVKJmNhFzT5RGRpS+ItUglQqEQO8KfyjcuqUwl+kEmjPX+ZleFjhL1IJFP4yZxMTfsJX4S9S/qqq/Dtd4bN6KfyjMDYWdwUiErUK/14r/KNQ4R8SkUSq8O+1wj8KFf4hEUmkCh/XP5LwN7MbzexlM9tuZndP8/M6M3so8/Ofm9maKNZbMir8QyKSSBW+U5d3+JtZNXAfcBOwDniPma2bstidwLEQwoXA3wJ/me96S8rYmK7uFakk1dUV3+Mnij3/q4DtIYSdIYRR4BvALVOWuQV4IPP4n4G3mVVQWqbTCn+RSpLt8VPBogj/lUBvzvO+zGvTLhNCSAMngMq53l1TN4pUHoX/rKZLvbCAZTCzu8ysx8x6Dh06FEFpRaLwF6k8Cv9Z9QGrc56vAvbOtIyZpYDFwNGpvyiEcH8IoTuE0L1s2bIISiuSEBT+IpXEzL/XFSyK8H8KWGtm55lZLXAbsGnKMpuAOzKP3wV8P4QKemcrfA9BJHESEP55j0cQQkib2ceA7wLVwP8JIbxgZp8GekIIm4CvAv9gZtvxPf7b8l1vSdGev0hlUfjPTQjhYeDhKa/9Wc7jYeB3o1hXSYrygzI+APv+ADr/L1Q3RfM7RWR+ErBDpyt8o1AV4ds49BNI7/J7EYlHAsJfw1BGoaoq/z3/g/fA4A+BzFWFhz8Jhz8DjW+CjnvzLlFE5iEB4a89/yhE0ezT9mFIrWBye5yCVCe0fSTf6kRkIaI8oi9Blf2/K5Yo9vxrVkPrh4E0UO/3rR+CmlURFCgi86bwl1mlUtGc8B18DKzBNwLW4M9FpPgmJio+/NXmH4WammjCv+V9sOQTkGqHppsgfSD/3yki8zc+Dg0NcVdRUAr/KNTWRvN76i+dfJxq95uIxCOq73WJquzjmmKpqYm7AhGJWoV/rxX+UajwD4lIIlX491rhH4UK/5CIJFKFf68V/lGoqvL2wXQ67kpEJF/Znj6pyj4lqvCPSmOjwl+kEqTTFd/TBxT+0WloUPiLVIJ0GhYtiruKglP4R0XhL1IZtOcv86JmH5HKMDam8Jd5qKur+MkfRBJhYgLq6+OuouAU/lGp8KsBRRKlri7uCgpO4R+VBJwgEkmMxsa4Kyg4hX9UUinfAIyOxl2JiCxUOu17/drzl3lZuhSGhuKuQkQWamgI2pMxoKLCP0ptbd5TQETK08iIwl8WYNEi9fgRKWcTE4k5f6fwj1L2JJE2ACLlyUzhLwtQXQ3NzX7oKCLlZXTUL+6q8NE8sxT+UWtvh+HhuKsQkfkaHvZOGwmh8I+aTvqKlKeREf/+JoTCP2oJaS8UqUhNTXFXUDQK/6g1NvpEEBMTcVciInMVgp/sTcCVvVkK/6hVVUFHB5w6FXclIjJXg4Pe3l/hs3flUvgXwjnn6EpfkXIyOOjf2wRR+BdCa6sfQqq/v0h5CCFRJ3tB4V8YtbWwZIn2/kXKwfAwtLQkYgz/XAr/Qlm1yg8lRaS0nToFq1fHXUXRKfwLpa1NPX5EysH4uB+pJ0xe4W9mS8zsUTPblrk/o9HMzK4ws81m9oKZPWdmt+azzrLR0OBDPehqX5HSNTrq3TsTeH1Ovnv+dwOPhxDWAo9nnk81CPx+COFS4Ebg82bWmud6y8OqVTAwEHcVIjKT/n7/nprFXUnR5Rv+twAPZB4/ALxz6gIhhFdCCNsyj/cCB4Flea63PLS3q+lHpJSNjydqPJ9c+Yb/8hDCPoDMfcfZFjazq4BaYEee6y0PTU3eg0Bj/YiUnnTae+Y1N8ddSSxmvZzNzB4DVkzzo3vmsyIz6wT+AbgjhDDt7rCZ3QXcBdDV1TWfX1+azPyQcvfuRJ5QEilpAwN+YVdVMvu9zBr+IYS3z/QzMztgZp0hhH2ZcD84w3ItwL8DfxpCeOIs67ofuB+gu7u7Mq6QWrECtm+PuwoRmWp0NHFX9ebKd5O3Cbgj8/gO4DtTFzCzWuBfga+FEL6V5/rKT3Ozt/3rxK9I6Rga8gu7WlririQ2+Yb/XwAbzWwbsDHzHDPrNrOvZJZ5N/DrwPvN7JnM7Yo811tezjtPF3yJlJL+frjggkT28snKawi7EMIR4G3TvN4DfCDz+OvA1/NZT9lrb5888ZuQKeJESlY67d/DZcnodDiTZJ7pKLaqKjj/fDh+PO5KROTECf8+VlfHXUmsFP7FsiLTYUr9/kXiE4L37e/sjLuS2Cn8i6WuzgePOnky7kpEkuvkSe/h09AQdyWxU/gX0+rV3r1MROIxMgLnnht3FSVB4V9MLS0+0Yt6/pS+8QHo+12/l8owPOxdrxcvjruSkqDwL7YLLpi2z//wyAhX/f7vc/l73sOl7343n/zyl2MoTl4z9BNI7/J7qQwnTya+e2eu5MxWXCra2739f3TUxxXJqKut5ft/93c0NTYylk7za3feyU3XXcc1r399jMUm0MF7YPCHQGY8psOfhMOfgcY3Qce9sZYmeUinfXL2hHfvzKU9/2KrrobXve6Mbp9mRlNjIwBj6TRj6TSmPZTia/swpFYwuV+UglQntH0kzqokX8eOwcUX+wZAAIV/PDo7ffKIKXP8jo+Pc8Xv/R4dGzey8eqruXr9+pgKTLCa1dD6YSAN1Pt964egZlXMhcmCDQ/70XaCx/GZjsI/DlVVsG4dYUq3z6qqKp558EH6Hn6YJ194ga0aEC4eg4+BNfhGwBr8uZSvkydh3brEX9Q1lY6BYvKD55/n+Qcf5EePPsqugwdZvmIFv7FxI9dffz3d3d28ecMG/mPzZtZfeGHcpSZPy/tgyScg1Q5NN0H6QNwVyUKdOuW9ezrOOtVIImnPPwYhBB5+5BE+9dBDDBw8SAB69+/naw8+yE9/+lMGh4Z47MknuXjNmrhLTab6Sz34we/r18VbjyzcwABccol6+ExD4R8DM+Ohhx7iSDpNH9CK9y15aXyc//FP/8RVd9zBxquv5jdvuCHmSkXK2IkTPqxKW1vclZQkNfvEpLe3F4CdwEpgEXAJYOk0Pd/8ZoyViVSAEPxq3rVr466kZGnPPyarV68GYBDfAGT3TZavmG7GTBGZl2PHfBiHhM7POxcK/xiEELj11lupyYzt/6vM63XV1fzGxo2EUBkzWIrEYnzcR889//y4KylpavaJgZnxjne8A4CHHnqI3t5eBlas4M7rruOK66/XxV0i+Th2DC680CdQkhlZqe5ldnd3h56enrjLKKgQwmTQj48TfvYzLAS/AExE5m9w0Pf6r78+sVfzmtmWEEL3bMup2SdGp+3hV1djl1/u/ZLHx+MrSqRcTUz43LyXX57Y4J8PhX8paWnxcX+OHIm7EpHyc+SI9+5pbY27krKg8C81a9b4h7e/P+5KRMrHwID37NFJ3jlT+Jeaqip4/et9MKp0Ou5qRErf+Li39b/+9Rq/Zx4U/qWoqckHolLzj8jsDh/25tKWlrgrKSsK/1K1erVPPDFl3H8RydHf78M3aByseVP4lyozuPRSP6QdG4u7GpHSk0578+hll3lzqcyL3rFS1tjoGwA1/4ic6ehR/37oupgFUfiXunPO8Zs2ACKTjh/3ZtFVmmFtoRT+pS7b/FNfr+6fIuDdOqurvXePhkJZMIV/OaithQ0bvO1/eDjuakSK5r9+6lN0bNzI+ne/218YGfHvwIYNPi+vLJjCv1wsWgTd3T4fqfr/S0K8/7d+i//44hf9STrtzT0bNmio5ggo/MtJW5v3bDh82McxEalwv37llSzJ9t8/csSbQJcujbeoCqHwLzcrV/r4JYcOxV2JSPGMj8N550FXV9yVVAyFfzm68ELo7FQPIEmG48f9BO/rXqcTvBFS+JejqipYv97PA5w4EXc1IpF65JFH+M3f/C90d3dz6ztu4kdPPum93XQhV6T0bparmhq48kqfqHpoKO5qRCLxyCOP8Jl772Xf/gPUAUcPHuK//f3fc+LkybhLqzh5hb+ZLTGzR81sW+a+7SzLtpjZHjP7Uj7rlBwNDd4DqL8fRkfjrkYkb/f9z3sZHh4mBbQAPwSOjYzQ19fHqlWr+OpXvxpzhZUj3z3/u4HHQwhrgcczz2fy5/jfUqK0eLFvAI4f1wZAyt7+Qx78S4AtQHZUKzOjr6+PO++8M77iKky+4X8L8EDm8QPAO6dbyMw2AMuB7+W5PpnOsmXaAEhFWLV8+WvBn9ufrUu9fCKXb/gvDyHsA8jcd0xdwMyqgM8Bn8hzXXI22gBIuRsb44/e+15+WWenBX9jQzX33ntvbGVVqlnD38weM7Ot09xumeM6Pgo8HELoncO67jKzHjPrOaR+7PO3bJlf/agNgJSbsTE4epS3fvzjfOZ/f4pzu1ZhZpzbtYr77/skt99+e9wVVhwLISz8H5u9DLwP7T/oAAAMdElEQVQ5hLDPzDqBH4QQXjdlmX8EbgAmgCagFvhfIYSznR+gu7s79PT0LLi2RDt4EHp6/HxAfX3c1Yic3egoHDvmvddWrIi7mrJnZltCCN2zLZdvs88m4I7M4zuA70xdIIRwewihK4SwBvg48LXZgl/y1NEB11zjox9qIDgpZcPDfqT6xjcq+Iss3/D/C2CjmW0DNmaeY2bdZvaVfIuTPCxZAldfDadO+eTWIqVmaMi7KV99tTdZSlHl1exTSGr2iUh/P/z8535RWFNT3NWIuFOnfHjmq67y5kmJTLGafaTUNTfDtdf6mCgaC0hKwbFjPlDbNdco+GOk8E+CRYv8i7Z0qZ8M1nDQEoeJCf/8tbbCdddpTP6YKfyTorYWrrhicjhodQWVYhob8+C/4ALv1aNZuGKXirsAKaKqKh8OuqUFnn7au4HqPIAUWrbTwYYN6tFTQrTnn0QdHXD99X4e4OjRuKuRSnbsmDf3XHedgr/EKPyTqqnp9PMA4+NxVySVZGICDhzwqUevu86PNqWkKPyTLHse4KKLdB5AopNt37/wQnjDG/xzJiVHbf5JZ+Yn4Zqb4ZlnfLq81ta4q5JydeKEh7/a90ue9vzFdXTADTd48B84oKMAmZ+xMf/cNDf750jBX/K05y+TGhq8G96BA/D8835U0NqqSbPl7I4f93NGl18O55yjz0uZUPjL6cx8r621FV5+Gfr6/KSd+mXLVNnRODs74ZJLNIJsmVH4y/Tq631PrrPTjwIGBnywOO3VSQge+mbett/Roc9FGVL4y9llzwVs3w67d2uOgKTLDsHc1eW9xHREWLYU/jK72lpYt86bg5591o8C2tq8Z5Akw8SE7+3X1PgQzEuXxl2R5EnhL3O3ZIkfBezaBTt2+HARbW1+L5VpYmLyhO5558H55/sGQMqewl/mJ5XyweFWr/ZmoF27PAzUK6iyhOB99kdH4dxzPfgbGuKuSiKk8JeFqa+Hiy/2tt9du+DVV715aPFibQTKWQhw8qRPtLJqle/pL1oUd1VSAAp/yU9jI1x6qe8d7twJe/b4SUBN0lF++vt99M1zzpm86lsqlsJfotHUBJddBmvWeM+g/ft9w6AAKX0DAz7sckeHj8WjDXciKPwlWi0tfpXw8eOwbZsP8FVT46+rd1DpmJjw5p3RUT+Rf9llfvJeEkPhL4XR2gpvfKMHTF8f9PZ64LS06DqBOA0Pe/OOmbfpr1rlfxOdp0kchb8UVkuLXyOQnT5y504/Gqit9Z+pm2jh5e7lL1oE69d7E4+GWk40hb8UR02Nn0js7PQg2rPHjwgmJvy8gI4Gojcy4u+1Gaxc6Xv56o0lGQp/KS4zD6DFi32yj4MHTz8aaGryawlkYdJpP4E7OjrZE2v5cu3lyxn0LZP41Nb63ujKlX5B0b59fhsZ8eagpiYdEczF8LAH/sSEv6fnnDM5Mqv28mUGCn+JX3begNZWv3BsYMDHkdmzx88TgG8EGhvVYwg85E+dgqEhf97S4u/bkiW+wVTgyxwo/KW0mPk5gOZmv3p4ZGTyqODAAR9jJpXykEtSU8bYmG8Ux8Z8A9jR4WPoa5RVWSCFv5S2ujoPuo4OD/7+fj8a2LvXryUA32DU1XkIVsIGYWzMm3JGRny4BfD/W1cXLFumayYkEgp/KR/ZyeVbW73r6OioD0cwOOjNREeP+lFCVm3t5AahVJtCRkY86EdHJ4O+sRHa270ZZ9Eif14JGzUpKQp/KV+1tX5rbfWTnOC9XaZuEA4fPv3fmXnTUe6tujraDUQIfqSSTp9+y/4sW0dTk3d/bW31kG9s1JDJUhQKf6ksqZQ3i7S0eI8X8BAeGvLmlLGxySOGoSG/DQ6evuc9EzNfJns/27K1tT4MclOT32f34Gtq/NbQoOYbiY3CXypfdbUH8NmE4Hvm2Q3E2NhkwIdw+s3s9Bv4fTbUUym/L9WmJhEU/iIuN7xFEkADq4iIJFBe4W9mS8zsUTPblrmfdkxYM+sys++Z2Utm9qKZrclnvSIikp989/zvBh4PIawFHs88n87XgM+GEC4BrgIO5rleERHJQ77hfwvwQObxA8A7py5gZuuAVAjhUYAQwkAIYTDP9YqISB7yDf/lIYR9AJn7jmmWuQg4bmb/YmZPm9lnzUz920REYjRrbx8zewxYMc2P7pnHOm4A3gC8CjwEvB/46jTrugu4C6Crq2uOv15EROZr1vAPIbx9pp+Z2QEz6wwh7DOzTqZvy+8Dng4h7Mz8m28D1zBN+IcQ7gfuB+ju7p7lKhoREVmofJt9NgF3ZB7fAXxnmmWeAtrMbFnm+VuBF/Ncr4iI5CHf8P8LYKOZbQM2Zp5jZt1m9hWAEMI48HHgcTN7HjDg7/Ncr4iI5CGvK3xDCEeAt03zeg/wgZznjwKX5bMuERGJjq7wFRFJIIW/iEgCKfxFRBJI4S8ikkAKfxGRBFL4i4gkkMJfRCSBFP4iIgmk8BcRSSCFv4hIAin8RUQSSOEvIpJACn8RkQRS+IuIJJDCX0QkgRT+IiIJpPAXEUkghb+ISAIp/EVEEkjhLyKSQAp/EZEEUviLiCSQwl9EJIEU/iIiCaTwFxFJIIW/iEgCKfxFRBJI4S8ikkAWQoi7hmmZ2SHgV3HXASwFDsddxDyVW83lVi+UX83lVi+o5oU6N4SwbLaFSjb8S4WZ9YQQuuOuYz7KreZyqxfKr+ZyqxdUc6Gp2UdEJIEU/iIiCaTwn939cRewAOVWc7nVC+VXc7nVC6q5oNTmLyKSQNrzFxFJIIX/FGa2xMweNbNtmfu2GZbrMrPvmdlLZvaima0pbqWn1TKnmjPLtpjZHjP7UjFrnFLDrPWa2RVmttnMXjCz58zs1phqvdHMXjaz7WZ29zQ/rzOzhzI//3mcn4NMPbPV+8eZz+tzZva4mZ0bR51TajprzTnLvcvMgpnF2ptmLvWa2bsz7/MLZvZgsWuckxCCbjk34K+AuzOP7wb+coblfgBszDxuAhpLvebMz78APAh8qZTrBS4C1mYenwPsA1qLXGc1sAM4H6gFngXWTVnmo8DfZR7fBjwU4/s6l3rfkv2sAh+Js9651pxZrhn4EfAE0F3K9QJrgaeBtszzjjjf45lu2vM/0y3AA5nHDwDvnLqAma0DUiGERwFCCAMhhMHilXiGWWsGMLMNwHLge0Wqayaz1htCeCWEsC3zeC9wEJj1wpWIXQVsDyHsDCGMAt/Aa8+V+3/5Z+BtZmZFrDHXrPWGEP4z57P6BLCqyDVONZf3GODP8Z2G4WIWN4251PtB4L4QwjGAEMLBItc4Jwr/My0PIewDyNx3TLPMRcBxM/sXM3vazD5rZtVFrfJ0s9ZsZlXA54BPFLm26czlPX6NmV2F72XtKEJtuVYCvTnP+zKvTbtMCCENnADai1LdmeZSb647gUcKWtHsZq3ZzN4ArA4h/FsxC5vBXN7ji4CLzOynZvaEmd1YtOrmIRV3AXEws8eAFdP86J45/ooUcAPwBuBV4CHg/cBXo6hvOhHU/FHg4RBCbzF2TCOoN/t7OoF/AO4IIUxEUdt8Vj/Na1O7x81lmWKZcy1m9l6gG3hTQSua3Vlrzuy0/C3+/SoFc3mPU3jTz5vxI6sfm9n6EMLxAtc2L4kM/xDC22f6mZkdMLPOEMK+TPBMd8jWBzwdQtiZ+TffBq6hgOEfQc3XAjeY2UfxcxS1ZjYQQpjxBFvM9WJmLcC/A38aQniiEHXOog9YnfN8FbB3hmX6zCwFLAaOFqe8M8ylXszs7fhG+E0hhJEi1TaT2WpuBtYDP8jstKwANpnZzSGEnqJVOWmun4knQghjwC4zexnfGDxVnBLnRs0+Z9oE3JF5fAfwnWmWeQpoM7NsG/RbgReLUNtMZq05hHB7CKErhLAG+DjwtUIF/xzMWq+Z1QL/itf5rSLWluspYK2ZnZep5za89ly5/5d3Ad8PmbN8MZi13kwTypeBm0ukLfqsNYcQToQQloYQ1mQ+u0/gtccR/DC3z8S38RPrmNlSvBloZ1GrnIu4zziX2g1vr30c2Ja5X5J5vRv4Ss5yG4HngOeB/wfUlnrNOcu/n3h7+8xaL/BeYAx4Jud2RQy1vgN4BT/fcE/mtU/jAQRQD3wL2A48CZwf1/s6x3ofAw7kvKeb4qx3LjVPWfYHxNjbZ47vsQF/g+8QPg/cFvd7PN1NV/iKiCSQmn1ERBJI4S8ikkAKfxGRBFL4i4gkkMJfRCSBFP4iIgmk8BcRSSCFv4hIAv1/L97SHvTgdmQAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482cd45940>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[dbg]\n",
" points: {Point(x=0.240, y=0.422), Point(x=-0.487, y=-0.283), Point(x=-0.221, y=0.416)}\n",
" fixed: Point(x=0.401, y=-0.387) Point(x=0.295, y=0.442)\n",
" circle: Circle(Point(x=-0.006, y=-0.017), r=0.550)\n"
]
}
],
"source": [
"def debug(circle, bound=[], seen=set(), future=set(), unvisit=set()):\n",
" if circle.c is None:\n",
" return\n",
" cp = plt.Circle((circle.c.x, circle.c.y), circle.r, color='r', alpha=0.2)\n",
" fig = plt.gcf()\n",
" fig.set_size_inches(6, 6)\n",
" axes = fig.gca()\n",
" axes.set_xlim([-0.75, 0.75])\n",
" axes.set_ylim([-0.75, 0.75])\n",
" axes.add_artist(cp)\n",
" plt.scatter([p.x for p in unvisit-future], [p.y for p in unvisit-future], color='gold', marker='*')\n",
" plt.scatter([p.x for p in future], [p.y for p in future], color='gray', marker='x')\n",
" for i, p in enumerate(bound, 1):\n",
" plt.scatter([p.x], [p.y], color='black')\n",
" axes.annotate(str(i), (p.x, p.y))\n",
" plt.scatter([p.x for p in seen], [p.y for p in seen], color='brown')\n",
" plt.show()\n",
"\n",
"circle = mincircle(points)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Final Output"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"algorithm answer: Circle(Point(x=-0.006, y=-0.017), r=0.550)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAFpCAYAAAB0yyjhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3Xt8XHWd//HXJ5nmnjRpmzRpSxouRaiAXCIg/lgQrEv8RfDCIgIr/hbFXaP7013XReGxK0j3gZddZbW/XavsiiJeHwJ9IPEGIsJSbLgVC5aWUnqd3i9Jc0++vz++E5qmk+YyZ+bMzHk/H495ZGZyOufTycz7nPM93/P9mnMOERGJloKwCxARkcxT+IuIRJDCX0QkghT+IiIRpPAXEYkghb+ISAQp/EVEIkjhLyISQQp/EZEIUviLiERQLOwCxjNnzhzX1NQUdhkiIjnl6aef3u2cq51ouawN/6amJjo6OsIuQ0Qkp5jZa5NZTs0+IiIRpPAXEYkghb+ISAQp/EVEIkjhLyISQQp/EZEIUviLiESQwl9EJIIU/iIiEaTwFxGJIIW/iEgEKfxFRCJI4S8iEkEKfxGRCFL4i4hEkMJfRCSCFP4iIhGk8BcRiSCFv4hIBCn8RUQiSOEvIhJBCn8RkQhS+IuIRJDCX0QkghT+IiIRpPAXEYmgQMLfzC4zs7Vmtt7MbhpnmavM7EUzW2Nm9waxXhERmZ5Yqi9gZoXAMmAJsAVYZWYrnHMvjlpmEfBZ4K3OuX1mVpfqekVEZPqC2PM/F1jvnNvgnOsHfghcMWaZjwDLnHP7AJxzOwNYr4iITFMQ4T8f2Dzq8ZbEc6OdDJxsZk+Y2UozuyyA9YqIyDSl3OwDWJLnXJL1LAIuBhYAvzez05xz+494IbMbgRsBGhsbAyhNRESSCWLPfwtw3KjHC4BtSZZ5wDk34Jx7FViL3xgcwTm33DnX7Jxrrq2tDaA0ERFJJojwXwUsMrPjzawIuBpYMWaZ+4G3AZjZHHwz0IYA1i0iItOQcvg75waBjwO/BF4CfuycW2Nmt5nZ5YnFfgnsMbMXgd8C/+Cc25PqukVEZHrMubHN89mhubnZdXR0hF2GiEhOMbOnnXPNEy2nK3xFRCJI4S8iEkEKfxGRCFL4i4hEkMJfRCSCFP4iIhGk8BcRiSCFv4hIBCn8RUQiKIhRPUVy39AQDA7CwMDh28jV784dvg0PQ0EBmPkbHL4fi8GMGYdvhYXh/X9EJqDwl/w3MAA9PYdDvbfXPx59Gxw8+t+ZHd4AjDweMfb5ZMOkxGJQWnrkraTk8MahtNT/FAmBwl/yS38/dHfDoUOwd6+/9fT4342EdEGBD+aRW1VVevbSh4b87dAhOHDAb2CGh4/cUJSUwKxZ/lZeDmVlUFwcfC0iYyj8JXf19vqg7+qCfft80Pf1+d+Z+RAtKYGKinDqKyz0t6Ki8ZcZGPB1b99+eKNQVAQ1NTB7tq99ZINgyeZNEpkehb/kjsFBOHgQduzwYTkS9AUFPuTLyvxefC4ZaQKqrDz83Mj/c+fOIzcIDQ1QVwczZ/ojFpEU6BMk2a2nB/bv92G/a5dvNikq8nvEM2eGXV16xGL+/zf6iGVwELZtg40b/RFAba3fGFRX+42eyBQp/CW7DA9DZyfs2ePDrrPTh11pqW8GiWrTRyzmgx780cChQ7B6tb9fXg7z58OcOf4IokA9uGViCn8Jn3O+zX7bNojHfTt4LOZDra4u7Oqyj5l/b8rL/eO+PnjlFXj5Zf++NTT4W02NNgQyLoW/hKevz7ffv/KKP3lbXJy+njf5rLj4cA+hoSHfPLZ5sz8PcvzxUF/v74uMovCXzHLOt+Fv2uTb8QsKfFNFrp2ozVaFhf69rKryR1Br18Kf/gRz58LChf5oIKpNZ3IEhb9kRl+f772yYYPvnllc7NuoFUTpM2OGf49HNrjxuD8COOEEfzSg6wkiTeEv6eOcv7hp82bYutUHfWWl2vEzzezw0UB/vz8SePFFmDcPGhv9iWRthCNH4S/psXevb3LYv9/vYc6erZOP2aCo6PDRwEiPqqoqOOUUf5WxNgKRofCXYO3fD+vW+ZOOFRXay89WZoevk+juhqee8hvok0/25wWmaGhoiObmZubPn8+DDz4YcLGSDgp/CcbBg7B+vW9XLi/3JxglN5SV+VtXFzz5pN9gL1o0pYvo7rzzTk499VQOHjyYxkIlSDoOl9R0dfmLjZ54wrfvz50b3lg6kpqKCv/36+qC//kfeO45f5HdBLZs2cLPf/5zPvzhD2egSAmK9vxlerq74dVXfZfNoiI/3IDai/NDZaXfEIwMOLdgge8hNHJR2Rif/OQn+dKXvkTnJDYUkj205y9TM9Jb5He/8008tbXqLZJn/urWW6l7xzs47SMf8X/fnTvhscd8D6H+/iOWffDBB6mrq+Occ84JqVqZLoW/TN7OnfD4435vf86clEL/r269lbolSzjtqqtef27vgQMs+djHWPSe97DkYx9jn9qPQ/Ghd72LX3z96/6Bmf87z5kDW7bA738PO3bw/XvuoampiXe9610sX76c2tparr76ah555BGuu+66cP8DMikKf5lYX59v1+/oCKzb5hEBk3DHd77Dpeeey7r77uPSc8/lju98J6V1yPT82dlnM2vsFdcFBf7vXlrKI1/5Cl//8IeJv/Ya4Hv6dHd3c8MNN3DJJZdwzz33hFC1TJXCX8bnnG/aeewxPwZPXV1gY8QkC5gHfvc7rm9tBeD61lbuf/TRQNYlASou5t/uuYeyvj4uBBoST3d3d3PXXXeFWZlMkU74SnI9PfDSSz78a2qOPRtVQHbs3UvDnDkANMyZw859+9K+Tpm6eDyOw4fHm4B5wIvAzp071cc/h2jPX47k3OG23X37fNe/DAS/hKe9vZ3W1laam5tpbW2lvb39mMvX19cDMAjsBKqAC4HzGhr8fAySExT+ctihQ75df/Vqf4HPyOQhARkbMo+OadaZO2sW23fvBmD77t3UTeNKU5ma9vZ2bl+6lO2Jvfnt8Ti3L1161N9mtLa2NkpGNf8dAHqKi1l67bWwapW/TkCynsJfvHjc9+Tp7PR7+wHPEZssZL7+jW/QNSooLr/oIu5ONBvc/eCDXHHRRYHWIEdbtmwZvb29Rzz3Um8vf/21r7H2tddY8M53ctf99x/x+5aWFm65+WYa6usxoKG+ns/ecguXvP/9vrnw8cf9QH6S1cyNTBCdZZqbm11HR0fYZeS/4WE/LMO6db43x4wZaVlNa2sr2+Px1x+/CnQCQ8C8ujpuvfFG3n3xxVz12c+yKR6nsb6en9xxB7PydZ7eLNHc3EyyBDBg2t+/wUHYvdtfGHbyyZqcJ8PM7GnnXPNEywWye2dmlwF3AoXAt51zd4yz3JXAT4A3O+eU7GHr64MXXvCDsNXVpXXUzfio4Ac4PvHTgI6HHnr9+Yf/4z/SVoMcrb6+/oiN8ujnpy0W80ePGzf6I8kzztBMYlko5W+7mRUCy4AWYDHwATNbnGS5SuBvgadSXacE4OBBP4jX/v1pD34YP0xSChlJ2dj2e4CSkhLa2tpSe2Ez/7nq7PTjBB04kNrrSeCC+MafC6x3zm1wzvUDPwSuSLLcF4AvAb1JfieZFI/7L2RBwbSG752OtIWMpCRZ+/0tN99MS0tLMCuorva9xZ54QucBskwQzT7zgc2jHm8Bzhu9gJmdBRznnHvQzD4dwDplOoaHfdv++vVpbd9PZiRMli1bRjwep76+nra2tuBCRqatpaUlvX+H0lL/WXv+eX/EqfMAWSGI8E82uMvr55DMrAD4KvChCV/I7EbgRoDGxsYASpPXZbB9fzxpDxnJXrGY/9y99prOA2SJIBJgC3DcqMcLgG2jHlcCpwGPmtlG4HxghZkddTbaObfcOdfsnGuura0NoDQB/JftySd9u2tIwS+CmR8ldOQ8gAbuC1UQKbAKWGRmx5tZEXA1sGLkl865A865Oc65JudcE7ASuFy9fTLkwAFYudIHfsAXbYlMS3W1bwZ68kl/FbmEIuXwd84NAh8Hfgm8BPzYObfGzG4zs8tTfX1Jwb59PvhLS8ediEMkFGVlfsKYlSv9NQGScbrIK1/t2uWHaqiqUtuqZK++Pn90evbZmvc5IJO9yEuNv/loxw4/xkp1tYJfsltxse9u/PTT6gqaYRrSOd/E4/DMMzBrVka7copM24wZvuvxc8/5x/Pnh1tPRGjPP5/s2KHgl9wUi/mpIp97DrZtm3h5SZnCP1/s2OEPnRX8kqu0AcgohX8+0B6/5ItY7HATkDYAaaXwz3X79vngr6lR8Et+GL0B2LMn7GrylsI/l3V3H+7OqeCXfBKL+d5qTz+tmcHSROGfq/r7/Rdjxgx155T8VFzsb08/7a8HkEAp/HPR8LAfpK2nByorw65GJH0qKvzMYM8/D0NDYVeTVxT+uWjtWn+Sd/bssCsRSb/qat/2/6c/QZaOSJCLFP65ZtMm2LDBj84pEhW1tX446NdeC7uSvKHwzyV79sAf/+j7QluyaRRE8pSZ/9yvWQM7d4ZdTV5Q+OeKri5/4qu62veEEImawkJ/Lcszz2gugAAo/HNBX58P/pHeDyJRVVTkhyfv6IBeTQeeCoV/tnPON/UMDPieDyJRV1bmvxerV/uebzItCv9st3Wr79lTUxN2JSLZY6QH0ObNYVeSsxT+2ezQIb/Xry6dIkebNQtefNHPCSxTpvDPVsPDPviLi3WCVySZWMw3Ab3wgi4AmwaFf7batAn27vXj9ohIchUVfhrIjRvDriTnKPyzUWenP5ydNSvsSkSy3+zZ/qr3AwfCriSnKPyzzdCQ78VQXq7mHpHJKCz0RwDPP+/HAZJJUfhnm40b/QUs6tYpo2yOx3nbRz/KqVdeyRuvuoo7f/CDsEvKLuXlfojz9evDriRnaNcymxw4AC+/rN49cpRYLMa/fupTnH3KKXQeOsQ5f/mXLDnvPBafcELYpWWP2bMPj3ulJtMJac8/W4wMW1tR4Q9jRUZpmDOHs085BYDK8nJObWpiq8a4OVJBAcyc6b9HAwNhV5P1FP7ZYvNmf9haVhZ2JZLlNm7bxrNr13LeaaeFXUr2KSnxEx2p98+EFP7ZoK8P1q3TVbwyoa7ubt73mc/wtb//e6p0Xii5mhp45RU/2ZGMS23+2WDDBv9TvXtklPb2dpYtW0Y8Hqe+vp6P/vVf841f/IJrL7uM915ySdjlZa/CQv9deuUV0NHRuLTnH7ZDh/whqvb6ZZT29nZuX7qU7fE4DtgWj3PDbbdRasbfXXdd2OVlv+pq35SqoZ/HpfAP27p1fpjaAv0p5LBly5bRO2rI4kPAruFhHlm1ijOvuYYzr7mGhx5/PLwCs52Zb/9/+eWwK8laamcI0/79sG2bpmSUo8Tj8SMeVwBnAzY4SMe994ZSU86pqvIj4u7dq66fSWh3MyzO+Qmpy8s1JaMcpb6+fkrPyzgqK+GllzTufxIK/7Ds2gX79ulKXkmqra2NkpKSI54rKSmhra0tpIpyVFmZb/fXNRFHUbNPGIaG/N6IRuyUcbS0tAAc0dunra3t9edlCmbO9N+3OXPUo24UvRNh2L7dX9Cltn45hpaWFoV9EIqL/d7/1q2wcGHY1WSNQJp9zOwyM1trZuvN7KYkv/87M3vRzFab2cNmFt2/wNCQH35WXTtFMqemxn/vNOzD61IOfzMrBJYBLcBi4ANmtnjMYs8Czc65M4CfAl9Kdb05a9cuf/n5jBlhVyISHbGY3/HatSvsSrJGEHv+5wLrnXMbnHP9wA+BK0Yv4Jz7rXOuO/FwJbAggPXmpg0bfA8EEcmsqio/5LNzYVeSFYII//nA5lGPtySeG88NQHsA6809Bw74W2lp2JWIRE9Jib+ifv/+sCvJCkGc8E3WST3pptXMrgOagYvG+f2NwI0AjY2NAZSWZTZt8lfzikg4Sko0nEpCEHv+W4DjRj1eAGwbu5CZvR24GbjcOdeX7IWcc8udc83Oueba2toASssivb2wZYu6d4qEqbIS4nHf2y7iggj/VcAiMzvezIqAq4EVoxcws7OAb+KDP5pXW8TjfvwejeEjEh4zP+rntqP2TyMn5WYf59ygmX0c+CVQCPyXc26Nmd0GdDjnVgBfxg9P8hPzQxlscs5dnuq6c8bQkB9edubMsCsRyUu9fX382Uc+Qt/AAINDQ1x56aXc+tGPJl945kx49VVoaor0RV+B/M+dcw8BD4157p9G3X97EOvJWXv3+u6d1dVhVyKSl4qLinjkP/+TirIyBgYH+V833EDLBRdw/umnH71wLOanTd21CxoaMl9sllAbRCa88oofwE1E0sLMqEhMgTowOMjA4CB2rAETq6p8t+sId/tU+KfbwYN+ADeFv0haDQ0NceY111C3ZAlLzjvv2HMcl5T47+aBA5krMMso/NNt+/ZItyuKZEphYSHP3XsvWx56iD+sWcMf168/9j8oKor0iV+Ffzo55z9cuqJXJHDt7e20trbS3NxMa2sr7e3+2tHqykouPuccfvHkk8d+gYoK//2M6Fj/Cv906ury/fs1jo9IoMbOcbwpHufzt99Oe3s7Pb29/OYPf+CUpqZjv0gs5gd66+zMRMlZR+GfTnv2+D7FIhKosXMcDwAv9PXx/ltv5c0f/CBLzjuP1gsvnPiFYrHIDvamxuh02rJFM3WJpMHYOY7LgFNJzHH84x9P/oUqK2HzZjjxxMhNp6o9/3Tp7vaHk8XFYVcikncCm+N4xgzfNHvoUABV5RaFf7rs3Ru5PQmRTAl0juOCAt9EGzFq9kmXrVvVt18kTQKd47iiwjfRRmyKR4V/OvT1+T3/fBuZVCSLBDbHcUkJ7NwJPT2RmmtDzT7pMDJZhJp9RHKDmb8SP0IU/umwdSskxhkRkRxQVua/txGi8A/a0BDs3q3wF8klZWX+pO/gYNiVZIzCP2g9Pf5ycU3aIpI7zPxwLBHq8qkTvkGL0IdHJuer3/8+337gAQw4/aST+O9//mdKdP1H9iko8N/fiEy6pN3ToO3bp7F85HVbd+7k33/0Izq++13++OMfMzQ8zA9/9auwy5Jkiop8L72IUPgHbc+eSHUXk4kNDg3R09fH4OAg3b29zFMX4OxUWhqpi70U/kEaHPQjeRYVhV2JZIn5dXV8+rrraGxtpeGyy5hZUcE7zj8/7LIkmRkz/Dm7/v6wK8kIhX+Qurv9yV7175eEfQcP8sDvfserK1aw7Re/4FBPD/c89NDE/1DC090ddgUZofAPUne3gl+AURONXHIJ69asoWPlSmbEYrz3bW/jf1avDrs8GY+ZP3qPAPX2CdKePRrFU16faKS3t5cZwLaeHm69/Xacczy8ahXNp54adokynpIS/z1esCDsStJOe/5B2rvXf3gk0kZPNFIOVAPP9fXx/ttuY3h4mBvf+95Q65NjGAn/CNCef1AGBvzhYl1d2JVIyMZONDIvcbPBQb73hS+EUpNMUizmT/j29eX9Ubz2/IOi9n5JCGyiEQlPBE76KvyD0tcXdgWSJQKdaETCEYHvs5p9gtLfrz1/AQKeaEQyr7DQT+2Y5xT+Qenu9u2FIgQ40YhkXizmL/bKc2r2CUpPj8JfJB/EYpEYoFHhH5RDhxT+IvlAe/4yJb29Cn+RfKDwl0kbHvYnfBX+IrmvoMB/p/N8Vi+FfxAGBsKuQESCluffa4V/EPL8QyISSXn+vVb4ByHPPyQikZTn4/oHEv5mdpmZrTWz9WZ2U5LfF5vZjxK/f8rMmoJYb9bI8w+JSCTl+U5dyuFvZoXAMqAFWAx8wMwWj1nsBmCfc+4k4KvAF1Ndb1YZGNDVvSL5pLAw73v8BLHnfy6w3jm3wTnXD/wQuGLMMlcAdyfu/xS41CyP0nJwUOEvkk9GevzksSD6Js4HNo96vAU4b7xlnHODZnYAmA3sDmD94UvT1I1N73oXlWVlFBYWEisspON73wt8HSIyDoX/hJKlnpvGMpjZjcCNAI2NjalXlilpnLf3t9/8JnOqq9Py2iJyDHke/kE0+2wBjhv1eAGwbbxlzCwGzAT2jn0h59xy51yzc665trY2gNIyxDk1+4jkEzP/vc5jQYT/KmCRmR1vZkXA1cCKMcusAK5P3L8SeMS5PHpn07SHYGa8o62Nc667juU/+1la1iEiSUQg/FNu9km04X8c+CVQCPyXc26Nmd0GdDjnVgB3Ad8zs/X4Pf6rU11vVknTnv8Td93FvNpadu7dy5K2Nk5pauLPzj478PWIyBgRCP9A+vk75x5yzp3snDvRObc08dw/JYIf51yvc+4vnHMnOefOdc5tCGK9WSOgD0p7ezutra00NzfT2trK8x0dANTNmsV7Lr6YP6xZk/I6RGQSItCUqyt8g1CQ+tvY3t7O7UuXsj0exwFb4nFuvf122tvbOdTTw6+eeorTTjwx9VpFZGIKf5mUgoKU9/yXLVtG76ip4waB1X19vP/WWzn3+uv53299K5ddcEGKhYrIpEQg/DUGcRACaPaJx+NHPC4GTgVscJCOH/84pdcWkWkI4Ig+m+X3/y5TAtjzr6+vn9LzIpJmCn+ZUCyWcvi3tbVRUlJyxHMlJSW0tbWl9LoiMg3Dw3kf/mr2CcKMGSmHf0tLC+Db/uPxOPX19bS1tb3+vIhk0NAQlJaGXUVaKfyDUFQUyMu0tLQo7EWyRUDf62yV38c1mTJjRtgViEjQ8vx7rfAPQp5/SEQiKc+/1wr/IOT5h0QkkvL8e63wD0JBgW8fHBwMuxIRSdVIT59Yfp8SVfgHpaxM4S+SDwYH876nDyj8g1NaqvAXyQeDg1BeHnYVaafwD4rCXyQ/aM9fpkTNPiL5YWBA4S9TUFyc95M/iETC8DCMGWolHyn8g5LnVwOKREpxcdgVpJ3CPygROEEkEhllZWFXkHYK/6DEYn4D0N8fdiUiMl2Dg36vX3v+MiVz5kBPT9hViMh09fTA7NlhV5ERCv8g1dT4ngIikpv6+hT+Mg3l5erxI5LLhocjc/5O4R+kkZNE2gCI5CYzhb9MQ2EhVFb6Q0cRyS39/f7irjwfzXOEwj9os2dDb2/YVYjIVPX2+k4bEaHwD5pO+orkpr4+//2NCIV/0CLSXiiSlyoqwq4gYxT+QSsr8xNBDA+HXYmITJZz/mRvBK7sHaHwD1pBAdTVwaFDYVciIpPV3e3b+/N89q7RFP7pMG+ervQVySXd3f57GyEK/3SorvaHkOrvL5IbnIvUyV5Q+KdHURHMmqW9f5Fc0NsLVVWRGMN/NIV/uixY4A8lRSS7HToExx0XdhUZp/BPl5oa9fgRyQVDQ/5IPWJSCn8zm2VmvzazdYmfRzWamdmZZvakma0xs9Vm9v5U1pkzSkv9UA+62lcke/X3++6dEbw+J9U9/5uAh51zi4CHE4/H6gY+6Jx7I3AZ8DUzq05xvblhwQLo6gq7ChEZT2en/56ahV1JxqUa/lcAdyfu3w28e+wCzrmXnXPrEve3ATuB2hTXmxtmz1bTj0g2GxqK1Hg+o6Ua/nOdc9sBEj/rjrWwmZ0LFAGvpLje3FBR4XsQaKwfkewzOOh75lVWhl1JKCa8nM3MfgPUJ/nVzVNZkZk1AN8DrnfOJd0dNrMbgRsBGhsbp/Ly2cnMH1Ju3BjJE0oiWa2ry1/YVRDNfi8Thr9z7u3j/c7MdphZg3NueyLcd46zXBXwc+AW59zKY6xrObAcoLm5OT+ukKqvh/Xrw65CRMbq74/cVb2jpbrJWwFcn7h/PfDA2AXMrAi4D/iuc+4nKa4v91RW+rZ/nfgVyR49Pf7CrqqqsCsJTarhfwewxMzWAUsSjzGzZjP7dmKZq4A/Az5kZs8lbmemuN7ccvzxuuBLJJt0dsKJJ0ayl8+IlIawc87tAS5N8nwH8OHE/XuAe1JZT86bPfvwid+ITBGXL9Zu3Mj7P/e51x9v2LqV2z76UT55zTUhViUpGRz038PaaHQ6HE90xi8NU0EBnHACvPRS5D9wueYNTU08d++9AAwNDTH/ne/kPW97W8hVSUoOHICTTvJzbkdYNE9zh6E+0WFK/f5z1sOrVnHi/PksbGgIuxSZLud83379DRX+GVNc7AePOngw7Epkmn74y1/ygT//87DLkFQcPOh7+JSWhl1J6BT+mXTccb57meSc/oEBVjz2GH/x9nF7Pksu6OuDhQvDriIrqM0/k6qq/EQv3d2Rmis017S3t7Ns2TLi8Tj19fW0tbXRX1rK2aecwtzZs8MuT6art9d3vZ45M+xKsoLCP9NOPBGefjpp+N/5gx/wrfvuwwEfefe71aMkBO3t7dy+dCm9idFYt8fj3L50KbGTTuJD731vyNVJSg4ehDPPjHT3ztHU7JNps2f79v8xzT9/XL+eb913H3/47nd5/t57efDxx1m3aVNIRUbXsmXLXg/+Ed29vTy5Zg3vveSSkKqSlA0O+snZ1dvudQr/TCsshDe8AfbvP+LplzZu5PzTT6espIRYLMZFZ5/Nfb/9bUhFRlc8Hj/quQLgDOeYWVGR+YIkGPv2wSmn+A2AAAr/cDQ0+MkjRs3xe9qJJ/LYs8+yZ/9+unt7eeiJJ9i8Y0eIRUZTfX2yMQzHf15yQG+vP9qO8Dg+ySj8w1BQAIsX+0vME049/nj+8YMfZElbG5d94hO8adEiYhG/CCUMbW1tlIyZyLukpIS2traQKpKUHTzov2/6Ph1B4R+W2bNp/8MfuOqd76S5uZnW1lbmFRfzzPe/z2Pf+hazZs5kUT4Ma51jWlpauOXmm2mor8eAhvp6brn5ZlpaWsIuTabj0CHfu6fumFONRJIawELy/Xvv5dNf/CJn9vTg8L1K/un22wF441ln8bNHHuHJ//7vcIuMqJaWFoV9vujqgre8RT18klD4h+Tmm28m3tPDFvz0Z/uBl/r6uOrzn+eEE05g2T/+IzURHm5WJGUHDvhhVWpqwq4kKyn8Q7Ip0Y1zAzAfMOANgA0N0fGDH4RYmUgecM5fzbtoUdiVZC21+YdkZJrKbvwGYGTfRL1KRAKwb58fxiGi8/NOhsI/JEuXLqUscZXva4nnyouL1atEJFVDQ3703BNOCLuSrKbwD8m1117L8uU1ZUXjAAAQa0lEQVTLWbhwIQNmHJo3j89/4hM60SiSqn37/Hj9Y7rsypHMueycJ725udl1dHSEXUbmDA3Bk0/6PZby8rCrEclN3d3+O/TWt0b2al4ze9o51zzRctrzzxaFhXDGGb5f8tBQ2NWI5J7hYX/h5JveFNngnwqFfzapqvLj/uzZE3YlIrlnzx7fu6e6OuxKcoLCP9s0NfkP76ihH0RkAl1dvmePTvJOmsI/2xQUwOmn+8GoBgfDrkYk+w0N+bb+00/X+D1ToPDPRhUVfiAqNf+ITGz3bt9cqivip0Thn62OO85PPDFm3H8RGaWz0w/f0NQUdiU5R+GfrczgjW/0h7QDA2FXI5J9Bgd98+gZZ/jmUpkSvWPZrKzMbwDU/CNytL17/fdD18VMi8I/282b52/aAIgctn+/bxZdsCDsSnKWwj/bjTT/lJSo+6cI+G6dhYW+d4/G6Z82hX8uKCqCc87xbf+9vWFXI5JR+zs7ufIzn+GU972PU9/3Pp585hn/fSguDru0nKZroHNFeTk0N8PKlf7SdV2+LhHxf7/yFS674AJ++i//Qn88Tvdpp2mo5gBozz+X1NT4ng27d/txTETy3MGuLh579lluuPxy2LOHojPPpPrEE8MuKy9o9zHXzJ/vB39bvx7mzg27GpG02rB1K7XV1fyfz32O57ds4ZwLLuDOf/93ytXDJ2Xa889FJ50EDQ3qASR5b3BoiGf+9Cf+5tpreXbNGsorKrjjjjvCLisvKPxzUUEBnHaaPw9w4EDY1YgEqr29ndbWVpqbm7ntU59iTmUl511zDRQUcOWVV/LMM8+EXWJeUPjnqhkz4Oyz/UTVPT1hVyMSiPb2dm5fupTt8TjFQM+ePezp7OTLd94JwMMPP8zixYvDLTJPpBT+ZjbLzH5tZusSP2uOsWyVmW01s2+ksk4ZpbTU9wDq7IT+/rCrEUnZsmXL6O3tJQZUAR3A4PAwt9xyC2eccQbPPfccn/vc50KuMj+kuud/E/Cwc24R8HDi8Xi+APwuxfXJWDNn+g3A/v3aAEjOi8fjxIBZwNPAyLCGAwMDrF69mvvvv5+amnH3MWUKUg3/K4C7E/fvBt6dbCEzOweYC/wqxfVJMrW12gBIXlgwd+7rwb9r1PONjY0hVZS/Ug3/uc657QCJn3VjFzCzAuBfgX9IcV1yLNoASK4bGOBvr7uOP5WUHBH8ZWVlLF26NLSy8tWE4W9mvzGzPya5XTHJdXwMeMg5t3kS67rRzDrMrGPXrl0TLS5j1db6y961AZBcMzAAe/dyyac/ze3f/jYLFy7EzFi4cCHLly/n2muvDbvCvGPOuen/Y7O1wMXOue1m1gA86px7w5hlvg9cCAwDFUAR8P+cc8c6P0Bzc7Pr6OiYdm2RtnMndHT48wElJWFXI3Js/f2wb5/vvVZfH3Y1Oc/MnnbONU+0XKrNPiuA6xP3rwceGLuAc+5a51yjc64J+DTw3YmCX1JUVwfnn+9HP9RAcJLNenv9keqb36zgz7BUw/8OYImZrQOWJB5jZs1m9u1Ui5MUzJoF553nh4Lo7g67GpGj9fT4bsrnneebLCWjUmr2SSc1+wSksxOeespfFFZREXY1It6hQ9DXB+ee65snJTCZavaRbFdZCW95i5/0QmMBSTbYt8/PTX3++Qr+ECn8o6C83H/R5szxJ4M1HLSEYXjYf/6qq+GCCzQmf8gU/lFRVARnngmLFsGuXeoKKpk1MOCD/8QTfa8ezcIVOo3nHyUFBX446KoqePZZ3w1U5wEk3UY6HZxzjnr0ZBHt+UdRXR289a3+PMDevWFXI/ls3z7f3HPBBQr+LKPwj6qKiiPPAwwNhV2R5JPhYdixw089esEF/mhTsorCP8pGzgOcfLLOA0hwRtr3TzoJzjrLf84k66jNP+rM/Em4ykp47jkoLPS9MUSm48ABH/5q38962vMXr64OLrzQB/+OHToKkKkZGPCfm8pK/zlS8Gc97fnLYaWlvhvejh3wwgv+qKC62v8UGc/+/f6c0ZveBPPm6fOSIxT+ciQzv9dWXQ1r18KWLf6knfply1gjo3E2NMCpp2oE2Ryj8JfkSkr8nlxDgz8K6Oryg8Vpr06c86Fv5tv26+r0uchBCn85tpFzAevXw8aNmiMg6kaGYG5s9L3EdESYsxT+MrGiIli82DcHPf+8PwqoqfE9gyQahof93v6MGX4I5jlzwq5IUqTwl8mbNcsfBbz6Krzyih8uoqbG/5T8NDx8+ITu8cfDCSf4DYDkPIW/TE0s5geHO+443wz06qs+DNQrKL845/vs9/fDwoU++EtLw65KAqTwl+kpKYFTTvFtv6++Cps2+eahmTO1EchlzsHBg36ilQUL/J5+eXnYVUkaKPwlNWVl8MY3+r3DDRtg61Z/ElCTdOSezk4/+ua8eYev+pa8pfCXYFRUwBlnQFOT7xkUj/sNgwIk+3V1+WGX6+r8WDzacEeCwl+CVVXlrxLevx/WrfMDfM2Y4Z9X76DsMTzsm3f6+/2J/DPO8CfvJTIU/pIe1dXw5jf7gNmyBTZv9oFTVaXrBMLU2+ubd8x8m/6CBf5vovM0kaPwl/SqqvLXCIxMH7lhgz8aKCryv1M30fQbvZdfXg6nneabeDTUcqQp/CUzZszwJxIbGnwQbd3qjwiGh/15AR0NBK+vz7/XZjB/vt/LV28sSVD4S2aZ+QCaOdNP9rFz55FHAxUV/loCmZ7BQX8Ct7//cE+suXO1ly9H0bdMwlNU5PdG58/3FxRt3+5vfX2+OaiiQkcEk9Hb6wN/eNi/p/PmHR6ZVXv5Mg6Fv4RvZN6A6mp/4VhXlx9HZutWf54A/EagrEw9hsCH/KFD0NPjH1dV+fdt1iy/wVTgyyQo/CW7mPlzAJWV/urhvr7DRwU7dvgxZmIxH3JRasoYGPAbxYEBvwGsq/Nj6GuUVZkmhb9kt+JiH3R1dT74Ozv90cC2bf5aAvAbjOJiH4L5sEEYGPBNOX19frgF8P+3xkaordU1ExIIhb/kjpHJ5aurfdfR/n4/HEF3t28m2rvXHyWMKCo6vEHI1qaQvj4f9P39h4O+rAxmz/bNOOXl/nE+bNQkqyj8JXcVFflbdbU/yQm+t8vYDcLu3Uf+OzPfdDT6VlgY7AbCOX+kMjh45G3kdyN1VFT47q/V1T7ky8o0ZLJkhMJf8kss5ptFqqp8jxfwIdzT45tTBgYOHzH09Phbd/eRe97jMfPLjPycaNmiIj8MckWF/zmyBz9jhr+Vlqr5RkKj8Jf8V1joA/hYnPN75iMbiIGBwwHv3JE3syNv4H+OhHos5n9ma1OTCAp/EW90eItEgAZWERGJoJTC38xmmdmvzWxd4mfSMWHNrNHMfmVmL5nZi2bWlMp6RUQkNanu+d8EPOycWwQ8nHiczHeBLzvnTgXOBXamuF4REUlBquF/BXB34v7dwLvHLmBmi4GYc+7XAM65Ludcd4rrFRGRFKQa/nOdc9sBEj/rkixzMrDfzH5mZs+a2ZfNTP3bRERCNGFvHzP7DVCf5Fc3T2EdFwJnAZuAHwEfAu5Ksq4bgRsBGhsbJ/nyIiIyVROGv3Pu7eP9zsx2mFmDc267mTWQvC1/C/Csc25D4t/cD5xPkvB3zi0HlgM0NzdPcBWNiIhMV6rNPiuA6xP3rwceSLLMKqDGzGoTjy8BXkxxvSIikoJUw/8OYImZrQOWJB5jZs1m9m0A59wQ8GngYTN7ATDgWymuV0REUpDSFb7OuT3ApUme7wA+POrxr4EzUlmXiIgER1f4iohEkMJfRCSCFP4iIhGk8BcRiSCFv4hIBCn8RUQiSOEvIhJBCn8RkQhS+IuIRJDCX0QkghT+IiIRpPAXEYkghb+ISAQp/EVEIkjhLyISQQp/EZEIUviLiESQwl9EJIIU/iIiEaTwFxGJIIW/iEgEKfxFRCJI4S8iEkEKfxGRCFL4i4hEkMJfRCSCFP4iIhGk8BcRiSBzzoVdQ1Jmtgt4Lew6gDnA7rCLmKJcqznX6oXcqznX6gXVPF0LnXO1Ey2UteGfLcyswznXHHYdU5FrNedavZB7NedavaCa003NPiIiEaTwFxGJIIX/xJaHXcA05FrNuVYv5F7NuVYvqOa0Upu/iEgEac9fRCSCFP5jmNksM/u1ma1L/KwZZ7lGM/uVmb1kZi+aWVNmKz2ilknVnFi2ysy2mtk3MlnjmBomrNfMzjSzJ81sjZmtNrP3h1TrZWa21szWm9lNSX5fbGY/Svz+qTA/B4l6Jqr37xKf19Vm9rCZLQyjzjE1HbPmUctdaWbOzELtTTOZes3sqsT7vMbM7s10jZPinNNt1A34EnBT4v5NwBfHWe5RYEnifgVQlu01J35/J3Av8I1srhc4GViUuD8P2A5UZ7jOQuAV4ASgCHgeWDxmmY8B/5m4fzXwoxDf18nU+7aRzyrwN2HWO9maE8tVAo8BK4HmbK4XWAQ8C9QkHteF+R6Pd9Oe/9GuAO5O3L8bePfYBcxsMRBzzv0awDnX5ZzrzlyJR5mwZgAzOweYC/wqQ3WNZ8J6nXMvO+fWJe5vA3YCE164ErBzgfXOuQ3OuX7gh/jaRxv9f/kpcKmZWQZrHG3Cep1zvx31WV0JLMhwjWNN5j0G+AJ+p6E3k8UlMZl6PwIsc87tA3DO7cxwjZOi8D/aXOfcdoDEz7oky5wM7Dezn5nZs2b2ZTMrzGiVR5qwZjMrAP4V+IcM15bMZN7j15nZufi9rFcyUNto84HNox5vSTyXdBnn3CBwAJidkeqONpl6R7sBaE9rRRObsGYzOws4zjn3YCYLG8dk3uOTgZPN7AkzW2lml2WsuimIhV1AGMzsN0B9kl/dPMmXiAEXAmcBm4AfAR8C7gqivmQCqPljwEPOuc2Z2DENoN6R12kAvgdc75wbDqK2qaw+yXNju8dNZplMmXQtZnYd0AxclNaKJnbMmhM7LV/Ff7+ywWTe4xi+6edi/JHV783sNOfc/jTXNiWRDH/n3NvH+52Z7TCzBufc9kTwJDtk2wI865zbkPg39wPnk8bwD6DmtwAXmtnH8Ocoisysyzk37gm2kOvFzKqAnwO3OOdWpqPOCWwBjhv1eAGwbZxltphZDJgJ7M1MeUeZTL2Y2dvxG+GLnHN9GaptPBPVXAmcBjya2GmpB1aY2eXOuY6MVXnYZD8TK51zA8CrZrYWvzFYlZkSJ0fNPkdbAVyfuH898ECSZVYBNWY20gZ9CfBiBmobz4Q1O+eudc41OueagE8D301X8E/ChPWaWRFwH77On2SwttFWAYvM7PhEPVfjax9t9P/lSuARlzjLF4IJ6000oXwTuDxL2qKPWbNz7oBzbo5zrinx2V2Jrz2M4IfJfSbux59Yx8zm4JuBNmS0yskI+4xztt3w7bUPA+sSP2clnm8Gvj1quSXAauAF4DtAUbbXPGr5DxFub58J6wWuAwaA50bdzgyh1ncCL+PPN9yceO42fAABlAA/AdYDfwBOCOt9nWS9vwF2jHpPV4RZ72RqHrPso4TY22eS77EB/4bfIXwBuDrs9zjZTVf4iohEkJp9REQiSOEvIhJBCn8RkQhS+IuIRJDCX0QkghT+IiIRpPAXEYkghb+ISAT9f74bOwGAvHbdAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f482ceae400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print('algorithm answer:', circle)\n",
"debug(circle, points)"
]
}
],
"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.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment