{ "cells": [ { "cell_type": "markdown", "id": "016d0f49", "metadata": {}, "source": [ "# `tapas` — TAPAS — traffic assignment by paired alternative segments (Bar-Gera 2010) on the Braess network\n", "\n", "**What.** TAPAS solves the UE link flows AND selects the unique *proportional* (entropy-consistent) route-flow solution among the many that share those link flows, by equilibrating over paired alternative segments. The extra structure — a route-flow property invisible to link flows — is reported as provenance; the scored quantity here is still the certified link-flow gap.\n", "\n", "**Why it is in the benchmark.** It is the top rung of the bush-based family, adding route-flow uniqueness on top of the unique UE link flows (`[bargera2010traffic]`). See its entry in the\n", "[model compendium](../../docs/MODELS.md) and the certificate design in\n", "[docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md) (P1).\n", "\n", "**Scope.** This notebook runs the solver on the built-in Braess scenario (5 links,\n", "one OD pair, no download) and certifies the result; it does not benchmark solver\n", "families against each other — for that, see `demos/demo_quickstart.py`.\n", "\n", "Primary reference: `[bargera2010traffic]` ([docs/REFERENCES.md](../../docs/REFERENCES.md))." ] }, { "cell_type": "markdown", "id": "d2f75a43", "metadata": {}, "source": [ "## How this notebook is graded\n", "\n", "**A notebook never claims a number it does not compute in that cell.** Every scored\n", "quantity below is recomputed live by the P1 `Evaluator` from the flows the model\n", "emitted, in the cell where it is claimed. Model self-reports are shown only as\n", "provenance and diffed against the certificate as an honesty check, exactly as the\n", "harness treats them ([README](../../README.md), *Certified, not self-reported*)." ] }, { "cell_type": "code", "execution_count": 1, "id": "1dc3fa49", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:18.094535Z", "iopub.status.busy": "2026-07-21T13:45:18.094176Z", "iopub.status.idle": "2026-07-21T13:45:20.018101Z", "shell.execute_reply": "2026-07-21T13:45:20.017130Z" } }, "outputs": [], "source": [ "# Setup. `tapas` is a core model: a plain `pip install -e .` suffices — no\n", "# optional extra, so no guard cell. The inline backend is Agg-based (headless CI\n", "# renders into the notebook); NEVER matplotlib.use(\"Agg\") in-kernel — it silently\n", "# suppresses inline figure capture.\n", "%matplotlib inline\n", "import numpy as np\n", "\n", "from tabench import (\n", " Budget,\n", " Evaluator,\n", " RngBundle,\n", " TapasModel,\n", " Trace,\n", " braess_scenario,\n", " viz,\n", ")" ] }, { "cell_type": "markdown", "id": "c18c6fd2", "metadata": {}, "source": [ "## The scenario\n", "\n", "The built-in Braess network: 4 nodes, 5 links, a single OD pair (1 → 2) with demand\n", "6. Scenarios are frozen and content-hashed (P2) — the hash printed below is the\n", "identity of the benchmark instance, so a silently edited network cannot masquerade\n", "as it." ] }, { "cell_type": "code", "execution_count": 2, "id": "7587cf14", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:20.022257Z", "iopub.status.busy": "2026-07-21T13:45:20.021988Z", "iopub.status.idle": "2026-07-21T13:45:20.027188Z", "shell.execute_reply": "2026-07-21T13:45:20.026507Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario : braess\n", "content hash : cf00f411cdccec88…\n", "links : 5 (tail→head: 1->3, 1->4, 3->4, 3->2, 4->2)\n", "total demand : 6.0\n" ] } ], "source": [ "scenario = braess_scenario()\n", "net = scenario.network\n", "\n", "print(f\"scenario : {scenario.name}\")\n", "print(f\"content hash : {scenario.content_hash()[:16]}…\")\n", "print(f\"links : {net.n_links} (tail→head: \"\n", " + \", \".join(f\"{i}->{j}\" for i, j in zip(net.init_node, net.term_node)) + \")\")\n", "print(f\"total demand : {scenario.demand.total}\")" ] }, { "cell_type": "markdown", "id": "f882af64", "metadata": {}, "source": [ "## Solve\n", "\n", "The model contract ([CONTRIBUTING.md](../../CONTRIBUTING.md)): a model receives\n", "`(scenario, budget, rng, trace)`, records checkpoints, and respects the budget.\n", "Budgets are hardware-free (iterations / shortest-path calls; wall-clock is recorded\n", "but never the ranking axis, P7). Whatever the model writes into `self_report` is\n", "provenance, not a score." ] }, { "cell_type": "code", "execution_count": 3, "id": "49c46ae8", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:20.031415Z", "iopub.status.busy": "2026-07-21T13:45:20.030777Z", "iopub.status.idle": "2026-07-21T13:45:20.056938Z", "shell.execute_reply": "2026-07-21T13:45:20.056263Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "model : tapas\n", "budget spent : 50 iterations, 164 shortest-path calls\n", "checkpoints : 50\n", "emitted flows : [4. 2. 2. 2. 4.]\n", "self-reported gap: 2.060e-16 (provenance only)\n" ] } ], "source": [ "model = TapasModel()\n", "bundle = model.solve(scenario, Budget(iterations=50), RngBundle(0), Trace())\n", "\n", "final = bundle.final\n", "print(f\"model : {model.name}\")\n", "print(f\"budget spent : {final.coords.iterations} iterations, \"\n", " f\"{final.coords.sp_calls} shortest-path calls\")\n", "print(f\"checkpoints : {len(bundle.trace.checkpoints)}\")\n", "print(f\"emitted flows : {np.round(final.link_flows, 6)}\")\n", "print(f\"self-reported gap: {final.self_report['relative_gap']:.3e} (provenance only)\")" ] }, { "cell_type": "markdown", "id": "e7cb1e43", "metadata": {}, "source": [ "## Certify (P1)\n", "\n", "The harness, never the model, computes every scored metric: the relative gap is a\n", "property of `(link_flows, scenario)`, recomputed here by the same `Evaluator` that\n", "scores every model in the benchmark. We also recompute the analytic Braess anchor\n", "in-cell rather than quoting it: at UE the flows are (4, 2, 2, 2, 4) and every used\n", "route costs 92 (pinned in [`tests/test_braess.py`](https://github.com/UMN-Choi-Lab/TABenchmark/blob/main/tests/test_braess.py)). TAPAS's route-flow proportionality is a distinct property (ADR-004), reported by the harness as provenance only — never the scored metric — so this cell certifies the same link-flow gap as every other UE solver." ] }, { "cell_type": "code", "execution_count": 4, "id": "c75c6af2", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:20.060896Z", "iopub.status.busy": "2026-07-21T13:45:20.060692Z", "iopub.status.idle": "2026-07-21T13:45:20.080914Z", "shell.execute_reply": "2026-07-21T13:45:20.080239Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "certified relative gap : 2.060e-16\n", "feasible : 1\n", "Beckmann objective : 386.000008\n", "route time (TSTT/D) : 92.000000 (analytic UE: 92)\n", "checkpoints certified : 50 (first gap 1.612e-12, last 2.060e-16)\n" ] } ], "source": [ "evaluator = Evaluator(scenario)\n", "metrics = evaluator.evaluate(final.link_flows)\n", "\n", "certified_gap = metrics[\"relative_gap\"]\n", "print(f\"certified relative gap : {certified_gap:.3e}\")\n", "print(f\"feasible : {metrics['feasible']:.0f}\")\n", "print(f\"Beckmann objective : {metrics['beckmann_objective']:.6f}\")\n", "\n", "# TAPAS reaches machine precision on the certified LINK-flow gap on Braess; its\n", "# route-flow proportionality is provenance, not the score.\n", "assert metrics[\"feasible\"] == 1.0\n", "assert abs(certified_gap) < 1e-10\n", "\n", "# Honesty diff (P1): this white box's self-report must match the certificate.\n", "assert np.isclose(final.self_report[\"relative_gap\"], certified_gap, rtol=1e-9, atol=1e-12)\n", "\n", "# Analytic anchor, recomputed in-cell.\n", "ref_flows = np.array([4.0, 2.0, 2.0, 2.0, 4.0])\n", "assert evaluator.evaluate(ref_flows)[\"relative_gap\"] < 1e-6\n", "assert np.allclose(final.link_flows, ref_flows, atol=1e-4)\n", "route_time = metrics[\"tstt\"] / scenario.demand.total\n", "print(f\"route time (TSTT/D) : {route_time:.6f} (analytic UE: 92)\")\n", "assert abs(route_time - 92.0) < 1e-3\n", "\n", "# Certify EVERY checkpoint the same way — the trace feeds the visual below.\n", "trace_gaps = [\n", " evaluator.evaluate(c.link_flows)[\"relative_gap\"] for c in bundle.trace.checkpoints\n", "]\n", "print(f\"checkpoints certified : {len(trace_gaps)} \"\n", " f\"(first gap {trace_gaps[0]:.3e}, last {trace_gaps[-1]:.3e})\")" ] }, { "cell_type": "markdown", "id": "5dc895e2", "metadata": {}, "source": [ "## Visualize\n", "\n", "Both figures come from `tabench.viz`, the house visualizer — one visual style across\n", "every tutorial, every plotted number certified above. Left/top: the certified\n", "equilibrium link flows on the Braess diamond. Right/bottom: the emitted flows against\n", "the analytic UE recomputed in the previous cell — points on the `y = x` guide mean\n", "the solver reproduced the certified equilibrium link-for-link." ] }, { "cell_type": "code", "execution_count": 5, "id": "a798baa1", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:20.084604Z", "iopub.status.busy": "2026-07-21T13:45:20.084308Z", "iopub.status.idle": "2026-07-21T13:45:20.379756Z", "shell.execute_reply": "2026-07-21T13:45:20.378798Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAHXCAYAAADeCAHgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMq0lEQVR4nO3dd3xT5eIG8OckTdKku01baGmhzPtDEVDKBkHLlCFL3F4VkKG4FbeCDEW89yqjAuJE2QgOhrgYUlAQcAAXxcu2bdqmTduUrPf3R21oaQtJm+ZkPN/Pp59Pk5ycPMTIw3veN+dINptVgIiIiC5LIXcAIiIif8HSJCIichFLk4iIyEUsTSIiIhexNImIiFzE0iQiInIRS5OIiMhFLE0iIiIXsTSJiIhcxNIk8oJp06Zh0qRJLm27fPly9OzZs4ET1c27776H1q3bICkpGQcPHpQ7DpHXhcgdgIj8g9VqxZNPPon169ehe/fucschkgVHmkQEm80GIS59Gurs7GyUlZWhbdu2dXoNq9Vap+cR+RKWJhGAdu3aYd6819GnT180bpyEUaNGIz+/AI888ihSU1PRsePV2LNnj3N7k8mEqVMfROvWbdC6dRs89NDDKCkpcT6+a9cudOvWHUlJybjtttthMhVXeb3jx//E2LFj0bx5C1x55ZWYO3cuHA7HZXMuWLAAQ4YMrXLf2rXr0KlTOgDgwIEDuP76DDRpkoK0tOYYO3ZsrfuKiorG4sWL0bVrNzRunITi4uJacx08eBDp6Z0BAG3bXoH27TsAAIqLi/HYY4/jiiuuRIsWLXHfffehsLAQAHDixAlERUXjww8/RIcOHfF//9fWmXHIkCFo2rQZOnToiHfffc+Zafbs2Rg7diwee+xxpKam4oorrsTateucjzscDmRmZqJTp3QkJzdBx45XY9u2bQAAIYTzsdTUVNxwww04evToZd9TInewNIn+tn79Onz44Qc4cuQwzpw5g4yMDPTpcy3+/PNPjBkzGg8//LBz22nTpuH48ePIytqN3bu/x7Fj/8VTTz0NACgoMOKWW27B+PHjcfLkCdx++21YtWqV87mlpaUYPnwYrr32Whw5chibNm3C2rXr8OGHH14245gxY5CVlYXTp08771u5cqWzHB9//AkMHDgQJ0+ewJEjhzF16tRL7m/16jVYv34dTp8+BaVSWWuu9u3bIytrNwDgt99+xcGDBwAAU6bcj4KCAuzatROHDh2E1WrD448/XuU1Nm3ahG+//QaHDh1EdnY2brxxBO65514cP/4HPvpoOWbPno1vv/3Ouf1XX32N7t27488//8Szzz6DqVOnwmQyAQAWL16MhQsXYcmSJTh9+hQ2btyAlJQUAMDSpW/jgw8+wMqVK3D8+HEMHToUY8feDIvFctn3lchVLE2iv91zz71o0qQJoqKi0K9fP8TGxmLYsGFQKpUYOXIkfvvtMCwWCxwOB1atWo0XX3wBsbGxiIuLw/PPP48VK1bA4XBgy5bNaNSoMe65526EhIRg0KBB6N27t/N1tmzZiqioaEyePBlqtRopKSmYOHEiVq9ec9mMCQkJ6NOnD1atWg0AyM3NxTfffIObby4vTZUqBKdOncK5c+eg0WjQo0ePS+7vwQenonHjxtBoNG7nMhgM2LhxI1577TVER0cjLCwMzzzzNNatWw+73e7c7sknn0R0dDR0Oh1WrFiJHj26Y+TIEVAqlWjbti1uu+02rF692rl9+/btnY/ffHN56f3++x8AgLffXoannpqGjh07QJIkpKSkoE2bNgCApUuX4umnn0aLFi0QEhKCiRMnoqysDD/++ONl31ciV3EhENHfEhLinb/rdNoqt7VaLYQQKC0thcVigcViQWpqqvPxZs2a4fz588jLy8O5c385Rz8VUlJScP58GQDg5MmTOHz4cJXnOxwCycnJLuW8+eabMXfuXDzyyMNYs2YNunTp7Hy9+fMX4JVX5uDaa/sgOjoaEyaMx4QJE2rdV5MmTZy/u5vrxImTcDgcaN/+qir3KxQKZGdnV3qNC+/FyZMnsXXrl1Vew253oFu3bs7biYkJzt8lSYJWG4ri4vKR5qlTp9CiRYsa85w8eRITJtwHpfLCWMBiseLs2bM1/+GJ6oClSeQmvV4PtVqNkydPIiGh/C/4kydPQqPRIC4uDo0bN8KpU6eqPOf06dOIj9cDAJKTk9GhQwd89dW2Or3+DTcMxsMPP4yffjqAFStWYty4e52PNW+ehrfeegtCCGRlZWH48BuRnt4ZHTt2qHFfCsWFgnE3V5MmyVAoFDhy5Ah0Ol21x0+cOPH3a0hVXmPIkCF4551lLr3GxVJSUnD8+HF07ty52mPJycmYM2c2MjIy6rRvIlfw8CyRmxQKBcaMGY3p02cgP78A+fn5eOml6Rg7diwUCgX69x+Ac+fO4d1334PNZsOWLVuwfft25/MHDhyAnJwcLFmyFGVlZbDb7Th27Bh27Njh0utrtVoMGzYMM2bMwNGjR3HjjTc6H/v444+Rk5MDSZIQFRUFhUJRZeR1Ke7mSkxMxA033IDHH38ceXl5AMpX2H766ae1vsbNN4/F9u3bsWHDBlitVlitVhw6dAj79u13KePdd/8Tc+a8gkOHDkEIgVOnTjkX+4wfPw4zZ87CsWPHAABFRUX4/PPPnfOhRJ7A0iSqgzlz5iA1NRVdunRBly5d0bx5c8yaNRMAEBsbg48+Wo7MzEykpjbF+++/jzFjxjifGx4ejg0bNuC7775Du3ZXIS0tDffeOw7Z2Tkuv/4tt9yMr776CjfccAMiIiKc93/77bfo0aMnkpKSccstt2LGjOm46qqrLrGnC+qSa9GihYiKikKfPn3RpEkKBg4chAMHaj/pQVJSEtatW4t33nkXrVu3QcuWrfDYY4+7XGwTJ07Evffeg3/+824kJzfB8OE34tSp8kVREyZMwK233orbb78DTZqkoHPnLi7NExO5Q7LZrJf+chYREREB4EiTiIjIZSxNIiIiF7E0iYiIXMTSJCIichFLk4iIyEUsTSIiIhcFdGlWnPbscpc8IiIickVAl6bZbMY/77oDZrO53vvKz8v1QCLvYmbvYOaG5295AWb2lvpkFkLAZCp06bJ8FQK6ND3JnTfVVzCzdzBzw/O3vAAze0tdMwshYDTmobSkGDab6xdIZ2kSEVFQqShMy/nziI6Jg1qtcfm5LE0iIgoaFxemRhPq1vN5aTAiIgoakiRBow6FThfudmECHGkSEVEQEEKgrKx8UagurG6FCbA0iYgowFUcki00FsBut9drXzw8ewl2h8De46XY84cZBqMZ+mgDurTQonNzHZSVrkZPRES+6eI5TKVSWa/9sTRrsfv3Erz5ZR6yi2wAypc1KxRF+PRAERIjQ/BAvzh0axkmc0oiIqpNfRf91ISHZ2vwzeFiPLcuB9lFNrRIUOOBjDg82U+LBzLi0DxejewiG55bl4NvDhe7vW+j0Yh33nnX86GJiKgKIQSEEB4rTIClWU1OkQ2vfJ4LIQSmXB+Ht/6ZjBuviUKnpiG48ZooLL47GVOuj4MQAq98notck82t/RcWFuLdd99tmPBERAQhBOx2GxQKBWJi9B4rTICHZ6v57GARrHaBge0iMLJTVLXHJUnCyE5R+D3Hgi0/m/DZARPu7hXj8v5nzHgZR48eRc+ePTF06FDs2LEThYWFEMKBGTNeRt++fbBjxw68+upcqFQqnDhxAoMGDcLLL88AAEyd+iAOHDiA8+fP47bbbsPUqQ/Abrdj4sRJOHjwIJRKJaZMmYzbb7/dQ+8IEZHvsNkc+GhPIVbtLUSuyQaHQyAitAT9rgzHpOtiEaVVwmjMg91mR5w+AZLk2fUnLM2LbPm5/JDryE6Rl9xuVKdIbPnZhM0/u1eazz33LI4dO4bvvvsWVqsVkydPRkREBLKzszFy5Ejs2rULAPDjjz9i7949aNy48d/lugO9evXCiy++iNjYGNhsNgwcOAgjR45Abq4BJ06cwN69ewCUj2aJiALNf8+VYdw7Z1BkvnDqPAEgv8SOlXsKsfaHIjx0vRb9WgPRMXEeL0yApVmF3SFgMNmgUyvQIuHSp1VqkaCBTq2AwWSD3SHqtJpWCIHnn38BWVlZUCoVOHbsd1gsFgBAly5dkJKSAgAYPnw4srKy0KtXL6xduwbvvfc+HA47zpw5i//+9xg6duyIc+fO4dFHH8PgwYNx/fXXuf+HJyLyYafzLbhryWmYrQJalYQB7SJwW/donC/Ox+5TaqzcW4hckx3zvixFhC4Wwxt57pBsZbLPaX7zzde4acwo5yjpYvv2/YiHHnwAUx+YgtfmvorS0tIGyyKh/PCr1S5gd1z6cmJ2h4DVLqCQJNT12yerVq1CaWkJduzYjp07dyIsLMxZmpX/hVT+u4Q///wflixZis8//wzff/89evfuDYvlPGJiorF79/fo0aMHFi5ciGeeebZugYiIfNTTa7JhtgrEhinx2SPN8OKIRLRK1KBRpALj+8Th86lJaNdYAQFg7mZjg518XtbSzMnJwVfbtqFVq9Y1Pl5mNiNz0UI8/sSTeOPNBYiJicHaNasbLI9CIaFFvBpWu8APf176cmI/HDfDahdokaB26xBAREQEiovLDwGbTCbExycgJCQEmzdvRn5+vnO7PXv24MyZM7DZbNi4cSO6deuK4mITwsLCEBkZiTNnzuC7774FAOTl5cHhcGDkyBF46qlp+Pnnn93/wxMR+ai8Yht+OVMGAPjXrY0RF37hIGnFCllNaCiWjWuKUJWE4vMObPzJ1CBZZCtNh8OBtzIX4p577oVKpapxm58O/IRmzdKQnNwEADBgwEDs2rWzQXMN7RgBAPg4ywirvebRptUu8PEeY/n2HSLc2n9sbCzat2+Pbt26o6ioCLt370a3bt2xZctWpKQ0cW53zTXX4IEHpqJLl67o2PFq9OzZE+3atUObNq3RqVM67r//AXTt2g0AcPbsWQwefAN69OiBRx55FNOmPVmHPzkRkW9a80MhHA6gUVQI2qdqnfcLIeBwOGAyla/jUKtD0KNV+ffnP9lf1CBZZJvT/OyzT9GmzT/QvEWLWrcxGAyIj4933o5PSEBBgRF2u73GszpYrVZYrReui1aXi09f3zYcH+024pfTZZixIQcP9o+r8q+avGIb/rM1D7+cLkNiZAiuaxvu9mssW/a28/cnn6y54KKjo/HBB+9Xuz8zM7PG7Xfu3OF2DiIif5BXXH7qu0ZRVUeYRmMeAFHlKyWtG6nx1W+AqaxhDs/KUponT57EnqwsvDR9hkf3u379OqxZvara/XmGHJRqtTU8o2aPXx+C6V9YseOoCd//14SOKSGI1Qnkl/4P+0/Z4BBAtFbC49eHoKQwFyWe/EMAKDQWwHL+PAy52fXaj91uq/c+vI2ZvcPfMvtbXoCZPUlhLytfJWuywJCb7Rxhlq+dBUxFhTChfLR5MscMAUAJ9/4s+vhEl7aTpTSPHP4Nubk5eHDq/QDKz5Kz+K1TMBYUoP+Agc7t9Ho9Dh086Lydm5ODmJjoWs8dOGLESAwZMtR522w2Y9LECYjTJ0Cn07mcTx8PZDay4b2dBfj6t2LsP+34+zR6CqhVSlz3f+G4s2cMEiMb5u0bMnQYhgwdVu/9GHKzXf4g+Apm9g5/y+xveQFm9qSRXcqwYt8pnDI6YFfHIjykDMWmIkTHxMFUVFgl8/d/HocEoOc/oqCP13s8iyyl2X/AwCrl+OILz2PwDTegc+cuVbbr0KEj3l66BGfOnEZychNs2bIZ3Xv0rHW/KpWq1vlRdyVGhuCJwfGYdF0sDpwow1+GAjTSx6BD01BEhNbvhL9EROS61o1DkRKrwql8Kx5b8RfeHZcEtVoDlUrtHGECwJvbDCgosUOllDDu2tgGySL7V04utnLFx9i6dQsAQKvVYuLEyZj76it44P4pyMvPw+hRo72aJyJUiV5twtC3tQq92oSxMImIZPDoQD0kCfj5dBnGLDiNrD8vrF85nnseD3xwBm9/VwAAGJUeCZ26YerNJ05u8OJL052/j735liqPdUpPR6f0dG9HIiIiHyGEQPtGZbi/twoLtltxPNeCBz44C61aggQBs6UIFd91GNAuHNNuSGiwLD5RmkRERDWpfHmv23s1Qrf/A/7zZR72/c8Ms0VAoPyQactENcb1jsXAq9z7GqC7WJpEROSzigqNVa6H2TYZeOufySizOPC/PAuyc/LQvlUionXeqTOWJhER+ayw8HCEarXVLu8VqlbgH41DoQ8J8VphAj64EIiIiIKbEALFpiIIhwMhISqPXg+zvliaRETkMyrmMEtKTLDabHLHqYalSUREPqHyop/omDio1Wq5I1XD0iQiItldXJi+dEi2Mi4EIiIi2UmSBLVKA50u3GcLE2BpEhGRjIQQsFjOQ6MJRVh4w37H0hN4eJaIiGRRcUjWaMyH3W6XO45LWJpEROR1VeYwo2NrvXqVr2FpEhGRV/nLop+asDSJiMirhBAQDoffFSbAhUBEROQlQgg4HA4olUrExMZDkiS5I7mNI00iImpwzkU/BQYIIfyyMAGWJhERNbDKc5jhEVF+W5gAS5OIiBqQPy/6qQlLk4iIGozVaoHVYgmIwgS4EIiIiBqAEAIAoFZroI9PhELhH9/DvByONImIyKMqDskWFxcBQMAUJsDSJCIiD6o8h6lWa+SO43EsTSIi8ohAW/RTE5YmERF5RGlJcUAXJsCFQERE5CG6sHCoNRqoVGq5ozQYjjSJiKjOhBAoNObDarFAkqSALkyApUlERHVUMYdZVmaGQzjkjuMVLE0iInJbMCz6qQlLk4iI3FZUWBB0hQlwIRAREdWBLiwcoVpdUBUmwJEmERG5SAiB4uIiCCGgUqmDrjABliYREbmgYg6zpNgEm9UqdxzZsDSJiOiSLl70o1IH9tdKLoWlSUREtQrWVbK14UIgIiK6JFWIGjpdeNAXJsDSJCKiGgghYLVYoNZoEB4RKXccn8HDs0REVEXFIVmjMQ8Oh13uOD5FtpHmyzOmw2gsgCQpoNVqcfc99yAtrXmVbX799RfMmjkTSUlJzvtmzpwFtSbwrtFGROQLLp7DDKQLSHuCbKX58COPIiwsDACwd88eLFwwH3Nfe73adklJSZj72jxvxyMiCjpc9HN5sh2erShMACgtLQEgyRWFiIj+5rA7WJiXIOtCoPlvvoFff/0FAPDUU8/UuE129l948onHoFAo0KfvdRgwYGCt+7NarbBW+tKt2Wz2bGAiogAkhIAQDkiShNi4eEgSBzG1kWw2q5A7xLfffoPd3+/CU08/W+X+0tJSQAjowsKQl5eH2bNexshRo9G9e48a97Nq1UqsWb2q2v3z5s2DVqutV0a73Qal0r8WGzOzdzBzw/O3vID/ZBZCwOFwACivAn/IXJmn3md9fKJL2/lEaQLAbbfegsy3FiMiIqLWbdavX4eC/Hzcc++4Gh+vaaQ5aeIEvPveB9DpdPXKZ8jNdvlN9RXM7B3M3PD8LS/gH5kvnsM0FRX6fOaLeft9lmVOs6SkBPn5+c7be/fuQUREOMLDw6tsV1BQ8Pe/gMoLcP++H9EsLa3W/apUKuh0OudPfUeXRESBiot+6kaWcXhpaQlenzcPFosFCoWEyMhITJv2NCRJQuaihejUKR2d0tOxJ2s3tm7dAqVSCbvdjq7duqNv3+vkiExEFFAslvOwWCwsTDfJUprx8QmYPeeVGh+bOGmy8/eBgwZj4KDB3opFRBTwhCifkdNoQhGvT4RCye9huoNnBCIiChLOy3uVmACAhVkHLE0ioiBQeQ5TpQreS3vVF0uTiCjAcdGP57A0iYgCXEmJiYXpIf71LVYiInJbWFgENOpQqNQ8LFtfHGkSEQUgIQQKjfmwWq2QJImF6SEsTSKiAFMxh1lWZub1MD2MpUlEFEC46KdhsTSJiAJIYWEBC7MBcSEQEVEA0enCoNXqWJgNhCNNIiI/J4RASYkJQgio1RoWZgNiaRIR+bGKOcxiUxFsNuvln0D1wtIkIvJTFy/64enxGh5Lk4jID3GVrDy4EIiIyE+FKEOgiwlnYXoRS5OIyI8IIWC1WqBWaxARGS13nKDDw7NERH6i4pCssSAPDodD7jhBiaVJROQHKs9hRkXHQqHgX99y4LtOROTjuOjHd7A0iYh8nMPhgN1mZ2H6AC4EIiLyUUIICCGgVCoRp0+AJElyRwp6HGkSEfmgyot+hBAsTB/B0iQi8jGV5zDDwiNYmD6EpUlE5EO46Me3sTSJiHyI5XwZLOctLEwfxYVAREQ+oGLeUhOqhT5eDaVSKXckqgFHmkREMqs4JFtSYgIAFqYPY2kSEcmo8hxmSIhK7jh0GSxNIiKZcNGP/2FpEhHJpLi4iIXpZ7gQiIhIJmFhEdBoQqFWa+SOQi7iSJOIyIuEECgsLIDNZoVCoWBh+hmWJhGRl1TMYZaZS2G32+WOQ3XA0iQi8gIu+gkMLE0iIi8oNOazMAMAFwIREXmBVhcGrS6MhennZCvNl2dMh9FYAElSQKvV4u577kFaWvNq23391TZ88sl6CCFwxZXtMG7ceISEsOuJyPcJIWAuLWFZBhDZ2ufhRx5FWFgYAGDvnj1YuGA+5r72epVtcrKzsXLlCrzyylxERUfj1VfmYNu2LzFw4CA5IhMRuazyHKZKrYFKxbP9BALZ5jQrChMASktLAFS/XlxW1m5c0ykd0TExkCQJ/fr3x66dO2vdp9VqRWlpqfPHbDY3RHQioksSQsDhcDjnMFmYgUPW45zz33wDv/76CwDgqaeeqfa4wWBAfHy883ZCfAIMBkOt+1u/fh3WrF5V7f48Qw5Ktdp6ZbXbbTDkZtdrH97GzN7BzA3Pn/JWFCYgoFAoYCoqhAmFcsdyiT+9zxU8lVkfn+jSdrKW5v0PTAUAfPvtN1i+/AM89fSz9drfiBEjMWTIUOdts9mMSRMnIE6fAJ1OV699G3KzXX5TfQUzewczNzx/yiuEgKnIiPPnyxCf0FjuOG7xp/e5grcz+8RXTvr06YtffvkVJpOpyv16vR65ubnO2zm5OdDr9bXuR6VSQafTOX+09RxdEhG5SggBq9UCSZIQGRUDSfKJv17Jw2T5r1pSUoL8/Hzn7b179yAiIhzh4eFVtuvStSv2/fgDjAUFEELgy61b0aNHD2/HJSK6pIpFPwX5hr8PzVKgkuXwbGlpCV6fNw8WiwUKhYTIyEhMm/Y0JElC5qKF6NQpHZ3S05GY2AhjbhqL554rn+9s2/YKZPTrL0dkIqIaXXymH4WCI8xAJktpxscnYPacV2p8bOKkyVVuZ2T0Q0ZGP2/EIiJyC0+NF3z4TyIiojpy2O2w22wszCDCU+sQEblJCAEhBJQhIYjTJ0KSqn/PnAITR5pERG6oOCRbaMyHEIKFGWRYmkRELqo8h6kLC2dhBiGWJhGRC7johwCWJhGRS86fL2NhEhcCERFdSsW8ZWioFqr4RCiV/GszmHGkSURUi/JDsvl/X4kJLExiaRIR1eTCHGYZlEql3HHIR7A0iYguwkU/VBuWJhHRRYpNRSxMqhEP0BMRXSQsPAKa0FCo1Rq5o5CP4UiTiAjlh2SLCgtgt9mgUChYmFQjliYRBb2KOUyzuRR2u13uOOTDWJpEFNQuXvSj1nCESbVjaRJR0BJCoNCYz0U/5DIuBCKioCVJEkK1Omh1YSxMcglHmkQUdIQQKC0tgRACoaFaFia5jCNNIgoqlecw1Wo1QkJUckciP8KRJhEFjYsX/bAwyV0sTSIKCjw1HnkCS5OIgoZCUrAwqV44p0lEAU0IAZvNBpVKhajoWLnjkJ/jSJOIAlbFIVljgQHC4ZA7DgUAliYRBaTKc5iRUTGQFPzrjuqPnyIiCjhc9EMNhaVJRAHHbrfBZrWxMMnjuBCIiAKGEAIAEBKigj4+EZIkyZyIAg1HmkQUECoOyRYa8wGAhUkNgqVJRH6v8hymVhcmdxwKYCxNIvJrXPRD3sTSJCK/VlZmZmGS13AhEBH5JSFE+fUwQ7VQqdQICeFfZ9TwONIkIr9Tfkg2H2ZzKSRJYmGS17A0icivXJjDLIOCZ/khL+Mnjoj8Bhf9kNxkOaZhsVjw73+/jjOnT0OtViMyMgrjx09Ao8aNq2yXk5ODB+6fgtTUVOd9jz72OBo1auTtyETkA0ymQhYmyUq2iYCMjH7o2PFqSJKEzZu+QGbmIrz40vRq22m1oZj72jwZEhKRrwkLi0BoqBZqtUbuKBSk3D48++mnn8JoNNbrRdVqNa6++hrnGTtatW6N3Nyceu0TAKxWK0pLS50/ZrO53vskInkJIeBw2GG326FUKlmYJCvJZrMKd55w7bV98Ntvv+H//u//0Lt3b/Tu3Qvdu3dHeHh4nUO8+cZ/EB4ejrvvubfK/Tk5OXhw6v1o1qwZHA4H0tM7Y+TIUVAolTXuZ9WqlVizelW1++fNmwetVlvnfED5CaCVSv9aocfM3sHMDae8MB0ABBQKpV+dGs9f3uPKgjmzPj7Rpe3cLk0AKCgwYteundi+fTt27NiJ33//HR07dsTWrVvcDrpu3Vrs+/FHPP/Ci9Boqv4LsmLkGBUVhWKTCf/61+u4qn17DB9+Y437slqtsFqtzttmsxmTJk7Au+99AJ1O53a2ygy52S6/qb6Cmb2DmRtG5UU/CoUC8QmNL/8kH+IP7/HFmPny6rR6NiYmGq1bt0arVq3RqlUr6HS6v/816J6NGzdg7549ePqZZ6sVJgCoVCpERUUBAMIjItD3uutw+PBvte5PpVJBp9M5f+o7uiQieQghUGjMdy76kSQu9Cff4PaY9t57x2HXrl2Ii4vFtddei1tuuRnz57+JyMhIt/bz2acbsWvnTjz3/AsIC6v5BMuFhYUICwtDSEgIrFYr9u7Zg7Rmae5GJiI/U3GmH60uDBpNKEwolDsSEYA6lOY333yDyMhIZGT0Q69evdC9eze3D33m5eXh/fffQ2JiIl568QUA5aPEWbPnYOWKjxETG4v+/QfgyJHDWLVyBRQKBex2O668sh1GjhrtbmQi8hNCCJSZSxGq1SFUW78pFaKG4HZpHj/+B3755Rds374dS5cuwX333YeWLVvi2mt74+mnn3ZpH3FxcVi1em2Nj429+Rbn7126dEWXLl3djUhEfqjyHKZKrUZIiEruSETV1GnJ0ZVXXolmzZqhZcuWSEtLw/Lly/HDDz+4XJpERJVdfKYfFib5KrdL88UXX8LOnTtx8OBBtGrVEr169cKCBQvQs2evhshHRAGOp8Yjf+J2aRYVFWHKlCno1asn9Hp9Q2QioiAjQWJhkl9wuzRff/3CKe3y8vIQFxfn0UBEFByEELDbbQgJUSE6hn+PkH9w+8tPZrMZDz30MBo1aoyWLVuhUaPGeOihh1FSUtIQ+YgoAFUcki3IN0AIt8+vQiQbt0vz6aefwe+/H8PGjRtw9OgRfPrpRvzxxx949tnnGiIfEQWYynOYkVExfnVqPCK3D89u2rQJ33//PWJjYwAACQkJeO+9d9GtW3f861+vezwgEQUOLvohf+f2SFMIAYWi6r8MJUnBQyxEdFl2mw02q5WFSX7L7dIcMGAA7rzzLuzf/xMMBgP27duPu+++GwMHDmyIfEQUAIQQEEIgRKWCPr4RC5P8ltulOWvWTKSkNMHAgQPRqlVrDB48GMnJSZg58+WGyEdEfq7ikGxhYQEAcA6T/Jrbc5rh4eFYsGAB5s+fD4PBAL1ez/8JiKhGF89hEvm7Ol+5U5IkxMfHezILEQUQLvqhQORSaaamNnVpNHnixP/qm4eIAoTZXMrCpIDjUml+9NHyhs5BRAFCCAFJkqDV6qDm1UoowLhUmi+88CK++mobAGDOnDmYNm1ag4YiIv8khEChMb/8epihWhYmBRyXVs8eO3YMNpsNADB//oIGDURE/qliDvP8+TIuDqSA5dJIs1evnujZsxdatGgBs9mM2267vcbtli//0KPhiMg/cNEPBQuXSnPZsmXYsGEDTpw4ga1bt6JduysbOhcR+RFTUSELk4KCS6Wp0Whw0003AQCMxkLOaRJRFWHhEQgN1UKt0cgdhahBuX1GIJ75h4iA8kOypiIjHA47lEolC5OCgtulSURUMYdZWlriXCRIFAxYmkTklosX/ajVHGFS8GBpEpHLuEqWgp3bpblkydIa73/wwYfqm4WIfJwkSQjVaFmYFLTcLs0FCxZgw4YNVe575JFH8euvv3osFBH5FiEEysylAACtLoyFSUHL7aucrFmzGsOGDUdcXBx69uyJJ554Avv378eGDZ80QDwiklvlQ7IqlRrKkDpfHInI77n96W/ZsiU++OB93Hbb7ejduxeOHDmKjRs3ICoqqiHyEZGMLp7DZGFSsHPp/4Bffvmlym2NRoP77rsPmZmZWLp0CU6fPo3Tp0/jyit5piCiQMFFP0TVuVSaPXv2giRJEEJUe2zo0GEAyhcIFBTkezYdEclHCECAhUlUiUulaTQWNHQOIvIRQgjY7XaEhIQgOiaOVywhqoTf0yQip4pDsgX5BufFpInoArdn9c+ePYuZM2fiwIEDMJmKqzx26NBBjwUjIu+6eA6ThUlUndulOWHCBGi1Ojz00EPQ6XQNkYmIGkB+sQ3LdhTAYLJBI53H+OstaBKrBsBFP0Sucrs0Dxw4iOPH/4BarW6IPETkYUfPleGRj8/hVH7VE6uvP3gCCZFKzByZiKubqmC1WFmYRJfh9pzmP/7xD2RnZzdEFiLysN2/l2DswlPOwlQpgWidApq//7mcU2THhHfPYsMBM/TxiSxMostwe6Q5dOhQ3HLLLRg3bjwSEuKrPDZ48GCPBSOi+ikus2Py+2fhEOVl+czQBIzsVH4SEkNuNg7kaPHMmmyYrcCMjTno1EyLZvE8gkR0KW6X5tKl5SdsnzdvXpX7JUlyuTQtFgv+/e/Xceb0aajVakRGRmH8+Alo1LhxtW337fsRH7z/HhwOB1JTm2LylPs5l0rkgpc35sDuAJQKYMODTZ3zl0D5HOY1SRZ8dJcGY985D4sdeH59Nt6fkCJjYiLf53Zp/vzzIY+8cEZGP3TseDUkScLmTV8gM3MRXnxpepVtysxmZC5aiBdfmo7k5CZ4e+kSrF2zGnfceZdHMhAFsq8PlwAAerTUVStMh8MBy/nzaNI4AWO7mPDB90YcOlUmV1QivyHL9zTVajWuvvoa55L2Vq1bIzc3p9p2Px34Cc2apSE5uQkAYMCAgdi1a2et+7VarSgtLXX+mM3mhvkDEPmBMmv5GbyeG151GsVsLgEgnIt+HhkQCwBwCCC70OLtmER+xaWR5oABA7Fly2YAF06pV5MdO7bXKcQXn3+OTp3Sq91vMBgQH3/hf/j4hAQUFBhht9uhVCqrbb9+/TqsWb2q2v15hhyUarV1ylbBbrfBkOtfC6CY2Tt8PbPdbIDBcuH/l4rTYZqKCmFCIQBAAiAAnD5ngNJS/f8tufn6e1wTZvYOT2XWxye6tJ1LpTlu3L3O3ydPnlS3RLVYt24t/vrrLzz/wov13teIESMxZMhQ522z2YxJEycgTp9Q73lQQ262y2+qr2Bm7/DVzAqpCA4BfH5Eg3HXxqLQmO+8FmblzDuOFkOgCADQrnki1GrfK01ffY8vhZm9w9uZXSrNMWPGOH+/9dZbPfbiGzduwN49e/Dc8y9Ao9FUe1yv1+PQwQtnGcrNyUFMTHSNo0wAUKlUUKlUHstH5M9aJKhxLNuC93cZMbq9gOX8eWh1YdW2m/N5LgAgPkLpk4VJ5EtcKs0vvvjCpZ2585WTzz7diF07d+K5519AWFj1/5EBoEOHjnh76RKcOXMayclNsGXLZnTv0dPl1yAKZs8Oi8ddS86g0OzAlOVGvDO+SbXvYT6x4qzzO5wT+sTKEZPIr7hUmk8+Oe2y27jzlZO8vDy8//57SExMxEsvvgCgfJQ4a/YcrFzxMWJiY9G//wBotVpMnDgZc199BXa7AympKbh/ygMuvQZRsOvYVIc+rVT49pgVv/wl0H3WKXRursU/Gmtw7Ewp9p783blYqF0TDcZ2iZY3MJEfcKk0PfU1kwpxcXFYtXptjY+NvfmWKrc7paejU3r1RUJEdHmv39YEz67NxqafS2G1A7uOmbHrWNVV5V1baLH47iYyJSTyL25/T5OIfJsQAsXFRQgLi0BISAjmjE3G08PsmL4hG3v+MMNiF1BCoH1TLaaPTEB8BM8CROQqliZRAKl8tRKNJhRqdfkCu0itEq/dnOTczh9XSRL5Al6EmihAXHx5r4rCJCLPYWkSBQBeD5PIO3h4ligASJIEjToUOl04C5OoAblUmpc6dV5ldT2NHhHVjRAC58+XITRUC11YuNxxiAKeS6Xp6VPnEVH9VT4kq4pPhFLJA0dEDc2l/8s8eeo8Iqq/i+cwWZhE3lGnhUAffvghhg0bju7duwMAdu7ciXXr1ns0GBHVjIt+iOTjdmnOnfsaFi5ciFGjRuH06dMAgEaNGuGNN97weDgiqk4IASEEC5NIBm6X5vvvv4/Vq1fjrrvuRPlV+IDmzZvjzz//9HQ2IqpECAG73QaFQoGYGD0Lk0gGbpdmaWkpGjVqBADOFbVWq7XGS3sRkWdUHJItyDdACOHSanYi8jy3SzM9vROWLl1a5b4PPvgQXbp08VgoIrqg8hxmRGQ0C5NIRm4vuZs9ew6GDRuG5cs/QklJCfr164+cnBxs2PBJA8QjCm5c9EPkW9wuzbS0Zti7dw+2bNmKkydPIjk5GQMHDqj1QtJEVHc2qxVWi4WFSeQj6vTlLq1WixtvHO7pLET0NyHKLw6tUquhj28EhYKniSbyBS6V5pQpU1za2YIFC+oVhoguHJJVKkMQGRnNwiTyIS793xgZGen8kSQFVq9eg+zsHKjVGuTk5GLNmrVQKJQNnZUo4F18PUwi8i0ujTRnz57t/P2OO+7E+++/h4EDBzrv27JlCz744EPPpyMKIlz0Q+T73D7u880336B///5V7svIyMC3337rqUxEQam0tJiFSeTj3C7N1NSUaqPK5cuXIyUlxWOhiIKRTheO2Lh4FiaRD3N79ezcuXNxyy23YtGiRUhJScGpU6dw9uxZfPzxRw2RjyigCSFQWFgAnS4MarUGKpVa7khEdAlul2aPHj1w6NBBbN68GX/9lY3GjRuhf/8BiImJboB4RIGr8hymVquTOw4RuaBO39OMjo7GzTffjLy8PMTFxXk6E1HA46IfIv9UpxO2P/jgQ2jUqDFatmyFRo0a46GHHkZJSUlD5CMKSEVFRhYmkR9yuzSfeeZZ/PHH79i4cQOOHj2CTz/diD/++APPPvtcQ+QjCkhhYeEsTCI/5Pbh2U2bNuH7779HbGwMACAhIQHvvfcuunXrjn/963WPByQKFEIIlBSbEBYWjpAQFUJCVHJHIiI3uT3SFEJAoah6aSJJUjjPlUlE1VXMYZaUmGC1WeWOQ0R15HZpDhgwAHfeeRf27/8JBoMB+/btx913313lDEFEdMHFi37Ual6wnchfuV2as2bNREpKEwwcOBCtWrXG4MGDkZychJkzX26IfER+jatkiQKL23Oa4eHhWLBgAebPnw+DwQC9Xs8ryRPVQpIkqFUa6HThLEyiAFCn72kCgN1uh0ajgclkct4XGRnpkVBE/k4IAYul/EolYeERcschIg9xuzR/+OEHPPTQQzh8+Ihz8Y8QApIkoaAg3+MBifyN85CsxQK9PhFKJS+bRxQo3C7NiRMnYfToUVi2bBm0Wm1DZCLyWxfPYbIwiQKL26WZm5uLadOmcR6T6CJc9EMU+NxePTtmzBh88cUXDZGFyK8JISAcDhYmUQBze6T57LPPIiMjA//5zxuIj4+v8tjy5R/W8qzqli17G/t+/AG5ubl49dXX0Cwtrdo2v/76C2bNnImkpCTnfTNnzoJaw++5ke8QQsBut0OpVCImNp5HYYgCmNulOWHCBKjVanTt2hU6Xd3nNLt27Yrhw2/E8889c8ntkpKSMPe1eXV+HaKGJISAw+GAscCA2LgEFiZRgHO7NHft2oWjR48gIqJ+y+jbtr2iXs+vidVqhdV64RRlZrPZ469BVKFiDhMQCI+IYmESBQG3S7NNmzYoLi6ud2m6Kjv7Lzz5xGNQKBTo0/c6DBhQ++n61q9fhzWrV1W7P8+Qg9J6rvS1220w5GbXax/exswNp2KECZR/7cpUVAgTCuUN5QZ/eZ8r+FtegJm9xVOZ9fGJLm3ndmkOHToUN900Fvfeey8SEqrOaQ4ePNjd3V1SWlpzZGYuhi4sDHl5eZg962VERESge/ceNW4/YsRIDBky1HnbbDZj0sQJiNMnQKfT1SuLITfb5TfVVzBzw7FYzsNYkIeo6DiYigr9InNl/vI+V/C3vAAze4u3M7tdmu+88w4AYN68qvOMkiR5vDQrF11cXBx69OyFI4cP11qaKpUKKhUvt0QNp+KEHmq1Bvr4RCgUSr8aYRJR/bhdmj//fKghctSooKAAUVFRUCgUMJvN2L/vR/S97nqvvT5RZRVzmCEhKkREREGh4IkLiIJNnc89W1+L38rE/v37YDQaMXPmDISGavHm/AXIXLQQnTqlo1N6OvZk7cbWrVugVCpht9vRtVt39O17nVyRKYhVPnGBThcudxwikolspTnhvok13j9x0mTn7wMHDcbAQZ495EvkLp7ph4gquH1GIKJgU1pSzMIkIgAyjjSJ/IUuLBxqjQYqlVruKEQkM440iWpQfkg2H1aLBZIksTCJCABLk6iaijnM82VmOIRD7jhE5ENYmkSVcNEPEV0KS5OokqLCAhYmEdWKC4GIKtGFhSNUq2NhElGNONKkoCeEQHFxEYQQUKnULEwiqhVLk4JaxRxmSbEJNpv18k8goqDG0qSgdfGiH36thIguh6VJQYmrZImoLrgQiIKWKkQNnS6chUlELmNpUlARQsBqsUCt0SA8IlLuOETkZ3h4loJGxSFZozEPDodd7jhE5IdYmhQUKs9hRkXH8gLSRFQnLE0KeFz0Q0SewtKkgOdwOOCwO1iYRFRvXAhEAUsIASEcUCqViI2LhyRJckciIj/HkSYFpIpDsgX5eRBCsDCJyCNYmhRwKs9hhkdEsjCJyGNYmhRQuOiHiBoSS5MCisVyHlaLhYVJRA2CC4EoIAghAAAaTSj0+kQolPweJhF5Hkea5Pecl/cqMQEAC5OIGgxLk/xa5TlMXtqLiBoaS5P8Fhf9EJG3sTTJb5UUm1iYRORVXAhEfissPAIaTShUah6WJSLv4EiT/IoQAoXGfFitVkiSxMIkIq9iaZLfqJjDLCsz83qYRCQLlib5BS76ISJfwNIkv1BYWMDCJCLZcSEQ+QWdLgxarY6FSUSy4kiTfJYQAiXFJgghoFZrWJhEJDuWJvmkijnM4uIi2GxWueMQEQFgaZIPunjRD0+PR0S+QrY5zWXL3sa+H39Abm4uXn31NTRLS6txu6+/2oZPPlkPIQSuuLIdxo0bj5AQTsUGKq6SJSJfJttIs2vXrpg+Yybi4+Nr3SYnOxsrV67A9Okv4403F6DQaMS2bV96MSXJIUQZwsIkIp8kW2m2bXsF4uLiLrlNVtZuXNMpHdExMZAkCf3698eunTtr3d5qtaK0tNT5YzabPR2bGogQAhbLeUiShIjIaBYmEfkknz7OaTAYqoxEE+ITYDAYat1+/fp1WLN6VbX78ww5KNVq65XFbrfBkJtdr314m79kFkLA4XAAKL+QtD9krsxf3ufK/C2zv+UFmNlbPJVZH5/o0nY+XZruGjFiJIYMGeq8bTabMWniBMTpE6DT6eq1b0Nutstvqq/wh8wXz2Gaigp9PvPF/OF9vpi/Zfa3vAAze4u3M/t0aer1evyVfeFfEDm5OdDr9bVur1KpoFKpvBGNPKCmRT8mFModi4ioVj79lZMuXbti348/wFhQACEEvty6FT169JA7FnmIw+GA3Wbnoh8i8huyjTQXv5WJ/fv3wWg0YubMGQgN1eLN+QuQuWghOnVKR6f0dCQmNsKYm8biueeeAVC+eCijX3+5IpOHCCEghIBSqUScPgGSJMkdiYjIJbKV5oT7JtZ4/8RJk6vczsjoh4yMft6IRF5QcUhWOARiYvUsTCLyKz59eJYCS+U5zLDwCBYmEfkdliZ5Bc/0Q0SBgKVJXmE5XwbLeQsLk4j8mk9/5YT8nxACkiRBE6qFPl4NpVIpdyQiojrjSJMaTMUh2ZISEwCwMInI77E0qUFUnsMMCeEJJ4goMLA0yeO46IeIAhVLkzyuuLiIhUlEAYkLgcjjwsIioNGEQq3WyB2FiMijONIkjxBCoLCwADabFQqFgoVJRAGJpUn1VjGHWWYuhd1ulzsOEVGDYWlSvXDRDxEFE5Ym1UuhMZ+FSURBgwuBqF60ujBodWEsTCIKChxpktuEECgtKYYQAhpNKAuTiIIGS5PcUjGHaTIVwmazyR2HiMirWJrksosX/ahUPD0eEQUXlia5hKtkiYhYmuQGpULJwiSioMbVs3RJQgjYbFaoVGpERsXIHYeISFYcaVKtKg7JFuQb4HA45I5DRCQ7libVqPIcZlR0LBQKflSIiPg3IVXDRT9ERDVjaVI1DrsddpuNhUlEdBEuBCInIQSEEFCGhCBOnwhJkuSORETkUzjSJAAXDskWGvMhhGBhEhHVgKVJVeYwdWHhLEwiolqwNIMcF/0QEbmOpRnkzp8vY2ESEbmIC4GCVMW8ZWioFqr4RCiV/CgQEV0OR5pBqOKQbGlpCQCwMImIXMTSDDKV5zCVSqXccYiI/ApLM4hw0Q8RUf2wNINIsamIhUlEVA+czAoiYeER0ISGQq3WyB2FiMgvcaQZ4IQQKCosgN1mg0KhYGESEdWDbCPNc+fOYsH8+TCZiqDT6TB5yv1ISUmtss2vv/6CWTNnIikpyXnfzJmzoNbwL35XVJ7DDA3VQRnCAwtERPUh29+ii996CxkZGejT9zpk7d6NhQvmY/acV6ttl5SUhLmvzZMhoX8TQsDhcDjnMPkPDSKi+pPl8GxhYSGOH/8DvXpfCwDo0rUrDIY8/HXuXL32a7VaUVpa6vwxm82eiOt3hBAoNOYDEFz0Q0TkQbKMNPMMBkRHxzi/JyhJEvR6PQwGAxo1blxl2+zsv/DkE49BoVCgT9/rMGDAwFr3u379OqxZvaqG18tBqVZbr8x2uw2G3Ox67cObhHAAAExFhTChUOY0rvO39xlgZm/wt7wAM3uLpzLr4xNd2s6nJ7nS0pojM3MxdGFhyMvLw+xZLyMiIgLdu/eocfsRI0ZiyJChzttmsxmTJk5AnD4BOp2uXlkMudkuv6lyEULAbC6FVquDJEl+kflizOwd/pbZ3/ICzOwt3s4sy+HZOL0eRmMB7HY7gPK/7A0GA/R6fZXtdDoddGFh5c+Ji0OPnr1w5PDhWverUqnKn/P3j7aeo0t/UrHox1RkhN1ukzsOEVFAkqU0o6KikJbWHDu2fwcA2JOVhbi4uGqHZgsKCuBwlB9mNJvN2L/vRzRLS/N6Xl938Zl+QkJUckciIgpIsh2enTDhPixYMB/r16+DVqvD5MlTAACZixaiU6d0dEpPx56s3di6dQuUSiXsdju6duuOvn2vkyuyT+Kp8YiIvEe20kxKTsbMWbOr3T9x0mTn7wMHDcbAQYO9GcsvKSQFC5OIyAt8eiEQ1U4IAZvNBpVKhajoWLnjEBEFBZ5Gzw9VHJItKDBA/D3nS0REDY+l6Wcqz2FGRcVAUvA/IRGRt/BvXD/CRT9ERPJiafoRu90Om9XGwiQikgkXAvkBIQQAICQkBPr4REiSJHMiIqLgxJGmj6s4JGs05gMAC5OISEYsTR9WeQ5TpwuTOw4RUdBjafooLvohIvI9LE0fVVZmZmESEfkYLgTyMUIISJKE0FAtVCo1QkL4n4iIyFdwpOlDyg/J5sNsLoUkSSxMIiIfw9L0ERfmMMug4Fl+iIh8Ev929gFc9ENE5B9Ymj7AZCpkYRIR+QFOmvmA8LAIhIZqoVZr5I5CRESXwJGmTIQQKCoywm63Q6FUsjCJiPwAS1MGFXOY5tIS2G02ueMQEZGLWJpedvGiH7WGI0wiIn/B0vSiiu9hctEPEZF/4kIgL5IkCdpQLXS6MBYmEZEfYml6gRACZeZShGp1CNXq5I5DRER1xNJsYJXnMFVqNUJCVHJHIiKiOuKcZgO6eNEPC5OIyL+xNBsIT41HRBR4WJoNSILEwiQiCiCc0/QwIQTsdhtCQlSIjomTOw4REXkQR5oeVHFItiDfACGE3HGIiMjDWJoeUnkOMzIqBpIkyR2JiIg8jKXpAVz0Q0QUHFiaHmC32WCzWlmYREQBjguB6qFi3jJEpYI+vhEPyRIRBTiONOuo4pBsYWEBALAwiYiCAEuzDirPYWp5LlkioqDB0nQTF/0QEQUv2eY0z507iwXz58NkKoJOp8PkKfcjJSW12nZff7UNn3yyHkIIXHFlO4wbNx4hIfJNxZaZS1mYRERBSraR5uK33kJGRgb+88Z8DB8+AgsXzK+2TU52NlauXIHp01/GG28uQKHRiG3bvpQh7YVFP6FaHeL0CSxMIqIgJEtpFhYW4vjxP9Cr97UAgC5du8JgyMNf585V2S4razeu6ZSO6JjykwX0698fu3bu9HpeIQQcDgfKysyQJIlXKyEiClKyHOfMMxgQHR0DpVIJoHzlqV6vh8FgQKPGjZ3bGQwGxMfHO28nxCfAYDDUul+r1Qqr1eq8bTab6521Yg4TEFwhS0QU5ALqe5rr16/DmtWrqt2fZ8hBqVbr9v4qRphA+aFZU1EhTCisb0yvsdttMORmyx3DLczsHf6W2d/yAszsLZ7KrI9PdGk7WUozTq+H0VgAu90OpVIJIQQMBgP0en2V7fR6Pf7KvvBm5OTmVNumshEjRmLIkKHO22azGZMmTkCcPgE6nftfDSkqNMJsLkF0TBxMRYUuv6m+wpCbzcxewMwNz9/yAszsLd7OLMucZlRUFNLSmmPH9u8AAHuyshAXF1fl0CxQPte578cfYCwogBACX27dih49etS6X5VKBZ1O5/zR1mF0WVlYeARiYvRc9ENERABkPDw7YcJ9WLBgPtavXwetVofJk6cAADIXLUSnTunolJ6OxMRGGHPTWDz33DMAgLZtr0BGv/4NmksIgWJTIcLCI6BUKp3zrkRERLKVZlJyMmbOml3t/omTJle5nZHRDxkZ/bySqfKJCzShWqjVLEwiIrqAZwT628Vn+lGrNXJHIiIiH8PSREVh5vNMP0REdEkB9ZWTupIkCaGaUOh0YSxMIiKqVVCPNIUQMJtLAQBaFiYREV1G0I40K89hqlVqKGU8CTwREfmHoBxpXrzoh4VJRESuCLrS5PUwiYioroKuNCEEIMDCJCIitwXNcUkhBOx2O0JCQhAdE8crlhARkduCYqRZcUi2IN8AIXiJLyIiqpugGGkWFuZDqVBwhElERPUSFCNNLvohIiJPCOiRphDlF4/WaLSw2x0oLS2t877MZnO9ni8HZvYOZm54/pYXYGZv8WRmrVZ72aORAV2aZWVlAIAHH5wqcxIiIvJ17773AXQ63SW3kWw2q/BSHq9zOBwoKChAaGhoveYyzWYzJk2cgEWZi+t9YWtvYWbvYOaG5295AWb2Fk9nDvqRpkKhQFxcnMf2p9VqL/uvEF/DzN7BzA3P3/ICzOwt3swcFAuBiIiIPIGlSURE5CKWpgtUKhVGj7kJKpVK7iguY2bvYOaG5295AWb2FjkyB/RCICIiIk/iSJOIiMhFLE0iIiIXsTSJiIhcFNDf03TXuXNnsWD+fJhMRdDpdJg85X6kpKRW2+7rr7bhk0/WQwiBK65sh3HjxiMkRJ630pXMv/76C2bNnImkpCTnfTNnzoJao/F2XCxb9jb2/fgDcnNz8eqrr6FZWlqN2/nSe+xKZl96jwHAYrHg3/9+HWdOn4ZarUZkZBTGj5+ARo0bV9t2374f8cH778HhcCA1tSkmT7nf69/TczVvTk4OHrh/ClJTL3zGH33scTRq1MireSu8PGM6jMYCSJICWq0Wd99zD9LSmlfbzpc+z65k9rXPc4VvvvkaixYuwGOPP4HOnbtUe9wbn2WWZiWL33oLGRkZ6NP3OmTt3o2FC+Zj9pxXq2yTk52NlStX4JVX5iIqOhqvvjIH27Z9iYEDB/lsZgBISkrC3NfmyZCwqq5du2L48Bvx/HPP1LqNr73HrmQGfOc9rpCR0Q8dO14NSZKwedMXyMxchBdfml5lmzKzGZmLFuLFl6YjObkJ3l66BGvXrMYdd97lk3kBQKsN9Zn3+eFHHkVYWBgAYO+ePVi4YD7mvvZ6lW187fPsSmbA9z7POTk5+GrbNrRq1brGx731Webh2b8VFhbi+PE/0Kv3tQCALl27wmDIw1/nzlXZLitrN67plI7omBhIkoR+/ftj186dckR2ObMvadv2isuepcmX3mPAtcy+Rq1W4+qrr3GeEqxV69bIzc2ptt1PB35Cs2ZpSE5uAgAYMGAgdu3y/nvtal5fU1E+AFBaWgKg+inYfO3z7EpmX+NwOPBW5kLcc8+9tX69xFufZY40/5ZnMCA6OgZKpRIAIEkS9Ho9DAZDlUNEBoMB8fHxztsJ8QkwGAxezwu4nhkAsrP/wpNPPAaFQoE+fa/DgAED5YjsEl96j93hy+/xF59/jk6d0qvdf/F7HZ+QgIICI+x2u/NzJYfa8gLA+fPn8dS0J+BwOJCe3hkjR46CQsas8998A7/++gsA4Kmnqh+N8MXP8+UyA771ef7ss0/Rps0/0LxFi1q38dZnmaUZBNLSmiMzczF0YWHIy8vD7FkvIyIiAt2795A7WsDw5fd43bq1+Ouvv/D8Cy/KHcUll8obExODzLeWICoqCsUmE/71r9fx6WefYvjwG72es8L9D5RfRenbb7/B8uUf4Kmnn5Uti6sul9mXPs8nT57EnqwsvDR9htdfuyY8PPu3OL0eRmMB7HY7gPJrcRoMBuj1+irb6fV65ObmOm/n5OZU28ZbXM2s0+mg+/uQTFxcHHr07IUjhw97Pa+rfOk9dpWvvscbN27A3j178PQzz0JTwyKOi9/r3JwcxMREyzbKvFxelUqFqKgoAEB4RAT6XncdDh/+zdsxa9SnT1/88suvMJlMVe735c9zbZl96fN85PBvyM3NwYNT78eUyRNx7Nh/sfitTGzdsrnKdt76LLM0/xYVFYW0tObYsf07AMCerCzExcVVO8zZpWtX7PvxBxgLCiCEwJdbt6JHD3lGE65mLigogMPhAFB+KZ39+36sddWqL/Cl99hVvvgef/bpRuzauRPPPvd8lXmsyjp06Ig//zyOM2dOAwC2bNmM7j16ejOmkyt5CwsLYbPZAABWqxV79+xBWjN53ueSkhLk5+c7b+/duwcREeEIDw+vsp0vfZ5dzexLn+f+AwZi8ZK3sWBhJhYszESrVq0x4b6J6H/R4WJvfZZ5Gr1Kzp45gwUL5qO42AStVofJk6cgtWlTZC5aiE6d0tEpvXyOZdu2L7Hhk/UAyheJjJ9wn2zLx13JvHnTF9i6dQuUSiXsdju6duuOMWNuqtc1Rutq8VuZ2L9/H4xGIyIiIhAaqsWb8xf49HvsSmZfeo8BIC8vD5MmTkBiYiJCQ8uvM6hSqTBr9hysXPExYmJj0b//AADAjz/8gA8/fB92uwMpqSm4f8oDzlGGr+XdsycLq1augEKhgN1ux5VXtsMdd94ly/lSc3Nz8Pq8ebBYLFAoJERGRuKOO+5Cs7Q0n/08u5rZ1z7Plb34wvMYfMMN6Ny5iyyfZZYmERGRi3h4loiIyEUsTSIiIhexNImIiFzE0iQiInIRS5OIiMhFLE0iIiIXsTSJiIhcxNIkagCzZ8/GrbfeWufnjxo1GkuWLPVgorrbsWNHletXupNt+fLl6NnT9bOy/PDDD+jcuQuSk5sgMzMTkyZNwrRp09zOTNRQWJpEMqupGNauXYPx48e5va+LC67CxSUeFRWNRo0aIykp2flz2223ufQadc3mihkzXsbo0aNw5sxpTJw4sUFeg6g+eJUToiC1desWXHXVVXLHqOLEiROYMGG83DGIasWRJgWt+fPno2PHq5Gc3ATt23fA4sWLnY+dOHECUVHRWLFiBTp06IjU1FRMmjQJVqsVAFBcXIxbbrkFLVq0REpKKgYNGoSff/65xtd56qmnMGnSpCr3vf76vzBq1GhkZmZi1arVWLr0bSQlJaNLl64AgBtuuAELFy50bv/TTwcwZMhQNG3aDM2bt8Djjz/u6bfDZZWzVYxs33vvfbRtewWaNUvDc889X+tz3357Ga66qj3++9//VnusVavWOHHiBO69dxySkpLx+++/V9tm//6f0L//AKSmpqJz5y5Ys2YNAMBmsyE5uYlzv5s2bUJUVDS2bdsGAPj111+RmprqvCIQUV2xNClopaSk4NNPN+L06VN488038NxzzyMrK6vKNl9+uQ07dmzHnj178N1327Fq1SoA5VeSHz16DA4dOohjx/6Lq666Cv/8590QovqpnO+44w5s3PgpiouLnfd99NFHuP322zFx4kTcdNMYjBt3L86ePYM9e7KqPf/s2bMYNmwYhg8fjqNHj+CXX37GiBEjPPxu1J3JVIyjR49g//592LJlM5YuXYodO3ZU227WrFlYunQpNm/ehNatW1d7/Nix/yIlpQnefnspzp49g5YtW1Z53Gg0YtSoURg1aiT++OMPvP76PEyd+iCysrIQEhKCbt26Yfv28tfdvn070tLSqtzu0aOHrBfWpsDA0qSgNXz4cDRp0gSSJKF37964/vrrsGPHzirbPPnkE4iIiEDjxo1x/fXX48CBAwCAyMhIjBo1EmFhYQgNDcVTTz2F33//HefOnav2Om3btkWbNm2wYcMGAMDevXthMBgwePAgl3KuXLkK7du3x/jx4xAaGgqdTofu3bvX7w8PYNCgwUhNTXX+zJkzp077EULg2WefRWhoKNq0aYPOnTs73ycAsNsdmDr1QWzfvgNffPEFkpKS6vQ6W7duhV6vx3333QeVSoWePXti9OjR+OijjwEAvXr1cpb19u3bMW3ak1Vu9+7du06vS1QZS5OC1qpVq9CrV280bdoMqamp2Lr1S+Tn51XZJiEhwfl7WJjOOVo0m8145JFH0a5dOzRpkuKcG8zLq/r8Crfffjs++ugjAMDy5R/hppvG1HiR5ZqcOnUKLVq0cGlblUoFq9VW7X6r1YaQkKqXz9q06QucPHnS+VPXVaqRkRHQ6XTO25XfJwA4c+Y0VqxYgccffxwxMdF1eo3y/ZyttsipWbNmOHv2LIDy0ty5cycMBgMMhjyMGTMGJ0+eREGBEbt2fc/SJI9gaVJQOnXqFCZOnITp06fjjz9+x8mTJ9G/f78aD6/WZP78+Thw4AA2b96M06dP4dChQwBQ6/NHjx6Fn346gCNHjmD9+nVVVqoqFJf+3zAlJQXHjx93KVdKSgpKS0urXMEeAP78888aV9V6Q2pqKpYv/xDjxo2r8bCtq5KTk3Dy5Mkq9508edI5cm3f/ipYrRYsXrzYeSi2a9euWLRoIVQqFdq2bVuvPwcRwNKkIFVSUgIhBOLj9VAoFNi6dSu+/vobl59fVGRCaKgG0dHRKC4uxvTpMy65fWRkJIYNG4px48YhNbUp2rdv73wsPj4B//vf/2ot3JtuGoP9+/fj7beX4fz58ygtLcX3339f47bJycno2bMHnnnmGRQUGGGz2bB161Zs2rQJo0ePcvnP52n9+vXDkiVLcOedd+Hbb7+r4z76Izc3F0uWLIXNZsP333+P1atX45ZbbgYAKJVKdO/eHYsWZaJXr14AgGuv7Y1FizLRs2dPn7iAMvk/liYFpX/84x947LFHMXToMDRrloZ169Zh0CDX5hgB4P77p0ChUKJVq9bo1q0bOndOv+xz7rjjDvz88y+4/faq34e88847cfbsOTRt2qzGucrk5GRs3LgBa9asRqtWrdCu3VXO+dGaLFu2DJIkoVu3bmjevDlmzpyFZcveRocOHaps17//gCrf0+zb9zrX/vB1lJFxPZYtW4a7774bX331tdvPj4mJxtq1a7Bq1SqkpTXHgw8+hNdfn4du3bo5t+nVqxeKioqch2KvvfbaKreJ6kuy2ayuHY8iono5deoUrr76Ghw9egSxsbFyxyGiOuBIk8gL7HY7/v3v/2DEiBtZmER+jGcEImpg//vf/9CtW3c0bdoUq1evkjsOEdUDD88SERG5iIdniYiIXMTSJCIichFLk4iIyEUsTSIiIhexNImIiFzE0iQiInIRS5OIiMhFLE0iIiIX/T8OBDWUcgs9mQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Certified equilibrium flows on the network (house style via tabench.viz).\n", "display(viz.plot_network_flows(net, final.link_flows))\n", "\n", "# Emitted flows vs the analytic UE recomputed above (off-diagonal == disagreement).\n", "display(viz.plot_flow_scatter((\"analytic UE\", ref_flows), {\"tapas\": final.link_flows}))" ] }, { "cell_type": "markdown", "id": "1254cc53", "metadata": {}, "source": [ "## Takeaways & pointers\n", "\n", "- **Certified, not self-reported.** The gap above came from `Evaluator`, recomputed\n", " from the emitted flows here; the self-report was only diffed against it.\n", "- **Link flows plus proportionality.** TAPAS pins the same certified UE link flows AND the unique entropy-consistent route flows — the latter reported as provenance, never scored (ADR-004).\n", "- **Where next.** the bush-based methods it tops: [`oba`](07-oba.ipynb) · [`algb`](08-algb.ipynb); the path-based sibling: [`gp`](06-gp.ipynb); link-based: [`bfw`](05-bfw.ipynb); the lineage in the\n", " [model compendium](../../docs/MODELS.md); the full matrix via `run_experiment(...)`\n", " as in `demos/demo_quickstart.py`." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" }, "tabench": { "covers": [], "requires_extra": null, "track": "static", "unit": "tapas" } }, "nbformat": 4, "nbformat_minor": 5 }