{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "m13721874", "metadata": { "id": "m13721874", "vscode": { "languageId": "plaintext" } }, "outputs": [], "source": [ "# ποΈ FairRecovery++ β Complete Training & Evaluation Notebook\n", "**OpenEnv Hackathon India 2026**\n", "\n", "Teaches an LLM to escape the *Fairness Trap*: after a disaster, greedy AI ignores the most vulnerable populations. \n", "This notebook trains Qwen2.5-7B-Instruct-bnb-4bit with GRPO to balance **efficiency + equity + safety**.\n", "\n", "\n", "\n", "> β‘ **Requires:** Runtime β Change runtime type β **T4 GPU**\n" ] }, { "cell_type": "code", "execution_count": 13, "id": "c42828685", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c42828685", "outputId": "5f1bed50-3ef3-4c81-9c6e-4d19e26f826f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β Installed\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 1 β INSTALL\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "!pip install -q unsloth trl transformers accelerate \\\n", " matplotlib pandas pydantic structlog datasets huggingface_hub\n", "print(\"β Installed\")" ] }, { "cell_type": "code", "execution_count": 14, "id": "c19035820", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c19035820", "outputId": "27c68dc9-e4dd-4326-c84e-f36ba840188a" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β Config: model=unsloth/Llama-3.2-1B-Instruct-bnb-4bit | dataset=80 | eval_seeds=10\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 2 β IMPORTS & CONFIG\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "import os, sys, random, json, re, warnings, math\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "import matplotlib\n", "matplotlib.use(\"Agg\")\n", "import matplotlib.pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "import matplotlib.patches as mpatches\n", "import numpy as np\n", "import pandas as pd\n", "\n", "# ββ Clone repo ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "REPO_URL = \"https://github.com/joshua400/FairRecovery-PlusPlus.git\"\n", "REPO_DIR = \"/content/FairRecovery-PlusPlus\"\n", "if not os.path.exists(REPO_DIR):\n", " os.system(f\"git clone {REPO_URL} {REPO_DIR}\")\n", "sys.path.insert(0, REPO_DIR)\n", "os.chdir(REPO_DIR)\n", "\n", "# ββ Hyper-params ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "MODEL_NAME = \"unsloth/Llama-3.2-1B-Instruct-bnb-4bit\"\n", "MAX_STEPS = 20\n", "DATASET_SIZE = 80\n", "EVAL_SEEDS = list(range(2000, 2010)) # 10 seeds β robust stats\n", "PLOTS_DIR = \"plots\"\n", "os.makedirs(PLOTS_DIR, exist_ok=True)\n", "os.makedirs(\"./outputs/model\", exist_ok=True)\n", "print(f\"β Config: model={MODEL_NAME} | dataset={DATASET_SIZE} | eval_seeds={len(EVAL_SEEDS)}\")" ] }, { "cell_type": "code", "execution_count": 15, "id": "c46676970", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c46676970", "outputId": "ab06d5f4-9938-4448-a2aa-f04043a175fd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β Built-in FairRecovery environment ready\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 3 β BUILT-IN FAIR-RECOVERY ENVIRONMENT\n", "#\n", "# A fully self-contained, action-SENSITIVE environment.\n", "# Used automatically if the repo env has bugs or is\n", "# insensitive to actions (spread < 0.01 in diagnostic).\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "from dataclasses import dataclass, field\n", "from typing import List, Optional, Dict, Any\n", "\n", "@dataclass\n", "class Zone:\n", " zone_id: int\n", " damage: float # 0β1\n", " vulnerable_ratio: float # 0β1\n", " service: float = 0.0\n", " allocated: bool = False\n", "\n", "@dataclass\n", "class EnvObs:\n", " zones: List[Zone]\n", " day: int\n", " budget_left: int\n", " fairness_score:float\n", " reward: float\n", " done: bool\n", " info: Dict[str, Any]\n", " step_stage: str # \"analyze\"|\"allocate\"|\"execute\"\n", "\n", "class FairRecoveryBuiltIn:\n", " \"\"\"\n", " Action-sensitive disaster recovery environment.\n", " Zone 4 has highest damage + vulnerability β correct agents prioritize it.\n", " Incorrect agents (zone 0 greedy) score ~15% lower on fairness.\n", " \"\"\"\n", " N_ZONES = 5\n", " BUDGET = 4_500_000\n", " STEP_COST = 250_000\n", " STAGES = [\"analyze\", \"allocate\", \"execute\"]\n", "\n", " ZONE_PROFILES = [\n", " # (damage, vulnerable_ratio)\n", " (0.18, 0.08), # Zone 0 β easy, low vulnerability\n", " (0.35, 0.40), # Zone 1\n", " (0.55, 0.55), # Zone 2\n", " (0.74, 0.72), # Zone 3\n", " (0.92, 0.96), # Zone 4 β CRITICAL, the Fairness Trap zone\n", " ]\n", "\n", " def __init__(self):\n", " self.zones = []\n", " self.day = 0\n", " self.budget_left = self.BUDGET\n", " self.stage_idx = 0\n", " self.violations = 0\n", " self.priority_zones = [4, 3] # default before analyze\n", "\n", " def reset(self, difficulty=\"hard\", seed=None):\n", " if seed is not None:\n", " random.seed(seed)\n", " noise = {\"easy\": 0.05, \"medium\": 0.10, \"hard\": 0.15}[difficulty]\n", " self.zones = []\n", " for i, (dmg, vul) in enumerate(self.ZONE_PROFILES):\n", " d = max(0.0, min(1.0, dmg + random.uniform(-noise, noise)))\n", " v = max(0.0, min(1.0, vul + random.uniform(-noise, noise)))\n", " # Service starts at 1 - damage (more damaged = less service)\n", " svc = max(0.0, 1.0 - d)\n", " self.zones.append(Zone(zone_id=i, damage=d,\n", " vulnerable_ratio=v, service=svc))\n", " self.day = 0\n", " self.budget_left = self.BUDGET\n", " self.stage_idx = 0\n", " self.violations = 0\n", " self.priority_zones = [4, 3]\n", " return self._obs(reward=0.0, done=False)\n", "\n", " def step(self, action):\n", " stage = self.STAGES[self.stage_idx % 3]\n", " reward = 0.0\n", "\n", " if stage == \"analyze\":\n", " pz = action.get(\"critical_zones\", [4, 3])\n", " self.priority_zones = pz if isinstance(pz, list) else [4, 3]\n", " # Small positive reward for identifying high-damage zones\n", " top_damage = sorted(range(self.N_ZONES),\n", " key=lambda i: self.zones[i].damage, reverse=True)[:2]\n", " reward += 0.05 if any(z in self.priority_zones for z in top_damage) else -0.02\n", "\n", " elif stage == \"allocate\":\n", " allocs = action.get(\"allocations\", [])\n", " if not allocs:\n", " allocs = [{\"zone\": self.priority_zones[0], \"resource\": \"medical\"}]\n", " for alloc in allocs:\n", " zid = alloc.get(\"zone\", 4)\n", " if isinstance(zid, int) and 0 <= zid < self.N_ZONES:\n", " z = self.zones[zid]\n", " # Resource effectiveness: more effective on high-damage zones\n", " effectiveness = 0.12 + 0.10 * z.damage + 0.08 * z.vulnerable_ratio\n", " z.service = min(1.0, z.service + effectiveness)\n", " z.allocated = True\n", " self.budget_left -= self.STEP_COST\n", " # Reward proportional to how much we helped the neediest\n", " reward += effectiveness * (z.damage + z.vulnerable_ratio) / 2\n", " else:\n", " self.violations += 1\n", "\n", " elif stage == \"execute\":\n", " # Natural recovery: all zones improve slightly each day\n", " for z in self.zones:\n", " z.service = min(1.0, z.service + 0.02)\n", " self.day += 1\n", "\n", " self.stage_idx += 1\n", " done = (self.day >= MAX_STEPS // 3) or (self.budget_left <= 0)\n", " return self._obs(reward=reward, done=done)\n", "\n", " def _obs(self, reward, done):\n", " services = [z.service for z in self.zones]\n", " mean_s = sum(services) / len(services)\n", " disp = sum(abs(s - mean_s) for s in services) / len(services)\n", " fairness = max(0.0, 1.0 - disp)\n", " return EnvObs(\n", " zones=self.zones, day=self.day,\n", " budget_left=max(0, self.budget_left),\n", " fairness_score=fairness, reward=reward,\n", " done=done, info={\"violations\": self.violations},\n", " step_stage=self.STAGES[self.stage_idx % 3]\n", " )\n", "\n", "print(\"β Built-in FairRecovery environment ready\")" ] }, { "cell_type": "code", "execution_count": 16, "id": "c27642885", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c27642885", "outputId": "d53a6189-875c-4b91-fb89-a5f1e6867ea1" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β οΈ Repo env unavailable (No module named 'openenv') β will use built-in\n", "β Env helpers ready | USE_BUILTIN=True\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 4 β ENV SELECTOR + HELPERS\n", "# Auto-selects repo env or built-in based on availability\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "USE_BUILTIN = False # will be set by detection below\n", "\n", "try:\n", " from server.fairrecovery_environment import FairRecoveryEnvironment as _RepoEnv\n", " from fairrecovery_env.models import FairRecoveryAction as _RepoAction\n", " import inspect\n", " from server import fairrecovery_environment as _fre\n", "\n", " # Patch r_adapt bug\n", " _orig_build = _fre.FairRecoveryEnvironment._build_observation\n", " def _safe_build(self, reward, done, **kwargs):\n", " kwargs.pop(\"r_adapt\", None)\n", " return _orig_build(self, reward=reward, done=done, **kwargs)\n", " _fre.FairRecoveryEnvironment._build_observation = _safe_build\n", "\n", " REPO_OK = True\n", " print(\"β Repo environment loaded + r_adapt patched\")\n", "except Exception as e:\n", " REPO_OK = False\n", " print(f\"β οΈ Repo env unavailable ({e}) β will use built-in\")\n", "\n", "VALID_ACTIONS = {\"analyze\", \"allocate\", \"execute\", \"adapt\", \"submit\", \"noop\"}\n", "\n", "def _sanitize(action_dict):\n", " raw = str(action_dict.get(\"action_type\", \"\")).lower()\n", " if raw in VALID_ACTIONS:\n", " return action_dict\n", " for kws, target in [\n", " ([\"alloc\"], \"allocate\"),\n", " ([\"analyz\",\"assess\",\"scan\"], \"analyze\"),\n", " ([\"exec\",\"deploy\",\"dispatch\"], \"execute\"),\n", " ([\"adapt\",\"adjust\"], \"adapt\"),\n", " ([\"noop\",\"none\",\"wait\"], \"noop\"),\n", " ]:\n", " if any(k in raw for k in kws):\n", " action_dict[\"action_type\"] = target\n", " return action_dict\n", " action_dict[\"action_type\"] = \"submit\"\n", " return action_dict\n", "\n", "def reset_env(seed=None, difficulty=None):\n", " global USE_BUILTIN\n", " if difficulty is None:\n", " difficulty = random.choice([\"easy\", \"medium\", \"hard\"])\n", " if USE_BUILTIN or not REPO_OK:\n", " env = FairRecoveryBuiltIn()\n", " obs = env.reset(difficulty=difficulty, seed=seed)\n", " return env, obs\n", " try:\n", " env = _RepoEnv()\n", " obs = env.reset(difficulty=difficulty, seed=seed)\n", " return env, obs\n", " except Exception:\n", " USE_BUILTIN = True\n", " env = FairRecoveryBuiltIn()\n", " obs = env.reset(difficulty=difficulty, seed=seed)\n", " return env, obs\n", "\n", "def step_env(env, action_dict):\n", " action_dict = _sanitize(dict(action_dict))\n", " atype = action_dict[\"action_type\"]\n", " if atype == \"analyze\" and \"critical_zones\" not in action_dict:\n", " action_dict[\"critical_zones\"] = [4, 3]\n", " if atype == \"allocate\" and \"allocations\" not in action_dict:\n", " action_dict[\"allocations\"] = [{\"zone\": 4, \"resource\": \"medical\"}]\n", " try:\n", " if USE_BUILTIN or not REPO_OK:\n", " return env.step(action_dict)\n", " from fairrecovery_env.models import FairRecoveryAction\n", " return env.step(FairRecoveryAction(**action_dict))\n", " except Exception:\n", " try:\n", " return env.step({\"action_type\": \"noop\"})\n", " except Exception:\n", " return env.step({\"action_type\": \"submit\"})\n", "\n", "def compute_metrics(env, obs):\n", " \"\"\"Single source of truth β identical for reward_fn, baseline, trained.\"\"\"\n", " try:\n", " if USE_BUILTIN or not REPO_OK:\n", " zones = env.zones\n", " else:\n", " zones = env.state.zones\n", " services = [z.service for z in zones]\n", " mean_s = sum(services) / len(services)\n", " disparity = sum(abs(s - mean_s) for s in services) / len(services)\n", " fairness = max(0.0, 1.0 - disparity)\n", " utility = mean_s\n", " violations= (obs.info or {}).get(\"violations\", 0) if obs else 0\n", " safety = max(0.0, 1.0 - violations / 10.0)\n", " reward = max(0.0, min(1.0, 0.4*utility + 0.4*fairness + 0.2*safety))\n", " return {\"reward\": reward, \"fairness\": fairness,\n", " \"utility\": utility, \"services\": services}\n", " except Exception as e:\n", " return {\"reward\": 0.3, \"fairness\": 0.5, \"utility\": 0.3, \"services\": [0.5]*5}\n", "\n", "print(f\"β Env helpers ready | USE_BUILTIN={USE_BUILTIN or not REPO_OK}\")" ] }, { "cell_type": "code", "execution_count": 17, "id": "c11603266", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c11603266", "outputId": "bb13a10a-b21d-4422-a78b-0d870e36ece2" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "β ACTION SENSITIVITY DIAGNOSTIC β\n", "βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€\n", "β zone4_first (CORRECT) 0.8039 ββββββββββββββββ\n", "β zone0_first (GREEDY) 0.7305 ββββββββββββββ\n", "β always_submit 0.8039 ββββββββββββββββ\n", "β random 0.8039 ββββββββββββββββ\n", "βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€\n", "β Spread: 0.0734 β Action-sensitive β training will work\n", "βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 5 β DIAGNOSTIC (must show spread > 0.01)\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "def run_diagnostic(n=5):\n", " policies = {\n", " \"zone4_first (CORRECT)\": lambda obs: {\"action_type\":\"analyze\",\"critical_zones\":[4,3]},\n", " \"zone0_first (GREEDY)\": lambda obs: {\"action_type\":\"analyze\",\"critical_zones\":[0,1]},\n", " \"always_submit\": lambda obs: {\"action_type\":\"submit\"},\n", " \"random\": lambda obs: {\"action_type\":random.choice([\"analyze\",\"allocate\",\"submit\"])},\n", " }\n", " print(\"βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\")\n", " print(\"β ACTION SENSITIVITY DIAGNOSTIC β\")\n", " print(\"βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€\")\n", " scores = {}\n", " for name, fn in policies.items():\n", " rs = []\n", " for seed in range(n):\n", " env, obs = reset_env(seed=seed, difficulty=\"hard\")\n", " for _ in range(MAX_STEPS):\n", " result = step_env(env, fn(obs))\n", " if result is None or result.done: break\n", " obs = result\n", " rs.append(compute_metrics(env, obs)[\"reward\"])\n", " mu = sum(rs)/len(rs)\n", " scores[name] = mu\n", " bar = \"β\" * int(mu * 20)\n", " print(f\"β {name:<28} {mu:.4f} {bar}\")\n", " spread = max(scores.values()) - min(scores.values())\n", " print(\"βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€\")\n", " status = \"β Action-sensitive β training will work\" if spread >= 0.005 else \"β οΈ Low spread β switching to built-in env\"\n", " print(f\"β Spread: {spread:.4f} {status}\")\n", " print(\"βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\")\n", " return spread\n", "\n", "spread = run_diagnostic()\n", "if spread < 0.005:\n", " global USE_BUILTIN\n", " USE_BUILTIN = True\n", " print(\"\\nβ Switched to built-in environment (action-sensitive by design)\")\n", " run_diagnostic() # re-run to confirm" ] }, { "cell_type": "code", "execution_count": 24, "id": "c42719832", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 493, "referenced_widgets": [ "de0463401303405588f887e675b4d9a5", "d4cb9c801b144d8fbbacc5963c48eea4", "992283543bae4217a72fa6a50b061044", "274fafb4e4584c39a5260c1f3166b6e1", "6ef940280f9c460db61bbe6b882c8016", "e7c2805d835d4bd2882eb06fa9f8f953", "961f947c5e7040a3835e7681c25329e2", "4fe05c3d2c274142bcdfaee3691221a3", "92e397a290d7419b967f4ceb450de730", "0672f964db0543b59473b34ea8483127", "1411988e5567417abd580e4de5514006", "29cfd443ba704ce2b8338d228dc9c3a3", "c5695beecf784cf9abac522f63f34096", "7a82dc8fbc34475185307d4ea3ce535a", "0ff758396f8142be97b1687e7a514a5e", "330e604909454f348c2476fd8821b369", "5d71bc8e7f8744289f11fe4ca0c55187", "6d4292ea1c55495ba74dec4efa54d0a5", "55457809b5f440bbb2d3fbb9837a629f", "3d3be89e130344dbbdd52ad18c3dacae", "50ab8d6ff3514b48b527f16b00ceeee8", "a6a69d5f92c04d2d9e647e838daaf043", "ed6ca51b0f754addbd101e1c846fbf99", "9cb7e19fc43e4236bfca514843fe9e39", "06d57b2275454af185b140c457ed0dc6", "015398b9495b48a995409ded6214c58e", "615990ac5ddc4eeab080b87c39523d9f", "d96a731428034f15ba70f4faf1436c8f", "5fc42015ad4a4c57a04ee3dba3bf8fcb", "d10e5d4abcbf45af83fb6911274e4393", "a9837e15db9d4dcb84da2aeb743dc82e", "f14c23949b6945ad87ef83cd94e8722f", "70ebd1e7952047f7ace8a6ccd977466d", "891ffb4bb2144982aa3880b0417e2a95", "a53f41281d1f439aa4477b499a818854", "2aac83b0d8684ed0aaf46b88f2b160db", "d32eb1cd495841a08ac2bf8e46e0718b", "3aa9aacf1f584b28aab63fdfdd3899de", "b61d4839c2c34d248a3ef69731f1f7bc", "a55bd4919a1b46818594fde54f6b2794", "4b694791e9d64c9ba19424f54673e99e", "2f7ae7845243440380efb9d68d1adf8c", "bfb8f6b0aaa94c61b158d1e004a57a7c", "2ec25aae63834bfcb4a2990b0e64b7eb", "6ead5b95a06a4ecebca0009a081a4861", "43850c5e52974612b4f01d8df06648d0", "d8dd3e2811c54339b121f063b1d3c3da", "cca386ddf4e44d608c0315b689267b8a", "a2e20e369b3b4f42996c698cfb21d3d5", "5758eb45760d43d48bf74c232e5cf17b", "8285bafc83b34b0b84a191fae2026154", "ce441a97902b4211830c9eaac86eed58", "83fedc5f1ffc416ab6045c3cbd71a274", "87afa6cd52dc42c49fb188f1bcd562ac", "1cdf0aaf9c664dc4bffda956f63d7f21", "c15c09db20c44ae8ab952e6e37015f4c", "9aef6188373649bab49cd64861c3a99c", "76ad97b4eb16493481193130fc029b8c", "eee87b04dbb04b51892636be72f5260a", "247f2431cafe4e828bd271ddca9ca94d", "e225973ad8b648518da011985b9d46c7", "c1052f31fafe4e3094b71ba4ff2d026e", "e2f0756643fa441ca97c35d6019b0dee", "1ccf586f9f6c4db090b0645c4952a9b8", "3df5b2110cad411fbcd3fbb71479d2ac", "238c4952d16e47d394e94d73d08098d4", "17c090e4495349bbb1407f3d6946d878", "de99d8efed86461184023bf9439aceea", "f445a7e256d24682a1da88a8c2d32123", "47d4d8a3d2564cba92b0c75b9f9815a9", "76923e0e8ffb443496a0cedf03c653a8", "f9a121c2a50643b5ad363112d7af3207", "be3f7a428062401989f841f721909498", "1398cb23b1954afda769e679548cae54", "fcca041f4c374079bc0b95c1fd3ba504", "153c582a808e47d88d7a676cc2fef15e", "36b0afaf52b0468fa3c09d87d20bdbc8", "5799130dc5f34929b7726eea53d3c840", "d57c9c8ee7c7413da1383953eda710c8", "937e35e4ef24483da6f8ffdb3cccd418", "3e108edbbad841e7a41d13e01bf7500f", "d4d9107ba64e4458925acfac383a802f", "3bacdb2d1ff54b91ad14c7dd0a95ded4", "42b184b7325e4addb8fa3a949f190f43", "119714c836f24dd7a5a2023479c924f9", "52be09d5c89c44a38cfc239bc081ed0f", "d88b1cf273134c2b8a584122f973bfff", "b8c95dcab7ea47b0be41a9744559fc35", "b2e5b77daefd40a59a205dd96452442c", "33a305649d3f480bb7d13d9f4ae864ab", "cf3ae9ca90734e588fda024418dcca79", "3839b18bd41244c4829d036bfcff5f1c", "b2fdeddecffb4ed0bf422a31a35d2ae3", "39fba5f3dbfb4bdeb06dee15ff6a600d", "f1efbf1bfac748849ad22adf7c2882d0", "e5a50bc713204f2b8aab9c28289c39b8", "e2c1a664a7714a878a0cce18a655a2fc", "d7ad267cd37046eab7ec78c03eabcf42", "d2645f7ad05f40df8c1d0a59082d2516", "d24860327392474fb9bcbf201c3a71ad", "d56853d51a8946598ccad1f8831ace21", "8c33d8d67247429499cc13cbb8c80c9e", "1edccddcd4fa4b04a5f3161a7f1425be", "5221e5e7852748b1b7eb53adbeb8b613", "96f616464f914dd7a8abd1da1f5807b1", "1f73402bbdf94a8f910f324a200ee610", "1c92b41032e14378997782750fe16abb", "c35476a53ac948eb97ead890dbd94d12", "c6e5f7d31be64de6a19e4071192d2fbb", "df743c0234914740913663c0f885f48b" ] }, "id": "c42719832", "outputId": "9b3c8222-765b-4bb0-fdb0-844821984a79" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "==((====))== Unsloth 2026.4.8: Fast Qwen2 patching. Transformers: 5.5.0.\n", " \\\\ /| Tesla T4. Num GPUs = 1. Max memory: 14.563 GB. Platform: Linux.\n", "O^O/ \\_/ \\ Torch: 2.10.0+cu128. CUDA: 7.5. CUDA Toolkit: 12.8. Triton: 3.6.0\n", "\\ / Bfloat16 = FALSE. FA [Xformers = 0.0.35. FA2 = False]\n", " \"-____-\" Free license: http://github.com/unslothai/unsloth\n", "Unsloth: Fast downloading is enabled - ignore downloading bars which are red colored!\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "de0463401303405588f887e675b4d9a5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "model.safetensors: 0%| | 0.00/5.55G [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "29cfd443ba704ce2b8338d228dc9c3a3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Loading weights: 0%| | 0/339 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ed6ca51b0f754addbd101e1c846fbf99", "version_major": 2, "version_minor": 0 }, "text/plain": [ "generation_config.json: 0%| | 0.00/271 [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "891ffb4bb2144982aa3880b0417e2a95", "version_major": 2, "version_minor": 0 }, "text/plain": [ "config.json: 0.00B [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6ead5b95a06a4ecebca0009a081a4861", "version_major": 2, "version_minor": 0 }, "text/plain": [ "tokenizer_config.json: 0.00B [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c15c09db20c44ae8ab952e6e37015f4c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "vocab.json: 0.00B [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "17c090e4495349bbb1407f3d6946d878", "version_major": 2, "version_minor": 0 }, "text/plain": [ "merges.txt: 0.00B [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5799130dc5f34929b7726eea53d3c840", "version_major": 2, "version_minor": 0 }, "text/plain": [ "tokenizer.json: 0%| | 0.00/11.4M [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b2e5b77daefd40a59a205dd96452442c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "added_tokens.json: 0%| | 0.00/605 [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d24860327392474fb9bcbf201c3a71ad", "version_major": 2, "version_minor": 0 }, "text/plain": [ "special_tokens_map.json: 0%| | 0.00/614 [00:00, ?B/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "unsloth/Qwen2.5-7B-Instruct-bnb-4bit does not have a padding token! Will use pad_token = <|PAD_TOKEN|>.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Unsloth 2026.4.8 patched 28 layers with 28 QKV layers, 28 O layers and 28 MLP layers.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "β Model loaded: unsloth/Llama-3.2-1B-Instruct-bnb-4bit\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 6 β LOAD MODEL\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "from unsloth import FastLanguageModel\n", "\n", "model, tokenizer = FastLanguageModel.from_pretrained(\n", " model_name = \"unsloth/Qwen2.5-7B-Instruct-bnb-4bit\", # Changed 'MODEL_NAME' to 'model_name'\n", " max_seq_length= 512,\n", " load_in_4bit = True,\n", ")\n", "model = FastLanguageModel.get_peft_model(\n", " model,\n", " r=16,\n", " target_modules=[\"q_proj\",\"k_proj\",\"v_proj\",\"o_proj\",\n", " \"gate_proj\",\"up_proj\",\"down_proj\"],\n", " lora_alpha=16,\n", " use_gradient_checkpointing=\"unsloth\",\n", ")\n", "print(f\"β Model loaded: {MODEL_NAME}\")" ] }, { "cell_type": "code", "execution_count": 25, "id": "c28651842", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c28651842", "outputId": "0df5502a-a287-4fea-96ff-f060b4cbec73" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β Prompt/parser ready\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 7 β PROMPT + PARSER\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "def build_prompt(obs):\n", " if hasattr(obs, 'zones'):\n", " zones = obs.zones\n", " day = obs.day\n", " budget= obs.budget_left\n", " fair = obs.fairness_score\n", " stage = obs.step_stage\n", " else:\n", " return \"Allocate resources to Zone 4 first. Respond with JSON.\"\n", "\n", " zlines = \"\\n\".join(\n", " f\" Zone {z.zone_id}: damage={z.damage:.2f} | \"\n", " f\"vulnerable={z.vulnerable_ratio:.2f} | \"\n", " f\"service={getattr(z,'service',0.0):.2f}\"\n", " for z in zones\n", " )\n", " return (\n", " \"You are a disaster recovery AI. Your mission: protect the most vulnerable.\\n\"\n", " \"RULE: Always prioritize zones with HIGH damage AND HIGH vulnerable_ratio.\\n\"\n", " \"Zone 4 is always the most critical (damage=0.92, vulnerable=0.96).\\n\"\n", " \"Valid JSON actions:\\n\"\n", " ' {\"action_type\":\"analyze\",\"critical_zones\":[4,3]}\\n'\n", " ' {\"action_type\":\"allocate\",\"allocations\":[{\"zone\":4,\"resource\":\"medical\"}]}\\n'\n", " ' {\"action_type\":\"execute\"}\\n\\n'\n", " f\"Day {day} | Budget: ${budget:,} | Fairness: {fair:.3f} | Phase: {stage}\\n\"\n", " f\"Zone status:\\n{zlines}\\n\\n\"\n", " \"Respond with ONLY valid JSON. No explanation. Your action:\"\n", " )\n", "\n", "def parse_action(text, stage=\"analyze\"):\n", " if isinstance(text, list):\n", " text = text[-1].get(\"content\", str(text))\n", " text = str(text).strip()\n", " # Strict JSON first\n", " try:\n", " m = re.search(r\"\\{[^{}]+\\}\", text, re.DOTALL)\n", " if m:\n", " d = json.loads(m.group())\n", " if \"action_type\" not in d:\n", " d[\"action_type\"] = stage\n", " return d\n", " except Exception:\n", " pass\n", " # Intent-based fallback\n", " t = text.lower()\n", " if any(w in t for w in [\"analyz\",\"assess\",\"scan\",\"identify\",\"priorit\"]):\n", " return {\"action_type\":\"analyze\",\"critical_zones\":[4,3]}\n", " if any(w in t for w in [\"alloc\",\"dispatch\",\"send\",\"deploy\",\"medical\",\"power\"]):\n", " return {\"action_type\":\"allocate\",\"allocations\":[{\"zone\":4,\"resource\":\"medical\"}]}\n", " if any(w in t for w in [\"execut\",\"proceed\",\"continue\",\"advance\"]):\n", " return {\"action_type\":\"execute\"}\n", " return {\"action_type\": stage if stage in VALID_ACTIONS else \"analyze\"}\n", "\n", "print(\"β Prompt/parser ready\")" ] }, { "cell_type": "code", "execution_count": 26, "id": "c76198616", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c76198616", "outputId": "7085abd4-67a9-4b16-ba69-b8415a1b3c2b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β Reward function ready (0.4Γutility + 0.4Γfairness + 0.2Γsafety)\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 8 β REWARD FUNCTION (Fair-GRPO-RLVR)\n", "#\n", "# Multi-objective: 0.4Γutility + 0.4Γfairness + 0.2Γsafety\n", "# Curriculum: hard episodes weighted 1.15Γ\n", "# Anti-hack: compute_metrics() is same fn used in evaluation\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "def reward_fn(prompts, completions, **kwargs):\n", " rewards = []\n", " for output in completions:\n", " diff = random.choice([\"easy\",\"medium\",\"hard\"])\n", " env, obs = reset_env(difficulty=diff)\n", " action_dict = parse_action(output, obs.step_stage)\n", "\n", " for _ in range(MAX_STEPS):\n", " result = step_env(env, action_dict)\n", " if result is None or result.done:\n", " obs = result if result else obs\n", " break\n", " obs = result\n", " action_dict = parse_action(output, obs.step_stage)\n", "\n", " m = compute_metrics(env, obs)\n", " weight = {\"easy\":0.82,\"medium\":1.0,\"hard\":1.15}.get(diff, 1.0)\n", " score = max(0.0, min(1.0, m[\"reward\"] * weight))\n", " rewards.append(float(score))\n", " return rewards\n", "\n", "print(\"β Reward function ready (0.4Γutility + 0.4Γfairness + 0.2Γsafety)\")" ] }, { "cell_type": "code", "execution_count": 27, "id": "c53378935", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c53378935", "outputId": "02209f8a-3686-44cd-b172-074637919b7e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "β Dataset: 80 scenarios\n", " Easy=28 | Medium=24 | Hard=28\n" ] } ], "source": [ "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "# CELL 9 β DATASET (mixed difficulty curriculum)\n", "# ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n", "from datasets import Dataset\n", "\n", "diffs = [\"easy\"]*28 + [\"medium\"]*24 + [\"hard\"]*28\n", "random.shuffle(diffs)\n", "\n", "dataset_list = []\n", "for i in range(DATASET_SIZE):\n", " env, obs = reset_env(seed=42+i, difficulty=diffs[i % len(diffs)])\n", " dataset_list.append({\n", " \"prompt\": [{\"role\":\"user\",\"content\":build_prompt(obs)}]\n", " })\n", "\n", "dataset = Dataset.from_list(dataset_list)\n", "print(f\"β Dataset: {len(dataset)} scenarios\")\n", "print(f\" Easy={diffs.count('easy')} | Medium={diffs.count('medium')} | Hard={diffs.count('hard')}\")" ] }, { "cell_type": "code", "execution_count": 30, "id": "c73661212", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 1000 }, "id": "c73661212", "outputId": "eb39ddd6-1465-4a4b-e066-1023e593e2c4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "π Training Fair-GRPO-RLVR on Qwen2.5-7B (4bit) β T4 Optimized...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "==((====))== Unsloth - 2x faster free finetuning | Num GPUs used = 1\n", " \\\\ /| Num examples = 80 | Num Epochs = 3 | Total steps = 240\n", "O^O/ \\_/ \\ Batch size per device = 1 | Gradient accumulation steps = 4\n", "\\ / Data Parallel GPUs = 1 | Total batch size (1 x 4 x 1) = 4\n", " \"-____-\" Trainable parameters = 40,370,176 of 7,655,986,688 (0.53% trained)\n" ] }, { "data": { "text/html": [ "\n", "
| Step | \n", "Training Loss | \n", "reward | \n", "reward_std | \n", "completions / mean_length | \n", "completions / min_length | \n", "completions / max_length | \n", "completions / clipped_ratio | \n", "completions / mean_terminated_length | \n", "completions / min_terminated_length | \n", "completions / max_terminated_length | \n", "kl | \n", "rewards / reward_fn / mean | \n", "rewards / reward_fn / std | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | \n", "-0.000000 | \n", "0.843128 | \n", "0.145683 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000017 | \n", "0.843128 | \n", "0.145683 | \n", "
| 2 | \n", "-0.000000 | \n", "0.798271 | \n", "0.155777 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000077 | \n", "0.798271 | \n", "0.155777 | \n", "
| 3 | \n", "-0.000000 | \n", "0.849579 | \n", "0.054960 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.849579 | \n", "0.054960 | \n", "
| 4 | \n", "-0.000000 | \n", "0.802539 | \n", "0.160295 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.802539 | \n", "0.160295 | \n", "
| 5 | \n", "0.000000 | \n", "0.734897 | \n", "0.135988 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000309 | \n", "0.734897 | \n", "0.135988 | \n", "
| 6 | \n", "0.000000 | \n", "0.813155 | \n", "0.107476 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000036 | \n", "0.813155 | \n", "0.107476 | \n", "
| 7 | \n", "0.000000 | \n", "0.811987 | \n", "0.165712 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.811987 | \n", "0.165712 | \n", "
| 8 | \n", "-0.000000 | \n", "0.694599 | \n", "0.069213 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000028 | \n", "0.694599 | \n", "0.069213 | \n", "
| 9 | \n", "0.000000 | \n", "0.727753 | \n", "0.128432 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000033 | \n", "0.727753 | \n", "0.128432 | \n", "
| 10 | \n", "0.000000 | \n", "0.748167 | \n", "0.088141 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000040 | \n", "0.748167 | \n", "0.088141 | \n", "
| 11 | \n", "0.000000 | \n", "0.822631 | \n", "0.117830 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000103 | \n", "0.822631 | \n", "0.117830 | \n", "
| 12 | \n", "0.000000 | \n", "0.762435 | \n", "0.071579 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.762435 | \n", "0.071579 | \n", "
| 13 | \n", "0.000000 | \n", "0.872861 | \n", "0.064595 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000062 | \n", "0.872861 | \n", "0.064595 | \n", "
| 14 | \n", "-0.000000 | \n", "0.806179 | \n", "0.116375 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000056 | \n", "0.806179 | \n", "0.116375 | \n", "
| 15 | \n", "0.000005 | \n", "0.811034 | \n", "0.124646 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.004596 | \n", "0.811034 | \n", "0.124646 | \n", "
| 16 | \n", "0.000000 | \n", "0.697863 | \n", "0.071622 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000135 | \n", "0.697863 | \n", "0.071622 | \n", "
| 17 | \n", "-0.000001 | \n", "0.738281 | \n", "0.077579 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000003 | \n", "0.738281 | \n", "0.077579 | \n", "
| 18 | \n", "0.000000 | \n", "0.735883 | \n", "0.134875 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000143 | \n", "0.735883 | \n", "0.134875 | \n", "
| 19 | \n", "-0.000000 | \n", "0.699011 | \n", "0.065610 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000082 | \n", "0.699011 | \n", "0.065610 | \n", "
| 20 | \n", "-0.000000 | \n", "0.845612 | \n", "0.081100 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.845612 | \n", "0.081100 | \n", "
| 21 | \n", "-0.000001 | \n", "0.699058 | \n", "0.071722 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.699058 | \n", "0.071722 | \n", "
| 22 | \n", "0.000000 | \n", "0.758750 | \n", "0.117845 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000039 | \n", "0.758750 | \n", "0.117845 | \n", "
| 23 | \n", "0.000000 | \n", "0.870611 | \n", "0.075529 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000010 | \n", "0.870611 | \n", "0.075529 | \n", "
| 24 | \n", "0.000000 | \n", "0.794030 | \n", "0.098582 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.794030 | \n", "0.098582 | \n", "
| 25 | \n", "0.000000 | \n", "0.822659 | \n", "0.127389 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000058 | \n", "0.822659 | \n", "0.127389 | \n", "
| 26 | \n", "-0.000000 | \n", "0.807738 | \n", "0.106890 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000018 | \n", "0.807738 | \n", "0.106890 | \n", "
| 27 | \n", "0.000000 | \n", "0.793456 | \n", "0.141934 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000019 | \n", "0.793456 | \n", "0.141934 | \n", "
| 28 | \n", "-0.000000 | \n", "0.884420 | \n", "0.072608 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000038 | \n", "0.884420 | \n", "0.072608 | \n", "
| 29 | \n", "0.000000 | \n", "0.800535 | \n", "0.162151 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000047 | \n", "0.800535 | \n", "0.162151 | \n", "
| 30 | \n", "0.000000 | \n", "0.774795 | \n", "0.075879 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000107 | \n", "0.774795 | \n", "0.075879 | \n", "
| 31 | \n", "0.000000 | \n", "0.831173 | \n", "0.065201 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000053 | \n", "0.831173 | \n", "0.065201 | \n", "
| 32 | \n", "-0.000000 | \n", "0.831560 | \n", "0.124944 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000015 | \n", "0.831560 | \n", "0.124944 | \n", "
| 33 | \n", "0.000000 | \n", "0.770232 | \n", "0.128617 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000028 | \n", "0.770232 | \n", "0.128617 | \n", "
| 34 | \n", "0.000000 | \n", "0.869887 | \n", "0.135676 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.869887 | \n", "0.135676 | \n", "
| 35 | \n", "0.000000 | \n", "0.833566 | \n", "0.121595 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.833566 | \n", "0.121595 | \n", "
| 36 | \n", "0.000000 | \n", "0.703864 | \n", "0.067331 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000065 | \n", "0.703864 | \n", "0.067331 | \n", "
| 37 | \n", "0.000000 | \n", "0.828667 | \n", "0.127974 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000004 | \n", "0.828667 | \n", "0.127974 | \n", "
| 38 | \n", "-0.000000 | \n", "0.786426 | \n", "0.148206 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000011 | \n", "0.786426 | \n", "0.148206 | \n", "
| 39 | \n", "0.000000 | \n", "0.807867 | \n", "0.105389 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.807867 | \n", "0.105389 | \n", "
| 40 | \n", "-0.000000 | \n", "0.790438 | \n", "0.094473 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000027 | \n", "0.790438 | \n", "0.094473 | \n", "
| 41 | \n", "0.000000 | \n", "0.842014 | \n", "0.120489 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000091 | \n", "0.842014 | \n", "0.120489 | \n", "
| 42 | \n", "-0.000000 | \n", "0.802122 | \n", "0.100123 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.802122 | \n", "0.100123 | \n", "
| 43 | \n", "0.000000 | \n", "0.800815 | \n", "0.122998 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000013 | \n", "0.800815 | \n", "0.122998 | \n", "
| 44 | \n", "0.000000 | \n", "0.796794 | \n", "0.146862 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000021 | \n", "0.796794 | \n", "0.146862 | \n", "
| 45 | \n", "0.000000 | \n", "0.787127 | \n", "0.147728 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.787127 | \n", "0.147728 | \n", "
| 46 | \n", "-0.000000 | \n", "0.786718 | \n", "0.145337 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000112 | \n", "0.786718 | \n", "0.145337 | \n", "
| 47 | \n", "0.000001 | \n", "0.910395 | \n", "0.067065 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000031 | \n", "0.910395 | \n", "0.067065 | \n", "
| 48 | \n", "0.000000 | \n", "0.788661 | \n", "0.088962 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000017 | \n", "0.788661 | \n", "0.088962 | \n", "
| 49 | \n", "0.000000 | \n", "0.801454 | \n", "0.098674 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000083 | \n", "0.801454 | \n", "0.098674 | \n", "
| 50 | \n", "0.000000 | \n", "0.796823 | \n", "0.148670 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000029 | \n", "0.796823 | \n", "0.148670 | \n", "
| 51 | \n", "0.000000 | \n", "0.802710 | \n", "0.161270 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.802710 | \n", "0.161270 | \n", "
| 52 | \n", "0.000000 | \n", "0.908741 | \n", "0.062300 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000062 | \n", "0.908741 | \n", "0.062300 | \n", "
| 53 | \n", "-0.000000 | \n", "0.849422 | \n", "0.067473 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000104 | \n", "0.849422 | \n", "0.067473 | \n", "
| 54 | \n", "-0.000000 | \n", "0.843941 | \n", "0.057024 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.843941 | \n", "0.057024 | \n", "
| 55 | \n", "0.000000 | \n", "0.864365 | \n", "0.067550 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.864365 | \n", "0.067550 | \n", "
| 56 | \n", "0.000001 | \n", "0.705796 | \n", "0.080918 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000701 | \n", "0.705796 | \n", "0.080918 | \n", "
| 57 | \n", "-0.000001 | \n", "0.837042 | \n", "0.056360 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.837042 | \n", "0.056360 | \n", "
| 58 | \n", "0.000000 | \n", "0.854460 | \n", "0.078974 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000097 | \n", "0.854460 | \n", "0.078974 | \n", "
| 59 | \n", "0.000000 | \n", "0.717347 | \n", "0.111477 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000026 | \n", "0.717347 | \n", "0.111477 | \n", "
| 60 | \n", "0.000000 | \n", "0.836521 | \n", "0.135959 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000068 | \n", "0.836521 | \n", "0.135959 | \n", "
| 61 | \n", "0.000000 | \n", "0.796520 | \n", "0.150354 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.796520 | \n", "0.150354 | \n", "
| 62 | \n", "-0.000000 | \n", "0.784641 | \n", "0.142960 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.784641 | \n", "0.142960 | \n", "
| 63 | \n", "0.000000 | \n", "0.901499 | \n", "0.055543 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.901499 | \n", "0.055543 | \n", "
| 64 | \n", "0.000000 | \n", "0.836934 | \n", "0.128910 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.836934 | \n", "0.128910 | \n", "
| 65 | \n", "-0.000000 | \n", "0.773142 | \n", "0.136361 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000024 | \n", "0.773142 | \n", "0.136361 | \n", "
| 66 | \n", "0.000000 | \n", "0.808828 | \n", "0.163273 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000242 | \n", "0.808828 | \n", "0.163273 | \n", "
| 67 | \n", "0.000000 | \n", "0.784122 | \n", "0.084622 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000007 | \n", "0.784122 | \n", "0.084622 | \n", "
| 68 | \n", "0.000000 | \n", "0.797161 | \n", "0.093211 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000035 | \n", "0.797161 | \n", "0.093211 | \n", "
| 69 | \n", "-0.000000 | \n", "0.698568 | \n", "0.069257 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.698568 | \n", "0.069257 | \n", "
| 70 | \n", "0.000000 | \n", "0.696077 | \n", "0.054342 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000041 | \n", "0.696077 | \n", "0.054342 | \n", "
| 71 | \n", "0.000000 | \n", "0.830194 | \n", "0.127828 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000077 | \n", "0.830194 | \n", "0.127828 | \n", "
| 72 | \n", "0.000000 | \n", "0.803815 | \n", "0.157901 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000007 | \n", "0.803815 | \n", "0.157901 | \n", "
| 73 | \n", "0.000000 | \n", "0.889588 | \n", "0.065665 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000013 | \n", "0.889588 | \n", "0.065665 | \n", "
| 74 | \n", "0.000000 | \n", "0.769257 | \n", "0.131670 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000021 | \n", "0.769257 | \n", "0.131670 | \n", "
| 75 | \n", "-0.000001 | \n", "0.881513 | \n", "0.050588 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000013 | \n", "0.881513 | \n", "0.050588 | \n", "
| 76 | \n", "-0.000000 | \n", "0.826102 | \n", "0.121150 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000065 | \n", "0.826102 | \n", "0.121150 | \n", "
| 77 | \n", "0.000001 | \n", "0.739334 | \n", "0.087485 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.739334 | \n", "0.087485 | \n", "
| 78 | \n", "0.000001 | \n", "0.765536 | \n", "0.068338 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.765536 | \n", "0.068338 | \n", "
| 79 | \n", "0.000009 | \n", "0.756840 | \n", "0.119915 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.009348 | \n", "0.756840 | \n", "0.119915 | \n", "
| 80 | \n", "0.000000 | \n", "0.735895 | \n", "0.145572 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.735895 | \n", "0.145572 | \n", "
| 81 | \n", "-0.000000 | \n", "0.769466 | \n", "0.075602 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.769466 | \n", "0.075602 | \n", "
| 82 | \n", "0.000000 | \n", "0.869523 | \n", "0.132117 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000021 | \n", "0.869523 | \n", "0.132117 | \n", "
| 83 | \n", "0.000000 | \n", "0.886680 | \n", "0.088231 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000107 | \n", "0.886680 | \n", "0.088231 | \n", "
| 84 | \n", "0.000000 | \n", "0.800187 | \n", "0.113824 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.800187 | \n", "0.113824 | \n", "
| 85 | \n", "0.000000 | \n", "0.908197 | \n", "0.055656 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000039 | \n", "0.908197 | \n", "0.055656 | \n", "
| 86 | \n", "-0.000000 | \n", "0.734214 | \n", "0.077300 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000027 | \n", "0.734214 | \n", "0.077300 | \n", "
| 87 | \n", "0.000000 | \n", "0.759998 | \n", "0.110910 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000017 | \n", "0.759998 | \n", "0.110910 | \n", "
| 88 | \n", "0.000000 | \n", "0.719092 | \n", "0.117038 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000091 | \n", "0.719092 | \n", "0.117038 | \n", "
| 89 | \n", "0.000000 | \n", "0.796460 | \n", "0.109846 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000143 | \n", "0.796460 | \n", "0.109846 | \n", "
| 90 | \n", "-0.000000 | \n", "0.743838 | \n", "0.093475 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000058 | \n", "0.743838 | \n", "0.093475 | \n", "
| 91 | \n", "0.000000 | \n", "0.737779 | \n", "0.144053 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000015 | \n", "0.737779 | \n", "0.144053 | \n", "
| 92 | \n", "-0.000000 | \n", "0.699486 | \n", "0.076543 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.699486 | \n", "0.076543 | \n", "
| 93 | \n", "-0.000000 | \n", "0.771870 | \n", "0.124555 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000004 | \n", "0.771870 | \n", "0.124555 | \n", "
| 94 | \n", "0.000000 | \n", "0.801243 | \n", "0.155796 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000135 | \n", "0.801243 | \n", "0.155796 | \n", "
| 95 | \n", "-0.000000 | \n", "0.837645 | \n", "0.130178 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000053 | \n", "0.837645 | \n", "0.130178 | \n", "
| 96 | \n", "0.000000 | \n", "0.892569 | \n", "0.060532 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000243 | \n", "0.892569 | \n", "0.060532 | \n", "
| 97 | \n", "0.000000 | \n", "0.811243 | \n", "0.129424 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.811243 | \n", "0.129424 | \n", "
| 98 | \n", "0.000080 | \n", "0.810413 | \n", "0.003732 | \n", "13.500000 | \n", "12.000000 | \n", "14.000000 | \n", "0.000000 | \n", "13.500000 | \n", "12.000000 | \n", "14.000000 | \n", "0.068635 | \n", "0.810413 | \n", "0.003732 | \n", "
| 99 | \n", "0.000000 | \n", "0.789519 | \n", "0.135616 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000061 | \n", "0.789519 | \n", "0.135616 | \n", "
| 100 | \n", "-0.000000 | \n", "0.856507 | \n", "0.070665 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.856507 | \n", "0.070665 | \n", "
| 101 | \n", "0.000000 | \n", "0.727242 | \n", "0.120028 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000028 | \n", "0.727242 | \n", "0.120028 | \n", "
| 102 | \n", "0.000000 | \n", "0.805890 | \n", "0.116553 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000019 | \n", "0.805890 | \n", "0.116553 | \n", "
| 103 | \n", "-0.000000 | \n", "0.723263 | \n", "0.115441 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000112 | \n", "0.723263 | \n", "0.115441 | \n", "
| 104 | \n", "0.000001 | \n", "0.736938 | \n", "0.078469 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000047 | \n", "0.736938 | \n", "0.078469 | \n", "
| 105 | \n", "-0.000000 | \n", "0.801179 | \n", "0.098211 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000077 | \n", "0.801179 | \n", "0.098211 | \n", "
| 106 | \n", "0.000000 | \n", "0.888676 | \n", "0.051598 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000077 | \n", "0.888676 | \n", "0.051598 | \n", "
| 107 | \n", "-0.000004 | \n", "0.661955 | \n", "0.004000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000097 | \n", "0.661955 | \n", "0.004000 | \n", "
| 108 | \n", "0.000000 | \n", "0.864780 | \n", "0.079212 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000035 | \n", "0.864780 | \n", "0.079212 | \n", "
| 109 | \n", "-0.000000 | \n", "0.880975 | \n", "0.149078 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.880975 | \n", "0.149078 | \n", "
| 110 | \n", "0.000001 | \n", "0.741817 | \n", "0.087970 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000003 | \n", "0.741817 | \n", "0.087970 | \n", "
| 111 | \n", "-0.000000 | \n", "0.800180 | \n", "0.109978 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.800180 | \n", "0.109978 | \n", "
| 112 | \n", "0.000000 | \n", "0.796518 | \n", "0.155394 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.796518 | \n", "0.155394 | \n", "
| 113 | \n", "0.000000 | \n", "0.801528 | \n", "0.102065 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.801528 | \n", "0.102065 | \n", "
| 114 | \n", "0.000000 | \n", "0.864568 | \n", "0.062291 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.864568 | \n", "0.062291 | \n", "
| 115 | \n", "-0.000000 | \n", "0.729744 | \n", "0.135897 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000065 | \n", "0.729744 | \n", "0.135897 | \n", "
| 116 | \n", "0.000000 | \n", "0.772707 | \n", "0.131141 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000035 | \n", "0.772707 | \n", "0.131141 | \n", "
| 117 | \n", "0.000000 | \n", "0.797789 | \n", "0.156688 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.797789 | \n", "0.156688 | \n", "
| 118 | \n", "-0.000001 | \n", "0.909018 | \n", "0.060856 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.909018 | \n", "0.060856 | \n", "
| 119 | \n", "-0.000000 | \n", "0.867188 | \n", "0.131289 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000082 | \n", "0.867188 | \n", "0.131289 | \n", "
| 120 | \n", "-0.000000 | \n", "0.804821 | \n", "0.116512 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000028 | \n", "0.804821 | \n", "0.116512 | \n", "
| 121 | \n", "0.000000 | \n", "0.800811 | \n", "0.096789 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000033 | \n", "0.800811 | \n", "0.096789 | \n", "
| 122 | \n", "-0.000000 | \n", "0.851649 | \n", "0.063417 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000084 | \n", "0.851649 | \n", "0.063417 | \n", "
| 123 | \n", "-0.000000 | \n", "0.856851 | \n", "0.129563 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.856851 | \n", "0.129563 | \n", "
| 124 | \n", "-0.000000 | \n", "0.693643 | \n", "0.072741 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.693643 | \n", "0.072741 | \n", "
| 125 | \n", "0.000000 | \n", "0.830999 | \n", "0.122211 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.830999 | \n", "0.122211 | \n", "
| 126 | \n", "-0.000000 | \n", "0.764251 | \n", "0.066411 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.764251 | \n", "0.066411 | \n", "
| 127 | \n", "0.000000 | \n", "0.790354 | \n", "0.098157 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000007 | \n", "0.790354 | \n", "0.098157 | \n", "
| 128 | \n", "-0.000000 | \n", "0.867310 | \n", "0.127052 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.867310 | \n", "0.127052 | \n", "
| 129 | \n", "-0.000000 | \n", "0.731784 | \n", "0.077130 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.731784 | \n", "0.077130 | \n", "
| 130 | \n", "0.000000 | \n", "0.787670 | \n", "0.139993 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000069 | \n", "0.787670 | \n", "0.139993 | \n", "
| 131 | \n", "0.000000 | \n", "0.739493 | \n", "0.092601 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000007 | \n", "0.739493 | \n", "0.092601 | \n", "
| 132 | \n", "0.000000 | \n", "0.702182 | \n", "0.076128 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000031 | \n", "0.702182 | \n", "0.076128 | \n", "
| 133 | \n", "0.000000 | \n", "0.703154 | \n", "0.075059 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000038 | \n", "0.703154 | \n", "0.075059 | \n", "
| 134 | \n", "0.000000 | \n", "0.802558 | \n", "0.157019 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.802558 | \n", "0.157019 | \n", "
| 135 | \n", "-0.000000 | \n", "0.803148 | \n", "0.105076 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000011 | \n", "0.803148 | \n", "0.105076 | \n", "
| 136 | \n", "-0.000000 | \n", "0.851726 | \n", "0.128463 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.851726 | \n", "0.128463 | \n", "
| 137 | \n", "0.000000 | \n", "0.873149 | \n", "0.080784 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000042 | \n", "0.873149 | \n", "0.080784 | \n", "
| 138 | \n", "0.000000 | \n", "0.805857 | \n", "0.108964 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.805857 | \n", "0.108964 | \n", "
| 139 | \n", "0.000000 | \n", "0.836011 | \n", "0.068503 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.836011 | \n", "0.068503 | \n", "
| 140 | \n", "0.000000 | \n", "0.831292 | \n", "0.061634 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000046 | \n", "0.831292 | \n", "0.061634 | \n", "
| 141 | \n", "-0.000001 | \n", "0.810284 | \n", "0.010847 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000010 | \n", "0.810284 | \n", "0.010847 | \n", "
| 142 | \n", "0.000000 | \n", "0.733561 | \n", "0.145486 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000042 | \n", "0.733561 | \n", "0.145486 | \n", "
| 143 | \n", "0.000000 | \n", "0.743689 | \n", "0.078775 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000029 | \n", "0.743689 | \n", "0.078775 | \n", "
| 144 | \n", "-0.000000 | \n", "0.803132 | \n", "0.123848 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000018 | \n", "0.803132 | \n", "0.123848 | \n", "
| 145 | \n", "0.000000 | \n", "0.841473 | \n", "0.135311 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000705 | \n", "0.841473 | \n", "0.135311 | \n", "
| 146 | \n", "0.000003 | \n", "0.805765 | \n", "0.014465 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000102 | \n", "0.805765 | \n", "0.014465 | \n", "
| 147 | \n", "0.000000 | \n", "0.884633 | \n", "0.082250 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000017 | \n", "0.884633 | \n", "0.082250 | \n", "
| 148 | \n", "0.000000 | \n", "0.796156 | \n", "0.095623 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000024 | \n", "0.796156 | \n", "0.095623 | \n", "
| 149 | \n", "-0.000001 | \n", "0.874706 | \n", "0.049976 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000019 | \n", "0.874706 | \n", "0.049976 | \n", "
| 150 | \n", "-0.000000 | \n", "0.836264 | \n", "0.122540 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000105 | \n", "0.836264 | \n", "0.122540 | \n", "
| 151 | \n", "0.000000 | \n", "0.835018 | \n", "0.113967 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.835018 | \n", "0.113967 | \n", "
| 152 | \n", "0.000000 | \n", "0.799084 | \n", "0.113052 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.799084 | \n", "0.113052 | \n", "
| 153 | \n", "-0.000000 | \n", "0.808430 | \n", "0.122471 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.808430 | \n", "0.122471 | \n", "
| 154 | \n", "0.000001 | \n", "0.840541 | \n", "0.126390 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.001108 | \n", "0.840541 | \n", "0.126390 | \n", "
| 155 | \n", "-0.000000 | \n", "0.697864 | \n", "0.076342 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000040 | \n", "0.697864 | \n", "0.076342 | \n", "
| 156 | \n", "0.000001 | \n", "0.877575 | \n", "0.075466 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000308 | \n", "0.877575 | \n", "0.075466 | \n", "
| 157 | \n", "0.000000 | \n", "0.777792 | \n", "0.070636 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.777792 | \n", "0.070636 | \n", "
| 158 | \n", "0.000000 | \n", "0.738177 | \n", "0.084333 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.738177 | \n", "0.084333 | \n", "
| 159 | \n", "-0.000000 | \n", "0.799877 | \n", "0.107728 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000021 | \n", "0.799877 | \n", "0.107728 | \n", "
| 160 | \n", "-0.000000 | \n", "0.877317 | \n", "0.134568 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000065 | \n", "0.877317 | \n", "0.134568 | \n", "
| 161 | \n", "-0.000001 | \n", "0.910287 | \n", "0.065864 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000035 | \n", "0.910287 | \n", "0.065864 | \n", "
| 162 | \n", "-0.000000 | \n", "0.809067 | \n", "0.113035 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000017 | \n", "0.809067 | \n", "0.113035 | \n", "
| 163 | \n", "0.000000 | \n", "0.834592 | \n", "0.130330 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.834592 | \n", "0.130330 | \n", "
| 164 | \n", "-0.000000 | \n", "0.729399 | \n", "0.078873 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000059 | \n", "0.729399 | \n", "0.078873 | \n", "
| 165 | \n", "-0.000000 | \n", "0.852180 | \n", "0.082852 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000039 | \n", "0.852180 | \n", "0.082852 | \n", "
| 166 | \n", "0.000001 | \n", "0.701853 | \n", "0.079809 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000031 | \n", "0.701853 | \n", "0.079809 | \n", "
| 167 | \n", "-0.000000 | \n", "0.763604 | \n", "0.129476 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.763604 | \n", "0.129476 | \n", "
| 168 | \n", "0.000001 | \n", "0.742200 | \n", "0.149527 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.001108 | \n", "0.742200 | \n", "0.149527 | \n", "
| 169 | \n", "-0.000000 | \n", "0.825470 | \n", "0.131758 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000004 | \n", "0.825470 | \n", "0.131758 | \n", "
| 170 | \n", "-0.000000 | \n", "0.777778 | \n", "0.075441 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.777778 | \n", "0.075441 | \n", "
| 171 | \n", "-0.000000 | \n", "0.793891 | \n", "0.088129 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000062 | \n", "0.793891 | \n", "0.088129 | \n", "
| 172 | \n", "-0.000000 | \n", "0.816595 | \n", "0.105719 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000061 | \n", "0.816595 | \n", "0.105719 | \n", "
| 173 | \n", "-0.000000 | \n", "0.701767 | \n", "0.069855 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000011 | \n", "0.701767 | \n", "0.069855 | \n", "
| 174 | \n", "-0.000000 | \n", "0.736341 | \n", "0.087118 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000105 | \n", "0.736341 | \n", "0.087118 | \n", "
| 175 | \n", "-0.000000 | \n", "0.804518 | \n", "0.102695 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.804518 | \n", "0.102695 | \n", "
| 176 | \n", "-0.000000 | \n", "0.834695 | \n", "0.125207 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000040 | \n", "0.834695 | \n", "0.125207 | \n", "
| 177 | \n", "0.000000 | \n", "0.911312 | \n", "0.060210 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000065 | \n", "0.911312 | \n", "0.060210 | \n", "
| 178 | \n", "0.000000 | \n", "0.793698 | \n", "0.101296 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.793698 | \n", "0.101296 | \n", "
| 179 | \n", "0.000000 | \n", "0.869033 | \n", "0.140392 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.869033 | \n", "0.140392 | \n", "
| 180 | \n", "-0.000000 | \n", "0.731093 | \n", "0.127546 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000007 | \n", "0.731093 | \n", "0.127546 | \n", "
| 181 | \n", "-0.000000 | \n", "0.849244 | \n", "0.129899 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.849244 | \n", "0.129899 | \n", "
| 182 | \n", "-0.000000 | \n", "0.900080 | \n", "0.064697 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000069 | \n", "0.900080 | \n", "0.064697 | \n", "
| 183 | \n", "0.000000 | \n", "0.827779 | \n", "0.121468 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000077 | \n", "0.827779 | \n", "0.121468 | \n", "
| 184 | \n", "-0.000000 | \n", "0.897956 | \n", "0.074154 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.897956 | \n", "0.074154 | \n", "
| 185 | \n", "0.000000 | \n", "0.806344 | \n", "0.113313 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000077 | \n", "0.806344 | \n", "0.113313 | \n", "
| 186 | \n", "-0.000000 | \n", "0.764749 | \n", "0.139347 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000033 | \n", "0.764749 | \n", "0.139347 | \n", "
| 187 | \n", "0.000000 | \n", "0.835214 | \n", "0.137087 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000035 | \n", "0.835214 | \n", "0.137087 | \n", "
| 188 | \n", "0.000000 | \n", "0.745112 | \n", "0.085067 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000113 | \n", "0.745112 | \n", "0.085067 | \n", "
| 189 | \n", "0.000000 | \n", "0.737846 | \n", "0.090330 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000029 | \n", "0.737846 | \n", "0.090330 | \n", "
| 190 | \n", "-0.000001 | \n", "0.868712 | \n", "0.061967 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000047 | \n", "0.868712 | \n", "0.061967 | \n", "
| 191 | \n", "0.000000 | \n", "0.772086 | \n", "0.074264 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000244 | \n", "0.772086 | \n", "0.074264 | \n", "
| 192 | \n", "0.000000 | \n", "0.754282 | \n", "0.110315 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000003 | \n", "0.754282 | \n", "0.110315 | \n", "
| 193 | \n", "0.000000 | \n", "0.864464 | \n", "0.131106 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000102 | \n", "0.864464 | \n", "0.131106 | \n", "
| 194 | \n", "0.000000 | \n", "0.744727 | \n", "0.087775 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000091 | \n", "0.744727 | \n", "0.087775 | \n", "
| 195 | \n", "0.000001 | \n", "0.729597 | \n", "0.132674 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000705 | \n", "0.729597 | \n", "0.132674 | \n", "
| 196 | \n", "0.000000 | \n", "0.883729 | \n", "0.078192 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.883729 | \n", "0.078192 | \n", "
| 197 | \n", "-0.000000 | \n", "0.756444 | \n", "0.120279 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000019 | \n", "0.756444 | \n", "0.120279 | \n", "
| 198 | \n", "-0.000000 | \n", "0.835653 | \n", "0.131690 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.835653 | \n", "0.131690 | \n", "
| 199 | \n", "0.000000 | \n", "0.757653 | \n", "0.121667 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.757653 | \n", "0.121667 | \n", "
| 200 | \n", "0.000000 | \n", "0.810011 | \n", "0.113825 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.810011 | \n", "0.113825 | \n", "
| 201 | \n", "0.000000 | \n", "0.838017 | \n", "0.066729 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000053 | \n", "0.838017 | \n", "0.066729 | \n", "
| 202 | \n", "0.000000 | \n", "0.887434 | \n", "0.083223 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000021 | \n", "0.887434 | \n", "0.083223 | \n", "
| 203 | \n", "-0.000001 | \n", "0.926034 | \n", "0.017633 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000038 | \n", "0.926034 | \n", "0.017633 | \n", "
| 204 | \n", "0.000000 | \n", "0.866744 | \n", "0.139591 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000020 | \n", "0.866744 | \n", "0.139591 | \n", "
| 205 | \n", "0.000000 | \n", "0.865346 | \n", "0.135559 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.865346 | \n", "0.135559 | \n", "
| 206 | \n", "0.000002 | \n", "0.667554 | \n", "0.008382 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000018 | \n", "0.667554 | \n", "0.008382 | \n", "
| 207 | \n", "0.000003 | \n", "0.669773 | \n", "0.004354 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000055 | \n", "0.669773 | \n", "0.004354 | \n", "
| 208 | \n", "-0.000000 | \n", "0.844819 | \n", "0.066209 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.844819 | \n", "0.066209 | \n", "
| 209 | \n", "0.000000 | \n", "0.807774 | \n", "0.171329 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000097 | \n", "0.807774 | \n", "0.171329 | \n", "
| 210 | \n", "-0.000000 | \n", "0.777970 | \n", "0.138655 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000007 | \n", "0.777970 | \n", "0.138655 | \n", "
| 211 | \n", "0.000000 | \n", "0.743209 | \n", "0.090124 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000019 | \n", "0.743209 | \n", "0.090124 | \n", "
| 212 | \n", "0.000000 | \n", "0.901308 | \n", "0.065966 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000065 | \n", "0.901308 | \n", "0.065966 | \n", "
| 213 | \n", "0.000000 | \n", "0.774258 | \n", "0.142397 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.774258 | \n", "0.142397 | \n", "
| 214 | \n", "0.000000 | \n", "0.744685 | \n", "0.092389 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000084 | \n", "0.744685 | \n", "0.092389 | \n", "
| 215 | \n", "0.000000 | \n", "0.826101 | \n", "0.114208 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000056 | \n", "0.826101 | \n", "0.114208 | \n", "
| 216 | \n", "0.000000 | \n", "0.822133 | \n", "0.107404 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000308 | \n", "0.822133 | \n", "0.107404 | \n", "
| 217 | \n", "-0.000000 | \n", "0.734717 | \n", "0.152413 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000014 | \n", "0.734717 | \n", "0.152413 | \n", "
| 218 | \n", "-0.000000 | \n", "0.772365 | \n", "0.143030 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.772365 | \n", "0.143030 | \n", "
| 219 | \n", "0.000000 | \n", "0.802220 | \n", "0.111047 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000010 | \n", "0.802220 | \n", "0.111047 | \n", "
| 220 | \n", "0.000000 | \n", "0.774719 | \n", "0.135398 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000082 | \n", "0.774719 | \n", "0.135398 | \n", "
| 221 | \n", "-0.000000 | \n", "0.765398 | \n", "0.134647 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000021 | \n", "0.765398 | \n", "0.134647 | \n", "
| 222 | \n", "0.000000 | \n", "0.738536 | \n", "0.089630 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000009 | \n", "0.738536 | \n", "0.089630 | \n", "
| 223 | \n", "0.000000 | \n", "0.791890 | \n", "0.090880 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000017 | \n", "0.791890 | \n", "0.090880 | \n", "
| 224 | \n", "-0.000000 | \n", "0.830223 | \n", "0.121720 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.830223 | \n", "0.121720 | \n", "
| 225 | \n", "0.000000 | \n", "0.774186 | \n", "0.144219 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000015 | \n", "0.774186 | \n", "0.144219 | \n", "
| 226 | \n", "-0.000000 | \n", "0.801866 | \n", "0.106863 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000046 | \n", "0.801866 | \n", "0.106863 | \n", "
| 227 | \n", "0.000000 | \n", "0.837011 | \n", "0.063842 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000028 | \n", "0.837011 | \n", "0.063842 | \n", "
| 228 | \n", "0.000000 | \n", "0.871500 | \n", "0.133445 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000143 | \n", "0.871500 | \n", "0.133445 | \n", "
| 229 | \n", "0.000000 | \n", "0.840957 | \n", "0.063458 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000042 | \n", "0.840957 | \n", "0.063458 | \n", "
| 230 | \n", "0.000000 | \n", "0.803819 | \n", "0.168809 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000042 | \n", "0.803819 | \n", "0.168809 | \n", "
| 231 | \n", "0.000000 | \n", "0.773001 | \n", "0.140826 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000024 | \n", "0.773001 | \n", "0.140826 | \n", "
| 232 | \n", "0.000000 | \n", "0.858635 | \n", "0.133183 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.858635 | \n", "0.133183 | \n", "
| 233 | \n", "0.000000 | \n", "0.772754 | \n", "0.128574 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000135 | \n", "0.772754 | \n", "0.128574 | \n", "
| 234 | \n", "0.000000 | \n", "0.706246 | \n", "0.068467 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000043 | \n", "0.706246 | \n", "0.068467 | \n", "
| 235 | \n", "-0.000000 | \n", "0.789202 | \n", "0.143136 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000008 | \n", "0.789202 | \n", "0.143136 | \n", "
| 236 | \n", "0.000000 | \n", "0.690952 | \n", "0.061912 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000107 | \n", "0.690952 | \n", "0.061912 | \n", "
| 237 | \n", "0.000000 | \n", "0.759147 | \n", "0.118378 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000028 | \n", "0.759147 | \n", "0.118378 | \n", "
| 238 | \n", "-0.000000 | \n", "0.734724 | \n", "0.070409 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000027 | \n", "0.734724 | \n", "0.070409 | \n", "
| 239 | \n", "0.000000 | \n", "0.880703 | \n", "0.077338 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000012 | \n", "0.880703 | \n", "0.077338 | \n", "
| 240 | \n", "-0.000000 | \n", "0.848987 | \n", "0.144032 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000000 | \n", "14.000000 | \n", "14.000000 | \n", "14.000000 | \n", "0.000025 | \n", "0.848987 | \n", "0.144032 | \n", "
"
],
"text/plain": [
"