From 9c2f38c543d2d3e7fb0a595876e9e27f505c2523 Mon Sep 17 00:00:00 2001
From: Inako <baptiste.signolle@free.fr>
Date: Wed, 31 Mar 2021 08:19:04 +0200
Subject: [PATCH] stuff

---
 .../heldAndKarp-checkpoint.ipynb              | 1569 +++++++----------
 Column_Generation_Flowchart.png               |  Bin 0 -> 16576 bytes
 example_graph.png                             |  Bin 0 -> 26342 bytes
 example_graph_solution.png                    |  Bin 0 -> 30971 bytes
 exercise_graph.png                            |  Bin 0 -> 51737 bytes
 heldAndKarp.ipynb                             | 1569 +++++++----------
 heldAndKarp_fluff.ipynb                       |    6 +-
 wheel_like_1-trees.png                        |  Bin 0 -> 56918 bytes
 8 files changed, 1247 insertions(+), 1897 deletions(-)
 create mode 100644 Column_Generation_Flowchart.png
 create mode 100644 example_graph.png
 create mode 100644 example_graph_solution.png
 create mode 100644 exercise_graph.png
 create mode 100644 wheel_like_1-trees.png

diff --git a/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb b/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb
index a72966c..bb23119 100644
--- a/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb
+++ b/.ipynb_checkpoints/heldAndKarp-checkpoint.ipynb
@@ -13,16 +13,47 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "The Held and Karp algorithm as described in \"The traveling-salesman problem and minimum spanning trees\" (1969) tackles the TSP problem using the concept of 1-tree, which consist for $n$ vertices numbered from $1$ to $n$ of a spanning tree for the vertices $2$ to $n$, to which is connected the vertex $1$ such that it have a degree equals to $2$.\n",
+    "**A REDIGER : Note sur l'utilisation d'un notebook, nbviewer, conversion en .jl, jupyter et jupyter lab**\n",
     "\n",
-    "In this paper several linear programms modeling the TSP are derived, and the authors show how they are related to one another. Then resolution methods are presented\n",
+    "**Requirements : Version julia et des modules, un project.toml etc PKG blabla**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The Held and Karp algorithm as described in \"The traveling-salesman problem and minimum spanning trees\" (1969) tackles the STSP (Symetric Traveling Salesman Problem) using the concept of 1-tree, which consist for $n$ vertices numbered from $1$ to $n$ of a spanning tree for the vertices $2$ to $n$, to which is connected the vertex $1$ such that it have a degree equals to $2$.\n",
+    "\n",
+    "In this paper several LP of the STSP are derived, and the authors show how they are related to one another. Then resolution methods are presented.\n",
+    "\n",
+    "The core idea behind this work is that instead of relaxing the connectivity constraint as seen in the polyhedral approach, Held and Karp chose to relax the degree constraints using the concept of 1-tree."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Here we present our attemps to solve the STSP with column generation, and more generally the techniques presented in Held and Karp's paper, as shown in John E. Mitchell's slides.\n",
     "\n",
-    "Here we present our attempts at implementing such methods"
+    "We ran into some troubles while working on this project, mostly because we hardly saw a link between column generation, JuMP and the algorithm described in J.E. Mitchell's slides. In these the only things which seems to be involved are a greedy algorithm (Kruskal's for example) to solve a spanning tree problem, basic minimum finding techniques to connect vertex 1 and a loop to start again until a cycle is found (updating the weights between each iteration).\n",
+    "\n",
+    "We will go through the following\n",
+    "* STSP using column generation\n",
+    "* Held and Karp algorithm - attempt 1\n",
+    "* Held and Karp algorithm - attempt 2\n",
+    "* The Held and Karp algorithm - dynamical programming"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Modules and useful functions"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 103,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [
     {
@@ -34,137 +65,329 @@
     }
    ],
    "source": [
-    "using LinearAlgebra\n",
-    "using JuMP\n",
-    "using GLPK\n",
-    "using LightGraphs\n",
-    "using GraphPlot\n",
+    "using LinearAlgebra # Basic algebra structures & functions\n",
+    "using JuMP          # Modeling language\n",
+    "using GLPK, Cbc     # LP and MIP solvers\n",
+    "using LightGraphs   # Efficient graph structures & functions\n",
+    "using GraphPlot     # Graph visualization \n",
     "\n",
     "println(\"Modules loaded\")"
    ]
   },
   {
-   "cell_type": "markdown",
+   "cell_type": "code",
+   "execution_count": null,
    "metadata": {},
+   "outputs": [],
    "source": [
-    "## Column-generation technique\n",
-    "\n",
-    "The master problem is the following\n",
+    "function checkTermination(m, verbose = true)\n",
+    "    if !( \n",
+    "                ( termination_status(m) == MOI.OPTIMAL ) || \n",
+    "                ( termination_status(m) == MOI.TIME_LIMIT && has_values(m) ) \n",
+    "            )\n",
+    "        \n",
+    "        if verbose\n",
+    "            println(termination_status(m))\n",
+    "            println(termination_status(m))\n",
+    "            println(has_values(m))\n",
+    "            println(m)\n",
+    "        end\n",
+    "        \n",
+    "        error(\"Couldn't connect vertex 1 (PLNE failed).\")\n",
+    "    end\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function display(S, W = Nothing)\n",
+    "    gplot(Graph(S), nodelabel=1:size(S,1))\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "## Data to test our results\n",
     "\n",
-    "$$ \\min \\sum_k c_k y_k \\ ; \\quad y_k \\geq 0 \\ , \\quad \\sum_k y_k = 1 \\ , \\quad \\sum -v_{ik} y_k = 0 \\quad \\forall i \\in {2, \\ldots, n-1}$$\n",
+    "The data we will be using is extracted from [John E. Mitchell's slides](http://eaton.math.rpi.edu/faculty/Mitchell/courses/matp6620/notesMATP6620/lecture22/22A_heldkarpbeamer.pdf).\n",
     "\n",
-    "The subproblem is the following\n",
+    "However on such small graphs column generation techniques will not show their full potential, as these methods aim to tackle large scale problems.\n",
     "\n",
-    "$$ K(\\pi) = \\left\\{k \\ |\\ w(\\pi) = c_k + \\sum_{i=1}^n \\pi_n v_{ik} \\right\\} $$"
+    "![Example weights](example_graph.png)\n",
+    "![Example solution](example_graph_solution.png)\n",
+    "![Exercise weights](exercise_graph.png)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 116,
+   "execution_count": 11,
    "metadata": {
     "tags": []
    },
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "columnGeneration (generic function with 1 method)"
-      ]
-     },
-     "execution_count": 116,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Weight matrices initialized\n"
+     ]
     }
    ],
    "source": [
-    "function columnGeneration(W)\n",
-    "    \n",
-    "    n = size(W, 1)\n",
-    "    T_List = wheel_like(n)\n",
-    "    m = length(T_List)\n",
-    "    S = 0\n",
-    "    g = complete_graph(n-1)\n",
-    "    \n",
-    "    cr = -1\n",
-    "    while cr < 0\n",
-    "        \n",
-    "        m = length(T_List)\n",
-    "        \n",
-    "        C = [sum(W .* T) for T in T_List]\n",
-    "        D = [sum(T[i,:]) for i in 2:n-1, T in T_List]\n",
-    "        V = D .- 2\n",
-    "        \n",
-    "        ### Master problem\n",
-    "        master = Model(GLPK.Optimizer)\n",
-    "        set_silent(master)\n",
-    "        \n",
-    "        @variable(master, 1 >= Y[1:m] >= 0)\n",
-    "        \n",
-    "        @objective(master, Min, dot(C, Y))\n",
-    "        \n",
-    "        @constraint(master, convexCombination, sum(Y) == 1)\n",
-    "        \n",
-    "        @constraint(master, averageDegreeTwo[k in 1:n-2], dot(V[k,:], Y) == 0)\n",
-    "        \n",
-    "        optimize!(master)\n",
-    "        \n",
-    "        println(termination_status(master))\n",
-    "        println(\"obj \", objective_value(master))\n",
-    "        println(\"Y \", value.(Y))\n",
-    "        #println(\"C \", C)\n",
-    "        #println(\"D \", D)\n",
-    "        #println(\"V \", V)\n",
-    "        S = value.(Y)\n",
-    "        \n",
-    "        θ = shadow_price(convexCombination)\n",
-    "        π = shadow_price.(averageDegreeTwo)\n",
-    "        \n",
-    "        println(\"θ \", θ)\n",
-    "        println(\"π \", π)\n",
-    "        \n",
-    "        W_updated = convert.(Float64, W)\n",
+    "example = [\n",
+    "    0   8  4 15 15  3 ;\n",
+    "    8   0  5 15  2 15 ;\n",
+    "    4   5  0  6 15 15 ;\n",
+    "    15 15  6  0  5  3 ;\n",
+    "    15  2 15  5  0  4 ;\n",
+    "    3  15 15  3  4  0\n",
+    "]\n",
     "\n",
-    "        for i in 2:n-1, j in 2:n-1\n",
-    "            W_updated[i,j] -= π[i-1] + π[j-1]\n",
-    "        end\n",
+    "exercise = [\n",
+    "     0 15  0  0 15 15 15 ;\n",
+    "    15  0  1 15  0 15  1 ;\n",
+    "     0  1  0 15 15 15  1 ;\n",
+    "     0 15 15  0  1  1 15 ;\n",
+    "    15  0 15  1  0  1 15 ;\n",
+    "    15 15 15  1  1  0  0 ;\n",
+    "    15  1  1 15 15  0  0 ;\n",
+    "]\n",
     "\n",
-    "        st = Matrix(adjacency_matrix(Graph(kruskal_mst(g, W_updated[2:n,2:n]))))\n",
-    "        T = zeros(n,n)\n",
+    "println(\"Weight matrices initialized\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## STSP using column generation\n",
     "\n",
-    "        w_tmp = W_updated[1,2:n]\n",
-    "        min_idx_1 = argmin(w_tmp[1:n-1])\n",
-    "        min_idx_2 = argmin(w_tmp[1:n-1 .!= min_idx_1])\n",
-    "        T[1,min_idx_1+1] = 1 ; T[1,min_idx_2+1] = 1 ; T[:,1] .= T[1,:]\n",
-    "        T[2:n,2:n] .= st[1:n-1,1:n-1]\n",
-    "        \n",
-    "        cr = sum(W_updated .* T) - θ - 2*sum(π)\n",
-    "        \n",
-    "        println(\"cr \", cr)\n",
-    "        \n",
-    "        push!(T_List, T)\n",
-    "        \n",
-    "    end\n",
+    "The STSP can be written as\n",
+    "\n",
+    "$$\\begin{array}{r l}\n",
+    "\\min & \\sum_{e\\in E} c_e x_e \\\\\n",
+    "\\text{s.t.}\n",
+    "& \\sum_{e\\in \\delta(i)} x_e = 2 \\quad (i\\in N) \\\\\n",
+    "& x \\in X^1\n",
+    "\\end{array}$$\n",
+    "\n",
+    "$N$ is the set of nodes  \n",
+    "$\\delta(i)$ the set of edges incident to $i$  \n",
+    "$x_e$ indicator variable for edge $e$  \n",
+    "$X^1$ set of indicator vectors of 1-trees\n",
+    "\n",
+    "A 1-tree is a subset $E' \\subset E$ of edges of which exactly two are incident to node 1 : $| E' \\cap \\delta(1) | = 2$ and $E'\\backslash \\delta(1)$ is a spanning tree on the remaining nodes $2, \\ldots, n$ (hence of cardinality $n-2$).\n",
+    "\n",
+    "Every Hamiltonian tour is a 1-tree that satisfies the degree constraint $|E' \\cap \\delta(i)| = 2$ for all nodes $i \\in N$. Conversely, every 1-tree that satisfies these degree constraints is a Hamiltonian tour."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Given a conceptual enumeration of the set of 1-tree : $\\{ E^t : t = 1, \\ldots, T_1 \\}$\n",
+    "\n",
+    "$$ x_e = \\sum_{t: e\\in E^t} \\lambda_t $$\n",
+    "\n",
+    "Subject to $\\lambda_t \\in \\{0, 1\\}$ for all $t$ and $\\sum_{t=1}^{T_1} \\lambda_t = 1$.  \n",
+    "This defines the indicator vector of the single 1-tree for which $\\lambda_t = 1$\n",
+    "\n",
+    "The degree constraints become\n",
+    "\n",
+    "$$ \\sum_{e \\in \\delta(i)} x_e = \\sum_{e\\in \\delta(i)} \\sum_{t: e \\in E^t} \\lambda_t = \\sum_t d_i^t \\lambda_t = 2 $$\n",
+    "\n",
+    "Where $d_i^t$ is the degree of node $i$ in the 1-tree $t$.\n",
+    "\n",
+    "The IP Master Problem being \n",
+    "\n",
+    "$$ \\text{(IPM)} \\quad \n",
+    "\\begin{array}{r l}\n",
+    "\\min & \\sum_{t = 1}^{T_1} \\left( \\sum_{e\\in E} c_e x_e^t \\right) \\lambda_t \\\\\n",
+    "\\text{s.t.}\n",
+    "& \\sum_{t = 1}^{T_1} d_i^t \\lambda_t = 2 \\quad (i \\in N) \\\\\n",
+    "& \\sum_{t = 1}^{T_1} \\lambda_t = 1 \\\\\n",
+    "& \\lambda_t \\in \\{0, 1\\}, \\quad (t = 1, \\ldots , T_1)\n",
+    "\\end{array}$$"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function IPM(C, D)\n",
+    "    ipm = Model(Cbc.Optimizer)\n",
+    "    set_silent(ipm)\n",
     "    \n",
-    "    Tf = zeros(n,n)\n",
-    "    for i in 1:m\n",
-    "        Tf .+= S[i] .* T_List[i]\n",
-    "    end\n",
+    "    @variable(ipm, λ[1:length(C)], Bin)\n",
     "    \n",
-    "    return Tf\n",
+    "    @objective(ipm, Min, dot(C, λ))\n",
+    "    \n",
+    "    @constraint(ipm, degree[i in 1:size(D,1)], dot(D[i,:], λ) == 2)\n",
+    "    @constraint(ipm, convexity, sum(λ) == 1)\n",
+    "    \n",
+    "    optimize!(ipm)\n",
+    "    checkTermination(ipm)\n",
+    "    \n",
+    "    return ipm\n",
     "end"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Thus the LP relaxation of (IPM) called LP Master Problem\n",
+    "\n",
+    "$$ \\text{(LPM)} \\quad \n",
+    "\\begin{array}{r l}\n",
+    "\\min & \\sum_{t = 1}^{T_1} \\left( \\sum_{e\\in E} c_e x_e^t \\right) \\lambda_t \\\\\n",
+    "\\text{s.t.}\n",
+    "& \\sum_{t = 1}^{T_1} d_i^t \\lambda_t = 2 \\quad (i \\in N) \\\\\n",
+    "& \\sum_{t = 1}^{T_1} \\lambda_t = 1 \\\\\n",
+    "& \\lambda_t \\geq 0, \\quad (t = 1, \\ldots , T_1)\n",
+    "\\end{array}$$"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": null,
    "metadata": {
-    "collapsed": true,
     "jupyter": {
-     "outputs_hidden": true,
      "source_hidden": true
     },
     "tags": []
    },
+   "outputs": [],
+   "source": [
+    "function LPM(C, D)\n",
+    "    lpm = Model(Cbc.Optimizer)\n",
+    "    set_silent(lpm)\n",
+    "    \n",
+    "    @variable(lpm, λ[1:length(C)] >= 0)\n",
+    "    \n",
+    "    @objective(lpm, Min, dot(C, λ))\n",
+    "    \n",
+    "    @constraint(lpm, degree[i in 1:size(D,1)], dot(D[i,:], λ) == 2)\n",
+    "    @constraint(lpm, convexity, sum(λ) == 1)\n",
+    "    \n",
+    "    optimize!(lpm)\n",
+    "    checkTermination(lpm)\n",
+    "    \n",
+    "    return lpm\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "In (LPM) there is a column $ ( c^T x^t , d_1^t , \\ldots , d_n^t , 1 )^T$ for every $x^t \\in X^1 \\ (t = 1, \\ldots, T_1)$  \n",
+    "The second equation is a convexity constraint\n",
+    "\n",
+    "Associating the second equation with dual variable $\\mu$ and the degree constraints with dual variables $\\{\\pi_i\\}_{i=1}^m$ the dual of (LPM) is\n",
+    "\n",
+    "$$\\text{(DM)} \\quad\n",
+    "\\begin{array}{r l}\n",
+    "\\max_{\\mu, \\pi} & \\sum_{i=1}^m 2 \\pi_i + \\mu \\\\\n",
+    "\\text{s.t.} & \\pi^T d^t + \\mu \\leq c^T x^t \\quad (t = 1 \\ldots T_1)\n",
+    "\\end{array}$$"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function DM(C, D)\n",
+    "    dm = Model(Cbc.Optimizer)\n",
+    "    set_silent(dm)\n",
+    "    \n",
+    "    @variable(dm, π[1:size(D,1)])\n",
+    "    @variable(dm, μ)\n",
+    "    \n",
+    "    @objective(dm, Max, 2*sum(π) + μ)\n",
+    "    \n",
+    "    @constraint(dm, oneTree[t in 1:size(D,2)], dot(π, D[:,t]) + μ <= C[t])\n",
+    "    \n",
+    "    optimize!(dm)\n",
+    "    checkTermination(dm)\n",
+    "    \n",
+    "    return dm\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The associated subsidiary problem is the following\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function SP()\n",
+    "    sp = Model(Cbc.Optimizer)\n",
+    "    set_silent(sp)\n",
+    "    \n",
+    "    @variable(sp, )\n",
+    "    \n",
+    "    @objective(sp, Min, (c - π^T A ) x - μ)\n",
+    "    \n",
+    "    @constraint(sp, degree1)\n",
+    "    @constraint(sp, nbEdges, sum(x[2:]) == )\n",
+    "    @constraint(sp, spanningTree)\n",
+    "    \n",
+    "    optimize!(sp)\n",
+    "    checkTermination(sp)\n",
+    "    \n",
+    "    return sp\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Our algorithm will follow this flowchart, classic for column generation algorithm\n",
+    "\n",
+    "![Flowchart](Column_Generation_Flowchart.png)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Our first \"dummy\" basis will consist in a collection of \"wheel\"-like 1-trees, as described in Held and Karp's paper\n",
+    "\n",
+    "![Wheel-like 1-trees](wheel_like_1-trees.png)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {
+    "tags": []
+   },
    "outputs": [
     {
      "data": {
@@ -172,30 +395,23 @@
        "wheel_like (generic function with 1 method)"
       ]
      },
-     "execution_count": 33,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "function wheel_like(n)\n",
+    "function wheel_like_1trees(n)\n",
     "    res = []\n",
     "    for k in 2:n\n",
     "        one_tree = zeros(n,n)\n",
     "        \n",
     "        for v in union(2:k-1, k+1:n)\n",
-    "            one_tree[k,v] = 1\n",
-    "            one_tree[v,k] = 1\n",
+    "            one_tree[k,v] = 1 ; one_tree[v,k] = 1\n",
     "        end\n",
     "        \n",
-    "        one_tree[1,k] = 1\n",
-    "        one_tree[k,1] = 1\n",
-    "        one_tree[1, n==k ? 2 : k+1] = 1\n",
-    "        one_tree[n==k ? 2 : k+1, 1] = 1\n",
-    "        \n",
-    "        for i in 1:n\n",
-    "            one_tree[i:n, i] .= one_tree[i, i:n]\n",
-    "        end\n",
+    "        one_tree[1,k] = 1 ; one_tree[1, n==k ? 2 : k+1] = 1\n",
+    "        one_tree[k,1] = 1 ; one_tree[n==k ? 2 : k+1, 1] = 1    \n",
     "        \n",
     "        push!(res, one_tree)\n",
     "    end\n",
@@ -204,13 +420,82 @@
     "end"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function column_generation(W)\n",
+    "    n = size(W, 1)\n",
+    "    one_trees_init = wheel_like_1trees(n)\n",
+    "    \n",
+    "    columns = one_trees_init[1:n-2]\n",
+    "    tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n",
+    "    tree_weights = [dot(columns[t], W) for t ∈ 1:n-2]\n",
+    "    \n",
+    "    reduced_cost = -1\n",
+    "    new_column = one_trees_init[n-1]\n",
+    "    \n",
+    "    while reduced_cost < 0\n",
+    "        \n",
+    "        push!(columns, new_column)\n",
+    "        tree_degrees = hcat(tree_degrees, [sum(new_column[u,:]) for u ∈ 1:n]) \n",
+    "        push!(tree_weights, dot(new_column, W))\n",
+    "        \n",
+    "        dm = DM(tree_weights, tree_degrees)\n",
+    "        π = value.(dm[:π])\n",
+    "        μ = value(dm[:μ])\n",
+    "        \n",
+    "        # Solve subproblem\n",
+    "        sp = SP()\n",
+    "        new_column = value.(sp[:??????])\n",
+    "        new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n",
+    "        new_weight = dot(new_column, W)\n",
+    "        reduced_cost = objective_value(sp)\n",
+    "    end\n",
+    "    \n",
+    "    lpm = LPM(tree_weights, tree_degrees)\n",
+    "    # ipm = IPM(tree_weights, tree_degrees)\n",
+    "    \n",
+    "    λ = value.(lpm[:λ])\n",
+    "    println(\"Lambda_t : \", λ)\n",
+    "    println(\"Minimal 1-tree \")\n",
+    "    println(\"Lambda : \", maximum(λ))\n",
+    "    println(\"Index : \", argmax(λ))\n",
+    "    println(\"1-tree : \", columns[argmax(λ)])\n",
+    "    \n",
+    "    return columns[argmax(λ)]\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display(column_generation(W))\n",
+    "display(column_generation(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Held and Karp algorithm - attempt 1\n",
+    "\n",
+    "This is the part where we implement the Held and Karp algorithm as described in J.E. Mitchell's slides using Kruskal's algorithm to solve the minimum spanning tree problem.\n",
+    "\n",
+    "However this approach seems to be flawed as the example is easily solved, however the exercise seems to alternate between two identical states.  \n",
+    "This may be due to the update rule of $\\lambda$, results may vary by modifying it."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": 88,
    "metadata": {
-    "collapsed": true,
     "jupyter": {
-     "outputs_hidden": true,
      "source_hidden": true
     },
     "tags": []
@@ -320,7 +605,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 9,
    "metadata": {
     "collapsed": true,
     "jupyter": {
@@ -330,883 +615,273 @@
    },
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "6×6 Array{Int64,2}:\n",
-       "  0   8   4  15  15   3\n",
-       "  8   0   5  15   2  15\n",
-       "  4   5   0   6  15  15\n",
-       " 15  15   6   0   5   3\n",
-       " 15   2  15   5   0   4\n",
-       "  3  15  15   3   4   0"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
+     "ename": "UndefVarError",
+     "evalue": "UndefVarError: hk not defined",
+     "output_type": "error",
+     "traceback": [
+      "UndefVarError: hk not defined",
+      "",
+      "Stacktrace:",
+      " [1] top-level scope at In[9]:1"
+     ]
     }
    ],
    "source": [
-    "W = [\n",
-    "    0   8  4 15 15  3 ;\n",
-    "    8   0  5 15  2 15 ;\n",
-    "    4   5  0  6 15 15 ;\n",
-    "    15 15  6  0  5  3 ;\n",
-    "    15  2 15  5  0  4 ;\n",
-    "    3  15 15  3  4  0\n",
-    "]"
+    "columnGeneration(W)\n",
+    "columnGeneration(W2)\n",
+    "display(hk(W))\n",
+    "display(hk(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Held and Karp algorithm - attempt 2\n",
+    "\n",
+    "Here we will work on the same Master Problem as seen in \"STSP using column generation\".  \n",
+    "However the subsidiary problem will be solved using the algorithm presented by Held and Karp in the section 4 \"An ascent method\" of their paper (which correspond to the one J.E. Mitchell presents in his slides)."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 117,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "OPTIMAL\n",
-      "obj 104.00000000000001\n",
-      "Y [0.20000000000000004, 0.20000000000000004, 0.2, 0.19999999999999998, 0.2]\n",
-      "θ -104.0\n",
-      "Ï€ [-0.780487804878029, -4.341463414634163, -5.85365853658539, -2.195121951219477]\n",
-      "cr 188.5365853658535\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "6×6 Array{Float64,2}:\n",
-       " 0.0  0.4  0.4  0.4  0.4  0.4\n",
-       " 0.4  0.0  0.4  0.4  0.4  0.4\n",
-       " 0.4  0.4  0.0  0.4  0.4  0.4\n",
-       " 0.4  0.4  0.4  0.0  0.4  0.4\n",
-       " 0.4  0.4  0.4  0.4  0.0  0.4\n",
-       " 0.4  0.4  0.4  0.4  0.4  0.0"
-      ]
-     },
-     "execution_count": 117,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "columnGeneration(W)"
+    "function held_and_karp_algo()\n",
+    "    \n",
+    "end"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 118,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "OPTIMAL\n",
-      "obj 113.99999999999997\n",
-      "Y [0.16666666666666666, 0.16666666666666663, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666663]\n",
-      "θ -113.99999999999999\n",
-      "Ï€ [-5.760368663594462, -6.958525345622108, -0.9677419354838632, -0.9216589861751061, -1.1520737327188897]\n",
-      "cr 161.44700460829478\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "7×7 Array{Float64,2}:\n",
-       " 0.0       0.333333  0.333333  0.333333  0.333333  0.333333  0.333333\n",
-       " 0.333333  0.0       0.333333  0.333333  0.333333  0.333333  0.333333\n",
-       " 0.333333  0.333333  0.0       0.333333  0.333333  0.333333  0.333333\n",
-       " 0.333333  0.333333  0.333333  0.0       0.333333  0.333333  0.333333\n",
-       " 0.333333  0.333333  0.333333  0.333333  0.0       0.333333  0.333333\n",
-       " 0.333333  0.333333  0.333333  0.333333  0.333333  0.0       0.333333\n",
-       " 0.333333  0.333333  0.333333  0.333333  0.333333  0.333333  0.0"
-      ]
-     },
-     "execution_count": 118,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
+   "source": [
+    "function update_rule!(λ, D, ρ)\n",
+    "    λ .= λ .+ ρ .* (2 .- D)\n",
+    "end\n",
+    "\n",
+    "update_rule_1!(λ, D) = update_rule!(λ, D, 1)\n",
+    "update_rule_2!(λ, D) = update_rule!(λ, D, 2)\n",
+    "update_rule_3!(λ, D) = update_rule!(λ, D, 3)\n",
+    "update_rule_05!(λ, D) = update_rule!(λ, D, 0.5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function held_and_karp_2(W)\n",
+    "    n = size(W, 1)\n",
+    "    one_trees_init = wheel_like_1trees(n)\n",
+    "    \n",
+    "    columns = one_trees_init[1:n-2]\n",
+    "    tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n",
+    "    tree_weights = [dot(columns[t], W) for t ∈ 1:n-2]\n",
+    "    \n",
+    "    reduced_cost = -1\n",
+    "    new_column = one_trees_init[n-1]\n",
+    "    new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n",
+    "    new_weight = dot(new_column, W)\n",
+    "    \n",
+    "    while reduced_cost < 0\n",
+    "        \n",
+    "        push!(columns, new_column)\n",
+    "        tree_degrees = hcat(tree_degrees, new_degree)\n",
+    "        push!(tree_weights, new_weights)\n",
+    "        \n",
+    "        dm = DM(tree_weights, tree_degrees)\n",
+    "        π = value.(dm[:π])\n",
+    "        μ = value.(dm[:μ])\n",
+    "        \n",
+    "        new_column = held_and_karp_algo(W, , , update_rule_2!)\n",
+    "        new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n",
+    "        new_weight = dot(new_column, W)\n",
+    "        \n",
+    "        reduced_cost = new_weight - dot(π, new_degree) - μ\n",
+    "    end\n",
+    "    \n",
+    "    lpm = LPM(tree_weights, tree_degrees)\n",
+    "    # ipm = IPM(tree_weights, tree_degrees)\n",
+    "    \n",
+    "    λ = value.(lpm[:λ])\n",
+    "    println(\"Lambda_t : \", λ)\n",
+    "    println(\"Minimal 1-tree \")\n",
+    "    println(\"Lambda : \", maximum(λ))\n",
+    "    println(\"Index : \", argmax(λ))\n",
+    "    println(\"1-tree : \", columns[argmax(λ)])\n",
+    "    \n",
+    "    return columns[argmax(λ)] \n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display(held_and_karp_2(W))\n",
+    "display(held_and_karp_2(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## The Held and Karp algorithm - dynamical programming\n",
+    "\n",
+    "Whilst column generation based techniques work well on wide graphs, on smaller ones we may want to use a different method.\n",
+    "\n",
+    "Here we use dynamical programming to implement the Bellman-Held-Karp algorithm.  \n",
+    "It works well on small graph, but scales terribly because of its exponential complexity $O(2^n n^2)$ in time (and $O(2^n n)$ in space)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
    "source": [
-    "columnGeneration(W2)"
+    "function bellman_held_karp()\n",
+    "    \n",
+    "end"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 99,
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display(bellman_held_karp(W))\n",
+    "display(bellman_held_karp(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
    "metadata": {
-    "collapsed": true,
     "jupyter": {
-     "outputs_hidden": true
+     "source_hidden": true
     },
     "tags": []
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 3.0, 2.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 2.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 4.0, 3.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 4.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 4.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 2.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 4.0, 1.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 3.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 3.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 3.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 4.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 4.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 2.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 2.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 3.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 3.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 3.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 2.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "["
-     ]
-    },
-    {
-     "ename": "InterruptException",
-     "evalue": "InterruptException:",
-     "output_type": "error",
-     "traceback": [
-      "InterruptException:",
-      "",
-      "Stacktrace:",
-      " [1] try_yieldto(::typeof(Base.ensure_rescheduled), ::Base.RefValue{Task}) at .\\task.jl:654",
-      " [2] wait at .\\task.jl:710 [inlined]",
-      " [3] uv_write(::Base.PipeEndpoint, ::Ptr{UInt8}, ::UInt64) at .\\stream.jl:935",
-      " [4] unsafe_write(::Base.PipeEndpoint, ::Ptr{UInt8}, ::UInt64) at .\\stream.jl:1007",
-      " [5] unsafe_write at .\\io.jl:593 [inlined]",
-      " [6] unsafe_write(::Base.PipeEndpoint, ::Base.RefValue{UInt8}, ::Int64) at .\\io.jl:591",
-      " [7] write at .\\io.jl:594 [inlined]",
-      " [8] write(::Base.PipeEndpoint, ::UInt8) at .\\stream.jl:1045",
-      " [9] write at .\\io.jl:309 [inlined]",
-      " [10] write at .\\io.jl:647 [inlined]",
-      " [11] print at .\\char.jl:229 [inlined]",
-      " [12] show_delim_array(::IOContext{Base.PipeEndpoint}, ::Array{Float64,1}, ::Char, ::String, ::Char, ::Bool, ::Int64, ::Int64) at .\\show.jl:705 (repeats 2 times)",
-      " [13] show_vector(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}, ::Char, ::Char) at .\\arrayshow.jl:458",
-      " [14] show_vector at .\\arrayshow.jl:447 [inlined]",
-      " [15] show at .\\arrayshow.jl:420 [inlined]",
-      " [16] print(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}) at .\\strings\\io.jl:35",
-      " [17] print(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}, ::Char) at .\\strings\\io.jl:46",
-      " [18] println(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}) at .\\strings\\io.jl:73",
-      " [19] println(::Array{Float64,1}) at .\\coreio.jl:4",
-      " [20] hk2(::Array{Int64,2}) at .\\In[98]:76",
-      " [21] top-level scope at In[99]:1"
-     ]
-    }
-   ],
    "source": [
-    "S = hk2(W)"
+    "## Column-generation technique\n",
+    "\n",
+    "The master problem is the following\n",
+    "\n",
+    "$$ \\min \\sum_k c_k y_k \\ ; \\quad y_k \\geq 0 \\ , \\quad \\sum_k y_k = 1 \\ , \\quad \\sum -v_{ik} y_k = 0 \\quad \\forall i \\in {2, \\ldots, n-1}$$\n",
+    "\n",
+    "The subproblem is the following\n",
+    "\n",
+    "$$ K(\\pi) = \\left\\{k \\ |\\ w(\\pi) = c_k + \\sum_{i=1}^n \\pi_n v_{ik} \\right\\} $$"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 90,
-   "metadata": {},
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": true,
+    "jupyter": {
+     "outputs_hidden": true,
+     "source_hidden": true
+    },
+    "tags": []
+   },
    "outputs": [
     {
      "data": {
-      "image/svg+xml": [
-       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
-       "<svg xmlns=\"http://www.w3.org/2000/svg\"\n",
-       "     xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
-       "     version=\"1.2\"\n",
-       "     width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n",
-       "     stroke=\"none\"\n",
-       "     fill=\"#000000\"\n",
-       "     stroke-width=\"0.3\"\n",
-       "     font-size=\"3.88\"\n",
-       ">\n",
-       "<defs>\n",
-       "  <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n",
-       "    <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n",
-       "  </marker>\n",
-       "</defs>\n",
-       "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-6ef82605-1\">\n",
-       "  <g transform=\"translate(126.9,53.21)\">\n",
-       "    <path fill=\"none\" d=\"M2.17,-16.45 L-2.17,16.45 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(102.54,20.43)\">\n",
-       "    <path fill=\"none\" d=\"M22.01,9.83 L-22.01,-9.83 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(95.06,82.78)\">\n",
-       "    <path fill=\"none\" d=\"M-23.59,7.2 L23.59,-7.2 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(38.87,79.62)\">\n",
-       "    <path fill=\"none\" d=\"M22,9.79 L-22,-9.79 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(14.64,47)\">\n",
-       "    <path fill=\"none\" d=\"M2.26,-16.33 L-2.26,16.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(46.47,17.39)\">\n",
-       "    <path fill=\"none\" d=\"M-23.48,7.33 L23.48,-7.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-6ef82605-2\">\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6ef82605-3\">\n",
-       "</g>\n",
-       "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-6ef82605-4\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6ef82605-5\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "</g>\n",
-       "</svg>\n"
-      ],
-      "text/html": [
-       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
-       "<svg xmlns=\"http://www.w3.org/2000/svg\"\n",
-       "     xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
-       "     version=\"1.2\"\n",
-       "     width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n",
-       "     stroke=\"none\"\n",
-       "     fill=\"#000000\"\n",
-       "     stroke-width=\"0.3\"\n",
-       "     font-size=\"3.88\"\n",
-       "\n",
-       "     id=\"img-b41e9ce3\">\n",
-       "<defs>\n",
-       "  <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n",
-       "    <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n",
-       "  </marker>\n",
-       "</defs>\n",
-       "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-b41e9ce3-1\">\n",
-       "  <g transform=\"translate(126.9,53.21)\">\n",
-       "    <path fill=\"none\" d=\"M2.17,-16.45 L-2.17,16.45 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(102.54,20.43)\">\n",
-       "    <path fill=\"none\" d=\"M22.01,9.83 L-22.01,-9.83 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(95.06,82.78)\">\n",
-       "    <path fill=\"none\" d=\"M-23.59,7.2 L23.59,-7.2 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(38.87,79.62)\">\n",
-       "    <path fill=\"none\" d=\"M22,9.79 L-22,-9.79 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(14.64,47)\">\n",
-       "    <path fill=\"none\" d=\"M2.26,-16.33 L-2.26,16.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(46.47,17.39)\">\n",
-       "    <path fill=\"none\" d=\"M-23.48,7.33 L23.48,-7.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-b41e9ce3-2\">\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-b41e9ce3-3\">\n",
-       "</g>\n",
-       "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-b41e9ce3-4\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-b41e9ce3-5\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<script> <![CDATA[\n",
-       "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n",
-       "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n",
-       "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n",
-       "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n",
-       "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n",
-       "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n",
-       "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n",
-       "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n",
-       "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n",
-       "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n",
-       "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n",
-       "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n",
-       "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n",
-       "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n",
-       "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n",
-       "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n",
-       "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n",
-       "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n",
-       "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n",
-       "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n",
-       "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n",
-       "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n",
-       "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n",
-       "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n",
-       "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n",
-       "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n",
-       "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n",
-       "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n",
-       "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n",
-       "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n",
-       "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n",
-       "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n",
-       "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n",
-       "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n",
-       "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n",
-       "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n",
-       "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n",
-       "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n",
-       "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n",
-       "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n",
-       "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n",
-       "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n",
-       "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n",
-       "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n",
-       "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n",
-       "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n",
-       "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n",
-       "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n",
-       "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n",
-       "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n",
-       "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n",
-       "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n",
-       "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n",
-       "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n",
-       "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n",
-       "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n",
-       "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n",
-       "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n",
-       "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n",
-       "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n",
-       "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n",
-       "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n",
-       "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n",
-       "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n",
-       "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n",
-       "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n",
-       "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n",
-       "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n",
-       "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n",
-       "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n",
-       "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n",
-       "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n",
-       "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n",
-       "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n",
-       "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n",
-       "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n",
-       "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n",
-       "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n",
-       "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n",
-       "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n",
-       "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n",
-       "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n",
-       "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n",
-       "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n",
-       "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n",
-       "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n",
-       "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n",
-       "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n",
-       "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n",
-       "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n",
-       "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n",
-       "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n",
-       "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n",
-       "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n",
-       "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n",
-       "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n",
-       "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n",
-       "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n",
-       "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n",
-       "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n",
-       "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n",
-       "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n",
-       "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n",
-       "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n",
-       "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n",
-       "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n",
-       "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n",
-       "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n",
-       "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n",
-       "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n",
-       "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n",
-       "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n",
-       "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n",
-       "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n",
-       "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n",
-       "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n",
-       "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n",
-       "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n",
-       "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n",
-       "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n",
-       "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n",
-       "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n",
-       "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n",
-       "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n",
-       "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n",
-       "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n",
-       "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n",
-       "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n",
-       "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n",
-       "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n",
-       "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n",
-       "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n",
-       "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n",
-       "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n",
-       "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n",
-       "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n",
-       "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n",
-       "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n",
-       "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n",
-       "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n",
-       "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n",
-       "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n",
-       "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n",
-       "\n",
-       "]]> </script>\n",
-       "</svg>\n"
-      ],
       "text/plain": [
-       "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9905025880128268cx, -0.3176512835001404cy), (0.9167269715491704cx, 0.47172382155236714cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9137049493837586cx, -0.4737666582609542cy), (0.16670574480473002cx, -0.9455038450364891cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.013015221046202119cx, 0.9595342227670036cy), (0.8135322408191633cx, 0.6138088185826666cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.16706558025891527cx, 0.945644129966688cy), (-0.9136165174377163cx, 0.47588504511756974cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9131701583122595cx, -0.4638996706926798cy), (-0.9900390343733542cx, 0.3199543463595612cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.8098509704632999cx, -0.6067165775676802cy), (-0.01294752803382511cx, -0.9587579218496962cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.4192705032974433cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.0806820976966316cx, 1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.907229559561997cx, 0.5733430413496701cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.9032091926856136cx, -0.5654744994173764cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 0.4215291750842578cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.08041069418848856cx, -1.0cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.4192705032974433cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.0806820976966316cx, 1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.907229559561997cx, 0.5733430413496701cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.9032091926856136cx, -0.5654744994173764cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 0.4215291750842578cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.08041069418848856cx, -1.0cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))"
+       "columnGeneration (generic function with 1 method)"
       ]
      },
-     "execution_count": 90,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "gplot(Graph(S), nodelabel=1:6)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 114,
-   "metadata": {
-    "tags": []
-   },
-   "outputs": [
-    {
-     "ename": "UndefVarError",
-     "evalue": "UndefVarError: hk not defined",
-     "output_type": "error",
-     "traceback": [
-      "UndefVarError: hk not defined",
-      "",
-      "Stacktrace:",
-      " [1] top-level scope at In[114]:10"
-     ]
-    }
-   ],
-   "source": [
-    "W2 = [\n",
-    "     0 15  0  0 15 15 15 ;\n",
-    "    15  0  1 15  0 15  1 ;\n",
-    "     0  1  0 15 15 15  1 ;\n",
-    "     0 15 15  0  1  1 15 ;\n",
-    "    15  0 15  1  0  1 15 ;\n",
-    "    15 15 15  1  1  0  0 ;\n",
-    "    15  1  1 15 15  0  0 ;\n",
-    "]\n",
+    "function columnGeneration(W)\n",
+    "    \n",
+    "    n = size(W, 1)\n",
+    "    T_List = wheel_like(n)\n",
+    "    m = length(T_List)\n",
+    "    S = 0\n",
+    "    g = complete_graph(n-1)\n",
+    "    \n",
+    "    cr = -1\n",
+    "    while cr < 0\n",
+    "        \n",
+    "        m = length(T_List)\n",
+    "        \n",
+    "        C = [sum(W .* T) for T in T_List]\n",
+    "        D = [sum(T[i,:]) for i in 2:n-1, T in T_List]\n",
+    "        V = D .- 2\n",
+    "        \n",
+    "        ### Master problem\n",
+    "        master = Model(GLPK.Optimizer)\n",
+    "        set_silent(master)\n",
+    "        \n",
+    "        @variable(master, 1 >= Y[1:m] >= 0, Bin)\n",
+    "        \n",
+    "        @objective(master, Min, dot(C, Y))\n",
+    "        \n",
+    "        @constraint(master, convexCombination, sum(Y) == 1)\n",
+    "        \n",
+    "        @constraint(master, averageDegreeTwo[k in 1:n-2], dot(V[k,:], Y) == 0)\n",
+    "        \n",
+    "        optimize!(master)\n",
+    "        \n",
+    "        println(termination_status(master))\n",
+    "        println(\"obj \", objective_value(master))\n",
+    "        println(\"Y \", value.(Y))\n",
+    "        #println(\"C \", C)\n",
+    "        #println(\"D \", D)\n",
+    "        #println(\"V \", V)\n",
+    "        S = value.(Y)\n",
+    "        \n",
+    "        θ = shadow_price(convexCombination)\n",
+    "        π = shadow_price.(averageDegreeTwo)\n",
+    "        \n",
+    "        println(\"θ \", θ)\n",
+    "        println(\"π \", π)\n",
+    "        \n",
+    "        W_updated = convert.(Float64, W)\n",
+    "\n",
+    "        for i in 2:n-1, j in 2:n-1\n",
+    "            W_updated[i,j] -= π[i-1] + π[j-1]\n",
+    "        end\n",
     "\n",
-    "S2 = hk(W2)\n",
+    "        st = Matrix(adjacency_matrix(Graph(kruskal_mst(g, W_updated[2:n,2:n]))))\n",
+    "        T = zeros(n,n)\n",
     "\n",
-    "gplot(Graph(S2), nodelabel=1:size(W2,1))"
+    "        w_tmp = W_updated[1,2:n]\n",
+    "        min_idx_1 = argmin(w_tmp[1:n-1])\n",
+    "        min_idx_2 = argmin(w_tmp[1:n-1 .!= min_idx_1])\n",
+    "        T[1,min_idx_1+1] = 1 ; T[1,min_idx_2+1] = 1 ; T[:,1] .= T[1,:]\n",
+    "        T[2:n,2:n] .= st[1:n-1,1:n-1]\n",
+    "        \n",
+    "        cr = sum(W_updated .* T) - θ - 2*sum(π)\n",
+    "        \n",
+    "        println(\"cr \", cr)\n",
+    "        \n",
+    "        push!(T_List, T)\n",
+    "        \n",
+    "    end\n",
+    "    \n",
+    "    Tf = zeros(n,n)\n",
+    "    for i in 1:m\n",
+    "        Tf .+= S[i] .* T_List[i]\n",
+    "    end\n",
+    "    \n",
+    "    return Tf\n",
+    "end"
    ]
   }
  ],
