{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Two adjacent vertices and their combined neighbourhoods\n", "\n", "Suppose there exists a Conway-99 graph G, that is, an SRG(99,14,1,2). Let a and b be vertices of G such that a and b are neighbours. Then:\n", "* a has 14 neighbours, one of which is b\n", "* b has 14 neighbours, one of which is a\n", "* By lambda = 1, precisely one of these neighbours is a mutual neighbour of both a and b\n", "\n", "Thus the graph G' on a,b and their neighbours consists of 27 vertices (a, b, their mutual neighbour, 12 neighbours of a but not b, and 12 neighbours of b but not a). In this workbook, we determine (up to isomorphism) the possibilities for this graph induced by the lambda = 1, mu = 2 constraints on G. \n", "\n", "For convenience, we fix a numbering:\n", "* a is vertex 0\n", "* b is vertex 1\n", "* Their mutual neighbour is vertex 2\n", "* The remaining neighbours of vertex a are vertices 3 through 14\n", "* The remaining neighbours of vertex b are vertices 15 through 26\n", "\n", "Moreover, we introduce these vertices sequentially using the 'fanblade' structures centred at vertices 0 and 1:\n", "* For i,j in 1...14 we have i,j adjacent iff j = i + 1 and i is odd\n", "* For i,j in 15...26 we have i,j adjacent iff j = i + 1 and i is odd\n", "* (The seventh blade for vertex 1 consists of vertices 0 and 2)\n", "\n", "Finally, we note that each of the vertices i = 15...26 is not adjacent to vertex 0, thus (by mu = 2) there must be two mutual neighbours of 0,i in G. But as all neighbours of 0 are in G', namely vertices 1...14, we know that each vertex i = 15...26 is adjacent to precisely 2 of the vertices 1...14.\n", "\n", "* By assumption, vertex 1 is adjacent to vertex i\n", "* Hence vertex 2 is not adjacent to vertex i (else 0 and i and are mutual neighbours of adjacent vertices 1 and 2, which violates lambda = 1)\n", "* So for each i = 15...26 there is a unique j in 3...14 such that i and j are neighbours.\n", "* For the first such i=15, all choices of j give equivalent graphs on vertices 0...15. Wlog, we set j=3.\n", "\n", "Our task then essentially reduces to determining j for each i=16...26, whilst satisfying all our other conditions." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "import numpy as np\n", "from conway99 import *\n", "import pydot\n", "from networkx.drawing.nx_pydot import write_dot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The neighbourhood of vertex 0\n", "We start from an arbitrary vertex and its neighbours. These can necessarily be arranged as 7 blades of a fan; we fix a numbering with vertex 0 the centre, 1-14 its neighbours, and blade edges 1-2, 3-4, 5-6, 7-8, 9-10, 11-12, 13-14" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "seed15 = np.empty((15,15), dtype='int')\n", "for i in range(15):\n", " for j in range(15):\n", " seed15[i,j] = 0\n", "\n", "# 1-14 all nhbrs of 0\n", "for i in range(1,15):\n", " seed15[0,i] = 1\n", " seed15[i,0] =1\n", " \n", "# By fixing an ordering, a single representative suffices\n", "for i in [1,3,5,7,9,11,13]:\n", " seed15[i,i+1] = 1\n", " seed15[i+1,i] = 1" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n", " [1 0 1 0 0 0 0 0 0 0 0 0 0 0 0]\n", " [1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", " [1 0 0 0 1 0 0 0 0 0 0 0 0 0 0]\n", " [1 0 0 1 0 0 0 0 0 0 0 0 0 0 0]\n", " [1 0 0 0 0 0 1 0 0 0 0 0 0 0 0]\n", " [1 0 0 0 0 1 0 0 0 0 0 0 0 0 0]\n", " [1 0 0 0 0 0 0 0 1 0 0 0 0 0 0]\n", " [1 0 0 0 0 0 0 1 0 0 0 0 0 0 0]\n", " [1 0 0 0 0 0 0 0 0 0 1 0 0 0 0]\n", " [1 0 0 0 0 0 0 0 0 1 0 0 0 0 0]\n", " [1 0 0 0 0 0 0 0 0 0 0 0 1 0 0]\n", " [1 0 0 0 0 0 0 0 0 0 0 1 0 0 0]\n", " [1 0 0 0 0 0 0 0 0 0 0 0 0 0 1]\n", " [1 0 0 0 0 0 0 0 0 0 0 0 0 1 0]]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Graeme\\Anaconda3\\lib\\site-packages\\networkx\\drawing\\nx_pylab.py:611: MatplotlibDeprecationWarning: isinstance(..., numbers.Number)\n", " if cb.is_numlike(alpha):\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAd0AAAE/CAYAAAADsRnnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlczPkfB/DXECrpLiHJsY4oRChJ7itbOUPoQLF2+ZG17FrWWix2l10rltxUjg5KbnKkFJ2OdQuhpEM1nfP+/TG0SWWqmfnOTJ/n4zGPnb7zPd616v39fL6fz/vDIyICwzAMwzASV4/rABiGYRimrmBJl2EYhmGkhCVdhmEYhpESlnQZhmEYRkpY0mUYhmEYKWFJl2EYhmGkhCVdhmEYhpESlnQZhmEYRkpY0mUYhmEYKWFJl2EYhmGkhCVdhmEYhpESlnQZhmEYRkpY0mUYhmEYKWFJl2EYhmGkRInrABiGUSCpqcDu3UBCApCVBWhoAGZmgKsroKfHdXQMwzkeW0+XYZhai44G1qwBwsKEX+fn//eZigpABIwYASxZAlhYcBMjw8gAlnQZhqkdb2/Aywvg84XJtTI8njABb9gAzJ4tvfgYRoaw7mWGYWruQ8LNy/v8vkTC/by8hF+zxMvUQaylyzBMzURHA7a2lSbc+wBMAYwDsL/8h6qqQHg40LOnRENkGFnDWroMU11ssJDQmjXCLuVKfAWg0qe3fL7w+KNHJREZw8gs1tJlGFGxwUL/SU0FWrX6+GdQhh+AAAAmAB6ggpYuACgrA8nJdetGhanz2DxdhhGFt7ewKzUoSJhoyicbPl+4LShIuJ+3NxdRSs/u3ZV+lA3gRwC/fe4cPF6V52EYRcSSLsN8TtnBQp/rGCo7WEhBE29hYSHyoqIqbeUuA+AOoOXnTsTnA4mJYo6OYWQbe6bLMFWJjq5wdK4zgHMAcgEYAPgWwIyyO3xIvBYWMj1YiIjw7t07vHnzBmlpaUhLS/vs+7y8PITWr4+hFZwvDsBZALGiBpCRIbbvhWHkAUu6DFOVSgYLLQHgA6ARgLsAbAF0B9Cj7E4cDBYqKSlBenp6tZJogwYNoKenBz09Pejq6n70vkOHDp9s19DQAG/qVODAgU+ufxHAEwBG77/OAVAC4DaAmxUFrKUlkZ8Dw8gqlnQZpjKpqcJBUxV0KXcu8573/vUQ5ZIuEXDiBJCWVuPBQnw+X6TE+eF9VlYWNDU1S5Nk2WTZpk0b9O7d+6Pturq6UFFRqX5gZmbCm4lyXcyzADiV+XoDhEm4wo52FRXA1LT612YYOcaSLsNU5jODfOYA2A2AD2Erd2RFO30YLLRoEQQCAbKysqpMnuW3FRcXV9gC1dPTQ48ePT7Zrq2tjfr164v351ARFxdg+fJPNqu+f32gBkAZQIW3HETC8zBMHcKmDDFMZZydK+xCLasEwDUIu1UXA2hQwT7HNDUxq1EjpKeno3HjxpUm0Yreq6mpgcfjif1bE4sxY4SjtWvyJ4THAxwd2Txdps5hSZdhKjN6NBASItKunhDOSf2mgs+ybGyQ5+cHHR0dNGzYUJwRcuszFamqxCpSMXUUmzLEMJXR0BB512IIn+lWeJpWrdCsWTPFSriAcGT2hg3CBFodqqrC41jCZeoglnQZpjJmZsKqSeWkQlhx6cPI3FMAfAEMrOgcij5YaPbs/xLv57rBebz/Ei5b7ICpo1j3MsNUppJSh2kQFvGPByAA0ArCbuWZFZ2jrpQ6jIkB1qyBICQEBUVFUCn7Z+VDicyRI4UlMlkLl6nDWNJlmKqwwULVcnDTJmDPHkzu0kVY+EJLS9jSd3FR/BsPhhEBmzLEMFVZsgQ4dapmg4VUVITH1yGRDx+i1ZQpwMKFXIfCMDKJPdNlmKqwwULVEhcXh+7du3MdBsPILNa9zDCi+LDoAZ9fdVczjyds4dbBwUICgQBaWlp4/PgxtLW1uQ6HYWQSa+kyjChmzxbOK3V0FA6OKlc6saB+fRQrKQk/Dw+vcwkXAB4/fgxNTU2WcBmmCuyZLsOIqmdP4aCotDRhacfExNLBQilNmmDyqVOIOHJEditISVhcXBy6devGdRgMI9NY0mWY6tLTAxYt+miTMREyTUxw9epVWFtbcxQYt2JjY1nS5VpqqvCGMCEByMoSFngxMwNcXdnocRnBnukyjJhs2LABt27dwq5du7gOhRN2dnaYMWMGHBwcuA6l7omOFi4jGRYm/Lrs3PIP86RHjBCOprew4CZGBgBLugwjNqmpqWjfvj2Sk5Ohrq7OdThS16JFC1y9ehXGxsZch1K3sEF+coUNpGIYMdHX18egQYPg5+fHdShSl5qairy8PLRq1YrrUOoWb29snjcPPfPy0IgILuU+PgegI4TLLQ4gwtO8PGGC9q5whWNGCljSZRgxmjFjBnbs2MF1GFL3YRBVXR1ExonoaMDLC82LivADALdyH78BMAbAzwDeAugJYCIgLPTi5SUs3clIHUu6DCNGQ4cOxcuXL5GQkMB1KFLFimJwYM0agM/HGAAOAHTKfRwAoDOA8QCUAayAsF74XUDYFb1mjfRiZUqxpMswYlS/fn24urrCx8eH61Ckik0XkrLUVOGgqSqe4d4C0LXM140BtH2/HUTAiRPC6W+MVLGkyzBi5urqigMHDiC/3OpEiiw2Npa1dKVp9+7P7pIDoPyK0BoA3n34gscT6TyMeLGkyzBi1rp1a3Tv3h1BQUFchyIVubm5ePr0KTp27Mh1KHVHQsInS06WpwYgu9y2bABNPnzB5wsLvDBSxYpjyDM2EV5mubu7w8fHB05OTlyHInGJiYno1KkTGjRowHUodUdW1md36QxgT5mvcwE8fL+9VEaGWMNiPo+1dOVRdLRwnddWrYDly4EDB4CQEOF/V6wAjIyEn0dHcx1pneXg4IC4uDg8fvyY61Akjg2i4oDGfx3HxQDyAZS8f+W/3+YIIAnA0ffbVgIwg3AKUSktLamEy/yHJV154+0N2NoKF1bPz/+0i4nPF24LChLux+bjcUJZWRmTJ0+uE9WpWPlHDpiZCRfeALAKgAqAtQD2v3+/CoAehAn3ewBaAKIAfDSDXEUFMDWVXswMAFaRSr58qDxTnQXVP6zryirQSF1CQgJGjRqFJ0+eoH79+lyHIzG9e/fG77//jr59+3IdSt2Rmirs6arNYD1lZSA5mT2KkjLW0pUX7yfCb87LQ08AjYBPqs988BMAHoCzAJsIzyEzMzM0b94cp0+f5joUiSkuLkZSUhLMzMy4DqVu0ddHydChENTwcOLxgJEjWcLlAEu68uL9RPjmQIXVZz54COAIgGZlN7KJ8Jxxd3dX6ApV9+7dQ4sWLdCkSZPP78yITWZmJr5OSUFhDXtQ+AAeTpgg3qAYkbCkKw/KTISvrPrMB3MB/AqgYdmNbCI8Z5ycnHD+/HmkpqZyHYpEsKIY0vf48WNYWVmhgZUVGm7aJHyEVB2qqkiYOhV95s7F0aNHJRMkUymWdOWBiBPYD0OYbEdW9CGbCM8JdXV1ODg4YO/evVyHIhGsKIZ0RUVFoW/fvvD09MSmTZtQ76uvhGM2VFWFv+NV4fFKx3j02bMHJ0+exIIFC/D999+jpKREOt8Aw5KuXBBhInwOgKUANla2A5sIz5kZM2bAx8cHijhmkbV0pefo0aOws7PDtm3b8M033/z3wezZQHg44OgoHBylovLxgSoqwu2OjsL93g+q7NGjB2JiYhAREYHRo0cjg83ZlQpWHEMeiDARfjmAqQBaV7UT+6XihJWVFYgIERERCjXCl4jYdCEpICL89ttv2LhxI06dOgVzc/NPd+rZEzh6VPgIafdu4Q12RoZwHq6pKeDiUuGgKT09PZw+fRrffvstevXqhcDAQHTp0kXi31NdxpKuPNAoX0H1U+cAPAew5f3XaQAmAFj8/gWATYTnCI/HK23tKlLSffHiBZSUlNCsWbPP78zUSHFxMebOnYuIiAhcu3YNLVu2rPoAPT1g0aJqXaNBgwb4448/YG5ujgEDBsDb2xvjxo2rRdRMVVj3sjwoMxG+suoz5yCsPhP3/tUcwDYAX304B5sIz6lp06YhMDAQ2dnlq+HKL9bKlazs7GzY2dnh6dOnuHLlyucTbi1NnToVp06dgpeXF5YuXcqe80oIS7rywMWl9G1l1Wd0ABiUedWHsAqN2ocDiT46DyNd+vr6GDhwIPz9/bkORWxY+UfJefbsGaytrdG6dWscP34c6urqUrmuubk5oqOjERkZCTs7O/acVwJY0pUH+vrAiBEAj4cVAKjca0UFhzwBMPj9+xIAyV26gHR1JR8rUylFm7PLWrqScePGDVhaWsLFxQVbtmyBkpJ0nwJ+eM7bqVMnWFhYICkpSarXV3Qs6cqLJUs+HZUoKmVlLMrIgKOjI169eiXeuBiRDRs2DCkpKUhUkFHkrKUrfseOHcPw4cPx119/YcGCBeB9bhqQhCgpKeH333/HihUrMGDAABw+fJiTOBQRS7rywsICj+fORTWqLgupqqL+779j761b6NKlC7p27YqDBw8q5PQVWVe/fn24uLjAx8eH61BqLTMzE2lpaWjXrh3XoSiMP//8E56enggNDYWjoyPX4QAAnJ2dcerUKXz77bdYsmQJe84rDsTIhWfPnlGLFi0oztOTSFWViMcjEj6prfjF4wn327Llo/NER0dT586dycHBgV69esXRd1N3PXr0iHR1dSk/P5/rUGrl4sWLZGVlxXUYCqG4uJi+/vprMjExocePH3MdToXS0tJo4MCBNGzYMEpPT+c6HLnGWrpyIC8vD/b29vj666/R1du7RhPhP+jZsydu3LiBTp06wczMDL6+vqzVK0WtW7dG165dERQUxHUotcKKYohHTk4OHBwccOfOHVy9ehXGxsZch1QhXV1dnDp1CiYmJrCwsFCYRyRcYEv7yTiBQAAnJycoKytjz549Hz/jqeZE+PKio6Ph4uKCjh07YsuWLWjatKnEvg/mP35+fvDx8cGZM2e4DqXGXFxc0LdvX8ycOZPrUORWSkoK7OzsYG5uDm9vbzRo0IDrkERy4MABzJ8/H3///TcmsEUTqo/jljbzGStWrKA+ffoQn8+XyPn5fD5999131LRpU/Lz8yOBQCCR6zD/4fP5pKOjQ48ePeI6lBrr2rUrRUdHcx2G3IqLi6OWLVvS6tWr5fJ37ubNm2RsbEyLFy+m4uJirsORK6ylK8MOHz4MLy8vREVFwcDAQKLXun79OlxcXGBiYoItW7ZAX19foter6+bNmwcNDQ2sXLmS61CqraCgAFpaWnj79i2U3xdtYUQXFhaGadOmYfPmzZg4cSLX4dTYmzdvMHHiRCgpKcHX1xfa2tpchyQX2DNdGXXjxg3MmTMHQUFBEk+4ANCrVy/cvHkT7dq1g5mZGQ4dOiTxa9Zl7u7u2LVrl1yOBr19+zbatm3LEm4NeHt7w83NDcHBwXKdcIH/nvOamprCwsICCQkJXIckH7huajOfSklJIUNDQzp69Cgn14+MjKSOHTvSuHHj6PXr15zEUBdYWFjQiRMnuA6j2nx8fMjZ2ZnrMORKSUkJLVy4kDp06EAPHjzgOhyxO3DgAOnq6pKfnx/Xocg81tKVMXw+H/b29vDw8MCYMWM4iaF3796IjY1FmzZtYGZmxibGS4i7u7tcztllRTGqJy8vD+PGjStdRq9t27ZchyR2kydPxpkzZ/Ddd9/h22+/lcseHGlhz3RlCBFhypQpICIcPHiQs2o0ZUVGRsLV1RWmpqb4+++/oSfCqGhGNNnZ2TAyMsK9e/fk6hm6jY0NVqxYgYEDB3Idisx79eoVvvzyS3Ts2BHbt29Ho0aNuA5Jot68eQMnJyfUq1cPvr6+0NHR4TokmcNaujJk9erVePDgAXbu3CkTCRcA+vTpg5s3b8LY2BhmZmY4cuQI1yEpDHV1dTg4OGDfvn1chyIygUCA+Ph4NkdXBLdu3YKlpSXs7OywZ88ehU+4gPA578mTJ9G1a1dYWFggPj6e65BkD7e928wHAQEBZGhoSC9evOA6lEpFRERQhw4daMKECZSWlsZ1OArh8uXL1LFjR7mZNvLgwQMyMjLiOgyZd+bMGdLT06N9+/ZxHQpnDh48SLq6uuTr68t1KDKFtXRlQFxcHGbNmoXAwEA0b96c63AqZWlpidjYWLRs2RKmpqY4evQo1yHJvb59+4KIcO3aNa5DEQlbWejzfHx84OzsjCNHjsDZ2ZnrcDgzadIknD17FkuXLsWiRYtQXFxc8Y6pqcC6dYCzMzB6tPC/69YJi/8oIq6zfl336tUrMjIyIn9/f65DqZarV69S+/btycnJibV6a2ndunXk6urKdRgi+f7772n58uVchyGTSkpK6LvvvqO2bdvSv//+y3U4MuPNmzc0ePBgGjx4ML158+a/D65fJ3J0JFJWFr7K1o5XURFuc3QU7qdAWEuXQ/n5+XB0dISrq6vclVOzsrJCXFwcmjdvDjMzMwQGBnIdktyaNm0aAgMDkZ2dzXUon8VauhXj8/mYNGkSLl++jMjISLRv357rkGSGjo4OwsLC0L17d1hYWCAuLg7w9gZsbYGgICA/X/gqi88XbgsKEu7n7c1F6BLBRi9zhIjg4uKCvLw8+Pv7o149+b3/uXr1KlxdXdGzZ0/89ddfbMRiDYwZMwYjRoyQ+VrGLVq0QEREBFq1asV1KDIjLS0N9vb2aNWqFXbt2sWKhlTBz88PMTNmYG1REZQKC0U/UFUV2LDhkwVc5JH8/qWXc+vXr0dSUhL27Nkj1wkXED6XjIuLg4GBAUxNTVmrtwbkYc5uamoq+Hw+jIyMuA5FZty9exd9+vTBwIEDceDAAZZwP8OpbVusKyn5JOHeATAQgAaAdgA++QuSlwd4eQExMVKJU6I47t6uk4KDg6l58+b07NkzrkMRu8uXL1O7du1o8uTJHz+/YapUVFRELVq0oMTERK5DqdSpU6dowIABXIchMy5cuED6+vq0c+dOrkORH46On6wFXgTQFwD9BlAxQOcAUgXo34rWCB8zhuvvoNbku4klhxITE+Hu7o6AgAAYGhpyHY7YWVtbIz4+Hnp6ejA1NUVwcDDXIckFJSUluLi4yHRrl62h+5+9e/di4sSJOHjwIFxdXbkORz6kpgJhYcIUWsZdACkA/gegPoQt3r4APpm9TgScOCH3o5pZ0pWitLQ0fPnll9i0aRN69+7NdTgSo6qqio0bN8Lf3x8LFy6Es7Mz3r59y3VYMs/NzQ379+9HQUEB16FUiA2iEo7FWL58OZYvX44LFy5g0KBBXIckP3bvrnBzRYOKCEBSRTvzeJWeR16wpCslhYWFGDNmDCZPnozJkydzHY5U9OvXDwkJCdDV1YWpqSmOHTvGdUgy7UOta1ntHajrNZcLCgowdepUnDx5EpGRkTAxMeE6JPmSkPDpKGUAHQHoA1gPoAjAaQDhAPIqOgefDyQmSjBIyWNJVwqICLNnz4auri5+/vlnrsORqg+tXl9fXyxYsABTp05lrd4qzJgxAzt27OA6jE/k5ubi6dOn6NixI9ehcCI9PR1DhgxBfn4+Lly4gKZNm3IdkvzJyqpwcwMAQQBCARgA+A3ABACVPnzLyJBAcNLDkq4UbNy4ETdu3MC+ffvkfqRyTdnY2CA+Ph5aWlowNTXF8ePHuQ5JJjk6OuLmzZt48uQJ16F8JDExESYmJmjQoAHXoUjdgwcPYGVlhT59+uDQoUNQVVXlOiT5pKFR6UdmELZu0wGcAvAIQK/KdtbSEndkUlU3M4AUhYWFYf369QgODoaamhrX4XCqcePG+PPPP3Hw4EHMnz8f06dPR4ac37WKm7KyMiZPnoxdu3ZxHcpH6urz3KtXr8La2hoLFizAunXr6uxNszg809ZGYf36FX6WACAfwi7lDQBeAnCpaEcVFcDUVEIRSgf7FyRBt2/fxvTp03HkyBFWTKCM/v37IyEhAerq6jA1NUVoaCjXIckUd3d37Nq1S6bWJK2Lz3N9fX3h6OiIPXv2wMPDg+tw5FJOTg62b9+Onj17wjEoCPUqWT1tH4BmED7bPQfgDIAK12QiAlxcJBStlHA9Z0lRvXnzhtq2bUu7d+/mOhSZduHCBWrdujVNnz6d3r59y3U4MqNnz54UFhbGdRilevXqRVeuXOE6DKkQCAS0atUqMjIyooSEBK7DkUvx8fE0Z84c0tLSIgcHBwoLC6OSkpIK5+mK/GLzdJnKFBYWYty4cRgzZgymT5/OdTgyzdbWFgkJCVBTU2Ot3jJkqUJVcXExkpKSYGZmxnUoEldYWAg3NzcEBATg2rVrMJXzrkxp4vP52Lt3L6ysrDBy5Ejo6+sjISEBgYGBGD58uLBrfskSYRdxTaioCI+Xc6z2cnWlpgrniSUkCEfjaWgAZmaAqyugpwcigqenJ1JSUhAUFIT6lTzDYD514cIFuLm5wdbWFn/88Qc0NTW5DokzWVlZaNWqFe7fvw89PT1OY7l9+zYcHBxw7949TuOQtMzMTIwdOxZqamo4ePAgGjduzHVIcuHu3bvYtm0b9u3bh169esHT0xMjR46EkpJSxQd4ewtLOuZVOCmoYgpUe5l1L4tKxGWo/BYupC5dulB2djbXEculd+/e0ezZs8nQ0JBOnDjBdTicmjZtGv32229ch0H79++n8ePHcx2GRD169Ig6depE8+bNo+LiYq7DkXn5+fnk6+tLtra21LRpU1q6dCk9fvxY9BNs2UKkqvr5rmYeT7jfli0S+16kjSVdUYj4D6SEx6NcgNJWruQ6Yrl37tw5MjY2JldXV8rIyOA6HE5cunSJOnXqRAKBgNM4vLy8aPXq1ZzGIEmRkZHUrFkz+vPPP7kOReY9fPiQFi9eTPr6+jRo0CA6dOgQFRQU1Oxk0dHCZ7TKysKGS0UNmTFjhPspEJZ0P+dDwq3OA38FuzPjSnZ2Ns2ePZtatmwpU4OKpEUgEFD79u0pIiKC0zgGDRqksL0OR44cIV1dXTp+/DjXociswsJCCggIoKFDh5Kuri4tXLiQ/v33X/FdIDWVaN06oqlTiezshP9dt064XQGxpFuV69eJVFXpL4B6ANQQoOllkuut99s1378Gvd9WmngV7A6NK2fPnqVWrVqRm5sbZWZmch2OVP3666/k5ubG2fUFAgHp6OjQy5cvOYtBEgQCAa1bt44MDQ3p5s2bXIcjk54+fUrLli2j5s2bk7W1Ne3fv5/4fD7XYck9Nnq5KmvWAHw+mgP4AYBbuY+bAzgC4C2ANwC+BOD04UM+X3g8U2uDBg1CYmIiGjRoAFNTU5w6dYrrkKRm2rRpCAgIwLt37zi5/vPnz6GkpAQDAwNOri8JRUVF8PT0xP79+3Ht2rU6N/+4KiUlJQgNDcWXX36J7t27IzMzE6dPn8bly5cxZcoUtl6wGLCkW5kyy1CNAeAAQKfcLpoAjAHwIFwVoz6ABx8+VJBlqGRFkyZNsHXrVuzcuRMeHh6YOXMmsrOzuQ5L4gwMDGBrawt/f39Orq9oRTGys7NhZ2eHZ8+e4cqVKwq5vGZNvHz5Er/88gvatGmDlStXwsHBAcnJyfjzzz/RuXNnrsNTKCzpVqYay0dpAlAG8DWApWU/UIBlqGTN4MGDkZCQgHr16sHU1BSnT5/mOiSJ43LOriKtoZucnAxra2u0bdsWx44dQ5MmTbgOiVMCgQBnz57FuHHjYGJiguTkZAQGBiIqKgpubm5sypSEsKRbmUqWoapIJoAsAJsBfNQmUIBlqGSRuro6tm3bhh07dmDmzJkK3+odPnw4kpOTkZRU4QqjEhUbG6sQLd0bN27A0tISLi4u+PvvvyufQ1oHpKWlYf369Wjfvj28vLwwePBgPH36FNu2bYO5uTnX4Sk8lnQrU8kyVJVpDMATwDQAqWU/YAX9JWbIkCFITEwEj8eDqakpzpw5w3VIEqGkpAQXFxdOWruK0NINDg7G8OHDsXnzZixYsAC8Sur/KjIiwqVLlzB58mS0b98et2/fxv79+xEbGwtPT0+oq6tzHWKdwZJuZapYhqoyAghXyXhRZltRHe/CkjR1dXX8888/+Oeff+Du7g4PDw+FbPW6ublh//79KCgokNo1MzMzkZaWhnbt2kntmuJERNi0aRPmzJmDEydOwNHRkeuQpC4jI6P0uaynpyd69+6NR48eYdeuXejTp0+dvAHhGku6lTEzA96P1CuGcNmpkvev/PfbzgCIfb8tG8ACAFoAOr0/RX69evjp6FGMGjUK3t7eSE5Olu73UIcMGzYMiYmJKCkpgZmZGc6ePct1SGLVtm1bmJqaIjg4WGrXjI+Ph5mZmVwuZ1dcXIxvvvkG27dvR0REBCwsLLgOSWqICFFRUXB1dUWbNm0QGRmJrVu34tatW5g3bx605Hw9Wnknf79N0lJm+ahVAFQArAWw//37VRA+y50EQANAWwhHLp+EcFAVACg3bIhFt25h+vTpuHbtGnr06AEzMzMsXboUERERMrV0myLQ0NDAjh07sHXrVri5ucHT05OzqTaSMGPGDKl2McvrGro5OTlwcHDA3bt3cfXq1TqzrOa7d++wdetWdO/eHVOmTIGJiQnu3buHgwcPwsbGhrVqZQXH84Rlm5iXoSouLqaIiAhaunQpmZmZkY6ODjk7O5Ofn1+dLXUoKZmZmeTu7k7GxsZ09uxZrsMRi7y8PNLW1qYnT55I5XrTp0+n7du3S+Va4vL8+XPq1q0bubu7U2FhIdfhSMXNmzdp1qxZpKmpSWPHjqXTp08Ll9FjZBJLulV5X5GqRklXhIpUT58+JW9vbxo1ahQ1adKE+vfvT+vXr6c7d+5wXm9XUZw4cYIMDQ3J09NTIRahmDt3Li1fvlwq1zIzM6NoOaqqFhcXRy1btqQ1a9Yo/O9Pbm4u7dy5k3r16kVGRkb0888/04sXL7gOixEBS7qfI6Xay7m5uRQSEkKenp5kaGhIbdq0oW+++YZOnz5N+fn5Evrm6oaMjAxydXUlY2NjOnfuHNfh1EpsbCy1bNlS4ivh5Ofnk4qKityU/QsNDSVdXV3y9/fnOhSJSkpKoq+//pq0tbXJzs6OQkJC2KpIcoYlXVFIeRkqgUBA8fFtVW6SAAAgAElEQVTx9Msvv5ClpSVpaGiQo6Mj+fj4KFwNXGkKDQ0lQ0NDmjNnDr17947rcGqsR48edPLkSYle4+bNm9SlSxeJXkNctmzZQgYGBpwvDCEpfD6f9u/fT9bW1tSsWTNatmwZPX36lOuwmBpiSVdUHC5DlZqaSnv37qUJEyaQpqYmWVhY0IoVKygmJoY9u6mmjIwMcnFxodatW9P58+e5DqdGtmzZQuPGjZPoNXx8fGjq1KkSvUZtFRcX04IFC6hDhw704MEDrsMRu3v37tHChQtJT0+Phg4dSgEBAXXmObUi4xERcT2YS66kpQlLOyYmCgtfaGkBpqbC0c56ehK/fFFREa5evYqQkBCEhIQgOzsbI0eOhJ2dHQYPHgw1NTWJx6AIQkND4eHhAXt7e/z6669y9XPLzMyEsbEx7t+/Dz0J/Zv75ptvYGxsjAULFkjk/LWVm5sLZ2dnZGRkICAgANra2lyHJBZFRUUIDg7G1q1bkZiYCBcXF8yaNQtt27blOjRGTFjSlXMPHjxAaGgoQkJCEBUVBSsrK4waNQp2dnZo3bo11+HJtIyMDPzvf//DpUuXsHPnTtja2nIdksimTZuGbt26SSwp9uvXDz/99BMGDhwokfPXxqtXrzB69GiYmJhg+/btaNiwIdch1dqTJ0+wfft27Ny5Ex06dICnpyccHR3RqFEjrkNjxI3bhjYjTllZWXT06FFydXUlfX19MjExoUWLFlF4eDgVFRVxHZ7MOn78OLVo0YLmzp1LOTk5XIcjkvDwcDIxMZHIKN2SkhJq0qQJpaeni/3ctZWYmEitWrWilStXyv0I5aKiIgoODqYRI0aQjo4OzZ8/n27fvs11WIyEsaSroEpKSigqKop+/PFHMjc3J21tbZo0aRLt37+f3rx5w3V4Muft27c0depUatOmDV28eJHrcD5LIBDQF198IZHBQ/fv3ycjIyOxn7e2Tp8+TXp6erR//36uQ6mV58+f04oVK8jQ0JAsLS1pz549lJeXx3VYjJSwpFtHPH/+nP755x+yt7cndXV1sra2prVr11JiYqLctxjE6dixY9S8eXP6+uuvZb7Vu3btWnJ3dxf7eQ8fPkz29vZiP29tbN++nZo2bUrh4eFch1IjJSUlFBYWRg4ODqSlpUWzZ8+muLg4rsNiOMCe6dZB+fn5uHjxYumzYCKCnZ0dRo0ahQEDBkBZWfnzJ1Fgb9++xbx583Dt2jXs3LkTNjY2XIdUoVevXqFTp05ITk4W69qw33//PRo0aIAVK1aI7Zw1JRAI8P333+PIkSMIDQ1F+/btuQ6pWl6/fo1du3bhn3/+gZaWFjw9PTFp0iS5GrjHiBdLunUcEeH27dsICQlBaGgo4uLiMGDAANjZ2WHkyJFo0aIF1yFy5tixY5g9ezbGjRuH1atXy+Si3g4ODhg9ejTc3d3Fds5Ro0Zh1qxZsLe3F9s5a4LP52P69OlISUlBUFAQdHV1OY1HVESEixcvYuvWrTh9+jTGjh0LT09P9OzZk+vQGBnAki7zkbdv3+LkyZMICQnBqVOn0KpVK9jZ2cHOzg49e/aUyxVnauPt27f45ptvEBUVhZ07d6Jfv35ch/SR48ePY/Xq1bh27ZrYztmiRQtERERwulBAamoq7O3t0bp1a+zcuVMuel/S09OxZ88ebNu2DQ0bNoSnpyecnZ2hUYNlQhnFxZIuU6ni4mJcu3attBWclpZWOid4yJAhdWrh6+DgYMyePRsTJ07EL7/8AlVVVa5DAiD8f2RkZIQzZ86gc+fOtT5famoqOnbsiPT0dM5Wpbl79y5GjRqFyZMn46effpLpGz0iQkREBLZt24Zjx47hyy+/hIeHB6ysrNiqPkyFZPdfM8M5JSUl9OvXD7/++iuSkpIQGRmJHj16YPv27TA0NMTgwYOxceNGPHjwgOtQJc7e3h6JiYlITU1Ft27dcOXKFa5DAiD8f+Ti4iK2Jf/i4uLQrVs3zhLGxYsX0b9/f/zwww/4+eefZTbhZmVl4e+//4aZmRnc3NzQrVs3PHz4EHv37kXfvn1ZwmUqx834LUbevXv3joKCgmjGjBnUrFkzat++PS1YsIDOnz+v8KXqAgMDqVmzZjR//nzKzc3lOhy6f/8+6enpiWVhjLVr19L//vc/MURVfbt37yY9PT2ZXpQiOjqa3N3dSVNTkyZMmEDnz59no/+ZapHN20hG5qmpqcHe3h7bt2/H8+fP4evrCw0NDSxevBj6+vqYMGEC9u7di7S0NK5DFTsHBwckJibi9evX6NatG65evcppPO3atUPnzp1x7NixWp8rLi4O3bt3F0NUoiMiLF++HD/99BPCw8NlrgpWTk4Otm/fjp49e2L8+PFo164d7t69C39/fwwYMIC1aplqYc90GbF79eoVwsLCEBISgnPnzqFTp06lg7HMzMwU6o9UQEAAvvrqK0yePBmrVq2CiooKJ3EcOHAA+/btw8mTJ2t1no4dO+Lw4cMwNTUVU2RVKygogJubGx4+fIjg4GA0bdpUKtcVRUJCArZt2wZfX1/0798fHh4eGDp0qMx2eTPygSVdRqIKCgpw+fLl0gUaCgoKSmtDDxw4UGYGJNXGmzdvMHfuXMTGxmLXrl2wsrKSegx8Ph+Ghoa4efNmjUcd5+bmQk9PD1lZWWjQoIGYI/xUeno6HB0doa+vj3379nF2w1IWn8/H4cOHsXXrViQnJ2PmzJlwd3eHoaEh16ExioLTzm2mThEIBHT37l3asGED2draUpMmTWjkyJG0ZcsWhVgf9MiRI2RgYEALFy7kpKzfV199RStWrKjx8REREdSjRw8xRlS5+/fv0xdffEHffvutTCxPeefOHZo/fz7p6OjQiBEjKDg4mNUrZySC9ZMwUsPj8dChQwcsXLgQFy5cQHJyMqZPn45r166hR48eMDMzw9KlSxEREYGSkhKuw622sWPHIiEhAc+ePUP37t3FOndWFO7u7ti5c2eNf3bSep575coVWFtbw8vLC7/++itn3bUFBQXw8/PDgAEDYGtrC1VVVcTExODEiRP48ssvoaSkxElcjILjOuszDJFwQfKIiAhaunQpmZmZka6uLjk7O5Ofnx9lZGRwHV61HT58mAwMDMjLy0uqrV5zc3M6depUjY6dNWsWbd68WcwRfezgwYOkp6dX4xjF4eHDh7R48WLS19enQYMG0aFDh6igoICzeJi6hbV0GZlQv359WFpa4pdffkF8fDxu3LiBvn37Yt++fTAyMoKtrS02bNiAu3fvguRgGMK4ceOQkJCAp0+fwtzcHJGRkVK5rru7O3bs2FGjY2NjYyXW0iUirFq1Ct999x3OnTuHoUOHSuQ6lSkqKkJgYCCGDRuG3r17o7i4GJcvX8bZs2cxfvx4hViTl5EPbCAVI/Py8vJw4cKF0sFYjRo1Kh2MZWNjI/MLfR8+fBhff/01pk+fjp9++kmiJQ0zMzNhbGyMBw8eVKtWcXFxMTQ0NPDq1SuxLp4AAIWFhfDw8EBiYiKOHz+OZs2aifX8VUlOTsaOHTvg4+ODNm3awNPTE2PHjpWLspKMYmItXUbmqaqqYtSoUfD29kZycjKOHj2Kpk2bYvny5WjatCnGjh2LnTt34tWrV1yHWqHx48cjISEBjx49grm5OaKioiR2LU1NTYwePRr79u2r1nH//vsvWrRoIfaEm5GRgeHDhyMjIwPh4eFSSbglJSUIDQ3F6NGj0b17d2RmZuL06dO4fPkypkyZwhIuwy1ue7cZpnZSU1Np7969NGHCBNLU1CQLCwtasWIFxcTEyMSo2PL8/f2padOm9O233xKfz5fINS5evEidO3euVqWk/fv304QJE8Qax8OHD6ljx440f/58Ki4uFuu5K5KSkkI///wzGRkZUa9evcjHx0fm10Rm6h7W0mXkmp6eHqZOnQp/f3+kpqbi119/xbt37zBlyhQYGhpi5syZCAoKQk5ODtehAgAmTJiAhIQEPHz4EObm5rh+/brYr2FjY4OCgoJqtahjY2PRrVs3scUQGRmJvn374quvvsIff/yB+vXri+3cZQkEApw5cwbjxo2DiYkJnj17hsDAQERFRcHNzU0ml2Nk6jiusz7DSMr9+/dp48aNNHjwYGrSpAkNGzaM/vzzT3r06BHXoZFAICBfX1/S19en7777Tix1k8tas2YNzZgxQ+T9Bw0aRGFhYWK59uHDh0lXV5dCQkLEcr6KpKam0rp166ht27bUtWtX8vb2pqysLIldj2HEhQ2kYuqE7OxsnDlzBqGhoQgNDYWuri7s7OwwatQoWFlZcTYn8/Xr15g9ezb+/fdf7N69GxYWFmI578uXL0tbfmpqalXuS0TQ1dXFrVu3YGBgUONrEhHWr1+Pv/76C8eOHRP7SGgiwuXLl7F161acOHECjo6O8PDwQO/evRWqtCij2FjSZeocgUCAmJiY0nWCnzx5gmHDhsHOzg7Dhw+Htra2VOMhIvj5+WH+/Plwd3fH8uXLxTIi297eHvb29nBzc6tyv2fPnqFXr154+fJlja9VVFSEuXPnIioqCiEhIWItm5iRkYG9e/di27ZtAAAPDw9MmzYNWlpaYrsGw0gLe6bL1Dn16tVDr169sHLlSty4cQMJCQkYMGAADh06hNatW3+0hrA07kl5PB4mTZqE+Ph43LlzBz169EBMTEytzztjxgyR5ux+WEO3prKysmBnZ4fnz5/j8uXLYkm4RITIyEi4urqiTZs2iIqKwtatW3Hr1i3MmzePJVxGbrGWLsOUkZ+fj4sXL5bOCQZQukKSra2txKebEBF8fX3xv//9DzNmzMCPP/5Y41ZvcXExjIyMcPbsWZiYmFS638qVK5Gfn4/Vq1dX+xrJyckYNWoUbGxssGnTplp307979w4HDhzA1q1bkZOTAw8PD7i4uEBPT69W52UYWcFaugxThrKyMoYPH47Nmzfj8ePHCA0NRcuWLbF69Wo0bdq0dA3hFy9eSOT6PB4PkydPRnx8PG7duoWePXvixo0bNTqXkpISXFxc4OPjU+V+NW3pxsTEwNLSEm5ubti8eXOtEm5sbCw8PDxKbxI2bNiAe/fuYdGiRSzhMoqFk+FbDCOH0tPT6cCBAzRp0iTS1tam7t2707JlyygqKkoic4IFAgHt37+f9PX16YcffqhRfeD79++Tnp5elccaGxvTv//+W63zBgUFka6uLgUGBlY7pg9ycnLIx8eHLCwsyMjIiFatWkUpKSk1Ph/DyAPWvcwwNVBcXIxr166VdkOnp6djxIgRsLOzw5AhQ6Curi62a718+RKenp54/Pgxdu/eDXNz82odP2DAAHz11VcYN27cJ59lZmaiZcuWyMrKEmm1HyLCpk2bsH79egQHB6Nnz57VigUAbt26hW3btuHAgQPo27cvPDw8MHz4cInN5WUYmcJx0mcYhfDo0SP666+/aNiwYdSkSRMaNGgQ/fHHH3T//n2xnF8gENC+fftIT0+v2q3effv20bBhwyr87MKFC2RlZSXSeYqKiuirr76izp0705MnT0S+PhERn8+n/fv3k7W1NTVv3pyWLVumEGsoM0x1sZYuw4hZTk4Ozp07VzolSV1dvXSBBmtrazRo0KDG53758iU8PDzw5MkTkVu9fD4fhoaGiI2NhZGR0Uefbdy4EQ8ePMDmzZurPMe7d+/g5OSEoqIiHD58GBoaGiLFe+/ePfzzzz/Ys2cPzM3N4enpCTs7u1r9DBhGnrGBVAwjZmpqaqUDrp4/f46DBw9CQ0MDixcvhr6+PiZMmIC9e/ciLS2t2udu1qwZgoOD4eXlheHDh2P58uUoLCys8hgVFRU4OTlh165dn3wmSvnHFy9ewMbGBs2bN0doaOhnE25hYSEOHz6MQYMGoV+/flBSUkJkZCROnToFR0dHlnAZ7qSmAuvWAc7OwOjRwv+uWwfU4HexxrhuajNMXfLy5UvauXMnjRkzhjQ0NMjS0pJWrVpFcXFx1VqggIjoxYsXNGrUKOratSvFxsZWue/NmzfJyMjok4UHzMzMKCYmptLjYmNjydDQkNauXfvZ+B49ekRLliwhAwMDsrW1JV9fX7GXt2SYGrl+ncjRkUhZWfgC/nupqAi3OToK95MwlnQZhiP5+fl05swZmjdvHrVp04YMDQ3Jw8ODjh8/Trm5uSKdQyAQ0O7du0lPT4+WL19e5bPe7t270wV/f6JffyWaMoWKR46kg/XrU+EvvxClpn6yf2hoKOnq6tKhQ4cqPWdRUREFBwfTiBEjSEdHh+bPn0937twRKXaGkYotW4hUVYl4vI+TbfkXjyfcb8sWiYbDki7DyACBQEB37tyhDRs2kK2tLTVp0oRGjRpFW7ZsEWnA0fPnz2nkyJHUtWtXiouL+3SH69fpYdeuVFCvnkh3+n///TcZGBhQREREpddbsWIFGRoakqWlJe3Zs4fy8vJq9TNgGLH7kHCrSrblXxJOvCzpMowMysjIIH9/f5o6dSrp6uqSmZkZLVmyhK5evVrp2rQCgYB27dpFenp6tGLFCiosLBR+8P4Pj0CEO32BqiodGjiQOnbsSA8fPvzo/CUlJRQWFkb29vakpaVFc+bMofj4eEn/KBimZq5frzDh9geoEUCN37/aV5Z4o6MlEhYbvcwwMq6kpARRUVEIDQ1FSEgIUlJSMGLECIwaNQrDhg2DpqbmR/u/ePECM2fOxKtXr3Bs5EgY/vEHkJcn8vX49epBsG4dGi9cCEC4EtLOnTuxfft2aGlpwdPTE5MmTfrs6kUMw6kxY4CgIGEaLcMWgDOAGVUdy+MBjo7A0aNiD4slXYaRM8nJyThx4gRCQkJw6dIl9OjRo3SZwg4dOoDH44GIELJ8OQb9/DNUyx3/FoA7gNMAdAGsATC53D6kqoobv/2G9Rcu4PTp0xg7diw8PT1rVAyDYaQuNRVo1QrIz//kI1uIkHQBQFkZSE4GxFyGlCVdhpFjeXl5OH/+fGkruFGjRqUJeODmzah3/Dh45X7FJwEQAPABEAdgFIAIAJ3L7FMC4Ly6Ou6tXg1nZ2eR5+UyjExYtw5YvrzSpHsLAAHoAOCX99s+oaIC/PQTsGiRWENjSZdhFAQRISEhAaGhobgaGIijMTEovyZSLgAtAEkA2r/fNhVACwBry59PWRk8CdzpM4yoSDjuCAKB4JNXZdsFAgE0vvoKqoGBFZ4zCoAJgIYA/ADMhfDms21FO0+dCuzdK9bvqXbrcDEMIzN4PB66du2Krl27AkpKoKSkT+707wGoj/8SLgB0BRBeyfmwe7fY7/TLKvtHtao/oqL8oRXnPiwW2YiFiFCvXr2PXjwe75Nt5V97MjIwpJJ/c73LvJ8OwBfACQBfV7RzRoaY/8WzpMswCoWIkJWVhfoREWhSQddaDoDyHcUaAN5VdDI+H8dWr8bSPXsk9oeWiD76IyrKH1Rx7SPt64m6j5KSksJ+b9Xdh8fj1ewXwdkZOHBApF15EHY1V0hLq2bXrwJLugwjg4gIeXl5ePv2LdLT05Geni7S+4yMDDRu3BgBRUUYVMF51QBkl9uWDaBJJXHYdu0Kv82bJfZHl8fj1fwPK8NUxsxMOPK43I1nJoTdy/0hTH7+AC4B2FjROVRUAFNTsYfGnukyjIQVFhbi7du3lSbKypIoj8eDjo4OdHR0oK2tXfq+/Ndl32tpaaFBgwYgZ2fwKrjT//BM9xaAL95vmwagOT59pgsA9/v0AfbuRbt27VhyZORHJaOX0wCMBHAXwscsHQH8DFTcFc1GLzMMtwQCATIzM6vV8nz79i34fD60tLRESppl36uoqFQrPiLCzZs34efnB83t27EwOxvKFfx6O0HYpbYDwgEkI/Hp6GUAKG7QAIc6d8a3aWkQCASwtbVF//79YWtri/bt27MkzMi2SubpioTN02UY8SEi5OTkVLvrNisrC02aNBE5aX54r66uLtEElZSUBD8/P/j5+YHH42HixImYMmQIOg0fXuGUibcA3ACcAaADYQu3/DxdAKV3+qSri0ePHuHixYsIDw/HxYsXUVRUVJqA+/fvj44dO7IkzMiW6GjA1rZahWFKqaoC4eGABOals6TLyLWCgoIqE2VFn719+xZKSkrVanVqa2tDS0sLSkqyMQzi3r178Pf3h7+/P7KzszFx4kQ4OTnB3Nz8v+RXizt94vHAq+ROn4jw5MkTXLx4sfSVn5//UUu4U6dOLAkz3PP2Bry8qpd4VVWBDRuA2bMlElLdSrqpqcIpEAkJQFYWoKEhfODu6srmInKspKQEGRkZ1e66LSwsFClplv1aW1sbysrlZ7DKvqdPn+LQoUPw8/PDixcvMGHCBDg5OaFPnz6oV6+CpbGjoyGwsUG9Clq7n5Nfvz6Kz56Fmq2tSPs/efKktBUcHh6OnJycj1rCJiYmFcfIMJL2IfHy+VXfgPJ4wsFTEky4QF1JutHRwJo1QFiY8Ouyf4RUVIT/I0aMAJYsASwsuIlRQRARsrOzq911++7dO2hoaIiUNMu+V1NTU+gW1cuXL3H48GH4+fnh3r17GDNmDJycnNC/f3/Ur1+/ymPv3bsHHwsL/JKfD6XPLHRfFqmqwt/CAj+9fo3g4GC0b9/+8weV8/TpU4SHh5cm4uzsbNjY2JQm4S5durAkzEhPTIwwB5w4IUyufP5/n33IASNHCnOAhEudKn7SlbG7HHnC5/Nr1HWrrKxcrRG32tra0NTU/GwSqSvevHmDo0ePwt/fH7Gxsfjyyy/h5OSEwYMHo0GDBiKd49mzZ+jXrx+WLVsG98JCkX4HSgAIGjZEg40bgdmz8c8//2DZsmXYt28fhg4dWqvv6dmzZx8l4YyMDPTr1w+2trawtbWFqakpS8KM5KWlAbt3I2zdOvRu3x7abdsKpwW5uEitt1Oxk64M9udzoaioqEZdtyUlJdUecaulpYVGjRpx/S3LnaysLAQFBcHPzw8REREYMWIEnJycMHz48Gp3haelpaFfv36YOXMmFr5fKQgxMaDVq1EQGIiGysofdzm/v9PP6tsXY2NisO/OHTRr1gwAcOnSJUycOBHffvst5s+fL7ZehRcvXnzUHZ2WlgYbG5vSLmkzMzN2E8ZIjIWFBf7++2/06tVL6tdW3KRbwci1AgBzAJyFcARnOwCrAYwof6wER67VhkAgQFZWVrW7bnNzc6GpqVntBKqqqqrQXbdcy83NxfHjx+Hn54cLFy5g4MCBmDhxIuzs7Gq8bF5WVhYGDhyIESNGYNWqVR99Fhsbi9njxiHS0xNITBSWuNPS+uhOf8mSJXj06BH8/f1Lj3v69Cns7e3RvXt3bN26VSI3VSkpKbh06VJpEn716lVpS7h///7o1q0bS8KM2HTr1g27d+9Gt27dpH5txU26FYzczAWwHoALACMI621OApAIwLjssRKcowX8V21I1CIJH95/qDZU3SkrGhoarOtORuTn5yMsLAx+fn44deoULC0t4eTkBAcHh1qv5JOXl4fhw4fDzMwMf/311yc3TOvXr8fTp0+xefPmSs/B5/PRpUsX/PXXXxg5cmTp9tzcXLi4uOD58+cICAgobQlLyqtXrz7qjk5JSUG/fv1KW8LdunWTmZHkjPwxMTHB4cOH0blz+dnpkqeYSbeKtRTLMwOwHMDY8h+IWI3kQ7Wh6nbdVlZtqKr32traIj/TY2RHUVERzp49Cz8/Pxw7dgzdu3eHk5MTxowZA11dXbFco7CwEI6OjtDW1saePXsqvMkaOnQo5syZAwcHhyrPdebMGcyaNQtJSUlo3Lhx6XYiwqpVq/DPP/8gICAAFlIcdPj69euPWsLPnj2DtbV1aRI2NzdnSZgR2RdffIHQ0NAaDRKsLcVMulWspVjWawCtIKzK07HcZ8UNGyLe0RGX+/SpskXK5/Or1eqsabUhRr6UlJQgPDwcfn5+CAgIQIcOHTBx4kSMHz9e7K3EkpISTJkyBXl5eTh69GiFN2b5+fnQ09PD8+fPRWpROzs7o1mzZli/fv0nnwUGBmLWrFnYtGkTJk+usKyGxKWlpZUm4YsXLyI5ORlWVlal3dE9evRgN6hMpYyNjXHx4kUYGxtL/dqKeWuYkPDZhFsEYAqESzuVT7gAoFRYiLyoKDzS14eOjg46duxY4TNRSVcbYuSHQCDAtWvX4OfnhyNHjqB58+ZwcnLCjRs30KpVK4lck4gwZ84cvH79GmFhYZUmmqtXr8LU1FTkLuzff/8dpqammDJlyifPvRwdHdGuXTvY29sjPj4eq1evlvrzVj09PYwdOxZjxwr7qN68eYNLly4hPDwcHh4eePz4MSwtLUuTcM+ePdGwYUOpxsjIrsLCQs5uyhSzpTt6NBASUunHAgjL3mUDCAZQ6Y/ezg44flzs4TGKo2y9Y39/f6irq8PJyQkTJ07EF1988fkT1NJ3332H8+fP49y5c2jSpLK1goT7NWzYECtXrhT53Dt37oS3tzciIyMrTKpv3rzB+PHjoaqqioMHD9b6mbQ4paen4/Lly6XPhB88eABLS8vS7mgLCwuWhOswPT093Lp1C/r6+lK/tmKOrqnil58AuEPYtXwUVSRcQCJrKTKKISkpCT/88AO++OILODk5QVlZGSdOnPhou6StXbsWx48fR1hYWJUJFwDOnj2LIUMqW9a7Yq6urlBVVcXff/9d4ee6uro4ffo0jI2N0adPH9y/f79a55ckHR0dODg44I8//kBsbCySk5Mxd+5cpKen45tvvoGOjg4GDx6MVatW4fLlyygoKOA6ZEaKioqKuHv8QIro11+JlJWJhGOXP3p5ANQboHcVfPbRS0WFaN06rr8TRob8+++/tHLlSurcuTO1bNmSvLy8KCYmhgQCgdRj8fb2ptatW9Pz588/u++bN29IXV2dCgoKqn2dO3fukI6ODj179qzK/bZt20b6+vp06tSpal+DCxkZGXT8+HFauHAh9ejRg9TU1GjAgAH00yNWfJ0AACAASURBVE8/0cWLF4nP53MdIiNBKioqlJOTw8m1FbN7uZLRy08hnBrUCB8/zN4G4fPdj0hoLUVGvpStd5ySkoLx48dXXe9YCnx9fbFo0SKEh4ejbdu2n93/8OHD2LNnD0KqeORSlRUrViA+Ph6BgYFV7iepQhrSkJWVhStXrpR2R9++fRsWFhal3dF9+vSRy3rdTMUaNGiA3NxcTh4xKGbSBWR2LUVG9pWvdzx27Fg4OTnBxsaG8wINoaGhcHNzw7lz59ClSxeRjpk1axY6d+6MefPm1eiaBQUF6Nq1K9auXfvZ6UbSKKQhDdnZ2bh69WrpFKWkpCT06NGjdGCWpaUlm4Egp4gI9erVg0Ag4OTGUHGTroyupcjIJnHUO5a08PBwjBs3DiEhIejdu7dIxxAR2rRpg5CQkFoVAggPD4ezszNu3boFdXX1KvfNzc3F9OnT8eLFC6kU0pCGd+/eISIionSKUmJiIrp3716ahK2srKCqqsp1mIwICgsL0bhxYxQVFXFyfcVNugCrvcxUKTMzE0FBQfD39691vWNJu3HjBkaMGAFfX18MGjRI5OMePnwIGxsbPH/+vNZ39W5ublBTU8Off/752X0FAgFWrVqF7du3IzAwED0V7AY2JycHERERpd3R8fHx6NatW2l3tJWV1UeFRRjZkZubCz09PeTVpEEmDpw8SZamLVuIVFWJeLyqB07xeML9tmzhOmJGgnJycsjX15fs7e1JXV2dHBwcyM/Pj7NBFaK4c+cOGRgYUGBgYLWP9fb2pmnTpokljjdv3lDTpk0pKipK5GMCAgJIV1eXDhw4IJYYZFVOTg6dOXOGvv/+e7K2tqbGjRuTpaUlfffdd3Ty5El69+4d1yEy72VkZJC6ujpn11f8pEtEFB1NNGaMcESzispHyVagokJ8gDIHDRLuxygcPp9PAQEBNGHCBNLQ0KDhw4fT7t27KTMzk+vQPuvx48fUsmVL2rNnT42OHzt2LO3du1ds8ezbt4+6du1KRUVFIh+TkJBArVu3psWLF1NxcbHYYpFlubm5dO7cOVq2bBnZ2NhQ48aNqXfv3rR48WI6ceIEZWdncx1infX69WvS1dXl7PqK3b1c3vu1FMuvsLLhzRs8yMrC1q1buY6QEZOioiKcOXMG/v7+Eqt3LGkfVtr5+uuv8c0331T7+JKSktIiAOJ6rkpEGDZsGIYOHQovLy+Rj/tQSKNx48Y4cOCATBXSkAY+n4/IyMjS7uiYmBiYmJiUridsbW392WfljHi8ePECFhYWSElJ4eT6dSvpVuLly5cwMTHB48ePoampyXU4TA1VVO/YyckJ48aNk7vBPBkZGbC1tcXYsWPx448/1ugc169fh5ubG5KSksQa28OHD9G7d2/ExMRUq3ZtUVER5s+fj/Pnz+PYsWNSKSAiq/Lz8xEVFVWahK9fv45OnTqVPhO2trZmf4sk5MmTJ+jfvz+ePn3KyfVZ0n1v0qRJ6NOnT42nVTDcqKze8YQJEyRW71jScnNzMWTIEPTu3Ru///57jQdArV69Gmlpafjjjz/EHCGwZs0aXL58GaGhodWOb9u2bfjxxx+xb98+DB06VOyxyaOCggJcv369dIpSVFQU2rdvXzo6ul+/ftBiFfLE4t69exg1ahR3FdQ469iWMVeuXKEvvviCSkpKuA6F+QyBQEDR0dHk5eVFLVu2pM6dO9PPP/9M9+7d4zq0WsvPz6chQ4aQi4tLrf8t2traUmhoqJgi+1hBQQF17tyZ/Pz8anR8eHg4GRgY0O+//85JRS9ZV1BQQFeuXKFVq1bR4MGDSU1Njbp160bz58+noKAgSk9P5zpEuZWUlESdOnXi7PqspfseEcHc3Bxr167FsGHDuA6HqUBSUhL8/Pzg5+cHHo9XurCAqEUiZF1xcTGcnJxARPD396/V+rC5ubkwMDDAy5cvoaamJsYo/xMREYFx48bh1q1bNWqFPXnyBPb29jA3N5frQhrSUFhYiJiYmNLu6GvXrqFNmzal3dE2NjbQ0dHhOky5EBcXh+nTpyM+Pp6T67OkW4aPjw+CgoJwnK0sJDPu3bsHf39/+Pv7Izs7GxMnToSTkxPMzc3lqszg5wgEAsyYMQPPnz/H8ePHa52ATp48iTVr1iA8PFxMEVZs9uzZIKIaD0L8UEgjJSUFAQEBMDAwEHOEiqmoqAg3btwo7Y6+evUqjI2NS7ujbWxsoMdK2FYoOjoac+bMQXR0NCfXZ0m3jLy8PBgZGeH69eto06YN1+HUWbJY71iSiAgLFy7EtWvXcObMGbG0TBcuXAhNTU0sW7ZMDBFWLjMzE507d8ahQ4fQt2/fGp3jQyGNHTt2ICAgQOEKaUhDcXExbt68WZqEr1y5gpYtW5aOjraxseFkGTtZdPXqVSxatAgRERHcBMBVv7as8vLyIi8vL67DqHNSUlJo06ZNZGlpSTo6OjRr1iw6f/58nZjXuXLlSjI1NaW3b9+K7ZxmZmb0//buPq7m8/8D+Ou4aRVS6wbL0OQ2Gkb7GbpRpvTdIm1ul8xUDPl+ybDMpD3M3VAM4as83Gxh4ouikJswZboxw4pWlFVbS1Q6da7fHx8SujnV+Xyuc07v5+NxHuqcz7muN+nzPp/rc13v69KlSyprrzYRERGsd+/eDdrFqKqmUkhDCnK5nF25coWtXr2aubq6srZt27LevXuzGTNmsB9//JE9ePCAd4jcnDlzhtna2nLrn5LuS9LT05mJiQl7/Pgx71C0Xl5eHtuyZQtzcHBghoaGzNPTkx0/fpyVlZXxDk0ywcHBzNLSkuXk5KiszQcPHjBDQ8N6FbBoDIVCwVxdXVlQUFCj20pOTmZdunRpUoU0pFBeXs4SExPZ2rVr2QcffMAMDQ1Zz549ma+vL9u3bx/Lzs7mHaJkTp48yZycnLj1T0m3Gq6urmzHjh28w9BKBQUFbOfOnczZ2ZkZGBiwcePGsUOHDjXJ/UvDw8NZx44d2d27d1Xa7p49e9jo0aNV2mZd7t69y4yNjVUygzwvL4/Z2dkxV1dXjagaponKy8vZL7/8wr777jvm5ubGjIyMWPfu3Zm3tzfbs2ePUvs0a6qjR48yFxcXbv1T0q1GVFQU69evHy1lUBFNrHcstsjISNa+fXt248YNlbft5eXFNm3apPJ267JmzRrm6Oiokt+bsrIyNnPmTNazZ0+tWAqm7ioqKlhSUhJbv349Gz16NHv99ddZt27d2GeffcZ2797NsrKyeIeoMocOHWIffvght/4p6VajoqKCWVpasvj4eN6haKyX6x27uLhoTL1jscXGxjJTU1OWmJio8rYVCgUzNzdnt27dUnnbdZHL5ax///4qrfW8ZcsWZmZmxk6ePKmyNkndKioqWHJyMgsODmbu7u7M2NiYde3alU2bNo3t2rWLZWZm8g6xwSIiIpiHhwe3/inp1mDdunVswoQJvMPQKGVlZezYsWPM09OTGRoaMgcHB7Z161aWl5fHOzS1cfnyZWZiYsLi4uJEaf+3335jnTp14jZKk5CQwNq1a6fSn/mzQhrr1q2j0SdOKioqWGpqKgsJCWEeHh7M1NSUWVhYsKlTp7KwsDCWkZHBO0Sl7d69m+u5nZYM1eCff/6BhYUFbty4oXF1e6WkTfWOxXb9+nU4OTlhx44dcHV1FaWPkJAQJCcnY/v27aK0r4y5c+eisLAQO3fuVFmbVEhDvTDG8NtvvyEuLq5ymZK+vn5lsQ47Ozt06dJFLdfSh4WF4cyZMwgPD+fSPyXdWvj4+MDc3LzBBee11cv1js3NzTFu3DiNrncstjt37sDW1harV6/GhAkTROvnww8/xMSJEzF+/HjR+qhLUVERrKysEB4eDgcHB5W1++jRI3h5eVEhDTXEGMPNmzcrK2adPXsWOjo6lQnY3t4eFhYWapGEt23bhitXrmDbtm1c+qekW4uUlBS4uLggIyMDLVu25B0OV4wxXL16tbI6lIGBQWUZxqa8W4wysrOzMWzYMPj7+8PX11e0fuRyOUxMTJCWlsa9GtHhw4fh7++PlJQU6OrqqqxdhUKB5cuXY/v27Th06BAV0lBTjDHcvn27MgHHxcWhefPmLyThrl27SpuEc3OBsDDcOnAAT3JzYT10KGBtDUydCkj5+8JrXFtT2NrasoiICN5hcJOamsq+/PJL1rVrV2ZpackCAgJYamoq77A0Rn5+PuvduzdbsWKF6H1duHCB9evXT/R+lDVmzBj21VdfidL2wYMHqZCGBlEoFOz27dssNDSUTZo0iZmbmzNzc3M2ceJEFhoaym7duiXe/forVxgbM4YxXV3hATx/6OkJz40ZIxwnAbrSrcP+/fuxceNG0WvYqpNn9Y5/+OEHFBUVaW29Y7EVFRXB0dERDg4OWLlypej9LVu2DI8fP8aqVatE70sZ9+/fR79+/XDu3Dn06tVL5e2npKTAzc0N48ePR1BQEJo3b67yPog4GGO4c+dO5T3huLg4VFRUVF4F29vbo3v37o0/32zeDMyfD5SUCGm2JjIZoKcHrFkDzJjRuD7rQEm3DnK5HF26dEFUVBSsra15hyOaplbvWGylpaUYNWoUunXrhi1btkjyYWXo0KFYunQpRowYIXpfytq4cSMiIiIQFxcnyv+j/Px8eHh4oHXr1ti7dy8MDAxU3gcRH2MMd+/erRyKjouLw5MnT14Yju7Zs2f9fo+eJdziYuXfo68veuKlpKuE5cuX4969e9i6dSvvUFQqJycH+/fvxw8//IDbt29j7NixGD9+PGxtbemqoRHkcjk8PDygp6eHPXv2SPJv+fDhQ5ibmyM3Nxd6enqi96esiooKvPfee5g+fTo+++wzUfqQy+Xw8/NDXFwcDh8+THMMtERGRsYL94SLi4tfmB3du3fvmpNwQgJgb19twv0BwDIAmQDaAwgDMKzqAfr6wNmzgFjzBSQZxNZwOTk5zNDQkBUUFPAOpdGe1Tu2t7dvsvWOxVRRUcEmT57MXFxcGr0BQH0cOXKEOTo6StZffSQlJTFTU1PRi+xv3ryZCmlosYyMDBYeHs6mTp3K3nrrLWZqasrGjh3LQkJCWGpqKquoqHh+8JgxjMlkL96/BdhJgHUC2CWAVQDs3tPHC8fJZIy5u4v296ArXSVNnDgRNjY2mDt3Lu9Q6u2ff/5BZGQkfvzxR1y8eBEuLi4YP348nJ2dVTqztKljjGHOnDlITk5GdHQ09PX1Jet7zpw5eOONN7Bw4ULJ+qyPBQsW4N69e9i7d6+o/Zw9exbjx4/HF198AT8/P5qDoMWysrJeWKJUUFAAOzs7OA8YgGmBgWhWVvbKe94DMO3po1a6ukBmpjizmkVL51omPj6eWVpavvhpSo1RvWPpBQQEsP79+3MpddmrVy9RykqqyqNHj5iFhQWLjo4Wva+7d+8ya2tr5uXlxUpLS0Xvj6iHrKwstnv3brbfxoYVV3OVWw6wlgBbAbCuADMH2OcAK375SvfZrOZVq0SJk5KukhQKBevfvz+LioriHUqNqtY7NjAwoHrHElq7di3r0aMH+/PPPyXvOysrixkbG6v9B8KoqCj21ltvSbJtZlFRERs7diwbPHiwSrdNJBpg0qRXkyjA7gMMAHsHYNkAywPYewBbXF3SBRj75BNRwqNpqUqSyWSYNWsWNm7cyDuUF8jlchw/fhxTpkxBhw4dEBISAkdHR6Snp1c+37ZtW95harUdO3YgODgYMTExMDMzk7z/2NhYDB8+XO1nmTs7O8PGxgaBgYGi99W6dWtERERg5MiRsLGxwdWrV0Xvk6iJwsJqn342vXA2gA4ATAD8B8DxmtopKFB1ZAJRUrmWKi4uZiYmJiwtLY1rHOXl5ezUqVNs+vTpzNjYmL333nssODi4SW1ErS7279/POnTowGVXn2cmTZrEQkNDufVfHzk5OczU1JQlJydL1uezQhp79+6VrE/CUQ1XugxgHQEWXuX7AwDrJ/GVLiXdevL392fz5s2TvN+Kigp24cIFNmvWLNauXTv2zjvvsNWrV7M//vhD8liIIDo6mpmamrJr165xi0GhULB27dqxO3fucIuhvrZu3creffddVl5eLlmfSUlJrEuXLmzhwoWS9ks4WLny1cpTTx9LADYQYH8C7G+ADQVYgMT3dGn2cj3dvXsXgwYNQmZiIvQjIoCUFGE4o21bldfxZFTvWG3Fx8dj9OjRiIyMxJAhQ7jFkZqaijFjxiAtLY1bDPWlUChga2uLiRMnYubMmZL1m5eXh48++ogKaWi73Fygc2egtPSVl+QA/ADsBaAL4GMAq55+/QKavaxGrlxhF9u3Z/IWLUSr40n1jtXbtWvXmKmpqSQzceuydu1a5uvryzuMevv111+ZiYkJu3//vqT9lpWVsRkzZrBevXqx27dvS9o3kVAN63SVeoi8TpeSbn18/z1j+vqsoq4fpkzGmL6+cLySbt26xQIDA1nv3r3Zm2++yfz9/VliYiJt2q1mbt26xTp06KA2m2A4OzuzAwcO8A6jQQICAtjYsWO59E2FNLTclSvCObghSVdfn7GEBNFCo6SrrKcJt94/vFoSb0ZGBlu1ahUbMGAAa9++PZs9ezaLj49X+6UfTVVmZibr3Lkz2759O+9QGGOMlZaWsjZt2rC///6bdygNUlJSwrp168aOHDnCpf+4uDjWvn17tn79evpwq41EOGerAiVdZdTwqSnk6ZovHYBNUfJTU3Z2NtuwYQMbPHgwMzY2Zt7e3uz06dM0uUPN5ebmsh49erA1a9bwDqXSmTNnmI2NDe8wGuXUqVOsU6dOrKioiEv/zwppTJ06lQppaKNniVeE0cmGoolUynB3ByIjhR9PFT8BaAbgBIASCIWzXyGT4cmoUQj74AP88MMPSEpKgpubG8aNGwcnJye0bNlS7OhJIxUWFsLBwQGjRo1CUFAQ73AqBQQEgDGGb775hncojTJlyhS8/vrrWLduHZf+Hz16hClTpiAnJwc//fQT2rdvzyUOIpLERGDFCuD4cWELv5KS56/p6Qnn9VGjgEWLxNvkoApKunWpZSbcMwEA7qGGpAugFMBsNze4enlRvWMNU1xcDGdnZ1hbWyMkJEStavm+++67WLlyJezt7XmH0ij5+fmwsrLC8ePH8c4773CJQaFQYPny5dixYwcOHTrELQ4iorw8ICwMSE0VCl8YGQF9+wJeXuLMUq4BJd26rFoFLF3aqKTLdHUhCwwE/P1FCJCIpaysDKNHj4axsTHCw8PVquJTQUEBOnfujLy8PLz22mu8w2m08PBwBAcH4+eff0aLFi24xXHw4EH4+voiODgYEyZM4BYH0V7qcxZRVykptSZcZchKS4VPV0RjVFRUwNPTEy1atMB///tftUq4AHDmzBkMGTJEKxIuAHh6esLQ0BAhISFc4xg7dixiY2OxePFiLFq0CBUVFVzjIdpHvc4k6qiGOp71JlYdT6JyjDHMnDkTubm5iIiIUMv77jExMRgxYgTvMFRGJpNh8+bN+Oabb5CZmck1lrfffhtXrlzBpUuXMHr0aDx8+JBrPES7UNKti6o2CzAyUk07RHSLFi3CtWvXcPjwYbW9/x4bGwsnJyfeYahU9+7d4efnh88//xy873qZmpoiJiYGHTt2xP/93/9pVMUvot4o6dbF2looCVaNcgiTpCqePkqfPvcKPT3hhj1Re99++y3+97//ISoqCm3atOEdTrUyMjJQVFSEvlr4f+qLL75Aeno6Dh48yDsUtGzZEps3b8bs2bMxZMgQxMbG8g6JaAFKunXx8qrxpSAI20V9C2D306+rXVDCWK3tEPWwZcsWhIaG4uTJkzA2NuYdTo1iYmLg6OioVjOpVUVHRwehoaHw8/NDoapu7TTSjBkzEBERgcmTJ2PDhg3cr8KJZqOkWxczM8DFRVjf9ZKvAWFX5CqPr18+SCYT1oBJOCWd1N++ffsQFBSEmJgYmJub8w6nVrGxsVp1P/dlQ4cOhaurKxYvXsw7lEp2dna4dOkSduzYgWnTpuHJkye8QyIaipYMKSMhAbC3B4qL6/9efX3g7FlJFl2Thjl27Bg+/fRTnDp1Cn369OEdTq0UCgXMzMyQlJSEjh078g5HNAUFBbCyssLBgwcxePBg3uFUokIapLHoSlcZgwYBa9YICbQ+9PWF91HCVVtnz57F1KlTceTIEbVPuACQlJQEU1NTrU64AGBkZITvvvsO3t7ekMvlvMOp1Lp1a+zfvx8jR46EjY0Nrl69yjskomGaf/3111/zDkIjDBoEvP46cOYMUF7tdKnnZLLnCXfGDGniI/V29epVuLm5Yd++fRg2bBjvcJSya9cumJqawsXFhXcoorOyssKRI0eQk5ODoUOH8g6nkkwmg729PTp16oTx48ejU6dOGvGBjagJ0as7a5uEBGGvRV1dYf/c6vbTdXcXdWso0ng3btxg7du3Z4cOHeIdSr04Ojqyw4cP8w5DMnfu3GHGxsYsLS2NdyjVSkpKYl26dGGLFi2i3cGIUuiebkOpSR1PUn8ZGRmwtbVFUFAQPD09eYejtJKSEpiZmeH+/fswMDDgHY5kVq1ahVOnTiE6OlotZ2zn5eXBw8MDBgYG2LNnT5P62ZD6o6RLmpQHDx5g2LBhmDNnDmbPns07nHqJiYnBsmXLcOHCBd6hSEoul2PgwIH44osvMHHiRN7hVKusrAx+fn44e/Ysjhw5AktLS94hETVFE6lIk1FQUICRI0fik08+0biEC2hnFSpltGzZEtu2bcO8efPw999/8w6nWjo6OlRIgyiFki5pEh4/fgxXV1cMHz4cS5Ys4R1Og2hbveX6sLGxgYeHBxYsWMA7lFpRIQ1SFxpeJlrvyZMn+OCDD9CxY0ds375d7XYMUkZeXh4sLS2Rn5+vlhswSOHhw4fo3bs39u7dC1tbW97h1Oru3btwc3PDoEGD8P3332vNblCk8TTv7ENIPZSXl2PSpElo06YNQkNDNTLhAsDp06dhZ2fXZBMuABgYGCA4OBg+Pj5qXxHKwsICFy9eREFBAYYPH44HDx5Uf2BurrBn9+TJwAcfCH+uWiVM1CRaSTPPQIQoQaFQwNvbGw8fPsTevXu5bo7eWE15aLmqMWPGoHv37li5ciXvUOrUunVrHDhwACNGjHi1kEZCAuDuDnTuDCxdCuzZAxw9Kvz59ddAp07C6wkJ3OIn4qDhZaKVGGOYN28eLl++jJiYGLRq1Yp3SA3GGEOXLl0QHR2NXr168Q6Hu6ysLPTv3x/x8fHo0aMH73CUcvDgQfj6+iIkJATjCwqA+fOBkhJhhX9NZDJhhzIqsqNVKOkSrbR8+XIcOHAAcXFxMNLwvYx///13ODg4ICsrSy3XqfKwYcMGREZG4vTp0xrzb5KcnIyI4cOx9OFD6NRV1a4qqm6nVWh4mWid4OBg7Nq1CydOnND4hAsIQ8tOTk4ak1ykMGvWLBQVFSEsLIx3KEp7u6wMQSUlryTc1i89mgN4YUFbcbFwZZyYKFWoRESUdIlW2bVrF9asWYOYmBit2QFG27fya4jmzZsjNDQUCxcuRJ6mTDpasQKy0tJXnn5U5fEnhH25P3r5oJISYMUKsSMkEqDhZaI1IiMjMWPGDJw+fVpr7n2Wl5fD1NQUN2/eRLt27XiHo3bmzZuHvLw87Nq1i3cotcvNFSZNVZN0qwoHsAxAOoBXxjV0dYHMTCozq+HoSpdohVOnTsHb2xtHjx7VmoQLAImJiXjzzTcp4dZg2bJlOHfunPpXgFJyGDwcgCeqSbiAMLFKg4bTSfUo6RKN9/PPP2PChAnYv38/3nnnHd7hqBQNLdeudevW2LRpE3x9fVFSUsI7nJqlpNR5lZsJ4CyAKTUdUFIibLBCNBolXaLRrl+/Djc3N+zcuRN2dna8w1G5Z5OoSM1cXV0xYMAABAUF8Q6lZoWFdR6yC8BQABa1HVRQoKKACC+UdInGSk9Ph7OzM9atWwdXV1fe4ajco0eP8Msvv6h9yUN1sH79eoSGhuL69eu8Q6le27Z1HrILtVzlPqMFs/GbOkq6RCNlZ2djxIgRCAgIwIQJE3iHI4pz585h4MCBGl3YQypvvPEGAgMD4ePjA4VCwTucV1lbCxOhanARwH1UM2u5Kj09Yc9uotEo6RKN89dff2HEiBHw9vaGr68v73BEQ0PL9ePj4wPGGLZt28Y7lFd5edX6cjgAdwBtajuIsTrbIeqPlgwRjVJUVARHR0c4ODhoRP3dxujbty927NgBGxsb3qFojOvXr2P48OFITk5Ghw4deIfzInd3IDKy9tKPNZHJgDFjgIMHVR8XkRQlXaIxSktLMWrUKHTr1g1btmzR6gpNOTk5sLKyQl5eHpo3b847HI2yePFipKen48cff+QdyosSEgB7e6HCVH3p6wNnzwIDB6o8LCItGl4mGkEul2PcuHEwMzPD999/r9UJFxDWHTs4OFDCbYAlS5bg6tWrOH78OO9QXjRokFBDWV+/fu97VnuZEq5WoKRL1J5CocCnn34KuVyOXbt2NYlERFv5NZyenh42b96MmTNn4vHjx7zDedGMGcCaNWD6+qio61iZjDY70EI0vEzUGmMMs2fPRkpKCqKjo6Ff36sEDcQYg7m5Oc6dOwdLS0ve4WisyZMno0OHDli9ejXvUF4Rv2EDir/6Ck5lZcKoTdXCHnp6wn3fUaOARYvoClfLUNIlam3JkiU4duwYzpw5g7ZKrHXUBjdu3ICrqyvu3Lmj9cPoYsrNzUXfvn1x4sQJ9OvXj3c4lRhjGDx4MP7zn//gYwcHobRjaqpQ+MLISFgW5OVFNZa1VAveARBSk7Vr12L//v04f/58k0m4wPOhZUq4jWNmZoYVK1Zg+vTpuHz5strcloiJicHDhw8xduxYoHlzwN+fd0hEQnRPl6ilHTt2ICQkBDExMTBtYp/4Y2NjaX2uikydOhWtWrXCpk2beIcCQLjKXbZsUqbqmQAADEdJREFUGQICAtTmQwCRFg0vE7Vz4MABzJkzB3FxcejevTvvcCQll8thYmKC9PR0mJiY8A5HK9y8eRNDhw7FtWvX8Oabb3KN5dSpU5g5cyZu3LhBSbeJoitdolZOnDiBzz//HFFRUU0u4QLA5cuXYWlpSQlXhXr27IlZs2Zh9uzZvENBYGAgXeU2cZR0idqIj4/H5MmT8dNPP+Htt9/mHQ4XtJWfOBYtWoSbN28iMjKSWwxxcXHIzs7W2lrhRDmUdIlaSEpKgru7O3bv3o0hQ4bwDocbWp8rjtdeew1bt27F7Nmz8fDhQy4xBAYG4ssvv0SLFjR/tSmje7qEu9u3b8Pe3h7BwcHw8PDgHQ43hYWF6NixI/Ly8qBby440pOGmTZuGVq1aITg4WNJ+z58/Dy8vL9y8eRMtW7aUtG+iXugjFxFPbq6wBjElRdjEu21bYYuzqVMr1yBmZWXh/fffx/Lly5t0wgWE4cfBgwdTwhXR6tWr0bt3b0yePFnSjSQCAwOxePFiSriErnSJCBISgBUrgKgo4fvS0uevPau24+KCv3188J6fH6ZPn4558+bxiVWNzJo1C506dcKCBQt4h6LVdu/ejTVr1iAhIUGSJHjx4kVMmjQJt2/fpqRLKOkSFdu8GZg/XyhrV8t/LSaToRRAjLMzPlS3wvSc9OzZE/v27UP//v15h6LVGGMYOXIkRowYAX8JClM4OzvD3d0d3t7eovdF1B8lXaI6zxJuPbYuY/r6kFFBd2RlZWHAgAH4888/0awZzW8UW3p6Ot59910kJiaiS5cuovXz888/4+OPP8bvv/8OHR0d0fohmoN+u4lqJCRgo58fBhYX4zUAXlVeugxgBIDXAZgC+AhAztPXZMXFQqJOTJQ0XHUTGxsLR0dHSrgS6dq1K+bNm4eZM2dCzOuOwMBALFy4kBIuqUS/4UQ1VqzAG3I5AgB8+tJLBQC8AWQA+ANAGwBTqx5QUiLcA27CaKmQ9ObPn4+srCxERESI0n5iYiJSUlLw6acv/0aQpoyGl0nj5eYCnTtXTpgKAHAPQFgNh/8CwA5AUdUndXWBzMwmubOKQqFA+/btkZCQgM6dO/MOp0m5dOkSxo4di19//RVGRkYqbfvDDz/E+++/j1mzZqm0XaLZ6EqXNF5YWL0OPwfA6uUnZbJ6t6MtUlNTYWhoSAmXg8GDB8PNzQ0LFy5UabvXrl3D1atX8dlnn6m0XaL5KOmSxktJeXFZUG2HAggE8Mq24iUlwp6iTRANLfO1YsUKHD16FBcuXFBZm4GBgViwYAGtuSavoKRLGq+wUKnD0gC4ANgAYFh1BxQUqC4mDUJb+fFlaGiI9evXw8fHB2VlZY1uLzk5GZcvX6YlQqRalHRJ4ymxwfwfAJwALAHwSU0HqfiemiYoLS1FfHw8HBwceIfSpHl4eMDCwgKrV78yBlNvQUFB8Pf3h56engoiI9qGki5pPGtrQFcX5QBKAVQ8fZQCKAdwH8BwAJ8D8K2hiWIA38XEYOHChYiLi1PJFYcmuHjxIqysrGBoaMg7lCZNJpNh06ZNWLduHX7//fcGt3P9+nWcP38ePj4+KoyOaBNKuqTxvLwAAEEA9AB8C2D306+DAGwHcAfAMgCtqzyq0tPVxdDt26Gjo4MFCxbA1NQUo0ePxpYtW5CRkSHJX4MH2spPfXTu3BmLFy+Gr69vg9fuBgUFYd68eWjVqpWKoyPagpYMEdVwdwciI2st/VgjmQwYMwY4eLDyqby8PJw8eRLR0dE4ceIEjI2N4ezsDGdnZ9ja2mrN0N2gQYOwdu1a2Nra8g6FACgvL4eNjQ3mzp0LT0/Per33xo0bcHBwQHp6Olq3fvljJSECSrpENRISAHv7epWArKSvD5w9CwwcWO3LCoUC165dQ3R0NKKiopCcnIyhQ4fC2dkZLi4u6NatG2QyWePi5+Cvv/6ChYUF8vPzqWKRGklMTMS//vUvXL9+HSYmJkq/b9KkSejbt6/Klx8R7UJJl6hOA2ovQ18fqGft5YKCApw6dQrR0dGIjo6Gjo5O5VXw8OHDNeYq48CBA9i5cyeOHTvGOxTykrlz56KwsBA7d+5U6vhbt25h2LBhSE9PR5s2bUSOjmgySrpEtZTcZQgymbDNXyM3O2CM4ddff0VUVBSio6Nx5coV2NjYVCbhPn36qO1VsI+PD3r27Il///vfvEMhLykqKoKVlRXCw8OVmlnu6emJHj164Msvv5QgOqLJKOkS1UtMFGopHz8uJNeSkuevPdtPd9QoYNGiGoeUG+rRo0c4c+ZM5VD0kydPKoehnZyc1GqWcNeuXXH48GH06dOHdyikGkeOHMH8+fORkpJSa5GLtLQ0DB48GGlpaWirxPI50rRR0iXiycsTSjumpgqFL4yMgL59hdnOEtRYZowhLS2t8ir4woULsLa2rrwKHjBgALddfe7cuYMhQ4YgOztbba/ECeDu7o4+ffogMDBQqDEeFiZUYCssFNanW1tjzrVrMO7ZE0uXLuUdLtEAlHRJk1FSUoLz589X3gvOz8/HyJEj4ezsjPfffx+mYn4QeOmEfTs3F1flckw4caJJbvKgKe7fvw8vKyscHDgQBvHxwpNVSp4qdHVRVlqKZq6u0Fm6FBg0iFOkRFNQ0iVNVkZGBk6cOIHo6GicPn0a3bt3rxyKtrGxQYsWLRrfSUKCMNQeFSV8X+WEXd6yJVo0bw64uAhD7XTCVj+bN0Pu54dmcjma13aciuYoEO1HSZcQAGVlZbh06VLlveDMzEw4OTnB2dkZI0eOhLm5ef0blXhSGVGxambjZwCYCeASgNcAeABYD6Dy41kDZuOTpoWSLiHVyM7OrizOERMTA3Nzc7i4uMDZ2RlDhgype12tRMuniEhqWHc+CoAZgC0A/gEwAsB0AHOqHlTHunPStFHSJaQOFRUVuHLlSuW94Js3b8Le3r5yQpaFhcWLb3h6wt5YXIwwAKkAJgAIe/pyGYCJABIhbARxBoD9s/fSCVs91FBhrReAtRCSLwD4A3gIYGvVg6qpsEbIM5R0Camn/Px8xMTEVCZhIyOjygRsZ2cHvUmTgMhI/MQYmgE4AaAELybd7wEMBPARgH2oknTphM1fbi7QuXO1e0RvAXDx6Z8FAEYCWA5gzMsH6uoCmZk0SY68gpIuIY2gUCiQlJRUmYDv/fILbpaUQEehqDwmAMA9PE+6VXWEsDmEfdUn6YTN16pVwNKl1Sbd3wBMBpAMYSetKQB2Anhl0ZeeHrBsGeDvL3KwRNPQLkOENEKzZs0wYMAALF68GOfOncOvCxagWWNnPctkwvIiwkdKSrUJVwHhytYdwGMA+RCudr+oro2SEmF9OiEvoaRLiArp3b6NFo3dC5hO2HwVFlb79N8AsgDMgjBz2RjAVADHa2qnoECE4Iimo6RLiCrVcMKuNzph81NDKUcTABYANgMohzB7ORzA2zW1Y2QkQnBE01HSJUSVVFV7l07Y/FhbC/fVq/ETgGgApgAsIazPXVfdgXp6QslTQl5CSZcQVapywi4HUAphwk3F06/Lnx725On3gDCbuRRA5YxGOmHz5eVV40v9AMRBuJebD2A/hHW7r2Cs1nZI00VJlxBVqnKiDQKgB+BbCDOU9Z4+BwA9nn5/H8LkHD0Ia3YB0AmbNzMzoTRnQzeikMmEXbRo9jmpBi0ZIkTVaiisoBRap6seaqhIpRQqcEJqQVe6hKjaokXCEHFD6OkJ7yd8DRoklOTU16/f+56V8qSES2pASZcQVaMTtnaYMeP5z7GuoWaZjGpnE6XQ8DIhYqFdhrRDYqKwPePx48LPqqTk+Wt6esLPdtQoYYSCPjCROlDSJURMdMLWHnl5QqWw1FRhHbWRkTDL3MuLJk0RpVHSJUQKdMImhICSLiGEECIZmkhFCCGESISSLiGEECIRSrqEEEKIRCjpEkIIIRKhpEsIIYRIhJIuIYQQIhFKuoQQQohEKOkSQgghEqGkSwghhEiEki4hhBAiEUq6hBBCiEQo6RJCCCESoaRLCCGESISSLiGEECIRSrqEEEKIRCjpEkIIIRKhpEsIIYRIhJIuIYQQIhFKuoQQQohEKOkSQgghEqGkSwghhEiEki4hhBAiEUq6hBBCiEQo6RJCCCESoaRLCCGESISSLiGEECIRSrqEEEKIRCjpEkIIIRKhpEsIIYRIhJIuIYQQIpH/B/Ym8s9yGW/8AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# review\n", "print(seed15)\n", "plot_given_edges(seed15)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Verify some details\n", "assert len(seed15)*len(seed15) == num_known_zeros(seed15) + num_known_ones(seed15) + num_unknowns(seed15)\n", "assert not(has_unknown_values(seed15))\n", "assert lambda_compatible(seed15)\n", "assert mu_compatible(seed15)\n", "assert meets_adjacency_requirements(seed15, debug=True)\n", "assert graph_is_valid(seed15)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding vertex 15\n", "(NB, as we started numbering at 0, this is our 16th vertex)\n", "\n", "wlog (see intro, or consider how the plot below would be equivalent for any alternative choice for second neighbour amongst 3...14), we may assume this is a neighbour of vertices 1 and 3." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:22.976026: Starting with 1 seeds\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "Currently 0 graphs, 1 candidates\n", "2020-07-07 14:26:22.981013: 1 valid graphs from templates\n", "\t1 reps from 1 candidates\n", "2020-07-07 14:26:22.981013: Reduced to 1 representatives\n", "Wall time: 4.99 ms\n" ] } ], "source": [ "%time rep16 = find_valid_supergraphs([seed15], forced_edges=[(1,15), (15,3)])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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OTnRunVrHB0d88VCFMZy5coVvv76a37++Wfc3NwYM2YMVatmWo03T1iwYAHBwcH4+qZbwDBXrl69SsOGDbl8+TJ22R3gY2S//vorn3zyCYMGDeKLL76gSJEimsZjCvfu3WPbtm34+/uzbds2atasiaurK927d6dp06ZS1CSPk4RsLj17wsaNmVboSpONDfTooW/2ScOVK1cICgpKSdCHDx+matWqBkm6YcOGFCwoQwYycv36debPn89PP/3EO++8w7hx46hRo4bWYeXK7du3qV27NhcuXKCUkbpOUpszZw7nzp3jxx9/NPq5s+r27dsMGzaMsLAwvL29adWqlWaxmMKZM2fw9/dn8+bNHDp0iPbt2+Pq6kq3bt2oVKmS1uEJI5KEbC4hIdChg75sZnbZ2cGePVnug0lKSuLYsWMpCfrgwYNcvnyZ5s2b07p165QkLf+Z03b79m2+/fZbli5dSvfu3ZkwYUKeHpnbq1cvunTpwkcffWTU8yqlUvrlnZ2djXrurNq8eTMff/wxvXv3ZsaMGdja2moShzElJSVx4MAB/P398ff35/79+3Tr1g1XV1dee+01zVsihOlIQjan1LWss8pIUwXu379PcHBwSpIOCgrC1tbWIEE3b95c/rOncu/ePRYsWMDChQvp3LkzEydO5KWXXtI6rGzz9/dnzpw5BAYGGvW8gYGBfPjhh5w4ccLsTaX379/n008/JTAwkJUrV/LKK6+Y9frGFhUVxR9//IG/vz8BAQFUrVoVV1dXXF1dadGiRb6cM50fSUI2tydJOTY24+ZrGxv9lAETzdtTSnH27FmDBH3s2DFeeumllATt5OREnTp18v2HQVRUFAsXLuT777+nffv2TJo0icaNG2sdVpYlJiZStWpV9u7di4ODg9HOO2jQIOrVq8fnn39utHNmxR9//MFHH32Eq6src+fOpXjx4ma9vrFERkamNEUHBQXRtm3blKboatWqaR2e0IAkZC38849FztuLi4sjNDTUYMBYVFQUrVq1SknQTk5OVjt3NzPR0dEsXbqU+fPn4+TkxOTJk2nRooXWYWWJp6cnhQsXZtasWUY5X3R0NFWrVuXkyZNUqFDBKOfMzMOHD/H09GTbtm389NNPvPbaa2a5rrEkJycTHByc0hR948YNunbtSvfu3Xn99dfz7I2FMB5JyFq6dUtfDjM8XF/0o0wZ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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# confirm this is what we expected:\n", "plot_given_edges(rep16[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding vertices 16...26\n", "_Note that we no longer make any direct assumptions about the second neighbour j in 3...14; we determine representatives of the possibilities dictated by the lambda, mu conditions._ " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vertex 16\n", "\n", "We know one of the blades centred at vertex 1; namely 1-0-2-1.\n", "\n", "We also have part of another, containing vertex 15.\n", "\n", "wlog, let vertex 16 be the other vertex of that blade (_so we force 1-16, and 15-16_)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:23.072767: Starting with 1 seeds\n", "2020-07-07 14:26:23.105714: 11 valid graphs from templates\n", "2020-07-07 14:26:23.106677: Reduced to 2 representatives\n", "Wall time: 33.9 ms\n" ] } ], "source": [ "%time rep17 = find_valid_supergraphs(rep16, forced_edges=[(1,16),(15,16)], verbose=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vertex 17\n", "\n", "Vertex 17 necessarily starts a new blade, so only forcing 1-17" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:23.112660: Starting with 2 seeds\n", "2020-07-07 14:26:23.199428: 20 valid graphs from templates\n", "2020-07-07 14:26:23.202420: Reduced to 3 representatives\n", "Wall time: 89.8 ms\n" ] } ], "source": [ "%time rep18 = find_valid_supergraphs(rep17, forced_edges=[(1,17)], verbose=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vertex 18\n", "\n", "However, we can then force vertex 18 to be the other vertex of that blade" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:23.208404: Starting with 3 seeds\n", "2020-07-07 14:26:23.336099: 27 valid graphs from templates\n", "2020-07-07 14:26:23.372964: Reduced to 5 representatives\n", "Wall time: 166 ms\n" ] } ], "source": [ "%time rep19 = find_valid_supergraphs(rep18, forced_edges=[(1,18),(17,18)], verbose=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vertices 19...26\n", "\n", "Continue in this fashion until we have all nhbrs of vertex 1, with forced fan pattern 0-2, 15-16, 17-18, 19-20, 21-22, 23-24, 25-26" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:23.379946: Starting with 5 seeds\n", "2020-07-07 14:26:23.639252: 40 valid graphs from templates\n", "2020-07-07 14:26:23.645236: Reduced to 8 representatives\n", "Wall time: 265 ms\n" ] } ], "source": [ "%time rep20 = find_valid_supergraphs(rep19, forced_edges=[(1,19)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:23.651219: Starting with 8 seeds\n", "2020-07-07 14:26:24.049190: 56 valid graphs from templates\n", "2020-07-07 14:26:24.057134: Reduced to 10 representatives\n", "Wall time: 407 ms\n" ] } ], "source": [ "%time rep21 = find_valid_supergraphs(rep20, forced_edges=[(1,20), (19,20)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:24.063118: Starting with 10 seeds\n", "2020-07-07 14:26:24.692483: 60 valid graphs from templates\n", "2020-07-07 14:26:24.700413: Reduced to 17 representatives\n", "Wall time: 637 ms\n" ] } ], "source": [ "%time rep22 = find_valid_supergraphs(rep21, forced_edges=[(1,21)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:24.706397: Starting with 17 seeds\n", "2020-07-07 14:26:25.620988: 85 valid graphs from templates\n", "2020-07-07 14:26:25.632918: Reduced to 17 representatives\n", "Wall time: 928 ms\n" ] } ], "source": [ "%time rep23 = find_valid_supergraphs(rep22, forced_edges=[(1,22), (21,22)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:25.638902: Starting with 17 seeds\n", "2020-07-07 14:26:26.597373: 68 valid graphs from templates\n", "2020-07-07 14:26:26.607312: Reduced to 26 representatives\n", "Wall time: 968 ms\n" ] } ], "source": [ "%time rep24 = find_valid_supergraphs(rep23, forced_edges=[(1,23)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:26.613295: Starting with 26 seeds\n", "2020-07-07 14:26:27.894908: 78 valid graphs from templates\n", "2020-07-07 14:26:27.906835: Reduced to 19 representatives\n", "Wall time: 1.29 s\n" ] } ], "source": [ "%time rep25 = find_valid_supergraphs(rep24, forced_edges=[(1,24), (23,24)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:27.911821: Starting with 19 seeds\n", "2020-07-07 14:26:28.801478: 38 valid graphs from templates\n", "2020-07-07 14:26:28.808423: Reduced to 19 representatives\n", "Wall time: 897 ms\n" ] } ], "source": [ "%time rep26 = find_valid_supergraphs(rep25, forced_edges=[(1,25)], verbose=False)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2020-07-07 14:26:28.813409: Starting with 19 seeds\n", "2020-07-07 14:26:29.510590: 19 valid graphs from templates\n", "2020-07-07 14:26:29.514534: Reduced to 11 representatives\n", "Wall time: 701 ms\n" ] } ], "source": [ "%time rep27 = find_valid_supergraphs(rep26, forced_edges=[(1,26),(25,26)], verbose=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Review\n", "\n", "Up to equivalence, we have 11 possibilities. We first review an arbitrary example, then consider how the others differ." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_given_edges(rep27[0])" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def describe_differences(rep1, rep2):\n", " order = min(len(rep1),len(rep2))\n", " for i in range(order):\n", " for j in range(i, order):\n", " if rep1[i,j] > rep2[i,j]:\n", " print('First graph has edge {}-{} absent from second'.format(i,j))\n", " if rep1[i,j] < rep2[i,j]:\n", " print('First graph lacks edge {}-{} present in second'.format(i,j))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Comparing rep 0 to rep 1\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 2\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 3\n", "First graph has edge 8-20 absent from second\n", "First graph lacks edge 8-21 present in second\n", "First graph lacks edge 9-20 present in second\n", "First graph has edge 9-21 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 4\n", "First graph has edge 8-20 absent from second\n", "First graph lacks edge 8-21 present in second\n", "First graph lacks edge 9-20 present in second\n", "First graph has edge 9-21 absent from second\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 5\n", "First graph has edge 6-18 absent from second\n", "First graph lacks edge 6-19 present in second\n", "First graph lacks edge 7-18 present in second\n", "First graph has edge 7-19 absent from second\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 6\n", "First graph has edge 6-18 absent from second\n", "First graph lacks edge 6-19 present in second\n", "First graph lacks edge 7-18 present in second\n", "First graph has edge 7-19 absent from second\n", "First graph has edge 8-20 absent from second\n", "First graph lacks edge 8-21 present in second\n", "First graph lacks edge 9-20 present in second\n", "First graph has edge 9-21 absent from second\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 7\n", "First graph has edge 4-16 absent from second\n", "First graph lacks edge 4-17 present in second\n", "First graph lacks edge 5-16 present in second\n", "First graph has edge 5-17 absent from second\n", "First graph has edge 8-20 absent from second\n", "First graph lacks edge 8-21 present in second\n", "First graph lacks edge 9-20 present in second\n", "First graph has edge 9-21 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 8\n", "First graph has edge 4-16 absent from second\n", "First graph lacks edge 4-17 present in second\n", "First graph lacks edge 5-16 present in second\n", "First graph has edge 5-17 absent from second\n", "First graph has edge 8-20 absent from second\n", "First graph lacks edge 8-21 present in second\n", "First graph lacks edge 9-20 present in second\n", "First graph has edge 9-21 absent from second\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 9\n", "First graph has edge 4-16 absent from second\n", "First graph lacks edge 4-17 present in second\n", "First graph lacks edge 5-16 present in second\n", "First graph has edge 5-17 absent from second\n", "First graph has edge 6-18 absent from second\n", "First graph lacks edge 6-19 present in second\n", "First graph lacks edge 7-18 present in second\n", "First graph has edge 7-19 absent from second\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n", "Comparing rep 0 to rep 10\n", "First graph has edge 4-16 absent from second\n", "First graph lacks edge 4-17 present in second\n", "First graph lacks edge 5-16 present in second\n", "First graph has edge 5-17 absent from second\n", "First graph has edge 6-18 absent from second\n", "First graph lacks edge 6-19 present in second\n", "First graph lacks edge 7-18 present in second\n", "First graph has edge 7-19 absent from second\n", "First graph has edge 8-20 absent from second\n", "First graph lacks edge 8-21 present in second\n", "First graph lacks edge 9-20 present in second\n", "First graph has edge 9-21 absent from second\n", "First graph has edge 10-22 absent from second\n", "First graph lacks edge 10-23 present in second\n", "First graph lacks edge 11-22 present in second\n", "First graph has edge 11-23 absent from second\n", "First graph has edge 12-24 absent from second\n", "First graph lacks edge 12-25 present in second\n", "First graph lacks edge 13-24 present in second\n", "First graph has edge 13-25 absent from second\n", "\n", "------\n", "\n" ] } ], "source": [ "for i in range(1, 11):\n", " print('Comparing rep 0 to rep {}'.format(i))\n", " describe_differences(rep27[0],rep27[i])\n", " print('\\n------\\n')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Which edges are consistent across all reps?" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Edge 0-1 appears in all representatives\n", "Edge 0-2 appears in all representatives\n", "Edge 0-3 appears in all representatives\n", "Edge 0-4 appears in all representatives\n", "Edge 0-5 appears in all representatives\n", "Edge 0-6 appears in all representatives\n", "Edge 0-7 appears in all representatives\n", "Edge 0-8 appears in all representatives\n", "Edge 0-9 appears in all representatives\n", "Edge 0-10 appears in all representatives\n", "Edge 0-11 appears in all representatives\n", "Edge 0-12 appears in all representatives\n", "Edge 0-13 appears in all representatives\n", "Edge 0-14 appears in all representatives\n", "Edge 1-2 appears in all representatives\n", "Edge 1-15 appears in all representatives\n", "Edge 1-16 appears in all representatives\n", "Edge 1-17 appears in all representatives\n", "Edge 1-18 appears in all representatives\n", "Edge 1-19 appears in all representatives\n", "Edge 1-20 appears in all representatives\n", "Edge 1-21 appears in all representatives\n", "Edge 1-22 appears in all representatives\n", "Edge 1-23 appears in all representatives\n", "Edge 1-24 appears in all representatives\n", "Edge 1-25 appears in all representatives\n", "Edge 1-26 appears in all representatives\n", "Edge 3-4 appears in all representatives\n", "Edge 3-15 appears in all representatives\n", "Edge 5-6 appears in all representatives\n", "Edge 7-8 appears in all representatives\n", "Edge 9-10 appears in all representatives\n", "Edge 11-12 appears in all representatives\n", "Edge 13-14 appears in all representatives\n", "Edge 14-26 appears in all representatives\n", "Edge 15-16 appears in all representatives\n", "Edge 17-18 appears in all representatives\n", "Edge 19-20 appears in all representatives\n", "Edge 21-22 appears in all representatives\n", "Edge 23-24 appears in all representatives\n", "Edge 25-26 appears in all representatives\n" ] } ], "source": [ "for i in range(27):\n", " for j in range(i,27):\n", " if min([r[i,j] for r in rep27]) == 1:\n", " print('Edge {}-{} appears in all representatives'.format(i,j))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is just our assumed numbering of:\n", "* The neighbours of vertex 0\n", "* The neighbours of vertex 1\n", "* The fan structure centred at 0 (1-2, 3-4 etc.)\n", "* Vertex 3 chosen as the second mutual neighbour of vertices 0 and 15 amongst 3...14\n", "* The fan structure centred at 1 (15-16, 17-18 etc.)\n", "\n", "So these assumptions do not inevitably force any other edges; various branches arise as each succesive vertex 16..26 is considered." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# Export base example for plotting" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "G = graph_from_mat(rep27[0])\n", "write_dot(G, \"rep27_0.dot\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that rep 0 has a particularly pleasing pattern - for each i = 15...26, the neighbour j from 3...14 satisfies i = j + 12 \n", "\n", "(i.e. consistent throughout with our choice of vertex 3 as neighbour of vertex 15.)\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "EdgeView([(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9), (0, 10), (0, 11), (0, 12), (0, 13), (0, 14), (1, 2), (1, 15), (1, 16), (1, 17), (1, 18), (1, 19), (1, 20), (1, 21), (1, 22), (1, 23), (1, 24), (1, 25), (1, 26), (3, 4), (3, 15), (4, 16), (5, 6), (5, 17), (6, 18), (7, 8), (7, 19), (8, 20), (9, 10), (9, 21), (10, 22), (11, 12), (11, 23), (12, 24), (13, 14), (13, 25), (14, 26), (15, 16), (17, 18), (19, 20), (21, 22), (23, 24), (25, 26)])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.edges" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }