From 2596bf9f1bf7c6338048078bba16fff797021c63 Mon Sep 17 00:00:00 2001
From: the-anup-das <anup.das17@yahoo.com>
Date: Sun, 14 Apr 2024 22:31:59 +0530
Subject: [PATCH] Added huggingface encoder endpoint

---
 docs/09-route-filter.ipynb                    |    7 +-
 docs/encoders/huggingface-endpoint.ipynb      | 3354 +++++++++++++++++
 docs/encoders/huggingface.ipynb               |  590 ++-
 docs/indexes/qdrant.ipynb                     |    1 +
 semantic_router/encoders/__init__.py          |    2 +
 semantic_router/encoders/hfendpointencoder.py |   53 -
 semantic_router/encoders/huggingface.py       |  163 +
 tests/unit/encoders/test_hfendpointencoder.py |   68 +
 8 files changed, 4164 insertions(+), 74 deletions(-)
 create mode 100644 docs/encoders/huggingface-endpoint.ipynb
 delete mode 100644 semantic_router/encoders/hfendpointencoder.py
 create mode 100644 tests/unit/encoders/test_hfendpointencoder.py

diff --git a/docs/09-route-filter.ipynb b/docs/09-route-filter.ipynb
index aa885567..9c95e513 100644
--- a/docs/09-route-filter.ipynb
+++ b/docs/09-route-filter.ipynb
@@ -41,7 +41,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "!pip install -qU semantic-router==0.0.32\n"
+    "!pip install -qU semantic-router==0.0.32"
    ]
   },
   {
@@ -124,6 +124,7 @@
     "import os\n",
     "from getpass import getpass\n",
     "from semantic_router.encoders import CohereEncoder, OpenAIEncoder\n",
+    "\n",
     "os.environ[\"COHERE_API_KEY\"] = os.getenv(\"COHERE_API_KEY\") or getpass(\n",
     "    \"Enter Cohere API Key: \"\n",
     ")\n",
@@ -259,7 +260,7 @@
     }
    ],
    "source": [
-    "rl(\"don't you love politics?\", route_filter=[\"chitchat\"])\n"
+    "rl(\"don't you love politics?\", route_filter=[\"chitchat\"])"
    ]
   },
   {
@@ -288,7 +289,7 @@
     }
    ],
    "source": [
-    "rl(\"how's the weather today?\", route_filter=[\"politics\"])\n"
+    "rl(\"how's the weather today?\", route_filter=[\"politics\"])"
    ]
   },
   {
diff --git a/docs/encoders/huggingface-endpoint.ipynb b/docs/encoders/huggingface-endpoint.ipynb
new file mode 100644
index 00000000..a33ab08c
--- /dev/null
+++ b/docs/encoders/huggingface-endpoint.ipynb
@@ -0,0 +1,3354 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/aurelio-labs/semantic-router/blob/main/docs/encoders/fastembed.ipynb) [![Open nbviewer](https://raw.githubusercontent.com/pinecone-io/examples/master/assets/nbviewer-shield.svg)](https://nbviewer.org/github/aurelio-labs/semantic-router/blob/main/docs/encoders/fastembed.ipynb)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Using Huggingface endpoint"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "HuggingFace is a huge ecosystem of open source models. It can be run locally and supports the largest library of encoders."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Getting Started"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We start by installing semantic-router."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# !pip install -qU semantic-router==0.0.20"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We start by defining a dictionary mapping routes to example phrases that should trigger those routes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "d:\\Program_Installation\\anaconda\\envs\\testenv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
+      "  from .autonotebook import tqdm as notebook_tqdm\n"
+     ]
+    }
+   ],
+   "source": [
+    "from semantic_router import Route\n",
+    "\n",
+    "politics = Route(\n",
+    "    name=\"politics\",\n",
+    "    utterances=[\n",
+    "        \"isn't politics the best thing ever\",\n",
+    "        \"why don't you tell me about your political opinions\",\n",
+    "        \"don't you just love the president\",\n",
+    "        \"don't you just hate the president\",\n",
+    "        \"they're going to destroy this country!\",\n",
+    "        \"they will save the country!\",\n",
+    "    ],\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Let's define another for good measure:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "chitchat = Route(\n",
+    "    name=\"chitchat\",\n",
+    "    utterances=[\n",
+    "        \"how's the weather today?\",\n",
+    "        \"how are things going?\",\n",
+    "        \"lovely weather today\",\n",
+    "        \"the weather is horrendous\",\n",
+    "        \"let's go to the chippy\",\n",
+    "    ],\n",
+    ")\n",
+    "\n",
+    "routes = [politics, chitchat]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now we initialize our embedding model, we will use the Huggingface endpoint"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "d:\\Program_Installation\\anaconda\\envs\\testenv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
+      "  from .autonotebook import tqdm as notebook_tqdm\n",
+      "\u001b[32m2024-04-14 20:54:07 INFO semantic_router.utils.logger Model Initializing wait for - 26.81s \u001b[0m\n"
+     ]
+    }
+   ],
+   "source": [
+    "import os\n",
+    "from getpass import getpass\n",
+    "from semantic_router.encoders.huggingface import HFEndpointEncoder\n",
+    "\n",
+    "huggingface_url = os.getenv(\"HF_API_URL\") or getpass(\"Enter HuggingFace API URL: \")\n",
+    "huggingface_api_key = os.getenv(\"HF_API_KEY\") or getpass(\"Enter HuggingFace API Key: \")\n",
+    "\n",
+    "encoder = HFEndpointEncoder(\n",
+    "    huggingface_url=huggingface_url,\n",
+    "    huggingface_api_key=huggingface_api_key,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[[-0.351535439491272,\n",
+       "  -0.0007503691595047712,\n",
+       "  0.22843779623508453,\n",
+       "  0.1197630763053894,\n",
+       "  -0.9190473556518555,\n",
+       "  0.4975742697715759,\n",
+       "  0.08101634681224823,\n",
+       "  0.05379204452037811,\n",
+       "  0.1970519870519638,\n",
+       "  -0.0833292305469513,\n",
+       "  0.36685681343078613,\n",
+       "  0.004698676988482475,\n",
+       "  -0.19794942438602448,\n",
+       "  -0.33827024698257446,\n",
+       "  -0.24040493369102478,\n",
+       "  0.3189111649990082,\n",
+       "  -0.5002703666687012,\n",
+       "  -0.6781224012374878,\n",
+       "  -0.2871842384338379,\n",
+       "  0.0505770742893219,\n",
+       "  -0.03144306689500809,\n",
+       "  0.15773507952690125,\n",
+       "  -1.278083324432373,\n",
+       "  -0.2693241238594055,\n",
+       "  -0.11886045336723328,\n",
+       "  0.3414249122142792,\n",
+       "  0.5203899145126343,\n",
+       "  0.6207894682884216,\n",
+       "  0.6428499817848206,\n",
+       "  0.8519144058227539,\n",
+       "  -0.08569950610399246,\n",
+       "  0.32095733284950256,\n",
+       "  0.38129955530166626,\n",
+       "  -0.5376394391059875,\n",
+       "  -0.23925058543682098,\n",
+       "  -0.975605309009552,\n",
+       "  0.14065563678741455,\n",
+       "  0.08411094546318054,\n",
+       "  0.5871137976646423,\n",
+       "  -0.5853262543678284,\n",
+       "  -0.16012267768383026,\n",
+       "  -0.30777785181999207,\n",
+       "  0.32361841201782227,\n",
+       "  -0.5167716145515442,\n",
+       "  -0.6283416152000427,\n",
+       "  -0.040950220078229904,\n",
+       "  0.4034270942211151,\n",
+       "  -0.5306437015533447,\n",
+       "  0.1296883225440979,\n",
+       "  -0.8245601654052734,\n",
+       "  -0.24195696413516998,\n",
+       "  -0.5704426169395447,\n",
+       "  0.3505809009075165,\n",
+       "  -0.033617936074733734,\n",
+       "  0.338241308927536,\n",
+       "  0.05172817409038544,\n",
+       "  0.1608736217021942,\n",
+       "  0.06910604983568192,\n",
+       "  -0.6235120892524719,\n",
+       "  0.8605656623840332,\n",
+       "  0.18825599551200867,\n",
+       "  0.26032543182373047,\n",
+       "  0.4893842935562134,\n",
+       "  -0.28306061029434204,\n",
+       "  -0.01022877637296915,\n",
+       "  0.2018183022737503,\n",
+       "  0.0314965546131134,\n",
+       "  -0.40636199712753296,\n",
+       "  0.2871060371398926,\n",
+       "  -0.5569078326225281,\n",
+       "  0.12462319433689117,\n",
+       "  0.24766811728477478,\n",
+       "  -0.6712727546691895,\n",
+       "  -0.34486064314842224,\n",
+       "  -0.2843998074531555,\n",
+       "  0.2237756997346878,\n",
+       "  -0.10615847259759903,\n",
+       "  -0.4099731743335724,\n",
+       "  -0.4892323613166809,\n",
+       "  0.7918497323989868,\n",
+       "  0.121148020029068,\n",
+       "  0.8321442008018494,\n",
+       "  0.3077283203601837,\n",
+       "  0.174817755818367,\n",
+       "  -0.673957109451294,\n",
+       "  -0.10718388855457306,\n",
+       "  -0.020176205784082413,\n",
+       "  0.44770675897598267,\n",
+       "  0.14065337181091309,\n",
+       "  0.011919533833861351,\n",
+       "  -0.09472586214542389,\n",
+       "  0.42185404896736145,\n",
+       "  -0.08556605130434036,\n",
+       "  -0.003908890299499035,\n",
+       "  0.4729606807231903,\n",
+       "  1.0341724157333374,\n",
+       "  -0.4871886670589447,\n",
+       "  0.7629178762435913,\n",
+       "  -0.7858189344406128,\n",
+       "  0.7404838800430298,\n",
+       "  -0.09609171003103256,\n",
+       "  0.33085229992866516,\n",
+       "  -0.07759019732475281,\n",
+       "  0.608190655708313,\n",
+       "  -0.7358576655387878,\n",
+       "  -0.46256259083747864,\n",
+       "  0.17247380316257477,\n",
+       "  0.47123825550079346,\n",
+       "  -0.07190967351198196,\n",
+       "  -0.3706129789352417,\n",
+       "  0.6815729141235352,\n",
+       "  0.10979508608579636,\n",
+       "  0.01968960091471672,\n",
+       "  0.3837202191352844,\n",
+       "  -0.37777477502822876,\n",
+       "  0.296452134847641,\n",
+       "  -0.47000813484191895,\n",
+       "  0.6567757725715637,\n",
+       "  -0.4787653982639313,\n",
+       "  0.10389051586389542,\n",
+       "  -0.13098134100437164,\n",
+       "  0.06771161407232285,\n",
+       "  0.9172448515892029,\n",
+       "  0.7513774037361145,\n",
+       "  -0.3587314188480377,\n",
+       "  -0.07944370806217194,\n",
+       "  -0.3190295696258545,\n",
+       "  0.35680150985717773,\n",
+       "  -0.7315585017204285,\n",
+       "  -0.2934412658214569,\n",
+       "  -0.29015278816223145,\n",
+       "  -0.6571040153503418,\n",
+       "  0.3849678337574005,\n",
+       "  0.37416988611221313,\n",
+       "  0.07331178337335587,\n",
+       "  0.22313304245471954,\n",
+       "  -0.0582025870680809,\n",
+       "  0.48670142889022827,\n",
+       "  0.5369858145713806,\n",
+       "  -0.7363126277923584,\n",
+       "  0.408779501914978,\n",
+       "  0.08013352751731873,\n",
+       "  0.32343122363090515,\n",
+       "  1.1921049356460571,\n",
+       "  -0.33595478534698486,\n",
+       "  0.7817761898040771,\n",
+       "  0.09240103513002396,\n",
+       "  0.747512936592102,\n",
+       "  -0.975735068321228,\n",
+       "  -0.46965065598487854,\n",
+       "  -0.5060147047042847,\n",
+       "  0.315020889043808,\n",
+       "  -0.8111321330070496,\n",
+       "  0.1700848788022995,\n",
+       "  -0.44967469573020935,\n",
+       "  0.2730434238910675,\n",
+       "  -0.28182634711265564,\n",
+       "  -0.11358585953712463,\n",
+       "  0.3349793255329132,\n",
+       "  0.6125620603561401,\n",
+       "  -1.1185657978057861,\n",
+       "  -0.23598258197307587,\n",
+       "  0.11817905306816101,\n",
+       "  0.14007949829101562,\n",
+       "  -0.1342378556728363,\n",
+       "  0.6637296080589294,\n",
+       "  -0.34339287877082825,\n",
+       "  0.37832096219062805,\n",
+       "  -0.20260536670684814,\n",
+       "  -0.42285487055778503,\n",
+       "  0.3214675784111023,\n",
+       "  0.3772791922092438,\n",
+       "  0.13906392455101013,\n",
+       "  -0.15471051633358002,\n",
+       "  0.1717817336320877,\n",
+       "  0.6878579258918762,\n",
+       "  0.4495076835155487,\n",
+       "  0.42458420991897583,\n",
+       "  0.6390083432197571,\n",
+       "  -0.18033525347709656,\n",
+       "  0.26399803161621094,\n",
+       "  -0.2000855803489685,\n",
+       "  0.1517951339483261,\n",
+       "  0.5062836408615112,\n",
+       "  0.16540852189064026,\n",
+       "  -0.5752784013748169,\n",
+       "  0.3921325206756592,\n",
+       "  0.3396417498588562,\n",
+       "  -0.5016378164291382,\n",
+       "  -0.1977510303258896,\n",
+       "  -0.37614500522613525,\n",
+       "  -0.0459459163248539,\n",
+       "  -0.8561480641365051,\n",
+       "  0.41308894753456116,\n",
+       "  -0.2559718191623688,\n",
+       "  0.33978575468063354,\n",
+       "  -1.0577623844146729,\n",
+       "  -0.4702085852622986,\n",
+       "  -0.15038155019283295,\n",
+       "  -0.417285680770874,\n",
+       "  -0.10158014297485352,\n",
+       "  1.085134506225586,\n",
+       "  -0.5067138075828552,\n",
+       "  0.3239610493183136,\n",
+       "  0.5427021384239197,\n",
+       "  -0.4705069065093994,\n",
+       "  0.564260721206665,\n",
+       "  0.662142813205719,\n",
+       "  -0.674139142036438,\n",
+       "  -0.05586134269833565,\n",
+       "  0.41527360677719116,\n",
+       "  0.3268394470214844,\n",
+       "  -0.15188544988632202,\n",
+       "  0.2864024043083191,\n",
+       "  -0.058077551424503326,\n",
+       "  0.7025948762893677,\n",
+       "  -0.2740480601787567,\n",
+       "  0.4234461784362793,\n",
+       "  -0.8005895018577576,\n",
+       "  0.3397463858127594,\n",
+       "  0.5496795773506165,\n",
+       "  0.10069300979375839,\n",
+       "  0.6318082213401794,\n",
+       "  1.220789909362793,\n",
+       "  0.12347802519798279,\n",
+       "  0.2145691066980362,\n",
+       "  0.5473058819770813,\n",
+       "  0.58868008852005,\n",
+       "  0.5263211131095886,\n",
+       "  -0.39429542422294617,\n",
+       "  -0.12528102099895477,\n",
+       "  0.21609920263290405,\n",
+       "  -0.3399151563644409,\n",
+       "  0.6400638818740845,\n",
+       "  -0.385766863822937,\n",
+       "  -0.0837368443608284,\n",
+       "  0.19966909289360046,\n",
+       "  0.6031802892684937,\n",
+       "  0.6655975580215454,\n",
+       "  -0.06525135785341263,\n",
+       "  0.421434223651886,\n",
+       "  -0.11338674277067184,\n",
+       "  0.6240838766098022,\n",
+       "  0.2370661199092865,\n",
+       "  -0.28858521580696106,\n",
+       "  0.018270932137966156,\n",
+       "  0.16613556444644928,\n",
+       "  0.5155487060546875,\n",
+       "  -0.7947002649307251,\n",
+       "  0.43162399530410767,\n",
+       "  -0.2558012008666992,\n",
+       "  0.322053998708725,\n",
+       "  0.2850834131240845,\n",
+       "  0.6699681282043457,\n",
+       "  -0.7805972695350647,\n",
+       "  -0.0967356339097023,\n",
+       "  0.26844969391822815,\n",
+       "  0.25309741497039795,\n",
+       "  -0.040921133011579514,\n",
+       "  -0.2745266258716583,\n",
+       "  -0.2656719386577606,\n",
+       "  0.7735238671302795,\n",
+       "  0.36282986402511597,\n",
+       "  0.3531838059425354,\n",
+       "  -0.018144357949495316,\n",
+       "  0.2762523889541626,\n",
+       "  0.292710542678833,\n",
+       "  0.7624996900558472,\n",
+       "  0.4032532572746277,\n",
+       "  -0.47754618525505066,\n",
+       "  -0.15234309434890747,\n",
+       "  -0.646909236907959,\n",
+       "  -0.6886371970176697,\n",
+       "  -0.4359741806983948,\n",
+       "  -0.3814290761947632,\n",
+       "  -0.14441734552383423,\n",
+       "  0.8817673921585083,\n",
+       "  -0.07520444691181183,\n",
+       "  0.2902243137359619,\n",
+       "  -0.0363328754901886,\n",
+       "  -0.09644324332475662,\n",
+       "  -0.2702822685241699,\n",
+       "  -0.0903836041688919,\n",
+       "  -0.07166784256696701,\n",
+       "  0.4520867168903351,\n",
+       "  0.7583602070808411,\n",
+       "  -0.17694738507270813,\n",
+       "  -0.1802419275045395,\n",
+       "  0.036734264343976974,\n",
+       "  0.5039187073707581,\n",
+       "  -0.3738216459751129,\n",
+       "  -0.2462330311536789,\n",
+       "  -0.16176871955394745,\n",
+       "  -0.09859970211982727,\n",
+       "  -0.24951350688934326,\n",
+       "  -0.2699921429157257,\n",
+       "  -0.6594424843788147,\n",
+       "  0.051325127482414246,\n",
+       "  -0.6931187510490417,\n",
+       "  -1.0771921873092651,\n",
+       "  0.5300352573394775,\n",
+       "  -0.26480865478515625,\n",
+       "  -0.21046501398086548,\n",
+       "  -0.7360295057296753,\n",
+       "  -0.5392773151397705,\n",
+       "  0.07280915975570679,\n",
+       "  0.3488386273384094,\n",
+       "  -0.3438490033149719,\n",
+       "  0.9271075129508972,\n",
+       "  0.8084055185317993,\n",
+       "  -0.43852490186691284,\n",
+       "  0.377078652381897,\n",
+       "  0.5122473835945129,\n",
+       "  0.5148366093635559,\n",
+       "  -0.6005906462669373,\n",
+       "  0.5307503342628479,\n",
+       "  -0.11821816861629486,\n",
+       "  0.1444067656993866,\n",
+       "  -1.4041671752929688,\n",
+       "  -0.14894679188728333,\n",
+       "  -0.4679705500602722,\n",
+       "  -0.4729899764060974,\n",
+       "  -0.3515671491622925,\n",
+       "  -1.0960698127746582,\n",
+       "  -0.046922557055950165,\n",
+       "  0.47342783212661743,\n",
+       "  0.7556535601615906,\n",
+       "  -1.0950236320495605,\n",
+       "  0.2015274316072464,\n",
+       "  -0.4315618872642517,\n",
+       "  -0.8300988078117371,\n",
+       "  -0.18433940410614014,\n",
+       "  -0.9175993800163269,\n",
+       "  0.9776148796081543,\n",
+       "  -0.07103785127401352,\n",
+       "  0.16896787285804749,\n",
+       "  -0.12059900909662247,\n",
+       "  -0.24394500255584717,\n",
+       "  0.44257596135139465,\n",
+       "  0.2439504861831665,\n",
+       "  0.6449788212776184,\n",
+       "  -0.9974457025527954,\n",
+       "  0.7066627144813538,\n",
+       "  0.45798584818840027,\n",
+       "  0.4536619782447815,\n",
+       "  0.36611127853393555,\n",
+       "  0.48572322726249695,\n",
+       "  -0.12092026323080063,\n",
+       "  -0.5880641341209412,\n",
+       "  0.3482988178730011,\n",
+       "  0.03320842236280441,\n",
+       "  -0.19150950014591217,\n",
+       "  0.32792967557907104,\n",
+       "  0.14458581805229187,\n",
+       "  0.2966439425945282,\n",
+       "  0.3636152148246765,\n",
+       "  -0.4487185478210449,\n",
+       "  0.13955338299274445,\n",
+       "  0.07723299413919449,\n",
+       "  0.29051685333251953,\n",
+       "  0.6939775347709656,\n",
+       "  0.22232133150100708,\n",
+       "  -0.13401393592357635,\n",
+       "  -0.23672369122505188,\n",
+       "  -0.19740118086338043,\n",
+       "  -0.9358344078063965,\n",
+       "  0.30432987213134766,\n",
+       "  -0.4772465229034424,\n",
+       "  0.28738725185394287,\n",
+       "  -0.9792874455451965,\n",
+       "  0.33745595812797546,\n",
+       "  -0.22576816380023956,\n",
+       "  -0.7814821004867554,\n",
+       "  0.5664247870445251,\n",
+       "  -0.432607501745224,\n",
+       "  0.09034114331007004,\n",
+       "  0.29543694853782654,\n",
+       "  0.1969209611415863,\n",
+       "  -0.11263825744390488,\n",
+       "  -0.49571752548217773,\n",
+       "  0.6815844178199768,\n",
+       "  -0.2476591318845749,\n",
+       "  -0.084346242249012,\n",
+       "  0.13864430785179138,\n",
+       "  0.6361597180366516,\n",
+       "  0.6096804738044739,\n",
+       "  0.31687605381011963,\n",
+       "  0.3509639799594879,\n",
+       "  -0.45081862807273865,\n",
+       "  0.34895265102386475,\n",
+       "  0.0014897516230121255,\n",
+       "  -0.31649163365364075,\n",
+       "  0.8546939492225647,\n",
+       "  -0.5078703165054321,\n",
+       "  -1.0238487720489502,\n",
+       "  -0.35330167412757874,\n",
+       "  0.42015737295150757,\n",
+       "  0.2236682027578354,\n",
+       "  0.6500250101089478,\n",
+       "  -0.32474857568740845,\n",
+       "  0.6556638479232788,\n",
+       "  -0.025438643991947174,\n",
+       "  0.8389859795570374,\n",
+       "  0.5562865138053894,\n",
+       "  0.18280459940433502,\n",
+       "  0.08434924483299255,\n",
+       "  0.042215943336486816,\n",
+       "  0.5467571020126343,\n",
+       "  0.1123742163181305,\n",
+       "  0.03244837000966072,\n",
+       "  -1.0061715841293335,\n",
+       "  -0.3085944950580597,\n",
+       "  -0.6957574486732483,\n",
+       "  0.22116586565971375,\n",
+       "  0.382159948348999,\n",
+       "  0.22632470726966858,\n",
+       "  -0.27501484751701355,\n",
+       "  -0.2863302230834961,\n",
+       "  0.4582352042198181,\n",
+       "  0.5971866846084595,\n",
+       "  0.46816304326057434,\n",
+       "  -0.13226784765720367,\n",
+       "  -0.2464510053396225,\n",
+       "  0.46584272384643555,\n",
+       "  0.10705604404211044,\n",
+       "  -0.351188987493515,\n",
+       "  0.12138845771551132,\n",
+       "  -0.6085167527198792,\n",
+       "  0.3774726986885071,\n",
+       "  0.5407528877258301,\n",
+       "  0.0064618270844221115,\n",
+       "  -0.573912501335144,\n",
+       "  0.05149620398879051,\n",
+       "  0.23512426018714905,\n",
+       "  -0.387866735458374,\n",
+       "  -0.48907822370529175,\n",
+       "  0.4558003544807434,\n",
+       "  0.3432888686656952,\n",
+       "  0.9528384208679199,\n",
+       "  -0.6374655961990356,\n",
+       "  0.34813398122787476,\n",
+       "  -0.23865161836147308,\n",
+       "  -0.4767013192176819,\n",
+       "  0.3049609363079071,\n",
+       "  0.4352666735649109,\n",
+       "  0.42963385581970215,\n",
+       "  0.12873537838459015,\n",
+       "  0.8428581953048706,\n",
+       "  -0.5732046365737915,\n",
+       "  -0.7193275094032288,\n",
+       "  0.09657884389162064,\n",
+       "  -1.4704506397247314,\n",
+       "  0.4931609034538269,\n",
+       "  0.43918612599372864,\n",
+       "  -0.44628724455833435,\n",
+       "  -0.13946163654327393,\n",
+       "  -0.22067882120609283,\n",
+       "  -0.06430879235267639,\n",
+       "  -0.05333731323480606,\n",
+       "  -0.8031220436096191,\n",
+       "  -0.41270455718040466,\n",
+       "  -0.010898495092988014,\n",
+       "  0.5054727792739868,\n",
+       "  -0.13417154550552368,\n",
+       "  -0.09902690351009369,\n",
+       "  1.3453506231307983,\n",
+       "  -0.4104675054550171,\n",
+       "  -0.5713691115379333,\n",
+       "  0.5122509002685547,\n",
+       "  -0.02970154955983162,\n",
+       "  0.0001729759678710252,\n",
+       "  -0.34633317589759827,\n",
+       "  0.58829665184021,\n",
+       "  0.2868087887763977,\n",
+       "  0.2541254460811615,\n",
+       "  -0.05617895722389221,\n",
+       "  0.6807460188865662,\n",
+       "  -0.08982411026954651,\n",
+       "  -0.7709076404571533,\n",
+       "  0.4982278347015381,\n",
+       "  -0.37107664346694946,\n",
+       "  0.03981844708323479,\n",
+       "  -0.25501468777656555,\n",
+       "  -0.3640649616718292,\n",
+       "  -0.03449568524956703,\n",
+       "  -0.867987871170044,\n",
+       "  -0.2041328102350235,\n",
+       "  0.027860060334205627,\n",
+       "  -0.6101935505867004,\n",
+       "  0.5620599985122681,\n",
+       "  0.2859831154346466,\n",
+       "  0.5863463282585144,\n",
+       "  -0.4182853102684021,\n",
+       "  0.08681090921163559,\n",
+       "  0.14754517376422882,\n",
+       "  -0.06796219199895859,\n",
+       "  -0.27611684799194336,\n",
+       "  -0.2342776209115982,\n",
+       "  0.19633087515830994,\n",
+       "  0.2756378650665283,\n",
+       "  0.5625853538513184,\n",
+       "  -0.49814656376838684,\n",
+       "  -0.401283860206604,\n",
+       "  -0.09274519979953766,\n",
+       "  -0.38711124658584595,\n",
+       "  -0.36291393637657166,\n",
+       "  -0.5965020656585693,\n",
+       "  0.08162636309862137,\n",
+       "  0.0009226799593307078,\n",
+       "  0.12532298266887665,\n",
+       "  0.27732548117637634,\n",
+       "  -0.33255183696746826,\n",
+       "  -0.47273731231689453,\n",
+       "  0.3618244230747223,\n",
+       "  -0.6171136498451233,\n",
+       "  0.754910945892334,\n",
+       "  -0.033839914947748184,\n",
+       "  0.07171781361103058,\n",
+       "  -0.16260485351085663,\n",
+       "  1.2018041610717773,\n",
+       "  0.8110723495483398,\n",
+       "  -0.6492946147918701,\n",
+       "  -0.29279717803001404,\n",
+       "  0.4938250482082367,\n",
+       "  0.027557458728551865,\n",
+       "  0.5749586224555969,\n",
+       "  0.2800053656101227,\n",
+       "  0.03805295750498772,\n",
+       "  0.16644710302352905,\n",
+       "  -0.8560732007026672,\n",
+       "  0.1032106801867485,\n",
+       "  -0.06021938472986221,\n",
+       "  -0.7916827201843262,\n",
+       "  -0.6022663712501526,\n",
+       "  -0.329144686460495,\n",
+       "  -0.9039788842201233,\n",
+       "  0.8628774285316467,\n",
+       "  0.27277982234954834,\n",
+       "  0.4087710380554199,\n",
+       "  0.08519420772790909,\n",
+       "  -0.49490687251091003,\n",
+       "  0.05425240099430084,\n",
+       "  0.36529237031936646,\n",
+       "  -0.737844705581665,\n",
+       "  -0.3061997592449188,\n",
+       "  0.12480030208826065,\n",
+       "  0.20698219537734985,\n",
+       "  0.6797382235527039,\n",
+       "  -0.5483785271644592,\n",
+       "  0.276843398809433,\n",
+       "  -0.04296817258000374,\n",
+       "  -0.0498192124068737,\n",
+       "  0.18017064034938812,\n",
+       "  0.24226133525371552,\n",
+       "  -0.39626362919807434,\n",
+       "  -0.1816210150718689,\n",
+       "  0.3709948658943176,\n",
+       "  -0.2237037867307663,\n",
+       "  0.12779122591018677,\n",
+       "  0.3271578252315521,\n",
+       "  -0.11732201278209686,\n",
+       "  0.26085489988327026,\n",
+       "  -0.6515527963638306,\n",
+       "  -0.21465128660202026,\n",
+       "  -0.3324236273765564,\n",
+       "  -0.5589518547058105,\n",
+       "  0.12180844694375992,\n",
+       "  0.1852940022945404,\n",
+       "  0.5779324173927307,\n",
+       "  0.36550113558769226,\n",
+       "  -0.11930176615715027,\n",
+       "  -0.06511150300502777,\n",
+       "  -0.1553603559732437,\n",
+       "  0.5276203751564026,\n",
+       "  0.3745949864387512,\n",
+       "  -0.5842090845108032,\n",
+       "  -0.6464338898658752,\n",
+       "  -0.38732996582984924,\n",
+       "  -0.8451240062713623,\n",
+       "  0.32487261295318604,\n",
+       "  -0.2058093249797821,\n",
+       "  0.13900302350521088,\n",
+       "  -0.8028187155723572,\n",
+       "  -0.3149273097515106,\n",
+       "  0.9239713549613953,\n",
+       "  0.2142457515001297,\n",
+       "  -0.2100885808467865,\n",
+       "  1.455012559890747,\n",
+       "  -0.5873098969459534,\n",
+       "  0.500898540019989,\n",
+       "  0.02715122140944004,\n",
+       "  0.563439667224884,\n",
+       "  0.18631429970264435,\n",
+       "  -0.4562689960002899,\n",
+       "  -0.1576705276966095,\n",
+       "  -0.5597322583198547,\n",
+       "  -0.06370822340250015,\n",
+       "  0.24073514342308044,\n",
+       "  -0.961319088935852,\n",
+       "  -0.17020557820796967,\n",
+       "  -0.7333323955535889,\n",
+       "  -0.4487285614013672,\n",
+       "  0.3572932481765747,\n",
+       "  0.03249140828847885,\n",
+       "  0.830589771270752,\n",
+       "  0.11472773551940918,\n",
+       "  -0.539686918258667,\n",
+       "  -0.5189257264137268,\n",
+       "  0.40835750102996826,\n",
+       "  0.3892066180706024,\n",
+       "  -0.3863535523414612,\n",
+       "  0.2951650619506836,\n",
+       "  0.03117988631129265,\n",
+       "  -0.40388214588165283,\n",
+       "  0.6936691999435425,\n",
+       "  -0.2541087567806244,\n",
+       "  -0.2086130678653717,\n",
+       "  -0.30088797211647034,\n",
+       "  0.39943927526474,\n",
+       "  -0.11459176987409592,\n",
+       "  -0.6543619632720947,\n",
+       "  0.6635531187057495,\n",
+       "  0.4099794924259186,\n",
+       "  -1.076621413230896,\n",
+       "  -0.31472936272621155,\n",
+       "  -0.09162159264087677,\n",
+       "  -0.10547883063554764,\n",
+       "  -0.203010693192482,\n",
+       "  -0.797065794467926,\n",
+       "  -0.21599599719047546,\n",
+       "  0.012090904638171196,\n",
+       "  0.25781190395355225,\n",
+       "  -0.7289014458656311,\n",
+       "  0.014427169226109982,\n",
+       "  -0.05590129271149635,\n",
+       "  0.6503525376319885,\n",
+       "  -0.25092804431915283,\n",
+       "  0.8132804036140442,\n",
+       "  -0.5299649834632874,\n",
+       "  -0.18269559741020203,\n",
+       "  0.49492546916007996,\n",
+       "  -0.4528919458389282,\n",
+       "  -0.05405370891094208,\n",
+       "  -0.11458656191825867,\n",
+       "  0.8546084761619568,\n",
+       "  -0.24550120532512665,\n",
+       "  0.049994587898254395,\n",
+       "  0.5189576745033264,\n",
+       "  -0.4165690243244171,\n",
+       "  -0.3450049161911011,\n",
+       "  0.5662803053855896,\n",
+       "  0.08417262136936188,\n",
+       "  -0.42365437746047974,\n",
+       "  0.12669695913791656,\n",
+       "  -0.3068799376487732,\n",
+       "  0.7521166801452637,\n",
+       "  -0.09769726544618607,\n",
+       "  -0.8809972405433655,\n",
+       "  0.11703585088253021,\n",
+       "  0.5754616260528564,\n",
+       "  -0.31427350640296936,\n",
+       "  0.0451238639652729,\n",
+       "  -0.5953565239906311,\n",
+       "  -0.35429322719573975,\n",
+       "  0.688956081867218,\n",
+       "  0.25111037492752075,\n",
+       "  -0.11199289560317993,\n",
+       "  -0.33815497159957886,\n",
+       "  0.052134666591882706,\n",
+       "  -0.5139267444610596,\n",
+       "  -0.880919337272644,\n",
+       "  -0.9578896760940552,\n",
+       "  0.44254070520401,\n",
+       "  0.2506037652492523,\n",
+       "  0.7118644714355469,\n",
+       "  -0.3801298141479492,\n",
+       "  0.09831752628087997,\n",
+       "  -0.3725154995918274,\n",
+       "  0.9608874917030334,\n",
+       "  -0.6097050309181213,\n",
+       "  0.5317102670669556,\n",
+       "  0.18883268535137177,\n",
+       "  -0.2739759385585785,\n",
+       "  0.0060667130164802074,\n",
+       "  -0.7999657988548279,\n",
+       "  -0.49761518836021423,\n",
+       "  -0.04410175234079361,\n",
+       "  0.021492933854460716,\n",
+       "  -0.26157134771347046,\n",
+       "  0.3662603497505188,\n",
+       "  0.07656055688858032,\n",
+       "  -0.20391426980495453,\n",
+       "  0.23112739622592926,\n",
+       "  0.05148652195930481,\n",
+       "  0.1546042412519455,\n",
+       "  0.21650385856628418,\n",
+       "  -1.1717547178268433,\n",
+       "  -0.1276608407497406,\n",
+       "  0.7806116938591003,\n",
+       "  0.7273387312889099,\n",
+       "  0.6802674531936646,\n",
+       "  0.6182719469070435,\n",
+       "  -0.4920237064361572,\n",
+       "  0.18753017485141754,\n",
+       "  0.47386983036994934,\n",
+       "  0.28862181305885315,\n",
+       "  -0.3754692077636719,\n",
+       "  -0.0561814084649086,\n",
+       "  -0.012385806068778038,\n",
+       "  -0.6008806824684143,\n",
+       "  -0.5645871758460999,\n",
+       "  -1.0939054489135742,\n",
+       "  -0.46547579765319824,\n",
+       "  -0.9732064604759216,\n",
+       "  -0.12648724019527435,\n",
+       "  0.09849158674478531,\n",
+       "  0.3843759596347809,\n",
+       "  -0.4629274904727936,\n",
+       "  0.17386573553085327,\n",
+       "  0.15112851560115814,\n",
+       "  0.7017663717269897,\n",
+       "  -0.16923131048679352,\n",
+       "  0.2237587720155716,\n",
+       "  0.2665000557899475,\n",
+       "  0.2541508376598358,\n",
+       "  0.30873268842697144,\n",
+       "  -0.5635056495666504,\n",
+       "  0.5241885781288147,\n",
+       "  0.2771768271923065,\n",
+       "  0.2790517210960388,\n",
+       "  -0.539208173751831,\n",
+       "  -0.7596209645271301,\n",
+       "  0.6352860331535339,\n",
+       "  0.2882881462574005,\n",
+       "  0.34007710218429565,\n",
+       "  -0.474793940782547,\n",
+       "  -0.6396011114120483,\n",
+       "  -0.2593938708305359,\n",
+       "  0.08468469977378845,\n",
+       "  -0.24741365015506744,\n",
+       "  0.556648850440979,\n",
+       "  0.3211875855922699,\n",
+       "  -0.4658515453338623,\n",
+       "  0.14536313712596893,\n",
+       "  -0.39535415172576904,\n",
+       "  -0.9148903489112854,\n",
+       "  0.4538055956363678,\n",
+       "  -0.8095774054527283,\n",
+       "  0.060072802007198334,\n",
+       "  0.33706173300743103,\n",
+       "  0.03795214742422104,\n",
+       "  -0.5362184047698975,\n",
+       "  -0.2864001989364624,\n",
+       "  -1.0039011240005493,\n",
+       "  -0.3602775037288666,\n",
+       "  -0.7287405729293823,\n",
+       "  0.2748887538909912,\n",
+       "  -0.07904542237520218,\n",
+       "  0.43842989206314087,\n",
+       "  0.4292987883090973,\n",
+       "  -0.2311275154352188,\n",
+       "  -0.7116916179656982,\n",
+       "  -0.11643634736537933,\n",
+       "  -0.7759585380554199,\n",
+       "  0.7385767698287964,\n",
+       "  0.04599079489707947,\n",
+       "  -0.6884185075759888,\n",
+       "  0.2725524604320526,\n",
+       "  0.6506152749061584,\n",
+       "  0.39920005202293396,\n",
+       "  0.09319861978292465,\n",
+       "  -0.38983431458473206,\n",
+       "  0.5238291025161743,\n",
+       "  -0.5580272078514099,\n",
+       "  -0.0103628970682621,\n",
+       "  -0.38650044798851013,\n",
+       "  -0.3914099931716919,\n",
+       "  0.22562870383262634,\n",
+       "  0.24987107515335083,\n",
+       "  -0.5925841927528381,\n",
+       "  -0.0284016951918602,\n",
+       "  -0.6322098970413208,\n",
+       "  0.4557032287120819,\n",
+       "  -0.004712618421763182,\n",
+       "  -0.6027783155441284,\n",
+       "  0.3160114884376526,\n",
+       "  0.3637271821498871,\n",
+       "  0.3804703950881958,\n",
+       "  0.48565515875816345,\n",
+       "  0.5258179903030396,\n",
+       "  0.8879186511039734,\n",
+       "  0.7316209673881531,\n",
+       "  0.0416119210422039,\n",
+       "  -1.0093135833740234,\n",
+       "  0.11492951214313507,\n",
+       "  0.8028061985969543,\n",
+       "  0.06716805696487427,\n",
+       "  0.0019319140119478106,\n",
+       "  -0.3770061135292053,\n",
+       "  -0.07625972479581833,\n",
+       "  0.5457291603088379,\n",
+       "  -0.09309566020965576,\n",
+       "  -0.01992066018283367,\n",
+       "  0.7474305629730225,\n",
+       "  0.15377254784107208,\n",
+       "  -0.11079899221658707,\n",
+       "  0.2939283549785614,\n",
+       "  -0.41370704770088196,\n",
+       "  0.5233023762702942,\n",
+       "  -0.2431264966726303,\n",
+       "  0.3325313627719879,\n",
+       "  0.5507897734642029,\n",
+       "  -0.2349100261926651,\n",
+       "  -0.26681745052337646,\n",
+       "  0.33428627252578735,\n",
+       "  0.20792822539806366,\n",
+       "  0.20537535846233368,\n",
+       "  -0.23919019103050232,\n",
+       "  0.05211174488067627,\n",
+       "  -0.029082706198096275,\n",
+       "  -0.5170590281486511,\n",
+       "  -0.148354634642601,\n",
+       "  0.17387090623378754,\n",
+       "  0.3997310400009155,\n",
+       "  0.6324551105499268,\n",
+       "  0.5969943404197693,\n",
+       "  -0.1682303249835968,\n",
+       "  0.39327800273895264,\n",
+       "  -0.10407182574272156,\n",
+       "  0.2405574768781662,\n",
+       "  0.27164438366889954,\n",
+       "  -1.1877676248550415,\n",
+       "  0.14967003464698792,\n",
+       "  0.155400350689888,\n",
+       "  -0.1664905548095703,\n",
+       "  -0.8923134207725525,\n",
+       "  0.31925272941589355,\n",
+       "  -0.6922290921211243,\n",
+       "  0.37472066283226013,\n",
+       "  0.05517548322677612,\n",
+       "  0.03848360478878021,\n",
+       "  0.1037290170788765,\n",
+       "  -0.5190158486366272,\n",
+       "  -0.6224437355995178,\n",
+       "  -0.7139700651168823,\n",
+       "  0.8266307711601257,\n",
+       "  -0.11380338668823242,\n",
+       "  0.08344950526952744,\n",
+       "  0.5643734931945801,\n",
+       "  0.027856847271323204,\n",
+       "  -0.019112922251224518,\n",
+       "  0.7826627492904663,\n",
+       "  -0.4863210618495941,\n",
+       "  0.6647438406944275,\n",
+       "  0.2020666003227234,\n",
+       "  0.9220132231712341,\n",
+       "  0.8749033212661743,\n",
+       "  0.2835003733634949,\n",
+       "  0.9998884201049805,\n",
+       "  -0.672473132610321,\n",
+       "  -0.32181110978126526,\n",
+       "  -0.5558651685714722,\n",
+       "  -0.2695208787918091,\n",
+       "  -0.7541895508766174,\n",
+       "  0.1516842544078827,\n",
+       "  -0.4608273208141327,\n",
+       "  -0.3914019465446472,\n",
+       "  -0.26724764704704285,\n",
+       "  0.43134525418281555,\n",
+       "  -0.6212441325187683,\n",
+       "  0.3745012879371643,\n",
+       "  -0.37949445843696594,\n",
+       "  -1.119378924369812,\n",
+       "  -0.07150902599096298,\n",
+       "  -0.5286315679550171,\n",
+       "  -0.14950813353061676,\n",
+       "  0.1515863537788391,\n",
+       "  1.2689299583435059,\n",
+       "  1.0098563432693481,\n",
+       "  -0.014573409222066402,\n",
+       "  -0.09301596879959106,\n",
+       "  -0.28702157735824585,\n",
+       "  0.44630059599876404,\n",
+       "  -0.320136696100235,\n",
+       "  -0.3883953094482422,\n",
+       "  0.7925869822502136,\n",
+       "  -0.4618237614631653,\n",
+       "  -1.2889593839645386,\n",
+       "  -0.3566947877407074,\n",
+       "  -0.6348873376846313,\n",
+       "  -0.7300600409507751,\n",
+       "  0.09211597591638565,\n",
+       "  -0.9467034339904785,\n",
+       "  0.16685202717781067,\n",
+       "  -0.09806318581104279,\n",
+       "  0.26248520612716675,\n",
+       "  -0.23755009472370148,\n",
+       "  0.5351219773292542,\n",
+       "  -0.4853552281856537,\n",
+       "  0.7577729821205139,\n",
+       "  0.38879889249801636,\n",
+       "  0.6300411820411682,\n",
+       "  -0.2574041783809662,\n",
+       "  0.7323415279388428,\n",
+       "  0.09847570210695267,\n",
+       "  -0.5526623129844666,\n",
+       "  -0.3854880928993225,\n",
+       "  -0.7990260720252991,\n",
+       "  0.35248231887817383,\n",
+       "  -0.4668175280094147,\n",
+       "  -0.10290756821632385,\n",
+       "  -0.09236554801464081,\n",
+       "  -0.258074551820755,\n",
+       "  -0.24723400175571442,\n",
+       "  -0.6552531719207764,\n",
+       "  0.16103433072566986,\n",
+       "  0.6218563318252563,\n",
+       "  0.24903221428394318,\n",
+       "  -0.5528410077095032,\n",
+       "  -1.3529237508773804,\n",
+       "  0.23143072426319122,\n",
+       "  -1.045642614364624,\n",
+       "  -0.2803279161453247,\n",
+       "  -0.44280824065208435,\n",
+       "  0.6601386070251465,\n",
+       "  0.03146280348300934,\n",
+       "  -0.25061336159706116,\n",
+       "  0.1281445175409317,\n",
+       "  -0.9006889462471008,\n",
+       "  4.462767601013184,\n",
+       "  0.5997637510299683,\n",
+       "  0.4976256787776947,\n",
+       "  -0.4936535358428955,\n",
+       "  0.17143943905830383,\n",
+       "  0.8772667050361633,\n",
+       "  0.285220205783844,\n",
+       "  0.9304468631744385,\n",
+       "  -0.27842092514038086,\n",
+       "  -0.45088550448417664,\n",
+       "  0.3779442310333252,\n",
+       "  0.1473567634820938,\n",
+       "  0.2477225661277771,\n",
+       "  0.4404883086681366,\n",
+       "  -0.08007366955280304,\n",
+       "  0.9077342748641968,\n",
+       "  -0.5756711959838867,\n",
+       "  0.30554863810539246,\n",
+       "  -0.08678336441516876,\n",
+       "  -1.0750330686569214,\n",
+       "  0.0004209561739116907,\n",
+       "  -0.6181638836860657,\n",
+       "  0.5358628034591675,\n",
+       "  0.17197741568088531,\n",
+       "  0.3999564051628113,\n",
+       "  -0.3586116135120392,\n",
+       "  1.0736268758773804,\n",
+       "  -0.5334151387214661,\n",
+       "  0.06598101556301117,\n",
+       "  -0.2870873808860779,\n",
+       "  -0.2306235432624817,\n",
+       "  -0.5238915681838989,\n",
+       "  -0.4700780510902405,\n",
+       "  -0.7910664081573486,\n",
+       "  -0.5595477819442749,\n",
+       "  0.5381693243980408,\n",
+       "  0.43998298048973083,\n",
+       "  -0.4397830367088318,\n",
+       "  0.15957890450954437,\n",
+       "  -0.1641160249710083,\n",
+       "  -0.26293277740478516,\n",
+       "  -0.12118148803710938,\n",
+       "  0.482787162065506,\n",
+       "  -0.8770087957382202,\n",
+       "  -0.1327838897705078,\n",
+       "  0.28636783361434937,\n",
+       "  -0.47440096735954285,\n",
+       "  0.10034739226102829,\n",
+       "  0.28839558362960815,\n",
+       "  -0.12855111062526703,\n",
+       "  1.0286990404129028,\n",
+       "  -0.7193248867988586,\n",
+       "  0.21239891648292542,\n",
+       "  -0.6174246072769165,\n",
+       "  -0.7919260263442993,\n",
+       "  -0.03878069669008255,\n",
+       "  -0.3190139830112457,\n",
+       "  -0.23707982897758484,\n",
+       "  -0.5065869688987732,\n",
+       "  -0.43810972571372986,\n",
+       "  -0.3110460340976715,\n",
+       "  -0.2863406836986542,\n",
+       "  -0.4253699779510498,\n",
+       "  0.3866632580757141,\n",
+       "  -0.8151654601097107,\n",
+       "  0.4530806839466095,\n",
+       "  0.602790117263794,\n",
+       "  0.5624902844429016,\n",
+       "  -0.4981139302253723,\n",
+       "  0.058757226914167404,\n",
+       "  0.1600789576768875,\n",
+       "  ...],\n",
+       " [-0.66383957862854,\n",
+       "  -0.2313556671142578,\n",
+       "  -0.2595861554145813,\n",
+       "  -0.06100668013095856,\n",
+       "  -0.6925454139709473,\n",
+       "  -0.22522060573101044,\n",
+       "  -0.035429272800683975,\n",
+       "  -0.04449533298611641,\n",
+       "  0.39814653992652893,\n",
+       "  0.13439606130123138,\n",
+       "  0.29754704236984253,\n",
+       "  -0.238642156124115,\n",
+       "  0.25147610902786255,\n",
+       "  -0.32628288865089417,\n",
+       "  -0.49216407537460327,\n",
+       "  -0.40720444917678833,\n",
+       "  -0.6613724827766418,\n",
+       "  -0.3219824731349945,\n",
+       "  -0.5070877075195312,\n",
+       "  -0.024057071655988693,\n",
+       "  0.38390594720840454,\n",
+       "  0.4274079203605652,\n",
+       "  -1.2975172996520996,\n",
+       "  -0.46902188658714294,\n",
+       "  -0.35251280665397644,\n",
+       "  0.3329623341560364,\n",
+       "  0.05530993267893791,\n",
+       "  0.22719600796699524,\n",
+       "  0.8056514859199524,\n",
+       "  0.8747472167015076,\n",
+       "  0.03323102369904518,\n",
+       "  0.39306214451789856,\n",
+       "  0.16607530415058136,\n",
+       "  -0.846079409122467,\n",
+       "  -0.12165623903274536,\n",
+       "  -0.6517881155014038,\n",
+       "  -2.3414584575220942e-05,\n",
+       "  0.14633579552173615,\n",
+       "  -0.825664222240448,\n",
+       "  -0.4183889329433441,\n",
+       "  0.1627465784549713,\n",
+       "  -0.7571935653686523,\n",
+       "  0.0036316709592938423,\n",
+       "  -0.4105145335197449,\n",
+       "  -1.0966694355010986,\n",
+       "  -0.41880688071250916,\n",
+       "  0.1567099541425705,\n",
+       "  -0.7302873730659485,\n",
+       "  0.5174612998962402,\n",
+       "  -0.8508439064025879,\n",
+       "  0.10142526030540466,\n",
+       "  -0.2843800485134125,\n",
+       "  0.32579779624938965,\n",
+       "  0.18766894936561584,\n",
+       "  0.0704789087176323,\n",
+       "  -0.1186482161283493,\n",
+       "  0.30121684074401855,\n",
+       "  0.1028139516711235,\n",
+       "  -1.063417911529541,\n",
+       "  0.4732326865196228,\n",
+       "  0.6511643528938293,\n",
+       "  -0.10245297849178314,\n",
+       "  0.3198312222957611,\n",
+       "  -0.6911914348602295,\n",
+       "  -0.3321545720100403,\n",
+       "  0.4627225399017334,\n",
+       "  -0.12581969797611237,\n",
+       "  0.4968282878398895,\n",
+       "  0.2776549458503723,\n",
+       "  0.05307720974087715,\n",
+       "  0.10920432209968567,\n",
+       "  -0.40448153018951416,\n",
+       "  -0.059818610548973083,\n",
+       "  -0.04125083237886429,\n",
+       "  -0.24878741800785065,\n",
+       "  0.02488279901444912,\n",
+       "  -0.5569456219673157,\n",
+       "  -0.22246843576431274,\n",
+       "  -0.29153338074684143,\n",
+       "  0.1343427449464798,\n",
+       "  -0.1262163370847702,\n",
+       "  -0.17975224554538727,\n",
+       "  0.3224595785140991,\n",
+       "  0.039348285645246506,\n",
+       "  -0.4701169431209564,\n",
+       "  0.07212565839290619,\n",
+       "  -0.3677715063095093,\n",
+       "  0.37830060720443726,\n",
+       "  0.3132310211658478,\n",
+       "  0.2310069352388382,\n",
+       "  -0.2397177368402481,\n",
+       "  0.7962530255317688,\n",
+       "  -0.20806986093521118,\n",
+       "  0.07299618422985077,\n",
+       "  0.4896806478500366,\n",
+       "  0.7884756326675415,\n",
+       "  -0.031209291890263557,\n",
+       "  0.05247776210308075,\n",
+       "  -0.5274895429611206,\n",
+       "  -0.11336683481931686,\n",
+       "  0.22027435898780823,\n",
+       "  0.6983976364135742,\n",
+       "  0.053230199962854385,\n",
+       "  0.9547304511070251,\n",
+       "  -0.23651228845119476,\n",
+       "  0.10277893394231796,\n",
+       "  0.014033998362720013,\n",
+       "  1.041684865951538,\n",
+       "  -0.31462642550468445,\n",
+       "  -0.6297675967216492,\n",
+       "  0.36212003231048584,\n",
+       "  -0.012141757644712925,\n",
+       "  -0.021185457706451416,\n",
+       "  0.4515077769756317,\n",
+       "  -0.3030897080898285,\n",
+       "  0.7325507998466492,\n",
+       "  -0.4467439651489258,\n",
+       "  0.5766064524650574,\n",
+       "  -0.769917368888855,\n",
+       "  -0.13879376649856567,\n",
+       "  -0.15103241801261902,\n",
+       "  0.40279167890548706,\n",
+       "  0.38021376729011536,\n",
+       "  -0.4165734052658081,\n",
+       "  -0.05714404955506325,\n",
+       "  -0.38282668590545654,\n",
+       "  -0.49606284499168396,\n",
+       "  0.7269167304039001,\n",
+       "  -0.6417250037193298,\n",
+       "  0.2031887024641037,\n",
+       "  -0.49722495675086975,\n",
+       "  -0.3438809812068939,\n",
+       "  0.8003844022750854,\n",
+       "  0.2577022612094879,\n",
+       "  0.3948556184768677,\n",
+       "  0.9283068776130676,\n",
+       "  -0.2774761915206909,\n",
+       "  0.9557852149009705,\n",
+       "  0.1972631812095642,\n",
+       "  -0.3428194522857666,\n",
+       "  0.3247833847999573,\n",
+       "  0.6235134601593018,\n",
+       "  0.24010451138019562,\n",
+       "  1.3323333263397217,\n",
+       "  0.11255193501710892,\n",
+       "  0.7475976347923279,\n",
+       "  -0.04500462859869003,\n",
+       "  0.0031878864392638206,\n",
+       "  -0.43377748131752014,\n",
+       "  0.5427476167678833,\n",
+       "  0.30915892124176025,\n",
+       "  0.06339199095964432,\n",
+       "  -0.28885963559150696,\n",
+       "  0.8270829916000366,\n",
+       "  -0.15219268202781677,\n",
+       "  0.3253883123397827,\n",
+       "  0.4335705041885376,\n",
+       "  -0.07575776427984238,\n",
+       "  0.506062924861908,\n",
+       "  0.22491300106048584,\n",
+       "  0.12009810656309128,\n",
+       "  0.5963507294654846,\n",
+       "  -0.6599342823028564,\n",
+       "  0.8246259093284607,\n",
+       "  -0.11227074265480042,\n",
+       "  0.31016668677330017,\n",
+       "  -0.5566144585609436,\n",
+       "  -0.04739649221301079,\n",
+       "  -0.28963443636894226,\n",
+       "  0.16926006972789764,\n",
+       "  0.04322681203484535,\n",
+       "  0.6518950462341309,\n",
+       "  -0.02876073122024536,\n",
+       "  0.15316806733608246,\n",
+       "  0.12932568788528442,\n",
+       "  0.8276455402374268,\n",
+       "  0.4568895697593689,\n",
+       "  -0.15531013906002045,\n",
+       "  0.945992112159729,\n",
+       "  0.3896466791629791,\n",
+       "  -0.12119919806718826,\n",
+       "  0.5152679681777954,\n",
+       "  0.6301158666610718,\n",
+       "  1.1760205030441284,\n",
+       "  0.03376719355583191,\n",
+       "  -0.0809011310338974,\n",
+       "  0.2313305288553238,\n",
+       "  -0.009871753863990307,\n",
+       "  -0.601636528968811,\n",
+       "  -0.1795131117105484,\n",
+       "  0.1304136961698532,\n",
+       "  0.5048069953918457,\n",
+       "  -0.06729011982679367,\n",
+       "  -0.3121969997882843,\n",
+       "  -0.29310178756713867,\n",
+       "  0.3514418601989746,\n",
+       "  -1.1271324157714844,\n",
+       "  -0.09299957752227783,\n",
+       "  -0.7083450555801392,\n",
+       "  -0.8204821348190308,\n",
+       "  -0.42331191897392273,\n",
+       "  -0.04339401796460152,\n",
+       "  -0.5787737965583801,\n",
+       "  0.8930289149284363,\n",
+       "  0.36572974920272827,\n",
+       "  -0.7476776242256165,\n",
+       "  0.5567910075187683,\n",
+       "  1.7977360486984253,\n",
+       "  -0.02189374901354313,\n",
+       "  0.7785289883613586,\n",
+       "  0.43605461716651917,\n",
+       "  1.3746691942214966,\n",
+       "  -0.6201463937759399,\n",
+       "  0.1897742599248886,\n",
+       "  0.5282841920852661,\n",
+       "  -0.32129576802253723,\n",
+       "  0.07059669494628906,\n",
+       "  1.0405555963516235,\n",
+       "  -0.7393519282341003,\n",
+       "  0.4615570604801178,\n",
+       "  -0.11006764322519302,\n",
+       "  0.5464887022972107,\n",
+       "  0.5049405097961426,\n",
+       "  0.707616925239563,\n",
+       "  -0.5412596464157104,\n",
+       "  -0.14146843552589417,\n",
+       "  0.0989818125963211,\n",
+       "  0.9178425669670105,\n",
+       "  0.07597102969884872,\n",
+       "  0.20396646857261658,\n",
+       "  0.02221265435218811,\n",
+       "  0.31986862421035767,\n",
+       "  -0.10685097426176071,\n",
+       "  0.22032785415649414,\n",
+       "  0.8232126235961914,\n",
+       "  0.14689558744430542,\n",
+       "  0.7107570171356201,\n",
+       "  0.3264351785182953,\n",
+       "  0.5185019373893738,\n",
+       "  0.0013305929023772478,\n",
+       "  0.18264140188694,\n",
+       "  0.37187331914901733,\n",
+       "  0.5390960574150085,\n",
+       "  -0.13465994596481323,\n",
+       "  -0.7617212533950806,\n",
+       "  -0.1916431337594986,\n",
+       "  -0.16727127134799957,\n",
+       "  0.6731497645378113,\n",
+       "  -0.7767329812049866,\n",
+       "  0.6193000078201294,\n",
+       "  -0.42698243260383606,\n",
+       "  0.3654089570045471,\n",
+       "  0.6835520267486572,\n",
+       "  0.395896852016449,\n",
+       "  -0.7649313807487488,\n",
+       "  -0.42238858342170715,\n",
+       "  0.8192903399467468,\n",
+       "  0.7838611006736755,\n",
+       "  -0.0721166655421257,\n",
+       "  -0.5067527294158936,\n",
+       "  0.29517635703086853,\n",
+       "  -0.36073851585388184,\n",
+       "  0.40435370802879333,\n",
+       "  0.5425378680229187,\n",
+       "  -0.22622635960578918,\n",
+       "  0.8533711433410645,\n",
+       "  -0.003657616674900055,\n",
+       "  0.1506732553243637,\n",
+       "  -0.4110838770866394,\n",
+       "  -1.0123159885406494,\n",
+       "  -0.09841310232877731,\n",
+       "  -0.6191126108169556,\n",
+       "  -0.786047637462616,\n",
+       "  -0.023185061290860176,\n",
+       "  -0.16664241254329681,\n",
+       "  -0.7477964758872986,\n",
+       "  -0.1311689019203186,\n",
+       "  -0.04727170243859291,\n",
+       "  0.7601009011268616,\n",
+       "  -0.21691539883613586,\n",
+       "  0.2879783809185028,\n",
+       "  -0.5148252844810486,\n",
+       "  -0.9074329733848572,\n",
+       "  0.015700897201895714,\n",
+       "  0.019970141351222992,\n",
+       "  1.2790656089782715,\n",
+       "  -0.7192351818084717,\n",
+       "  0.633094072341919,\n",
+       "  -0.2613338828086853,\n",
+       "  0.5991172194480896,\n",
+       "  -0.5007964968681335,\n",
+       "  -0.23982669413089752,\n",
+       "  -0.07967814058065414,\n",
+       "  -0.6458929777145386,\n",
+       "  -0.07101744413375854,\n",
+       "  -0.02982148714363575,\n",
+       "  -0.15407350659370422,\n",
+       "  0.40034782886505127,\n",
+       "  -0.32107964158058167,\n",
+       "  -0.6922317743301392,\n",
+       "  -0.09478769451379776,\n",
+       "  0.33118054270744324,\n",
+       "  -0.5922290086746216,\n",
+       "  -0.2315683513879776,\n",
+       "  -0.3633510172367096,\n",
+       "  0.9553167223930359,\n",
+       "  0.15411309897899628,\n",
+       "  -0.17744380235671997,\n",
+       "  1.2446421384811401,\n",
+       "  0.39525559544563293,\n",
+       "  -1.189293384552002,\n",
+       "  0.439408540725708,\n",
+       "  0.30721813440322876,\n",
+       "  0.5662364959716797,\n",
+       "  -0.6927391886711121,\n",
+       "  -0.26919615268707275,\n",
+       "  0.2464495450258255,\n",
+       "  0.12598511576652527,\n",
+       "  -1.2246264219284058,\n",
+       "  -0.23698285222053528,\n",
+       "  0.07862170785665512,\n",
+       "  0.17724956572055817,\n",
+       "  -0.26024624705314636,\n",
+       "  -0.7359688878059387,\n",
+       "  0.11084423959255219,\n",
+       "  0.5328563451766968,\n",
+       "  0.025927213951945305,\n",
+       "  -1.183160424232483,\n",
+       "  0.3631088435649872,\n",
+       "  -0.8191152215003967,\n",
+       "  -0.755239725112915,\n",
+       "  -0.4995143711566925,\n",
+       "  -0.06928092241287231,\n",
+       "  0.9806907773017883,\n",
+       "  0.4832023084163666,\n",
+       "  0.2266155183315277,\n",
+       "  0.17297831177711487,\n",
+       "  0.23857860267162323,\n",
+       "  0.7700474262237549,\n",
+       "  -0.5227215886116028,\n",
+       "  1.5237351655960083,\n",
+       "  -1.0372787714004517,\n",
+       "  0.42848527431488037,\n",
+       "  0.6967135667800903,\n",
+       "  -0.5061274170875549,\n",
+       "  -0.028543030843138695,\n",
+       "  0.6125296354293823,\n",
+       "  0.11877332627773285,\n",
+       "  -0.24795833230018616,\n",
+       "  0.5738652348518372,\n",
+       "  0.03585290536284447,\n",
+       "  -0.08751246333122253,\n",
+       "  0.5911476016044617,\n",
+       "  0.14302462339401245,\n",
+       "  0.3904249668121338,\n",
+       "  -0.08441024273633957,\n",
+       "  -0.12650245428085327,\n",
+       "  0.04551529139280319,\n",
+       "  0.46586257219314575,\n",
+       "  0.3084683418273926,\n",
+       "  0.2561204433441162,\n",
+       "  -0.2515110373497009,\n",
+       "  -0.16502408683300018,\n",
+       "  0.03153965622186661,\n",
+       "  0.1740194708108902,\n",
+       "  -0.8661266565322876,\n",
+       "  0.3422711491584778,\n",
+       "  0.5051333904266357,\n",
+       "  -0.29426029324531555,\n",
+       "  -1.596143364906311,\n",
+       "  0.4108634293079376,\n",
+       "  -0.2926933467388153,\n",
+       "  -0.6348920464515686,\n",
+       "  0.30726951360702515,\n",
+       "  -0.17813639342784882,\n",
+       "  0.1929423063993454,\n",
+       "  0.8914364576339722,\n",
+       "  0.12266840040683746,\n",
+       "  0.576617419719696,\n",
+       "  -1.2714109420776367,\n",
+       "  -0.028853025287389755,\n",
+       "  -0.549541711807251,\n",
+       "  0.19571059942245483,\n",
+       "  0.41401880979537964,\n",
+       "  0.17110785841941833,\n",
+       "  0.41904062032699585,\n",
+       "  0.29501330852508545,\n",
+       "  0.5240954756736755,\n",
+       "  -0.77303546667099,\n",
+       "  -0.4904113709926605,\n",
+       "  -0.5939957499504089,\n",
+       "  -0.11172720044851303,\n",
+       "  0.8538534045219421,\n",
+       "  -0.20046530663967133,\n",
+       "  -0.7861432433128357,\n",
+       "  -0.4543113112449646,\n",
+       "  1.0110828876495361,\n",
+       "  -0.003347388468682766,\n",
+       "  0.5784980654716492,\n",
+       "  -0.4305913746356964,\n",
+       "  0.7264584898948669,\n",
+       "  0.7619367241859436,\n",
+       "  0.8248848915100098,\n",
+       "  0.24710723757743835,\n",
+       "  -0.4174598753452301,\n",
+       "  -0.5849774479866028,\n",
+       "  -0.08136039227247238,\n",
+       "  0.6947451233863831,\n",
+       "  0.6091447472572327,\n",
+       "  -0.2596603035926819,\n",
+       "  -0.5273916125297546,\n",
+       "  0.02512296661734581,\n",
+       "  -0.2914501130580902,\n",
+       "  -0.340916246175766,\n",
+       "  0.3925054371356964,\n",
+       "  0.264009565114975,\n",
+       "  -0.5922141671180725,\n",
+       "  -0.1410948485136032,\n",
+       "  0.3549291789531708,\n",
+       "  0.7957888841629028,\n",
+       "  -0.49344921112060547,\n",
+       "  -0.10658832639455795,\n",
+       "  -0.14459018409252167,\n",
+       "  0.8777123689651489,\n",
+       "  0.5201388001441956,\n",
+       "  -0.6812755465507507,\n",
+       "  -0.4125320315361023,\n",
+       "  -0.5169220566749573,\n",
+       "  0.9127803444862366,\n",
+       "  0.12648075819015503,\n",
+       "  0.15197505056858063,\n",
+       "  -0.17171065509319305,\n",
+       "  -0.5145682096481323,\n",
+       "  -0.3144108057022095,\n",
+       "  0.25576066970825195,\n",
+       "  -0.2729228138923645,\n",
+       "  0.43763890862464905,\n",
+       "  -0.6974268555641174,\n",
+       "  0.05586937069892883,\n",
+       "  -0.3896856904029846,\n",
+       "  0.35386428236961365,\n",
+       "  0.1315007507801056,\n",
+       "  -0.39295321702957153,\n",
+       "  -0.18069300055503845,\n",
+       "  0.26811668276786804,\n",
+       "  0.3929719924926758,\n",
+       "  0.44114425778388977,\n",
+       "  0.47795361280441284,\n",
+       "  -0.8011078238487244,\n",
+       "  -0.301805317401886,\n",
+       "  0.47754961252212524,\n",
+       "  -0.9720356464385986,\n",
+       "  1.0676907300949097,\n",
+       "  -0.29112306237220764,\n",
+       "  0.2620666027069092,\n",
+       "  -0.2559487521648407,\n",
+       "  -0.30174437165260315,\n",
+       "  0.020500365644693375,\n",
+       "  0.37328124046325684,\n",
+       "  -0.6434176564216614,\n",
+       "  -0.3961181342601776,\n",
+       "  -0.1455620676279068,\n",
+       "  1.1312304735183716,\n",
+       "  -0.35954615473747253,\n",
+       "  -0.7734612226486206,\n",
+       "  0.9958603382110596,\n",
+       "  -0.3421874940395355,\n",
+       "  -0.3012723922729492,\n",
+       "  -0.18579894304275513,\n",
+       "  0.13212817907333374,\n",
+       "  0.4657566249370575,\n",
+       "  -0.16543884575366974,\n",
+       "  -0.02276868373155594,\n",
+       "  0.15026947855949402,\n",
+       "  0.29083219170570374,\n",
+       "  -0.9812489151954651,\n",
+       "  -0.3071942627429962,\n",
+       "  -0.41813355684280396,\n",
+       "  -0.8969392776489258,\n",
+       "  0.4203145503997803,\n",
+       "  -0.24708013236522675,\n",
+       "  -0.8105489015579224,\n",
+       "  0.19139695167541504,\n",
+       "  -0.6527240872383118,\n",
+       "  -0.17958854138851166,\n",
+       "  -1.3926584720611572,\n",
+       "  -0.2781815528869629,\n",
+       "  0.11016010493040085,\n",
+       "  -0.16614437103271484,\n",
+       "  -0.355233371257782,\n",
+       "  0.3178675174713135,\n",
+       "  0.3770565688610077,\n",
+       "  0.877945601940155,\n",
+       "  -0.7948293685913086,\n",
+       "  0.05235274136066437,\n",
+       "  -0.4885311722755432,\n",
+       "  -0.25346195697784424,\n",
+       "  -0.4479544758796692,\n",
+       "  0.45200014114379883,\n",
+       "  0.5162225365638733,\n",
+       "  0.40498116612434387,\n",
+       "  -0.6774299740791321,\n",
+       "  -0.4202435612678528,\n",
+       "  -0.29834842681884766,\n",
+       "  0.08582589030265808,\n",
+       "  -0.7950501441955566,\n",
+       "  -0.7950786352157593,\n",
+       "  0.05144018307328224,\n",
+       "  -0.1953907012939453,\n",
+       "  0.4306655526161194,\n",
+       "  -0.14445535838603973,\n",
+       "  0.44681674242019653,\n",
+       "  0.1289193481206894,\n",
+       "  0.2624998092651367,\n",
+       "  0.6209694147109985,\n",
+       "  0.6485058665275574,\n",
+       "  0.3436071276664734,\n",
+       "  -0.17081555724143982,\n",
+       "  -0.24998722970485687,\n",
+       "  0.8819694519042969,\n",
+       "  0.1914956271648407,\n",
+       "  -0.39287418127059937,\n",
+       "  0.47309058904647827,\n",
+       "  0.9233711957931519,\n",
+       "  -0.06572650372982025,\n",
+       "  0.5558550357818604,\n",
+       "  0.803342342376709,\n",
+       "  0.1837519109249115,\n",
+       "  -0.582427442073822,\n",
+       "  -1.229834794998169,\n",
+       "  -0.5020425915718079,\n",
+       "  -0.395750492811203,\n",
+       "  -1.030993938446045,\n",
+       "  -1.0110739469528198,\n",
+       "  0.10828382521867752,\n",
+       "  -0.6424391269683838,\n",
+       "  0.3970054090023041,\n",
+       "  0.404026061296463,\n",
+       "  -0.343421071767807,\n",
+       "  -0.19432324171066284,\n",
+       "  -1.0158581733703613,\n",
+       "  0.6382966637611389,\n",
+       "  0.009547857567667961,\n",
+       "  -0.16880100965499878,\n",
+       "  -0.42210349440574646,\n",
+       "  0.08941852301359177,\n",
+       "  0.49443307518959045,\n",
+       "  0.6834864020347595,\n",
+       "  0.030288998037576675,\n",
+       "  0.4022229015827179,\n",
+       "  -0.027738414704799652,\n",
+       "  0.5054395198822021,\n",
+       "  0.5111376047134399,\n",
+       "  -0.18553893268108368,\n",
+       "  -0.8887874484062195,\n",
+       "  -0.6932130455970764,\n",
+       "  0.2818927466869354,\n",
+       "  -0.5914751887321472,\n",
+       "  -0.15466520190238953,\n",
+       "  0.020885543897747993,\n",
+       "  -0.3394120931625366,\n",
+       "  0.7122368812561035,\n",
+       "  -0.8371968865394592,\n",
+       "  -0.7580953240394592,\n",
+       "  0.21631324291229248,\n",
+       "  -0.3214702010154724,\n",
+       "  0.10291893780231476,\n",
+       "  -0.1894383281469345,\n",
+       "  0.552446186542511,\n",
+       "  -0.1661849468946457,\n",
+       "  -0.28603285551071167,\n",
+       "  -0.3890632390975952,\n",
+       "  0.8714359998703003,\n",
+       "  0.9080734848976135,\n",
+       "  0.06310735642910004,\n",
+       "  -0.6783433556556702,\n",
+       "  -0.467898428440094,\n",
+       "  -0.8733784556388855,\n",
+       "  -0.8396478295326233,\n",
+       "  0.4398952126502991,\n",
+       "  -0.15299327671527863,\n",
+       "  -0.48063158988952637,\n",
+       "  -0.3609691858291626,\n",
+       "  -0.11896490305662155,\n",
+       "  0.6504183411598206,\n",
+       "  -0.5323073267936707,\n",
+       "  0.5937050580978394,\n",
+       "  1.3630650043487549,\n",
+       "  -1.1628384590148926,\n",
+       "  -0.1730543076992035,\n",
+       "  0.10342907905578613,\n",
+       "  -0.03286043554544449,\n",
+       "  0.2443077713251114,\n",
+       "  -0.13159123063087463,\n",
+       "  0.25179243087768555,\n",
+       "  -0.41535839438438416,\n",
+       "  -0.24177208542823792,\n",
+       "  -0.12448311597108841,\n",
+       "  -0.8177970051765442,\n",
+       "  -1.1557691097259521,\n",
+       "  -1.055833101272583,\n",
+       "  0.47295454144477844,\n",
+       "  1.278720736503601,\n",
+       "  -0.0421457402408123,\n",
+       "  1.6001085042953491,\n",
+       "  -0.3118591904640198,\n",
+       "  -0.501964271068573,\n",
+       "  -0.7178589105606079,\n",
+       "  0.354057639837265,\n",
+       "  0.3875657320022583,\n",
+       "  0.2917666733264923,\n",
+       "  0.9190394878387451,\n",
+       "  0.1699265092611313,\n",
+       "  0.34634047746658325,\n",
+       "  0.3619774878025055,\n",
+       "  0.2515784502029419,\n",
+       "  -0.1314840018749237,\n",
+       "  0.1969815492630005,\n",
+       "  0.21605370938777924,\n",
+       "  -0.29424285888671875,\n",
+       "  -0.25702616572380066,\n",
+       "  0.4314003884792328,\n",
+       "  0.9353189468383789,\n",
+       "  -1.2694830894470215,\n",
+       "  -0.703385055065155,\n",
+       "  -0.29298868775367737,\n",
+       "  -0.03961457684636116,\n",
+       "  -0.6804059147834778,\n",
+       "  -0.938069224357605,\n",
+       "  0.25681132078170776,\n",
+       "  0.34114837646484375,\n",
+       "  0.06630713492631912,\n",
+       "  -0.20925447344779968,\n",
+       "  0.06135372817516327,\n",
+       "  -0.0292774997651577,\n",
+       "  0.9683889150619507,\n",
+       "  -0.1415303349494934,\n",
+       "  0.13003411889076233,\n",
+       "  -0.28229838609695435,\n",
+       "  -0.05650933459401131,\n",
+       "  0.6027146577835083,\n",
+       "  -0.8527910113334656,\n",
+       "  0.8387891054153442,\n",
+       "  -1.0144500732421875,\n",
+       "  -0.13234733045101166,\n",
+       "  0.0887543186545372,\n",
+       "  0.2335500866174698,\n",
+       "  0.5318927764892578,\n",
+       "  0.4429142475128174,\n",
+       "  0.4202386736869812,\n",
+       "  0.7799946665763855,\n",
+       "  -0.2124268263578415,\n",
+       "  0.7880118489265442,\n",
+       "  0.18811221420764923,\n",
+       "  -0.7036977410316467,\n",
+       "  0.5910786986351013,\n",
+       "  -0.41202467679977417,\n",
+       "  -0.8821630477905273,\n",
+       "  -0.47416970133781433,\n",
+       "  0.33798083662986755,\n",
+       "  -0.27297067642211914,\n",
+       "  -0.43055376410484314,\n",
+       "  -0.6825740933418274,\n",
+       "  -0.6926524639129639,\n",
+       "  0.8055598139762878,\n",
+       "  0.08102894574403763,\n",
+       "  -0.4228541851043701,\n",
+       "  0.16037718951702118,\n",
+       "  -0.15351197123527527,\n",
+       "  -0.6214717626571655,\n",
+       "  -0.690116286277771,\n",
+       "  -0.6669543981552124,\n",
+       "  -0.026535583660006523,\n",
+       "  -0.3141920864582062,\n",
+       "  -0.21991942822933197,\n",
+       "  0.08367064595222473,\n",
+       "  -0.2654389441013336,\n",
+       "  -0.4487183392047882,\n",
+       "  0.9583780169487,\n",
+       "  0.016767973080277443,\n",
+       "  1.1328634023666382,\n",
+       "  -0.3838687837123871,\n",
+       "  0.7252568602561951,\n",
+       "  -0.48928102850914,\n",
+       "  -0.8009410500526428,\n",
+       "  -0.48309576511383057,\n",
+       "  0.38519877195358276,\n",
+       "  -0.1801932007074356,\n",
+       "  -0.29743966460227966,\n",
+       "  -0.004791876766830683,\n",
+       "  -0.12718240916728973,\n",
+       "  -0.29024428129196167,\n",
+       "  0.6991103887557983,\n",
+       "  -0.35262465476989746,\n",
+       "  0.09094825387001038,\n",
+       "  -0.19963504374027252,\n",
+       "  -0.00040172284934669733,\n",
+       "  0.4298400282859802,\n",
+       "  0.2996506989002228,\n",
+       "  0.3386493921279907,\n",
+       "  0.7650848031044006,\n",
+       "  1.060438871383667,\n",
+       "  -0.2835727632045746,\n",
+       "  0.33754032850265503,\n",
+       "  -0.5697928071022034,\n",
+       "  -0.11919137090444565,\n",
+       "  -0.9314565062522888,\n",
+       "  0.3563353717327118,\n",
+       "  0.2549656331539154,\n",
+       "  0.2109297662973404,\n",
+       "  -0.456595778465271,\n",
+       "  -0.9328431487083435,\n",
+       "  0.016648896038532257,\n",
+       "  -0.8451475501060486,\n",
+       "  0.5809212923049927,\n",
+       "  -0.340518057346344,\n",
+       "  0.2827947437763214,\n",
+       "  -0.5396698117256165,\n",
+       "  -0.6092702746391296,\n",
+       "  -0.3723966181278229,\n",
+       "  0.6414639949798584,\n",
+       "  0.3107134699821472,\n",
+       "  -0.007445123046636581,\n",
+       "  0.08267766237258911,\n",
+       "  0.12798859179019928,\n",
+       "  -0.2169492542743683,\n",
+       "  -0.559959888458252,\n",
+       "  -0.5217579007148743,\n",
+       "  0.32909470796585083,\n",
+       "  0.7389576435089111,\n",
+       "  -0.293349027633667,\n",
+       "  -0.6930976510047913,\n",
+       "  0.7821656465530396,\n",
+       "  -0.47307252883911133,\n",
+       "  0.2648174464702606,\n",
+       "  -0.2046925574541092,\n",
+       "  -0.6862270832061768,\n",
+       "  -0.6999277472496033,\n",
+       "  -0.4833206534385681,\n",
+       "  0.15186196565628052,\n",
+       "  0.42044275999069214,\n",
+       "  0.4899252653121948,\n",
+       "  -0.06878598779439926,\n",
+       "  0.564720630645752,\n",
+       "  -0.36390984058380127,\n",
+       "  -0.8453814387321472,\n",
+       "  0.24788610637187958,\n",
+       "  -0.7377864122390747,\n",
+       "  -0.5077601075172424,\n",
+       "  0.06311396509408951,\n",
+       "  0.07020704448223114,\n",
+       "  0.2193564623594284,\n",
+       "  0.08405278623104095,\n",
+       "  -1.1775742769241333,\n",
+       "  0.0170441847294569,\n",
+       "  0.029659995809197426,\n",
+       "  0.3503907322883606,\n",
+       "  0.8535836338996887,\n",
+       "  1.0153495073318481,\n",
+       "  -0.008833479136228561,\n",
+       "  0.11853634566068649,\n",
+       "  0.09241313487291336,\n",
+       "  0.49566444754600525,\n",
+       "  0.02248520776629448,\n",
+       "  0.7640588879585266,\n",
+       "  0.03735516965389252,\n",
+       "  -1.245429515838623,\n",
+       "  0.6849268674850464,\n",
+       "  0.12653540074825287,\n",
+       "  0.4803661108016968,\n",
+       "  0.13430093228816986,\n",
+       "  0.07683700323104858,\n",
+       "  0.3195377588272095,\n",
+       "  -0.2754036784172058,\n",
+       "  -0.4229964315891266,\n",
+       "  0.894875168800354,\n",
+       "  -0.5222072005271912,\n",
+       "  -0.1649344265460968,\n",
+       "  0.08378858864307404,\n",
+       "  -0.29044657945632935,\n",
+       "  0.8531003594398499,\n",
+       "  -0.31961607933044434,\n",
+       "  0.12797744572162628,\n",
+       "  0.09183473885059357,\n",
+       "  -0.6410958766937256,\n",
+       "  -0.43033653497695923,\n",
+       "  0.783586859703064,\n",
+       "  1.0653300285339355,\n",
+       "  0.09725117683410645,\n",
+       "  0.17577630281448364,\n",
+       "  0.4870966076850891,\n",
+       "  0.22959446907043457,\n",
+       "  0.12173732370138168,\n",
+       "  -0.9747971296310425,\n",
+       "  -0.38040193915367126,\n",
+       "  0.5408453345298767,\n",
+       "  0.3166840672492981,\n",
+       "  0.32348302006721497,\n",
+       "  0.008488880470395088,\n",
+       "  0.5037934184074402,\n",
+       "  0.8255049586296082,\n",
+       "  -0.37979429960250854,\n",
+       "  -0.07706710696220398,\n",
+       "  0.7456242442131042,\n",
+       "  0.1814427226781845,\n",
+       "  0.11373350769281387,\n",
+       "  0.17987558245658875,\n",
+       "  -0.25761252641677856,\n",
+       "  0.3755275309085846,\n",
+       "  -0.22634661197662354,\n",
+       "  -0.5077285170555115,\n",
+       "  0.020015455782413483,\n",
+       "  -0.49857011437416077,\n",
+       "  0.12688034772872925,\n",
+       "  0.5388888716697693,\n",
+       "  -0.09130289405584335,\n",
+       "  1.0542702674865723,\n",
+       "  -0.33117565512657166,\n",
+       "  -0.03726742044091225,\n",
+       "  -0.9425621032714844,\n",
+       "  -0.0979095920920372,\n",
+       "  0.19087322056293488,\n",
+       "  0.1530478298664093,\n",
+       "  0.03234371542930603,\n",
+       "  0.1964159458875656,\n",
+       "  0.9765700101852417,\n",
+       "  0.15222042798995972,\n",
+       "  -0.2460227906703949,\n",
+       "  0.17485255002975464,\n",
+       "  0.7682655453681946,\n",
+       "  -0.0398302860558033,\n",
+       "  -0.8013843297958374,\n",
+       "  -0.1274305135011673,\n",
+       "  0.26694756746292114,\n",
+       "  0.16433237493038177,\n",
+       "  -0.7932276129722595,\n",
+       "  -0.7979598045349121,\n",
+       "  -1.3931635618209839,\n",
+       "  -0.012929664924740791,\n",
+       "  -0.8024943470954895,\n",
+       "  -0.23012343049049377,\n",
+       "  -0.14787796139717102,\n",
+       "  -1.3017325401306152,\n",
+       "  -0.325692743062973,\n",
+       "  -1.2839562892913818,\n",
+       "  0.2757335603237152,\n",
+       "  -0.2428918182849884,\n",
+       "  0.381331205368042,\n",
+       "  0.610768735408783,\n",
+       "  0.23639538884162903,\n",
+       "  0.22997033596038818,\n",
+       "  1.157219409942627,\n",
+       "  -0.10786467045545578,\n",
+       "  0.7831969857215881,\n",
+       "  0.7697864770889282,\n",
+       "  0.5605380535125732,\n",
+       "  -0.026723943650722504,\n",
+       "  0.45519131422042847,\n",
+       "  0.2872438430786133,\n",
+       "  -0.4689868688583374,\n",
+       "  -0.09962508827447891,\n",
+       "  0.05298158526420593,\n",
+       "  -0.05050082504749298,\n",
+       "  -0.30865341424942017,\n",
+       "  -0.4508135914802551,\n",
+       "  -0.8230398893356323,\n",
+       "  0.7545114755630493,\n",
+       "  0.08302313089370728,\n",
+       "  0.15095211565494537,\n",
+       "  -0.007315643131732941,\n",
+       "  0.35005661845207214,\n",
+       "  -0.027802370488643646,\n",
+       "  -0.7999009490013123,\n",
+       "  -0.18309427797794342,\n",
+       "  -0.32965219020843506,\n",
+       "  -0.716147243976593,\n",
+       "  0.35231006145477295,\n",
+       "  0.31334054470062256,\n",
+       "  0.9026334285736084,\n",
+       "  0.44286203384399414,\n",
+       "  -0.06066688150167465,\n",
+       "  -0.49386537075042725,\n",
+       "  -0.571142852306366,\n",
+       "  -0.42108890414237976,\n",
+       "  -0.8826929926872253,\n",
+       "  0.5461695194244385,\n",
+       "  -0.8487135767936707,\n",
+       "  -0.5901421904563904,\n",
+       "  -0.6019299626350403,\n",
+       "  -0.032040100544691086,\n",
+       "  -0.457055926322937,\n",
+       "  0.4428011476993561,\n",
+       "  -0.8541960716247559,\n",
+       "  -0.32525351643562317,\n",
+       "  0.7125647664070129,\n",
+       "  0.45189979672431946,\n",
+       "  -0.25928154587745667,\n",
+       "  -0.17774581909179688,\n",
+       "  -0.26920250058174133,\n",
+       "  0.08924514800310135,\n",
+       "  0.9944015145301819,\n",
+       "  0.7593095302581787,\n",
+       "  -0.25938305258750916,\n",
+       "  0.3242359459400177,\n",
+       "  -0.34961849451065063,\n",
+       "  -0.47478827834129333,\n",
+       "  -0.06921988725662231,\n",
+       "  -0.7078092694282532,\n",
+       "  0.7564664483070374,\n",
+       "  -0.5934049487113953,\n",
+       "  -0.5741901993751526,\n",
+       "  -0.44621846079826355,\n",
+       "  -0.2329241782426834,\n",
+       "  0.06570033729076385,\n",
+       "  -0.8043128848075867,\n",
+       "  0.3082607686519623,\n",
+       "  0.07662681490182877,\n",
+       "  0.7903819680213928,\n",
+       "  -0.8488594889640808,\n",
+       "  -0.9291868209838867,\n",
+       "  0.16850176453590393,\n",
+       "  -0.2045775055885315,\n",
+       "  -0.41875341534614563,\n",
+       "  0.05377103015780449,\n",
+       "  0.9302248954772949,\n",
+       "  0.1590145081281662,\n",
+       "  0.21007277071475983,\n",
+       "  -0.2307853251695633,\n",
+       "  -0.7894681692123413,\n",
+       "  4.072210788726807,\n",
+       "  1.0314375162124634,\n",
+       "  0.7413455843925476,\n",
+       "  0.2175021767616272,\n",
+       "  0.0460495725274086,\n",
+       "  0.7578788995742798,\n",
+       "  0.09630119055509567,\n",
+       "  0.23811012506484985,\n",
+       "  -0.36347854137420654,\n",
+       "  -0.2232029289007187,\n",
+       "  0.02932274155318737,\n",
+       "  0.564838171005249,\n",
+       "  0.22863909602165222,\n",
+       "  0.12459971755743027,\n",
+       "  0.0018232904840260744,\n",
+       "  0.8779709935188293,\n",
+       "  -0.9465978741645813,\n",
+       "  -0.7080463767051697,\n",
+       "  0.13964389264583588,\n",
+       "  -0.980272114276886,\n",
+       "  -0.7497457265853882,\n",
+       "  -0.3013603687286377,\n",
+       "  0.00335038173943758,\n",
+       "  0.46313101053237915,\n",
+       "  -0.441183865070343,\n",
+       "  -0.3438478708267212,\n",
+       "  0.22290784120559692,\n",
+       "  -0.4461698830127716,\n",
+       "  -0.4505060613155365,\n",
+       "  -0.5350180864334106,\n",
+       "  0.24498435854911804,\n",
+       "  -0.8108664751052856,\n",
+       "  -0.37081730365753174,\n",
+       "  -0.3678787350654602,\n",
+       "  -0.9506158828735352,\n",
+       "  0.4547770917415619,\n",
+       "  0.2541368305683136,\n",
+       "  0.20375360548496246,\n",
+       "  -0.5119951367378235,\n",
+       "  -0.11197996139526367,\n",
+       "  -0.6023352146148682,\n",
+       "  -0.11465101689100266,\n",
+       "  0.9323827624320984,\n",
+       "  -0.4218308925628662,\n",
+       "  0.025832125917077065,\n",
+       "  0.1128021776676178,\n",
+       "  -0.7623777389526367,\n",
+       "  0.21882113814353943,\n",
+       "  -0.1399582177400589,\n",
+       "  -0.9036707878112793,\n",
+       "  0.7563123106956482,\n",
+       "  -0.7850674986839294,\n",
+       "  0.2391638159751892,\n",
+       "  -0.22955968976020813,\n",
+       "  -1.3679088354110718,\n",
+       "  0.316941499710083,\n",
+       "  0.4251406788825989,\n",
+       "  -0.3749549090862274,\n",
+       "  0.13650032877922058,\n",
+       "  0.2597576379776001,\n",
+       "  0.19974054396152496,\n",
+       "  -0.32662948966026306,\n",
+       "  -0.2621956765651703,\n",
+       "  0.3228282332420349,\n",
+       "  -0.4554971754550934,\n",
+       "  0.5398443937301636,\n",
+       "  1.1019084453582764,\n",
+       "  0.7593320608139038,\n",
+       "  -0.5765718221664429,\n",
+       "  -0.015286562032997608,\n",
+       "  -0.2666643261909485,\n",
+       "  ...],\n",
+       " [0.33337298035621643,\n",
+       "  0.02006004936993122,\n",
+       "  0.29406389594078064,\n",
+       "  0.22592930495738983,\n",
+       "  -0.523647665977478,\n",
+       "  0.01782163418829441,\n",
+       "  1.0595035552978516,\n",
+       "  0.5688751935958862,\n",
+       "  0.1603807955980301,\n",
+       "  0.5898828506469727,\n",
+       "  0.3921133875846863,\n",
+       "  -0.19194403290748596,\n",
+       "  0.12333673238754272,\n",
+       "  -0.21691292524337769,\n",
+       "  -0.5172141790390015,\n",
+       "  -0.40508586168289185,\n",
+       "  -0.4508478343486786,\n",
+       "  -0.3571659028530121,\n",
+       "  -0.7934220433235168,\n",
+       "  0.18969739973545074,\n",
+       "  0.33381497859954834,\n",
+       "  1.0246347188949585,\n",
+       "  -1.4730311632156372,\n",
+       "  -0.2654559016227722,\n",
+       "  0.06955422461032867,\n",
+       "  -0.022328363731503487,\n",
+       "  -0.30525442957878113,\n",
+       "  0.03018275834619999,\n",
+       "  0.9212719798088074,\n",
+       "  0.6960930824279785,\n",
+       "  -0.7049258947372437,\n",
+       "  0.15746530890464783,\n",
+       "  -0.13638077676296234,\n",
+       "  -0.9200529456138611,\n",
+       "  -0.7241265773773193,\n",
+       "  -0.3133358955383301,\n",
+       "  -0.23478315770626068,\n",
+       "  -0.5569650530815125,\n",
+       "  -0.18596309423446655,\n",
+       "  -0.8341456055641174,\n",
+       "  0.6043726801872253,\n",
+       "  -0.2477843463420868,\n",
+       "  0.2233496606349945,\n",
+       "  0.006388794630765915,\n",
+       "  -0.7756876349449158,\n",
+       "  -0.19135569036006927,\n",
+       "  -0.15727661550045013,\n",
+       "  -1.0014227628707886,\n",
+       "  0.11967508494853973,\n",
+       "  -0.6124666929244995,\n",
+       "  0.10014550387859344,\n",
+       "  -0.6715226173400879,\n",
+       "  0.11013932526111603,\n",
+       "  0.4542386531829834,\n",
+       "  0.23326599597930908,\n",
+       "  0.45659443736076355,\n",
+       "  0.8691902160644531,\n",
+       "  0.6686016321182251,\n",
+       "  -0.15902860462665558,\n",
+       "  0.6661834120750427,\n",
+       "  -0.16782929003238678,\n",
+       "  0.698865532875061,\n",
+       "  -0.2955860495567322,\n",
+       "  -1.092231035232544,\n",
+       "  -0.015972834080457687,\n",
+       "  -0.08321477472782135,\n",
+       "  -0.3681206703186035,\n",
+       "  -0.9722222089767456,\n",
+       "  0.1314198225736618,\n",
+       "  0.5400716066360474,\n",
+       "  -0.17125047743320465,\n",
+       "  0.17715705931186676,\n",
+       "  -0.5123180747032166,\n",
+       "  -0.6307958364486694,\n",
+       "  -0.14410988986492157,\n",
+       "  0.36386820673942566,\n",
+       "  0.20329363644123077,\n",
+       "  0.06463875621557236,\n",
+       "  -0.045624300837516785,\n",
+       "  0.2660903036594391,\n",
+       "  0.25404325127601624,\n",
+       "  0.778957724571228,\n",
+       "  -0.18303298950195312,\n",
+       "  0.2889940142631531,\n",
+       "  -1.0060813426971436,\n",
+       "  0.12667034566402435,\n",
+       "  0.4112265706062317,\n",
+       "  0.20197828114032745,\n",
+       "  -0.07381415367126465,\n",
+       "  0.15803305804729462,\n",
+       "  -0.23140500485897064,\n",
+       "  0.5384538769721985,\n",
+       "  -0.42067664861679077,\n",
+       "  0.2042783945798874,\n",
+       "  0.5914250612258911,\n",
+       "  0.2336941659450531,\n",
+       "  -0.011780805885791779,\n",
+       "  0.4578266739845276,\n",
+       "  -0.11033887416124344,\n",
+       "  -0.34844693541526794,\n",
+       "  0.5218288898468018,\n",
+       "  0.39677658677101135,\n",
+       "  -0.08914858102798462,\n",
+       "  0.7628657221794128,\n",
+       "  -0.7942704558372498,\n",
+       "  -0.417886883020401,\n",
+       "  0.27624455094337463,\n",
+       "  0.32194775342941284,\n",
+       "  -0.9515729546546936,\n",
+       "  -0.42862173914909363,\n",
+       "  0.6025353670120239,\n",
+       "  -0.01767631061375141,\n",
+       "  0.7204714417457581,\n",
+       "  0.589661717414856,\n",
+       "  0.19199535250663757,\n",
+       "  0.5165079832077026,\n",
+       "  0.4547382593154907,\n",
+       "  1.0152316093444824,\n",
+       "  -0.9116500616073608,\n",
+       "  -0.33246293663978577,\n",
+       "  -0.12730614840984344,\n",
+       "  0.4682310223579407,\n",
+       "  0.14057376980781555,\n",
+       "  0.5323357582092285,\n",
+       "  -0.11350321024656296,\n",
+       "  -0.4165663719177246,\n",
+       "  -0.27480968832969666,\n",
+       "  0.4843340814113617,\n",
+       "  -0.2552838921546936,\n",
+       "  0.027400460094213486,\n",
+       "  -0.10291912406682968,\n",
+       "  -0.3142092227935791,\n",
+       "  0.45550480484962463,\n",
+       "  0.6906976699829102,\n",
+       "  0.38145995140075684,\n",
+       "  0.013644739054143429,\n",
+       "  -0.24501881003379822,\n",
+       "  1.0659372806549072,\n",
+       "  -0.19132722914218903,\n",
+       "  -0.4634144902229309,\n",
+       "  0.502338171005249,\n",
+       "  0.2830981910228729,\n",
+       "  0.23843777179718018,\n",
+       "  1.2106139659881592,\n",
+       "  0.4136737287044525,\n",
+       "  0.2081451267004013,\n",
+       "  -0.29765385389328003,\n",
+       "  -0.022599218413233757,\n",
+       "  -0.6633609533309937,\n",
+       "  0.16462424397468567,\n",
+       "  -0.2663154602050781,\n",
+       "  0.40329116582870483,\n",
+       "  -0.17215271294116974,\n",
+       "  0.575140655040741,\n",
+       "  -0.23595356941223145,\n",
+       "  -0.0679195374250412,\n",
+       "  0.19809095561504364,\n",
+       "  -0.2017083764076233,\n",
+       "  0.703376054763794,\n",
+       "  -0.208828866481781,\n",
+       "  -0.7117382287979126,\n",
+       "  -0.2612796127796173,\n",
+       "  -0.6522277593612671,\n",
+       "  0.19085578620433807,\n",
+       "  -0.21375998854637146,\n",
+       "  1.1422935724258423,\n",
+       "  -0.5978577136993408,\n",
+       "  0.22074031829833984,\n",
+       "  0.47781744599342346,\n",
+       "  0.03307531401515007,\n",
+       "  0.04792780056595802,\n",
+       "  0.22786223888397217,\n",
+       "  -0.08965915441513062,\n",
+       "  -0.07457009702920914,\n",
+       "  0.46671831607818604,\n",
+       "  1.1231400966644287,\n",
+       "  0.17039281129837036,\n",
+       "  -0.4739528298377991,\n",
+       "  0.840653657913208,\n",
+       "  0.3046075105667114,\n",
+       "  -0.23856320977210999,\n",
+       "  0.09542325139045715,\n",
+       "  0.2717638611793518,\n",
+       "  1.0638378858566284,\n",
+       "  0.12824612855911255,\n",
+       "  0.29804855585098267,\n",
+       "  0.2497713565826416,\n",
+       "  -0.009643753059208393,\n",
+       "  -0.4064204692840576,\n",
+       "  -0.5258654952049255,\n",
+       "  -0.3149794638156891,\n",
+       "  0.6216298341751099,\n",
+       "  -0.6467192769050598,\n",
+       "  0.7529037594795227,\n",
+       "  -0.49123141169548035,\n",
+       "  0.36221134662628174,\n",
+       "  -0.2963949143886566,\n",
+       "  -0.3134544789791107,\n",
+       "  -0.5826051235198975,\n",
+       "  -0.9187191128730774,\n",
+       "  -0.05792100727558136,\n",
+       "  0.7655676007270813,\n",
+       "  -0.3502368927001953,\n",
+       "  0.06841688603162766,\n",
+       "  -0.13598032295703888,\n",
+       "  -0.6753174662590027,\n",
+       "  0.6113227009773254,\n",
+       "  1.1845800876617432,\n",
+       "  -0.11031842976808548,\n",
+       "  0.9098318219184875,\n",
+       "  0.5527685284614563,\n",
+       "  0.07846181839704514,\n",
+       "  -0.9813363552093506,\n",
+       "  0.03474795073270798,\n",
+       "  -0.19674032926559448,\n",
+       "  0.2612990736961365,\n",
+       "  0.026111222803592682,\n",
+       "  1.3598994016647339,\n",
+       "  -0.5694597363471985,\n",
+       "  -0.01169208437204361,\n",
+       "  -0.06168972700834274,\n",
+       "  0.5088055729866028,\n",
+       "  0.27369225025177,\n",
+       "  0.8039237856864929,\n",
+       "  0.4718610644340515,\n",
+       "  -0.6337075233459473,\n",
+       "  0.24838368594646454,\n",
+       "  1.4119703769683838,\n",
+       "  0.09402940422296524,\n",
+       "  0.192125141620636,\n",
+       "  -0.21149837970733643,\n",
+       "  0.47530317306518555,\n",
+       "  0.47054359316825867,\n",
+       "  1.0105408430099487,\n",
+       "  0.8663490414619446,\n",
+       "  0.17772014439105988,\n",
+       "  1.0881112813949585,\n",
+       "  0.800692617893219,\n",
+       "  -0.8736886382102966,\n",
+       "  0.4604488015174866,\n",
+       "  -0.06111627444624901,\n",
+       "  -0.013670648448169231,\n",
+       "  0.1469733864068985,\n",
+       "  -0.3231627941131592,\n",
+       "  0.2870139479637146,\n",
+       "  0.3730476200580597,\n",
+       "  -0.12815532088279724,\n",
+       "  0.5387733578681946,\n",
+       "  -0.3937036991119385,\n",
+       "  0.3282574415206909,\n",
+       "  0.20119847357273102,\n",
+       "  0.18447081744670868,\n",
+       "  0.5136070847511292,\n",
+       "  0.4204138219356537,\n",
+       "  -1.2623183727264404,\n",
+       "  -0.03627987578511238,\n",
+       "  -0.29203176498413086,\n",
+       "  0.4513552188873291,\n",
+       "  -0.020403075963258743,\n",
+       "  -0.9387991428375244,\n",
+       "  0.5027630925178528,\n",
+       "  0.09852858632802963,\n",
+       "  0.05215165764093399,\n",
+       "  0.02853984758257866,\n",
+       "  0.6953203082084656,\n",
+       "  0.6391677260398865,\n",
+       "  -0.16501042246818542,\n",
+       "  0.75384920835495,\n",
+       "  -0.3739304542541504,\n",
+       "  -0.4510989189147949,\n",
+       "  -0.23435468971729279,\n",
+       "  -0.6683436036109924,\n",
+       "  -0.4364356994628906,\n",
+       "  -0.5166194438934326,\n",
+       "  -0.6888208389282227,\n",
+       "  -0.3339124321937561,\n",
+       "  0.8124140501022339,\n",
+       "  -0.3124043643474579,\n",
+       "  -0.007011388894170523,\n",
+       "  0.10305935889482498,\n",
+       "  -0.33510252833366394,\n",
+       "  -0.5807340145111084,\n",
+       "  -1.103222370147705,\n",
+       "  0.37464216351509094,\n",
+       "  -0.07387460768222809,\n",
+       "  0.5051655173301697,\n",
+       "  -0.40233567357063293,\n",
+       "  -0.23438723385334015,\n",
+       "  0.48371580243110657,\n",
+       "  0.9854409694671631,\n",
+       "  -0.6379954218864441,\n",
+       "  -0.8572129011154175,\n",
+       "  0.3165505528450012,\n",
+       "  -0.12044452130794525,\n",
+       "  0.09641540795564651,\n",
+       "  -0.09533822536468506,\n",
+       "  -0.1602795571088791,\n",
+       "  0.047207776457071304,\n",
+       "  -0.4326007664203644,\n",
+       "  -1.0536208152770996,\n",
+       "  0.8120434880256653,\n",
+       "  0.4786711037158966,\n",
+       "  -0.5882609486579895,\n",
+       "  -0.1819901019334793,\n",
+       "  -0.45424696803092957,\n",
+       "  0.8017213940620422,\n",
+       "  0.11142898350954056,\n",
+       "  -0.5334643125534058,\n",
+       "  0.4755026400089264,\n",
+       "  0.8635997176170349,\n",
+       "  -0.8725877404212952,\n",
+       "  0.16500402987003326,\n",
+       "  0.4843764901161194,\n",
+       "  0.375041127204895,\n",
+       "  -0.7822120785713196,\n",
+       "  0.2849026620388031,\n",
+       "  -0.0545157715678215,\n",
+       "  0.4773695170879364,\n",
+       "  -1.026876449584961,\n",
+       "  0.1688643991947174,\n",
+       "  -0.40855520963668823,\n",
+       "  -0.25200167298316956,\n",
+       "  -0.2483212649822235,\n",
+       "  0.1072358638048172,\n",
+       "  -0.5030602216720581,\n",
+       "  0.7955505847930908,\n",
+       "  0.5659346580505371,\n",
+       "  -1.4127376079559326,\n",
+       "  0.2981058359146118,\n",
+       "  -0.6198479533195496,\n",
+       "  -0.5340158939361572,\n",
+       "  0.027016988024115562,\n",
+       "  -0.10495337098836899,\n",
+       "  0.7541730999946594,\n",
+       "  -0.37054139375686646,\n",
+       "  -0.21316440403461456,\n",
+       "  0.5282447934150696,\n",
+       "  -0.21311892569065094,\n",
+       "  0.6581853628158569,\n",
+       "  -0.11338408291339874,\n",
+       "  1.4720278978347778,\n",
+       "  -0.4457148611545563,\n",
+       "  0.29888108372688293,\n",
+       "  0.3874196410179138,\n",
+       "  0.8064010739326477,\n",
+       "  0.1078956201672554,\n",
+       "  0.36585867404937744,\n",
+       "  -0.18932294845581055,\n",
+       "  0.17212094366550446,\n",
+       "  0.5691714286804199,\n",
+       "  0.1172683984041214,\n",
+       "  -0.07920059561729431,\n",
+       "  0.01207203883677721,\n",
+       "  -0.4906538426876068,\n",
+       "  -0.5533738732337952,\n",
+       "  0.1900777667760849,\n",
+       "  -0.5938198566436768,\n",
+       "  0.05791061371564865,\n",
+       "  0.529826283454895,\n",
+       "  -0.058250825852155685,\n",
+       "  0.8037002086639404,\n",
+       "  0.2171137034893036,\n",
+       "  0.06018542870879173,\n",
+       "  -0.42023923993110657,\n",
+       "  0.40969744324684143,\n",
+       "  -0.4719778299331665,\n",
+       "  -0.046741679310798645,\n",
+       "  -0.05339540168642998,\n",
+       "  -0.1618456393480301,\n",
+       "  -0.7888380289077759,\n",
+       "  1.0306456089019775,\n",
+       "  -0.2553476393222809,\n",
+       "  -0.4968341886997223,\n",
+       "  0.12717145681381226,\n",
+       "  0.47304674983024597,\n",
+       "  -0.23739096522331238,\n",
+       "  0.6066562533378601,\n",
+       "  0.2889617681503296,\n",
+       "  0.2079630047082901,\n",
+       "  -0.7067514657974243,\n",
+       "  0.17450673878192902,\n",
+       "  0.5637731552124023,\n",
+       "  1.019129991531372,\n",
+       "  -0.28278258442878723,\n",
+       "  0.5833974480628967,\n",
+       "  0.5789215564727783,\n",
+       "  -0.14316393435001373,\n",
+       "  -0.17400890588760376,\n",
+       "  -0.869565486907959,\n",
+       "  -0.2673444449901581,\n",
+       "  -0.799062967300415,\n",
+       "  0.34934860467910767,\n",
+       "  0.3961751461029053,\n",
+       "  0.022633258253335953,\n",
+       "  -1.4608420133590698,\n",
+       "  -0.8705185055732727,\n",
+       "  0.3428339958190918,\n",
+       "  0.4061702787876129,\n",
+       "  0.6089838743209839,\n",
+       "  -0.5418933629989624,\n",
+       "  0.6915159225463867,\n",
+       "  1.154362678527832,\n",
+       "  0.4530835449695587,\n",
+       "  0.9654828310012817,\n",
+       "  0.3842657506465912,\n",
+       "  0.14391981065273285,\n",
+       "  -0.5368731021881104,\n",
+       "  0.2777368426322937,\n",
+       "  0.23602232336997986,\n",
+       "  -0.8527593612670898,\n",
+       "  -0.7937656044960022,\n",
+       "  -0.5162080526351929,\n",
+       "  -0.4528389573097229,\n",
+       "  0.18370385468006134,\n",
+       "  0.6006118655204773,\n",
+       "  0.2790478467941284,\n",
+       "  -0.8608324527740479,\n",
+       "  -0.29005110263824463,\n",
+       "  -0.2544880509376526,\n",
+       "  0.1620083600282669,\n",
+       "  -0.6014496088027954,\n",
+       "  -0.03847014158964157,\n",
+       "  -0.6235532760620117,\n",
+       "  0.5749123096466064,\n",
+       "  0.25629138946533203,\n",
+       "  -1.0107581615447998,\n",
+       "  0.25732943415641785,\n",
+       "  -0.9812096953392029,\n",
+       "  0.48953700065612793,\n",
+       "  0.43293046951293945,\n",
+       "  0.24938367307186127,\n",
+       "  -0.41339924931526184,\n",
+       "  -0.47098976373672485,\n",
+       "  -0.04142199829220772,\n",
+       "  -0.1850498467683792,\n",
+       "  0.203985795378685,\n",
+       "  0.12312035262584686,\n",
+       "  0.331148236989975,\n",
+       "  0.6974695324897766,\n",
+       "  -1.119771957397461,\n",
+       "  0.6848002672195435,\n",
+       "  0.5144025683403015,\n",
+       "  0.16741561889648438,\n",
+       "  0.33643102645874023,\n",
+       "  0.47946038842201233,\n",
+       "  0.21024130284786224,\n",
+       "  0.3091551959514618,\n",
+       "  0.7789376378059387,\n",
+       "  -0.80717933177948,\n",
+       "  -0.3515343964099884,\n",
+       "  0.20816831290721893,\n",
+       "  -1.1832785606384277,\n",
+       "  0.32957813143730164,\n",
+       "  -0.6137903332710266,\n",
+       "  0.29530778527259827,\n",
+       "  -0.1956826150417328,\n",
+       "  -0.858967661857605,\n",
+       "  0.21364042162895203,\n",
+       "  0.5025348663330078,\n",
+       "  -0.8412559032440186,\n",
+       "  -0.37321245670318604,\n",
+       "  -0.12380901724100113,\n",
+       "  0.19590704143047333,\n",
+       "  -0.3227238953113556,\n",
+       "  -0.4664977490901947,\n",
+       "  1.2543898820877075,\n",
+       "  0.4810763895511627,\n",
+       "  -0.4362419545650482,\n",
+       "  0.6109074950218201,\n",
+       "  0.4369519054889679,\n",
+       "  -0.16665898263454437,\n",
+       "  0.15172532200813293,\n",
+       "  0.19131337106227875,\n",
+       "  -0.4149361848831177,\n",
+       "  0.23100414872169495,\n",
+       "  -0.8373755812644958,\n",
+       "  0.32446107268333435,\n",
+       "  -0.31461361050605774,\n",
+       "  -0.6101260781288147,\n",
+       "  1.097629189491272,\n",
+       "  -0.12076549977064133,\n",
+       "  0.19591975212097168,\n",
+       "  -0.33004486560821533,\n",
+       "  -0.5569248795509338,\n",
+       "  -0.16055253148078918,\n",
+       "  -1.1408393383026123,\n",
+       "  -0.4026479721069336,\n",
+       "  0.38586753606796265,\n",
+       "  -0.07469676434993744,\n",
+       "  0.3253757059574127,\n",
+       "  -0.4475138783454895,\n",
+       "  0.14933137595653534,\n",
+       "  0.20228543877601624,\n",
+       "  -0.32332006096839905,\n",
+       "  -0.22193846106529236,\n",
+       "  -0.49372151494026184,\n",
+       "  -0.47194990515708923,\n",
+       "  0.7426949143409729,\n",
+       "  0.20321024954319,\n",
+       "  -0.06921922415494919,\n",
+       "  0.6166821718215942,\n",
+       "  -0.42217525839805603,\n",
+       "  -0.6130588054656982,\n",
+       "  0.2502304017543793,\n",
+       "  0.27586495876312256,\n",
+       "  -0.6323974132537842,\n",
+       "  -0.4165205955505371,\n",
+       "  -0.09528110176324844,\n",
+       "  -0.38591331243515015,\n",
+       "  -0.3825629651546478,\n",
+       "  -0.05458390340209007,\n",
+       "  0.36158621311187744,\n",
+       "  -0.6488738656044006,\n",
+       "  -0.33502787351608276,\n",
+       "  -0.03957970067858696,\n",
+       "  0.5453405976295471,\n",
+       "  -0.523015558719635,\n",
+       "  -0.4035367965698242,\n",
+       "  -0.4531565010547638,\n",
+       "  0.6744226813316345,\n",
+       "  0.5671007037162781,\n",
+       "  -1.2616639137268066,\n",
+       "  0.3643752932548523,\n",
+       "  0.11575832217931747,\n",
+       "  -0.6785139441490173,\n",
+       "  0.3379829525947571,\n",
+       "  -0.09837386757135391,\n",
+       "  -0.534118115901947,\n",
+       "  -0.5068942308425903,\n",
+       "  -0.3973032534122467,\n",
+       "  -0.020721128210425377,\n",
+       "  -0.6782963275909424,\n",
+       "  -0.17098325490951538,\n",
+       "  0.3800031542778015,\n",
+       "  -0.23224514722824097,\n",
+       "  -0.08875378221273422,\n",
+       "  0.3050841689109802,\n",
+       "  -0.44239193201065063,\n",
+       "  0.2886126637458801,\n",
+       "  -0.2797392010688782,\n",
+       "  -0.48867833614349365,\n",
+       "  0.07997419685125351,\n",
+       "  -0.1064998134970665,\n",
+       "  -0.6894057393074036,\n",
+       "  -0.2610807716846466,\n",
+       "  -0.08244015276432037,\n",
+       "  0.725700855255127,\n",
+       "  1.6280871629714966,\n",
+       "  -0.34129852056503296,\n",
+       "  -0.29829180240631104,\n",
+       "  0.2138652354478836,\n",
+       "  0.8792173266410828,\n",
+       "  0.22503052651882172,\n",
+       "  0.49973824620246887,\n",
+       "  -0.08723818510770798,\n",
+       "  -0.6351423859596252,\n",
+       "  0.66599041223526,\n",
+       "  -0.06931690126657486,\n",
+       "  0.11845126748085022,\n",
+       "  0.054412808269262314,\n",
+       "  -0.2929384112358093,\n",
+       "  0.06840210407972336,\n",
+       "  -0.1983087807893753,\n",
+       "  -0.12743064761161804,\n",
+       "  -0.19372841715812683,\n",
+       "  -0.8743732571601868,\n",
+       "  -0.16913680732250214,\n",
+       "  0.17443998157978058,\n",
+       "  0.6963918805122375,\n",
+       "  -0.4569453299045563,\n",
+       "  -0.33058682084083557,\n",
+       "  -0.5040510296821594,\n",
+       "  0.4870394170284271,\n",
+       "  1.013931393623352,\n",
+       "  0.17772573232650757,\n",
+       "  -0.859871506690979,\n",
+       "  -0.6354172229766846,\n",
+       "  -0.7394052147865295,\n",
+       "  -1.0134317874908447,\n",
+       "  0.21716497838497162,\n",
+       "  -0.5441824197769165,\n",
+       "  0.07656727731227875,\n",
+       "  -0.8050359487533569,\n",
+       "  -0.38746634125709534,\n",
+       "  0.6108992695808411,\n",
+       "  0.025348778814077377,\n",
+       "  0.0554591529071331,\n",
+       "  1.1192638874053955,\n",
+       "  -0.46420106291770935,\n",
+       "  -0.09360028058290482,\n",
+       "  -0.8145939111709595,\n",
+       "  0.5652071833610535,\n",
+       "  0.5288896560668945,\n",
+       "  -0.47737547755241394,\n",
+       "  0.106320321559906,\n",
+       "  -0.03591075912117958,\n",
+       "  -1.0859755277633667,\n",
+       "  0.14692366123199463,\n",
+       "  -0.7618046402931213,\n",
+       "  -0.8747251033782959,\n",
+       "  -0.9018937945365906,\n",
+       "  0.34619826078414917,\n",
+       "  0.4967249631881714,\n",
+       "  -0.3446800112724304,\n",
+       "  0.6009508371353149,\n",
+       "  -0.5040149092674255,\n",
+       "  -0.2535114288330078,\n",
+       "  -0.9940255880355835,\n",
+       "  0.9777451157569885,\n",
+       "  1.0061124563217163,\n",
+       "  0.43243682384490967,\n",
+       "  0.798133134841919,\n",
+       "  -0.16374383866786957,\n",
+       "  -0.09608769416809082,\n",
+       "  0.8203686475753784,\n",
+       "  -0.08175600320100784,\n",
+       "  -1.0440312623977661,\n",
+       "  0.0528155192732811,\n",
+       "  1.4948172569274902,\n",
+       "  -0.4558491110801697,\n",
+       "  -0.9544349312782288,\n",
+       "  0.9710138440132141,\n",
+       "  0.7928891181945801,\n",
+       "  -0.7367203235626221,\n",
+       "  -0.3821394443511963,\n",
+       "  0.5050479173660278,\n",
+       "  -0.24570345878601074,\n",
+       "  -0.5429352521896362,\n",
+       "  -0.5734038949012756,\n",
+       "  0.4032129943370819,\n",
+       "  -0.09947071224451065,\n",
+       "  -0.07196611166000366,\n",
+       "  0.08138509094715118,\n",
+       "  0.08501191437244415,\n",
+       "  0.692768394947052,\n",
+       "  0.516019880771637,\n",
+       "  -0.23890283703804016,\n",
+       "  -0.3930414319038391,\n",
+       "  -0.32676461338996887,\n",
+       "  -0.5023223757743835,\n",
+       "  1.117282748222351,\n",
+       "  -1.1511528491973877,\n",
+       "  0.2514539361000061,\n",
+       "  -0.4545832872390747,\n",
+       "  0.14742887020111084,\n",
+       "  0.5285033583641052,\n",
+       "  0.04394351318478584,\n",
+       "  1.0828551054000854,\n",
+       "  -0.0893108919262886,\n",
+       "  -0.16613946855068207,\n",
+       "  0.02459716983139515,\n",
+       "  -0.060437265783548355,\n",
+       "  0.7265113592147827,\n",
+       "  -0.04100891575217247,\n",
+       "  -0.13135457038879395,\n",
+       "  0.5610867738723755,\n",
+       "  -0.46130144596099854,\n",
+       "  -0.5634089112281799,\n",
+       "  -0.3235207200050354,\n",
+       "  0.2439909428358078,\n",
+       "  -0.37141555547714233,\n",
+       "  -0.22560814023017883,\n",
+       "  -0.49496787786483765,\n",
+       "  0.22981230914592743,\n",
+       "  -0.28156283497810364,\n",
+       "  0.6008853912353516,\n",
+       "  -0.597093939781189,\n",
+       "  -0.2577124536037445,\n",
+       "  -0.6199463605880737,\n",
+       "  -1.0368645191192627,\n",
+       "  -0.4652043282985687,\n",
+       "  -0.15111424028873444,\n",
+       "  0.18776163458824158,\n",
+       "  -0.4463488757610321,\n",
+       "  0.6040583252906799,\n",
+       "  -0.06638869643211365,\n",
+       "  -0.34379249811172485,\n",
+       "  0.35486629605293274,\n",
+       "  0.551963210105896,\n",
+       "  -0.06376373767852783,\n",
+       "  0.6461917161941528,\n",
+       "  -0.5193460583686829,\n",
+       "  0.04135504737496376,\n",
+       "  -0.4560208022594452,\n",
+       "  -0.09819166362285614,\n",
+       "  -0.5202165842056274,\n",
+       "  0.3710121810436249,\n",
+       "  -0.5888710021972656,\n",
+       "  0.8580431938171387,\n",
+       "  -0.11344252526760101,\n",
+       "  0.3706965744495392,\n",
+       "  0.032807596027851105,\n",
+       "  0.5074489116668701,\n",
+       "  0.3968987762928009,\n",
+       "  0.4815812408924103,\n",
+       "  0.07075202465057373,\n",
+       "  -0.6092419624328613,\n",
+       "  0.0931212455034256,\n",
+       "  0.8402712345123291,\n",
+       "  0.41422921419143677,\n",
+       "  0.5295222997665405,\n",
+       "  0.3915819525718689,\n",
+       "  -0.03370828554034233,\n",
+       "  0.1485697329044342,\n",
+       "  -0.9483530521392822,\n",
+       "  -0.5270420908927917,\n",
+       "  -0.5873691439628601,\n",
+       "  -0.12930329144001007,\n",
+       "  0.12210045009851456,\n",
+       "  -0.2616996765136719,\n",
+       "  -0.9335662722587585,\n",
+       "  -1.307065725326538,\n",
+       "  -0.05007448419928551,\n",
+       "  -0.5319976806640625,\n",
+       "  0.10045923292636871,\n",
+       "  -0.4464053809642792,\n",
+       "  -0.33466365933418274,\n",
+       "  -0.1945812702178955,\n",
+       "  0.3344098925590515,\n",
+       "  0.48698386549949646,\n",
+       "  0.7741599678993225,\n",
+       "  0.06624109297990799,\n",
+       "  0.2849924862384796,\n",
+       "  -0.02437439002096653,\n",
+       "  0.34459421038627625,\n",
+       "  0.48707157373428345,\n",
+       "  -0.0011744890362024307,\n",
+       "  -0.11979769170284271,\n",
+       "  0.12876878678798676,\n",
+       "  0.5217507481575012,\n",
+       "  -0.5782056450843811,\n",
+       "  -0.049100663512945175,\n",
+       "  0.5967895984649658,\n",
+       "  -0.32750576734542847,\n",
+       "  1.295275092124939,\n",
+       "  0.23809798061847687,\n",
+       "  -0.8720280528068542,\n",
+       "  -0.8907445669174194,\n",
+       "  0.6736933588981628,\n",
+       "  0.5673532485961914,\n",
+       "  -0.04438159614801407,\n",
+       "  0.35714101791381836,\n",
+       "  -0.9200810194015503,\n",
+       "  0.03122362680733204,\n",
+       "  -0.6224260330200195,\n",
+       "  -0.2492886185646057,\n",
+       "  0.4913763701915741,\n",
+       "  -0.9695414304733276,\n",
+       "  -0.16624414920806885,\n",
+       "  0.16488976776599884,\n",
+       "  -0.5543433427810669,\n",
+       "  -0.0014817871851846576,\n",
+       "  -0.11340277642011642,\n",
+       "  -0.7348063588142395,\n",
+       "  -0.13255560398101807,\n",
+       "  -0.5947654843330383,\n",
+       "  0.6416608691215515,\n",
+       "  0.11564739793539047,\n",
+       "  0.5187666416168213,\n",
+       "  0.13580633699893951,\n",
+       "  -0.10638488084077835,\n",
+       "  -0.4954569637775421,\n",
+       "  -0.3444867730140686,\n",
+       "  0.1501612365245819,\n",
+       "  0.28334030508995056,\n",
+       "  -0.18209415674209595,\n",
+       "  -0.7256135940551758,\n",
+       "  0.09097934514284134,\n",
+       "  0.08745330572128296,\n",
+       "  0.2728079557418823,\n",
+       "  -0.7380597591400146,\n",
+       "  -0.30025893449783325,\n",
+       "  0.7116866707801819,\n",
+       "  -0.4461795389652252,\n",
+       "  -0.01990511454641819,\n",
+       "  0.6194266080856323,\n",
+       "  -0.18746225535869598,\n",
+       "  0.2138487994670868,\n",
+       "  -0.14399324357509613,\n",
+       "  -0.5129393935203552,\n",
+       "  0.7855989933013916,\n",
+       "  -0.2378549575805664,\n",
+       "  0.22164812684059143,\n",
+       "  -0.37670761346817017,\n",
+       "  -0.6745481491088867,\n",
+       "  -0.5170747637748718,\n",
+       "  0.46567031741142273,\n",
+       "  1.0807216167449951,\n",
+       "  0.9626607894897461,\n",
+       "  0.14403720200061798,\n",
+       "  0.0271042101085186,\n",
+       "  0.44585588574409485,\n",
+       "  -0.7525822520256042,\n",
+       "  -0.793507993221283,\n",
+       "  -0.4639089107513428,\n",
+       "  0.3724289834499359,\n",
+       "  0.6706063151359558,\n",
+       "  0.007857647724449635,\n",
+       "  0.07323038578033447,\n",
+       "  0.08483569324016571,\n",
+       "  0.7494832873344421,\n",
+       "  -0.6630513668060303,\n",
+       "  -0.6523663401603699,\n",
+       "  0.22919443249702454,\n",
+       "  -0.6444677114486694,\n",
+       "  -0.20680606365203857,\n",
+       "  0.31079399585723877,\n",
+       "  0.16374602913856506,\n",
+       "  0.8246950507164001,\n",
+       "  0.24202780425548553,\n",
+       "  -0.2570505440235138,\n",
+       "  0.06788535416126251,\n",
+       "  -0.7197138667106628,\n",
+       "  -0.14464499056339264,\n",
+       "  0.075093574821949,\n",
+       "  -0.35472220182418823,\n",
+       "  0.6398672461509705,\n",
+       "  -1.0748943090438843,\n",
+       "  0.5152992606163025,\n",
+       "  -0.4245350956916809,\n",
+       "  -0.5303300023078918,\n",
+       "  -0.7421443462371826,\n",
+       "  0.4181268811225891,\n",
+       "  0.17719054222106934,\n",
+       "  0.6649417877197266,\n",
+       "  0.7067188024520874,\n",
+       "  0.17166191339492798,\n",
+       "  0.824521541595459,\n",
+       "  0.22738133370876312,\n",
+       "  0.07140923291444778,\n",
+       "  0.4856291711330414,\n",
+       "  -0.8680378794670105,\n",
+       "  -0.9694925546646118,\n",
+       "  -0.2650892734527588,\n",
+       "  -0.2923256456851959,\n",
+       "  -0.40910470485687256,\n",
+       "  -0.791467547416687,\n",
+       "  -0.9966763854026794,\n",
+       "  0.35533055663108826,\n",
+       "  0.28326791524887085,\n",
+       "  -0.1573113203048706,\n",
+       "  0.4080241918563843,\n",
+       "  -0.6599385142326355,\n",
+       "  -0.048158757388591766,\n",
+       "  -0.8654828071594238,\n",
+       "  0.7412445545196533,\n",
+       "  -0.059746816754341125,\n",
+       "  -0.2391999065876007,\n",
+       "  1.013134241104126,\n",
+       "  -0.2184017300605774,\n",
+       "  0.32816949486732483,\n",
+       "  0.8563316464424133,\n",
+       "  -0.5475587844848633,\n",
+       "  0.4314652979373932,\n",
+       "  0.5650091171264648,\n",
+       "  0.6654657125473022,\n",
+       "  0.37515509128570557,\n",
+       "  0.6548658013343811,\n",
+       "  0.5707045197486877,\n",
+       "  -0.5134177803993225,\n",
+       "  -0.3254169523715973,\n",
+       "  0.058681562542915344,\n",
+       "  -0.014952561818063259,\n",
+       "  -1.0734052658081055,\n",
+       "  0.19492284953594208,\n",
+       "  -0.41136619448661804,\n",
+       "  -0.05579788610339165,\n",
+       "  -0.42256245017051697,\n",
+       "  0.038446128368377686,\n",
+       "  -0.4254162907600403,\n",
+       "  0.5091780424118042,\n",
+       "  0.10499109327793121,\n",
+       "  -0.7356489896774292,\n",
+       "  -0.38812193274497986,\n",
+       "  -0.11899396777153015,\n",
+       "  -0.07734769582748413,\n",
+       "  0.7848846912384033,\n",
+       "  0.517977237701416,\n",
+       "  0.9205548167228699,\n",
+       "  0.6229963302612305,\n",
+       "  0.554986298084259,\n",
+       "  -0.4912668466567993,\n",
+       "  0.22338858246803284,\n",
+       "  0.4977974593639374,\n",
+       "  -0.5370557308197021,\n",
+       "  0.22506436705589294,\n",
+       "  -0.36914753913879395,\n",
+       "  -0.6461860537528992,\n",
+       "  -0.05157399922609329,\n",
+       "  -0.5574749708175659,\n",
+       "  -0.1268477439880371,\n",
+       "  -0.19992513954639435,\n",
+       "  -0.3653377890586853,\n",
+       "  -0.6331583261489868,\n",
+       "  0.04171421006321907,\n",
+       "  0.7474424242973328,\n",
+       "  -0.010283359326422215,\n",
+       "  0.31586945056915283,\n",
+       "  -0.39855462312698364,\n",
+       "  0.4816909730434418,\n",
+       "  0.9028955698013306,\n",
+       "  0.8125403523445129,\n",
+       "  -0.8311466574668884,\n",
+       "  0.4947796165943146,\n",
+       "  0.08468551933765411,\n",
+       "  -0.5357757210731506,\n",
+       "  -0.20605307817459106,\n",
+       "  -0.6768448948860168,\n",
+       "  0.5313697457313538,\n",
+       "  -0.22020414471626282,\n",
+       "  0.21218667924404144,\n",
+       "  -0.61190265417099,\n",
+       "  -0.28624528646469116,\n",
+       "  -0.2993525564670563,\n",
+       "  -0.39397233724594116,\n",
+       "  -0.5008349418640137,\n",
+       "  0.7934759855270386,\n",
+       "  0.25255754590034485,\n",
+       "  -0.5300459265708923,\n",
+       "  -0.8620027899742126,\n",
+       "  -0.3550799489021301,\n",
+       "  -0.5558770298957825,\n",
+       "  -0.1285102367401123,\n",
+       "  -0.4108595550060272,\n",
+       "  0.8588772416114807,\n",
+       "  0.6698674559593201,\n",
+       "  0.02788524143397808,\n",
+       "  0.6135531663894653,\n",
+       "  -1.2352819442749023,\n",
+       "  4.117743492126465,\n",
+       "  0.5004256963729858,\n",
+       "  0.8554301261901855,\n",
+       "  -0.24860478937625885,\n",
+       "  -0.09161481261253357,\n",
+       "  0.5994160771369934,\n",
+       "  -0.26748740673065186,\n",
+       "  -0.08047442138195038,\n",
+       "  -0.29965639114379883,\n",
+       "  -0.8341971635818481,\n",
+       "  0.08606543391942978,\n",
+       "  0.024018365889787674,\n",
+       "  0.22074256837368011,\n",
+       "  0.04627253860235214,\n",
+       "  0.0013079888885840774,\n",
+       "  0.5470229387283325,\n",
+       "  -0.22071290016174316,\n",
+       "  -0.49633893370628357,\n",
+       "  0.12132851779460907,\n",
+       "  -0.29538801312446594,\n",
+       "  -0.1026589497923851,\n",
+       "  0.33525869250297546,\n",
+       "  -0.0020568848121911287,\n",
+       "  -0.06655574589967728,\n",
+       "  0.10691098123788834,\n",
+       "  -0.26251381635665894,\n",
+       "  0.9879724979400635,\n",
+       "  -0.39358532428741455,\n",
+       "  -0.7269737124443054,\n",
+       "  -0.30490443110466003,\n",
+       "  -0.38031333684921265,\n",
+       "  -0.30638155341148376,\n",
+       "  -0.4956100881099701,\n",
+       "  0.016653066501021385,\n",
+       "  -0.9541082382202148,\n",
+       "  0.40978488326072693,\n",
+       "  0.1490773856639862,\n",
+       "  0.06736554950475693,\n",
+       "  -0.7975549101829529,\n",
+       "  0.38396647572517395,\n",
+       "  -0.3804899752140045,\n",
+       "  0.06215175241231918,\n",
+       "  0.8273525238037109,\n",
+       "  -0.8432930707931519,\n",
+       "  -0.05744561553001404,\n",
+       "  0.24414527416229248,\n",
+       "  -0.6568121910095215,\n",
+       "  0.4030216932296753,\n",
+       "  0.06649532914161682,\n",
+       "  -0.47736960649490356,\n",
+       "  0.8090847134590149,\n",
+       "  -0.4633845388889313,\n",
+       "  0.2599547207355499,\n",
+       "  -0.9576112031936646,\n",
+       "  -0.7422605156898499,\n",
+       "  -0.02015363611280918,\n",
+       "  0.20850639045238495,\n",
+       "  -0.22161859273910522,\n",
+       "  -0.36194825172424316,\n",
+       "  0.2561335563659668,\n",
+       "  -0.03479013219475746,\n",
+       "  -0.35598382353782654,\n",
+       "  -0.2267131507396698,\n",
+       "  0.5062740445137024,\n",
+       "  -0.8605638742446899,\n",
+       "  0.3181823790073395,\n",
+       "  0.5258446335792542,\n",
+       "  -0.03991806507110596,\n",
+       "  -0.6525282263755798,\n",
+       "  0.28436800837516785,\n",
+       "  -0.17757639288902283,\n",
+       "  ...]]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "encoder(\"Hey\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now we define the `RouteLayer`. When called, the route layer will consume text (a query) and output the category (`Route`) it belongs to — to initialize a `RouteLayer` we need our `encoder` model and a list of `routes`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\u001b[32m2024-04-14 20:02:32 INFO semantic_router.utils.logger local\u001b[0m\n"
+     ]
+    }
+   ],
+   "source": [
+    "from semantic_router.layer import RouteLayer\n",
+    "\n",
+    "rl = RouteLayer(encoder=encoder, routes=routes)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We can check the dimensionality of our vectors by looking at the `index` attribute of the `RouteLayer`."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "LocalIndex(index=array([[ 0.37762564,  0.37923592,  0.04006954, ...,  0.2910035 ,\n",
+       "         0.14261879, -0.14989774],\n",
+       "       [ 0.14489685, -0.47280183, -0.13473961, ..., -0.184137  ,\n",
+       "        -0.44280073, -0.96940869],\n",
+       "       [ 1.16709912,  0.38906148,  0.24399863, ...,  0.03619115,\n",
+       "        -0.00167309,  0.50425595],\n",
+       "       ...,\n",
+       "       [-0.64046752,  0.45156148, -0.27317011, ..., -0.64851284,\n",
+       "        -0.10258984,  0.15441738],\n",
+       "       [-0.11908327,  0.4233726 , -0.29102552, ..., -0.69622546,\n",
+       "         0.27602831,  0.2030668 ],\n",
+       "       [-0.06046702, -0.18556708, -0.45608515, ..., -0.86009502,\n",
+       "        -0.01424424, -0.489003  ]]), routes=array(['politics', 'politics', 'politics', 'politics', 'politics',\n",
+       "       'politics', 'chitchat', 'chitchat', 'chitchat', 'chitchat',\n",
+       "       'chitchat'], dtype='<U8'), utterances=array([\"isn't politics the best thing ever\",\n",
+       "       \"why don't you tell me about your political opinions\",\n",
+       "       \"don't you just love the president\",\n",
+       "       \"don't you just hate the president\",\n",
+       "       \"they're going to destroy this country!\",\n",
+       "       'they will save the country!', \"how's the weather today?\",\n",
+       "       'how are things going?', 'lovely weather today',\n",
+       "       'the weather is horrendous', \"let's go to the chippy\"],\n",
+       "      dtype='<U51'), dimensions=None, type='local')"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "rl.index"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "We do have 1024-dimensional vectors. Now let's test them:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "RouteChoice(name='politics', function_call=None, similarity_score=None)"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "rl(\"tell me about your political opinions?\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "RouteChoice(name='chitchat', function_call=None, similarity_score=None)"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "rl(\"how's the weather today?\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Both are classified accurately, what if we send a query that is unrelated to our existing `Route` objects?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "RouteChoice(name=None, function_call=None, similarity_score=None)"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "rl(\"I'm interested in learning about llama 2\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "In this case, we return `None` because no matches were identified. We always recommend optimizing your `RouteLayer` for optimal performance, you can see how in [this notebook](https://github.com/aurelio-labs/semantic-router/blob/main/docs/06-threshold-optimization.ipynb)."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "---"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "decision-layer",
+   "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.12.2"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/docs/encoders/huggingface.ipynb b/docs/encoders/huggingface.ipynb
index f0b4b8ba..cd553a75 100644
--- a/docs/encoders/huggingface.ipynb
+++ b/docs/encoders/huggingface.ipynb
@@ -53,9 +53,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 2,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "d:\\Program_Installation\\anaconda\\envs\\testenv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
+      "  from .autonotebook import tqdm as notebook_tqdm\n"
+     ]
+    }
+   ],
    "source": [
     "from semantic_router import Route\n",
     "\n",
@@ -88,7 +97,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -115,21 +124,19 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "/Users/jamesbriggs/opt/anaconda3/envs/decision-layer/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
-      "  from .autonotebook import tqdm as notebook_tqdm\n",
-      "tokenizer_config.json: 100%|██████████| 350/350 [00:00<00:00, 1.06MB/s]\n",
-      "vocab.txt: 100%|██████████| 232k/232k [00:00<00:00, 1.05MB/s]\n",
-      "tokenizer.json: 100%|██████████| 466k/466k [00:00<00:00, 1.43MB/s]\n",
-      "special_tokens_map.json: 100%|██████████| 112/112 [00:00<00:00, 386kB/s]\n",
-      "config.json: 100%|██████████| 612/612 [00:00<00:00, 2.90MB/s]\n",
-      "pytorch_model.bin: 100%|██████████| 90.9M/90.9M [00:01<00:00, 63.2MB/s]\n"
+      "tokenizer_config.json: 100%|██████████| 350/350 [00:00<?, ?B/s] \n",
+      "vocab.txt: 100%|██████████| 232k/232k [00:00<00:00, 950kB/s]\n",
+      "tokenizer.json: 100%|██████████| 466k/466k [00:00<00:00, 630kB/s]\n",
+      "special_tokens_map.json: 100%|██████████| 112/112 [00:00<?, ?B/s] \n",
+      "config.json: 100%|██████████| 612/612 [00:00<?, ?B/s] \n",
+      "model.safetensors: 100%|██████████| 90.9M/90.9M [00:03<00:00, 25.8MB/s]\n"
      ]
     }
    ],