diff --git a/Column_Generation_Flowchart.png b/Column_Generation_Flowchart.png
new file mode 100644
index 0000000000000000000000000000000000000000..cbeedcbb7224c4cc0e6f2e864c2410512cadf2bb
GIT binary patch
literal 16576
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

literal 0
HcmV?d00001

diff --git a/example_graph.png b/example_graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e72f36bba46c7f2bf8e6317f1d858a2328ea4b8
GIT binary patch
literal 26342
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
Z-^G(Ew`?^X*qi3ks~4c>rAluC{|~An&Hn%Z

literal 0
HcmV?d00001

diff --git a/example_graph_solution.png b/example_graph_solution.png
new file mode 100644
index 0000000000000000000000000000000000000000..e2004ce6aa3a1a3dae2e845537c931eaa12ae6ba
GIT binary patch
literal 30971
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

literal 0
HcmV?d00001

diff --git a/exercise_graph.png b/exercise_graph.png
new file mode 100644
index 0000000000000000000000000000000000000000..8219e5176ceb408c0386de4e483ff4ccb644fea3
GIT binary patch
literal 51737
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
Ih4lRX2O$jRxc~qF

literal 0
HcmV?d00001

diff --git a/heldAndKarp.ipynb b/heldAndKarp.ipynb
index a72966c..bb23119 100644
--- a/heldAndKarp.ipynb
+++ b/heldAndKarp.ipynb
@@ -13,16 +13,47 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "The Held and Karp algorithm as described in \"The traveling-salesman problem and minimum spanning trees\" (1969) tackles the TSP problem using the concept of 1-tree, which consist for $n$ vertices numbered from $1$ to $n$ of a spanning tree for the vertices $2$ to $n$, to which is connected the vertex $1$ such that it have a degree equals to $2$.\n",
+    "**A REDIGER : Note sur l'utilisation d'un notebook, nbviewer, conversion en .jl, jupyter et jupyter lab**\n",
     "\n",
-    "In this paper several linear programms modeling the TSP are derived, and the authors show how they are related to one another. Then resolution methods are presented\n",
+    "**Requirements : Version julia et des modules, un project.toml etc PKG blabla**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The Held and Karp algorithm as described in \"The traveling-salesman problem and minimum spanning trees\" (1969) tackles the STSP (Symetric Traveling Salesman Problem) using the concept of 1-tree, which consist for $n$ vertices numbered from $1$ to $n$ of a spanning tree for the vertices $2$ to $n$, to which is connected the vertex $1$ such that it have a degree equals to $2$.\n",
+    "\n",
+    "In this paper several LP of the STSP are derived, and the authors show how they are related to one another. Then resolution methods are presented.\n",
+    "\n",
+    "The core idea behind this work is that instead of relaxing the connectivity constraint as seen in the polyhedral approach, Held and Karp chose to relax the degree constraints using the concept of 1-tree."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Here we present our attemps to solve the STSP with column generation, and more generally the techniques presented in Held and Karp's paper, as shown in John E. Mitchell's slides.\n",
     "\n",
-    "Here we present our attempts at implementing such methods"
+    "We ran into some troubles while working on this project, mostly because we hardly saw a link between column generation, JuMP and the algorithm described in J.E. Mitchell's slides. In these the only things which seems to be involved are a greedy algorithm (Kruskal's for example) to solve a spanning tree problem, basic minimum finding techniques to connect vertex 1 and a loop to start again until a cycle is found (updating the weights between each iteration).\n",
+    "\n",
+    "We will go through the following\n",
+    "* STSP using column generation\n",
+    "* Held and Karp algorithm - attempt 1\n",
+    "* Held and Karp algorithm - attempt 2\n",
+    "* The Held and Karp algorithm - dynamical programming"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Modules and useful functions"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 103,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [
     {
@@ -34,137 +65,329 @@
     }
    ],
    "source": [
-    "using LinearAlgebra\n",
-    "using JuMP\n",
-    "using GLPK\n",
-    "using LightGraphs\n",
-    "using GraphPlot\n",
+    "using LinearAlgebra # Basic algebra structures & functions\n",
+    "using JuMP          # Modeling language\n",
+    "using GLPK, Cbc     # LP and MIP solvers\n",
+    "using LightGraphs   # Efficient graph structures & functions\n",
+    "using GraphPlot     # Graph visualization \n",
     "\n",
     "println(\"Modules loaded\")"
    ]
   },
   {
-   "cell_type": "markdown",
+   "cell_type": "code",
+   "execution_count": null,
    "metadata": {},
+   "outputs": [],
    "source": [
-    "## Column-generation technique\n",
-    "\n",
-    "The master problem is the following\n",
+    "function checkTermination(m, verbose = true)\n",
+    "    if !( \n",
+    "                ( termination_status(m) == MOI.OPTIMAL ) || \n",
+    "                ( termination_status(m) == MOI.TIME_LIMIT && has_values(m) ) \n",
+    "            )\n",
+    "        \n",
+    "        if verbose\n",
+    "            println(termination_status(m))\n",
+    "            println(termination_status(m))\n",
+    "            println(has_values(m))\n",
+    "            println(m)\n",
+    "        end\n",
+    "        \n",
+    "        error(\"Couldn't connect vertex 1 (PLNE failed).\")\n",
+    "    end\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function display(S, W = Nothing)\n",
+    "    gplot(Graph(S), nodelabel=1:size(S,1))\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "## Data to test our results\n",
     "\n",
-    "$$ \\min \\sum_k c_k y_k \\ ; \\quad y_k \\geq 0 \\ , \\quad \\sum_k y_k = 1 \\ , \\quad \\sum -v_{ik} y_k = 0 \\quad \\forall i \\in {2, \\ldots, n-1}$$\n",
+    "The data we will be using is extracted from [John E. Mitchell's slides](http://eaton.math.rpi.edu/faculty/Mitchell/courses/matp6620/notesMATP6620/lecture22/22A_heldkarpbeamer.pdf).\n",
     "\n",
-    "The subproblem is the following\n",
+    "However on such small graphs column generation techniques will not show their full potential, as these methods aim to tackle large scale problems.\n",
     "\n",
-    "$$ K(\\pi) = \\left\\{k \\ |\\ w(\\pi) = c_k + \\sum_{i=1}^n \\pi_n v_{ik} \\right\\} $$"
+    "![Example weights](example_graph.png)\n",
+    "![Example solution](example_graph_solution.png)\n",
+    "![Exercise weights](exercise_graph.png)"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 116,
+   "execution_count": 11,
    "metadata": {
     "tags": []
    },
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "columnGeneration (generic function with 1 method)"
-      ]
-     },
-     "execution_count": 116,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Weight matrices initialized\n"
+     ]
     }
    ],
    "source": [
-    "function columnGeneration(W)\n",
-    "    \n",
-    "    n = size(W, 1)\n",
-    "    T_List = wheel_like(n)\n",
-    "    m = length(T_List)\n",
-    "    S = 0\n",
-    "    g = complete_graph(n-1)\n",
-    "    \n",
-    "    cr = -1\n",
-    "    while cr < 0\n",
-    "        \n",
-    "        m = length(T_List)\n",
-    "        \n",
-    "        C = [sum(W .* T) for T in T_List]\n",
-    "        D = [sum(T[i,:]) for i in 2:n-1, T in T_List]\n",
-    "        V = D .- 2\n",
-    "        \n",
-    "        ### Master problem\n",
-    "        master = Model(GLPK.Optimizer)\n",
-    "        set_silent(master)\n",
-    "        \n",
-    "        @variable(master, 1 >= Y[1:m] >= 0)\n",
-    "        \n",
-    "        @objective(master, Min, dot(C, Y))\n",
-    "        \n",
-    "        @constraint(master, convexCombination, sum(Y) == 1)\n",
-    "        \n",
-    "        @constraint(master, averageDegreeTwo[k in 1:n-2], dot(V[k,:], Y) == 0)\n",
-    "        \n",
-    "        optimize!(master)\n",
-    "        \n",
-    "        println(termination_status(master))\n",
-    "        println(\"obj \", objective_value(master))\n",
-    "        println(\"Y \", value.(Y))\n",
-    "        #println(\"C \", C)\n",
-    "        #println(\"D \", D)\n",
-    "        #println(\"V \", V)\n",
-    "        S = value.(Y)\n",
-    "        \n",
-    "        θ = shadow_price(convexCombination)\n",
-    "        π = shadow_price.(averageDegreeTwo)\n",
-    "        \n",
-    "        println(\"θ \", θ)\n",
-    "        println(\"π \", π)\n",
-    "        \n",
-    "        W_updated = convert.(Float64, W)\n",
+    "example = [\n",
+    "    0   8  4 15 15  3 ;\n",
+    "    8   0  5 15  2 15 ;\n",
+    "    4   5  0  6 15 15 ;\n",
+    "    15 15  6  0  5  3 ;\n",
+    "    15  2 15  5  0  4 ;\n",
+    "    3  15 15  3  4  0\n",
+    "]\n",
     "\n",
-    "        for i in 2:n-1, j in 2:n-1\n",
-    "            W_updated[i,j] -= π[i-1] + π[j-1]\n",
-    "        end\n",
+    "exercise = [\n",
+    "     0 15  0  0 15 15 15 ;\n",
+    "    15  0  1 15  0 15  1 ;\n",
+    "     0  1  0 15 15 15  1 ;\n",
+    "     0 15 15  0  1  1 15 ;\n",
+    "    15  0 15  1  0  1 15 ;\n",
+    "    15 15 15  1  1  0  0 ;\n",
+    "    15  1  1 15 15  0  0 ;\n",
+    "]\n",
     "\n",
-    "        st = Matrix(adjacency_matrix(Graph(kruskal_mst(g, W_updated[2:n,2:n]))))\n",
-    "        T = zeros(n,n)\n",
+    "println(\"Weight matrices initialized\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## STSP using column generation\n",
     "\n",
-    "        w_tmp = W_updated[1,2:n]\n",
-    "        min_idx_1 = argmin(w_tmp[1:n-1])\n",
-    "        min_idx_2 = argmin(w_tmp[1:n-1 .!= min_idx_1])\n",
-    "        T[1,min_idx_1+1] = 1 ; T[1,min_idx_2+1] = 1 ; T[:,1] .= T[1,:]\n",
-    "        T[2:n,2:n] .= st[1:n-1,1:n-1]\n",
-    "        \n",
-    "        cr = sum(W_updated .* T) - θ - 2*sum(π)\n",
-    "        \n",
-    "        println(\"cr \", cr)\n",
-    "        \n",
-    "        push!(T_List, T)\n",
-    "        \n",
-    "    end\n",
+    "The STSP can be written as\n",
+    "\n",
+    "$$\\begin{array}{r l}\n",
+    "\\min & \\sum_{e\\in E} c_e x_e \\\\\n",
+    "\\text{s.t.}\n",
+    "& \\sum_{e\\in \\delta(i)} x_e = 2 \\quad (i\\in N) \\\\\n",
+    "& x \\in X^1\n",
+    "\\end{array}$$\n",
+    "\n",
+    "$N$ is the set of nodes  \n",
+    "$\\delta(i)$ the set of edges incident to $i$  \n",
+    "$x_e$ indicator variable for edge $e$  \n",
+    "$X^1$ set of indicator vectors of 1-trees\n",
+    "\n",
+    "A 1-tree is a subset $E' \\subset E$ of edges of which exactly two are incident to node 1 : $| E' \\cap \\delta(1) | = 2$ and $E'\\backslash \\delta(1)$ is a spanning tree on the remaining nodes $2, \\ldots, n$ (hence of cardinality $n-2$).\n",
+    "\n",
+    "Every Hamiltonian tour is a 1-tree that satisfies the degree constraint $|E' \\cap \\delta(i)| = 2$ for all nodes $i \\in N$. Conversely, every 1-tree that satisfies these degree constraints is a Hamiltonian tour."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Given a conceptual enumeration of the set of 1-tree : $\\{ E^t : t = 1, \\ldots, T_1 \\}$\n",
+    "\n",
+    "$$ x_e = \\sum_{t: e\\in E^t} \\lambda_t $$\n",
+    "\n",
+    "Subject to $\\lambda_t \\in \\{0, 1\\}$ for all $t$ and $\\sum_{t=1}^{T_1} \\lambda_t = 1$.  \n",
+    "This defines the indicator vector of the single 1-tree for which $\\lambda_t = 1$\n",
+    "\n",
+    "The degree constraints become\n",
+    "\n",
+    "$$ \\sum_{e \\in \\delta(i)} x_e = \\sum_{e\\in \\delta(i)} \\sum_{t: e \\in E^t} \\lambda_t = \\sum_t d_i^t \\lambda_t = 2 $$\n",
+    "\n",
+    "Where $d_i^t$ is the degree of node $i$ in the 1-tree $t$.\n",
+    "\n",
+    "The IP Master Problem being \n",
+    "\n",
+    "$$ \\text{(IPM)} \\quad \n",
+    "\\begin{array}{r l}\n",
+    "\\min & \\sum_{t = 1}^{T_1} \\left( \\sum_{e\\in E} c_e x_e^t \\right) \\lambda_t \\\\\n",
+    "\\text{s.t.}\n",
+    "& \\sum_{t = 1}^{T_1} d_i^t \\lambda_t = 2 \\quad (i \\in N) \\\\\n",
+    "& \\sum_{t = 1}^{T_1} \\lambda_t = 1 \\\\\n",
+    "& \\lambda_t \\in \\{0, 1\\}, \\quad (t = 1, \\ldots , T_1)\n",
+    "\\end{array}$$"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function IPM(C, D)\n",
+    "    ipm = Model(Cbc.Optimizer)\n",
+    "    set_silent(ipm)\n",
     "    \n",
-    "    Tf = zeros(n,n)\n",
-    "    for i in 1:m\n",
-    "        Tf .+= S[i] .* T_List[i]\n",
-    "    end\n",
+    "    @variable(ipm, λ[1:length(C)], Bin)\n",
     "    \n",
-    "    return Tf\n",
+    "    @objective(ipm, Min, dot(C, λ))\n",
+    "    \n",
+    "    @constraint(ipm, degree[i in 1:size(D,1)], dot(D[i,:], λ) == 2)\n",
+    "    @constraint(ipm, convexity, sum(λ) == 1)\n",
+    "    \n",
+    "    optimize!(ipm)\n",
+    "    checkTermination(ipm)\n",
+    "    \n",
+    "    return ipm\n",
     "end"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Thus the LP relaxation of (IPM) called LP Master Problem\n",
+    "\n",
+    "$$ \\text{(LPM)} \\quad \n",
+    "\\begin{array}{r l}\n",
+    "\\min & \\sum_{t = 1}^{T_1} \\left( \\sum_{e\\in E} c_e x_e^t \\right) \\lambda_t \\\\\n",
+    "\\text{s.t.}\n",
+    "& \\sum_{t = 1}^{T_1} d_i^t \\lambda_t = 2 \\quad (i \\in N) \\\\\n",
+    "& \\sum_{t = 1}^{T_1} \\lambda_t = 1 \\\\\n",
+    "& \\lambda_t \\geq 0, \\quad (t = 1, \\ldots , T_1)\n",
+    "\\end{array}$$"
+   ]
+  },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": null,
    "metadata": {
-    "collapsed": true,
     "jupyter": {
-     "outputs_hidden": true,
      "source_hidden": true
     },
     "tags": []
    },
+   "outputs": [],
+   "source": [
+    "function LPM(C, D)\n",
+    "    lpm = Model(Cbc.Optimizer)\n",
+    "    set_silent(lpm)\n",
+    "    \n",
+    "    @variable(lpm, λ[1:length(C)] >= 0)\n",
+    "    \n",
+    "    @objective(lpm, Min, dot(C, λ))\n",
+    "    \n",
+    "    @constraint(lpm, degree[i in 1:size(D,1)], dot(D[i,:], λ) == 2)\n",
+    "    @constraint(lpm, convexity, sum(λ) == 1)\n",
+    "    \n",
+    "    optimize!(lpm)\n",
+    "    checkTermination(lpm)\n",
+    "    \n",
+    "    return lpm\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "In (LPM) there is a column $ ( c^T x^t , d_1^t , \\ldots , d_n^t , 1 )^T$ for every $x^t \\in X^1 \\ (t = 1, \\ldots, T_1)$  \n",
+    "The second equation is a convexity constraint\n",
+    "\n",
+    "Associating the second equation with dual variable $\\mu$ and the degree constraints with dual variables $\\{\\pi_i\\}_{i=1}^m$ the dual of (LPM) is\n",
+    "\n",
+    "$$\\text{(DM)} \\quad\n",
+    "\\begin{array}{r l}\n",
+    "\\max_{\\mu, \\pi} & \\sum_{i=1}^m 2 \\pi_i + \\mu \\\\\n",
+    "\\text{s.t.} & \\pi^T d^t + \\mu \\leq c^T x^t \\quad (t = 1 \\ldots T_1)\n",
+    "\\end{array}$$"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function DM(C, D)\n",
+    "    dm = Model(Cbc.Optimizer)\n",
+    "    set_silent(dm)\n",
+    "    \n",
+    "    @variable(dm, π[1:size(D,1)])\n",
+    "    @variable(dm, μ)\n",
+    "    \n",
+    "    @objective(dm, Max, 2*sum(π) + μ)\n",
+    "    \n",
+    "    @constraint(dm, oneTree[t in 1:size(D,2)], dot(π, D[:,t]) + μ <= C[t])\n",
+    "    \n",
+    "    optimize!(dm)\n",
+    "    checkTermination(dm)\n",
+    "    \n",
+    "    return dm\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "The associated subsidiary problem is the following\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function SP()\n",
+    "    sp = Model(Cbc.Optimizer)\n",
+    "    set_silent(sp)\n",
+    "    \n",
+    "    @variable(sp, )\n",
+    "    \n",
+    "    @objective(sp, Min, (c - π^T A ) x - μ)\n",
+    "    \n",
+    "    @constraint(sp, degree1)\n",
+    "    @constraint(sp, nbEdges, sum(x[2:]) == )\n",
+    "    @constraint(sp, spanningTree)\n",
+    "    \n",
+    "    optimize!(sp)\n",
+    "    checkTermination(sp)\n",
+    "    \n",
+    "    return sp\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Our algorithm will follow this flowchart, classic for column generation algorithm\n",
+    "\n",
+    "![Flowchart](Column_Generation_Flowchart.png)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Our first \"dummy\" basis will consist in a collection of \"wheel\"-like 1-trees, as described in Held and Karp's paper\n",
+    "\n",
+    "![Wheel-like 1-trees](wheel_like_1-trees.png)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {
+    "tags": []
+   },
    "outputs": [
     {
      "data": {
@@ -172,30 +395,23 @@
        "wheel_like (generic function with 1 method)"
       ]
      },
-     "execution_count": 33,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "function wheel_like(n)\n",
+    "function wheel_like_1trees(n)\n",
     "    res = []\n",
     "    for k in 2:n\n",
     "        one_tree = zeros(n,n)\n",
     "        \n",
     "        for v in union(2:k-1, k+1:n)\n",
-    "            one_tree[k,v] = 1\n",
-    "            one_tree[v,k] = 1\n",
+    "            one_tree[k,v] = 1 ; one_tree[v,k] = 1\n",
     "        end\n",
     "        \n",
-    "        one_tree[1,k] = 1\n",
-    "        one_tree[k,1] = 1\n",
-    "        one_tree[1, n==k ? 2 : k+1] = 1\n",
-    "        one_tree[n==k ? 2 : k+1, 1] = 1\n",
-    "        \n",
-    "        for i in 1:n\n",
-    "            one_tree[i:n, i] .= one_tree[i, i:n]\n",
-    "        end\n",
+    "        one_tree[1,k] = 1 ; one_tree[1, n==k ? 2 : k+1] = 1\n",
+    "        one_tree[k,1] = 1 ; one_tree[n==k ? 2 : k+1, 1] = 1    \n",
     "        \n",
     "        push!(res, one_tree)\n",
     "    end\n",
@@ -204,13 +420,82 @@
     "end"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function column_generation(W)\n",
+    "    n = size(W, 1)\n",
+    "    one_trees_init = wheel_like_1trees(n)\n",
+    "    \n",
+    "    columns = one_trees_init[1:n-2]\n",
+    "    tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n",
+    "    tree_weights = [dot(columns[t], W) for t ∈ 1:n-2]\n",
+    "    \n",
+    "    reduced_cost = -1\n",
+    "    new_column = one_trees_init[n-1]\n",
+    "    \n",
+    "    while reduced_cost < 0\n",
+    "        \n",
+    "        push!(columns, new_column)\n",
+    "        tree_degrees = hcat(tree_degrees, [sum(new_column[u,:]) for u ∈ 1:n]) \n",
+    "        push!(tree_weights, dot(new_column, W))\n",
+    "        \n",
+    "        dm = DM(tree_weights, tree_degrees)\n",
+    "        π = value.(dm[:π])\n",
+    "        μ = value(dm[:μ])\n",
+    "        \n",
+    "        # Solve subproblem\n",
+    "        sp = SP()\n",
+    "        new_column = value.(sp[:??????])\n",
+    "        new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n",
+    "        new_weight = dot(new_column, W)\n",
+    "        reduced_cost = objective_value(sp)\n",
+    "    end\n",
+    "    \n",
+    "    lpm = LPM(tree_weights, tree_degrees)\n",
+    "    # ipm = IPM(tree_weights, tree_degrees)\n",
+    "    \n",
+    "    λ = value.(lpm[:λ])\n",
+    "    println(\"Lambda_t : \", λ)\n",
+    "    println(\"Minimal 1-tree \")\n",
+    "    println(\"Lambda : \", maximum(λ))\n",
+    "    println(\"Index : \", argmax(λ))\n",
+    "    println(\"1-tree : \", columns[argmax(λ)])\n",
+    "    \n",
+    "    return columns[argmax(λ)]\n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display(column_generation(W))\n",
+    "display(column_generation(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Held and Karp algorithm - attempt 1\n",
+    "\n",
+    "This is the part where we implement the Held and Karp algorithm as described in J.E. Mitchell's slides using Kruskal's algorithm to solve the minimum spanning tree problem.\n",
+    "\n",
+    "However this approach seems to be flawed as the example is easily solved, however the exercise seems to alternate between two identical states.  \n",
+    "This may be due to the update rule of $\\lambda$, results may vary by modifying it."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": 88,
    "metadata": {
-    "collapsed": true,
     "jupyter": {
-     "outputs_hidden": true,
      "source_hidden": true
     },
     "tags": []
@@ -320,7 +605,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 9,
    "metadata": {
     "collapsed": true,
     "jupyter": {
@@ -330,883 +615,273 @@
    },
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "6×6 Array{Int64,2}:\n",
-       "  0   8   4  15  15   3\n",
-       "  8   0   5  15   2  15\n",
-       "  4   5   0   6  15  15\n",
-       " 15  15   6   0   5   3\n",
-       " 15   2  15   5   0   4\n",
-       "  3  15  15   3   4   0"
-      ]
-     },
-     "execution_count": 6,
-     "metadata": {},
-     "output_type": "execute_result"
+     "ename": "UndefVarError",
+     "evalue": "UndefVarError: hk not defined",
+     "output_type": "error",
+     "traceback": [
+      "UndefVarError: hk not defined",
+      "",
+      "Stacktrace:",
+      " [1] top-level scope at In[9]:1"
+     ]
     }
    ],
    "source": [
-    "W = [\n",
-    "    0   8  4 15 15  3 ;\n",
-    "    8   0  5 15  2 15 ;\n",
-    "    4   5  0  6 15 15 ;\n",
-    "    15 15  6  0  5  3 ;\n",
-    "    15  2 15  5  0  4 ;\n",
-    "    3  15 15  3  4  0\n",
-    "]"
+    "columnGeneration(W)\n",
+    "columnGeneration(W2)\n",
+    "display(hk(W))\n",
+    "display(hk(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Held and Karp algorithm - attempt 2\n",
+    "\n",
+    "Here we will work on the same Master Problem as seen in \"STSP using column generation\".  \n",
+    "However the subsidiary problem will be solved using the algorithm presented by Held and Karp in the section 4 \"An ascent method\" of their paper (which correspond to the one J.E. Mitchell presents in his slides)."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 117,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "OPTIMAL\n",
-      "obj 104.00000000000001\n",
-      "Y [0.20000000000000004, 0.20000000000000004, 0.2, 0.19999999999999998, 0.2]\n",
-      "θ -104.0\n",
-      "Ï€ [-0.780487804878029, -4.341463414634163, -5.85365853658539, -2.195121951219477]\n",
-      "cr 188.5365853658535\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "6×6 Array{Float64,2}:\n",
-       " 0.0  0.4  0.4  0.4  0.4  0.4\n",
-       " 0.4  0.0  0.4  0.4  0.4  0.4\n",
-       " 0.4  0.4  0.0  0.4  0.4  0.4\n",
-       " 0.4  0.4  0.4  0.0  0.4  0.4\n",
-       " 0.4  0.4  0.4  0.4  0.0  0.4\n",
-       " 0.4  0.4  0.4  0.4  0.4  0.0"
-      ]
-     },
-     "execution_count": 117,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
    "source": [
-    "columnGeneration(W)"
+    "function held_and_karp_algo()\n",
+    "    \n",
+    "end"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 118,
+   "execution_count": null,
    "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "OPTIMAL\n",
-      "obj 113.99999999999997\n",
-      "Y [0.16666666666666666, 0.16666666666666663, 0.16666666666666666, 0.16666666666666666, 0.16666666666666666, 0.16666666666666663]\n",
-      "θ -113.99999999999999\n",
-      "Ï€ [-5.760368663594462, -6.958525345622108, -0.9677419354838632, -0.9216589861751061, -1.1520737327188897]\n",
-      "cr 161.44700460829478\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "7×7 Array{Float64,2}:\n",
-       " 0.0       0.333333  0.333333  0.333333  0.333333  0.333333  0.333333\n",
-       " 0.333333  0.0       0.333333  0.333333  0.333333  0.333333  0.333333\n",
-       " 0.333333  0.333333  0.0       0.333333  0.333333  0.333333  0.333333\n",
-       " 0.333333  0.333333  0.333333  0.0       0.333333  0.333333  0.333333\n",
-       " 0.333333  0.333333  0.333333  0.333333  0.0       0.333333  0.333333\n",
-       " 0.333333  0.333333  0.333333  0.333333  0.333333  0.0       0.333333\n",
-       " 0.333333  0.333333  0.333333  0.333333  0.333333  0.333333  0.0"
-      ]
-     },
-     "execution_count": 118,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
+   "outputs": [],
+   "source": [
+    "function update_rule!(λ, D, ρ)\n",
+    "    λ .= λ .+ ρ .* (2 .- D)\n",
+    "end\n",
+    "\n",
+    "update_rule_1!(λ, D) = update_rule!(λ, D, 1)\n",
+    "update_rule_2!(λ, D) = update_rule!(λ, D, 2)\n",
+    "update_rule_3!(λ, D) = update_rule!(λ, D, 3)\n",
+    "update_rule_05!(λ, D) = update_rule!(λ, D, 0.5)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "function held_and_karp_2(W)\n",
+    "    n = size(W, 1)\n",
+    "    one_trees_init = wheel_like_1trees(n)\n",
+    "    \n",
+    "    columns = one_trees_init[1:n-2]\n",
+    "    tree_degrees = [sum(columns[t][u,:]) for u ∈ 1:n, t ∈ 1:n-2]\n",
+    "    tree_weights = [dot(columns[t], W) for t ∈ 1:n-2]\n",
+    "    \n",
+    "    reduced_cost = -1\n",
+    "    new_column = one_trees_init[n-1]\n",
+    "    new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n",
+    "    new_weight = dot(new_column, W)\n",
+    "    \n",
+    "    while reduced_cost < 0\n",
+    "        \n",
+    "        push!(columns, new_column)\n",
+    "        tree_degrees = hcat(tree_degrees, new_degree)\n",
+    "        push!(tree_weights, new_weights)\n",
+    "        \n",
+    "        dm = DM(tree_weights, tree_degrees)\n",
+    "        π = value.(dm[:π])\n",
+    "        μ = value.(dm[:μ])\n",
+    "        \n",
+    "        new_column = held_and_karp_algo(W, , , update_rule_2!)\n",
+    "        new_degree = [sum(new_column[u,:]) for u ∈ 1:n]\n",
+    "        new_weight = dot(new_column, W)\n",
+    "        \n",
+    "        reduced_cost = new_weight - dot(π, new_degree) - μ\n",
+    "    end\n",
+    "    \n",
+    "    lpm = LPM(tree_weights, tree_degrees)\n",
+    "    # ipm = IPM(tree_weights, tree_degrees)\n",
+    "    \n",
+    "    λ = value.(lpm[:λ])\n",
+    "    println(\"Lambda_t : \", λ)\n",
+    "    println(\"Minimal 1-tree \")\n",
+    "    println(\"Lambda : \", maximum(λ))\n",
+    "    println(\"Index : \", argmax(λ))\n",
+    "    println(\"1-tree : \", columns[argmax(λ)])\n",
+    "    \n",
+    "    return columns[argmax(λ)] \n",
+    "end"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display(held_and_karp_2(W))\n",
+    "display(held_and_karp_2(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## The Held and Karp algorithm - dynamical programming\n",
+    "\n",
+    "Whilst column generation based techniques work well on wide graphs, on smaller ones we may want to use a different method.\n",
+    "\n",
+    "Here we use dynamical programming to implement the Bellman-Held-Karp algorithm.  \n",
+    "It works well on small graph, but scales terribly because of its exponential complexity $O(2^n n^2)$ in time (and $O(2^n n)$ in space)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
    "source": [
-    "columnGeneration(W2)"
+    "function bellman_held_karp()\n",
+    "    \n",
+    "end"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 99,
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "display(bellman_held_karp(W))\n",
+    "display(bellman_held_karp(W2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
    "metadata": {
-    "collapsed": true,
     "jupyter": {
-     "outputs_hidden": true
+     "source_hidden": true
     },
     "tags": []
    },
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 3.0, 2.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 2.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 4.0, 3.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 4.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 4.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 4.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 2.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 4.0, 1.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 3.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 3.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 3.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 4.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 4.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 2.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 2.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 4.0, 1.0, 3.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 2.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 3.0, 3.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 3.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 2.0, 4.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 3.0, 1.0, 1.0, 4.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 2.0, 5.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 2.0, 1.0, 1.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 5.0, 1.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 3.0, 1.0, 1.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 3.0, 4.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 3.0, 4.0, 1.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 5.0, 2.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 5.0, 1.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 3.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 2.0, 1.0]\n",
-      "[2.0, 1.0, 5.0, 1.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 4.0, 1.0, 1.0, 3.0]\n",
-      "[2.0, 1.0, 2.0, 1.0, 1.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 2.0, 5.0]\n",
-      "[2.0, 1.0, 1.0, 1.0, 3.0, 4.0]\n",
-      "[2.0, 1.0, 1.0, 2.0, 3.0, 3.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 1.0, 2.0]\n",
-      "[2.0, 1.0, 1.0, 5.0, 2.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "[2.0, 2.0, 1.0, 5.0, 1.0, 1.0]\n",
-      "["
-     ]
-    },
-    {
-     "ename": "InterruptException",
-     "evalue": "InterruptException:",
-     "output_type": "error",
-     "traceback": [
-      "InterruptException:",
-      "",
-      "Stacktrace:",
-      " [1] try_yieldto(::typeof(Base.ensure_rescheduled), ::Base.RefValue{Task}) at .\\task.jl:654",
-      " [2] wait at .\\task.jl:710 [inlined]",
-      " [3] uv_write(::Base.PipeEndpoint, ::Ptr{UInt8}, ::UInt64) at .\\stream.jl:935",
-      " [4] unsafe_write(::Base.PipeEndpoint, ::Ptr{UInt8}, ::UInt64) at .\\stream.jl:1007",
-      " [5] unsafe_write at .\\io.jl:593 [inlined]",
-      " [6] unsafe_write(::Base.PipeEndpoint, ::Base.RefValue{UInt8}, ::Int64) at .\\io.jl:591",
-      " [7] write at .\\io.jl:594 [inlined]",
-      " [8] write(::Base.PipeEndpoint, ::UInt8) at .\\stream.jl:1045",
-      " [9] write at .\\io.jl:309 [inlined]",
-      " [10] write at .\\io.jl:647 [inlined]",
-      " [11] print at .\\char.jl:229 [inlined]",
-      " [12] show_delim_array(::IOContext{Base.PipeEndpoint}, ::Array{Float64,1}, ::Char, ::String, ::Char, ::Bool, ::Int64, ::Int64) at .\\show.jl:705 (repeats 2 times)",
-      " [13] show_vector(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}, ::Char, ::Char) at .\\arrayshow.jl:458",
-      " [14] show_vector at .\\arrayshow.jl:447 [inlined]",
-      " [15] show at .\\arrayshow.jl:420 [inlined]",
-      " [16] print(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}) at .\\strings\\io.jl:35",
-      " [17] print(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}, ::Char) at .\\strings\\io.jl:46",
-      " [18] println(::IJulia.IJuliaStdio{Base.PipeEndpoint}, ::Array{Float64,1}) at .\\strings\\io.jl:73",
-      " [19] println(::Array{Float64,1}) at .\\coreio.jl:4",
-      " [20] hk2(::Array{Int64,2}) at .\\In[98]:76",
-      " [21] top-level scope at In[99]:1"
-     ]
-    }
-   ],
    "source": [
-    "S = hk2(W)"
+    "## Column-generation technique\n",
+    "\n",
+    "The master problem is the following\n",
+    "\n",
+    "$$ \\min \\sum_k c_k y_k \\ ; \\quad y_k \\geq 0 \\ , \\quad \\sum_k y_k = 1 \\ , \\quad \\sum -v_{ik} y_k = 0 \\quad \\forall i \\in {2, \\ldots, n-1}$$\n",
+    "\n",
+    "The subproblem is the following\n",
+    "\n",
+    "$$ K(\\pi) = \\left\\{k \\ |\\ w(\\pi) = c_k + \\sum_{i=1}^n \\pi_n v_{ik} \\right\\} $$"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 90,
-   "metadata": {},
+   "execution_count": 3,
+   "metadata": {
+    "collapsed": true,
+    "jupyter": {
+     "outputs_hidden": true,
+     "source_hidden": true
+    },
+    "tags": []
+   },
    "outputs": [
     {
      "data": {
-      "image/svg+xml": [
-       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
-       "<svg xmlns=\"http://www.w3.org/2000/svg\"\n",
-       "     xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
-       "     version=\"1.2\"\n",
-       "     width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n",
-       "     stroke=\"none\"\n",
-       "     fill=\"#000000\"\n",
-       "     stroke-width=\"0.3\"\n",
-       "     font-size=\"3.88\"\n",
-       ">\n",
-       "<defs>\n",
-       "  <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n",
-       "    <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n",
-       "  </marker>\n",
-       "</defs>\n",
-       "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-6ef82605-1\">\n",
-       "  <g transform=\"translate(126.9,53.21)\">\n",
-       "    <path fill=\"none\" d=\"M2.17,-16.45 L-2.17,16.45 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(102.54,20.43)\">\n",
-       "    <path fill=\"none\" d=\"M22.01,9.83 L-22.01,-9.83 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(95.06,82.78)\">\n",
-       "    <path fill=\"none\" d=\"M-23.59,7.2 L23.59,-7.2 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(38.87,79.62)\">\n",
-       "    <path fill=\"none\" d=\"M22,9.79 L-22,-9.79 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(14.64,47)\">\n",
-       "    <path fill=\"none\" d=\"M2.26,-16.33 L-2.26,16.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(46.47,17.39)\">\n",
-       "    <path fill=\"none\" d=\"M-23.48,7.33 L23.48,-7.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-6ef82605-2\">\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6ef82605-3\">\n",
-       "</g>\n",
-       "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-6ef82605-4\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-6ef82605-5\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "</g>\n",
-       "</svg>\n"
-      ],
-      "text/html": [
-       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
-       "<svg xmlns=\"http://www.w3.org/2000/svg\"\n",
-       "     xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
-       "     version=\"1.2\"\n",
-       "     width=\"141.42mm\" height=\"100mm\" viewBox=\"0 0 141.42 100\"\n",
-       "     stroke=\"none\"\n",
-       "     fill=\"#000000\"\n",
-       "     stroke-width=\"0.3\"\n",
-       "     font-size=\"3.88\"\n",
-       "\n",
-       "     id=\"img-b41e9ce3\">\n",
-       "<defs>\n",
-       "  <marker id=\"arrow\" markerWidth=\"15\" markerHeight=\"7\" refX=\"5\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n",
-       "    <path d=\"M0,0 L15,3.5 L0,7 z\" stroke=\"context-stroke\" fill=\"context-stroke\"/>\n",
-       "  </marker>\n",
-       "</defs>\n",
-       "<g stroke-width=\"1.22\" fill=\"#000000\" fill-opacity=\"0.000\" stroke=\"#D3D3D3\" id=\"img-b41e9ce3-1\">\n",
-       "  <g transform=\"translate(126.9,53.21)\">\n",
-       "    <path fill=\"none\" d=\"M2.17,-16.45 L-2.17,16.45 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(102.54,20.43)\">\n",
-       "    <path fill=\"none\" d=\"M22.01,9.83 L-22.01,-9.83 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(95.06,82.78)\">\n",
-       "    <path fill=\"none\" d=\"M-23.59,7.2 L23.59,-7.2 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(38.87,79.62)\">\n",
-       "    <path fill=\"none\" d=\"M22,9.79 L-22,-9.79 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(14.64,47)\">\n",
-       "    <path fill=\"none\" d=\"M2.26,-16.33 L-2.26,16.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(46.47,17.39)\">\n",
-       "    <path fill=\"none\" d=\"M-23.48,7.33 L23.48,-7.33 \" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g stroke-width=\"1.22\" stroke=\"#D3D3D3\" id=\"img-b41e9ce3-2\">\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-b41e9ce3-3\">\n",
-       "</g>\n",
-       "<g stroke-width=\"0\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#40E0D0\" id=\"img-b41e9ce3-4\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <circle cx=\"0\" cy=\"0\" r=\"5.77\" class=\"primitive\"/>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<g font-size=\"4\" stroke=\"#000000\" stroke-opacity=\"0.000\" fill=\"#000000\" id=\"img-b41e9ce3-5\">\n",
-       "  <g transform=\"translate(129.64,32.53)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">1</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(65.96,91.67)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">2</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(124.17,73.89)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">3</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(17.49,26.44)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">4</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(11.79,67.56)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">5</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "  <g transform=\"translate(75.45,8.33)\">\n",
-       "    <g class=\"primitive\">\n",
-       "      <text text-anchor=\"middle\" dy=\"0.35em\">6</text>\n",
-       "    </g>\n",
-       "  </g>\n",
-       "</g>\n",
-       "<script> <![CDATA[\n",
-       "(function(N){var k=/[\\.\\/]/,L=/\\s*,\\s*/,C=function(a,d){return a-d},a,v,y={n:{}},M=function(){for(var a=0,d=this.length;a<d;a++)if(\"undefined\"!=typeof this[a])return this[a]},A=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},w=function(k,d){k=String(k);var f=v,n=Array.prototype.slice.call(arguments,2),u=w.listeners(k),p=0,b,q=[],e={},l=[],r=a;l.firstDefined=M;l.lastDefined=A;a=k;for(var s=v=0,x=u.length;s<x;s++)\"zIndex\"in u[s]&&(q.push(u[s].zIndex),0>u[s].zIndex&&\n",
-       "(e[u[s].zIndex]=u[s]));for(q.sort(C);0>q[p];)if(b=e[q[p++] ],l.push(b.apply(d,n)),v)return v=f,l;for(s=0;s<x;s++)if(b=u[s],\"zIndex\"in b)if(b.zIndex==q[p]){l.push(b.apply(d,n));if(v)break;do if(p++,(b=e[q[p] ])&&l.push(b.apply(d,n)),v)break;while(b)}else e[b.zIndex]=b;else if(l.push(b.apply(d,n)),v)break;v=f;a=r;return l};w._events=y;w.listeners=function(a){a=a.split(k);var d=y,f,n,u,p,b,q,e,l=[d],r=[];u=0;for(p=a.length;u<p;u++){e=[];b=0;for(q=l.length;b<q;b++)for(d=l[b].n,f=[d[a[u] ],d[\"*\"] ],n=2;n--;)if(d=\n",
-       "f[n])e.push(d),r=r.concat(d.f||[]);l=e}return r};w.on=function(a,d){a=String(a);if(\"function\"!=typeof d)return function(){};for(var f=a.split(L),n=0,u=f.length;n<u;n++)(function(a){a=a.split(k);for(var b=y,f,e=0,l=a.length;e<l;e++)b=b.n,b=b.hasOwnProperty(a[e])&&b[a[e] ]||(b[a[e] ]={n:{}});b.f=b.f||[];e=0;for(l=b.f.length;e<l;e++)if(b.f[e]==d){f=!0;break}!f&&b.f.push(d)})(f[n]);return function(a){+a==+a&&(d.zIndex=+a)}};w.f=function(a){var d=[].slice.call(arguments,1);return function(){w.apply(null,\n",
-       "[a,null].concat(d).concat([].slice.call(arguments,0)))}};w.stop=function(){v=1};w.nt=function(k){return k?(new RegExp(\"(?:\\\\.|\\\\/|^)\"+k+\"(?:\\\\.|\\\\/|$)\")).test(a):a};w.nts=function(){return a.split(k)};w.off=w.unbind=function(a,d){if(a){var f=a.split(L);if(1<f.length)for(var n=0,u=f.length;n<u;n++)w.off(f[n],d);else{for(var f=a.split(k),p,b,q,e,l=[y],n=0,u=f.length;n<u;n++)for(e=0;e<l.length;e+=q.length-2){q=[e,1];p=l[e].n;if(\"*\"!=f[n])p[f[n] ]&&q.push(p[f[n] ]);else for(b in p)p.hasOwnProperty(b)&&\n",
-       "q.push(p[b]);l.splice.apply(l,q)}n=0;for(u=l.length;n<u;n++)for(p=l[n];p.n;){if(d){if(p.f){e=0;for(f=p.f.length;e<f;e++)if(p.f[e]==d){p.f.splice(e,1);break}!p.f.length&&delete p.f}for(b in p.n)if(p.n.hasOwnProperty(b)&&p.n[b].f){q=p.n[b].f;e=0;for(f=q.length;e<f;e++)if(q[e]==d){q.splice(e,1);break}!q.length&&delete p.n[b].f}}else for(b in delete p.f,p.n)p.n.hasOwnProperty(b)&&p.n[b].f&&delete p.n[b].f;p=p.n}}}else w._events=y={n:{}}};w.once=function(a,d){var f=function(){w.unbind(a,f);return d.apply(this,\n",
-       "arguments)};return w.on(a,f)};w.version=\"0.4.2\";w.toString=function(){return\"You are running Eve 0.4.2\"};\"undefined\"!=typeof module&&module.exports?module.exports=w:\"function\"===typeof define&&define.amd?define(\"eve\",[],function(){return w}):N.eve=w})(this);\n",
-       "(function(N,k){\"function\"===typeof define&&define.amd?define(\"Snap.svg\",[\"eve\"],function(L){return k(N,L)}):k(N,N.eve)})(this,function(N,k){var L=function(a){var k={},y=N.requestAnimationFrame||N.webkitRequestAnimationFrame||N.mozRequestAnimationFrame||N.oRequestAnimationFrame||N.msRequestAnimationFrame||function(a){setTimeout(a,16)},M=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},A=0,w=\"M\"+(+new Date).toString(36),z=function(a){if(null==\n",
-       "a)return this.s;var b=this.s-a;this.b+=this.dur*b;this.B+=this.dur*b;this.s=a},d=function(a){if(null==a)return this.spd;this.spd=a},f=function(a){if(null==a)return this.dur;this.s=this.s*a/this.dur;this.dur=a},n=function(){delete k[this.id];this.update();a(\"mina.stop.\"+this.id,this)},u=function(){this.pdif||(delete k[this.id],this.update(),this.pdif=this.get()-this.b)},p=function(){this.pdif&&(this.b=this.get()-this.pdif,delete this.pdif,k[this.id]=this)},b=function(){var a;if(M(this.start)){a=[];\n",
-       "for(var b=0,e=this.start.length;b<e;b++)a[b]=+this.start[b]+(this.end[b]-this.start[b])*this.easing(this.s)}else a=+this.start+(this.end-this.start)*this.easing(this.s);this.set(a)},q=function(){var l=0,b;for(b in k)if(k.hasOwnProperty(b)){var e=k[b],f=e.get();l++;e.s=(f-e.b)/(e.dur/e.spd);1<=e.s&&(delete k[b],e.s=1,l--,function(b){setTimeout(function(){a(\"mina.finish.\"+b.id,b)})}(e));e.update()}l&&y(q)},e=function(a,r,s,x,G,h,J){a={id:w+(A++).toString(36),start:a,end:r,b:s,s:0,dur:x-s,spd:1,get:G,\n",
-       "set:h,easing:J||e.linear,status:z,speed:d,duration:f,stop:n,pause:u,resume:p,update:b};k[a.id]=a;r=0;for(var K in k)if(k.hasOwnProperty(K)&&(r++,2==r))break;1==r&&y(q);return a};e.time=Date.now||function(){return+new Date};e.getById=function(a){return k[a]||null};e.linear=function(a){return a};e.easeout=function(a){return Math.pow(a,1.7)};e.easein=function(a){return Math.pow(a,0.48)};e.easeinout=function(a){if(1==a)return 1;if(0==a)return 0;var b=0.48-a/1.04,e=Math.sqrt(0.1734+b*b);a=e-b;a=Math.pow(Math.abs(a),\n",
-       "1/3)*(0>a?-1:1);b=-e-b;b=Math.pow(Math.abs(b),1/3)*(0>b?-1:1);a=a+b+0.5;return 3*(1-a)*a*a+a*a*a};e.backin=function(a){return 1==a?1:a*a*(2.70158*a-1.70158)};e.backout=function(a){if(0==a)return 0;a-=1;return a*a*(2.70158*a+1.70158)+1};e.elastic=function(a){return a==!!a?a:Math.pow(2,-10*a)*Math.sin(2*(a-0.075)*Math.PI/0.3)+1};e.bounce=function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a};\n",
-       "return N.mina=e}(\"undefined\"==typeof k?function(){}:k),C=function(){function a(c,t){if(c){if(c.tagName)return x(c);if(y(c,\"array\")&&a.set)return a.set.apply(a,c);if(c instanceof e)return c;if(null==t)return c=G.doc.querySelector(c),x(c)}return new s(null==c?\"100%\":c,null==t?\"100%\":t)}function v(c,a){if(a){\"#text\"==c&&(c=G.doc.createTextNode(a.text||\"\"));\"string\"==typeof c&&(c=v(c));if(\"string\"==typeof a)return\"xlink:\"==a.substring(0,6)?c.getAttributeNS(m,a.substring(6)):\"xml:\"==a.substring(0,4)?c.getAttributeNS(la,\n",
-       "a.substring(4)):c.getAttribute(a);for(var da in a)if(a[h](da)){var b=J(a[da]);b?\"xlink:\"==da.substring(0,6)?c.setAttributeNS(m,da.substring(6),b):\"xml:\"==da.substring(0,4)?c.setAttributeNS(la,da.substring(4),b):c.setAttribute(da,b):c.removeAttribute(da)}}else c=G.doc.createElementNS(la,c);return c}function y(c,a){a=J.prototype.toLowerCase.call(a);return\"finite\"==a?isFinite(c):\"array\"==a&&(c instanceof Array||Array.isArray&&Array.isArray(c))?!0:\"null\"==a&&null===c||a==typeof c&&null!==c||\"object\"==\n",
-       "a&&c===Object(c)||$.call(c).slice(8,-1).toLowerCase()==a}function M(c){if(\"function\"==typeof c||Object(c)!==c)return c;var a=new c.constructor,b;for(b in c)c[h](b)&&(a[b]=M(c[b]));return a}function A(c,a,b){function m(){var e=Array.prototype.slice.call(arguments,0),f=e.join(\"\\u2400\"),d=m.cache=m.cache||{},l=m.count=m.count||[];if(d[h](f)){a:for(var e=l,l=f,B=0,H=e.length;B<H;B++)if(e[B]===l){e.push(e.splice(B,1)[0]);break a}return b?b(d[f]):d[f]}1E3<=l.length&&delete d[l.shift()];l.push(f);d[f]=c.apply(a,\n",
-       "e);return b?b(d[f]):d[f]}return m}function w(c,a,b,m,e,f){return null==e?(c-=b,a-=m,c||a?(180*I.atan2(-a,-c)/C+540)%360:0):w(c,a,e,f)-w(b,m,e,f)}function z(c){return c%360*C/180}function d(c){var a=[];c=c.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g,function(c,b,m){m=m.split(/\\s*,\\s*|\\s+/);\"rotate\"==b&&1==m.length&&m.push(0,0);\"scale\"==b&&(2<m.length?m=m.slice(0,2):2==m.length&&m.push(0,0),1==m.length&&m.push(m[0],0,0));\"skewX\"==b?a.push([\"m\",1,0,I.tan(z(m[0])),1,0,0]):\"skewY\"==b?a.push([\"m\",1,I.tan(z(m[0])),\n",
-       "0,1,0,0]):a.push([b.charAt(0)].concat(m));return c});return a}function f(c,t){var b=O(c),m=new a.Matrix;if(b)for(var e=0,f=b.length;e<f;e++){var h=b[e],d=h.length,B=J(h[0]).toLowerCase(),H=h[0]!=B,l=H?m.invert():0,E;\"t\"==B&&2==d?m.translate(h[1],0):\"t\"==B&&3==d?H?(d=l.x(0,0),B=l.y(0,0),H=l.x(h[1],h[2]),l=l.y(h[1],h[2]),m.translate(H-d,l-B)):m.translate(h[1],h[2]):\"r\"==B?2==d?(E=E||t,m.rotate(h[1],E.x+E.width/2,E.y+E.height/2)):4==d&&(H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.rotate(h[1],H,l)):m.rotate(h[1],\n",
-       "h[2],h[3])):\"s\"==B?2==d||3==d?(E=E||t,m.scale(h[1],h[d-1],E.x+E.width/2,E.y+E.height/2)):4==d?H?(H=l.x(h[2],h[3]),l=l.y(h[2],h[3]),m.scale(h[1],h[1],H,l)):m.scale(h[1],h[1],h[2],h[3]):5==d&&(H?(H=l.x(h[3],h[4]),l=l.y(h[3],h[4]),m.scale(h[1],h[2],H,l)):m.scale(h[1],h[2],h[3],h[4])):\"m\"==B&&7==d&&m.add(h[1],h[2],h[3],h[4],h[5],h[6])}return m}function n(c,t){if(null==t){var m=!0;t=\"linearGradient\"==c.type||\"radialGradient\"==c.type?c.node.getAttribute(\"gradientTransform\"):\"pattern\"==c.type?c.node.getAttribute(\"patternTransform\"):\n",
-       "c.node.getAttribute(\"transform\");if(!t)return new a.Matrix;t=d(t)}else t=a._.rgTransform.test(t)?J(t).replace(/\\.{3}|\\u2026/g,c._.transform||aa):d(t),y(t,\"array\")&&(t=a.path?a.path.toString.call(t):J(t)),c._.transform=t;var b=f(t,c.getBBox(1));if(m)return b;c.matrix=b}function u(c){c=c.node.ownerSVGElement&&x(c.node.ownerSVGElement)||c.node.parentNode&&x(c.node.parentNode)||a.select(\"svg\")||a(0,0);var t=c.select(\"defs\"),t=null==t?!1:t.node;t||(t=r(\"defs\",c.node).node);return t}function p(c){return c.node.ownerSVGElement&&\n",
-       "x(c.node.ownerSVGElement)||a.select(\"svg\")}function b(c,a,m){function b(c){if(null==c)return aa;if(c==+c)return c;v(B,{width:c});try{return B.getBBox().width}catch(a){return 0}}function h(c){if(null==c)return aa;if(c==+c)return c;v(B,{height:c});try{return B.getBBox().height}catch(a){return 0}}function e(b,B){null==a?d[b]=B(c.attr(b)||0):b==a&&(d=B(null==m?c.attr(b)||0:m))}var f=p(c).node,d={},B=f.querySelector(\".svg---mgr\");B||(B=v(\"rect\"),v(B,{x:-9E9,y:-9E9,width:10,height:10,\"class\":\"svg---mgr\",\n",
-       "fill:\"none\"}),f.appendChild(B));switch(c.type){case \"rect\":e(\"rx\",b),e(\"ry\",h);case \"image\":e(\"width\",b),e(\"height\",h);case \"text\":e(\"x\",b);e(\"y\",h);break;case \"circle\":e(\"cx\",b);e(\"cy\",h);e(\"r\",b);break;case \"ellipse\":e(\"cx\",b);e(\"cy\",h);e(\"rx\",b);e(\"ry\",h);break;case \"line\":e(\"x1\",b);e(\"x2\",b);e(\"y1\",h);e(\"y2\",h);break;case \"marker\":e(\"refX\",b);e(\"markerWidth\",b);e(\"refY\",h);e(\"markerHeight\",h);break;case \"radialGradient\":e(\"fx\",b);e(\"fy\",h);break;case \"tspan\":e(\"dx\",b);e(\"dy\",h);break;default:e(a,\n",
-       "b)}f.removeChild(B);return d}function q(c){y(c,\"array\")||(c=Array.prototype.slice.call(arguments,0));for(var a=0,b=0,m=this.node;this[a];)delete this[a++];for(a=0;a<c.length;a++)\"set\"==c[a].type?c[a].forEach(function(c){m.appendChild(c.node)}):m.appendChild(c[a].node);for(var h=m.childNodes,a=0;a<h.length;a++)this[b++]=x(h[a]);return this}function e(c){if(c.snap in E)return E[c.snap];var a=this.id=V(),b;try{b=c.ownerSVGElement}catch(m){}this.node=c;b&&(this.paper=new s(b));this.type=c.tagName;this.anims=\n",
-       "{};this._={transform:[]};c.snap=a;E[a]=this;\"g\"==this.type&&(this.add=q);if(this.type in{g:1,mask:1,pattern:1})for(var e in s.prototype)s.prototype[h](e)&&(this[e]=s.prototype[e])}function l(c){this.node=c}function r(c,a){var b=v(c);a.appendChild(b);return x(b)}function s(c,a){var b,m,f,d=s.prototype;if(c&&\"svg\"==c.tagName){if(c.snap in E)return E[c.snap];var l=c.ownerDocument;b=new e(c);m=c.getElementsByTagName(\"desc\")[0];f=c.getElementsByTagName(\"defs\")[0];m||(m=v(\"desc\"),m.appendChild(l.createTextNode(\"Created with Snap\")),\n",
-       "b.node.appendChild(m));f||(f=v(\"defs\"),b.node.appendChild(f));b.defs=f;for(var ca in d)d[h](ca)&&(b[ca]=d[ca]);b.paper=b.root=b}else b=r(\"svg\",G.doc.body),v(b.node,{height:a,version:1.1,width:c,xmlns:la});return b}function x(c){return!c||c instanceof e||c instanceof l?c:c.tagName&&\"svg\"==c.tagName.toLowerCase()?new s(c):c.tagName&&\"object\"==c.tagName.toLowerCase()&&\"image/svg+xml\"==c.type?new s(c.contentDocument.getElementsByTagName(\"svg\")[0]):new e(c)}a.version=\"0.3.0\";a.toString=function(){return\"Snap v\"+\n",
-       "this.version};a._={};var G={win:N,doc:N.document};a._.glob=G;var h=\"hasOwnProperty\",J=String,K=parseFloat,U=parseInt,I=Math,P=I.max,Q=I.min,Y=I.abs,C=I.PI,aa=\"\",$=Object.prototype.toString,F=/^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i;a._.separator=\n",
-       "RegExp(\"[,\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]+\");var S=RegExp(\"[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\"),X={hs:1,rg:1},W=RegExp(\"([a-z])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\n",
-       "\"ig\"),ma=RegExp(\"([rstm])[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)\",\"ig\"),Z=RegExp(\"(-?\\\\d*\\\\.?\\\\d*(?:e[\\\\-+]?\\\\d+)?)[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*\",\n",
-       "\"ig\"),na=0,ba=\"S\"+(+new Date).toString(36),V=function(){return ba+(na++).toString(36)},m=\"http://www.w3.org/1999/xlink\",la=\"http://www.w3.org/2000/svg\",E={},ca=a.url=function(c){return\"url('#\"+c+\"')\"};a._.$=v;a._.id=V;a.format=function(){var c=/\\{([^\\}]+)\\}/g,a=/(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g,b=function(c,b,m){var h=m;b.replace(a,function(c,a,b,m,t){a=a||m;h&&(a in h&&(h=h[a]),\"function\"==typeof h&&t&&(h=h()))});return h=(null==h||h==m?c:h)+\"\"};return function(a,m){return J(a).replace(c,\n",
-       "function(c,a){return b(c,a,m)})}}();a._.clone=M;a._.cacher=A;a.rad=z;a.deg=function(c){return 180*c/C%360};a.angle=w;a.is=y;a.snapTo=function(c,a,b){b=y(b,\"finite\")?b:10;if(y(c,\"array\"))for(var m=c.length;m--;){if(Y(c[m]-a)<=b)return c[m]}else{c=+c;m=a%c;if(m<b)return a-m;if(m>c-b)return a-m+c}return a};a.getRGB=A(function(c){if(!c||(c=J(c)).indexOf(\"-\")+1)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};if(\"none\"==c)return{r:-1,g:-1,b:-1,hex:\"none\",toString:ka};!X[h](c.toLowerCase().substring(0,\n",
-       "2))&&\"#\"!=c.charAt()&&(c=T(c));if(!c)return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka};var b,m,e,f,d;if(c=c.match(F)){c[2]&&(e=U(c[2].substring(5),16),m=U(c[2].substring(3,5),16),b=U(c[2].substring(1,3),16));c[3]&&(e=U((d=c[3].charAt(3))+d,16),m=U((d=c[3].charAt(2))+d,16),b=U((d=c[3].charAt(1))+d,16));c[4]&&(d=c[4].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b*=2.55),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m*=2.55),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e*=2.55),\"rgba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),\n",
-       "d[3]&&\"%\"==d[3].slice(-1)&&(f/=100));if(c[5])return d=c[5].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsba\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsb2rgb(b,m,e,f);if(c[6])return d=c[6].split(S),b=K(d[0]),\"%\"==d[0].slice(-1)&&(b/=100),m=K(d[1]),\"%\"==d[1].slice(-1)&&(m/=100),e=K(d[2]),\"%\"==d[2].slice(-1)&&(e/=100),\n",
-       "\"deg\"!=d[0].slice(-3)&&\"\\u00b0\"!=d[0].slice(-1)||(b/=360),\"hsla\"==c[1].toLowerCase().slice(0,4)&&(f=K(d[3])),d[3]&&\"%\"==d[3].slice(-1)&&(f/=100),a.hsl2rgb(b,m,e,f);b=Q(I.round(b),255);m=Q(I.round(m),255);e=Q(I.round(e),255);f=Q(P(f,0),1);c={r:b,g:m,b:e,toString:ka};c.hex=\"#\"+(16777216|e|m<<8|b<<16).toString(16).slice(1);c.opacity=y(f,\"finite\")?f:1;return c}return{r:-1,g:-1,b:-1,hex:\"none\",error:1,toString:ka}},a);a.hsb=A(function(c,b,m){return a.hsb2rgb(c,b,m).hex});a.hsl=A(function(c,b,m){return a.hsl2rgb(c,\n",
-       "b,m).hex});a.rgb=A(function(c,a,b,m){if(y(m,\"finite\")){var e=I.round;return\"rgba(\"+[e(c),e(a),e(b),+m.toFixed(2)]+\")\"}return\"#\"+(16777216|b|a<<8|c<<16).toString(16).slice(1)});var T=function(c){var a=G.doc.getElementsByTagName(\"head\")[0]||G.doc.getElementsByTagName(\"svg\")[0];T=A(function(c){if(\"red\"==c.toLowerCase())return\"rgb(255, 0, 0)\";a.style.color=\"rgb(255, 0, 0)\";a.style.color=c;c=G.doc.defaultView.getComputedStyle(a,aa).getPropertyValue(\"color\");return\"rgb(255, 0, 0)\"==c?null:c});return T(c)},\n",
-       "qa=function(){return\"hsb(\"+[this.h,this.s,this.b]+\")\"},ra=function(){return\"hsl(\"+[this.h,this.s,this.l]+\")\"},ka=function(){return 1==this.opacity||null==this.opacity?this.hex:\"rgba(\"+[this.r,this.g,this.b,this.opacity]+\")\"},D=function(c,b,m){null==b&&y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&(m=c.b,b=c.g,c=c.r);null==b&&y(c,string)&&(m=a.getRGB(c),c=m.r,b=m.g,m=m.b);if(1<c||1<b||1<m)c/=255,b/=255,m/=255;return[c,b,m]},oa=function(c,b,m,e){c=I.round(255*c);b=I.round(255*b);m=I.round(255*m);c={r:c,\n",
-       "g:b,b:m,opacity:y(e,\"finite\")?e:1,hex:a.rgb(c,b,m),toString:ka};y(e,\"finite\")&&(c.opacity=e);return c};a.color=function(c){var b;y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c?(b=a.hsb2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c?(b=a.hsl2rgb(c),c.r=b.r,c.g=b.g,c.b=b.b,c.opacity=1,c.hex=b.hex):(y(c,\"string\")&&(c=a.getRGB(c)),y(c,\"object\")&&\"r\"in c&&\"g\"in c&&\"b\"in c&&!(\"error\"in c)?(b=a.rgb2hsl(c),c.h=b.h,c.s=b.s,c.l=b.l,b=a.rgb2hsb(c),c.v=b.b):(c={hex:\"none\"},\n",
-       "c.r=c.g=c.b=c.h=c.s=c.v=c.l=-1,c.error=1));c.toString=ka;return c};a.hsb2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"b\"in c&&(b=c.b,a=c.s,c=c.h,m=c.o);var e,h,d;c=360*c%360/60;d=b*a;a=d*(1-Y(c%2-1));b=e=h=b-d;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.hsl2rgb=function(c,a,b,m){y(c,\"object\")&&\"h\"in c&&\"s\"in c&&\"l\"in c&&(b=c.l,a=c.s,c=c.h);if(1<c||1<a||1<b)c/=360,a/=100,b/=100;var e,h,d;c=360*c%360/60;d=2*a*(0.5>b?b:1-b);a=d*(1-Y(c%2-1));b=e=\n",
-       "h=b-d/2;c=~~c;b+=[d,a,0,0,a,d][c];e+=[a,d,d,a,0,0][c];h+=[0,0,a,d,d,a][c];return oa(b,e,h,m)};a.rgb2hsb=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e;m=P(c,a,b);e=m-Q(c,a,b);c=((0==e?0:m==c?(a-b)/e:m==a?(b-c)/e+2:(c-a)/e+4)+360)%6*60/360;return{h:c,s:0==e?0:e/m,b:m,toString:qa}};a.rgb2hsl=function(c,a,b){b=D(c,a,b);c=b[0];a=b[1];b=b[2];var m,e,h;m=P(c,a,b);e=Q(c,a,b);h=m-e;c=((0==h?0:m==c?(a-b)/h:m==a?(b-c)/h+2:(c-a)/h+4)+360)%6*60/360;m=(m+e)/2;return{h:c,s:0==h?0:0.5>m?h/(2*m):h/(2-2*\n",
-       "m),l:m,toString:ra}};a.parsePathString=function(c){if(!c)return null;var b=a.path(c);if(b.arr)return a.path.clone(b.arr);var m={a:7,c:6,o:2,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,u:3,z:0},e=[];y(c,\"array\")&&y(c[0],\"array\")&&(e=a.path.clone(c));e.length||J(c).replace(W,function(c,a,b){var h=[];c=a.toLowerCase();b.replace(Z,function(c,a){a&&h.push(+a)});\"m\"==c&&2<h.length&&(e.push([a].concat(h.splice(0,2))),c=\"l\",a=\"m\"==a?\"l\":\"L\");\"o\"==c&&1==h.length&&e.push([a,h[0] ]);if(\"r\"==c)e.push([a].concat(h));else for(;h.length>=\n",
-       "m[c]&&(e.push([a].concat(h.splice(0,m[c]))),m[c]););});e.toString=a.path.toString;b.arr=a.path.clone(e);return e};var O=a.parseTransformString=function(c){if(!c)return null;var b=[];y(c,\"array\")&&y(c[0],\"array\")&&(b=a.path.clone(c));b.length||J(c).replace(ma,function(c,a,m){var e=[];a.toLowerCase();m.replace(Z,function(c,a){a&&e.push(+a)});b.push([a].concat(e))});b.toString=a.path.toString;return b};a._.svgTransform2string=d;a._.rgTransform=RegExp(\"^[a-z][\\t\\n\\x0B\\f\\r \\u00a0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*-?\\\\.?\\\\d\",\n",
-       "\"i\");a._.transform2matrix=f;a._unit2px=b;a._.getSomeDefs=u;a._.getSomeSVG=p;a.select=function(c){return x(G.doc.querySelector(c))};a.selectAll=function(c){c=G.doc.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};setInterval(function(){for(var c in E)if(E[h](c)){var a=E[c],b=a.node;(\"svg\"!=a.type&&!b.ownerSVGElement||\"svg\"==a.type&&(!b.parentNode||\"ownerSVGElement\"in b.parentNode&&!b.ownerSVGElement))&&delete E[c]}},1E4);(function(c){function m(c){function a(c,\n",
-       "b){var m=v(c.node,b);(m=(m=m&&m.match(d))&&m[2])&&\"#\"==m.charAt()&&(m=m.substring(1))&&(f[m]=(f[m]||[]).concat(function(a){var m={};m[b]=ca(a);v(c.node,m)}))}function b(c){var a=v(c.node,\"xlink:href\");a&&\"#\"==a.charAt()&&(a=a.substring(1))&&(f[a]=(f[a]||[]).concat(function(a){c.attr(\"xlink:href\",\"#\"+a)}))}var e=c.selectAll(\"*\"),h,d=/^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/;c=[];for(var f={},l=0,E=e.length;l<E;l++){h=e[l];a(h,\"fill\");a(h,\"stroke\");a(h,\"filter\");a(h,\"mask\");a(h,\"clip-path\");b(h);var t=v(h.node,\n",
-       "\"id\");t&&(v(h.node,{id:h.id}),c.push({old:t,id:h.id}))}l=0;for(E=c.length;l<E;l++)if(e=f[c[l].old])for(h=0,t=e.length;h<t;h++)e[h](c[l].id)}function e(c,a,b){return function(m){m=m.slice(c,a);1==m.length&&(m=m[0]);return b?b(m):m}}function d(c){return function(){var a=c?\"<\"+this.type:\"\",b=this.node.attributes,m=this.node.childNodes;if(c)for(var e=0,h=b.length;e<h;e++)a+=\" \"+b[e].name+'=\"'+b[e].value.replace(/\"/g,'\\\\\"')+'\"';if(m.length){c&&(a+=\">\");e=0;for(h=m.length;e<h;e++)3==m[e].nodeType?a+=m[e].nodeValue:\n",
-       "1==m[e].nodeType&&(a+=x(m[e]).toString());c&&(a+=\"</\"+this.type+\">\")}else c&&(a+=\"/>\");return a}}c.attr=function(c,a){if(!c)return this;if(y(c,\"string\"))if(1<arguments.length){var b={};b[c]=a;c=b}else return k(\"snap.util.getattr.\"+c,this).firstDefined();for(var m in c)c[h](m)&&k(\"snap.util.attr.\"+m,this,c[m]);return this};c.getBBox=function(c){if(!a.Matrix||!a.path)return this.node.getBBox();var b=this,m=new a.Matrix;if(b.removed)return a._.box();for(;\"use\"==b.type;)if(c||(m=m.add(b.transform().localMatrix.translate(b.attr(\"x\")||\n",
-       "0,b.attr(\"y\")||0))),b.original)b=b.original;else var e=b.attr(\"xlink:href\"),b=b.original=b.node.ownerDocument.getElementById(e.substring(e.indexOf(\"#\")+1));var e=b._,h=a.path.get[b.type]||a.path.get.deflt;try{if(c)return e.bboxwt=h?a.path.getBBox(b.realPath=h(b)):a._.box(b.node.getBBox()),a._.box(e.bboxwt);b.realPath=h(b);b.matrix=b.transform().localMatrix;e.bbox=a.path.getBBox(a.path.map(b.realPath,m.add(b.matrix)));return a._.box(e.bbox)}catch(d){return a._.box()}};var f=function(){return this.string};\n",
-       "c.transform=function(c){var b=this._;if(null==c){var m=this;c=new a.Matrix(this.node.getCTM());for(var e=n(this),h=[e],d=new a.Matrix,l=e.toTransformString(),b=J(e)==J(this.matrix)?J(b.transform):l;\"svg\"!=m.type&&(m=m.parent());)h.push(n(m));for(m=h.length;m--;)d.add(h[m]);return{string:b,globalMatrix:c,totalMatrix:d,localMatrix:e,diffMatrix:c.clone().add(e.invert()),global:c.toTransformString(),total:d.toTransformString(),local:l,toString:f}}c instanceof a.Matrix?this.matrix=c:n(this,c);this.node&&\n",
-       "(\"linearGradient\"==this.type||\"radialGradient\"==this.type?v(this.node,{gradientTransform:this.matrix}):\"pattern\"==this.type?v(this.node,{patternTransform:this.matrix}):v(this.node,{transform:this.matrix}));return this};c.parent=function(){return x(this.node.parentNode)};c.append=c.add=function(c){if(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){a.add(c)});return this}c=x(c);this.node.appendChild(c.node);c.paper=this.paper}return this};c.appendTo=function(c){c&&(c=x(c),c.append(this));return this};\n",
-       "c.prepend=function(c){if(c){if(\"set\"==c.type){var a=this,b;c.forEach(function(c){b?b.after(c):a.prepend(c);b=c});return this}c=x(c);var m=c.parent();this.node.insertBefore(c.node,this.node.firstChild);this.add&&this.add();c.paper=this.paper;this.parent()&&this.parent().add();m&&m.add()}return this};c.prependTo=function(c){c=x(c);c.prepend(this);return this};c.before=function(c){if(\"set\"==c.type){var a=this;c.forEach(function(c){var b=c.parent();a.node.parentNode.insertBefore(c.node,a.node);b&&b.add()});\n",
-       "this.parent().add();return this}c=x(c);var b=c.parent();this.node.parentNode.insertBefore(c.node,this.node);this.parent()&&this.parent().add();b&&b.add();c.paper=this.paper;return this};c.after=function(c){c=x(c);var a=c.parent();this.node.nextSibling?this.node.parentNode.insertBefore(c.node,this.node.nextSibling):this.node.parentNode.appendChild(c.node);this.parent()&&this.parent().add();a&&a.add();c.paper=this.paper;return this};c.insertBefore=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,\n",
-       "c.node);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.insertAfter=function(c){c=x(c);var a=this.parent();c.node.parentNode.insertBefore(this.node,c.node.nextSibling);this.paper=c.paper;a&&a.add();c.parent()&&c.parent().add();return this};c.remove=function(){var c=this.parent();this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.paper;this.removed=!0;c&&c.add();return this};c.select=function(c){return x(this.node.querySelector(c))};c.selectAll=\n",
-       "function(c){c=this.node.querySelectorAll(c);for(var b=(a.set||Array)(),m=0;m<c.length;m++)b.push(x(c[m]));return b};c.asPX=function(c,a){null==a&&(a=this.attr(c));return+b(this,c,a)};c.use=function(){var c,a=this.node.id;a||(a=this.id,v(this.node,{id:a}));c=\"linearGradient\"==this.type||\"radialGradient\"==this.type||\"pattern\"==this.type?r(this.type,this.node.parentNode):r(\"use\",this.node.parentNode);v(c.node,{\"xlink:href\":\"#\"+a});c.original=this;return c};var l=/\\S+/g;c.addClass=function(c){var a=(c||\n",
-       "\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h,d;if(a.length){for(e=0;d=a[e++];)h=m.indexOf(d),~h||m.push(d);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.removeClass=function(c){var a=(c||\"\").match(l)||[];c=this.node;var b=c.className.baseVal,m=b.match(l)||[],e,h;if(m.length){for(e=0;h=a[e++];)h=m.indexOf(h),~h&&m.splice(h,1);a=m.join(\" \");b!=a&&(c.className.baseVal=a)}return this};c.hasClass=function(c){return!!~(this.node.className.baseVal.match(l)||[]).indexOf(c)};\n",
-       "c.toggleClass=function(c,a){if(null!=a)return a?this.addClass(c):this.removeClass(c);var b=(c||\"\").match(l)||[],m=this.node,e=m.className.baseVal,h=e.match(l)||[],d,f,E;for(d=0;E=b[d++];)f=h.indexOf(E),~f?h.splice(f,1):h.push(E);b=h.join(\" \");e!=b&&(m.className.baseVal=b);return this};c.clone=function(){var c=x(this.node.cloneNode(!0));v(c.node,\"id\")&&v(c.node,{id:c.id});m(c);c.insertAfter(this);return c};c.toDefs=function(){u(this).appendChild(this.node);return this};c.pattern=c.toPattern=function(c,\n",
-       "a,b,m){var e=r(\"pattern\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,c=c.x);v(e.node,{x:c,y:a,width:b,height:m,patternUnits:\"userSpaceOnUse\",id:e.id,viewBox:[c,a,b,m].join(\" \")});e.node.appendChild(this.node);return e};c.marker=function(c,a,b,m,e,h){var d=r(\"marker\",u(this));null==c&&(c=this.getBBox());y(c,\"object\")&&\"x\"in c&&(a=c.y,b=c.width,m=c.height,e=c.refX||c.cx,h=c.refY||c.cy,c=c.x);v(d.node,{viewBox:[c,a,b,m].join(\" \"),markerWidth:b,markerHeight:m,\n",
-       "orient:\"auto\",refX:e||0,refY:h||0,id:d.id});d.node.appendChild(this.node);return d};var E=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);this.attr=c;this.dur=a;b&&(this.easing=b);m&&(this.callback=m)};a._.Animation=E;a.animation=function(c,a,b,m){return new E(c,a,b,m)};c.inAnim=function(){var c=[],a;for(a in this.anims)this.anims[h](a)&&function(a){c.push({anim:new E(a._attrs,a.dur,a.easing,a._callback),mina:a,curStatus:a.status(),status:function(c){return a.status(c)},stop:function(){a.stop()}})}(this.anims[a]);\n",
-       "return c};a.animate=function(c,a,b,m,e,h){\"function\"!=typeof e||e.length||(h=e,e=L.linear);var d=L.time();c=L(c,a,d,d+m,L.time,b,e);h&&k.once(\"mina.finish.\"+c.id,h);return c};c.stop=function(){for(var c=this.inAnim(),a=0,b=c.length;a<b;a++)c[a].stop();return this};c.animate=function(c,a,b,m){\"function\"!=typeof b||b.length||(m=b,b=L.linear);c instanceof E&&(m=c.callback,b=c.easing,a=b.dur,c=c.attr);var d=[],f=[],l={},t,ca,n,T=this,q;for(q in c)if(c[h](q)){T.equal?(n=T.equal(q,J(c[q])),t=n.from,ca=\n",
-       "n.to,n=n.f):(t=+T.attr(q),ca=+c[q]);var la=y(t,\"array\")?t.length:1;l[q]=e(d.length,d.length+la,n);d=d.concat(t);f=f.concat(ca)}t=L.time();var p=L(d,f,t,t+a,L.time,function(c){var a={},b;for(b in l)l[h](b)&&(a[b]=l[b](c));T.attr(a)},b);T.anims[p.id]=p;p._attrs=c;p._callback=m;k(\"snap.animcreated.\"+T.id,p);k.once(\"mina.finish.\"+p.id,function(){delete T.anims[p.id];m&&m.call(T)});k.once(\"mina.stop.\"+p.id,function(){delete T.anims[p.id]});return T};var T={};c.data=function(c,b){var m=T[this.id]=T[this.id]||\n",
-       "{};if(0==arguments.length)return k(\"snap.data.get.\"+this.id,this,m,null),m;if(1==arguments.length){if(a.is(c,\"object\")){for(var e in c)c[h](e)&&this.data(e,c[e]);return this}k(\"snap.data.get.\"+this.id,this,m[c],c);return m[c]}m[c]=b;k(\"snap.data.set.\"+this.id,this,b,c);return this};c.removeData=function(c){null==c?T[this.id]={}:T[this.id]&&delete T[this.id][c];return this};c.outerSVG=c.toString=d(1);c.innerSVG=d()})(e.prototype);a.parse=function(c){var a=G.doc.createDocumentFragment(),b=!0,m=G.doc.createElement(\"div\");\n",
-       "c=J(c);c.match(/^\\s*<\\s*svg(?:\\s|>)/)||(c=\"<svg>\"+c+\"</svg>\",b=!1);m.innerHTML=c;if(c=m.getElementsByTagName(\"svg\")[0])if(b)a=c;else for(;c.firstChild;)a.appendChild(c.firstChild);m.innerHTML=aa;return new l(a)};l.prototype.select=e.prototype.select;l.prototype.selectAll=e.prototype.selectAll;a.fragment=function(){for(var c=Array.prototype.slice.call(arguments,0),b=G.doc.createDocumentFragment(),m=0,e=c.length;m<e;m++){var h=c[m];h.node&&h.node.nodeType&&b.appendChild(h.node);h.nodeType&&b.appendChild(h);\n",
-       "\"string\"==typeof h&&b.appendChild(a.parse(h).node)}return new l(b)};a._.make=r;a._.wrap=x;s.prototype.el=function(c,a){var b=r(c,this.node);a&&b.attr(a);return b};k.on(\"snap.util.getattr\",function(){var c=k.nt(),c=c.substring(c.lastIndexOf(\".\")+1),a=c.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});return pa[h](a)?this.node.ownerDocument.defaultView.getComputedStyle(this.node,null).getPropertyValue(a):v(this.node,c)});var pa={\"alignment-baseline\":0,\"baseline-shift\":0,clip:0,\"clip-path\":0,\n",
-       "\"clip-rule\":0,color:0,\"color-interpolation\":0,\"color-interpolation-filters\":0,\"color-profile\":0,\"color-rendering\":0,cursor:0,direction:0,display:0,\"dominant-baseline\":0,\"enable-background\":0,fill:0,\"fill-opacity\":0,\"fill-rule\":0,filter:0,\"flood-color\":0,\"flood-opacity\":0,font:0,\"font-family\":0,\"font-size\":0,\"font-size-adjust\":0,\"font-stretch\":0,\"font-style\":0,\"font-variant\":0,\"font-weight\":0,\"glyph-orientation-horizontal\":0,\"glyph-orientation-vertical\":0,\"image-rendering\":0,kerning:0,\"letter-spacing\":0,\n",
-       "\"lighting-color\":0,marker:0,\"marker-end\":0,\"marker-mid\":0,\"marker-start\":0,mask:0,opacity:0,overflow:0,\"pointer-events\":0,\"shape-rendering\":0,\"stop-color\":0,\"stop-opacity\":0,stroke:0,\"stroke-dasharray\":0,\"stroke-dashoffset\":0,\"stroke-linecap\":0,\"stroke-linejoin\":0,\"stroke-miterlimit\":0,\"stroke-opacity\":0,\"stroke-width\":0,\"text-anchor\":0,\"text-decoration\":0,\"text-rendering\":0,\"unicode-bidi\":0,visibility:0,\"word-spacing\":0,\"writing-mode\":0};k.on(\"snap.util.attr\",function(c){var a=k.nt(),b={},a=a.substring(a.lastIndexOf(\".\")+\n",
-       "1);b[a]=c;var m=a.replace(/-(\\w)/gi,function(c,a){return a.toUpperCase()}),a=a.replace(/[A-Z]/g,function(c){return\"-\"+c.toLowerCase()});pa[h](a)?this.node.style[m]=null==c?aa:c:v(this.node,b)});a.ajax=function(c,a,b,m){var e=new XMLHttpRequest,h=V();if(e){if(y(a,\"function\"))m=b,b=a,a=null;else if(y(a,\"object\")){var d=[],f;for(f in a)a.hasOwnProperty(f)&&d.push(encodeURIComponent(f)+\"=\"+encodeURIComponent(a[f]));a=d.join(\"&\")}e.open(a?\"POST\":\"GET\",c,!0);a&&(e.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),\n",
-       "e.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"));b&&(k.once(\"snap.ajax.\"+h+\".0\",b),k.once(\"snap.ajax.\"+h+\".200\",b),k.once(\"snap.ajax.\"+h+\".304\",b));e.onreadystatechange=function(){4==e.readyState&&k(\"snap.ajax.\"+h+\".\"+e.status,m,e)};if(4==e.readyState)return e;e.send(a);return e}};a.load=function(c,b,m){a.ajax(c,function(c){c=a.parse(c.responseText);m?b.call(m,c):b(c)})};a.getElementByPoint=function(c,a){var b,m,e=G.doc.elementFromPoint(c,a);if(G.win.opera&&\"svg\"==e.tagName){b=\n",
-       "e;m=b.getBoundingClientRect();b=b.ownerDocument;var h=b.body,d=b.documentElement;b=m.top+(g.win.pageYOffset||d.scrollTop||h.scrollTop)-(d.clientTop||h.clientTop||0);m=m.left+(g.win.pageXOffset||d.scrollLeft||h.scrollLeft)-(d.clientLeft||h.clientLeft||0);h=e.createSVGRect();h.x=c-m;h.y=a-b;h.width=h.height=1;b=e.getIntersectionList(h,null);b.length&&(e=b[b.length-1])}return e?x(e):null};a.plugin=function(c){c(a,e,s,G,l)};return G.win.Snap=a}();C.plugin(function(a,k,y,M,A){function w(a,d,f,b,q,e){null==\n",
-       "d&&\"[object SVGMatrix]\"==z.call(a)?(this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.e=a.e,this.f=a.f):null!=a?(this.a=+a,this.b=+d,this.c=+f,this.d=+b,this.e=+q,this.f=+e):(this.a=1,this.c=this.b=0,this.d=1,this.f=this.e=0)}var z=Object.prototype.toString,d=String,f=Math;(function(n){function k(a){return a[0]*a[0]+a[1]*a[1]}function p(a){var d=f.sqrt(k(a));a[0]&&(a[0]/=d);a[1]&&(a[1]/=d)}n.add=function(a,d,e,f,n,p){var k=[[],[],[] ],u=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ];d=[[a,\n",
-       "e,n],[d,f,p],[0,0,1] ];a&&a instanceof w&&(d=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]);for(a=0;3>a;a++)for(e=0;3>e;e++){for(f=n=0;3>f;f++)n+=u[a][f]*d[f][e];k[a][e]=n}this.a=k[0][0];this.b=k[1][0];this.c=k[0][1];this.d=k[1][1];this.e=k[0][2];this.f=k[1][2];return this};n.invert=function(){var a=this.a*this.d-this.b*this.c;return new w(this.d/a,-this.b/a,-this.c/a,this.a/a,(this.c*this.f-this.d*this.e)/a,(this.b*this.e-this.a*this.f)/a)};n.clone=function(){return new w(this.a,this.b,this.c,this.d,this.e,\n",
-       "this.f)};n.translate=function(a,d){return this.add(1,0,0,1,a,d)};n.scale=function(a,d,e,f){null==d&&(d=a);(e||f)&&this.add(1,0,0,1,e,f);this.add(a,0,0,d,0,0);(e||f)&&this.add(1,0,0,1,-e,-f);return this};n.rotate=function(b,d,e){b=a.rad(b);d=d||0;e=e||0;var l=+f.cos(b).toFixed(9);b=+f.sin(b).toFixed(9);this.add(l,b,-b,l,d,e);return this.add(1,0,0,1,-d,-e)};n.x=function(a,d){return a*this.a+d*this.c+this.e};n.y=function(a,d){return a*this.b+d*this.d+this.f};n.get=function(a){return+this[d.fromCharCode(97+\n",
-       "a)].toFixed(4)};n.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"};n.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]};n.determinant=function(){return this.a*this.d-this.b*this.c};n.split=function(){var b={};b.dx=this.e;b.dy=this.f;var d=[[this.a,this.c],[this.b,this.d] ];b.scalex=f.sqrt(k(d[0]));p(d[0]);b.shear=d[0][0]*d[1][0]+d[0][1]*d[1][1];d[1]=[d[1][0]-d[0][0]*b.shear,d[1][1]-d[0][1]*b.shear];b.scaley=f.sqrt(k(d[1]));\n",
-       "p(d[1]);b.shear/=b.scaley;0>this.determinant()&&(b.scalex=-b.scalex);var e=-d[0][1],d=d[1][1];0>d?(b.rotate=a.deg(f.acos(d)),0>e&&(b.rotate=360-b.rotate)):b.rotate=a.deg(f.asin(e));b.isSimple=!+b.shear.toFixed(9)&&(b.scalex.toFixed(9)==b.scaley.toFixed(9)||!b.rotate);b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate;b.noRotation=!+b.shear.toFixed(9)&&!b.rotate;return b};n.toTransformString=function(a){a=a||this.split();if(+a.shear.toFixed(9))return\"m\"+[this.get(0),\n",
-       "this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)];a.scalex=+a.scalex.toFixed(4);a.scaley=+a.scaley.toFixed(4);a.rotate=+a.rotate.toFixed(4);return(a.dx||a.dy?\"t\"+[+a.dx.toFixed(4),+a.dy.toFixed(4)]:\"\")+(1!=a.scalex||1!=a.scaley?\"s\"+[a.scalex,a.scaley,0,0]:\"\")+(a.rotate?\"r\"+[+a.rotate.toFixed(4),0,0]:\"\")}})(w.prototype);a.Matrix=w;a.matrix=function(a,d,f,b,k,e){return new w(a,d,f,b,k,e)}});C.plugin(function(a,v,y,M,A){function w(h){return function(d){k.stop();d instanceof A&&1==d.node.childNodes.length&&\n",
-       "(\"radialGradient\"==d.node.firstChild.tagName||\"linearGradient\"==d.node.firstChild.tagName||\"pattern\"==d.node.firstChild.tagName)&&(d=d.node.firstChild,b(this).appendChild(d),d=u(d));if(d instanceof v)if(\"radialGradient\"==d.type||\"linearGradient\"==d.type||\"pattern\"==d.type){d.node.id||e(d.node,{id:d.id});var f=l(d.node.id)}else f=d.attr(h);else f=a.color(d),f.error?(f=a(b(this).ownerSVGElement).gradient(d))?(f.node.id||e(f.node,{id:f.id}),f=l(f.node.id)):f=d:f=r(f);d={};d[h]=f;e(this.node,d);this.node.style[h]=\n",
-       "x}}function z(a){k.stop();a==+a&&(a+=\"px\");this.node.style.fontSize=a}function d(a){var b=[];a=a.childNodes;for(var e=0,f=a.length;e<f;e++){var l=a[e];3==l.nodeType&&b.push(l.nodeValue);\"tspan\"==l.tagName&&(1==l.childNodes.length&&3==l.firstChild.nodeType?b.push(l.firstChild.nodeValue):b.push(d(l)))}return b}function f(){k.stop();return this.node.style.fontSize}var n=a._.make,u=a._.wrap,p=a.is,b=a._.getSomeDefs,q=/^url\\(#?([^)]+)\\)$/,e=a._.$,l=a.url,r=String,s=a._.separator,x=\"\";k.on(\"snap.util.attr.mask\",\n",
-       "function(a){if(a instanceof v||a instanceof A){k.stop();a instanceof A&&1==a.node.childNodes.length&&(a=a.node.firstChild,b(this).appendChild(a),a=u(a));if(\"mask\"==a.type)var d=a;else d=n(\"mask\",b(this)),d.node.appendChild(a.node);!d.node.id&&e(d.node,{id:d.id});e(this.node,{mask:l(d.id)})}});(function(a){k.on(\"snap.util.attr.clip\",a);k.on(\"snap.util.attr.clip-path\",a);k.on(\"snap.util.attr.clipPath\",a)})(function(a){if(a instanceof v||a instanceof A){k.stop();if(\"clipPath\"==a.type)var d=a;else d=\n",
-       "n(\"clipPath\",b(this)),d.node.appendChild(a.node),!d.node.id&&e(d.node,{id:d.id});e(this.node,{\"clip-path\":l(d.id)})}});k.on(\"snap.util.attr.fill\",w(\"fill\"));k.on(\"snap.util.attr.stroke\",w(\"stroke\"));var G=/^([lr])(?:\\(([^)]*)\\))?(.*)$/i;k.on(\"snap.util.grad.parse\",function(a){a=r(a);var b=a.match(G);if(!b)return null;a=b[1];var e=b[2],b=b[3],e=e.split(/\\s*,\\s*/).map(function(a){return+a==a?+a:a});1==e.length&&0==e[0]&&(e=[]);b=b.split(\"-\");b=b.map(function(a){a=a.split(\":\");var b={color:a[0]};a[1]&&\n",
-       "(b.offset=parseFloat(a[1]));return b});return{type:a,params:e,stops:b}});k.on(\"snap.util.attr.d\",function(b){k.stop();p(b,\"array\")&&p(b[0],\"array\")&&(b=a.path.toString.call(b));b=r(b);b.match(/[ruo]/i)&&(b=a.path.toAbsolute(b));e(this.node,{d:b})})(-1);k.on(\"snap.util.attr.#text\",function(a){k.stop();a=r(a);for(a=M.doc.createTextNode(a);this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.node.appendChild(a)})(-1);k.on(\"snap.util.attr.path\",function(a){k.stop();this.attr({d:a})})(-1);\n",
-       "k.on(\"snap.util.attr.class\",function(a){k.stop();this.node.className.baseVal=a})(-1);k.on(\"snap.util.attr.viewBox\",function(a){a=p(a,\"object\")&&\"x\"in a?[a.x,a.y,a.width,a.height].join(\" \"):p(a,\"array\")?a.join(\" \"):a;e(this.node,{viewBox:a});k.stop()})(-1);k.on(\"snap.util.attr.transform\",function(a){this.transform(a);k.stop()})(-1);k.on(\"snap.util.attr.r\",function(a){\"rect\"==this.type&&(k.stop(),e(this.node,{rx:a,ry:a}))})(-1);k.on(\"snap.util.attr.textpath\",function(a){k.stop();if(\"text\"==this.type){var d,\n",
-       "f;if(!a&&this.textPath){for(a=this.textPath;a.node.firstChild;)this.node.appendChild(a.node.firstChild);a.remove();delete this.textPath}else if(p(a,\"string\")?(d=b(this),a=u(d.parentNode).path(a),d.appendChild(a.node),d=a.id,a.attr({id:d})):(a=u(a),a instanceof v&&(d=a.attr(\"id\"),d||(d=a.id,a.attr({id:d})))),d)if(a=this.textPath,f=this.node,a)a.attr({\"xlink:href\":\"#\"+d});else{for(a=e(\"textPath\",{\"xlink:href\":\"#\"+d});f.firstChild;)a.appendChild(f.firstChild);f.appendChild(a);this.textPath=u(a)}}})(-1);\n",
-       "k.on(\"snap.util.attr.text\",function(a){if(\"text\"==this.type){for(var b=this.node,d=function(a){var b=e(\"tspan\");if(p(a,\"array\"))for(var f=0;f<a.length;f++)b.appendChild(d(a[f]));else b.appendChild(M.doc.createTextNode(a));b.normalize&&b.normalize();return b};b.firstChild;)b.removeChild(b.firstChild);for(a=d(a);a.firstChild;)b.appendChild(a.firstChild)}k.stop()})(-1);k.on(\"snap.util.attr.fontSize\",z)(-1);k.on(\"snap.util.attr.font-size\",z)(-1);k.on(\"snap.util.getattr.transform\",function(){k.stop();\n",
-       "return this.transform()})(-1);k.on(\"snap.util.getattr.textpath\",function(){k.stop();return this.textPath})(-1);(function(){function b(d){return function(){k.stop();var b=M.doc.defaultView.getComputedStyle(this.node,null).getPropertyValue(\"marker-\"+d);return\"none\"==b?b:a(M.doc.getElementById(b.match(q)[1]))}}function d(a){return function(b){k.stop();var d=\"marker\"+a.charAt(0).toUpperCase()+a.substring(1);if(\"\"==b||!b)this.node.style[d]=\"none\";else if(\"marker\"==b.type){var f=b.node.id;f||e(b.node,{id:b.id});\n",
-       "this.node.style[d]=l(f)}}}k.on(\"snap.util.getattr.marker-end\",b(\"end\"))(-1);k.on(\"snap.util.getattr.markerEnd\",b(\"end\"))(-1);k.on(\"snap.util.getattr.marker-start\",b(\"start\"))(-1);k.on(\"snap.util.getattr.markerStart\",b(\"start\"))(-1);k.on(\"snap.util.getattr.marker-mid\",b(\"mid\"))(-1);k.on(\"snap.util.getattr.markerMid\",b(\"mid\"))(-1);k.on(\"snap.util.attr.marker-end\",d(\"end\"))(-1);k.on(\"snap.util.attr.markerEnd\",d(\"end\"))(-1);k.on(\"snap.util.attr.marker-start\",d(\"start\"))(-1);k.on(\"snap.util.attr.markerStart\",\n",
-       "d(\"start\"))(-1);k.on(\"snap.util.attr.marker-mid\",d(\"mid\"))(-1);k.on(\"snap.util.attr.markerMid\",d(\"mid\"))(-1)})();k.on(\"snap.util.getattr.r\",function(){if(\"rect\"==this.type&&e(this.node,\"rx\")==e(this.node,\"ry\"))return k.stop(),e(this.node,\"rx\")})(-1);k.on(\"snap.util.getattr.text\",function(){if(\"text\"==this.type||\"tspan\"==this.type){k.stop();var a=d(this.node);return 1==a.length?a[0]:a}})(-1);k.on(\"snap.util.getattr.#text\",function(){return this.node.textContent})(-1);k.on(\"snap.util.getattr.viewBox\",\n",
-       "function(){k.stop();var b=e(this.node,\"viewBox\");if(b)return b=b.split(s),a._.box(+b[0],+b[1],+b[2],+b[3])})(-1);k.on(\"snap.util.getattr.points\",function(){var a=e(this.node,\"points\");k.stop();if(a)return a.split(s)})(-1);k.on(\"snap.util.getattr.path\",function(){var a=e(this.node,\"d\");k.stop();return a})(-1);k.on(\"snap.util.getattr.class\",function(){return this.node.className.baseVal})(-1);k.on(\"snap.util.getattr.fontSize\",f)(-1);k.on(\"snap.util.getattr.font-size\",f)(-1)});C.plugin(function(a,v,y,\n",
-       "M,A){function w(a){return a}function z(a){return function(b){return+b.toFixed(3)+a}}var d={\"+\":function(a,b){return a+b},\"-\":function(a,b){return a-b},\"/\":function(a,b){return a/b},\"*\":function(a,b){return a*b}},f=String,n=/[a-z]+$/i,u=/^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;k.on(\"snap.util.attr\",function(a){if(a=f(a).match(u)){var b=k.nt(),b=b.substring(b.lastIndexOf(\".\")+1),q=this.attr(b),e={};k.stop();var l=a[3]||\"\",r=q.match(n),s=d[a[1] ];r&&r==l?a=s(parseFloat(q),+a[2]):(q=this.asPX(b),\n",
-       "a=s(this.asPX(b),this.asPX(b,a[2]+l)));isNaN(q)||isNaN(a)||(e[b]=a,this.attr(e))}})(-10);k.on(\"snap.util.equal\",function(a,b){var q=f(this.attr(a)||\"\"),e=f(b).match(u);if(e){k.stop();var l=e[3]||\"\",r=q.match(n),s=d[e[1] ];if(r&&r==l)return{from:parseFloat(q),to:s(parseFloat(q),+e[2]),f:z(r)};q=this.asPX(a);return{from:q,to:s(q,this.asPX(a,e[2]+l)),f:w}}})(-10)});C.plugin(function(a,v,y,M,A){var w=y.prototype,z=a.is;w.rect=function(a,d,k,p,b,q){var e;null==q&&(q=b);z(a,\"object\")&&\"[object Object]\"==\n",
-       "a?e=a:null!=a&&(e={x:a,y:d,width:k,height:p},null!=b&&(e.rx=b,e.ry=q));return this.el(\"rect\",e)};w.circle=function(a,d,k){var p;z(a,\"object\")&&\"[object Object]\"==a?p=a:null!=a&&(p={cx:a,cy:d,r:k});return this.el(\"circle\",p)};var d=function(){function a(){this.parentNode.removeChild(this)}return function(d,k){var p=M.doc.createElement(\"img\"),b=M.doc.body;p.style.cssText=\"position:absolute;left:-9999em;top:-9999em\";p.onload=function(){k.call(p);p.onload=p.onerror=null;b.removeChild(p)};p.onerror=a;\n",
-       "b.appendChild(p);p.src=d}}();w.image=function(f,n,k,p,b){var q=this.el(\"image\");if(z(f,\"object\")&&\"src\"in f)q.attr(f);else if(null!=f){var e={\"xlink:href\":f,preserveAspectRatio:\"none\"};null!=n&&null!=k&&(e.x=n,e.y=k);null!=p&&null!=b?(e.width=p,e.height=b):d(f,function(){a._.$(q.node,{width:this.offsetWidth,height:this.offsetHeight})});a._.$(q.node,e)}return q};w.ellipse=function(a,d,k,p){var b;z(a,\"object\")&&\"[object Object]\"==a?b=a:null!=a&&(b={cx:a,cy:d,rx:k,ry:p});return this.el(\"ellipse\",b)};\n",
-       "w.path=function(a){var d;z(a,\"object\")&&!z(a,\"array\")?d=a:a&&(d={d:a});return this.el(\"path\",d)};w.group=w.g=function(a){var d=this.el(\"g\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.svg=function(a,d,k,p,b,q,e,l){var r={};z(a,\"object\")&&null==d?r=a:(null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l]));return this.el(\"svg\",r)};w.mask=function(a){var d=\n",
-       "this.el(\"mask\");1==arguments.length&&a&&!a.type?d.attr(a):arguments.length&&d.add(Array.prototype.slice.call(arguments,0));return d};w.ptrn=function(a,d,k,p,b,q,e,l){if(z(a,\"object\"))var r=a;else arguments.length?(r={},null!=a&&(r.x=a),null!=d&&(r.y=d),null!=k&&(r.width=k),null!=p&&(r.height=p),null!=b&&null!=q&&null!=e&&null!=l&&(r.viewBox=[b,q,e,l])):r={patternUnits:\"userSpaceOnUse\"};return this.el(\"pattern\",r)};w.use=function(a){return null!=a?(make(\"use\",this.node),a instanceof v&&(a.attr(\"id\")||\n",
-       "a.attr({id:ID()}),a=a.attr(\"id\")),this.el(\"use\",{\"xlink:href\":a})):v.prototype.use.call(this)};w.text=function(a,d,k){var p={};z(a,\"object\")?p=a:null!=a&&(p={x:a,y:d,text:k||\"\"});return this.el(\"text\",p)};w.line=function(a,d,k,p){var b={};z(a,\"object\")?b=a:null!=a&&(b={x1:a,x2:k,y1:d,y2:p});return this.el(\"line\",b)};w.polyline=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polyline\",d)};\n",
-       "w.polygon=function(a){1<arguments.length&&(a=Array.prototype.slice.call(arguments,0));var d={};z(a,\"object\")&&!z(a,\"array\")?d=a:null!=a&&(d={points:a});return this.el(\"polygon\",d)};(function(){function d(){return this.selectAll(\"stop\")}function n(b,d){var f=e(\"stop\"),k={offset:+d+\"%\"};b=a.color(b);k[\"stop-color\"]=b.hex;1>b.opacity&&(k[\"stop-opacity\"]=b.opacity);e(f,k);this.node.appendChild(f);return this}function u(){if(\"linearGradient\"==this.type){var b=e(this.node,\"x1\")||0,d=e(this.node,\"x2\")||\n",
-       "1,f=e(this.node,\"y1\")||0,k=e(this.node,\"y2\")||0;return a._.box(b,f,math.abs(d-b),math.abs(k-f))}b=this.node.r||0;return a._.box((this.node.cx||0.5)-b,(this.node.cy||0.5)-b,2*b,2*b)}function p(a,d){function f(a,b){for(var d=(b-u)/(a-w),e=w;e<a;e++)h[e].offset=+(+u+d*(e-w)).toFixed(2);w=a;u=b}var n=k(\"snap.util.grad.parse\",null,d).firstDefined(),p;if(!n)return null;n.params.unshift(a);p=\"l\"==n.type.toLowerCase()?b.apply(0,n.params):q.apply(0,n.params);n.type!=n.type.toLowerCase()&&e(p.node,{gradientUnits:\"userSpaceOnUse\"});\n",
-       "var h=n.stops,n=h.length,u=0,w=0;n--;for(var v=0;v<n;v++)\"offset\"in h[v]&&f(v,h[v].offset);h[n].offset=h[n].offset||100;f(n,h[n].offset);for(v=0;v<=n;v++){var y=h[v];p.addStop(y.color,y.offset)}return p}function b(b,k,p,q,w){b=a._.make(\"linearGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{x1:k,y1:p,x2:q,y2:w});return b}function q(b,k,p,q,w,h){b=a._.make(\"radialGradient\",b);b.stops=d;b.addStop=n;b.getBBox=u;null!=k&&e(b.node,{cx:k,cy:p,r:q});null!=w&&null!=h&&e(b.node,{fx:w,fy:h});\n",
-       "return b}var e=a._.$;w.gradient=function(a){return p(this.defs,a)};w.gradientLinear=function(a,d,e,f){return b(this.defs,a,d,e,f)};w.gradientRadial=function(a,b,d,e,f){return q(this.defs,a,b,d,e,f)};w.toString=function(){var b=this.node.ownerDocument,d=b.createDocumentFragment(),b=b.createElement(\"div\"),e=this.node.cloneNode(!0);d.appendChild(b);b.appendChild(e);a._.$(e,{xmlns:\"http://www.w3.org/2000/svg\"});b=b.innerHTML;d.removeChild(d.firstChild);return b};w.clear=function(){for(var a=this.node.firstChild,\n",
-       "b;a;)b=a.nextSibling,\"defs\"!=a.tagName?a.parentNode.removeChild(a):w.clear.call({node:a}),a=b}})()});C.plugin(function(a,k,y,M){function A(a){var b=A.ps=A.ps||{};b[a]?b[a].sleep=100:b[a]={sleep:100};setTimeout(function(){for(var d in b)b[L](d)&&d!=a&&(b[d].sleep--,!b[d].sleep&&delete b[d])});return b[a]}function w(a,b,d,e){null==a&&(a=b=d=e=0);null==b&&(b=a.y,d=a.width,e=a.height,a=a.x);return{x:a,y:b,width:d,w:d,height:e,h:e,x2:a+d,y2:b+e,cx:a+d/2,cy:b+e/2,r1:F.min(d,e)/2,r2:F.max(d,e)/2,r0:F.sqrt(d*\n",
-       "d+e*e)/2,path:s(a,b,d,e),vb:[a,b,d,e].join(\" \")}}function z(){return this.join(\",\").replace(N,\"$1\")}function d(a){a=C(a);a.toString=z;return a}function f(a,b,d,h,f,k,l,n,p){if(null==p)return e(a,b,d,h,f,k,l,n);if(0>p||e(a,b,d,h,f,k,l,n)<p)p=void 0;else{var q=0.5,O=1-q,s;for(s=e(a,b,d,h,f,k,l,n,O);0.01<Z(s-p);)q/=2,O+=(s<p?1:-1)*q,s=e(a,b,d,h,f,k,l,n,O);p=O}return u(a,b,d,h,f,k,l,n,p)}function n(b,d){function e(a){return+(+a).toFixed(3)}return a._.cacher(function(a,h,l){a instanceof k&&(a=a.attr(\"d\"));\n",
-       "a=I(a);for(var n,p,D,q,O=\"\",s={},c=0,t=0,r=a.length;t<r;t++){D=a[t];if(\"M\"==D[0])n=+D[1],p=+D[2];else{q=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6]);if(c+q>h){if(d&&!s.start){n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c);O+=[\"C\"+e(n.start.x),e(n.start.y),e(n.m.x),e(n.m.y),e(n.x),e(n.y)];if(l)return O;s.start=O;O=[\"M\"+e(n.x),e(n.y)+\"C\"+e(n.n.x),e(n.n.y),e(n.end.x),e(n.end.y),e(D[5]),e(D[6])].join();c+=q;n=+D[5];p=+D[6];continue}if(!b&&!d)return n=f(n,p,D[1],D[2],D[3],D[4],D[5],D[6],h-c)}c+=q;n=+D[5];p=+D[6]}O+=\n",
-       "D.shift()+D}s.end=O;return n=b?c:d?s:u(n,p,D[0],D[1],D[2],D[3],D[4],D[5],1)},null,a._.clone)}function u(a,b,d,e,h,f,k,l,n){var p=1-n,q=ma(p,3),s=ma(p,2),c=n*n,t=c*n,r=q*a+3*s*n*d+3*p*n*n*h+t*k,q=q*b+3*s*n*e+3*p*n*n*f+t*l,s=a+2*n*(d-a)+c*(h-2*d+a),t=b+2*n*(e-b)+c*(f-2*e+b),x=d+2*n*(h-d)+c*(k-2*h+d),c=e+2*n*(f-e)+c*(l-2*f+e);a=p*a+n*d;b=p*b+n*e;h=p*h+n*k;f=p*f+n*l;l=90-180*F.atan2(s-x,t-c)/S;return{x:r,y:q,m:{x:s,y:t},n:{x:x,y:c},start:{x:a,y:b},end:{x:h,y:f},alpha:l}}function p(b,d,e,h,f,n,k,l){a.is(b,\n",
-       "\"array\")||(b=[b,d,e,h,f,n,k,l]);b=U.apply(null,b);return w(b.min.x,b.min.y,b.max.x-b.min.x,b.max.y-b.min.y)}function b(a,b,d){return b>=a.x&&b<=a.x+a.width&&d>=a.y&&d<=a.y+a.height}function q(a,d){a=w(a);d=w(d);return b(d,a.x,a.y)||b(d,a.x2,a.y)||b(d,a.x,a.y2)||b(d,a.x2,a.y2)||b(a,d.x,d.y)||b(a,d.x2,d.y)||b(a,d.x,d.y2)||b(a,d.x2,d.y2)||(a.x<d.x2&&a.x>d.x||d.x<a.x2&&d.x>a.x)&&(a.y<d.y2&&a.y>d.y||d.y<a.y2&&d.y>a.y)}function e(a,b,d,e,h,f,n,k,l){null==l&&(l=1);l=(1<l?1:0>l?0:l)/2;for(var p=[-0.1252,\n",
-       "0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],q=[0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],s=0,c=0;12>c;c++)var t=l*p[c]+l,r=t*(t*(-3*a+9*d-9*h+3*n)+6*a-12*d+6*h)-3*a+3*d,t=t*(t*(-3*b+9*e-9*f+3*k)+6*b-12*e+6*f)-3*b+3*e,s=s+q[c]*F.sqrt(r*r+t*t);return l*s}function l(a,b,d){a=I(a);b=I(b);for(var h,f,l,n,k,s,r,O,x,c,t=d?0:[],w=0,v=a.length;w<v;w++)if(x=a[w],\"M\"==x[0])h=k=x[1],f=s=x[2];else{\"C\"==x[0]?(x=[h,f].concat(x.slice(1)),\n",
-       "h=x[6],f=x[7]):(x=[h,f,h,f,k,s,k,s],h=k,f=s);for(var G=0,y=b.length;G<y;G++)if(c=b[G],\"M\"==c[0])l=r=c[1],n=O=c[2];else{\"C\"==c[0]?(c=[l,n].concat(c.slice(1)),l=c[6],n=c[7]):(c=[l,n,l,n,r,O,r,O],l=r,n=O);var z;var K=x,B=c;z=d;var H=p(K),J=p(B);if(q(H,J)){for(var H=e.apply(0,K),J=e.apply(0,B),H=~~(H/8),J=~~(J/8),U=[],A=[],F={},M=z?0:[],P=0;P<H+1;P++){var C=u.apply(0,K.concat(P/H));U.push({x:C.x,y:C.y,t:P/H})}for(P=0;P<J+1;P++)C=u.apply(0,B.concat(P/J)),A.push({x:C.x,y:C.y,t:P/J});for(P=0;P<H;P++)for(K=\n",
-       "0;K<J;K++){var Q=U[P],L=U[P+1],B=A[K],C=A[K+1],N=0.001>Z(L.x-Q.x)?\"y\":\"x\",S=0.001>Z(C.x-B.x)?\"y\":\"x\",R;R=Q.x;var Y=Q.y,V=L.x,ea=L.y,fa=B.x,ga=B.y,ha=C.x,ia=C.y;if(W(R,V)<X(fa,ha)||X(R,V)>W(fa,ha)||W(Y,ea)<X(ga,ia)||X(Y,ea)>W(ga,ia))R=void 0;else{var $=(R*ea-Y*V)*(fa-ha)-(R-V)*(fa*ia-ga*ha),aa=(R*ea-Y*V)*(ga-ia)-(Y-ea)*(fa*ia-ga*ha),ja=(R-V)*(ga-ia)-(Y-ea)*(fa-ha);if(ja){var $=$/ja,aa=aa/ja,ja=+$.toFixed(2),ba=+aa.toFixed(2);R=ja<+X(R,V).toFixed(2)||ja>+W(R,V).toFixed(2)||ja<+X(fa,ha).toFixed(2)||\n",
-       "ja>+W(fa,ha).toFixed(2)||ba<+X(Y,ea).toFixed(2)||ba>+W(Y,ea).toFixed(2)||ba<+X(ga,ia).toFixed(2)||ba>+W(ga,ia).toFixed(2)?void 0:{x:$,y:aa}}else R=void 0}R&&F[R.x.toFixed(4)]!=R.y.toFixed(4)&&(F[R.x.toFixed(4)]=R.y.toFixed(4),Q=Q.t+Z((R[N]-Q[N])/(L[N]-Q[N]))*(L.t-Q.t),B=B.t+Z((R[S]-B[S])/(C[S]-B[S]))*(C.t-B.t),0<=Q&&1>=Q&&0<=B&&1>=B&&(z?M++:M.push({x:R.x,y:R.y,t1:Q,t2:B})))}z=M}else z=z?0:[];if(d)t+=z;else{H=0;for(J=z.length;H<J;H++)z[H].segment1=w,z[H].segment2=G,z[H].bez1=x,z[H].bez2=c;t=t.concat(z)}}}return t}\n",
-       "function r(a){var b=A(a);if(b.bbox)return C(b.bbox);if(!a)return w();a=I(a);for(var d=0,e=0,h=[],f=[],l,n=0,k=a.length;n<k;n++)l=a[n],\"M\"==l[0]?(d=l[1],e=l[2],h.push(d),f.push(e)):(d=U(d,e,l[1],l[2],l[3],l[4],l[5],l[6]),h=h.concat(d.min.x,d.max.x),f=f.concat(d.min.y,d.max.y),d=l[5],e=l[6]);a=X.apply(0,h);l=X.apply(0,f);h=W.apply(0,h);f=W.apply(0,f);f=w(a,l,h-a,f-l);b.bbox=C(f);return f}function s(a,b,d,e,h){if(h)return[[\"M\",+a+ +h,b],[\"l\",d-2*h,0],[\"a\",h,h,0,0,1,h,h],[\"l\",0,e-2*h],[\"a\",h,h,0,0,1,\n",
-       "-h,h],[\"l\",2*h-d,0],[\"a\",h,h,0,0,1,-h,-h],[\"l\",0,2*h-e],[\"a\",h,h,0,0,1,h,-h],[\"z\"] ];a=[[\"M\",a,b],[\"l\",d,0],[\"l\",0,e],[\"l\",-d,0],[\"z\"] ];a.toString=z;return a}function x(a,b,d,e,h){null==h&&null==e&&(e=d);a=+a;b=+b;d=+d;e=+e;if(null!=h){var f=Math.PI/180,l=a+d*Math.cos(-e*f);a+=d*Math.cos(-h*f);var n=b+d*Math.sin(-e*f);b+=d*Math.sin(-h*f);d=[[\"M\",l,n],[\"A\",d,d,0,+(180<h-e),0,a,b] ]}else d=[[\"M\",a,b],[\"m\",0,-e],[\"a\",d,e,0,1,1,0,2*e],[\"a\",d,e,0,1,1,0,-2*e],[\"z\"] ];d.toString=z;return d}function G(b){var e=\n",
-       "A(b);if(e.abs)return d(e.abs);Q(b,\"array\")&&Q(b&&b[0],\"array\")||(b=a.parsePathString(b));if(!b||!b.length)return[[\"M\",0,0] ];var h=[],f=0,l=0,n=0,k=0,p=0;\"M\"==b[0][0]&&(f=+b[0][1],l=+b[0][2],n=f,k=l,p++,h[0]=[\"M\",f,l]);for(var q=3==b.length&&\"M\"==b[0][0]&&\"R\"==b[1][0].toUpperCase()&&\"Z\"==b[2][0].toUpperCase(),s,r,w=p,c=b.length;w<c;w++){h.push(s=[]);r=b[w];p=r[0];if(p!=p.toUpperCase())switch(s[0]=p.toUpperCase(),s[0]){case \"A\":s[1]=r[1];s[2]=r[2];s[3]=r[3];s[4]=r[4];s[5]=r[5];s[6]=+r[6]+f;s[7]=+r[7]+\n",
-       "l;break;case \"V\":s[1]=+r[1]+l;break;case \"H\":s[1]=+r[1]+f;break;case \"R\":for(var t=[f,l].concat(r.slice(1)),u=2,v=t.length;u<v;u++)t[u]=+t[u]+f,t[++u]=+t[u]+l;h.pop();h=h.concat(P(t,q));break;case \"O\":h.pop();t=x(f,l,r[1],r[2]);t.push(t[0]);h=h.concat(t);break;case \"U\":h.pop();h=h.concat(x(f,l,r[1],r[2],r[3]));s=[\"U\"].concat(h[h.length-1].slice(-2));break;case \"M\":n=+r[1]+f,k=+r[2]+l;default:for(u=1,v=r.length;u<v;u++)s[u]=+r[u]+(u%2?f:l)}else if(\"R\"==p)t=[f,l].concat(r.slice(1)),h.pop(),h=h.concat(P(t,\n",
-       "q)),s=[\"R\"].concat(r.slice(-2));else if(\"O\"==p)h.pop(),t=x(f,l,r[1],r[2]),t.push(t[0]),h=h.concat(t);else if(\"U\"==p)h.pop(),h=h.concat(x(f,l,r[1],r[2],r[3])),s=[\"U\"].concat(h[h.length-1].slice(-2));else for(t=0,u=r.length;t<u;t++)s[t]=r[t];p=p.toUpperCase();if(\"O\"!=p)switch(s[0]){case \"Z\":f=+n;l=+k;break;case \"H\":f=s[1];break;case \"V\":l=s[1];break;case \"M\":n=s[s.length-2],k=s[s.length-1];default:f=s[s.length-2],l=s[s.length-1]}}h.toString=z;e.abs=d(h);return h}function h(a,b,d,e){return[a,b,d,e,d,\n",
-       "e]}function J(a,b,d,e,h,f){var l=1/3,n=2/3;return[l*a+n*d,l*b+n*e,l*h+n*d,l*f+n*e,h,f]}function K(b,d,e,h,f,l,n,k,p,s){var r=120*S/180,q=S/180*(+f||0),c=[],t,x=a._.cacher(function(a,b,c){var d=a*F.cos(c)-b*F.sin(c);a=a*F.sin(c)+b*F.cos(c);return{x:d,y:a}});if(s)v=s[0],t=s[1],l=s[2],u=s[3];else{t=x(b,d,-q);b=t.x;d=t.y;t=x(k,p,-q);k=t.x;p=t.y;F.cos(S/180*f);F.sin(S/180*f);t=(b-k)/2;v=(d-p)/2;u=t*t/(e*e)+v*v/(h*h);1<u&&(u=F.sqrt(u),e*=u,h*=u);var u=e*e,w=h*h,u=(l==n?-1:1)*F.sqrt(Z((u*w-u*v*v-w*t*t)/\n",
-       "(u*v*v+w*t*t)));l=u*e*v/h+(b+k)/2;var u=u*-h*t/e+(d+p)/2,v=F.asin(((d-u)/h).toFixed(9));t=F.asin(((p-u)/h).toFixed(9));v=b<l?S-v:v;t=k<l?S-t:t;0>v&&(v=2*S+v);0>t&&(t=2*S+t);n&&v>t&&(v-=2*S);!n&&t>v&&(t-=2*S)}if(Z(t-v)>r){var c=t,w=k,G=p;t=v+r*(n&&t>v?1:-1);k=l+e*F.cos(t);p=u+h*F.sin(t);c=K(k,p,e,h,f,0,n,w,G,[t,c,l,u])}l=t-v;f=F.cos(v);r=F.sin(v);n=F.cos(t);t=F.sin(t);l=F.tan(l/4);e=4/3*e*l;l*=4/3*h;h=[b,d];b=[b+e*r,d-l*f];d=[k+e*t,p-l*n];k=[k,p];b[0]=2*h[0]-b[0];b[1]=2*h[1]-b[1];if(s)return[b,d,k].concat(c);\n",
-       "c=[b,d,k].concat(c).join().split(\",\");s=[];k=0;for(p=c.length;k<p;k++)s[k]=k%2?x(c[k-1],c[k],q).y:x(c[k],c[k+1],q).x;return s}function U(a,b,d,e,h,f,l,k){for(var n=[],p=[[],[] ],s,r,c,t,q=0;2>q;++q)0==q?(r=6*a-12*d+6*h,s=-3*a+9*d-9*h+3*l,c=3*d-3*a):(r=6*b-12*e+6*f,s=-3*b+9*e-9*f+3*k,c=3*e-3*b),1E-12>Z(s)?1E-12>Z(r)||(s=-c/r,0<s&&1>s&&n.push(s)):(t=r*r-4*c*s,c=F.sqrt(t),0>t||(t=(-r+c)/(2*s),0<t&&1>t&&n.push(t),s=(-r-c)/(2*s),0<s&&1>s&&n.push(s)));for(r=q=n.length;q--;)s=n[q],c=1-s,p[0][q]=c*c*c*a+3*\n",
-       "c*c*s*d+3*c*s*s*h+s*s*s*l,p[1][q]=c*c*c*b+3*c*c*s*e+3*c*s*s*f+s*s*s*k;p[0][r]=a;p[1][r]=b;p[0][r+1]=l;p[1][r+1]=k;p[0].length=p[1].length=r+2;return{min:{x:X.apply(0,p[0]),y:X.apply(0,p[1])},max:{x:W.apply(0,p[0]),y:W.apply(0,p[1])}}}function I(a,b){var e=!b&&A(a);if(!b&&e.curve)return d(e.curve);var f=G(a),l=b&&G(b),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},k={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},p=function(a,b,c){if(!a)return[\"C\",b.x,b.y,b.x,b.y,b.x,b.y];a[0]in{T:1,Q:1}||(b.qx=b.qy=null);\n",
-       "switch(a[0]){case \"M\":b.X=a[1];b.Y=a[2];break;case \"A\":a=[\"C\"].concat(K.apply(0,[b.x,b.y].concat(a.slice(1))));break;case \"S\":\"C\"==c||\"S\"==c?(c=2*b.x-b.bx,b=2*b.y-b.by):(c=b.x,b=b.y);a=[\"C\",c,b].concat(a.slice(1));break;case \"T\":\"Q\"==c||\"T\"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y);a=[\"C\"].concat(J(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case \"Q\":b.qx=a[1];b.qy=a[2];a=[\"C\"].concat(J(b.x,b.y,a[1],a[2],a[3],a[4]));break;case \"L\":a=[\"C\"].concat(h(b.x,b.y,a[1],a[2]));break;case \"H\":a=[\"C\"].concat(h(b.x,\n",
-       "b.y,a[1],b.y));break;case \"V\":a=[\"C\"].concat(h(b.x,b.y,b.x,a[1]));break;case \"Z\":a=[\"C\"].concat(h(b.x,b.y,b.X,b.Y))}return a},s=function(a,b){if(7<a[b].length){a[b].shift();for(var c=a[b];c.length;)q[b]=\"A\",l&&(u[b]=\"A\"),a.splice(b++,0,[\"C\"].concat(c.splice(0,6)));a.splice(b,1);v=W(f.length,l&&l.length||0)}},r=function(a,b,c,d,e){a&&b&&\"M\"==a[e][0]&&\"M\"!=b[e][0]&&(b.splice(e,0,[\"M\",d.x,d.y]),c.bx=0,c.by=0,c.x=a[e][1],c.y=a[e][2],v=W(f.length,l&&l.length||0))},q=[],u=[],c=\"\",t=\"\",x=0,v=W(f.length,\n",
-       "l&&l.length||0);for(;x<v;x++){f[x]&&(c=f[x][0]);\"C\"!=c&&(q[x]=c,x&&(t=q[x-1]));f[x]=p(f[x],n,t);\"A\"!=q[x]&&\"C\"==c&&(q[x]=\"C\");s(f,x);l&&(l[x]&&(c=l[x][0]),\"C\"!=c&&(u[x]=c,x&&(t=u[x-1])),l[x]=p(l[x],k,t),\"A\"!=u[x]&&\"C\"==c&&(u[x]=\"C\"),s(l,x));r(f,l,n,k,x);r(l,f,k,n,x);var w=f[x],z=l&&l[x],y=w.length,U=l&&z.length;n.x=w[y-2];n.y=w[y-1];n.bx=$(w[y-4])||n.x;n.by=$(w[y-3])||n.y;k.bx=l&&($(z[U-4])||k.x);k.by=l&&($(z[U-3])||k.y);k.x=l&&z[U-2];k.y=l&&z[U-1]}l||(e.curve=d(f));return l?[f,l]:f}function P(a,\n",
-       "b){for(var d=[],e=0,h=a.length;h-2*!b>e;e+=2){var f=[{x:+a[e-2],y:+a[e-1]},{x:+a[e],y:+a[e+1]},{x:+a[e+2],y:+a[e+3]},{x:+a[e+4],y:+a[e+5]}];b?e?h-4==e?f[3]={x:+a[0],y:+a[1]}:h-2==e&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[h-2],y:+a[h-1]}:h-4==e?f[3]=f[2]:e||(f[0]={x:+a[e],y:+a[e+1]});d.push([\"C\",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return d}y=k.prototype;var Q=a.is,C=a._.clone,L=\"hasOwnProperty\",\n",
-       "N=/,?([a-z]),?/gi,$=parseFloat,F=Math,S=F.PI,X=F.min,W=F.max,ma=F.pow,Z=F.abs;M=n(1);var na=n(),ba=n(0,1),V=a._unit2px;a.path=A;a.path.getTotalLength=M;a.path.getPointAtLength=na;a.path.getSubpath=function(a,b,d){if(1E-6>this.getTotalLength(a)-d)return ba(a,b).end;a=ba(a,d,1);return b?ba(a,b).end:a};y.getTotalLength=function(){if(this.node.getTotalLength)return this.node.getTotalLength()};y.getPointAtLength=function(a){return na(this.attr(\"d\"),a)};y.getSubpath=function(b,d){return a.path.getSubpath(this.attr(\"d\"),\n",
-       "b,d)};a._.box=w;a.path.findDotsAtSegment=u;a.path.bezierBBox=p;a.path.isPointInsideBBox=b;a.path.isBBoxIntersect=q;a.path.intersection=function(a,b){return l(a,b)};a.path.intersectionNumber=function(a,b){return l(a,b,1)};a.path.isPointInside=function(a,d,e){var h=r(a);return b(h,d,e)&&1==l(a,[[\"M\",d,e],[\"H\",h.x2+10] ],1)%2};a.path.getBBox=r;a.path.get={path:function(a){return a.attr(\"path\")},circle:function(a){a=V(a);return x(a.cx,a.cy,a.r)},ellipse:function(a){a=V(a);return x(a.cx||0,a.cy||0,a.rx,\n",
-       "a.ry)},rect:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height,a.rx,a.ry)},image:function(a){a=V(a);return s(a.x||0,a.y||0,a.width,a.height)},line:function(a){return\"M\"+[a.attr(\"x1\")||0,a.attr(\"y1\")||0,a.attr(\"x2\"),a.attr(\"y2\")]},polyline:function(a){return\"M\"+a.attr(\"points\")},polygon:function(a){return\"M\"+a.attr(\"points\")+\"z\"},deflt:function(a){a=a.node.getBBox();return s(a.x,a.y,a.width,a.height)}};a.path.toRelative=function(b){var e=A(b),h=String.prototype.toLowerCase;if(e.rel)return d(e.rel);\n",
-       "a.is(b,\"array\")&&a.is(b&&b[0],\"array\")||(b=a.parsePathString(b));var f=[],l=0,n=0,k=0,p=0,s=0;\"M\"==b[0][0]&&(l=b[0][1],n=b[0][2],k=l,p=n,s++,f.push([\"M\",l,n]));for(var r=b.length;s<r;s++){var q=f[s]=[],x=b[s];if(x[0]!=h.call(x[0]))switch(q[0]=h.call(x[0]),q[0]){case \"a\":q[1]=x[1];q[2]=x[2];q[3]=x[3];q[4]=x[4];q[5]=x[5];q[6]=+(x[6]-l).toFixed(3);q[7]=+(x[7]-n).toFixed(3);break;case \"v\":q[1]=+(x[1]-n).toFixed(3);break;case \"m\":k=x[1],p=x[2];default:for(var c=1,t=x.length;c<t;c++)q[c]=+(x[c]-(c%2?l:\n",
-       "n)).toFixed(3)}else for(f[s]=[],\"m\"==x[0]&&(k=x[1]+l,p=x[2]+n),q=0,c=x.length;q<c;q++)f[s][q]=x[q];x=f[s].length;switch(f[s][0]){case \"z\":l=k;n=p;break;case \"h\":l+=+f[s][x-1];break;case \"v\":n+=+f[s][x-1];break;default:l+=+f[s][x-2],n+=+f[s][x-1]}}f.toString=z;e.rel=d(f);return f};a.path.toAbsolute=G;a.path.toCubic=I;a.path.map=function(a,b){if(!b)return a;var d,e,h,f,l,n,k;a=I(a);h=0;for(l=a.length;h<l;h++)for(k=a[h],f=1,n=k.length;f<n;f+=2)d=b.x(k[f],k[f+1]),e=b.y(k[f],k[f+1]),k[f]=d,k[f+1]=e;return a};\n",
-       "a.path.toString=z;a.path.clone=d});C.plugin(function(a,v,y,C){var A=Math.max,w=Math.min,z=function(a){this.items=[];this.bindings={};this.length=0;this.type=\"set\";if(a)for(var f=0,n=a.length;f<n;f++)a[f]&&(this[this.items.length]=this.items[this.items.length]=a[f],this.length++)};v=z.prototype;v.push=function(){for(var a,f,n=0,k=arguments.length;n<k;n++)if(a=arguments[n])f=this.items.length,this[f]=this.items[f]=a,this.length++;return this};v.pop=function(){this.length&&delete this[this.length--];\n",
-       "return this.items.pop()};v.forEach=function(a,f){for(var n=0,k=this.items.length;n<k&&!1!==a.call(f,this.items[n],n);n++);return this};v.animate=function(d,f,n,u){\"function\"!=typeof n||n.length||(u=n,n=L.linear);d instanceof a._.Animation&&(u=d.callback,n=d.easing,f=n.dur,d=d.attr);var p=arguments;if(a.is(d,\"array\")&&a.is(p[p.length-1],\"array\"))var b=!0;var q,e=function(){q?this.b=q:q=this.b},l=0,r=u&&function(){l++==this.length&&u.call(this)};return this.forEach(function(a,l){k.once(\"snap.animcreated.\"+\n",
-       "a.id,e);b?p[l]&&a.animate.apply(a,p[l]):a.animate(d,f,n,r)})};v.remove=function(){for(;this.length;)this.pop().remove();return this};v.bind=function(a,f,k){var u={};if(\"function\"==typeof f)this.bindings[a]=f;else{var p=k||a;this.bindings[a]=function(a){u[p]=a;f.attr(u)}}return this};v.attr=function(a){var f={},k;for(k in a)if(this.bindings[k])this.bindings[k](a[k]);else f[k]=a[k];a=0;for(k=this.items.length;a<k;a++)this.items[a].attr(f);return this};v.clear=function(){for(;this.length;)this.pop()};\n",
-       "v.splice=function(a,f,k){a=0>a?A(this.length+a,0):a;f=A(0,w(this.length-a,f));var u=[],p=[],b=[],q;for(q=2;q<arguments.length;q++)b.push(arguments[q]);for(q=0;q<f;q++)p.push(this[a+q]);for(;q<this.length-a;q++)u.push(this[a+q]);var e=b.length;for(q=0;q<e+u.length;q++)this.items[a+q]=this[a+q]=q<e?b[q]:u[q-e];for(q=this.items.length=this.length-=f-e;this[q];)delete this[q++];return new z(p)};v.exclude=function(a){for(var f=0,k=this.length;f<k;f++)if(this[f]==a)return this.splice(f,1),!0;return!1};\n",
-       "v.insertAfter=function(a){for(var f=this.items.length;f--;)this.items[f].insertAfter(a);return this};v.getBBox=function(){for(var a=[],f=[],k=[],u=[],p=this.items.length;p--;)if(!this.items[p].removed){var b=this.items[p].getBBox();a.push(b.x);f.push(b.y);k.push(b.x+b.width);u.push(b.y+b.height)}a=w.apply(0,a);f=w.apply(0,f);k=A.apply(0,k);u=A.apply(0,u);return{x:a,y:f,x2:k,y2:u,width:k-a,height:u-f,cx:a+(k-a)/2,cy:f+(u-f)/2}};v.clone=function(a){a=new z;for(var f=0,k=this.items.length;f<k;f++)a.push(this.items[f].clone());\n",
-       "return a};v.toString=function(){return\"Snap\\u2018s set\"};v.type=\"set\";a.set=function(){var a=new z;arguments.length&&a.push.apply(a,Array.prototype.slice.call(arguments,0));return a}});C.plugin(function(a,v,y,C){function A(a){var b=a[0];switch(b.toLowerCase()){case \"t\":return[b,0,0];case \"m\":return[b,1,0,0,1,0,0];case \"r\":return 4==a.length?[b,0,a[2],a[3] ]:[b,0];case \"s\":return 5==a.length?[b,1,1,a[3],a[4] ]:3==a.length?[b,1,1]:[b,1]}}function w(b,d,f){d=q(d).replace(/\\.{3}|\\u2026/g,b);b=a.parseTransformString(b)||\n",
-       "[];d=a.parseTransformString(d)||[];for(var k=Math.max(b.length,d.length),p=[],v=[],h=0,w,z,y,I;h<k;h++){y=b[h]||A(d[h]);I=d[h]||A(y);if(y[0]!=I[0]||\"r\"==y[0].toLowerCase()&&(y[2]!=I[2]||y[3]!=I[3])||\"s\"==y[0].toLowerCase()&&(y[3]!=I[3]||y[4]!=I[4])){b=a._.transform2matrix(b,f());d=a._.transform2matrix(d,f());p=[[\"m\",b.a,b.b,b.c,b.d,b.e,b.f] ];v=[[\"m\",d.a,d.b,d.c,d.d,d.e,d.f] ];break}p[h]=[];v[h]=[];w=0;for(z=Math.max(y.length,I.length);w<z;w++)w in y&&(p[h][w]=y[w]),w in I&&(v[h][w]=I[w])}return{from:u(p),\n",
-       "to:u(v),f:n(p)}}function z(a){return a}function d(a){return function(b){return+b.toFixed(3)+a}}function f(b){return a.rgb(b[0],b[1],b[2])}function n(a){var b=0,d,f,k,n,h,p,q=[];d=0;for(f=a.length;d<f;d++){h=\"[\";p=['\"'+a[d][0]+'\"'];k=1;for(n=a[d].length;k<n;k++)p[k]=\"val[\"+b++ +\"]\";h+=p+\"]\";q[d]=h}return Function(\"val\",\"return Snap.path.toString.call([\"+q+\"])\")}function u(a){for(var b=[],d=0,f=a.length;d<f;d++)for(var k=1,n=a[d].length;k<n;k++)b.push(a[d][k]);return b}var p={},b=/[a-z]+$/i,q=String;\n",
-       "p.stroke=p.fill=\"colour\";v.prototype.equal=function(a,b){return k(\"snap.util.equal\",this,a,b).firstDefined()};k.on(\"snap.util.equal\",function(e,k){var r,s;r=q(this.attr(e)||\"\");var x=this;if(r==+r&&k==+k)return{from:+r,to:+k,f:z};if(\"colour\"==p[e])return r=a.color(r),s=a.color(k),{from:[r.r,r.g,r.b,r.opacity],to:[s.r,s.g,s.b,s.opacity],f:f};if(\"transform\"==e||\"gradientTransform\"==e||\"patternTransform\"==e)return k instanceof a.Matrix&&(k=k.toTransformString()),a._.rgTransform.test(k)||(k=a._.svgTransform2string(k)),\n",
-       "w(r,k,function(){return x.getBBox(1)});if(\"d\"==e||\"path\"==e)return r=a.path.toCubic(r,k),{from:u(r[0]),to:u(r[1]),f:n(r[0])};if(\"points\"==e)return r=q(r).split(a._.separator),s=q(k).split(a._.separator),{from:r,to:s,f:function(a){return a}};aUnit=r.match(b);s=q(k).match(b);return aUnit&&aUnit==s?{from:parseFloat(r),to:parseFloat(k),f:d(aUnit)}:{from:this.asPX(e),to:this.asPX(e,k),f:z}})});C.plugin(function(a,v,y,C){var A=v.prototype,w=\"createTouch\"in C.doc;v=\"click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel\".split(\" \");\n",
-       "var z={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},d=function(a,b){var d=\"y\"==a?\"scrollTop\":\"scrollLeft\",e=b&&b.node?b.node.ownerDocument:C.doc;return e[d in e.documentElement?\"documentElement\":\"body\"][d]},f=function(){this.returnValue=!1},n=function(){return this.originalEvent.preventDefault()},u=function(){this.cancelBubble=!0},p=function(){return this.originalEvent.stopPropagation()},b=function(){if(C.doc.addEventListener)return function(a,b,e,f){var k=w&&z[b]?z[b]:b,l=function(k){var l=\n",
-       "d(\"y\",f),q=d(\"x\",f);if(w&&z.hasOwnProperty(b))for(var r=0,u=k.targetTouches&&k.targetTouches.length;r<u;r++)if(k.targetTouches[r].target==a||a.contains(k.targetTouches[r].target)){u=k;k=k.targetTouches[r];k.originalEvent=u;k.preventDefault=n;k.stopPropagation=p;break}return e.call(f,k,k.clientX+q,k.clientY+l)};b!==k&&a.addEventListener(b,l,!1);a.addEventListener(k,l,!1);return function(){b!==k&&a.removeEventListener(b,l,!1);a.removeEventListener(k,l,!1);return!0}};if(C.doc.attachEvent)return function(a,\n",
-       "b,e,h){var k=function(a){a=a||h.node.ownerDocument.window.event;var b=d(\"y\",h),k=d(\"x\",h),k=a.clientX+k,b=a.clientY+b;a.preventDefault=a.preventDefault||f;a.stopPropagation=a.stopPropagation||u;return e.call(h,a,k,b)};a.attachEvent(\"on\"+b,k);return function(){a.detachEvent(\"on\"+b,k);return!0}}}(),q=[],e=function(a){for(var b=a.clientX,e=a.clientY,f=d(\"y\"),l=d(\"x\"),n,p=q.length;p--;){n=q[p];if(w)for(var r=a.touches&&a.touches.length,u;r--;){if(u=a.touches[r],u.identifier==n.el._drag.id||n.el.node.contains(u.target)){b=\n",
-       "u.clientX;e=u.clientY;(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();b+=l;e+=f;k(\"snap.drag.move.\"+n.el.id,n.move_scope||n.el,b-n.el._drag.x,e-n.el._drag.y,b,e,a)}},l=function(b){a.unmousemove(e).unmouseup(l);for(var d=q.length,f;d--;)f=q[d],f.el._drag={},k(\"snap.drag.end.\"+f.el.id,f.end_scope||f.start_scope||f.move_scope||f.el,b);q=[]};for(y=v.length;y--;)(function(d){a[d]=A[d]=function(e,f){a.is(e,\"function\")&&(this.events=this.events||[],this.events.push({name:d,\n",
-       "f:e,unbind:b(this.node||document,d,e,f||this)}));return this};a[\"un\"+d]=A[\"un\"+d]=function(a){for(var b=this.events||[],e=b.length;e--;)if(b[e].name==d&&(b[e].f==a||!a)){b[e].unbind();b.splice(e,1);!b.length&&delete this.events;break}return this}})(v[y]);A.hover=function(a,b,d,e){return this.mouseover(a,d).mouseout(b,e||d)};A.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var r=[];A.drag=function(b,d,f,h,n,p){function u(r,v,w){(r.originalEvent||r).preventDefault();this._drag.x=v;\n",
-       "this._drag.y=w;this._drag.id=r.identifier;!q.length&&a.mousemove(e).mouseup(l);q.push({el:this,move_scope:h,start_scope:n,end_scope:p});d&&k.on(\"snap.drag.start.\"+this.id,d);b&&k.on(\"snap.drag.move.\"+this.id,b);f&&k.on(\"snap.drag.end.\"+this.id,f);k(\"snap.drag.start.\"+this.id,n||h||this,v,w,r)}if(!arguments.length){var v;return this.drag(function(a,b){this.attr({transform:v+(v?\"T\":\"t\")+[a,b]})},function(){v=this.transform().local})}this._drag={};r.push({el:this,start:u});this.mousedown(u);return this};\n",
-       "A.undrag=function(){for(var b=r.length;b--;)r[b].el==this&&(this.unmousedown(r[b].start),r.splice(b,1),k.unbind(\"snap.drag.*.\"+this.id));!r.length&&a.unmousemove(e).unmouseup(l);return this}});C.plugin(function(a,v,y,C){y=y.prototype;var A=/^\\s*url\\((.+)\\)/,w=String,z=a._.$;a.filter={};y.filter=function(d){var f=this;\"svg\"!=f.type&&(f=f.paper);d=a.parse(w(d));var k=a._.id(),u=z(\"filter\");z(u,{id:k,filterUnits:\"userSpaceOnUse\"});u.appendChild(d.node);f.defs.appendChild(u);return new v(u)};k.on(\"snap.util.getattr.filter\",\n",
-       "function(){k.stop();var d=z(this.node,\"filter\");if(d)return(d=w(d).match(A))&&a.select(d[1])});k.on(\"snap.util.attr.filter\",function(d){if(d instanceof v&&\"filter\"==d.type){k.stop();var f=d.node.id;f||(z(d.node,{id:d.id}),f=d.id);z(this.node,{filter:a.url(f)})}d&&\"none\"!=d||(k.stop(),this.node.removeAttribute(\"filter\"))});a.filter.blur=function(d,f){null==d&&(d=2);return a.format('<feGaussianBlur stdDeviation=\"{def}\"/>',{def:null==f?d:[d,f]})};a.filter.blur.toString=function(){return this()};a.filter.shadow=\n",
-       "function(d,f,k,u,p){\"string\"==typeof k&&(p=u=k,k=4);\"string\"!=typeof u&&(p=u,u=\"#000\");null==k&&(k=4);null==p&&(p=1);null==d&&(d=0,f=2);null==f&&(f=d);u=a.color(u||\"#000\");return a.format('<feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"{blur}\"/><feOffset dx=\"{dx}\" dy=\"{dy}\" result=\"offsetblur\"/><feFlood flood-color=\"{color}\"/><feComposite in2=\"offsetblur\" operator=\"in\"/><feComponentTransfer><feFuncA type=\"linear\" slope=\"{opacity}\"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in=\"SourceGraphic\"/></feMerge>',\n",
-       "{color:u,dx:d,dy:f,blur:k,opacity:p})};a.filter.shadow.toString=function(){return this()};a.filter.grayscale=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {b} {h} 0 0 0 0 0 1 0\"/>',{a:0.2126+0.7874*(1-d),b:0.7152-0.7152*(1-d),c:0.0722-0.0722*(1-d),d:0.2126-0.2126*(1-d),e:0.7152+0.2848*(1-d),f:0.0722-0.0722*(1-d),g:0.2126-0.2126*(1-d),h:0.0722+0.9278*(1-d)})};a.filter.grayscale.toString=function(){return this()};a.filter.sepia=\n",
-       "function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"matrix\" values=\"{a} {b} {c} 0 0 {d} {e} {f} 0 0 {g} {h} {i} 0 0 0 0 0 1 0\"/>',{a:0.393+0.607*(1-d),b:0.769-0.769*(1-d),c:0.189-0.189*(1-d),d:0.349-0.349*(1-d),e:0.686+0.314*(1-d),f:0.168-0.168*(1-d),g:0.272-0.272*(1-d),h:0.534-0.534*(1-d),i:0.131+0.869*(1-d)})};a.filter.sepia.toString=function(){return this()};a.filter.saturate=function(d){null==d&&(d=1);return a.format('<feColorMatrix type=\"saturate\" values=\"{amount}\"/>',{amount:1-\n",
-       "d})};a.filter.saturate.toString=function(){return this()};a.filter.hueRotate=function(d){return a.format('<feColorMatrix type=\"hueRotate\" values=\"{angle}\"/>',{angle:d||0})};a.filter.hueRotate.toString=function(){return this()};a.filter.invert=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncG type=\"table\" tableValues=\"{amount} {amount2}\"/><feFuncB type=\"table\" tableValues=\"{amount} {amount2}\"/></feComponentTransfer>',{amount:d,\n",
-       "amount2:1-d})};a.filter.invert.toString=function(){return this()};a.filter.brightness=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\"/><feFuncG type=\"linear\" slope=\"{amount}\"/><feFuncB type=\"linear\" slope=\"{amount}\"/></feComponentTransfer>',{amount:d})};a.filter.brightness.toString=function(){return this()};a.filter.contrast=function(d){null==d&&(d=1);return a.format('<feComponentTransfer><feFuncR type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncG type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/><feFuncB type=\"linear\" slope=\"{amount}\" intercept=\"{amount2}\"/></feComponentTransfer>',\n",
-       "{amount:d,amount2:0.5-d/2})};a.filter.contrast.toString=function(){return this()}});return C});\n",
-       "\n",
-       "]]> </script>\n",
-       "</svg>\n"
-      ],
       "text/plain": [
-       "Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), Compose.UnitBox{Float64,Float64,Float64,Float64}(-1.2, -1.2, 2.4, 2.4, 0.0mm, 0.0mm, 0.0mm, 0.0mm), nothing, nothing, nothing, List([Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.LinePrimitive}(Compose.LinePrimitive[Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9905025880128268cx, -0.3176512835001404cy), (0.9167269715491704cx, 0.47172382155236714cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.9137049493837586cx, -0.4737666582609542cy), (0.16670574480473002cx, -0.9455038450364891cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(0.013015221046202119cx, 0.9595342227670036cy), (0.8135322408191633cx, 0.6138088185826666cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.16706558025891527cx, 0.945644129966688cy), (-0.9136165174377163cx, 0.47588504511756974cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.9131701583122595cx, -0.4638996706926798cy), (-0.9900390343733542cx, 0.3199543463595612cy)]), Compose.LinePrimitive{Tuple{Measures.Measure,Measures.Measure}}(Tuple{Measures.Measure,Measures.Measure}[(-0.8098509704632999cx, -0.6067165775676802cy), (-0.01294752803382511cx, -0.9587579218496962cy)])], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(1.2247448713915892mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.8274509803921568,0.8274509803921568,0.8274509803921568,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}}(Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}[Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((1.0cx, -0.4192705032974433cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.0806820976966316cx, 1.0cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.907229559561997cx, 0.5733430413496701cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-0.9032091926856136cx, -0.5654744994173764cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((-1.0cx, 0.4215291750842578cy), 0.04082482904638631w), Compose.CirclePrimitive{Tuple{Measures.Measure,Measures.Measure},Measures.Measure}((0.08041069418848856cx, -1.0cy), 0.04082482904638631w)], Symbol(\"\"))]), List([Compose.Property{Compose.LineWidthPrimitive}(Compose.LineWidthPrimitive[Compose.LineWidthPrimitive(0.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.25098039215686274,0.8784313725490196,0.8156862745098039,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\")), Compose.Context(Measures.BoundingBox{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}},Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}((0.0w, 0.0h), (1.0w, 1.0h)), nothing, nothing, nothing, nothing, List([]), List([Compose.Form{Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}}(Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}[Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((1.0cx, -0.4192705032974433cy), \"1\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.0806820976966316cx, 1.0cy), \"2\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.907229559561997cx, 0.5733430413496701cy), \"3\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-0.9032091926856136cx, -0.5654744994173764cy), \"4\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((-1.0cx, 0.4215291750842578cy), \"5\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm)), Compose.TextPrimitive{Tuple{Measures.Length{:cx,Float64},Measures.Length{:cy,Float64}},Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}},Tuple{Measures.Length{:mm,Float64},Measures.Length{:mm,Float64}}}((0.08041069418848856cx, -1.0cy), \"6\", Compose.HCenter(), Compose.VCenter(), Compose.Rotation{Tuple{Measures.Length{:w,Float64},Measures.Length{:h,Float64}}}(0.0, (0.5w, 0.5h)), (0.0mm, 0.0mm))], Symbol(\"\"))]), List([Compose.Property{Compose.FontSizePrimitive}(Compose.FontSizePrimitive[Compose.FontSizePrimitive(4.0mm)]), Compose.Property{Compose.StrokePrimitive}(Compose.StrokePrimitive[Compose.StrokePrimitive(RGBA{Float64}(0.0,0.0,0.0,0.0))]), Compose.Property{Compose.FillPrimitive}(Compose.FillPrimitive[Compose.FillPrimitive(RGBA{Float64}(0.0,0.0,0.0,1.0))])]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))]), List([]), List([]), 0, false, false, false, false, nothing, nothing, 0.0, Symbol(\"\"))"
+       "columnGeneration (generic function with 1 method)"
       ]
      },
-     "execution_count": 90,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "gplot(Graph(S), nodelabel=1:6)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 114,
-   "metadata": {
-    "tags": []
-   },
-   "outputs": [
-    {
-     "ename": "UndefVarError",
-     "evalue": "UndefVarError: hk not defined",
-     "output_type": "error",
-     "traceback": [
-      "UndefVarError: hk not defined",
-      "",
-      "Stacktrace:",
-      " [1] top-level scope at In[114]:10"
-     ]
-    }
-   ],
-   "source": [
-    "W2 = [\n",
-    "     0 15  0  0 15 15 15 ;\n",
-    "    15  0  1 15  0 15  1 ;\n",
-    "     0  1  0 15 15 15  1 ;\n",
-    "     0 15 15  0  1  1 15 ;\n",
-    "    15  0 15  1  0  1 15 ;\n",
-    "    15 15 15  1  1  0  0 ;\n",
-    "    15  1  1 15 15  0  0 ;\n",
-    "]\n",
+    "function columnGeneration(W)\n",
+    "    \n",
+    "    n = size(W, 1)\n",
+    "    T_List = wheel_like(n)\n",
+    "    m = length(T_List)\n",
+    "    S = 0\n",
+    "    g = complete_graph(n-1)\n",
+    "    \n",
+    "    cr = -1\n",
+    "    while cr < 0\n",
+    "        \n",
+    "        m = length(T_List)\n",
+    "        \n",
+    "        C = [sum(W .* T) for T in T_List]\n",
+    "        D = [sum(T[i,:]) for i in 2:n-1, T in T_List]\n",
+    "        V = D .- 2\n",
+    "        \n",
+    "        ### Master problem\n",
+    "        master = Model(GLPK.Optimizer)\n",
+    "        set_silent(master)\n",
+    "        \n",
+    "        @variable(master, 1 >= Y[1:m] >= 0, Bin)\n",
+    "        \n",
+    "        @objective(master, Min, dot(C, Y))\n",
+    "        \n",
+    "        @constraint(master, convexCombination, sum(Y) == 1)\n",
+    "        \n",
+    "        @constraint(master, averageDegreeTwo[k in 1:n-2], dot(V[k,:], Y) == 0)\n",
+    "        \n",
+    "        optimize!(master)\n",
+    "        \n",
+    "        println(termination_status(master))\n",
+    "        println(\"obj \", objective_value(master))\n",
+    "        println(\"Y \", value.(Y))\n",
+    "        #println(\"C \", C)\n",
+    "        #println(\"D \", D)\n",
+    "        #println(\"V \", V)\n",
+    "        S = value.(Y)\n",
+    "        \n",
+    "        θ = shadow_price(convexCombination)\n",
+    "        π = shadow_price.(averageDegreeTwo)\n",
+    "        \n",
+    "        println(\"θ \", θ)\n",
+    "        println(\"π \", π)\n",
+    "        \n",
+    "        W_updated = convert.(Float64, W)\n",
+    "\n",
+    "        for i in 2:n-1, j in 2:n-1\n",
+    "            W_updated[i,j] -= π[i-1] + π[j-1]\n",
+    "        end\n",
     "\n",
-    "S2 = hk(W2)\n",
+    "        st = Matrix(adjacency_matrix(Graph(kruskal_mst(g, W_updated[2:n,2:n]))))\n",
+    "        T = zeros(n,n)\n",
     "\n",
-    "gplot(Graph(S2), nodelabel=1:size(W2,1))"
+    "        w_tmp = W_updated[1,2:n]\n",
+    "        min_idx_1 = argmin(w_tmp[1:n-1])\n",
+    "        min_idx_2 = argmin(w_tmp[1:n-1 .!= min_idx_1])\n",
+    "        T[1,min_idx_1+1] = 1 ; T[1,min_idx_2+1] = 1 ; T[:,1] .= T[1,:]\n",
+    "        T[2:n,2:n] .= st[1:n-1,1:n-1]\n",
+    "        \n",
+    "        cr = sum(W_updated .* T) - θ - 2*sum(π)\n",
+    "        \n",
+    "        println(\"cr \", cr)\n",
+    "        \n",
+    "        push!(T_List, T)\n",
+    "        \n",
+    "    end\n",
+    "    \n",
+    "    Tf = zeros(n,n)\n",
+    "    for i in 1:m\n",
+    "        Tf .+= S[i] .* T_List[i]\n",
+    "    end\n",
+    "    \n",
+    "    return Tf\n",
+    "end"
    ]
   }
  ],
diff --git a/heldAndKarp_fluff.ipynb b/heldAndKarp_fluff.ipynb
index c7255e9..3b811f1 100644
--- a/heldAndKarp_fluff.ipynb
+++ b/heldAndKarp_fluff.ipynb
@@ -1536,15 +1536,15 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Julia 1.5.3",
+   "display_name": "Julia 1.4.2",
    "language": "julia",
-   "name": "julia-1.5"
+   "name": "julia-1.4"
   },
   "language_info": {
    "file_extension": ".jl",
    "mimetype": "application/julia",
    "name": "julia",
-   "version": "1.5.3"
+   "version": "1.4.2"
   }
  },
  "nbformat": 4,
diff --git a/wheel_like_1-trees.png b/wheel_like_1-trees.png
new file mode 100644
index 0000000000000000000000000000000000000000..569e02f9e298f42fff0a70951289f7e95c10ae26
GIT binary patch
literal 56918
zcmce;g;$ho7dJd2C}3frN0b~&5Kuy-5s4Wj1f)v==}=M{6(po)=n{oNMY<aVQ3fd)
zx&?<W>4tBQ&-bqPKX_fsb?_`^?z*nMf3@%6hbjtZsOhK?2*epQN>&|#AkRS{$evT4
zfdAu1d#@V)bIeIyK?afAetj1HL2hwR`5ppM5OHe%2?hL{>KRJc34yrGM*4dUt<L%v
zff$)b%ieqR!f0WHD!FZP>+8z2MN4gqUhKjHW-i%SMKRhKYFey%rwRH33n5MB677YM
z=u38K6agWThK0*!9fTv_cb@iJ?QXRKPRqk$0&Y9i#(8^*(_R)z{BE@^?(e3Pj}G>Z
zPQ%gR56wOPS%v@o$Yc^(O!n_b=|*NN(%Hc^1l=c)t`7d355&>_?<bbCXzu_0BzqmJ
z^}nBj?y|y_lm5^=N9i5=_Y>2^|NAfe{j1j7Q^2<W*4oZ=YSQk;{E(^C!FtpU-9odp
zzCcDFOR01J&aGkI_vlcH{`l?X-T6G>Q<rb%H-BEP-D?-L?#9~=mv?3x)#%l+*crHu
zxNQEhNcA?C`gd#mh?rs-rK{pE@~wKl#0(Ue2JTF}<!fE*kjhI9R;uyb>cvbipZ#|P
zag-jjb@OHo83lEG-QjM_54Yjxfd~IB@>VVIYgE5@-j$;-?DY5dJ*O^Z;aQ7+9|>Y)
z&7l$M&DJ$#SAA#8rJZX#SZtN9a9=x9osB+Yw7|4UsXbX_QRnbo05vWD-sWP_^Shz+
zV!Z}FJCjd#s{WlJ%^5guT8>`H&+bf(rtk<xDSN3m6SaFw0!aDLUwEWK_;pdmnj(vi
zM5P3A?=!^Z1hxm4op#r)u6b_E^|YM6%HNo6P(kR<(btYRp>UXsE#KYfGv1*5cY+1M
zI9isULVX6NhlhI(Vn*f9J{-i;8CE*qwi_xfLBC5BvYG3|uQy&)ji;vNia*KlLOOyx
z*Qmy$G++FGU+@OLpkcZ0$o|clYv$}K$)6R-gsr<d>92OxdhZ>T&dO!+)$J2(`}6B_
z@pK}NI0of+th1wDYsyi=4o3QZk|o>~|GQO}SaTwu;3Q+Rzfijds7<%0D3{s}wA$p=
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
A1poj5

literal 0
HcmV?d00001

-- 
GitLab