@@ -139,6 +146,409 @@
     "encoder = HuggingFaceEncoder()"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[[-0.11423865705728531,\n",
+       "  0.013737470842897892,\n",
+       "  0.05483824759721756,\n",
+       "  0.02612205408513546,\n",
+       "  0.03366684541106224,\n",
+       "  -0.0807342678308487,\n",
+       "  0.1294635385274887,\n",
+       "  0.03305264189839363,\n",
+       "  -0.02904639206826687,\n",
+       "  -0.04729180410504341,\n",
+       "  -0.01743963174521923,\n",
+       "  0.010834690183401108,\n",
+       "  -0.013411852531135082,\n",
+       "  -0.002171672647818923,\n",
+       "  0.01874753087759018,\n",
+       "  0.00762708717957139,\n",
+       "  0.025326967239379883,\n",
+       "  -0.10684280842542648,\n",
+       "  -0.09309743344783783,\n",
+       "  0.06578213721513748,\n",
+       "  0.03600294888019562,\n",
+       "  0.030101895332336426,\n",
+       "  0.010903903283178806,\n",
+       "  -0.014277834445238113,\n",
+       "  -0.05480341985821724,\n",
+       "  -0.046608816832304,\n",
+       "  0.03811933100223541,\n",
+       "  0.09334418922662735,\n",
+       "  -0.08844338357448578,\n",
+       "  -0.00015365486615337431,\n",
+       "  -0.05805235356092453,\n",
+       "  0.040658798068761826,\n",
+       "  0.03602350875735283,\n",
+       "  -0.00012040344881825149,\n",
+       "  0.0014777182368561625,\n",
+       "  -0.01575486548244953,\n",
+       "  -0.0839557945728302,\n",
+       "  -0.1172216534614563,\n",
+       "  0.02088264748454094,\n",
+       "  0.03227342665195465,\n",
+       "  -0.01875143311917782,\n",
+       "  -0.006739516742527485,\n",
+       "  -0.013505082577466965,\n",
+       "  0.07939152419567108,\n",
+       "  0.03261948749423027,\n",
+       "  -0.021357867866754532,\n",
+       "  -0.026340456679463387,\n",
+       "  0.02579592913389206,\n",
+       "  0.018229736015200615,\n",
+       "  -0.003337700152769685,\n",
+       "  -0.03188186511397362,\n",
+       "  -0.07872839272022247,\n",
+       "  -0.04228793457150459,\n",
+       "  0.012792701832950115,\n",
+       "  0.14339058101177216,\n",
+       "  0.09618547558784485,\n",
+       "  0.018152154982089996,\n",
+       "  -0.0530053973197937,\n",
+       "  0.09879206120967865,\n",
+       "  -0.0907149612903595,\n",
+       "  -0.08342350274324417,\n",
+       "  0.012273512780666351,\n",
+       "  -0.0819632038474083,\n",
+       "  -0.05105786770582199,\n",
+       "  0.014089709147810936,\n",
+       "  -0.01016179844737053,\n",
+       "  -0.03907155245542526,\n",
+       "  -0.019414644688367844,\n",
+       "  -0.046597715467214584,\n",
+       "  -0.031130781397223473,\n",
+       "  -0.019644174724817276,\n",
+       "  -0.016959073022007942,\n",
+       "  -0.03439386188983917,\n",
+       "  -0.06818914413452148,\n",
+       "  0.037960320711135864,\n",
+       "  -0.027920439839363098,\n",
+       "  0.03703640401363373,\n",
+       "  0.013515403494238853,\n",
+       "  0.001978617860004306,\n",
+       "  -0.00359722669236362,\n",
+       "  0.025217901915311813,\n",
+       "  -0.09175395220518112,\n",
+       "  -0.05270292982459068,\n",
+       "  0.0339379645884037,\n",
+       "  -0.009566015563905239,\n",
+       "  -0.09692132472991943,\n",
+       "  0.0827004685997963,\n",
+       "  -0.003031309926882386,\n",
+       "  -0.014253348112106323,\n",
+       "  0.01019090786576271,\n",
+       "  -0.09519690275192261,\n",
+       "  -0.0002853995538316667,\n",
+       "  0.042065463960170746,\n",
+       "  -0.05857514962553978,\n",
+       "  -0.03812193498015404,\n",
+       "  -0.06450342386960983,\n",
+       "  0.06234588846564293,\n",
+       "  0.035958241671323776,\n",
+       "  -0.09367603063583374,\n",
+       "  0.25373566150665283,\n",
+       "  0.016129741445183754,\n",
+       "  0.07738282531499863,\n",
+       "  0.031760625541210175,\n",
+       "  0.02651532180607319,\n",
+       "  -0.038190484046936035,\n",
+       "  0.026544027030467987,\n",
+       "  -0.0876961499452591,\n",
+       "  0.07003381103277206,\n",
+       "  -0.030265210196375847,\n",
+       "  -0.016104521229863167,\n",
+       "  0.04457677900791168,\n",
+       "  0.00757654057815671,\n",
+       "  0.014453830197453499,\n",
+       "  0.04364680498838425,\n",
+       "  0.1351340413093567,\n",
+       "  0.06684476137161255,\n",
+       "  0.06541601568460464,\n",
+       "  0.02084515616297722,\n",
+       "  -0.008347414433956146,\n",
+       "  -0.07750769704580307,\n",
+       "  -0.0319858118891716,\n",
+       "  -0.03544182702898979,\n",
+       "  -0.001698172534815967,\n",
+       "  -0.021968062967061996,\n",
+       "  0.09773769229650497,\n",
+       "  -0.02362070232629776,\n",
+       "  0.022215133532881737,\n",
+       "  -5.968164449355239e-33,\n",
+       "  0.054632093757390976,\n",
+       "  0.00846831128001213,\n",
+       "  -0.011441917158663273,\n",
+       "  0.13195011019706726,\n",
+       "  0.01962447725236416,\n",
+       "  -0.04277697578072548,\n",
+       "  -0.05078886076807976,\n",
+       "  0.021259799599647522,\n",
+       "  -0.04665791988372803,\n",
+       "  0.01371921319514513,\n",
+       "  0.0699634850025177,\n",
+       "  0.03471170365810394,\n",
+       "  -0.056665170937776566,\n",
+       "  0.009710577316582203,\n",
+       "  0.008900151588022709,\n",
+       "  0.04218043386936188,\n",
+       "  -0.03082343190908432,\n",
+       "  -0.003828516462817788,\n",
+       "  -0.009247229434549809,\n",
+       "  0.010788359679281712,\n",
+       "  -0.030083660036325455,\n",
+       "  -0.047238800674676895,\n",
+       "  0.017595993354916573,\n",
+       "  0.0810183510184288,\n",
+       "  0.004849777091294527,\n",
+       "  -0.036722999066114426,\n",
+       "  0.035562388598918915,\n",
+       "  -0.068642258644104,\n",
+       "  0.05170796439051628,\n",
+       "  0.010919257067143917,\n",
+       "  -0.009729581885039806,\n",
+       "  0.009294673800468445,\n",
+       "  0.03926905244588852,\n",
+       "  0.06409227102994919,\n",
+       "  -0.010028756223618984,\n",
+       "  -0.023192133754491806,\n",
+       "  0.07778891175985336,\n",
+       "  -0.0003171116695739329,\n",
+       "  -0.031507618725299835,\n",
+       "  0.03035464882850647,\n",
+       "  -0.020111646503210068,\n",
+       "  0.024977393448352814,\n",
+       "  0.02069445326924324,\n",
+       "  -0.03973761200904846,\n",
+       "  0.06862123310565948,\n",
+       "  0.08910191804170609,\n",
+       "  -0.02524728514254093,\n",
+       "  0.009801230393350124,\n",
+       "  0.02022949978709221,\n",
+       "  -0.004629763774573803,\n",
+       "  -0.06564957648515701,\n",
+       "  0.05281716212630272,\n",
+       "  -0.09382486343383789,\n",
+       "  -0.007978985086083412,\n",
+       "  -0.07739488780498505,\n",
+       "  -0.04856621101498604,\n",
+       "  -0.015814466401934624,\n",
+       "  -0.01335339155048132,\n",
+       "  0.05370025709271431,\n",
+       "  0.03840520977973938,\n",
+       "  0.025062285363674164,\n",
+       "  0.02736000530421734,\n",
+       "  -0.03568736091256142,\n",
+       "  -0.03636045753955841,\n",
+       "  -0.1445392668247223,\n",
+       "  -0.05933190882205963,\n",
+       "  0.03519044816493988,\n",
+       "  0.013504653237760067,\n",
+       "  0.024751951918005943,\n",
+       "  -0.04175782948732376,\n",
+       "  -0.009688134305179119,\n",
+       "  0.010052510537207127,\n",
+       "  0.005975383333861828,\n",
+       "  0.009347953833639622,\n",
+       "  0.012808509171009064,\n",
+       "  -0.0017119830008596182,\n",
+       "  0.08629827201366425,\n",
+       "  0.007543443702161312,\n",
+       "  0.01831595040857792,\n",
+       "  -0.029061343520879745,\n",
+       "  0.09248100966215134,\n",
+       "  -0.008599715307354927,\n",
+       "  0.00978198740631342,\n",
+       "  -0.05404217913746834,\n",
+       "  0.029240770265460014,\n",
+       "  0.035454150289297104,\n",
+       "  -0.02278723753988743,\n",
+       "  -0.096394382417202,\n",
+       "  -0.015356332994997501,\n",
+       "  -0.02890510857105255,\n",
+       "  -0.09170844405889511,\n",
+       "  0.060586266219615936,\n",
+       "  0.03915942832827568,\n",
+       "  0.002108626300469041,\n",
+       "  -0.007839742116630077,\n",
+       "  4.4580682029652795e-33,\n",
+       "  0.06484320014715195,\n",
+       "  0.09692490845918655,\n",
+       "  -0.02026134543120861,\n",
+       "  0.009838089346885681,\n",
+       "  -0.05348040536046028,\n",
+       "  -0.004755859263241291,\n",
+       "  -0.005625511985272169,\n",
+       "  0.11271227151155472,\n",
+       "  -0.1243550255894661,\n",
+       "  0.002774117747321725,\n",
+       "  0.004616657737642527,\n",
+       "  -0.061961520463228226,\n",
+       "  -0.016888946294784546,\n",
+       "  0.021102236583828926,\n",
+       "  0.03668638691306114,\n",
+       "  -0.010692193172872066,\n",
+       "  0.08665463328361511,\n",
+       "  -0.030606906861066818,\n",
+       "  -0.10806894302368164,\n",
+       "  -0.044540874660015106,\n",
+       "  -0.0013643245911225677,\n",
+       "  -0.04080400615930557,\n",
+       "  -0.006068442016839981,\n",
+       "  0.016468241810798645,\n",
+       "  0.00019835171406157315,\n",
+       "  0.02686193212866783,\n",
+       "  -0.050506819039583206,\n",
+       "  0.04688209667801857,\n",
+       "  -0.05142483115196228,\n",
+       "  0.0071433898992836475,\n",
+       "  0.07447455823421478,\n",
+       "  0.02418288215994835,\n",
+       "  -0.04474595561623573,\n",
+       "  -0.04281294718384743,\n",
+       "  0.029996385797858238,\n",
+       "  0.046952422708272934,\n",
+       "  -0.013240410946309566,\n",
+       "  -0.07489501684904099,\n",
+       "  0.02129260264337063,\n",
+       "  -0.06636284291744232,\n",
+       "  -0.0923016369342804,\n",
+       "  -0.020468896254897118,\n",
+       "  -0.012797920033335686,\n",
+       "  0.052056651562452316,\n",
+       "  0.0018882454605773091,\n",
+       "  -0.005012952722609043,\n",
+       "  0.032687779515981674,\n",
+       "  0.023257508873939514,\n",
+       "  -0.06360457837581635,\n",
+       "  0.027944521978497505,\n",
+       "  -0.0820653885602951,\n",
+       "  -0.05012356862425804,\n",
+       "  0.007555392105132341,\n",
+       "  0.02247454971075058,\n",
+       "  -0.014787756837904453,\n",
+       "  -0.013764528557658195,\n",
+       "  -0.008079699240624905,\n",
+       "  0.043655943125486374,\n",
+       "  -0.03173394128680229,\n",
+       "  -0.010333573445677757,\n",
+       "  -0.004562370479106903,\n",
+       "  0.0429571270942688,\n",
+       "  0.06618060916662216,\n",
+       "  0.08465901762247086,\n",
+       "  -0.008432728238403797,\n",
+       "  0.05195068567991257,\n",
+       "  -0.06404972821474075,\n",
+       "  -0.02680053561925888,\n",
+       "  -0.06115908920764923,\n",
+       "  -0.005285811144858599,\n",
+       "  0.024630464613437653,\n",
+       "  0.0508127361536026,\n",
+       "  -0.02946154959499836,\n",
+       "  0.00315065192990005,\n",
+       "  0.027983715757727623,\n",
+       "  0.0004941211664117873,\n",
+       "  0.0973694920539856,\n",
+       "  -0.00445805536583066,\n",
+       "  0.02243778668344021,\n",
+       "  0.05700451508164406,\n",
+       "  0.023384707048535347,\n",
+       "  0.0002657742297742516,\n",
+       "  -0.006948730908334255,\n",
+       "  0.028135964646935463,\n",
+       "  0.05755734071135521,\n",
+       "  -0.0035311044193804264,\n",
+       "  0.02564452774822712,\n",
+       "  0.06911254674196243,\n",
+       "  0.0001439160987501964,\n",
+       "  -0.0690045952796936,\n",
+       "  0.023919526487588882,\n",
+       "  0.0243697427213192,\n",
+       "  0.0016542165540158749,\n",
+       "  0.00436467956751585,\n",
+       "  -0.003900913055986166,\n",
+       "  -1.4984452789690295e-08,\n",
+       "  0.005736040882766247,\n",
+       "  0.07273048162460327,\n",
+       "  -0.04237211495637894,\n",
+       "  0.07735995203256607,\n",
+       "  0.045224644243717194,\n",
+       "  0.11730047315359116,\n",
+       "  -0.015441788360476494,\n",
+       "  -0.006769617088139057,\n",
+       "  0.011812692508101463,\n",
+       "  0.042124193161726,\n",
+       "  0.101394422352314,\n",
+       "  0.0897025316953659,\n",
+       "  -0.03517512232065201,\n",
+       "  0.023409757763147354,\n",
+       "  0.05634652450680733,\n",
+       "  0.06467470526695251,\n",
+       "  -0.05817856639623642,\n",
+       "  0.007569451350718737,\n",
+       "  -0.0726981908082962,\n",
+       "  -0.058578263968229294,\n",
+       "  -0.01871626265347004,\n",
+       "  0.039866991341114044,\n",
+       "  0.011542759835720062,\n",
+       "  -0.036801159381866455,\n",
+       "  -0.006841242779046297,\n",
+       "  -0.04151619225740433,\n",
+       "  0.011084156110882759,\n",
+       "  0.033770542591810226,\n",
+       "  -0.004958425648510456,\n",
+       "  -0.025353027507662773,\n",
+       "  -0.02028714120388031,\n",
+       "  0.14283043146133423,\n",
+       "  -0.02753743715584278,\n",
+       "  0.036813028156757355,\n",
+       "  0.026038523763418198,\n",
+       "  -0.04208604618906975,\n",
+       "  0.0035880794748663902,\n",
+       "  -0.012132312171161175,\n",
+       "  0.0464431531727314,\n",
+       "  -0.00905541516840458,\n",
+       "  -0.06408620625734329,\n",
+       "  0.024333177134394646,\n",
+       "  -0.003940224181860685,\n",
+       "  -0.02544635906815529,\n",
+       "  -0.017610585317015648,\n",
+       "  -0.0488358810544014,\n",
+       "  0.027587853372097015,\n",
+       "  -0.07398281246423721,\n",
+       "  0.053129442036151886,\n",
+       "  -0.0954415500164032,\n",
+       "  0.00758804427459836,\n",
+       "  0.0036420796532183886,\n",
+       "  0.06142501160502434,\n",
+       "  0.03770154342055321,\n",
+       "  0.1305655688047409,\n",
+       "  -0.01286567933857441,\n",
+       "  0.03425038605928421,\n",
+       "  -0.013945942744612694,\n",
+       "  0.022425182163715363,\n",
+       "  -0.02659265510737896,\n",
+       "  0.06289114058017731,\n",
+       "  0.05313219130039215,\n",
+       "  0.07984637469053268,\n",
+       "  -0.012213138863444328]]"
+      ]
+     },
+     "execution_count": 11,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "encoder([\"hey\"])"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -148,14 +558,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
      "name": "stderr",
      "output_type": "stream",
      "text": [
-      "\u001b[32m2024-01-09 00:22:35 INFO semantic_router.utils.logger Initializing RouteLayer\u001b[0m\n"
+      "\u001b[32m2024-04-14 18:15:59 INFO semantic_router.utils.logger local\u001b[0m\n"
      ]
     }
    ],
@@ -165,6 +575,48 @@
     "rl = RouteLayer(encoder=encoder, routes=routes)"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "LocalIndex(index=array([[-0.00864941,  0.02088905,  0.04548961, ..., -0.00787578,\n",
+       "         0.0252752 ,  0.01958269],\n",
+       "       [ 0.10101052, -0.05990515,  0.01437028, ..., -0.00809868,\n",
+       "         0.03701495, -0.01487793],\n",
+       "       [ 0.01996296, -0.03627442,  0.15291646, ...,  0.06719883,\n",
+       "         0.08079942, -0.03931363],\n",
+       "       ...,\n",
+       "       [-0.01322144,  0.11396162,  0.14592913, ..., -0.01772162,\n",
+       "        -0.09720093,  0.05921701],\n",
+       "       [ 0.02863792,  0.09272329,  0.10989423, ..., -0.00030185,\n",
+       "        -0.10717052,  0.04849005],\n",
+       "       [-0.03355407, -0.04666358, -0.05054352, ...,  0.04337099,\n",
+       "         0.10585055, -0.06144635]]), routes=array(['politics', 'politics', 'politics', 'politics', 'politics',\n",
+       "       'politics', 'chitchat', 'chitchat', 'chitchat', 'chitchat',\n",
+       "       'chitchat'], dtype='<U8'), utterances=array([\"isn't politics the best thing ever\",\n",
+       "       \"why don't you tell me about your political opinions\",\n",
+       "       \"don't you just love the president\",\n",
+       "       \"don't you just hate the president\",\n",
+       "       \"they're going to destroy this country!\",\n",
+       "       'they will save the country!', \"how's the weather today?\",\n",
+       "       'how are things going?', 'lovely weather today',\n",
+       "       'the weather is horrendous', \"let's go to the chippy\"],\n",
+       "      dtype='<U51'), dimensions=None, type='local')"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "rl.index"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -174,16 +626,118 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "vector [ 7.46806897e-03 -3.49807888e-02  8.88827071e-02 -3.65814343e-02\n",
+      "  9.69796628e-02 -3.88786122e-02  1.91174150e-02 -2.44899071e-03\n",
+      "  2.94564646e-02  2.73508448e-02 -1.19639039e-01  3.17963734e-02\n",
+      "  2.52084807e-03  2.75214389e-03 -1.46908767e-03  3.32778133e-02\n",
+      " -8.00867677e-02 -4.17326577e-03 -2.38617379e-02  1.46567017e-01\n",
+      " -1.49368718e-01  4.26295139e-02  4.98373099e-02  1.65512003e-02\n",
+      "  1.98207237e-02 -2.43026596e-02 -1.81025621e-02 -2.04044133e-02\n",
+      " -6.39620274e-02 -4.54164632e-02 -7.70635204e-03  1.11671137e-02\n",
+      " -1.09083969e-02  6.57793432e-02  3.92031223e-02  7.03004422e-03\n",
+      "  5.31722419e-02  2.29947194e-02  3.18085887e-02 -1.34273348e-02\n",
+      "  7.80912861e-03  1.41071444e-02 -2.45402344e-02 -5.35607934e-02\n",
+      " -5.93818501e-02 -2.74034124e-03  3.07757724e-02  4.67852596e-03\n",
+      "  7.82168582e-02 -7.07853511e-02  1.20290471e-02  3.36084664e-02\n",
+      "  3.86536419e-02  4.40022983e-02  7.18170255e-02 -1.54885557e-02\n",
+      "  3.44607979e-02  4.96295393e-02 -4.19351831e-02  9.97676980e-05\n",
+      " -2.87968363e-03  2.87525635e-02 -3.27512138e-02  2.99615487e-02\n",
+      " -3.11616343e-03  3.99692096e-02 -4.20988211e-03 -1.40505536e-02\n",
+      " -3.85094695e-02  1.77390687e-02 -2.16467027e-02  6.61753565e-02\n",
+      "  8.33685175e-02 -4.78239059e-02 -4.70590405e-02 -3.43491174e-02\n",
+      "  3.80785204e-03  8.20114464e-02  4.13801894e-02 -9.00606439e-03\n",
+      "  5.69840260e-02 -5.47169484e-02  1.96720269e-02  5.77765107e-02\n",
+      "  1.66462716e-02 -1.10149585e-01 -5.24689816e-02  5.18206228e-03\n",
+      " -3.89118999e-04 -3.44066173e-02 -3.78542580e-02  1.00882528e-02\n",
+      "  2.04983242e-02 -9.67855193e-03 -2.84724031e-02 -8.81512761e-02\n",
+      "  4.77903932e-02  3.23785283e-02 -9.37398747e-02  8.25569853e-02\n",
+      " -7.05434531e-02 -4.01798189e-02 -8.01931471e-02  5.74426539e-02\n",
+      " -3.66569799e-03 -4.87772673e-02 -1.32716194e-01  1.70647614e-02\n",
+      " -2.05865130e-02 -2.54293457e-02 -3.49317975e-02  5.63595593e-02\n",
+      "  9.65489000e-02 -3.81795168e-02  6.41789660e-02 -5.97803183e-02\n",
+      "  4.79376912e-02 -6.73008412e-02  1.29452450e-02  7.47889131e-02\n",
+      " -3.50754783e-02 -3.92399095e-02 -8.27630535e-02  6.69496059e-02\n",
+      "  5.43073602e-02 -1.05082624e-01  2.50374246e-03 -8.70677792e-33\n",
+      " -6.24993332e-02 -5.26585393e-02 -2.67148105e-04  8.23840424e-02\n",
+      " -9.20600966e-02  1.09337494e-01 -6.93592848e-03 -6.77209422e-02\n",
+      "  2.31854827e-03  2.61983182e-02 -5.97448759e-02  1.39414638e-01\n",
+      "  4.36192639e-02 -4.00043800e-02  4.44744304e-02  4.79639479e-04\n",
+      " -9.06227157e-02 -4.08852892e-03 -4.63285781e-02 -3.02307531e-02\n",
+      " -5.81271201e-02  8.55818465e-02  3.42825167e-02  5.44268265e-02\n",
+      "  1.04459964e-01  3.67966965e-02  8.17925632e-02 -4.86575179e-02\n",
+      "  6.59503713e-02  4.70023975e-02 -2.52449065e-02 -3.77716720e-02\n",
+      " -4.33016196e-02  3.54233049e-02 -3.84103656e-02 -3.85655760e-04\n",
+      " -2.19709128e-02  2.32433695e-02  3.99560183e-02 -3.96165997e-02\n",
+      "  8.89946595e-02  3.30114514e-02 -6.53322786e-03  4.37131003e-02\n",
+      " -2.58748494e-02 -4.89604287e-03  5.74647598e-02  1.34270790e-03\n",
+      " -4.75572189e-03 -2.29260828e-02 -2.30850674e-05  4.61842045e-02\n",
+      "  9.64455009e-02 -1.34467948e-02  5.43327220e-02 -4.99240905e-02\n",
+      " -6.38680682e-02 -3.99457924e-02 -2.31168065e-02 -6.60235286e-02\n",
+      " -4.51665260e-02 -1.06092729e-02  5.11268247e-03 -1.63481403e-02\n",
+      "  4.48726676e-02  4.88157338e-03 -1.21778011e-01  4.07235548e-02\n",
+      "  1.23663016e-01  2.09960677e-02  8.85758456e-03 -2.57863365e-02\n",
+      " -1.25853419e-01 -3.04767899e-02 -4.83227335e-02  2.13521179e-02\n",
+      "  7.65490755e-02 -1.62383765e-02 -4.12127823e-02 -3.46125327e-02\n",
+      "  3.35594527e-02 -2.75545437e-02  1.48337394e-01 -2.41062324e-02\n",
+      "  4.78513241e-02 -2.57437732e-02  6.86436594e-02 -3.65344249e-02\n",
+      "  9.58712995e-02 -7.33761489e-02 -6.54934272e-02 -7.58369714e-02\n",
+      "  2.16469876e-02  2.11787838e-02 -1.32356793e-01  7.74216946e-33\n",
+      " -5.21602631e-02 -1.12684049e-01  3.75458039e-02  2.14454755e-02\n",
+      " -1.59239266e-02 -2.00403482e-02  2.00451282e-03 -7.60207623e-02\n",
+      "  6.17395993e-03  9.82744992e-02 -5.70474076e-05 -5.46450354e-02\n",
+      " -8.58346745e-03  3.54736857e-02  9.09018740e-02 -7.34343156e-02\n",
+      "  5.37787378e-02  2.34990641e-02 -7.36654252e-02 -2.96295825e-02\n",
+      " -4.20701243e-02  4.01046425e-02 -1.05566114e-01  8.53969455e-02\n",
+      " -9.78117287e-02  3.11244652e-02 -8.60458147e-03 -5.80112636e-02\n",
+      "  8.06473009e-03  2.32330374e-02  1.29305897e-02 -1.45072332e-02\n",
+      " -6.42017797e-02 -1.80655587e-02 -3.71037386e-02  7.91664515e-03\n",
+      " -2.76426841e-02 -4.71186750e-02  3.25874314e-02 -2.59979051e-02\n",
+      " -2.75685731e-02 -5.33751510e-02  2.11490206e-02  2.41934936e-02\n",
+      " -7.74724558e-02 -5.48699610e-02 -3.02678696e-03  2.51382738e-02\n",
+      "  7.51809077e-03 -1.04018506e-02 -5.87963313e-02  4.60062809e-02\n",
+      "  3.05394977e-02 -2.98662260e-02  4.60343696e-02 -2.43270658e-02\n",
+      " -1.80021673e-02  8.80592465e-02 -3.52736451e-02  3.42088193e-02\n",
+      " -1.84306744e-02  1.83841325e-02 -1.26974359e-02 -5.30652609e-03\n",
+      "  1.65736768e-02 -1.89048573e-02 -2.92793736e-02 -7.48898089e-02\n",
+      "  9.58707631e-02  4.02442832e-03  2.81538311e-02 -5.81194721e-02\n",
+      " -9.39897671e-02  3.95648554e-02  1.23225600e-02  5.75946681e-02\n",
+      "  1.96183030e-03  6.95726126e-02 -2.68521514e-02  2.91528199e-02\n",
+      "  2.64277216e-02 -1.06734969e-02  1.18107386e-02 -7.41961002e-02\n",
+      "  2.32443679e-02  5.63910119e-02 -2.35880818e-02  6.71420619e-02\n",
+      " -2.24174298e-02  5.93297668e-02  5.77776693e-02  3.75099629e-02\n",
+      "  5.69688855e-03 -2.56761108e-02  6.62673786e-02 -1.96984313e-08\n",
+      "  3.92213389e-02  1.70475300e-02  4.09772508e-02 -6.42266218e-03\n",
+      " -6.23241104e-02 -4.91327532e-02 -1.97951663e-02 -4.40760069e-02\n",
+      " -2.72826254e-02 -1.60910953e-02  1.15375720e-01  4.63905372e-02\n",
+      " -6.51486441e-02 -1.31851183e-02  7.16804564e-02  1.75282490e-02\n",
+      "  6.10029511e-02  2.75316294e-02 -1.92716401e-02 -2.04059891e-02\n",
+      " -1.46359978e-02  4.85771447e-02 -1.65706128e-02  8.66604224e-02\n",
+      "  2.96872873e-02  6.26259074e-02  2.56345142e-02 -3.19722369e-02\n",
+      "  8.13637450e-02 -3.31001319e-02  1.27992919e-02  3.62702198e-02\n",
+      " -6.38388470e-02  4.30489294e-02  5.40841487e-04 -3.80511861e-03\n",
+      "  4.21091588e-03 -1.12978499e-02 -7.65859755e-03 -7.39676924e-03\n",
+      " -1.59889944e-02  1.02662235e-01  5.57321496e-02 -2.99020577e-02\n",
+      " -6.92943633e-02  1.64305847e-02 -1.08625945e-02  2.04215292e-02\n",
+      "  8.24088156e-02  1.39690740e-02 -2.41274685e-02  7.50095770e-02\n",
+      "  8.87042657e-03  1.05826482e-02  9.90147814e-02 -2.97501963e-02\n",
+      "  3.43261287e-02  2.33199596e-02  3.74692902e-02 -8.54534374e-05\n",
+      "  3.10892314e-02  3.17056179e-02  4.35627997e-02 -3.98492068e-02]\n"
+     ]
+    },
     {
      "data": {
       "text/plain": [
-       "RouteChoice(name='politics', function_call=None)"
+       "RouteChoice(name='politics', function_call=None, similarity_score=None)"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -263,7 +817,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.11.5"
+   "version": "3.12.2"
   }
  },
  "nbformat": 4,
diff --git a/docs/indexes/qdrant.ipynb b/docs/indexes/qdrant.ipynb
index 56427753..9f32fb87 100644
--- a/docs/indexes/qdrant.ipynb
+++ b/docs/indexes/qdrant.ipynb
@@ -55,6 +55,7 @@
     "import os\n",
     "from getpass import getpass\n",
     "from semantic_router.encoders import CohereEncoder\n",
+    "\n",
     "os.environ[\"COHERE_API_KEY\"] = os.environ.get(\"COHERE_API_KEY\") or getpass(\n",
     "    \"Enter COHERE API key: \"\n",
     ")\n",
diff --git a/semantic_router/encoders/__init__.py b/semantic_router/encoders/__init__.py
index b53e5be2..a79fa605 100644
--- a/semantic_router/encoders/__init__.py
+++ b/semantic_router/encoders/__init__.py
@@ -5,6 +5,7 @@ from semantic_router.encoders.cohere import CohereEncoder
 from semantic_router.encoders.fastembed import FastEmbedEncoder
 from semantic_router.encoders.google import GoogleEncoder
 from semantic_router.encoders.huggingface import HuggingFaceEncoder
+from semantic_router.encoders.huggingface import HFEndpointEncoder
 from semantic_router.encoders.mistral import MistralEncoder
 from semantic_router.encoders.openai import OpenAIEncoder
 from semantic_router.encoders.tfidf import TfidfEncoder
@@ -20,6 +21,7 @@ __all__ = [
     "TfidfEncoder",
     "FastEmbedEncoder",
     "HuggingFaceEncoder",
+    "HFEndpointEncoder",
     "MistralEncoder",
     "VitEncoder",
     "CLIPEncoder",
diff --git a/semantic_router/encoders/hfendpointencoder.py b/semantic_router/encoders/hfendpointencoder.py
deleted file mode 100644
index 4a5260da..00000000
--- a/semantic_router/encoders/hfendpointencoder.py
+++ /dev/null
@@ -1,53 +0,0 @@
-from typing import List, Optional
-
-import requests
-
-from semantic_router.encoders import BaseEncoder
-
-class HFEndpointEncoder(BaseEncoder):
-    huggingface_url : Optional[str] = None
-    huggingface_api_key: Optional[str] = None
-    score_threshold : float = 0.8
-
-    def __init__(self, name: Optional[str] = "hugging_face_custom_endpoint", huggingface_url: Optional[str] = None, huggingface_api_key: Optional[str] = None, score_threshold: float = 0.8):
-
-        super().__init__(name = name, huggingface_url=huggingface_url, huggingface_api_key=huggingface_api_key, score_threshold=score_threshold)
-        huggingface_url = huggingface_url
-        huggingface_api_key = huggingface_api_key
-        score_threshold = score_threshold
-
-        if huggingface_url is None:
-            raise ValueError("HuggingFace endpoint url cannot be 'None'.")
-
-        if huggingface_api_key is None:
-            raise ValueError("HuggingFace API key cannot be 'None'.")
-        
-        try:
-            self.query({"inputs": "Hello World!", "parameters": {} })            
-            pass
-
-        except Exception as e:
-            raise ValueError(
-                f"HuggingFace endpoint client failed to initialize. Error: {e}"
-            ) from e
-
-    def __call__(self, docs: List[str]) -> List[List[float]]:
-        embeddings = []
-        for d in docs:
-            try:
-                output = self.query({"inputs": d, "parameters": {} })
-                embeddings.append(output[0])
-            except Exception as e:
-                raise ValueError(f"No embeddings returned. Error!")
-        return embeddings
-    
-
-    def query(self, payload):
-        API_URL = self.huggingface_url
-        headers = {
-            "Accept" : "application/json",
-            "Authorization": f"Bearer {self.huggingface_api_key}",
-            "Content-Type": "application/json" 
-        }
-        response = requests.post(API_URL, headers=headers, json=payload)
-        return response.json()
diff --git a/semantic_router/encoders/huggingface.py b/semantic_router/encoders/huggingface.py
index 64b183ff..56a3b685 100644
--- a/semantic_router/encoders/huggingface.py
+++ b/semantic_router/encoders/huggingface.py
@@ -1,8 +1,34 @@
+"""
+This module provides the HFEndpointEncoder class to embeddings models using Huggingface's endpoint.
+
+The HFEndpointEncoder class is a subclass of BaseEncoder and utilizes a specified Huggingface 
+endpoint to generate embeddings for given documents. It requires the URL of the Huggingface 
+API endpoint and an API key for authentication. The class supports customization of the score 
+threshold for filtering or processing the embeddings.
+
+Example usage:
+
+    from semantic_router.encoders.hfendpointencoder import HFEndpointEncoder
+
+    encoder = HFEndpointEncoder(
+        huggingface_url="https://api-inference.huggingface.co/models/BAAI/bge-large-en-v1.5",
+        huggingface_api_key="your-hugging-face-api-key"
+    )
+    embeddings = encoder(["document1", "document2"])
+
+Classes:
+    HFEndpointEncoder: A class for generating embeddings using a Huggingface endpoint.
+"""
+
+import requests
+import time
+import os
 from typing import Any, List, Optional
 
 from pydantic.v1 import PrivateAttr
 
 from semantic_router.encoders import BaseEncoder
+from semantic_router.utils.logger import logger
 
 
 class HuggingFaceEncoder(BaseEncoder):
@@ -112,3 +138,140 @@ class HuggingFaceEncoder(BaseEncoder):
         )
         token_embeddings[input_mask_expanded == 0] = -1e9
         return self._torch.max(token_embeddings, 1)[0]
+
+
+class HFEndpointEncoder(BaseEncoder):
+    """
+    A class to encode documents using a Hugging Face transformer model endpoint.
+
+    Attributes:
+        huggingface_url (str): The URL of the Hugging Face API endpoint.
+        huggingface_api_key (str): The API key for authenticating with the Hugging Face API.
+        score_threshold (float): A threshold value used for filtering or processing the embeddings.
+    """
+
+    name: Optional[str] = "hugging_face_custom_endpoint"
+    huggingface_url: Optional[str] = None
+    huggingface_api_key: Optional[str] = None
+    score_threshold: float = 0.8
+
+    def __init__(
+        self,
+        name: Optional[str] = "hugging_face_custom_endpoint",
+        huggingface_url: Optional[str] = None,
+        huggingface_api_key: Optional[str] = None,
+        score_threshold: float = 0.8,
+    ):
+        """
+        Initializes the HFEndpointEncoder with the specified parameters.
+
+        Args:
+            name (str, optional): The name of the encoder. Defaults to
+                "hugging_face_custom_endpoint".
+            huggingface_url (str, optional): The URL of the Hugging Face API endpoint.
+                Cannot be None.
+            huggingface_api_key (str, optional): The API key for the Hugging Face API.
+                Cannot be None.
+            score_threshold (float, optional): A threshold for processing the embeddings.
+                Defaults to 0.8.
+
+        Raises:
+            ValueError: If either `huggingface_url` or `huggingface_api_key` is None.
+        """
+        huggingface_url = huggingface_url or os.getenv("HF_API_URL")
+        huggingface_api_key = huggingface_api_key or os.getenv("HF_API_KEY")
+
+        if huggingface_url is None:
+            raise ValueError("HuggingFace endpoint url cannot be 'None'.")
+        if huggingface_api_key is None:
+            raise ValueError("HuggingFace API key cannot be 'None'.")
+
+        super().__init__(
+            name=name,
+            huggingface_url=huggingface_url,
+            huggingface_api_key=huggingface_api_key,
+            score_threshold=score_threshold,
+        )
+
+        try:
+            self.query({"inputs": "Hello World!", "parameters": {}})
+        except Exception as e:
+            raise ValueError(
+                f"HuggingFace endpoint client failed to initialize. Error: {e}"
+            ) from e
+
+    def __call__(self, docs: List[str]) -> List[List[float]]:
+        """
+        Encodes a list of documents into embeddings using the Hugging Face API.
+
+        Args:
+            docs (List[str]): A list of documents to encode.
+
+        Returns:
+            List[List[float]]: A list of embeddings for the given documents.
+
+        Raises:
+            ValueError: If no embeddings are returned for a document.
+        """
+        embeddings = []
+        for d in docs:
+            try:
+                output = self.query({"inputs": d, "parameters": {}})
+                if not output or len(output) == 0:
+                    raise ValueError("No embeddings returned from the query.")
+                embeddings.append(output)
+
+            except Exception as e:
+                raise ValueError(
+                    f"No embeddings returned for document. Error: {e}"
+                ) from e
+        return embeddings
+
+    def query(self, payload, max_retries=3, retry_interval=5):
+        """
+        Sends a query to the Hugging Face API and returns the response.
+
+        Args:
+            payload (dict): The payload to send in the request.
+
+        Returns:
+            dict: The response from the Hugging Face API.
+
+        Raises:
+            ValueError: If the query fails or the response status is not 200.
+        """
+        headers = {
+            "Accept": "application/json",
+            "Authorization": f"Bearer {self.huggingface_api_key}",
+            "Content-Type": "application/json",
+        }
+        for attempt in range(1, max_retries + 1):
+            try:
+                response = requests.post(
+                    self.huggingface_url,
+                    headers=headers,
+                    json=payload,
+                    # timeout=timeout_seconds,
+                )
+                if response.status_code == 503:
+                    estimated_time = response.json().get("estimated_time", "")
+                    if estimated_time:
+                        logger.info(
+                            f"Model Initializing wait for - {estimated_time:.2f}s "
+                        )
+                        time.sleep(estimated_time)
+                        continue
+                else:
+                    response.raise_for_status()
+
+            except requests.exceptions.RequestException:
+                if attempt < max_retries - 1:
+                    logger.info(f"Retrying attempt: {attempt} for payload: {payload} ")
+                    time.sleep(retry_interval)
+                    retry_interval += attempt
+                else:
+                    raise ValueError(
+                        f"Query failed with status {response.status_code}: {response.text}"
+                    )
+
+        return response.json()
diff --git a/tests/unit/encoders/test_hfendpointencoder.py b/tests/unit/encoders/test_hfendpointencoder.py
new file mode 100644
index 00000000..cb8dd16a
--- /dev/null
+++ b/tests/unit/encoders/test_hfendpointencoder.py
@@ -0,0 +1,68 @@
+import pytest
+from semantic_router.encoders.huggingface import HFEndpointEncoder
+
+
+@pytest.fixture
+def encoder(requests_mock):
+    # Mock the HTTP request made during HFEndpointEncoder initialization
+    requests_mock.post(
+        "https://api-inference.huggingface.co/models/bert-base-uncased",
+        json=[0.1, 0.2, 0.3],
+        status_code=200,
+    )
+    # Now, when HFEndpointEncoder is initialized, it will use the mocked response above
+    return HFEndpointEncoder(
+        huggingface_url="https://api-inference.huggingface.co/models/bert-base-uncased",
+        huggingface_api_key="test-api-key",
+        score_threshold=0.8,
+    )
+
+
+class TestHFEndpointEncoder:
+    def test_initialization(self, encoder):
+        assert (
+            encoder.huggingface_url
+            == "https://api-inference.huggingface.co/models/bert-base-uncased"
+        )
+        assert encoder.huggingface_api_key == "test-api-key"
+        assert encoder.score_threshold == 0.8
+
+    def test_initialization_failure_no_api_key(self):
+        with pytest.raises(ValueError) as exc_info:
+            HFEndpointEncoder(
+                huggingface_url="https://api-inference.huggingface.co/models/bert-base-uncased"
+            )
+        assert "HuggingFace API key cannot be 'None'" in str(exc_info.value)
+
+    def test_initialization_failure_no_url(self):
+        with pytest.raises(ValueError) as exc_info:
+            HFEndpointEncoder(huggingface_api_key="test-api-key")
+        assert "HuggingFace endpoint url cannot be 'None'" in str(exc_info.value)
+
+    def test_query_success(self, encoder, requests_mock):
+        requests_mock.post(
+            "https://api-inference.huggingface.co/models/bert-base-uncased",
+            json=[0.1, 0.2, 0.3],
+            status_code=200,
+        )
+        response = encoder.query({"inputs": "Hello World!", "parameters": {}})
+        assert response == [0.1, 0.2, 0.3]
+
+    def test_query_failure(self, encoder, requests_mock):
+        requests_mock.post(
+            "https://api-inference.huggingface.co/models/bert-base-uncased",
+            text="Error",
+            status_code=400,
+        )
+        with pytest.raises(ValueError) as exc_info:
+            encoder.query({"inputs": "Hello World!", "parameters": {}})
+        assert "Query failed with status 400: Error" in str(exc_info.value)
+
+    def test_encode_documents_success(self, encoder, requests_mock):
+        requests_mock.post(
+            "https://api-inference.huggingface.co/models/bert-base-uncased",
+            json=[0.1, 0.2, 0.3],
+            status_code=200,
+        )
+        embeddings = encoder(["Hello World!"])
+        assert embeddings == [[0.1, 0.2, 0.3]]
-- 
GitLab