{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Designing networks\n", "\n", "The combination of agents and locations that exist in a model makes the life of an agent-based modeler much easier.\n", "Managing the relationships between agents in agent-based models is now very convenient.\n", "However, it is still very tedious to connect a large number of agents through a specific network structure.\n", "This is where the real magic of Pop2net comes into play.\n", "\n", "Pop2net enables you to design a specific network structure by the definition of a special kind of class: the `LocationDesigner`.\n", "A `LocationDesigner` can be considered as an *interface* with a special syntax to create a certain number of location instances that connect specific agents in a specific way.\n", "The assignment of agents to locations by the definition of a `LocationDesigner` is primarely done through agent attributes.\n", "Hence, **the creation of networks using pop2net makes the most sense when agents have informative attributes.**\n", "However, even when the agents in your simulation do not have any attributes the `LocationDesigner` class makes it easy to quickly connect agents in a certain way, for instance using classic network models.\n", "\n", "The creation of the network based on what is defined in a `LocationDesigner` is managed by the `Creator` class.\n", "The `Creator` *reads* the definition of a `LocationDesigner` and translates it into a certain number of certain location instances and then assigns the agents to the corresponding location instances." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Creator class\n", "\n", "In order to *design* a specific network in Pop2net, the first thing we need is an instance of the `Creator` class.\n", "The purpose of the `Creator` is to generate agents and locations as well as to connect agents and locations.\n", "Hence, the first step after creating a `Model` is the creation of an instance of `Creator`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pop2net as p2n\n", "\n", "model = p2n.Model()\n", "creator = p2n.Creator(model)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "nbsphinx": "hidden" }, "outputs": [], "source": [ "# this is a hidden cell which sets seeds for consistent outputs\n", "\n", "import random\n", "\n", "import numpy as np\n", "\n", "random.seed(0)\n", "np.random.seed(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating Agents\n", "\n", "Although the main task of Pop2net and the `Creator` class is connecting existing agents via the definition of `LocationDesigner`s, the `Creator` can also generate agents for you.\n", "A special feature of the `Creator` class is that it has some convenient methods to create agents based on micro-level data.\n", "This makes it easy to create *empirical* agents from survey data, for instance.\n", "\n", "Important to know is that while the generation of locations highly depents on the agents and their attributes, the generation of agents is independent from the generation of locations and their connection.\n", "This may be different from classic network generators in which you generate nodes and edges in one step.\n", "\n", "
\n", "Tip: You do not have to generate your agent population using Pop2net or the Creator class. If you plan to create your agents in your own way and just want to connect your agents using Pop2net and the Creator class, you can skip this subsection! However, to connect agents using Pop2net, they must always inherit from the Pop2net agent class.\n", "
\n", "\n", "The simplest way to generate agents using a `creator` is by using the method `creator.create_agents()` and define the desired number or agents by setting a certain `n`:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (10 objects)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "creator.create_agents(n=10)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (10 objects)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.agents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That is not very impressive.\n", "We could have done the same using a simple for-loop.\n", "Let's reset everything by removing those agents from the model:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "model.remove_agents(model.agents)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (0 objects)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.agents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's have a look at an example for what Pop2net was originally designed:\n", "The creation of a population of agents based on survey data and their flexible connection via locations.\n", "For the following example, we assume that we want to create a network model for schools and have access to a sample of individual data collected in a school.\n", "This is our example data:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
statusgendergradehoursfriend_group
0pupilm3.0514
1teachermNaN60
2pupilw2.0412
3pupilm2.0411
4pupilm3.056
\n", "
" ], "text/plain": [ " status gender grade hours friend_group\n", "0 pupil m 3.0 5 14\n", "1 teacher m NaN 6 0\n", "2 pupil w 2.0 4 12\n", "3 pupil m 2.0 4 11\n", "4 pupil m 3.0 5 6" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "np.random.seed(0)\n", "\n", "df_school = (\n", " pd.read_csv(\"example_school_data.csv\", sep=\";\")\n", " .sample(frac=1, replace=False)\n", " .reset_index(drop=True)\n", ")\n", "\n", "df_school.head()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
statusgendergradehoursfriend_group
37teacherwNaN90
38pupilw3.055
39social_workerwNaN60
40pupilw1.042
41pupilm1.041
\n", "
" ], "text/plain": [ " status gender grade hours friend_group\n", "37 teacher w NaN 9 0\n", "38 pupil w 3.0 5 5\n", "39 social_worker w NaN 6 0\n", "40 pupil w 1.0 4 2\n", "41 pupil m 1.0 4 1" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_school.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To create agents from this dataset, we can simply use the method `creator.create_agents()`.\n", "This method creates one agent object for each row in the given dataset.\n", "Each column is translated into an agent attribute with the corresponding value." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (42 objects)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "creator.create_agents(df=df_school)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The created agents are added to the model's network and thus appear in `model.agents`:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (42 objects)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.agents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's also take a look at the network graph to better understand that the agents are now in the graph of the model, but not yet connected to each other:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"271b2517-2584-46b6-8228-59bbdafd7c8f\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1001\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1002\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1003\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1010\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1011\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1008\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1033\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1050\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HEovD/Y91T+p8A8erersvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AtddpztW4b+Y01E9+ADovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"midmFkqU3j9+1oTs+3Ppvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TRdwNR7n7r+elvY8373Jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z+ilctmN6r/53ZSAQ5Lhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xlpz6bOS5L8l8T7ntPnnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TUnxgSmP6L8ric8rM6rdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"io/Vu48O5D/ouLVh6oPovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4pDhqVSY7T8svUyDh5DUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P6/C+4pP7L+/JVlKYVDWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jkzoz7M47D/AQr7LRInGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9XstrfqV3L81T+JODHXsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dLl71vNrtT8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0rUtb5+j5D+iDxsuvWTjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ICwLs8kj7z/3VQTEvJ6cPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eiRwbvr25r+w6XqJDHnfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w6Kn6SBCz7+CN6m9ISDqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VPAuW8d2yj9ZJzutYDPpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P+QovcSd3j/F7nfZ7HzsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lz0LQJfswT8/lMowWyTvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ATZeqLVoxD9Lf5x9VIjsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qdceRttg6T8UdoTnHMrkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tVfnnV+cpL//kgPtsOzuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qDUXqkmCzr92Z/+63Y7uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Cjk9xB5w2r8S44LvIoztPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1em71c7a7L8D/gJTY/Wvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hvyRO0es4j9Abi04eJvoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kHS/U39L7D897gH81G3Zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GVR7jbBht7+LJcswR+/uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OsxORO/dz7/NTU7hrqTuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PX2ico626D/zCnkFwk/kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iwXg5fFT5r9oVJbB+1fnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w6XpPFdb6j8tTAlsDEndPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OZMy3avi7D+jEXdTqw/Ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5lBbZNrF67+Fl9NvmH3NPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vN9s4YWh7r+ugbZncX21Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fATmZ8du7b/zZuVpk/TVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zKwYyUDU5z/6/wGJkQ7gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hlPHJSK65r85A/XOJXrjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZQrEGDky378WUDAVm3fpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[51,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nAwOZlRf1D/VTveFgJrtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[52,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"urOJx7ac6z+2WmZy0im1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1038\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1035\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1036\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1037\"},\"data\":{\"type\":\"map\",\"entries\":[[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1039\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1040\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1051\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1045\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1042\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1043\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1044\"},\"data\":{\"type\":\"map\",\"entries\":[[\"start\",[]],[\"end\",[]],[\"start_display\",[]],[\"end_display\",[]],[\"index_display\",[]],[\"type_display\",[]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1046\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1047\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1041\"}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1048\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1049\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1009\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1022\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1023\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1029\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1028\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1030\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1031\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1032\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1052\",\"attributes\":{\"renderers\":[{\"id\":\"p1045\"},{\"id\":\"p1038\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1017\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1018\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1019\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1020\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1012\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1013\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1014\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1015\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1016\",\"attributes\":{\"axis\":{\"id\":\"p1012\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1021\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1017\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"271b2517-2584-46b6-8228-59bbdafd7c8f\",\"roots\":{\"p1001\":\"b3445010-acf2-4efb-9b1a-2632e1d4e026\"},\"root_ids\":[\"p1001\"],\"notebook_comms_target\":\"p1053\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1001" } }, "output_type": "display_data" } ], "source": [ "inspector = p2n.NetworkInspector(model=model)\n", "inspector.plot_bipartite_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's have look at the attributes of the first agent.\n", "We can see that each cell of the first row of the given data was translated in an agent attribute with the name of the corresponding column.\n", "That was done for each row of the given data." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'_var_ignore': [],\n", " 'id': 11,\n", " 'type': 'Agent',\n", " 'log': {},\n", " 'model': Model,\n", " 'p': {},\n", " 'status': 'pupil',\n", " 'gender': 'm',\n", " 'grade': 3.0,\n", " 'hours': 5,\n", " 'friend_group': 14}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vars(model.agents[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we do not insert an agent class via the parameter `agent_class`, the default agent class of Pop2net is used to create the agent instances, but we could also use our own agent class (that inherits from `p2n.Agent`):" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (42 objects)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class MyAgent(p2n.Agent):\n", " pass\n", "\n", "\n", "model = p2n.Model()\n", "creator = p2n.Creator(model)\n", "agents = creator.create_agents(\n", " df=df_school,\n", " agent_class=MyAgent,\n", ")\n", "agents" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "__main__.MyAgent" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(agents[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For now, this is enough information on how to create agents based on micro-level data using Pop2net.\n", "\n", "
\n", "Tip: More useful options for the generation of agents based on micro-level data can be found in chapter >>>From survey participants to agents<<< (not online yet).\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The LocationDesigner\n", "\n", "To generate locations using the `Creator` class, we have to use it in combination with the `LocationDesigner` class.\n", "The `LocationDesigner` can be considered as an interface to controll the automatic generation of locations and assignment of agents to the locations by the `creator`.\n", "\n", "The `LocationDesigner` class has various attributes and methods which can be customized by the user to specify which kind of locations are created and how the agents are assigned to which location instances.\n", "The attributes and methods of the `LocationDesigner` are *read* by the `Creator` and then translated into the bipartite network of agents and locations.\n", "Here is an overview of the attributes and methods of the `LocationDesigner` class:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from __future__ import annotations # noqa: F404\n", "\n", "\n", "class MyLocation(p2n.LocationDesigner):\n", " n_agents: int | None = None\n", " overcrowding: bool | None = None\n", " only_exact_n_agents: bool = False\n", " n_locations: int | None = None\n", " recycle: bool = True\n", "\n", " def filter(self, agent: p2n.Agent) -> bool:\n", " \"\"\"Assigns only agents with certain attributes to this location.\"\"\"\n", " return True\n", "\n", " def split(self, agent: p2n.Agent) -> str | float | str | list | None:\n", " \"\"\"Creates seperated locations for each value of an agent-attribute.\"\"\"\n", " return None\n", "\n", " def bridge(self, agent: p2n.Agent) -> float | str | list | None:\n", " \"\"\"Create locations with one agent for each unique value returned.\"\"\"\n", " return None\n", "\n", " def stick_together(self, agent: p2n.Agent) -> str | float:\n", " \"\"\"Ensures that agents with a shared value on an attribute are assigned to the same\n", " location instance.\"\"\"\n", " return agent.id\n", "\n", " def weight(self, agent: p2n.Agent) -> float:\n", " \"\"\"Defines the edge weight between the agent and the location instance.\"\"\"\n", " return 1\n", "\n", " def nest(self) -> str | None:\n", " \"\"\"Ensures that the agents assigned to the same instance of this location class\n", " are also assigned to the same instance of the returned location class.\"\"\"\n", " return None\n", "\n", " def melt(self) -> list[p2n.Location] | tuple[p2n.Location]:\n", " \"\"\"Merges the agents assigned to the instances of the returned location classes\n", " into one instance of this location class.\"\"\"\n", " return []\n", "\n", " def project_weights(self, agent1: p2n.Agent, agent2: p2n.Agent) -> float:\n", " \"\"\"Calculates the edge weight between two agents that are assigned to the same location\n", " instance.\"\"\"\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating locations (and assigning agents)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by just using the default class of `LocationDesigner` without defining any further attributes or methods.\n", "Every location class defined by the user must inherit - directly or indirectly - from `p2n.LocationDesigner`.\n", "We call our first location `ClassRoom`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we use the `creator.create_locations()` to create the location instances and - and this is important - to assign the agents, which are already in the model, to the location instances:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LocationList (1 object)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "creator.create_locations(location_designers=[ClassRoom])" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "LocationList (1 object)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.locations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`creator.create_locations()` has not only created the location instances with respect to the given agent population, but has also assigned the agents to the location according to the rules specified by the location classes.\n", "We can check this by looking at the bipartite network:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"566433bf-2fce-402c-843a-be203d232f69\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1096\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1097\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1098\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1105\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1106\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1103\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1128\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1145\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UsIjYelA6D82+Auu497evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M9Pon2S+3D9snqsR20qyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5ecJCWoP3j/V5R8LaRnsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Kcb4TAiux79wPxrOiNHuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"avfibWlZtj+sVbu6pUzvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x1224ujDpT/ifaLDRHvdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XtLYYp+j2L/semEtLyrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p1WDjDnIyb9bYZWJTlDZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8chS8NYS3D/LoJwtcyHivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YiDjje99sb9W305qnITmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fKr7enln5j+8hSETu+Pmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tMFkNRQm7b9K5CotY7/Rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LQaP1ErXwj/775SUr6Tvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ws1/wd3D7j+CaZu07JC7vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LeVGkcXH479T3AUdY7Povw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PPa2+Ejh5r+U7NSCm9nmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RbL/D77R6r8a0FPZ/h/bPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sgbl2HWmub+wwNar77/nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"taJS1DOw3r8zH0CSB3/Nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gy3Ah2+65j/2mE/+2p3jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L+l2PQlibCcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+HmGAm5R478O6qr7qZLePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A8+M6P7q5z/ZqEyDeMSBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ztYdugrS678/XQcudAjhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FcPhWOog7z8B6qnKeJbGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cJGUerXLwb/4LfNwUqnvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FMlPVgum2L8jiIlUWC7svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ixh5PNal3L/RtPdbY4jsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WgrrvDLC7D9n0RcxOGjcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7v+nJRR44b8lYAC/xEjFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yT3lMJXm1r8NEddTuA7ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UyZWhxoF6L/kPOR2OKajvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"82CiE+KX4T+B7qqZNaDoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aXpt0o/L1T8LhIJTvFTdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jfZZTNvy5D9OE+HTyQPVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qw7cFgKK7r8Hlnu9KXLNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aSxqpQu+7T/UEIqRuuLVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eVgW6b7x1z9acMU9PtztPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iV+toT/eyz+p7qQbANfmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2oKAzt29zD/CWNVDqPznvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Sfm90zVz5L87pOdQb4ffvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zTnWmJ+B4D/rGHs6NiXSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qAGuu3Q9cj+MMiOTvccmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1133\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1130\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1131\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1132\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]],[\"type\",[\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"Location\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1134\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1135\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1147\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1140\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1137\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1138\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1139\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]],[\"end\",[43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1141\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1142\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1146\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1143\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1144\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1104\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1117\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1118\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1124\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1123\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1125\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1126\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1127\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1148\",\"attributes\":{\"renderers\":[{\"id\":\"p1140\"},{\"id\":\"p1133\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1112\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1113\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1114\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1115\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1107\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1108\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1109\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1110\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1111\",\"attributes\":{\"axis\":{\"id\":\"p1107\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1116\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1112\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"566433bf-2fce-402c-843a-be203d232f69\",\"roots\":{\"p1096\":\"a50e0238-e387-4d29-97f3-0f0e9ee032d2\"},\"root_ids\":[\"p1096\"],\"notebook_comms_target\":\"p1149\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1096" } }, "output_type": "display_data" } ], "source": [ "inspector = p2n.NetworkInspector(model)\n", "inspector.plot_bipartite_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The node in the center of the graph is the location.\n", "All other nodes are agents.\n", "This means that if we use the default location class without further customization, only one location instance is created to which all agents are connected.\n", "Since each agent is assigned to this one location instance, the result is a fully connected agent graph:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"8fcdb3e5-bc7c-443c-a85d-2b96a825110f\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1193\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1194\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1195\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1202\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1203\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1200\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1225\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1242\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0r4V803B778B2UHxlRnHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xaYb8RZqsL+QeMU/g3DSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qnofS+HSvL/iuuIrc+7mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XSBFs/rX4T8xcnhavWucPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c8SX6ilD77+7kdlHVnPSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YwDMHo3r2j8bUxeFrfbZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hq1QUnSSvr+rxldw/FLuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CdgGkchB2b+X6lkIXy7Fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lYHEZVdR2z812iIwzvznPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/z0iETop7T+oJGHGrh7gPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fZR6vxGc3b+1+1wVxPfuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4S+/J2g75j8rkkX7q5jVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HqFHKRAY0D9c3KE746Tuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WVpa72pHxD9knmLn4PndPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NavB3bMjsb+ba2ufvMGyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Gm/R2tja4j+rKPZ3nfzjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SKFZigpP5D+QPF020BjUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iFCUo9557z/SDNbd/O/EPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2ME6On5y0z+BxXN2onDYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pFbf1wwt5j8rUyB+OyXnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P0iE7ggV2L9f2AYtoqzVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EvHdsLsc6z+NumxaPpKsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oYp7+wfs3z98FKXcuUPrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UoK73my7xj9LLz/yGpbkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RHhl7/667b91ZDXcj7ffPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/Mwgvw8j1b/h/mdrS9ntvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"REnvRRk70j8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BwBvYi41179UIy8VLSjnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TJHrBeQi479tmTgXEfXovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yEbPH55D7z9sH70t5PPRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iHDgudtP6b8OPSwZury3vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R31RvSmk678loFDjT+Livw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+CJoTdzwv786YC/TL2rgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/Mpb71bN5L8jadSBXWKzPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M8WD46Ey6z/tStkR80vivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fcLDHgl3uD8hFEV5nIzpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a/cPODf85L8HbXb9WOrkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H+T+I3fW1r/E3IpqTCDivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NyZkLsmnzT9nk9ScirJ0vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6MWbqL675L/Lo2PoavDbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Oxum72CS5b+2LGfZvSfYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yUPRVBFeo7+WB00rbGTvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1230\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1227\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1228\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1229\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\",\"MyAgent\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1231\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1232\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1244\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1237\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1234\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1235\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1236\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,36,36,36,36,36,36,37,37,37,37,37,38,38,38,38,39,39,39,40,40,41]],[\"end\",[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,29,30,31,32,33,34,35,36,37,38,39,40,41,42,30,31,32,33,34,35,36,37,38,39,40,41,42,31,32,33,34,35,36,37,38,39,40,41,42,32,33,34,35,36,37,38,39,40,41,42,33,34,35,36,37,38,39,40,41,42,34,35,36,37,38,39,40,41,42,35,36,37,38,39,40,41,42,36,37,38,39,40,41,42,37,38,39,40,41,42,38,39,40,41,42,39,40,41,42,40,41,42,41,42,42]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1238\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1239\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1243\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1240\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1241\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1201\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1214\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1215\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1221\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1220\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1222\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1223\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1224\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1245\",\"attributes\":{\"renderers\":[{\"id\":\"p1237\"},{\"id\":\"p1230\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1209\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1210\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1211\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1212\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1204\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1205\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1206\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1207\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1208\",\"attributes\":{\"axis\":{\"id\":\"p1204\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1213\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1209\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"8fcdb3e5-bc7c-443c-a85d-2b96a825110f\",\"roots\":{\"p1193\":\"a9a074ec-2a3d-4544-b6a5-ce3db6eef4a2\"},\"root_ids\":[\"p1193\"],\"notebook_comms_target\":\"p1246\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1193" } }, "output_type": "display_data" } ], "source": [ "inspector.plot_agent_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating agents and locations in one step" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before diving into all the details of the definition of location classes, let's simplify the process of generating agents and locations.\n", "The method `create()` combines `create_agents()` and `create_locations()` into one simple method.\n", "However, note that `create()` always creates the agents based on a given dataset.\n", "If you already have a population of agents, use `create_locations()` instead. " ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(AgentList (42 objects), LocationList (1 object))" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = p2n.Model()\n", "creator = p2n.Creator(model)\n", "inspector = p2n.NetworkInspector(model)\n", "\n", "# Let the Creator create agents and locations\n", "creator.create(\n", " df=df_school,\n", " location_designers=[ClassRoom],\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method `create()` also has the convenient argument `clear`.\n", "Set this to `True` if you want to remove all existing agents and locations from the model before adding new ones to the model.\n", "This way you do not have to create a new instances of `Model`, `Creator` and `Inspector` if you want to create a completely new network.\n", "In the following, we first run `create()` with `clear` explicitly set to `False` and then with `clear` set to `True`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If `clear` is `False` (which is the default value) the new agents and locations are added to the model without removing the existing ones:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "AgentList (84 objects) LocationList (2 objects)\n" ] } ], "source": [ "creator.create(\n", " df=df_school,\n", " location_designers=[ClassRoom],\n", " clear=False,\n", ")\n", "print(model.agents, model.locations)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If `clear` is `True` only the new agents and locations remain in the model:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "AgentList (42 objects) LocationList (1 object)\n" ] } ], "source": [ "creator.create(\n", " df=df_school,\n", " location_designers=[ClassRoom],\n", " clear=True,\n", ")\n", "print(model.agents, model.locations)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The keyword `clear` is also available in `create_agents()` and `create_locations()`, where it removes either all existing agents or all existing locations from the model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting the location size\n", "\n", "In the next step, we specify the number of people in one classroom.\n", "In this example, we assume tiny classrooms of four agents.\n", "To set the number of agents per location, we need to set the class attribute `n_agents` to the desired value." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the modified `ClassRoom` to create the network:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"5224ff08-6f6d-4f4a-9048-d7b817a7ece1\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1289\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1290\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1291\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1298\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1299\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1296\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1321\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1338\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9jLgH/Jd5z/Qs/rdVlHdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4rSiw+3V6z+oVq5PNtLaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RCqForHR6j9SnQhTuY7ePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PxRdvcWZ6T86ph0O5wbWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R1pyQHD/4L+UD+qsm4/ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NiZT+bFE4L9ZXIXKDKHqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0zfR7eGe3L+di8YatlTrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K6to9kIF3L+4rSj14xvmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s0kBOa6twb+2u5XNDbbpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mTqSKCk3tr9VKaGHWHfrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zMLbTF/qyr/r8m0BaXTqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5kPFEVVPxb/z3ZmwSX7uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3nspB5Nr6D8g79C+ETnnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0j6qkEVN5z9Eku0KqhDrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YWOTmNg85D/q/ccry6Tmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vBSdddfV5z9yKj/1jf/ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D5PbHQ+42T8WFNUjifLqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Kaz8FN5v1T9tZbaZXGXrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"21WIOrZ02T9yHNEmRLTnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lNu8cNQE0z/fq8ROb1HmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oNfcofxc678gg0ap617Rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rzca/Jgw7L9gqBiiF3LOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BLEqEfiV6r/56EyZzujWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rYMjasEz6L9rTz6gsqjTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DcL/XfSN4L/5Rd4GgBDlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m/DewFgN5b8NzDMhoLzlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2xWkc6Su47+Ltiw/1HTnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iFUtf55z4b9j1VAtwoDiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OQpOEGRl5z/BPFZlGP3Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NZPt1aFE6z+v3qfQe5DPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PJi+LE3Q6z+7mIYw4abAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oq6QaV/u7D+zYYo/nRbJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PJeeM7jD679A5OJB8q/YPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QV6oGQHG679wJl2KzVfQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xxRArwcl7r9hEgH70jPVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m6RCFBWj6L/3aJ55s2jTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ur0jhzU/sT9E5umS5Qrvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HeC8Jm8IwD9hwJIuwBfrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2ZSkprgdyD+s+wSZwJ/vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2iJ3Wwzavz8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WJTlLGOM5j/Mc5UMH6nXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oO3bfRWT2L81QRVeftnnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3s5b+FEE6T/MrHAuDE7aPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z87inNIo3b8US/5U3qbovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vLKbMMmzw7//P93IONPrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Uu/V4WZg5j8TdJcr1WDovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wDwGnCQg1j+aJqc7CNvoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WEFxOJ0W6r8xNgEzC3rSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fQLIUFGl4r/JeEHgKunkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WQC11ug76j/ABkUnpCjHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[51,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rOvwBO9r678QYD8bXXDUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[52,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T+A6p0+JwD++A5p0s9jtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1326\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1323\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1324\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1325\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1327\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1328\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1340\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1333\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1330\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1331\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1332\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]],[\"end\",[43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,43,44]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1334\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1335\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1339\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1336\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1337\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1297\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1310\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1311\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1317\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1316\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1318\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1319\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1320\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1341\",\"attributes\":{\"renderers\":[{\"id\":\"p1333\"},{\"id\":\"p1326\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1305\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1306\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1307\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1308\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1300\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1301\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1302\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1303\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1304\",\"attributes\":{\"axis\":{\"id\":\"p1300\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1309\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1305\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"5224ff08-6f6d-4f4a-9048-d7b817a7ece1\",\"roots\":{\"p1289\":\"f5347297-0e06-42c1-b976-9dd24d6dc1b8\"},\"root_ids\":[\"p1289\"],\"notebook_comms_target\":\"p1342\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1289" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"4606db8d-cfda-4633-93a5-5f09c2463b3c\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1395\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1396\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1397\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1404\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1405\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1402\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1427\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1444\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bWMYuGJ84j/gUfC31zraPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zw1Yof4Y4j/laeJyTU7XPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"O0c5z6Qm4T8j9O1R5pHbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/qIXdDMS4D8nHFuG46nZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/mnTP1yFxD924TzMOuTvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"okLXuTpRwj8NeTpmm1Xtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E6nM/bXIvT9sjAPhElTuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nN92oT3byD92qfA85Xztvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nJk9RrP667/wp0dz+1XWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Cx+Ffp47b853n03CKLZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lco+aDgb77+8Ona7WZPYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ffJkPYkz7r+KYu2nj6jVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SuCqDNeo378bEWCMJ9W+Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"43QJc4sR3b/M0g7wpIm2Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aTALz2r84L+Wkhk4FiG0Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WV30s5YH37+Nx64fVD6nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uvtDppRW1L83GpCaONHuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Hx6ZGJhs0r9xpOOe/ZfsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tkEOL11Q1b+JysEwn63sPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Jgn4o6PN0L956xGRv7rtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vqS7Tm4r6b/3isMley7hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k2xFiCIK7L9oBxEe5vTiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EeabHbeI678yzdwTmV7hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ajwwJt1h6r/DufF6SSTjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dQyUjA/Q2z/////////vPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ykqtCRBK2D/KWUp6wXDtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tR+fEbKt2z/Dye700SfuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6qSlQPN72D8hAuRTT7jvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZRBtgB4h7T+v9fFVSbS2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v0z/gb2Q7z9qLhpdi9Csvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7Sotkfvf7j9MHxTI+PG6vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Yn/VYba87T/IiElTDCCkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OOT76ryZ2b/4tbb7AxPovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R0BZVAtr3r/uP2Zf1dbnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D3qwVuj42792euiyggrnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oMzp4AH03L9prOSys43pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dLuMopKh6T/cyy+rrCvkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"om6wOE6A6T+cq2FU9d/lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KBOy4Jm05z/8XAfLR1Llvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Pe9x3uid5z9g0KRr+4bjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"njJHB9eq4D9shjdTnf/WPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xIFf6+uXxj94dk7HV3/uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1432\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1429\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1430\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1431\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1433\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1434\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1446\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1439\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1436\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1437\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1438\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,2,2,2,3,3,4,5,5,5,5,6,6,6,7,7,8,9,9,9,10,10,11,13,13,13,14,14,15,17,17,17,18,18,19,21,21,21,22,22,23,25,25,25,26,26,27,29,29,29,30,30,31,33,33,33,34,34,35,37,37,37,38,38,39]],[\"end\",[2,3,4,41,3,4,41,4,41,41,6,7,8,42,7,8,42,8,42,42,10,11,12,11,12,12,16,14,15,16,15,16,18,19,20,19,20,20,24,22,23,24,23,24,26,27,28,27,28,28,32,30,31,32,31,32,34,35,36,35,36,36,40,38,39,40,39,40]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1440\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1441\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1445\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1442\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1443\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1403\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1416\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1417\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1423\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1422\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1424\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1425\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1426\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1447\",\"attributes\":{\"renderers\":[{\"id\":\"p1439\"},{\"id\":\"p1432\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1411\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1412\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1413\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1414\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1406\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1407\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1408\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1409\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1410\",\"attributes\":{\"axis\":{\"id\":\"p1406\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1415\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1411\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"4606db8d-cfda-4633-93a5-5f09c2463b3c\",\"roots\":{\"p1395\":\"a26d92ac-623f-449b-8237-e6f945d7da75\"},\"root_ids\":[\"p1395\"],\"notebook_comms_target\":\"p1448\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1395" } }, "output_type": "display_data" } ], "source": [ "model = p2n.Model()\n", "creator = p2n.Creator(model)\n", "inspector = p2n.NetworkInspector(model)\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom])\n", "\n", "inspector.plot_networks()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The network diagrams above now show multiple clusters.\n", "Each cluster represents one classroom.\n", "If we set a specific size for a location, the Creator creates as many location instances with that size as needed.\n", "The agents are then assigned randomly to one of these location instances.\n", "As you can see, some classrooms have have more than four members because the number of agents assigned to classrooms cannot be divided exactly by the desired number of four.\n", "\n", "The `overcrowding` attribute determines how the number of required locations is rounded.\n", "By default, `overcrowding` is set to `None` which means that the number of required locations is either rounded up or rounded down using `round`.\n", "Below we change `overcrowding` to `False` to create one more location instance to avoid *overcrowding* the classrooms." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"3d108a3f-a217-4294-8e61-aff56da87e47\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1491\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1492\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1493\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1500\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1501\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1498\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1523\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1540\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[53,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ufGM6Z+Y6L9wzzQbZlG9Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[54,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jKy/LJE97r9ktWSIE9XCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[55,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ONvHlSs267/lJ/ovLdqnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[56,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jzvdmc197r/Q6BILgre0Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[57,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZuYkYwS+xj92hujSyWDqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[58,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k9sW9OHbzD+ce6qNNSTtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[59,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ap/X/BNB0j82CGddmPHrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[60,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tBDhobgy1D86VCOSl4HqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[61,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JqPHluCBkD8n5pmwlm3JPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[62,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JY7Dnpaum7+73CVnbI2xPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[63,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+ZaPhBFWrj/zZn7Y2j+9Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[64,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r4XFjVPNsb+4WPq2i7HEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[65,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E/4m9gpZ6D+fmZJ+3abhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[66,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c/4cau/25D97ZMCuPtnhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[67,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WwoMYKEW5D9QUG9R6KTdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[68,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CEFOTvTV5j94S2ZD2CLcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[69,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/fNGicKg5z+egoaY+mTkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[70,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PNc7dJt+5T9Br2Yn1z7kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[71,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ff+eAvbA6D/AKkG+zczivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[72,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KqmJdbb65z9AA+EWR83gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[73,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"C6iNfwsJ7z+DNEkem817vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[74,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W306rjRv6T8ZoKZfq4mgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[75,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qkN+CMAB7D9aa4enqDG4Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[76,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"I1tygyh77z+yBf9devutPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[77,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rwxzGVSmzT92g03UG3Psvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[78,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3MgQASSyyj8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[79,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uFYCTRWCzz841j/kJXLrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[80,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AUQJtcVKwD9tZBPQIkXtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[81,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3cCZjFCx4r8QyduDlQ3ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[82,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YwGBUaax4b+yZnJ9z5/mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[83,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3LHvY8M24b9+qeAmrYHqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[84,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"u1YIx/mJ3b9llcxh+srpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[85,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Fk2gK4Ti1b+DBHm9yRDevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[86,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dCFWFiDn3r86q/jzFt7dvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[87,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QmQmbHOk278USsbqf1DZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[88,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"INCL2qRx2r99N28CFtbgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[89,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"es/XN9w85r8aHz5agAPiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[90,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x1ytCtk94r8kZ3dYu2fjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[91,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0FL21swQ4r9xid1L9d/fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[92,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rHhfgrGh5L+iVZOGPY3jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[93,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AbaSbSub4r/ySchj5iXtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[94,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nIDEvJRx4L8rXXwLfrXtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[95,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"h7/nUI3j678p1yPBox+7Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[96,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gSaGsKsRzz/OI0fOM4HqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[97,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Vkhzf8Fer/OBHTnXSLBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[98,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4elFAVId5j9bs/stsRbgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[99,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pEWMdFAl5j9gJd2/zxLivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[100,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hxW6IpLH7D/6YSl42OWiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[101,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OpN8eZ8ByT9/Km3nslvtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[102,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p+0wnYh64L9+5hH6oj7ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[103,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zVWQDfAd2r+GnkzZs0jdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[104,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OLcQlRqX47+PoYtDHbnhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[105,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8VocROjM4L8BNUVAS1HrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1528\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1525\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1526\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1527\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1529\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1530\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1542\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1535\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1532\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1533\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1534\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94]],[\"end\",[95,95,95,95,96,96,96,96,97,97,97,97,98,98,98,98,99,99,99,99,100,100,100,100,101,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,105,105]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1536\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1537\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1541\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1538\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1539\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1499\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1512\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1513\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1519\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1518\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1520\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1521\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1522\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1543\",\"attributes\":{\"renderers\":[{\"id\":\"p1535\"},{\"id\":\"p1528\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1507\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1508\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1509\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1510\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1502\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1503\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1504\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1505\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1506\",\"attributes\":{\"axis\":{\"id\":\"p1502\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1511\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1507\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"3d108a3f-a217-4294-8e61-aff56da87e47\",\"roots\":{\"p1491\":\"e3f836ea-cd42-42d2-a932-c7fc4badfffc\"},\"root_ids\":[\"p1491\"],\"notebook_comms_target\":\"p1544\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1491" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", " overcrowding = False\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_bipartite_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot above shows that there is now is no class room that has more than 4 members.\n", "However, now there is a class room which only has two members.\n", "We could also set `overcrowding` to `True` to always round down the number of necessary location instances.\n", "\n", "If we do not want locations that are either overcrowded or undercrowded but only locations that have exactly the size we defined, we could use the attribute `only_exact_n_agents` to `True`:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"944a4e54-0ec7-4470-9ddc-d1414238c540\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1598\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1599\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1600\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1607\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1608\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1605\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1630\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1647\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[106,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"19gf6eFtxr/Fp4PG1wvkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[107,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Xtrv9b5T078qqmRIbqzlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[108,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Mrj6dZ2zz7/mDF9sSynnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[109,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SYbX06Nw0L8O7VEbtLvivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[110,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cX/l8+pO0L/xTSF1yZTtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[111,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b0ZUKHYhxr/+2cKgUDXqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[112,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NcLylKKwzr/1hADZ/uXoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[113,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/S4CJ9JG079V3ysIm43qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[114,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WCzP68RG5L+Vcy8ScHfiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[115,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/gYb1kvN5L+Bn37nlFjdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[116,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"65KM3G/V5b9aXKpNRijhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[117,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iKonc0234L8u5FEShLrcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[118,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1ncUm+Ec7T9Wz8txkzDHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[119,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j7kKuE975z+tAV0qspO7Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[120,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"54mSs9kN7T+E9Mkycve9Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[121,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"io8S6wKu6j/w/gflgaTKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[122,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t2sp8ZSV1j/nUX83ABnrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[123,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cGImGE4S1D/TYjRimxftPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[124,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SF1eSaKezz9nc2mGUezqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[125,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CTz6Sv8HzD9No8J3rnrsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[126,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uR488nPU4z+cjueSB7LqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[127,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PbTH0C5w0L/////////vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[128,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pMUaSPYa7T9fib0Obybcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[129,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wy/UMK4F7T/O08qUpRLYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[130,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nvgx0qSx5z+JaQUmfZfVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[131,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vgQrUZxU6z+Scy0E3gnevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[132,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m2uwW8aa6b88najEvt7gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[133,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4svvRA4x5r/3Xyg3TQzgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[134,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oPlWdehl6r+W6BAq3efdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[135,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YA/cKDUI5b9i/RoezEPavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[136,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZMkbkq1v5r9L0jPaFViEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[137,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RVkGU6+t5r9bb8j/O0utPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[138,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OZxMuKSj4r9g5CzvE0GHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[139,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TBS9dGhy479QQyJ8viK1Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[140,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qi5osrNKxD8qLW1dOJbrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[141,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XklDzcOpvT9ZCu10oensvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[142,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uzJ/YMhgrz9cdoCcZEjtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[143,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iR7MaVdoqj83RVfeVbTnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[144,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"USH9OdLZ1j+jpDz/PHOnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[145,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T/jLofeU2j+ddTvon9WZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[146,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gxY+z6su0j947pRaXYOSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[147,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A4dylglS1j/hnTYHGX+2Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[148,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CPCEuuy66j+9k3fiFlDZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[149,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mgKKTI7K57+ewubLzuPdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[150,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kauZHohR5L9Nh2Vp9wmbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[151,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T8rGAJJgtj/LjuILHM7qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[152,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YxqIFL5Q1j+VELwUayaVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[153,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rxOo4HF4zr9lTx+Q4Krkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[154,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QzJ5Ix1zzr+Jiz6gVObqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[155,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qrzQqvFl478AAX1TfBTgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[156,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"92OeEbet6j+ocZng4lvCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[157,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Pb9+LqxN0j96PJUaM6rrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1635\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1632\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1633\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1634\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1636\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1637\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1649\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1642\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1639\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1640\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1641\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147]],[\"end\",[153,153,153,153,154,154,154,154,155,155,155,155,156,156,156,156,157,157,157,157,148,148,148,148,149,149,149,149,150,150,150,150,151,151,151,151,152,152,152,152]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1643\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1644\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1648\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1645\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1646\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1606\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1619\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1620\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1626\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1625\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1627\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1628\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1629\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1650\",\"attributes\":{\"renderers\":[{\"id\":\"p1642\"},{\"id\":\"p1635\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1614\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1615\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1616\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1617\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1609\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1610\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1611\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1612\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1613\",\"attributes\":{\"axis\":{\"id\":\"p1609\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1618\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1614\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"944a4e54-0ec7-4470-9ddc-d1414238c540\",\"roots\":{\"p1598\":\"f9d7ef50-4cb5-483f-a29d-bf708929a6c2\"},\"root_ids\":[\"p1598\"],\"notebook_comms_target\":\"p1651\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1598" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", " only_exact_n_agents = True\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_bipartite_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a consequence, two agents are not assigned to any location." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining the number of locations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The attribute `n_agents` implicitly changes the number of the created locations.\n", "Using the attribute `n_locations`, you can also set the number of locations explicitly:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"0535cb3e-9b85-47ac-a94b-b43b2c1596ef\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1704\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1705\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1706\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1713\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1714\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1711\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1736\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1753\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[158,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wlWhfq9f3L9SMZ7b94PPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[159,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Sw6WUyHp2b9zEVTQlrPVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[160,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PyBa7lDE4L96/L78rXPSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[161,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FPnBjty23793XoPq9HvXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[162,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r72JSk8u2D++ikVWicPgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[163,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uICQGX9X1z/QetzNBO7kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[164,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yuHDEkHq0j8VdbeJWsziPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[165,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qp9e2bwt2z/aai8esTvjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[166,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Mf39aZf34T/AQMc/KkHVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[167,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o7cqpXJH4z9hJCv0z7bQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[168,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"muFUuxP/4D89x/185k3Kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[169,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nfH3G3tq3j9KJnM0uJ3Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[170,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SRni6DP6079o/+aE41rsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[171,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"McVxWBOH078DHDYiA5vpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[172,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vcyRhrMZyb+WFudSuDHrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[173,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L/Yx0hUZ0L8EBMxBXUHtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[174,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T7+WSbFD5z9OGUFNzDjnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[175,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wnVnalOW5z/z/ZczGe7jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[176,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rbdOe6QV6z8d93Q3qrrUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[177,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nPCx2AmB5L8lT/9KCuznvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[178,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3cGLarPM5b/CdexjcXThvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[179,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W7/8FDzd7L/nMdhDjlrVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[180,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x08b4NnH6b9mGrTuiErkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[181,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rbHJumNT4T9nTqa39bjovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[182,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZLqEP88L7z8ZcmZnlNO/Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[183,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W3+MwBIhzL9J35ZC/8TrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[184,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kPqkGmxN7b870PxN1He9Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[185,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mq0T/V236r+4bqvyqTPhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[186,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GeR5KcMduz+aJJCMBqLuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[187,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RlGOUU9J7j+nSQVrZrq9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[188,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qSxRwf30678KDJ52XKTVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[189,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5xoJAujh6T8sBTosWtjcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[190,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a+Cl7Yxv0T/rRhrTidzsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[191,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ByY/ygjdwj8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[192,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p+/iT9i12D90ZXwIHmDpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[193,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jzogH2Pv3D+9HV43XyLsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[194,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j1q/ghgf678hWoFVxATIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[195,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"URW+4h/n7T832euEoXfWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[196,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lvwyIFXZ77+K+YFJnH2uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[197,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0KRKHZe74r/dLjxo4fDrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[198,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4zGxolPSir+5JcBqrYXsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[199,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Du1rov8M3L+9VILZwXjpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[200,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Isdqw9y3b+35jjFVqrTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[201,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZAVph3X41j/dl9YiR6riPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[202,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TqMGGU0d4T9dKMPb8TLRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[203,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ITYUBMZt0L9I5AXapcPqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1741\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1738\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1739\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1740\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1742\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1743\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1755\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1748\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1745\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1746\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1747\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173]],[\"end\",[200,200,200,200,201,201,201,201,202,202,202,202,203,203,203,203]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1749\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1750\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1754\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1751\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1752\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1712\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1725\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1726\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1732\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1731\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1733\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1734\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1735\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1756\",\"attributes\":{\"renderers\":[{\"id\":\"p1748\"},{\"id\":\"p1741\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1720\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1721\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1722\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1723\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1715\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1716\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1717\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1718\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1719\",\"attributes\":{\"axis\":{\"id\":\"p1715\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1724\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1720\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"0535cb3e-9b85-47ac-a94b-b43b2c1596ef\",\"roots\":{\"p1704\":\"a01b1a5e-36d1-4df5-9134-840b88920e4d\"},\"root_ids\":[\"p1704\"],\"notebook_comms_target\":\"p1757\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1704" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", " n_locations = 4\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_bipartite_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While in the example above four classrooms with the defined size of `n_agents = 4` are created, in the example below `n_agents` is not set explicitly:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"0b84fafe-eb54-4c67-907a-247f09b1fffc\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1804\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1805\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1806\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1813\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1814\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1811\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1836\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1853\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[204,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HkGJzh5P6z9rDU6wqrvnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[205,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XhsTM6ny7T+Di+9JUWDlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[206,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"I+mlxLmO6j/A0nB42IrfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[207,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q3zlRqV15z9RSlGK0bblPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[208,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9KeLq50d6T+uigPQq03nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[209,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ByeJt7uL6D+spmcSXSfhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[210,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AHlFwvSP7T/OIqp7ZlvnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[211,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"10kUrRxy7j/tNmnrSsXhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[212,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kOT07MIt5z+Hh7mltFfjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[213,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WMEHjYxH7z+zIkNmQtbjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[214,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oL7drxzG2T8nqIRL9frjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[215,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MWmyuwy64T+uSagziVfnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[216,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j8MNLAS41T/QsBOaGmjlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[217,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/1HK7Dob4D+j9GK2XQzrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[218,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D0PaUbvG1D+aGaoyPZ3pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[219,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8wXY9RL54D9a86Jh0DTlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[220,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xLGOyxd14T+uz8/tK3vpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[221,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zmDwpGU93D+unn/wwpXrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[222,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"alioPJZd3j/rlaB4Y7njvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[223,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e/tZPKti0z8xNqeszGXnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[224,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pMW0kFDw6b9XS50dMrTrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[225,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HfqBFig17r+dcCTCi+Pqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[226,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Shy70Og7b8rECStQQrnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[227,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gcc7HhiD6b9D7mBvHeTkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[228,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gJQ45jYa6L/Ixbmqkifqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[229,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2ijC+Z0y7L8Nz9+ysNXrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[230,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CUJXcZtv779xpSP7fObovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[231,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9QAvdrzD7r80E44AT2rlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[232,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"djgpDaKm579d4ykE32nnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[233,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZtEL5UIm7L/yVbaWHSTkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[234,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b6rVGilV4L8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[235,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bC54A10b37/0TGy0EjDoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[236,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9lFP1bCd4r8V9Otg8KzoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[237,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TlDR+QwD5b8bqpvflYrsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[238,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L0SrsGOC5L8Ey7umNUTqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[239,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P8PKxi6H2r9iP7RN6efsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[240,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QuTAgzFz3L+qXvLc1LLuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[241,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2WgpTnh03L9+TU5MA63qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[242,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GTLLYCeI4r/EEvoGzNTvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[243,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"I401heNO5L8vTrIwoJ/uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[244,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/NfBNW3i7D9QRDHG8zTgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[245,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YU2tNyEV2D/Gz1JXfCjrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[246,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qz5o4ZvI6j+Xy51OL53jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[247,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cRQODNJG2z99YL1jElznvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[248,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/o3hAUwK67//Y9LJb9Pnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[249,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cDklY/Xv4L+cH3pnQO3rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1841\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1838\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1839\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1840\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1842\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1843\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1855\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1848\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1845\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1846\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1847\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245]],[\"end\",[246,246,246,246,246,246,246,246,246,246,247,247,247,247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248,248,249,249,249,249,249,249,249,249,249,249,246,247]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1849\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1850\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1854\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1851\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1852\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1812\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1825\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1826\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1832\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1831\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1833\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1834\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1835\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1856\",\"attributes\":{\"renderers\":[{\"id\":\"p1848\"},{\"id\":\"p1841\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1820\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1821\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1822\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1823\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1815\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1816\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1817\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1818\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1819\",\"attributes\":{\"axis\":{\"id\":\"p1815\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1824\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1820\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"0b84fafe-eb54-4c67-907a-247f09b1fffc\",\"roots\":{\"p1804\":\"c35cc07f-c199-4cfa-8b10-a2ec5a5916c9\"},\"root_ids\":[\"p1804\"],\"notebook_comms_target\":\"p1857\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1804" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_locations = 4\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_bipartite_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Specifying location visitors\n", "\n", "The classrooms above are made of all agents.\n", "But in many cases we want specific locations to be exclusively accessible to certain agents.\n", "For this scenario the method `filter()` exists.\n", "If this method returns `True`, an agent gets assigned to an instance of this location class.\n", "The most common way to use this method is to specify a condition that requires a certain agent attribute to contain a certain value.\n", "\n", "In this example we want classrooms to be only accessible for pupils." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"435c2c4e-23bb-4e85-8e70-6fd03c37b30f\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1904\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1905\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1906\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1913\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1914\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1911\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p1936\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p1953\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[250,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kh/MeHmH6b+gr0YSW56UPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[251,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EIkd4rwksT8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[252,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7xO6rG5Q1j/Yql9A6mXmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[253,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HN2BzTcg3j+im7iM7ujpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[254,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9CJsUt2g2z94pbZJjmnmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[255,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FkhBFuMw2j/0QlMR60Prvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[256,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2lQgxj+U3b9Mz7Md0EXjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[257,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SFHIiwxC4b+it3rVpznoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[258,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wtlXOmdt77+FWSptugXhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[259,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ElsPMccG4r/uBmsmb8PjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[260,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OYLl1a43478w+0Y4KibnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[261,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lM8BK1xyzD9eLM5PVcOpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[262,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TxY8Z8OT4j/pBbeGq8TuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[263,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hFxFhJP6wj+nMV1uy7yxvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[264,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VKyOVk/p7r943COpNs+/vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[265,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pGdydYdA4791fOlDr7Xtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[266,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3xGzCLnLvz/2hWmCltCgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[267,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ruF2d678zj8VYgMmoIimvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[268,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GNVxyWtA7z9bItJQAezYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[269,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Jr+jwDGkzL+aq4hFyLHuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[270,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"01uPrA0F5z/L73FL0NDbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[271,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vUQduc6t5z9C7CnhYaLiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[272,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uMHX7zlJ6T/ac623MvLgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[273,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4zyasMYu7r+lEeQXjf/ePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[274,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Wv+8xPBZ5D80cvUgKnXdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[275,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IsNu6jjq6T/yPbXklW7Fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[276,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LftcsL4Q7D/EWBo6YV3Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[277,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Vu1bws+T7z/rXkJO2MDFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[278,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m9iqZoCO7z8/VjMVd7HOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[279,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bnZxDhDM47/cQsW1qr7ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[280,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c9NQDy62479ONaB8zObfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[281,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"psr84Bcc4b/OAOhkjzrjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[282,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TOOAfUi137+TrLXqKzjfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[283,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bxeu4YIXqr8Q/QahTtHrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[284,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nmCNXuIoqL/NZ/OJDGbuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[285,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y7NUMVLosT9ZMZAML/vtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[286,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5tI9fdtRkT/AsweLiXjvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[287,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gV8Dn1dw6z8QP4OPfyrnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[288,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y+/mZNMd6r8UBr25H6S8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[289,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y9Q9DRuv4r98CYGLlMHqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[290,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g95yc4gZ578gizuAQQLBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[291,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7jga8Hsy579LKlcJLnaOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[292,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KeY0/ZX64L/S7w6ae5DlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[293,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r9YwbxEwxz+fL2+vRj1+vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[294,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G7ue5lHc5j84QU9ujx7gPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[295,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Dl2QksQ7T8DYDnbnGjJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[296,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OdD6zeO54b8ONqQEHf/gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[297,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z7MkXhqycD/ZuuSN5pnsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[298,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iszKkm0T6L8SIYyUMHWyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[299,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LYHfMdMX2j+qKTFn3oXovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1941\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1938\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1939\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1940\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1942\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1943\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p1955\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1948\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1945\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1946\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1947\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[250,252,253,254,255,256,257,259,260,261,263,266,267,270,271,272,274,275,276,277,278,279,280,281,282,283,284,285,286,288,290,291]],[\"end\",[298,299,299,299,299,292,292,292,292,293,293,293,293,294,294,294,294,295,295,295,295,296,296,296,296,297,297,297,297,298,298,298]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1949\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1950\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p1954\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1951\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p1952\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1912\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1925\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1926\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p1932\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p1931\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1933\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1934\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1935\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p1956\",\"attributes\":{\"renderers\":[{\"id\":\"p1948\"},{\"id\":\"p1941\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1920\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1921\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1922\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1923\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1915\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1916\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1917\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1918\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1919\",\"attributes\":{\"axis\":{\"id\":\"p1915\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1924\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1920\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"435c2c4e-23bb-4e85-8e70-6fd03c37b30f\",\"roots\":{\"p1904\":\"c73407ae-f824-47b3-b809-b6fbf2abf108\"},\"root_ids\":[\"p1904\"],\"notebook_comms_target\":\"p1957\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1904" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_bipartite_network(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now classrooms consist only of pupils, while all other agents do not belong to any location." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Building separated locations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Currently, classrooms are not separated by grade.\n", "To seperate agents by grade, we could define one location class for each grade and use `filter()` to assign only agents with a specific grade value to a specific location.\n", "\n", "A more convenient way to do it is to use the method `split()`.\n", "For each agent, the method `split()` returns one value.\n", "For each unique value, seperated location instances are created.\n", "In this case, the method `split()` returns the attribute `grade` for each agents.\n", "Thus, the Creator builds seperate classroom instances for each unique value of the agent attribute `grade`." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"888b44bf-cda3-44d8-93ab-b7de4adcf5c8\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2008\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2009\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2010\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2017\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2018\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2015\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2040\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2057\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[300,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M4Q8KuN22T8PYP8lDW7qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[301,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BJ1ygMQx7z8n5s8tdETKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[302,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/VxFt8iL0D/kfSoy9uvfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[303,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IhnlRSOD1T+pA/cEOfriPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[304,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Xrs28mXr2z/y3M+Snvrovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[305,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"na0SrVNG0j+ANsqEInjkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[306,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W3HZUxC01T+h0pRRDAPqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[307,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VdaRZuUb2b9R6D8KXTThvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[308,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vWEC6UGcl78AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[309,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NSb6KOpg379HR/s8+mrjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[310,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SHH0dOp82L/iOzkzOLnkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[311,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"F14rZub95r+RLjH5OvjMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[312,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sDUCEi0t6T+uWWdeuODMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[313,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kXH75DnD6b8YwiKakArVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[314,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L2KxzRaK6L97TTwNFZzlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[315,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6hkXo5f65j+OE+Rqvwzkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[316,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Rv3dibsh4T+XiaKP2JzGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[317,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"umjGeOaR578kUHrodoPTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[318,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3sjDwjSe5z9NIvzij0XnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[319,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QbiBIYc+o79IDLUTo2/vPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[320,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HBlMRf3p1T+JmXu+y7Xlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[321,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8iJdKj4I6b9voTWsal/HPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[322,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SRXjb5m14T9wVjsiO6jYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[323,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Rx8J52H347+pGRfAY+DkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[324,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SEdxn/W95b+o/PqDYx/MPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[325,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YXIpwxfM6r9J2NbB/lfPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[326,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9SpTeZ2a6b9UXy0udgfTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[327,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EV6iU2Bw5D9LsDrKQjTTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[328,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lfdhj6rs4z9MAN3BzNHMPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[329,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M+MjvkBjy7+0z01ILWblPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[330,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t5RZrEBN4T+7mTF7KcPSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[331,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7KyJ9PSC5T/hYr/iG/fFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[332,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7DAeq7Ko4j8TUKgcDOO6Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[333,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PhLslMWW5D/uyiYuDB7Yvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[334,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yWC/eeH1yj/LZSxxdSHiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[335,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FMzT6CFi07+sVULNq4joPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[336,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yN9t3uGCz78L6ehmSLnpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[337,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hGDjHJNw0T8YcIJA/1XtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[338,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zRmZXzdl3b/W+ap4Donlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[339,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OOvGsyYpjr/EszVZBUnrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[340,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cKb+P/ai078lBis+H1DmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[341,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5AuCLkef678uxsYjypbRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[342,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5SqipT/K1z+BH5DSFPvnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[343,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1CqCJJlF278waDeQB1Tjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[344,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"txd/tgyt4j/+0ZdHLj7Vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[345,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SVUp4Xlq0T/B8ewQqiHiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[346,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hMkQJvFV0L9+lxQ3M1TnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[347,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Sw59EQgg6b+dohSL0m7Rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[348,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LkXLyKxW6L8szvmRfHLOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[349,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yVkc6mMW4z+qZlpDxSXFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2045\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2042\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2043\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2044\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"grade\",[3.0,{\"type\":\"number\",\"value\":\"nan\"},2.0,2.0,3.0,2.0,3.0,3.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,3.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},4.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},3.0,4.0,2.0,{\"type\":\"number\",\"value\":\"nan\"},4.0,4.0,4.0,2.0,4.0,1.0,2.0,4.0,4.0,2.0,2.0,1.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,1.0,null,null,null,null,null,null,null,null]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#ff7f0e\",\"#c5b0d5\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#ff9896\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#d62728\",\"#1f77b4\",\"#9467bd\",\"#c49c94\",\"#ffbb78\",\"#1f77b4\",\"#f7b6d2\",\"#e377c2\",\"#ff7f0e\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#ffbb78\",\"#ffbb78\",\"#ffbb78\",\"#aec7e8\",\"#ffbb78\",\"#1f77b4\",\"#aec7e8\",\"#ffbb78\",\"#ffbb78\",\"#aec7e8\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#2ca02c\",\"#ff7f0e\",\"#98df8a\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"grade_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2046\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2047\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2059\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2052\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2049\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2050\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2051\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[300,302,303,304,305,306,307,309,310,311,313,316,317,320,321,322,324,325,326,327,328,329,330,331,332,333,334,335,336,338,340,341]],[\"end\",[342,345,345,342,345,342,343,343,343,347,347,349,347,342,348,344,348,348,348,344,349,346,344,349,349,344,345,346,346,343,346,347]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"grade_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2053\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2054\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2058\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2055\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2056\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2016\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2029\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2030\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2036\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2035\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2037\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2038\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2039\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2060\",\"attributes\":{\"renderers\":[{\"id\":\"p2052\"},{\"id\":\"p2045\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
grade:@grade
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2024\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2025\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2026\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2027\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2019\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2020\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2021\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2022\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2023\",\"attributes\":{\"axis\":{\"id\":\"p2019\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2028\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2024\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"888b44bf-cda3-44d8-93ab-b7de4adcf5c8\",\"roots\":{\"p2008\":\"eba2162f-43d0-439a-83f4-80c5a86e0462\"},\"root_ids\":[\"p2008\"],\"notebook_comms_target\":\"p2061\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2008" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"628d85be-9815-47b2-832a-fe72334e4434\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2112\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2113\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2114\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2121\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2122\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2119\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2144\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2161\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[300,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pxAq+Dnkob+SXJPWpMXHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[301,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Fg+mkTcU7b9rynj+V0rcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[302,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s7kRjbzv5L8Hs6ce2+60vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[303,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"84uKfbRy5b+hHz5ew7SWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[304,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c2B/W8bLor8tOqYFIy3CPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[305,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cbyC1RJW5L/lHaLOA7Smvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[306,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TR7NNE0RfT9acjOl9dnBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[307,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UfianvMH4z+MbATKxt7iPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[308,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l8UvujpX7b/6meqIWeytvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[309,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+3u7NgLH4j+dQe0EgNrgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[310,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rVXDjboN5D+K6o7N4urhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[311,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ufYKoPFT2L9uYSNCiOfivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[312,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D+4H+Ixc5XIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[313,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lgptE+X22b8AC5X1chvhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[314,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"C/OjehVz7D/o5FVJq4Pivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[315,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3+ixMmWR67+t2jLJ0PLavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[316,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qa4eNPQu47+yX7xCVkbkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[317,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3Vx55gh0179V6B50Kqbhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[318,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o9e/uHh40b98HuyMcNzqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[319,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bcrrIaS24T8E9pXKPBjqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[320,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ODdB+Jv5gz9Cz0N3X5fHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[321,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y041hCIfpb/8Y5Ly5YTrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[322,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5TBCiMz3wj/BMC9QlJTovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[323,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QPBtfAko0j8U5/mRup7uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[324,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i8cp5KQmsb9LGJN0+w3qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[325,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aNrTS7QVsr+thei18pTsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[326,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8ue4VILluL8xkeg1e3XrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[327,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XCK5UcWftj8qMpLnYk/ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[328,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rL7DWKuG5L+u+yOor5vkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[329,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FSMrx5pV5j9gMpmoIsLgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[330,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1kVWMkFzvT9pns4nrobpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[331,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AKUA/7m+5L9fCyBmSkLjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[332,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PiMkmT8j4789JJMBSrLiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[333,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3wwjW+Qgvz9nNhzNpF/nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[334,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yjenHOtf5r8EDNw5/qSuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[335,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8n5oteJq5T+nR/T96/7evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[336,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ogz12PBG5D/k2smHv0bgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[337,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2GYJpWFc6j/Pf4l+0yvIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[338,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ROVLEFEJ4j/cl4QQkAviPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[339,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rPg9hEe07j8Dc5db9qO+Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[340,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+mjnZ6UR5T9NdyIVBnLhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[341,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7qDFqnkk278liDymQZPivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2149\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2146\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2147\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2148\"},\"data\":{\"type\":\"map\",\"entries\":[[\"grade\",[3.0,{\"type\":\"number\",\"value\":\"nan\"},2.0,2.0,3.0,2.0,3.0,3.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,3.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},4.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},3.0,4.0,2.0,{\"type\":\"number\",\"value\":\"nan\"},4.0,4.0,4.0,2.0,4.0,1.0,2.0,4.0,4.0,2.0,2.0,1.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,1.0]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#ff7f0e\",\"#c5b0d5\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#ff9896\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#d62728\",\"#1f77b4\",\"#9467bd\",\"#c49c94\",\"#ffbb78\",\"#1f77b4\",\"#f7b6d2\",\"#e377c2\",\"#ff7f0e\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#ffbb78\",\"#ffbb78\",\"#ffbb78\",\"#aec7e8\",\"#ffbb78\",\"#1f77b4\",\"#aec7e8\",\"#ffbb78\",\"#ffbb78\",\"#aec7e8\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#2ca02c\",\"#ff7f0e\",\"#98df8a\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"grade_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2150\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2151\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2163\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2156\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2153\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2154\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2155\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[300,300,300,302,302,302,303,303,304,304,305,306,307,307,307,309,309,310,311,311,311,313,313,316,316,316,317,321,321,321,322,322,322,324,324,325,327,327,328,328,329,329,329,330,331,335,335,336]],[\"end\",[320,304,306,334,305,303,334,305,320,306,334,320,338,309,310,338,310,338,313,317,341,317,341,328,331,332,341,324,325,326,333,330,327,325,326,326,333,330,331,332,336,340,335,333,332,336,340,340]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"grade_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2157\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2158\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2162\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2159\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2160\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2120\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2133\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2134\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2140\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2139\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2141\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2142\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2143\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2164\",\"attributes\":{\"renderers\":[{\"id\":\"p2156\"},{\"id\":\"p2149\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
grade:@grade
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2128\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2129\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2130\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2131\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2123\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2124\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2125\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2126\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2127\",\"attributes\":{\"axis\":{\"id\":\"p2123\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2132\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2128\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"628d85be-9815-47b2-832a-fe72334e4434\",\"roots\":{\"p2112\":\"cc639d2f-07bb-4636-88a3-cf71083822db\"},\"root_ids\":[\"p2112\"],\"notebook_comms_target\":\"p2165\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2112" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"grade\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Keeping agents together\n", "\n", "In the following plot the nodes are colored by their attribute `friend_group`.\n", "It shows that the members of friend groups are distributed over different classrooms." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"b46de916-7948-453c-8974-92e1a1e7a146\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2208\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2209\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2210\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2217\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2218\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2215\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2240\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2257\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[350,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y1DZnM3M5D/k2YdktGncPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[351,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g5i4bBR86T/uFj6u9k/hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[352,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3hV7MV4g6r9svUZjkfHQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[353,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OOEP6HL36b91Cgh9IcjCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[354,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gMmas6SM4b9W8izHrcTbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[355,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CivRq21F5r+a72Ru0X/Ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[356,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hoeSd8mO5b8OwoCBwcLaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[357,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0NqVy9YU47+rwSJYsPfVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[358,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9rwNM1QR1r+WH0aIjdXuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[359,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RfVERTsZ5D+pTdUNEFbXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[360,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lHLNuBH76D86lzaJaVfaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[361,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dYq63EYbxz/HNJmcZLXlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[362,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CE6YqlKs6L/JVXg3Q0bevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[363,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Oh53v+Q50D9Kg+UMgDjqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[364,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D+S5T2mjOCYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[365,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NVBcSr0mv7/b3Tmhb/3rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[366,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z++m9KElfr9UDCkFHujsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[367,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y7z053iMyj9oeDbGvJHrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[368,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pE6ZB6pO5T/rfWYZYpLnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[369,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qeTcKmuX5T9j8CBe53bnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[370,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PtVC8oxk6D+hm9AKmEDePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[371,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4ZaqEjvLjj+V5rNiUNvovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[372,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Luut+htC5z/GK+dPK2TJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[373,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hR2wjaas7r+j3/oBmI/UPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[374,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gte3RJ/0tz+l3xokm4Hqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[375,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"koc77eyLrz++pTwN+cHtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[376,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"erjgTp8g0r+6n7KjFBCgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[377,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mc/+n1b25D90qdNpak7Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[378,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"irERf5ES1b/7wQ/jLWLDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[379,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TnL4m2tWwz983nIDo8jqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[380,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kUvnDmtE5z/KwMbTFdvQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[381,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bCQ0hMT71r8CcrCMj4uxvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[382,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"F1YQm8bMz78m1IMlMarAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[383,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oUXA6dSP4j+6eTL4LyTHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[384,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kVWkZmU567+KHDU1Cp3Kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[385,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CCP0Kxwzxz8yRWykqaKjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[386,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Wwx5ASXH0D9ookxwCfywPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[387,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dNz04sBl779Fho9mZxTOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[388,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HTQOZWa6479Wj73snBvePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[389,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2xjo1L7A4b+Kf/fSrF/nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[390,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ei9Z4Kq/zj9lQIjWS2jDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[391,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AYGiVAnZwz85bG9n6nDBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[392,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v4FUR29Y479pgxFDlgTaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[393,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ywx+QcyN5j/mHh2ekafaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[394,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"olL7aQjd6L8paDmJPuvJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[395,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EOl5fA8W5T/7Pt+oH2TMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[396,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SSno8TE5yj8Uv1InQbq4Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[397,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uNsLtQP6yD/oEkN0ivToPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[398,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"meDFZQ7qoj/cIFw2i0jrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[399,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LGH4hC8d079lF9fuJF+3vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2245\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2242\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2243\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2244\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"friend_group\",[14,0,12,11,6,11,13,6,0,14,13,9,0,2,0,0,15,10,0,0,5,7,3,0,15,8,16,4,16,3,12,8,8,3,1,10,9,0,5,0,2,1,null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#7f7f7f\",\"#1f77b4\",\"#e377c2\",\"#c49c94\",\"#d62728\",\"#c49c94\",\"#f7b6d2\",\"#d62728\",\"#1f77b4\",\"#7f7f7f\",\"#f7b6d2\",\"#c5b0d5\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#c7c7c7\",\"#8c564b\",\"#1f77b4\",\"#1f77b4\",\"#98df8a\",\"#ff9896\",\"#ffbb78\",\"#1f77b4\",\"#c7c7c7\",\"#9467bd\",\"#bcbd22\",\"#2ca02c\",\"#bcbd22\",\"#ffbb78\",\"#e377c2\",\"#9467bd\",\"#9467bd\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#c5b0d5\",\"#1f77b4\",\"#98df8a\",\"#1f77b4\",\"#ff7f0e\",\"#aec7e8\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"friend_group_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2246\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2247\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2259\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2252\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2249\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2250\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2251\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[350,352,353,354,355,356,357,359,360,361,363,366,367,370,371,372,374,375,376,377,378,379,380,381,382,383,384,385,386,388,390,391]],[\"end\",[393,394,394,392,394,392,392,393,393,397,397,398,397,393,398,395,398,398,399,395,399,397,395,399,399,395,394,396,396,392,396,396]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"friend_group_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2253\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2254\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2258\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2255\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2256\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2216\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2229\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2230\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2236\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2235\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2237\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2238\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2239\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2260\",\"attributes\":{\"renderers\":[{\"id\":\"p2252\"},{\"id\":\"p2245\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
friend_group:@friend_group
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2224\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2225\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2226\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2227\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2219\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2220\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2221\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2222\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2223\",\"attributes\":{\"axis\":{\"id\":\"p2219\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2228\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2224\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"b46de916-7948-453c-8974-92e1a1e7a146\",\"roots\":{\"p2208\":\"cdc0897f-8bbf-45ad-9640-903e31507971\"},\"root_ids\":[\"p2208\"],\"notebook_comms_target\":\"p2261\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2208" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"28aac993-9492-4a53-acab-471333ba5db5\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2312\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2313\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2314\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2321\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2322\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2319\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2344\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2361\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[350,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PdnUyHWly793bM46zmPjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[351,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"COrwo04i7r8ftBV2Vi3fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[352,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3rVuG+Ou1T+vtxgA+VfkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[353,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FCr4pd141D8YahPlmU3iPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[354,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1mL5ejXU5j/koyU/J0HTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[355,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"coyMSd6/1j9ia0hTruniPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[356,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VI4xB/RB5T9agl+L9eDTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[357,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PGLNsAV75z+/bEHvMcrVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[358,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"u7PdGD7B7z/G4ledibLGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[359,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kWyFzLrHx79MAuprK6Dhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[360,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kLflXyHmzL/nu90mT+bhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[361,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"spA9iv81xr/JdVDDfRLkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[362,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W/pnlWJPsj8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[363,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pOlaALsVzL8HM5fIp7jiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[364,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nr9Vy4LQ4T/l67JZHVbpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[365,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j2jtY5Xc4r/Mkfaj/IrkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[366,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Je3yHp/t6L/LF1i2BXbEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[367,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nv4qSKH1y790DxL0ekPkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[368,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LQ0B3Fkn07+eNVa/7Ajuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[369,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0H+9SEc/2b+/jihvWvjtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[370,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RknAfNPmxb/HbJ9RmNrivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[371,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kEUJgA7A6L+lypsJnuLLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[372,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HN3pVBHN1D8q6QncJ/fovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[373,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"77nkOJI26D+7L0NoSzTjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[374,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1sOucz716b/CX4hRv5bIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[375,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"11238KCn57+BIFS77rfHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[376,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lf3kaoQx6L8hT5HHIJ7Xvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[377,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UEwZpIwc1D9eno9oOHvqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[378,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qEnHicZG5r/sYIAa8O7Yvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[379,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"20lMLtGixr/DFOmTmbziPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[380,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a4+UBYs00j/sX7yjGGvovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[381,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Glhbmr3S579BuQjzyFHavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[382,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"boFyFrTz5r/nlAQpz4nWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[383,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fpL1fr9v0T+H5USruc7pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[384,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M4QErKj50j/wwpNNg2TjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[385,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"svivfiN85z9UbwA8hXDQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[386,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+DJdaL2O5z8TViCSxDDLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[387,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ddTyudya5r+6Tw0pjHXpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[388,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pDM5kpce5j/4nPVz0ZzWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[389,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QAhzHfcfa7+1voAmLzzsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[390,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A/LaWV815j+4j+v8AZvKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[391,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VejMADH/5T8oCSdLnxDQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2349\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2346\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2347\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2348\"},\"data\":{\"type\":\"map\",\"entries\":[[\"friend_group\",[14,0,12,11,6,11,13,6,0,14,13,9,0,2,0,0,15,10,0,0,5,7,3,0,15,8,16,4,16,3,12,8,8,3,1,10,9,0,5,0,2,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#7f7f7f\",\"#1f77b4\",\"#e377c2\",\"#c49c94\",\"#d62728\",\"#c49c94\",\"#f7b6d2\",\"#d62728\",\"#1f77b4\",\"#7f7f7f\",\"#f7b6d2\",\"#c5b0d5\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#c7c7c7\",\"#8c564b\",\"#1f77b4\",\"#1f77b4\",\"#98df8a\",\"#ff9896\",\"#ffbb78\",\"#1f77b4\",\"#c7c7c7\",\"#9467bd\",\"#bcbd22\",\"#2ca02c\",\"#bcbd22\",\"#ffbb78\",\"#e377c2\",\"#9467bd\",\"#9467bd\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#c5b0d5\",\"#1f77b4\",\"#98df8a\",\"#1f77b4\",\"#ff7f0e\",\"#aec7e8\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"friend_group_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2350\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2351\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2363\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2356\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2353\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2354\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2355\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[350,350,350,352,352,352,353,353,354,354,354,355,356,356,357,359,359,360,361,361,361,363,363,366,366,366,367,371,371,372,372,372,374,376,376,376,377,377,378,378,380,381,385,385,385,386,386,390]],[\"end\",[360,370,359,353,355,384,355,384,388,356,357,384,388,357,388,360,370,370,379,363,367,379,367,374,371,375,379,374,375,380,377,383,375,378,381,382,380,383,381,382,383,382,386,390,391,390,391,391]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"friend_group_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2357\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2358\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2362\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2359\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2360\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2320\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2333\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2334\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2340\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2339\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2341\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2342\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2343\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2364\",\"attributes\":{\"renderers\":[{\"id\":\"p2356\"},{\"id\":\"p2349\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
friend_group:@friend_group
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2328\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2329\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2330\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2331\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2323\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2324\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2325\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2326\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2327\",\"attributes\":{\"axis\":{\"id\":\"p2323\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2332\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2328\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"28aac993-9492-4a53-acab-471333ba5db5\",\"roots\":{\"p2312\":\"e290f1d7-0e48-4a8f-bf4a-e97d0c84d0e8\"},\"root_ids\":[\"p2312\"],\"notebook_comms_target\":\"p2365\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2312" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"friend_group\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although this is a very realistic situation, in this example, we want that all friend group members are always in the same class.\n", "To implement that, we use the location method `stick_together()`:\n", "For each agent, the method `stick_together()` returns a specific value.\n", "Agents with the same return value are sticked together." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"9d4edb78-8d0f-4219-872b-bf519d17ccdd\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2408\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2409\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2410\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2417\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2418\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2415\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2440\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2457\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[350,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ltw28Vdb7b8riFbuy2jKvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[351,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nW1ZWOeEcD8kEP/KQlbtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[352,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JBFrMO6f0z+G2E6rHeXgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[353,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fM7QGXQx1z95xbu9UiHfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[354,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dFy9e2v11z+Aa0JMK2rlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[355,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OyeKEHaK1j+cDn0+BYvivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[356,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lzNIdn3I1j/cEJa7G4boPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[357,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1nN5kyRb2T+H3TcXwB/oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[358,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rWnHWD1+0T+xNLG07v3vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[359,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y12HeQ3i7b9Oh5HCEZ/Fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[360,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KBj8BvyU6b9XrSFXIkvEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[361,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6h/mO5Mfw79fowqqPBnivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[362,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Q0VJibKmq78BXOnTpX/uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[363,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/f2EPb2OxL/J7SRc90rkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[364,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ik6sA2qf5T+R2dQl3KDovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[365,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vgJKVdad7T9RAp9mUxvdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[366,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+FYrRCAY6L+D/7W2KgniPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[367,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PvoAAxvUtL+QEZduoc3ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[368,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lRYF9Vmo5D+t/AStRI/oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[369,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3r3+osLIxj8wQhtoQvbtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[370,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IDuFK11c678K7C4cZ/HAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[371,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D6Plb0m95b90pefJcurhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[372,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uPvg28sGy7/EK5wTV9jDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[373,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8voxoMf9y7+IPJLAicrvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[374,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"27ILGM485r91/3UzuJ7fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[375,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vU2H8p2357+b4sGAVo3fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[376,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uEn36p6V5D9DV9Hyno/gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[377,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z0hChfPVxr/V1RGV/mzLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[378,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L140LNXM5D+0vzYZmkndvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[379,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FyIb8pjgu783qZ3CbKnkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[380,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/ZC9lTIZ0b9LDqSDUIPIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[381,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6YNkHNP05z/SXQKrW9ffvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[382,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E1yxfXSS5j9lZtOWgL3hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[383,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JucRXqBEzr+RMXuk3v7OPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[384,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v2ZcMjYy2T+HsYkogarhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[385,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eJyt9g9umT/9Mv/i1dTkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[386,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KL2p/Y0LpL/SzUjkVdLmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[387,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NlwOEi01xr92xHTXkfjuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[388,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M/OVwhjA1D/AKpcICcHkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[389,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4HWjPPVo47++c+R+/ObsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[390,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BW4L+Na2p78BsFLmKQDlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[391,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bnU5ZP4Thj+rlFGRW1DnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[392,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BbhE8vLj1j95PbAV4K3mPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[393,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"apuQ52HW67812ithp9PFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[394,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"d0zWnbpe1j8o/lhwRurgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[395,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3guE1to5zL9x6GvOhXfJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[396,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z3WppgSLhL9HC++C/63lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[397,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2a8W5xtqv7+4uwtmnjXjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[398,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pacYBhy05r+tAnFjb9bgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[399,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NLRahiLx5T+h00Jkpwbgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[400,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6PYSrbvQ079YHkyKmfboPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[401,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D8NZcQcRqe2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[402,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z6NUMctB5L+GxP8tAf3Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[403,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"49Ir8ku15b9c09hnv8LWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[404,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7L1wUXKw0b8qbtoFT8DmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[405,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JUFnSjZv5L/CoJbSCZ7Yvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[406,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"THG0yqVz4r9pSJIUtKfmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[407,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dPCGDOz/079u7MtXo6vlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[408,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PLs+DjjL3j+dnbPz88nsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[409,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eUjd1jT41r+m7eemne3oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[410,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vGDKgf2g4b+KO3MQRbDnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[411,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0fuWEOuN5z9ocKHYhVjCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[412,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TmxJiKrn4D+eKvk4wVPtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[413,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BHxh8Dyo6r9+Z18JLKG4Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[414,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ni2w6tEh57/kdJhPTPzlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[415,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fvSI0GwN679zPTgRAKbmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[416,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CmzNO9nktz8rgKF98B7tvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[417,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n/tWYhPJ6T+iIUGvt1HLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[418,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ChtEmOAU6T+d3QEKuRfjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[419,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZMJv2WI25z8MXMBb34zgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[420,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QPrfU/iS37/t3mr5mbvmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[421,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WhbTkmDV4D9Nj7F0sWzbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[422,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yT6NpHgE5j9loeuyshnBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[423,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0y60elh61r+oy3vz5hztvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[424,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vtQe2fSSrz89PobZ6iHqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[425,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ExnhXGy/4j89aCJwRl/gPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[426,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/xDeT7ISqT9PeAPgbHrsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[427,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pByFomzy6D8iksUJFYC8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[428,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vdAH5Y4jwD+fnS2XXhvsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[429,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kN0qyYPs6L/LlFO9NjXBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[430,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XU6ykkqu4r82uEGptFbWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[431,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wuMuo4L94z/C2DTInlrfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[432,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kA4FnHaM4z8gUtkj6PzbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[433,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oEgIzKgJ6j+FoNKHjGfDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[434,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zwkidhRZ6T8n5VKI+gnIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[435,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dkoT+80y5j9Z4jBoARTGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[436,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0g3TVHU76j9Oem3EPxvGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[437,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MYIgehs577/2UEXgohXdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[438,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rweTpgsK37+zpDWGHvvjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[439,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1yT700XG7z+1oqZtjDHMPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[440,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qknNBsg86r/1mtJCej/HPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[441,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lSLnW0ZC7L8Vo5tLNzXDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[442,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vGC2/9DI4L8y+J2g19zlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[443,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"glMc1lZS1L+OUNdWqHPnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[444,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6HzxH00s6D+7uZzef9/Cvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[445,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M+QuJTL547/bjuI/9bHVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[446,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bbZ9VMZF6r/Spw2vAanBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[447,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rQpL61te6D9HBPZE8OPGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[448,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"u1eXmCRb4j9IG3jk83/dPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[449,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e6nMzBartD+KwenNiXvrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2445\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2442\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2443\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2444\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"friend_group\",[14,0,12,11,6,11,13,6,0,14,13,9,0,2,0,0,15,10,0,0,5,7,3,0,15,8,16,4,16,3,12,8,8,3,1,10,9,0,5,0,2,1,null,null,null,null,null,null,null,null,14,0,12,11,6,11,13,6,0,14,13,9,0,2,0,0,15,10,0,0,5,7,3,0,15,8,16,4,16,3,12,8,8,3,1,10,9,0,5,0,2,1,null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#7f7f7f\",\"#1f77b4\",\"#e377c2\",\"#c49c94\",\"#d62728\",\"#c49c94\",\"#f7b6d2\",\"#d62728\",\"#1f77b4\",\"#7f7f7f\",\"#f7b6d2\",\"#c5b0d5\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#c7c7c7\",\"#8c564b\",\"#1f77b4\",\"#1f77b4\",\"#98df8a\",\"#ff9896\",\"#ffbb78\",\"#1f77b4\",\"#c7c7c7\",\"#9467bd\",\"#bcbd22\",\"#2ca02c\",\"#bcbd22\",\"#ffbb78\",\"#e377c2\",\"#9467bd\",\"#9467bd\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#c5b0d5\",\"#1f77b4\",\"#98df8a\",\"#1f77b4\",\"#ff7f0e\",\"#aec7e8\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"#7f7f7f\",\"#1f77b4\",\"#e377c2\",\"#c49c94\",\"#d62728\",\"#c49c94\",\"#f7b6d2\",\"#d62728\",\"#1f77b4\",\"#7f7f7f\",\"#f7b6d2\",\"#c5b0d5\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#c7c7c7\",\"#8c564b\",\"#1f77b4\",\"#1f77b4\",\"#98df8a\",\"#ff9896\",\"#ffbb78\",\"#1f77b4\",\"#c7c7c7\",\"#9467bd\",\"#bcbd22\",\"#2ca02c\",\"#bcbd22\",\"#ffbb78\",\"#e377c2\",\"#9467bd\",\"#9467bd\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#c5b0d5\",\"#1f77b4\",\"#98df8a\",\"#1f77b4\",\"#ff7f0e\",\"#aec7e8\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"friend_group_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2446\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2447\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2459\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2452\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2449\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2450\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2451\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[350,352,353,354,355,356,357,359,360,361,363,366,367,370,371,372,374,375,376,377,378,379,380,381,382,383,384,385,386,388,390,391,400,402,403,404,405,406,407,409,410,411,413,416,417,420,421,422,424,425,426,427,428,429,430,431,432,433,434,435,436,438,440,441]],[\"end\",[393,394,394,392,394,392,392,393,393,397,397,398,397,393,398,395,398,398,399,395,399,397,395,399,399,395,394,396,396,392,396,396,443,445,445,443,445,442,443,443,442,447,446,449,447,442,448,444,449,448,449,444,449,446,445,448,448,444,444,447,447,442,446,446]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"friend_group_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2453\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2454\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2458\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2455\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2456\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2416\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2429\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2430\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2436\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2435\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2437\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2438\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2439\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2460\",\"attributes\":{\"renderers\":[{\"id\":\"p2452\"},{\"id\":\"p2445\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
friend_group:@friend_group
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2424\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2425\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2426\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2427\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2419\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2420\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2421\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2422\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2423\",\"attributes\":{\"axis\":{\"id\":\"p2419\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2428\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2424\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"9d4edb78-8d0f-4219-872b-bf519d17ccdd\",\"roots\":{\"p2408\":\"b7d9f0d0-65a3-4803-956b-cf7f54cadd00\"},\"root_ids\":[\"p2408\"],\"notebook_comms_target\":\"p2461\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2408" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"cc160da4-79f4-4f7e-a118-e7ef4d22981c\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2562\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2563\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2564\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2571\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2572\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2569\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2594\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2611\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[350,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yCeB3vIWzj8spd+86p3mPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[351,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Srt4fm45z+rl6fwEAPkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[352,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"J8aeIEg51j+CtIh5Ng7nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[353,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AyFtZZel1D8sxDYpEVzmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[354,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ucBq8Z5m4796Sbth2iLlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[355,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nQc9Gac+1z+/YDihIT/mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[356,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5cyA57995L9NYCsnqVzkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[357,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q3QZnfeN47+hFTkv6DPkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[358,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o3zkxKEE7b9ofawthRfaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[359,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f91BgRTNyj+4ESdXiLznPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[360,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fnJL1krEzj8pDC/+R6nnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[361,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7YR4T1/zrj9N+emJ2Nfpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[362,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ztUZQZVb3j+Q21gwE9PsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[363,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c3h80qFzpD/a4/7SuEPqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[364,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wFACdX9v6b8OkaKsjU/gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[365,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Iau/0VoFpT/qGgU33/3vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[366,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Sn6CEG3K6L//H81i9RGYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[367,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RJ29kQcXtT+IAYwQNybqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[368,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fK/TApND7j8aOXuJGRbUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[369,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NCsugclC7T/MJpy8iJ3Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[370,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6SkbB1hPyj9nvB89RtPmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[371,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Q/K1T0YV6r+HFDJEYy6TPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[372,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EGVGl71K4L82YO7Y72rivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[373,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"02lAByvI4z9uFdt8qZHnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[374,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VMHp1WNS6b9Z7OCI20emPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[375,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mq+spmIs6b86y3Y4kNtEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[376,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vLUa5EpU6b91ARg001bXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[377,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RFLPawZv4b/Uis510xfjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[378,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZiYABuHi6b8hoeMlbczVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[379,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ogl1oAk1rT87Oy7ZyPvovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[380,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2j2ABN+a4b8/hSJsewPivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[381,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yfmS939b6L8jX64IXAHWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[382,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ip67yWIC6b8/3l74upzUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[383,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l7fsZGPa4L/vQ/UVAcDhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[384,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iXp1uteA1T+vrH4QLnflvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[385,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VfZZXPfd4T+3sRQqn9ncvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[386,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"S5ILp8c94j+vRLILonrfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[387,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WxC2ZKvv5D9wDu/my/bhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[388,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P5hrw1Bx5L8KbZKeZWnlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[389,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DRdUkR5n6j+pknuxTsPePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[390,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VpKso/th4T9OXvfXrvDdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[391,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HpQmN0TZ4D9nXVJfpOvevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[400,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HvK0TZ8Q578nxxTGPtXQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[401,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WD4mTecs6r81lUDVjaPkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[402,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aOoWxKC76j+lgxveiXDCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[403,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"V7B6ZXzQ6z++BRWUZwLFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[404,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XebGEpuF5r+1XzxEhGjSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[405,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nMmL+sgJ6z9HSmkHbpDHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[406,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pJduwtpg0r+k2dEjO2Hovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[407,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CF/TqEi7578k+BKUQkfTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[408,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jN3FofC+6j8Q2AIfjz3ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[409,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z5tyZMjT57/x2GAQo1nRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[410,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CvRkjtaA0L+XmB43kSzovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[411,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5uVVZPyB5z/L4bGt+iPBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[412,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9Dr22z895j+Nh3VoH2Xpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[413,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EvyD07FUhr87cUzsQ0DYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[414,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9psat4kvyb9J0Iwe7Hjuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[415,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5vlOW5kp7z9vrCMLRyXIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[416,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"I1Cjdqd9zL/n/pfdpaToPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[417,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G10Yheq65j/231UOUrHCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[418,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7a15uIYa3j9cdGyaWujpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[419,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L8kuesdRkyzPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[420,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x8YzrG6Q0r8p9ppdqmTnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[421,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AY120h2v0D93eU9tdQKjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[422,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1gAaICjCvb9ZHxr01kyyvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[423,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FE5qqVQDzD/+N5+lba7uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[424,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7CWw/Mzvz794pU7k9UXoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[425,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"I6oLPFdGzz+phKW2meWvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[426,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lQg81cfq0L/kTTh3pProPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[427,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/VZ3KRP/wL+jENaQXzSnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[428,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3t+zRdmozr/yN6QTVaXpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[429,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LE6DLowsLz+UoVTnRH3VPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[430,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RlNKNuAs6j9KwrIGQH/FPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[431,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8VgI/+Ut0T9q07xobXe0Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[432,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PyZFtUFl0j8k6MtLrEGsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[433,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YoXVOqAmwr+bSj4Hhmi2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[434,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z7swcGpGxL9QYs96eoKvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[435,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CHqYZMXu5j+1/MPQDzbGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[436,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M2t4CMX+5z98qCtVLP7Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[437,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XhT9JE3Auz+kK1bBtqzrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[438,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mcCvyQih0L+vvgAlnwbnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[439,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sON4+IFB1r/rFRl/StXrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[440,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2TCTGMZXkD+AKeqCow7XPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[441,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MgLcIVRrmr++bDv0tFnWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2599\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2596\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2597\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2598\"},\"data\":{\"type\":\"map\",\"entries\":[[\"friend_group\",[14,0,12,11,6,11,13,6,0,14,13,9,0,2,0,0,15,10,0,0,5,7,3,0,15,8,16,4,16,3,12,8,8,3,1,10,9,0,5,0,2,1,14,0,12,11,6,11,13,6,0,14,13,9,0,2,0,0,15,10,0,0,5,7,3,0,15,8,16,4,16,3,12,8,8,3,1,10,9,0,5,0,2,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#7f7f7f\",\"#1f77b4\",\"#e377c2\",\"#c49c94\",\"#d62728\",\"#c49c94\",\"#f7b6d2\",\"#d62728\",\"#1f77b4\",\"#7f7f7f\",\"#f7b6d2\",\"#c5b0d5\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#c7c7c7\",\"#8c564b\",\"#1f77b4\",\"#1f77b4\",\"#98df8a\",\"#ff9896\",\"#ffbb78\",\"#1f77b4\",\"#c7c7c7\",\"#9467bd\",\"#bcbd22\",\"#2ca02c\",\"#bcbd22\",\"#ffbb78\",\"#e377c2\",\"#9467bd\",\"#9467bd\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#c5b0d5\",\"#1f77b4\",\"#98df8a\",\"#1f77b4\",\"#ff7f0e\",\"#aec7e8\",\"#7f7f7f\",\"#1f77b4\",\"#e377c2\",\"#c49c94\",\"#d62728\",\"#c49c94\",\"#f7b6d2\",\"#d62728\",\"#1f77b4\",\"#7f7f7f\",\"#f7b6d2\",\"#c5b0d5\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#c7c7c7\",\"#8c564b\",\"#1f77b4\",\"#1f77b4\",\"#98df8a\",\"#ff9896\",\"#ffbb78\",\"#1f77b4\",\"#c7c7c7\",\"#9467bd\",\"#bcbd22\",\"#2ca02c\",\"#bcbd22\",\"#ffbb78\",\"#e377c2\",\"#9467bd\",\"#9467bd\",\"#ffbb78\",\"#aec7e8\",\"#8c564b\",\"#c5b0d5\",\"#1f77b4\",\"#98df8a\",\"#1f77b4\",\"#ff7f0e\",\"#aec7e8\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"friend_group_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2600\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2601\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2613\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2606\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2603\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2604\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2605\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[350,350,350,352,352,352,353,353,354,354,354,355,356,356,357,359,359,360,361,361,361,363,363,366,366,366,367,371,371,372,372,372,374,376,376,376,377,377,378,378,380,381,385,385,385,386,386,390,400,400,400,402,402,402,403,403,404,404,405,406,406,406,407,410,410,411,411,411,413,413,413,416,416,416,417,417,420,421,421,421,422,422,422,424,424,425,425,426,427,427,429,429,431,433,435,440]],[\"end\",[360,370,359,353,355,384,355,384,388,356,357,384,388,357,388,360,370,370,379,363,367,379,367,374,371,375,379,374,375,380,377,383,375,378,381,382,380,383,381,382,383,382,386,390,391,390,391,391,409,404,407,403,405,430,405,430,409,407,430,410,420,438,409,420,438,417,436,435,440,441,429,426,428,424,436,435,438,432,425,431,433,434,427,426,428,432,431,428,433,434,440,441,432,434,436,441]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"friend_group_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2607\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2608\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2612\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2609\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2610\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2570\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2583\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2584\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2590\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2589\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2591\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2592\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2593\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2614\",\"attributes\":{\"renderers\":[{\"id\":\"p2606\"},{\"id\":\"p2599\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
friend_group:@friend_group
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2578\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2579\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2580\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2581\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2573\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2574\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2575\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2576\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2577\",\"attributes\":{\"axis\":{\"id\":\"p2573\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2582\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2578\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"cc160da4-79f4-4f7e-a118-e7ef4d22981c\",\"roots\":{\"p2562\":\"a614d91a-e321-4c53-8039-4963c4e2a8ab\"},\"root_ids\":[\"p2562\"],\"notebook_comms_target\":\"p2615\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2562" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom])\n", "\n", "inspector.plot_networks(agent_color=\"friend_group\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Edge weights\n", "\n", "Until now, all edges between nodes have a weight of `1`.\n", "The location method `weight()` can be used to set different weights.\n", "In the following, we set the weight of all edges generated by a classroom to `5`.\n", "This number could, for instance, represent that agents are together in classrooms for five hours." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"c8358260-61d5-4416-8c22-fda88ea3c0d4\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2700\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2701\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2702\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2709\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2710\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2707\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2732\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2749\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[450,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WxwGkH5hkz+AKVhHr9SBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[451,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uuv+AZjZ0z9/wLNeD9TqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[452,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VFvnPscp2z/0nfL0bgXcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[453,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bbWHiLfQ3T+30hUbu/7Yvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[454,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NX6N79N/sT8fQZkYLr6IPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[455,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z/tWK1TY3z+oDZoqJZrbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[456,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IehQm3Nj1z8PF8N2gRjEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[457,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jZ0ymKyTpj/2kgGuXR2uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[458,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w9Da4cvv7T9x5P1N/WXJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[459,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JR2xSWqftj/5f5w8p26jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[460,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IS65/iaK1T9K7SYCwDXLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[461,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FQP1N7Ims78EGerVsAnmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[462,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mHU8+c385r9oeQWg7VnnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[463,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"InZndIlI5j8KWzlJ1/nPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[464,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WuzzWgmA7L/TPXjw9VvePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[465,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aEnXiRfF678WVdg/ZFDZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[466,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Op4vM8/F4b/w3PxFK4jKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[467,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"O0YX8inAvb/UCaV2jxTkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[468,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6qznYy5Cu78AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[469,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ASnnRHR20z9AXFru7rntvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[470,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tx2t6Ujk2T8QoOKp3snHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[471,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NVMJjzQr1b/LTbJjjRGOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[472,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YlYb6BVQsr/ID+sScKrgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[473,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+MWogJO/7r9pLG6lDlG3Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[474,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HqRTR6HV4L8PcZEYJ/XQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[475,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GqlT/pYk1b90yyv46c6gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[476,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c2hYEWVv4r/glmYPkLzRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[477,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EPg6Qrj8wL+QJDzQezPgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[478,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KLjUoFYH47+5dgv9+HbOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[479,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qNRrrgN35T+sAYY4TOfTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[480,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GH/mREof3j9VZT6VHrTdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[481,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CF/2HG7/0b+qpOT47oOjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[482,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B58Yxin40b/CG7m9k3OXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[483,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MAH23kdswb/v9vYgvNHhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[484,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XuSOUyL9t78478q3sSzivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[485,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OtK3c2zVq78y0A7k73DkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[486,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vKkmpQ/Mvb/3b76gmK3lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[487,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B590MDOI5b+EdvC+9Tflvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[488,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lF0M04GN2D+k+mWry0nNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[489,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cBFZuLhylD9hPpc6Y5vsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[490,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sZCrOoMS5z8axPqV7GPUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[491,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dFQc7QCP5z+WC7Xtnd/RPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[492,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bmK06MN81z/D75eXkqrIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[493,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oTjSksO/qz+ZDVTsS76Wvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[494,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vzfJHmUfu78hngM9HvXgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[495,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VTFpUcJJ3T8dPnY/lTHbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[496,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iyAWMDlE5j/B6ilWCUbSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[497,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2d9/CSaxtr+GFOn3SMbkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[498,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uK9GiR81079bqxaF1bR9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[499,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/ttIrcu84b9PWtIaeRnPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2737\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2734\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2735\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2736\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"grade\",[3.0,{\"type\":\"number\",\"value\":\"nan\"},2.0,2.0,3.0,2.0,3.0,3.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,3.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},4.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},3.0,4.0,2.0,{\"type\":\"number\",\"value\":\"nan\"},4.0,4.0,4.0,2.0,4.0,1.0,2.0,4.0,4.0,2.0,2.0,1.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,1.0,null,null,null,null,null,null,null,null]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#ff7f0e\",\"#c49c94\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#ffbb78\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#ff9896\",\"#1f77b4\",\"#d62728\",\"#e377c2\",\"#2ca02c\",\"#1f77b4\",\"#98df8a\",\"#f7b6d2\",\"#ff7f0e\",\"#2ca02c\",\"#aec7e8\",\"#c5b0d5\",\"#2ca02c\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#2ca02c\",\"#1f77b4\",\"#aec7e8\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#8c564b\",\"#ff7f0e\",\"#9467bd\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"grade_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2738\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2739\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2751\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2744\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2741\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2742\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2743\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]],[\"start\",[450,452,453,454,455,456,457,459,460,461,463,466,467,470,471,472,474,475,476,477,478,479,480,481,482,483,484,485,486,488,490,491]],[\"end\",[493,495,495,493,495,492,493,493,492,497,496,499,497,492,498,494,499,498,499,494,499,496,495,498,498,494,494,497,497,492,496,496]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"grade_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2745\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2746\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2750\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2747\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2748\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2708\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2721\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2722\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2728\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2727\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2729\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2730\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2731\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2752\",\"attributes\":{\"renderers\":[{\"id\":\"p2744\"},{\"id\":\"p2737\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
grade:@grade
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2716\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2717\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2718\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2719\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2711\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2712\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2713\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2714\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2715\",\"attributes\":{\"axis\":{\"id\":\"p2711\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2720\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2716\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"c8358260-61d5-4416-8c22-fda88ea3c0d4\",\"roots\":{\"p2700\":\"f5f5d2fc-764b-45ba-bb28-f398fc881cc3\"},\"root_ids\":[\"p2700\"],\"notebook_comms_target\":\"p2753\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2700" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"9a9e1af2-fdf5-40d7-a52c-095c31e019f4\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2804\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2805\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2806\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2813\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2814\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2811\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2836\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2853\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[450,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dOSaOyjOvz8WA7znT2nEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[451,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"trZQyBZD6r8eVBxuM2XUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[452,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mWkz0Yv53T9B3QaCvHygPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[453,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ijYzglsq4D8rZWE1aH+kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[454,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"irdqOQxSwD/OspfTxKrHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[455,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ji3z5rw33z/3xz6giT+TPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[456,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rr8UtoBws78RyePoINCyvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[457,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"elL9S25FuT91nA72SbrEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[458,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bvSD2BU45D+VGgVoRk3qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[459,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9LYDdIQiuj+wrTHxt/zHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[460,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PH99mZoNrL+O3GW8spmuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[461,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VaIUQjRCsD/HRNLAcoHhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[462,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"h/YcRniU5D/PVVr1ie3ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[463,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D+wVXrn7wz8hoIK1T2bRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[464,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L8I/4I0bPetPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[465,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4yxXBL7C7D/jAznj6LzOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[466,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+ELOVY381L9i3Im6QWXbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[467,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9GxtHpKkoz955QszO7DgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[468,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QyQFnNqGwz8Vvy/RL03vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[469,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KuuUKuXe57+vFHjcMl3hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[470,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o6hBz4YPt78vehIWeeuqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[471,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XIzvxVRdrb+eUw9pWLfivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[472,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+ofG+HoN2b/LEEbZ5RfBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[473,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pztNUMis2D9cE7YiPhnoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[474,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aVeJLpbJ1b8SzoN13zvZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[475,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uW5OQi7Mo78+FPhf9mLjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[476,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FTBXL22T1r/vWEN42traPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[477,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jlQk1I3g17+KXtd8uuDCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[478,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zUIW/RZq1L9kUaD5S//ZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[479,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xxvAlTKtxj/ay8UAAjvSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[480,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gr1543ix3j+qm1y7plarPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[481,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cokvz1AOlr/aUv4leJjivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[482,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W0/WJSxApb9qVoUyfTXivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[483,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4CZYHOxl2L+O7e/5wJrFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[484,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RRVGb9sF2r+dEk9qvCHEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[485,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MDM3XEhpoz8msW8puHfhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[486,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WqRnfMpPsD+Ncs8TpKngPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[487,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jUFgFBQD7b+PaNnJkT3Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[488,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3NLBegt8sb/dXN2C2XWjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[489,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TsWCBlfB6z8zadHISOncPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[490,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jYBR0jXVxD+i+rl8PpPTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[491,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8USqnTsjwj+T/w5chb/Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2841\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2838\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2839\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2840\"},\"data\":{\"type\":\"map\",\"entries\":[[\"grade\",[3.0,{\"type\":\"number\",\"value\":\"nan\"},2.0,2.0,3.0,2.0,3.0,3.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,3.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},4.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},3.0,4.0,2.0,{\"type\":\"number\",\"value\":\"nan\"},4.0,4.0,4.0,2.0,4.0,1.0,2.0,4.0,4.0,2.0,2.0,1.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,1.0]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#ff7f0e\",\"#c49c94\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#ffbb78\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#ff9896\",\"#1f77b4\",\"#d62728\",\"#e377c2\",\"#2ca02c\",\"#1f77b4\",\"#98df8a\",\"#f7b6d2\",\"#ff7f0e\",\"#2ca02c\",\"#aec7e8\",\"#c5b0d5\",\"#2ca02c\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#2ca02c\",\"#1f77b4\",\"#aec7e8\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#8c564b\",\"#ff7f0e\",\"#9467bd\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"grade_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2842\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2843\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2855\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2848\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2845\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2846\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2847\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]],[\"start\",[450,450,450,452,452,452,453,453,454,454,455,456,456,456,457,460,460,461,461,461,463,463,463,466,466,466,467,467,470,471,471,471,472,472,472,474,474,475,475,476,477,477,479,479,481,483,485,490]],[\"end\",[457,459,454,480,453,455,480,455,457,459,480,488,460,470,459,488,470,485,467,486,479,490,491,474,476,478,485,486,488,481,482,475,483,484,477,476,478,481,482,478,483,484,490,491,482,484,486,491]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"grade_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2849\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2850\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2854\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2851\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2852\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2812\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2825\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2826\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2832\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2831\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2833\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2834\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2835\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2856\",\"attributes\":{\"renderers\":[{\"id\":\"p2848\"},{\"id\":\"p2841\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
grade:@grade
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2820\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2821\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2822\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2823\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2815\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2816\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2817\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2818\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2819\",\"attributes\":{\"axis\":{\"id\":\"p2815\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2824\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2820\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"9a9e1af2-fdf5-40d7-a52c-095c31e019f4\",\"roots\":{\"p2804\":\"efb6dc57-4e01-41f7-bdbb-8ecf9a860f17\"},\"root_ids\":[\"p2804\"],\"notebook_comms_target\":\"p2857\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2804" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", " def weight(self, agent):\n", " return 5\n", "\n", "\n", "agents, locations = creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"grade\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To implement individual weights between an agent and a location, we could also let `weight()` return an agent attribute. \n", "In this case we use the agent attribute `agent.hours`:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"3d194050-1240-454b-8819-44c17ad54d8c\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p2900\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2901\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p2902\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2909\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p2910\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p2907\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p2932\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p2949\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[500,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R7d7xldu1D8yfQIo7mDiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[501,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Tw30h66y678rX4abMn/hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[502,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m2EY+M1D5b8stDWMtZzAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[503,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tBrvnSUT57/XdJQCi6TAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[504,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z7RvjXl30T/PUcppP1DkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[505,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s727TmW05b8MeGQAiEeuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[506,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QuUFcQfkpD94X1HCmheIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[507,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tRaU+7xk1D/VmrEJDh7kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[508,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1Oeh3MyY4T/wEURTJ4nqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[509,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uterkwMM0D+cety5X9jiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[510,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dQdJ1755qj82HLQ+322wPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[511,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8v+8I3MC1b/tZwsVSBfkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[512,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mP4E49iz779ZTRON0zPJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[513,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9BBrDSXwyj9U1KqjTwPRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[514,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bKvrZF+k7T9i6MTnm2vYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[515,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qIisWwAq6j9ALqHs+d/lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[516,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mU5F4Mkc2L8lemavoibjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[517,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6IyYOfds1b/RgFlVw/jlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[518,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8ZRkr6MVsb8q0BcHrVvvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[519,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i1f+NBxt2j8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[520,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PCWcs6Z8vD9Ggz1H0EymPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[521,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"De4MeKHJur+sIaWN0nDQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[522,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UD+RYWwQ5j9Un2GfwGzLvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[523,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xK8zd/Q457+7xP3Rdl3WPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[524,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KOgdLPJA2r9JfIuaFkLiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[525,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b/a6MtYrur+RqxOdyqbTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[526,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QQ+slFrk2L/L0fImC9vgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[527,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wkjdo0CC5T+b6NveQJfQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[528,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ues61Iqh1b/vK2wnQwDiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[529,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ArdtXVNewj+3zhyWCTHTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[530,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9GuYOXF/57/WPQWRyAy1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[531,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UvzyxggFpr/Ahn/gXv3Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[532,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pIOvenfPrL8YCKwD5vzTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[533,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yUeI1xqA5D8xzKTtkV3Hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[534,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lyLLMkyl4z9T7Ob/zxDQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[535,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aOSsWi+H0L/V4NCif+rkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[536,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ebd7Tzqa0r9PdfJJ5nbmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[537,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fKtsZ2ZJzz+bZBuK2Ezqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[538,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MOySCxuDuD9T6YeRU0Nxvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[539,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MVMVKs0j7j+mHa9jmQPbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[540,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RboK5tP5zD++VEzQBkfUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[541,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eYAk0xOWxj/qX5gEDtTVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[542,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"u4jpwlXYsj+1Sl3g9sSePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[543,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4owugmNb0j/+TI1+3w/jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[544,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7y8IyO+U5D8zRy6vtInMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[545,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z54B6soO5r/luz5F/Da5vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[546,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eGG6fDOgxz9gEhHg+hvTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[547,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z7/aPUga078tV78/pfjkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[548,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pRUOiX1ds7/So2jEh9XRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[549,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"S994tTLf178qw9SiwN3hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2937\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2934\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2935\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2936\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"grade\",[3.0,{\"type\":\"number\",\"value\":\"nan\"},2.0,2.0,3.0,2.0,3.0,3.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,3.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},4.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},3.0,4.0,2.0,{\"type\":\"number\",\"value\":\"nan\"},4.0,4.0,4.0,2.0,4.0,1.0,2.0,4.0,4.0,2.0,2.0,1.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,1.0,null,null,null,null,null,null,null,null]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#ff7f0e\",\"#f7b6d2\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#c49c94\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#ffbb78\",\"#1f77b4\",\"#c5b0d5\",\"#8c564b\",\"#2ca02c\",\"#1f77b4\",\"#e377c2\",\"#98df8a\",\"#ff7f0e\",\"#2ca02c\",\"#aec7e8\",\"#d62728\",\"#2ca02c\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#2ca02c\",\"#1f77b4\",\"#aec7e8\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#ff9896\",\"#ff7f0e\",\"#9467bd\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"grade_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2938\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2939\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p2951\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p2944\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p2941\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p2942\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p2943\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,4,4,5,4,5,5,5,5,4,4,6,4,5,6,4,6,6,6,4,6,4,4,6,6,4,4,4,4,5,4,4]],[\"start\",[500,502,503,504,505,506,507,509,510,511,513,516,517,520,521,522,524,525,526,527,528,529,530,531,532,533,534,535,536,538,540,541]],[\"end\",[543,545,545,543,545,542,543,543,542,547,546,549,547,542,548,544,549,548,549,544,549,546,545,548,548,544,544,547,547,542,546,546]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.6666666666666666,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,1.0,0.3333333333333333,0.6666666666666666,1.0,0.3333333333333333,1.0,1.0,1.0,0.3333333333333333,1.0,0.3333333333333333,0.3333333333333333,1.0,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.3333333333333333,0.3333333333333333]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"grade_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p2945\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p2946\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p2950\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2947\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p2948\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p2908\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p2921\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p2922\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p2928\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p2927\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p2929\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p2930\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p2931\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p2952\",\"attributes\":{\"renderers\":[{\"id\":\"p2944\"},{\"id\":\"p2937\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
grade:@grade
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2916\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2917\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2918\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2919\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p2911\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p2912\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p2913\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p2914\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2915\",\"attributes\":{\"axis\":{\"id\":\"p2911\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p2920\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p2916\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"3d194050-1240-454b-8819-44c17ad54d8c\",\"roots\":{\"p2900\":\"ccc06d92-ca74-4246-8685-02bba94eadee\"},\"root_ids\":[\"p2900\"],\"notebook_comms_target\":\"p2953\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p2900" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"0ec63f19-7243-4062-9358-f695f9f4301d\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3004\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3005\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3006\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3013\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3014\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3011\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3036\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3053\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[500,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fg7L4KKvZj+AwC8NgAqEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[501,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Wa89Egfq7T9qc2SIwyLFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[502,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AuSsxtzw2L83hOPiWMXkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[503,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RhytKhWr2r94YkzeGwrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[504,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PKCqM53gl7+JkblEJt9cPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[505,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k2Rfa1CC2L9OKmhti6TlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[506,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lRoYjzFE0D8TcYjAQV7Kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[507,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xsl7zCsBgL+8M6C2ITeiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[508,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zlPy0F6e5D/nEFwKYzTmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[509,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hqp7TlCtn7/B5Sc5krOZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[510,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GCWpmPSKzT8yG170O37Lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[511,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rfdFHhnf0D+FGklm50HPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[512,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f8Esv8HG67/3rELcm2jbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[513,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2cb7sIpu0b+UHyYfKNjTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[514,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/N3g5ivH3r87+rTPfEvpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[515,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HDNZvV4C6r/4Al0SCYjBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[516,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gCCzPQMP5D9nFWK0XvjPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[517,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x3L+LjTD0j876+8KOI/PPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[518,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9zzhRCEq7j//LlU9olrivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[519,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZqLC/dyV4b/5eTtlWYPrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[520,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/gv8tWAxzj9ezi04/IvOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[521,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+eaa8vTYpz+AMz2JGcDgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[522,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YT20QMVa1L8cGLduE6PTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[523,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1tx8nNU9uz8FUbeqQQjtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[524,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KCsjmLAt4z/PyuhJ8krQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[525,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ha3wbQe6rz/NRxU2oF7hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[526,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TTzeus7B4z8ywOLHzMHMPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[527,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7/cydy7I1L/9dpL3U9LRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[528,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ESBCqXYL4z8gMx8nWprNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[529,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rlcUHcB+z78XjlbbWqrUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[530,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ugWB3whj2r/jJ2SHuAXmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[531,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w1DtxqrlpT9TK1zM8Obhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[532,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fAsW1rbgmz8UhPaslzzhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[533,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mTJscqp/0r9pOWyZFwvTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[534,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"doHnrx8g07+6RcAtqFzRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[535,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uM5DVBG00j/h6BteNqXLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[536,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NOP2Gyby0D8AGisxq7jLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[537,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t0p+TUI4yD8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[538,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mlQktrng0D8DVv36Dt7Nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[539,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8H63r/117b8GVCEfuum7Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[540,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H5UQx/fkzb8ekbSX4SLTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[541,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b4YjaTd80L/H1F892y7SPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3041\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3038\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3039\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3040\"},\"data\":{\"type\":\"map\",\"entries\":[[\"grade\",[3.0,{\"type\":\"number\",\"value\":\"nan\"},2.0,2.0,3.0,2.0,3.0,3.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,3.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},4.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},{\"type\":\"number\",\"value\":\"nan\"},3.0,4.0,2.0,{\"type\":\"number\",\"value\":\"nan\"},4.0,4.0,4.0,2.0,4.0,1.0,2.0,4.0,4.0,2.0,2.0,1.0,1.0,{\"type\":\"number\",\"value\":\"nan\"},3.0,{\"type\":\"number\",\"value\":\"nan\"},1.0,1.0]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#ff7f0e\",\"#f7b6d2\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#c49c94\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#ffbb78\",\"#1f77b4\",\"#c5b0d5\",\"#8c564b\",\"#2ca02c\",\"#1f77b4\",\"#e377c2\",\"#98df8a\",\"#ff7f0e\",\"#2ca02c\",\"#aec7e8\",\"#d62728\",\"#2ca02c\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#2ca02c\",\"#1f77b4\",\"#aec7e8\",\"#2ca02c\",\"#2ca02c\",\"#aec7e8\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#ff9896\",\"#ff7f0e\",\"#9467bd\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"grade_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3042\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3043\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3055\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3048\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3045\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3046\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3047\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,5,5,4,4,4,4,4,5,5,4,5,5,5,5,5,5,4,4,4,4,4,4,6,6,6,4,4,5,6,6,6,4,4,4,6,6,6,6,6,4,4,4,4,6,4,4,4]],[\"start\",[500,500,500,502,502,502,503,503,504,504,505,506,506,506,507,510,510,511,511,511,513,513,513,516,516,516,517,517,520,521,521,521,522,522,522,524,524,525,525,526,527,527,529,529,531,533,535,540]],[\"end\",[504,507,509,505,530,503,505,530,507,509,530,520,538,510,509,520,538,536,535,517,540,541,529,528,524,526,536,535,538,531,532,525,533,534,527,528,526,531,532,528,533,534,540,541,532,534,536,541]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.6666666666666666,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,1.0,1.0,1.0,0.3333333333333333,0.3333333333333333,0.6666666666666666,1.0,1.0,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333,1.0,1.0,1.0,1.0,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"grade_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3049\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3050\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3054\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3051\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3052\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3012\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3025\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3026\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3032\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3031\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3033\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3034\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3035\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3056\",\"attributes\":{\"renderers\":[{\"id\":\"p3048\"},{\"id\":\"p3041\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
grade:@grade
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3020\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3021\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3022\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3023\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3015\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3016\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3017\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3018\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3019\",\"attributes\":{\"axis\":{\"id\":\"p3015\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3024\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3020\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"0ec63f19-7243-4062-9358-f695f9f4301d\",\"roots\":{\"p3004\":\"d7c86051-738f-4d61-a480-7bb66d829cb9\"},\"root_ids\":[\"p3004\"],\"notebook_comms_target\":\"p3057\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3004" } }, "output_type": "display_data" } ], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", " def weight(self, agent):\n", " return agent.hours\n", "\n", "\n", "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"grade\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As the value returned by `location.weight()` refers to the weight between the agent and the location, all the weights between the agents and the locations must be somehow combined when determining the weight between agents (aka graph projection).\n", "The location method `project_weights()` defines how those weights are combined.\n", "By default, `project_weights()` returns the smallest weight of the two to be combined.\n", "The code cell below shows how `project_weights()` combines the two weights by default.\n", "In this example, we keep this way of combining the weights, but this method could be easily rewritten." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", " def weight(self, agent):\n", " return agent.hours\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that we use the method `location.get_weight()` to access the weight between the agent and the location." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bringing together different agents\n", "\n", "So far, we are able to connect agents who share a certain attribut value.\n", "But what if we want to explicitly connect agents who have different values on a certain attribute?\n", "One solution could be to simply give those agents we want to be in the same location the same value on a certain attribute and then define a location class that brings together these agents. Besides this, Pop2net offers two more convinient solutions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The quick way: bridge()\n", "\n", "With the `bridge()` method, we can quickly connect agents that have different values on an attribute.\n", "The `bridge()` method instructs the creator to create location instances that only connect agents with different values for an attribute (or more precisely: location instances that connect agents for which `bridge()` has returned different values).\n", "That sounds complicated.\n", "Let's look at an example.\n", "\n", "Let's define a location `PupilsAndTeachers` that connects teachers and pupils.\n", "Since pupils and teachers differ in their `agent.status` attribute, we can use this attribute to bring them together.\n", "To make it clearer, we first create only one location by setting `n_locations` to `1`:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"92e4ce62-2a5e-4fbe-a367-1b156214a7ba\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3100\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3101\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3102\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3109\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3110\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3107\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3132\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3149\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[550,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zPj59LX+579WBvIDn93jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[551,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cVaccZtT57+23o52TknnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[552,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"luAvOuI30D/ett7VJ7ruvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[553,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GUKfwfBH6D8DI0tIO37kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[554,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UUCTCWH+7b+xH3hxRQLXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[555,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UhlJ39X+778z6nZpOUXMPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[556,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MwPUZE5l3L8fZgFkaXPrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[557,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XBnvz1Xg7j+eQd7kMKeXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[558,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1khpUHqd6r9DYBqNM2rWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[559,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ETQiMVy34z/UAGclcB/ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[560,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+V9o2Qww7D9ryTIOXVDaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[561,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DBuJxzI85j8gZx5OdDjiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[562,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G9opYsGC6b9vxfimg3vivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[563,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Pp0D2UOLyr8c7Ntaopzrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[564,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wtdUb0e45L+g9H03oCTlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[565,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QUPq9ESx7j++12h8waLAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[566,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bY/1F/Al5T/hzm1V8g/oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[567,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MQM6iXjE7D/apkTwSMfcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[568,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"26Cf6etN5z9EDNQrdEHgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[569,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gRLLRKMw7D8wRBwGURnSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[570,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+m+VCl/ttz+tYrBvrijuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[571,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"spedzdlc1L+t53vlMPrrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[572,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+FJ5aBwns79n7pSAndPrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[573,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rFLROmet1z8guehQRwzrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[574,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+9esJW693L+QNbsKOEDuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[575,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4V0Fx/N057/cN5/Dcivnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[576,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N7uMZEZe4D/BcLRMAR7pPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[577,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EvLt3n5jsL+Z/xEVi1Xvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[578,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JXTerd/u4r8YcBH6WgDqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[579,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Efp9OnX76j+KDydlVL7iPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[580,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Q/owfTpJwL8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[581,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P+kqOX4wzj8pKdqu2PjsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[582,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0mDagL6xtz9uvB3cMArvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[583,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G6sit9267z8b49rcuG3Hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[584,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6IZ571ct77/9CYRezGSovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[585,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2vViD49h4D92vBSdH6rsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[586,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kNRo9JEV7z/hyNfa7hbSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[587,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k1l2wkA77b/kz3yVqSO9Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[588,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/HxehwBF7b8LojLxfuvIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[589,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DqNtI1Yu2D8wupL4OF3rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[590,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Dx6wMY500r8DgWhClfTuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[591,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5AMk0R9x6b9NH6IVWIzbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[592,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RLD9WY+w5r9m6Wykg2XlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3137\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3134\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3135\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3136\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"PupilsAndTeachers\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\"]],[\"index\",[550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3138\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3139\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3151\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3144\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3141\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3142\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3143\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1]],[\"start\",[550,551,564]],[\"end\",[592,592,592]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0]],[\"start_display\",[1,1,1]],[\"end_display\",[1,1,1]],[\"weight_display\",[1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3145\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3146\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3150\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3147\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3148\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3108\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3121\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3122\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3128\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3127\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3129\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3130\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3131\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3152\",\"attributes\":{\"renderers\":[{\"id\":\"p3144\"},{\"id\":\"p3137\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3116\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3117\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3118\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3119\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3111\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3112\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3113\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3114\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3115\",\"attributes\":{\"axis\":{\"id\":\"p3111\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3120\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3116\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"92e4ce62-2a5e-4fbe-a367-1b156214a7ba\",\"roots\":{\"p3100\":\"d3f7b6ea-8043-480c-9a2c-bd20d7e52bbd\"},\"root_ids\":[\"p3100\"],\"notebook_comms_target\":\"p3153\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3100" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"22cd08e1-1f31-4a5c-a3df-4772c3ac57ff\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3197\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3198\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3199\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3206\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3207\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3204\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3229\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3246\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[550,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yly/fayFzT/d5vE0VwSuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[551,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5/dkUOw6zD/a0Ns4rJ2Bvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[552,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3VlObe285b+SkR/7WMXjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[553,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DWdgVVn26b/B7rF476/dvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[554,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"J/B4FMvr0T9sgE4E86Luvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[555,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"70/jBW4orb/SnTZggRTsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[556,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QlsDoQnT6z967PZp3M/UPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[557,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JvIF0YnL5b+bcKGy9InnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[558,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KnlHDDXF7b/A+TsGMy++Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[559,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jruQyaEh7r9zsMd8iKeovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[560,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D/f2bcQckuBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[561,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L9xMEzOq7z/apcBZj0jLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[562,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WQlY3zjQzT8nVd9uPBDqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[563,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QJe4c30p4L/sgXa7ThrrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[564,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B5Kh4k4vxz/AYkFz+LWlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[565,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NS9EFhLV7b9X4/fqo33Vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[566,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g63YCIWe27+4hxl1Rivtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[567,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"daDLjlYJ7T9or6bbIWbXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[568,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Gwit+jgW6D+qw/6mPE3lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[569,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j28n3AQo1r/FSN/8jW3rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[570,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hD5gZ5Ka67+0rAD7snPePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[571,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YPLqtPfv67//XXTRiX7RPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[572,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mqMT+4vv1z/N83WVzsrqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[573,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l+T4s2Ve7j9a94RRanfGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[574,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4qFYIgTd5j9pfdAckjjiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[575,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"efhbgpuM4j89OFZxGanlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[576,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"urtz6BzAsT9DF+QxzvvuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[577,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CdcrX+I15r8Grpapx2fjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[578,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NYa/bQ/+5r8MEKf29LjZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[579,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ROqmdgFE4D+RwNTDvZDrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[580,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2SVRrvtTzz9D8KUZsePtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[581,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A6WalO/uz7/9hzRu3pjvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[582,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Jyuh/ifU679qvOpZJznJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[583,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Xy1Dd6irvr+roJnZjkfsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[584,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PvteJ5nz4D/gQ9GjhX3qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[585,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o7A9jeo84b9+jrsCOEnpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[586,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gjzfbIj3nz/v3hGCQMfvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[587,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zCX93oCn7D+h/qmLNybhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[588,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0TTyjc167T+cZXTggd3hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[589,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8SMKx3yk5793NIUGAhDnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[590,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nhYoJndc5j8IrAe2GunnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[591,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XZ9SI5WZyb/gZq+fK3juPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3234\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3231\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3232\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3233\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3235\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3236\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3248\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3241\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3238\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3239\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3240\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1]],[\"start\",[550,550,551]],[\"end\",[564,551,564]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0]],[\"start_display\",[1,1,1]],[\"end_display\",[1,1,1]],[\"weight_display\",[1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3242\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3243\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3247\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3244\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3245\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3205\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3218\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3219\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3225\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3224\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3226\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3227\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3228\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3249\",\"attributes\":{\"renderers\":[{\"id\":\"p3241\"},{\"id\":\"p3234\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3213\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3214\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3215\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3216\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3208\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3209\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3210\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3211\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3212\",\"attributes\":{\"axis\":{\"id\":\"p3208\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3217\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3213\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"22cd08e1-1f31-4a5c-a3df-4772c3ac57ff\",\"roots\":{\"p3197\":\"b35f39e1-b5ca-4b92-98dd-ad9be627dc22\"},\"root_ids\":[\"p3197\"],\"notebook_comms_target\":\"p3250\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3197" } }, "output_type": "display_data" } ], "source": [ "class PupilsAndTeachers(p2n.LocationDesigner):\n", " n_locations = 1\n", "\n", " def bridge(self, agent):\n", " return agent.status\n", "\n", "\n", "creator.create(df=df_school, location_designers=[PupilsAndTeachers], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that there is one location instance of type `PupilsAndTeachers` that connects three agents that have different values on `agent.status`, including social workers.\n", "As we only want teachers and pupils in that location, we add a filter statement:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"a54d638b-9910-4b22-80f3-299d61bcbd97\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3293\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3294\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3295\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3302\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3303\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3300\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3325\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3342\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[593,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"chQrdcQazz8dZQPOQsSvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[594,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cqQHm0CY7j8VYcaZOq21Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[595,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p0kSKwV95r8Ru/ly+4zgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[596,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cPDBnUYR7j8OcLQtSb7Yvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[597,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qlVdamiczL/6T4tunIrsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[598,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HAJWNFAY7L+SpSNF7Ne8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[599,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Et/JSqc47/xzIpBXa/hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[600,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hz+2L6+qzj85kP7E4WTuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[601,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UpTpyuFYu7+iR9Kcn7fvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[602,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i2/qebNd4795jhbpjgbqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[603,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5MT1uQmq2L/owCNEj+ftPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[604,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cTtTdNuw4T/04V720+7pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[605,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fgxZ0oVv7z/y3SuZgVvQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[606,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RgEXr5+q2j8XBasEJQfuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[607,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qd3q1P2v6z9rMNm3X2DFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[608,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0rF9qEkNzz+loKiep2HHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[609,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x4Kh+Zww4r+ykkzb8XTrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[610,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UKGW9f49vL/na8/6Y8jrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[611,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y28p3HjQ67890KPZKoncPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[612,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K8Kfwu967T/yacJLXEncPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[613,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uAI3uRKbsj9yr7lBmPrvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[614,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"32Re5PKP4z+SFUsgKs/kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[615,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6jbdt0mR5r9xiv7aYyjlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[616,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wvzNqQV46T83fbd28NXiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[617,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nc83utl06T/Gv8I8cpXmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[618,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y02uCAjz7L+fxoHprtPEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[619,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YU191V5f7z/5nKPjN3/Bvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[620,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0G8MEjzw0D9iDbHEBarsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[621,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4IwrztwT678DN1nW9qjbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[622,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ezja5Uwc67+zRI5ZNiLkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[623,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"19uy+Xj90r+octGcy/zsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[624,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"euIHpMTX3L/YCjM2okzrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[625,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BaA3gy3U5L/wAMCE4OzmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[626,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5j/8Mtkv7b/pUaZCRuvRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[627,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xjmG/i7cuz9nQNB25+Luvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[628,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PeDtNJnm4T/Q1Pu+UjHqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[629,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4OfKdbN/5z+z93ACQ7XoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[630,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xqimljJ66T+iUDw+Us3fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[631,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bahEt5c877/mSwrGQMXRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[632,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IihJEdRH2j8e9PTct7DtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[633,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MIisJmqB77+COiNEEmmbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[634,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bSL92XB6t78AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[635,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AdEttfukzj+bJ0Giij6/Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3330\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3327\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3328\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3329\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"PupilsAndTeachers\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\"]],[\"index\",[593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3331\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3332\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3344\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3337\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3334\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3335\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3336\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1]],[\"start\",[593,608]],[\"end\",[635,635]],[\"_color\",[\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0]],[\"_size\",[1.0,1.0]],[\"start_display\",[1,1]],[\"end_display\",[1,1]],[\"weight_display\",[1,1]],[\"index_display\",[\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3338\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3339\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3343\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3340\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3341\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3301\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3314\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3315\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3321\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3320\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3322\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3323\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3324\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3345\",\"attributes\":{\"renderers\":[{\"id\":\"p3337\"},{\"id\":\"p3330\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3309\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3310\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3311\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3312\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3304\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3305\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3306\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3307\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3308\",\"attributes\":{\"axis\":{\"id\":\"p3304\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3313\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3309\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"a54d638b-9910-4b22-80f3-299d61bcbd97\",\"roots\":{\"p3293\":\"f421113b-f36d-472e-b168-51625cc8ee5a\"},\"root_ids\":[\"p3293\"],\"notebook_comms_target\":\"p3346\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3293" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"a86cf217-0c9b-4cb9-95d5-555657381bc9\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3390\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3391\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3392\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3399\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3400\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3397\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3422\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3439\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[593,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lzNKqr4qqL9RsQ0eksvqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[594,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YA49xxVI5r9p3kbepxDnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[595,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GcMRtwN22z/qeyEDDdvpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[596,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bIWMiHXV7L8o3cvISwS5Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[597,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Xo4i3oSh5D89+QO/fqvqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[598,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZfApwPYE1794KNOId5rtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[599,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BhM4JTqn4T8ccFAY+c7rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[600,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vSNu8+ya6r9bzGOdXE/gPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[601,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Aorzg/Id57+tKSHS22fivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[602,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iBpDmlai7T9MwkWC3iHWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[603,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1FNaL6r07T+LUZvs2Xy6vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[604,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LrVJl+lSxr9XQRdUeVvuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[605,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iDETFDTx5z8cclqvLtHfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[606,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cmen2Psc6j8+tgBsivnjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[607,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vWxgGcah7D+jjOUyZOzIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[608,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"np5caV1opb/nZGm02GDsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[609,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n8LIlFNB1T/QK0dU7Fbtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[610,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tw4LUDSDuT+qQwSpc6PvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[611,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"827bhnn/5D+c9o//gF/mPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[612,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f2p2K0dh6j+uHLLV2n/hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[613,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fHO81bXc6z+0h98nVxrZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[614,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7ZOW6uz7yr8a4zar8+TuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[615,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1mHXOatb5z8sgygHZVDhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[616,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1GeSq55ah7/////////vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[617,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B0QMQGzU7L+wPUC4pz3Kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[618,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i64RLpC54L9IsCgP3nzrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[619,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DeVNK1rP7r8iXONcq66ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[620,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"S01evm6l7r8MCv0ViZLVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[621,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+7vgVHrU67/3VUmrex7VPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[622,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CqKqhJXg7j9dzFLbeXOsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[623,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8VdXxI7s4D/DglpZz1novw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[624,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fVmr5M951r+mkvj5feHnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[625,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"V5Rx6g1n0z+Maq7Lg5zovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[626,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nlqqZkMz4b9WVRlmzjzqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[627,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zr7y0reL5r8cpJsnRFnjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[628,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YnrcUY6BwT9Vtehi0PTtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[629,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"76IZUfbp5L/KhGBk6ujnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[630,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p1BG+MC3179KkVAXvy3sPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[631,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vHM3L7EB7z9oaVVeEobQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[632,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GlPrX5Pe7r8I4xXPXZDTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[633,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tQS1rKPZ0T/xoYNxGDjtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[634,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nHnEk7Yp67/DnutNNL3evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3427\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3424\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3425\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3426\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3428\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3429\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3441\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3434\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3431\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3432\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3433\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1]],[\"start\",[593]],[\"end\",[608]],[\"_color\",[\"#440154\"]],[\"_alpha\",[1.0]],[\"_size\",[1.0]],[\"start_display\",[1]],[\"end_display\",[1]],[\"weight_display\",[1]],[\"index_display\",[\"none\"]],[\"status_display\",[\"none\"]],[\"type_display\",[\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3435\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3436\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3440\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3437\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3438\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3398\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3411\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3412\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3418\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3417\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3419\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3420\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3421\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3442\",\"attributes\":{\"renderers\":[{\"id\":\"p3434\"},{\"id\":\"p3427\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3406\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3407\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3408\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3409\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3401\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3402\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3403\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3404\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3405\",\"attributes\":{\"axis\":{\"id\":\"p3401\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3410\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3406\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"a86cf217-0c9b-4cb9-95d5-555657381bc9\",\"roots\":{\"p3390\":\"e4979829-0814-4591-b5c1-43eaac9cc821\"},\"root_ids\":[\"p3390\"],\"notebook_comms_target\":\"p3443\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3390" } }, "output_type": "display_data" } ], "source": [ "class PupilsAndTeachers(p2n.LocationDesigner):\n", " n_locations = 1\n", "\n", " def bridge(self, agent):\n", " return agent.status\n", "\n", " def filter(self, agent):\n", " return agent.status in [\"teacher\", \"pupil\"]\n", "\n", "\n", "creator.create(df=df_school, location_designers=[PupilsAndTeachers], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we do not only want to have one of that location, let's remove the specifiction of `n_locations`:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"6ff19eaf-6dd1-47d1-8465-97470e6a9bd6\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3486\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3487\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3488\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3495\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3496\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3493\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3518\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3535\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[636,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i3BclPdP6D8GZorubZfivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[637,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cYiwJlJEur+gw2gs0EWVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[638,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xLZQAGKTzL84bw+Qe0zhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[639,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iZShbLWLe79J4OfVIuXIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[640,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P0z0c3iQ5b+MjQBoH1Tlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[641,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RfKmV7Km4L9sUr8MUY3nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[642,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pl+kU0b3wD/O9vx65r7evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[643,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z6Zl0bCd4T+qdJk8GavRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[644,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mI68VW3E4799/u6Jm7XjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[645,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iKLRCneZuT++HKX905TlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[646,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gSyUEfWO4z+/8GZVhqzVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[647,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w4v/Xcso179x8jzYlTDivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[648,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IfJR11nDwj8D0mjZVF7Uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[649,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YCfkOLKNxb8Uhz6wBHPAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[650,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YT6MHjIm5T/jeAhB+R7rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[651,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DlNAJISP5T++HZvNIPzIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[652,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vHERRq8h2L+wPUlw8BzUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[653,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NCQWHJt04b93x00I9KnjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[654,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bz4fZ589zj+dHUZSJ3zmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[655,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i/MVS4cu4z9yfm9Xkc7fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[656,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZIDSytMZ0j/iSekg8S/Zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[657,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JE1Fn9qr6j/cH/nLNGrDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[658,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DXk/jR+hyD8XoHqGmZDrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[659,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o9kgRwil07/C1kZ2WhjZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[660,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q3Ur/zJw4T8xqO7sFTXkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[661,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"06xTT++23b/x1MQv21nVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[662,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Uw/byOGXlz84eDm7g06nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[663,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yiDs2UHZ6L/T2O7MOGHjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[664,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MOcJQD98579+GieeCBXnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[665,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"d7prkBeGxT+7bRs6xoHAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[666,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4sK/tKob6j/g/DoCzQfTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[667,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qa+1QcGM1T/dAmdmjyXrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[668,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lu7TQ0oJ3z9F6muPRV/ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[669,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9bQkrlPV0b/JgS37+x/Jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[670,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hxKaI1WD0L/kNFIcy46TPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[671,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"imTc/U/F6b8+4LkkfrLfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[672,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WCU0vPjr6L8ed/P+YNTiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[673,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P8e6vLeX478GJhV39F/fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[674,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0FzjBEXYoj905we6k+favw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[675,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"d5fQIpuP4L8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[676,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SaSTRmX24j+Jo5+BaAO1Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[677,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kiLllQl51j9BnDyHIfLjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[678,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xXgvtt125L9OqiXwXtzivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[679,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"31pvKxzH4b/kvfzulqzlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[680,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KrlmsAkywT8ynq62d93Zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[681,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qxouCQdX4z/LLBQjbabOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[682,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rJ24HTe+xD/qkhvlRN3lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[683,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qih+U+EP4z9eU8let+bZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[684,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r9t//e2j1b/dxWtkQVbfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[685,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q3uUMdqWwb/HpOiPPnSwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[686,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"F3/6Q3Gn3r8+i0pLJkvZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[687,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lex0VxDe4b+vn5Or4DPiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[688,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9yXukrjJzD+3q7Ec8tbWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[689,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z/AmXB1f6D9pdOVP7YjFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[690,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QHw6Ahkbyz9nOeFRI17pPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[691,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2Agj52Os4j9ElZHSV2vivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[692,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Um4KupYD2b8biRODoBfXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[693,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uUgt6TNaob/9UwwnGA2QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[694,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Piv4yMh/5r8a/+q0xr3hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[695,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T90O5W3R5b9pG4bZMqLlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[696,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0ico4/mNxD9SkEZAJXXLvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[697,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BpIP+a/f5z+OE3vYGk3QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[698,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lzwZKPLf0j/Jli6ZQAnpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[699,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7d7skjE64T9T4PcEfybhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[700,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MakWWdo50r/+AfSESiHSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[701,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kK1Cx640yL9qXerRd8B6vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[702,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"X6m4DTMF57/ayjbcQjHfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[703,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Zlg0VsB+5r9SYsgS8NLiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[704,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Tdg7SHlnsz9vrOXhviTXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[705,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RSEHvZY55D+tcNO+DNnAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[706,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lw9IMsYd0z9Ns5ED3g/lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[707,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ttn7eh485j88F+HFrXjhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[708,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RtZkD2lb0L+UWNM+nCnevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[709,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nnh7rRHbq79NBPWpOWi8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3523\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3520\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3521\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3522\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3524\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3525\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3537\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3530\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3527\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3528\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3529\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[636,637,637,637,637,638,639,640,641,642,643,644,644,644,644,645,646,647,648,648,648,648,649,651,651,651,651,652,653,654,654,654,654,655,655,655,655,656,657,658,659,659,659,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,673,673,673,674,676,677]],[\"end\",[707,685,693,701,709,708,709,678,679,680,681,679,687,695,703,682,683,684,680,688,696,704,685,681,689,697,705,686,687,682,690,698,706,683,691,699,707,688,689,690,684,692,700,708,691,692,693,694,695,696,697,698,699,700,701,702,703,678,686,694,702,704,705,706]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3531\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3532\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3536\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3533\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3534\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3494\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3507\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3508\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3514\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3513\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3515\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3516\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3517\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3538\",\"attributes\":{\"renderers\":[{\"id\":\"p3530\"},{\"id\":\"p3523\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3502\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3503\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3504\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3505\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3497\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3498\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3499\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3500\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3501\",\"attributes\":{\"axis\":{\"id\":\"p3497\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3506\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3502\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"6ff19eaf-6dd1-47d1-8465-97470e6a9bd6\",\"roots\":{\"p3486\":\"b8c36049-90a6-4744-a088-42ba4edb2ce1\"},\"root_ids\":[\"p3486\"],\"notebook_comms_target\":\"p3539\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3486" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"91e9deb7-af33-441f-a705-c927635bbc2a\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3614\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3615\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3616\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3623\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3624\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3621\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3646\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3663\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[636,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s4LgSVMCzD8Pdi8mDR3kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[637,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mA6fkjRQ6D/YMatqkKTPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[638,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i+nSlHqs1j9VIrsy6bXqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[639,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0PygdAVH6j++W4nZna7LPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[640,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XF63qrhf7L9y0B3G+S7Mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[641,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DEC7yyRg4r88c88MsarSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[642,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EO6HS99Q0r/zRJK7u53kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[643,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FHBL3PY54j8OB8CZZd7Vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[644,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iB19Mpjv5L8RrLeobujUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[645,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LPLTe+rP1b+MWhkcQdPrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[646,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"so7brbAH1j+WxCangbvmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[647,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SlAMcO1I1z//vfJdLMzmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[648,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"atYNCspf0r80zWpcrATnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[649,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bpT3/e/b5z+zb1YWcoLHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[650,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f558Vh6w5b/5m+sug63hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[651,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v6YkE6Hw4T//n1C8x1jRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[652,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y6h24H6D5r+LESLLxZ/Gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[653,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ft02kNXL5b+yvptEUYvZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[654,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TR9AtlYx1L+pckgJoi3pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[655,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZyCRHWkF0j+e0/D1LzLlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[656,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9OtrSa1/0b9nfj1dSCjpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[657,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iU283jPR3z/vaAcQpN7Pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[658,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"90dBFQ272L+fajEHKx/qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[659,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dp2FeDyb2T+vuc4zcwfpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[660,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LXCmQ4tp0T9C73cBvGDivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[661,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dy3Np9oZ3D+JXrZwwHXrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[662,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FFXWFGbe6T9YsolDf47TPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[663,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q7T9G/K76r9vITbkwSrRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[664,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b0Uw7CX/5b8lKockPlHRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[665,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H+pdw1iB1r8dDJBr8kfoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[666,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KXvE9ksd4z/1AayGUH7Lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[667,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LcvznrlP0b9BG2ESjfHqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[668,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NWC5UN/q0T9RjZe5H9Pnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[669,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PqkXKr7c3T8HZijxBZDoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[670,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z28dZBEk5j9gBqt5rjXRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[671,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QYA+QpF76791n4M2hbbDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[672,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iKkJ5+KG57+Obyacd4bWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[673,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vE+aR5ms6b/w2R4ZobDJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[674,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N5tMUqchzL/LJ0PIvfLmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[675,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D82yG+1NVLFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[676,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Jcw6TCZs5D/0TdNoHTTTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[677,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fYzUz88N0r/WkQnZPiXmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3651\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3648\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3649\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3650\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3652\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3653\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3665\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3658\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3655\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3656\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3657\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[636,637,637,637,637,638,640,641,642,643,644,644,644,645,646,647,648,648,648,651,651,651,652,654,654,654,655,655,659,659,663,671]],[\"end\",[655,649,662,670,639,659,673,644,648,651,672,653,664,654,655,659,674,656,665,676,657,666,673,677,658,667,668,660,661,669,673,673]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3659\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3660\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3664\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3661\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3662\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3622\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3635\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3636\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3642\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3641\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3643\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3644\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3645\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3666\",\"attributes\":{\"renderers\":[{\"id\":\"p3658\"},{\"id\":\"p3651\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3630\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3631\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3632\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3633\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3625\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3626\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3627\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3628\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3629\",\"attributes\":{\"axis\":{\"id\":\"p3625\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3634\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3630\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"91e9deb7-af33-441f-a705-c927635bbc2a\",\"roots\":{\"p3614\":\"de705720-84fb-48d6-8855-3dd6405d212d\"},\"root_ids\":[\"p3614\"],\"notebook_comms_target\":\"p3667\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3614" } }, "output_type": "display_data" } ], "source": [ "class PupilsAndTeachers(p2n.LocationDesigner):\n", " def filter(self, agent):\n", " return agent.status in [\"teacher\", \"pupil\"]\n", "\n", " def bridge(self, agent):\n", " return agent.status\n", "\n", "\n", "creator.create(df=df_school, location_designers=[PupilsAndTeachers], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What happened?\n", "If you take a closer look, you can see that there is still one location for one edge beteween one teacher and one pupil.\n", "However, teachers are assigned to more than one location of this type.\n", "This is because the LocationDesigner attribute `recycle` is set to `True` by default.\n", "If `recycle` is `True` the creator builds as many locations as needed to assign every agent at least to one instance of the corresponding location type.\n", "That means that the agents with the most frequent value returned by `bridge()` determine the number of the location instances to build.\n", "Therefore it can be that agents from the other groups are assigned multiple times so that everybody has a partner.\n", "\n", "To turn this behavior off, set `recycle` to `False`.\n", "As a result, nobody will be assigned multiple times and the agents with the least frequent value determine the number of locations of this type.\n", "In the following, we set `recycle` ot `False` and thus only get 8 location instances of this type, as there are only 8 teachers." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"44a944f2-5d64-4cb0-8c08-a539aae0bcb0\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3710\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3711\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3712\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3719\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3720\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3717\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3742\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3759\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[710,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cs+VT22tub92gegQXoDsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[711,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fWWDYPFicL8BWfjRSkXrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[712,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9u8UmheM6b/h1zFei5/jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[713,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TUANT8Mc1D+KMVzkA9LNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[714,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4NNuoGaQ67+S/I6vUHraPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[715,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y0lA9UEI3T8hqqygkRbmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[716,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1F8gEMXY6T+8YYMcCxPZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[717,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mMA9CEuoyL++8F7N4KibPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[718,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3ECpZuQV2j9OewNabAfHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[719,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZgBLExfo6r/uujICW8XHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[720,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uJpStz7V6z9NbuH0xXK8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[721,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+XLKXuHi4L9vigheXrrmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[722,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bO9/nGMh6L8y4r7RRpnaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[723,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HQ7sZC8y57/0mUJVHnbkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[724,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PM+U5PLI4T/ndUaAjLfpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[725,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z4SpYBdC2T/ge2+Rc8Xovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[726,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hmeHgRRd1D9X+zmxTjTuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[727,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AzJiWZ7Wzb9XO1Xw6f7uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[728,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ccbarDwD5j9KiJ4WS5/YPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[729,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1My86eQyxL/Y3DfnBl/APw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[730,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"baOUfYxh6D8K5WGT97exPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[731,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L0+tKN6tzb/M3vUuLUvpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[732,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uAI0a5TJ07+F4bQkJyPtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[733,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RrRDea9b7b9kQ0b58kzQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[734,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lxr7DrH24z9rjsM8RVDqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[735,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eZ9VACuh479oHY+ACjzpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[736,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3lqT9WJ07j++/QuIPCnRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[737,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kuorG8deuz8mySBT/8nvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[738,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LOX8zkIX7D+OwfqjrSbgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[739,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ihvr3P5n4b9Z4x+XTGjrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[740,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y5INgKq05j/z8YNU70/hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[741,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XfWx56Q1xD8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[742,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Yb58lA1W7b+y+gYZHYOgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[743,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vgHkRcSv7L9rJuMoVbXHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[744,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e9r9ELex6j/EKYZs6XPgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[745,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0mBnRkJ25z/8PDvy8y/mPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[746,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CtC4Civktb9n8DFPMnjuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[747,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nEdijK0q6r9uFJOVLx/hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[748,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9yydoQMz3L8HHqKOs3/rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[749,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"clde7E+oyz/uhKDzewHmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[750,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Du6oZyjp7z9zuUxNqNbGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[751,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gzRdgXud1z9LnaKibGLsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[752,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"faFWt/KgrL+BU2FDwonrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[753,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5/fhWVF66L/iNnXovcHhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[754,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zq2KFF611j+O4WxpxUDJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[755,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UKgedqb66b8cghhmeWnbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[756,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IXdMx/ow2j+sJZHELArnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[757,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gmwxZ5rJ5z+Iyv+hGl/YPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[758,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TjPZxhHYxL9pApoBh7eyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[759,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"glb4cyqR7L9UnAEJNfrKvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3747\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3744\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3745\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3746\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\",\"PupilsAndTeachers\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3748\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3749\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3761\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3754\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3751\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3752\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3753\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[710,711,712,713,714,715,716,717,718,719,722,725,728,729,733,747]],[\"end\",[752,752,753,754,755,756,757,758,754,759,755,756,757,758,759,753]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3755\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3756\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3760\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3757\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3758\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3718\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3731\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3732\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3738\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3737\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3739\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3740\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3741\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3762\",\"attributes\":{\"renderers\":[{\"id\":\"p3754\"},{\"id\":\"p3747\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3726\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3727\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3728\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3729\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3721\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3722\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3723\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3724\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3725\",\"attributes\":{\"axis\":{\"id\":\"p3721\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3730\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3726\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"44a944f2-5d64-4cb0-8c08-a539aae0bcb0\",\"roots\":{\"p3710\":\"fa74b314-e8b4-4e21-99fb-8e716141a454\"},\"root_ids\":[\"p3710\"],\"notebook_comms_target\":\"p3763\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3710" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"f23db26c-510d-48e2-a1ec-687db0eeefd4\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3814\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3815\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3816\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3823\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3824\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3821\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3846\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3863\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[710,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Mx877d9V2L+63IsotFzpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[711,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"krC4WhgG2786FZRf1XToPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[712,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E5gfxb/W6L/uLQXdLhLMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[713,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QtpUWneO5r9lqk/+UQHmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[714,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6sWc8csQ6j+YpWpeUbnkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[715,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qO53aLzcmr+6zfBlL2zsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[716,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GW7D2KB53T+TIbaBJ0Ckvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[717,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OC7DvnMI2j/RdbrHESPmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[718,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qqcCru6w5r/WvC2PLG3kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[719,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QjxodE5ZzT/j/A84IHbmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[720,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"48e+cIYn4r8x/E4f18Dsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[721,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YdmckJ0/vD/wOB/PcxDtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[722,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vM00/QSw6D+lR6krZZ3mPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[723,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E5TwtGDw5L/4IjKUP33nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[724,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BOBANJ2F2b/ONXt3irnrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[725,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oowdnlZOn7/VpPrRB1buPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[726,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L9tENmFF67+LqexE233gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[727,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2I6US32I779acW7Jom/Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[728,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bFhBNIKE2z+TPz1VmX+0vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[729,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LEUa314+1z9+fKmJVUHlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[730,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4w/LqQvU0D/VvLtJ76nvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[731,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jQ+wuj115b+PydNCol7cPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[732,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"U6ufX1B27T8zE8kL5RTTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[733,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4UZ8/YV/yT+gBpA71iHlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[734,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c4ucP0mi5j+kZrADjITjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[735,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Gk/iMra/s7+iRgVv0ZTuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[736,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L/Wv+D5wtuePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[737,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vYwUy2sQ1j/g+vjqieTrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[738,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZXWvC4hy6T+xmajL1ILmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[739,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EA53ulNK6T9Jft4rrnPYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[740,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fZse/kYp7r+z88zC35zdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[741,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OVzsjkdZ67+WZNHhsCnCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[742,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uCXK31cT3D80dSY+qKHqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[743,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Xu69HCgP4T9jJHCSharrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[744,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3eYjDZRJ6T+1NCM6fJrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[745,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Cv7cqYQD7z8HvPo397LBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[746,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wnaoO6Mg6r/yAyghUV/ePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[747,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yC6Yg7s4578f/G8yDUfMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[748,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FOGIiWa07j87M9ycV+axvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[749,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Cg+atB822r8iFQ2advjtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[750,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"evfWxtsa7j+IyFQS+vTVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[751,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"h0fHTlHwzb8L9BZEBWPrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3851\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3848\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3849\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3850\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3852\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3853\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3865\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3858\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3855\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3856\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3857\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1]],[\"start\",[710,712,713,714,715,716,717,719]],[\"end\",[711,747,718,722,725,728,729,733]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3859\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3860\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3864\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3861\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3862\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3822\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3835\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3836\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3842\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3841\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3843\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3844\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3845\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3866\",\"attributes\":{\"renderers\":[{\"id\":\"p3858\"},{\"id\":\"p3851\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3830\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3831\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3832\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3833\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3825\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3826\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3827\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3828\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3829\",\"attributes\":{\"axis\":{\"id\":\"p3825\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3834\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3830\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"f23db26c-510d-48e2-a1ec-687db0eeefd4\",\"roots\":{\"p3814\":\"fd538918-1999-4243-a1cf-52d361f8714b\"},\"root_ids\":[\"p3814\"],\"notebook_comms_target\":\"p3867\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3814" } }, "output_type": "display_data" } ], "source": [ "class PupilsAndTeachers(p2n.LocationDesigner):\n", " recycle = False\n", "\n", " def filter(self, agent):\n", " return agent.status in [\"teacher\", \"pupil\"]\n", "\n", " def bridge(self, agent):\n", " return agent.status\n", "\n", "\n", "creator.create(df=df_school, location_designers=[PupilsAndTeachers], clear=True)\n", "\n", "inspector.plot_networks(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The detailed way: melt()\n", "\n", "The method `bridge()` is a quick way to bring together different agents.\n", "However, it is limited.\n", "To have more controll over the composition of agents that are assigned to a location, we have to *melt* different locations together.\n", "To do this, we have to define at least three location classes: Two or more locations that are the components that get melted into one location and one location that melts those components together.\n", "\n", "Assume we want to create classrooms that consist of one teacher and four pupils.\n", "To create such a location, we first define a `MeltLocationDesigner` (`TeachersInClassRoom`) that consists of only one teacher.\n", "Then we define a `MeltLocationDesignerDesigner` (`PupilsInClassRoom`) that consists of four pupils.\n", "Finally, we define a location (`ClassRoom`) that uses the method `melt()` to melt the two previously defined locations into one location.\n", "The method `melt()` must return a tuple or list of at least two location classes that shall be melted into one." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "# a location for teachers\n", "class TeachersInClassRoom(p2n.MeltLocationDesigner):\n", " n_agents = 1\n", "\n", " def filter(self, agent):\n", " return agent.status == \"teacher\"\n", "\n", "\n", "# a location for pupils\n", "class PupilsInClassRoom(p2n.MeltLocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", "\n", "# a location for teachers and pupils\n", "class ClassRoom(p2n.LocationDesigner):\n", " def melt(self):\n", " return TeachersInClassRoom, PupilsInClassRoom" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"2defa3ea-6c54-43d4-849c-d40802108956\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p3910\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3911\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p3912\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3919\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p3920\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p3917\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p3942\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p3959\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[760,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BOlg5g0V1L+orQMmWBznPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[761,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+3WV3heU1r/WVciSQWjmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[762,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mXwVWdit3b/AXteBPQ3nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[763,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ga+/puHJ2L/B4z3TQGTkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[764,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ObDgfVMJ2L/y5yCFWgDnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[765,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"V9pXFwfE278yq+/vHZbqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[766,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BW8dKM1v2b94KVYukCjlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[767,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6Q0xUTqv3r+Cjsu0ddzovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[768,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hqeBnV/z6D9mSOal49vTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[769,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ls+tgnSq5T+4X/q/iF/Zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[770,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"metKE1YW6j8Sz5GjJ2fYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[771,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"95Y2kDj56D90GYft++Hbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[772,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6DBCfJEt4b+8N7UoJ2asvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[773,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/GRUbDkL5z9nZ5KpkNbTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[774,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IAPSUqcf6T/c/K02rfrovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[775,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Zh8NJ/pD779jVv7tmp+tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[776,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2QlLnt+03L9SWlsEGXKmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[777,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NrVLvGAA2r+6x7HQoTmgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[778,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IkPSq4rb0j/XS0ErQpXnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[779,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HfWxGqIgyj/DuNLVho/pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[780,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eH3XwGO73b/pCmszXGq3vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[781,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rknNqwvO4L8f9jBdZ6KZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[782,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3i1Il14b778Nxl0q75ipvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[783,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+Lp5bi/a4z9JRpujGRzcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[784,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UzFMnOVp7b/8SdwbD260Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[785,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eJwM6Brc6r8+6uh64hp8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[786,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"////////779qDsRoQ3NOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[787,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jM85x/B7xT+654JXvEjpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[788,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uMIf8fdSyz9YigRAUInqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[789,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YN80k+payz9mmhLpJm3mPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[790,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e1XHGX/y0T9sT52emd3qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[791,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Bnk782zJwj+JKoQaq1jovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[792,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mAryS1iK0D+M4FH1M53ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[793,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"81NFAhiR0D/O51C8l/Dlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[794,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"h/Y9dlG+xT9ypm9P0mTkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[795,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vz6Ln/eD5j9al6V7PcnhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[796,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wLgoOceQ6D9Tm0hs0HjhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[797,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BPRwJ7I+1b8/1YdeZA3ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[798,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"u3P06MhW6T8etENJPoPfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[799,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ket/vlTA7j/mHmTFgjajvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[800,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DFI7AN4f6D9ru5QMesbbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[801,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"avIA6oFn27/XjbeB5IPpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[802,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v/K7Mnmi5z+boo22fXnXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[803,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hOy8TJk43r8obfeE4x+Wvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[804,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o60N33te7b9E9tk4OciFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[805,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kWEoFVvqzT8Lagcqb4boPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[806,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HjpYKouhyT/7N/4F8dzmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[807,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KWdud7Kt5j/M0sIO+QvfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[808,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+LsT83Q22b+9x5LPgPbmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[809,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fYmSfywj2r+yd4Msievnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3947\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3944\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3945\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3946\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3948\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3949\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p3961\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p3954\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p3951\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p3952\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p3953\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[760,761,762,763,764,765,766,767,768,769,770,771,772,773,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,800,801]],[\"end\",[808,808,808,808,809,809,809,809,802,802,802,802,803,802,804,803,803,805,806,803,803,804,807,804,804,804,805,805,805,805,806,806,806,806,807,807,809,807,807,808]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p3955\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p3956\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p3960\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3957\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p3958\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p3918\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p3931\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p3932\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p3938\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p3937\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p3939\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p3940\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p3941\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p3962\",\"attributes\":{\"renderers\":[{\"id\":\"p3954\"},{\"id\":\"p3947\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3926\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3927\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3928\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3929\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p3921\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p3922\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p3923\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p3924\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3925\",\"attributes\":{\"axis\":{\"id\":\"p3921\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p3930\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p3926\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"2defa3ea-6c54-43d4-849c-d40802108956\",\"roots\":{\"p3910\":\"c73590da-89d4-4a9a-9d42-b26f9612b036\"},\"root_ids\":[\"p3910\"],\"notebook_comms_target\":\"p3963\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p3910" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"6caef0a9-6c1f-4fce-b530-c3554fc7ad48\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4014\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4015\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4016\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4023\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4024\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4021\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4046\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4063\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[760,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Ogvvhiuwz8thQocSE/svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[761,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XQuXjQiOyj9kCFlZuqntvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[762,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yS0yxfQLzD8zX30r8jzsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[763,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DBw5SApKxT84KG4TSWDtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[764,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eD3nz2A07T/+APBGI/zNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[765,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8jtHGYk07T/0ZoFnP8/IPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[766,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EKD9q4KR7j9b7NPZ23XIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[767,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sAbC/o5n7z9XSDEtBGjNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[768,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"npVdng953z+Zt+bQyVfXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[769,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OjZ+IxjP4D/afHvrzMbVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[770,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pFwsC2w+3T+pa+O/IPnVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[771,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1xpBGHA64D9wJAhmHTrTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[772,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kxsQKfBd47958Cla2He0vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[773,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hJ93wVH93T9RJLJ5nILTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[774,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D+K4BjtKWPWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[775,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"h153QDb4dz+Tdqa5wf3UPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[776,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qLDIsAZC4r9yTMKTbd26vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[777,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"84mmXWO64r8ANwkn9Y6lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[778,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wGv9MEez4r/5eApJbYrovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[779,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1WY40n7a1D9zIwCafGvsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[780,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j4tgIdxv4b8XJ/TnHf2mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[781,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D9o4yxkn4b+FmcjNZrS1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[782,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"koNIEqE0or9I9kTAfGTYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[783,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kwvmPBd2678WIxWbRY/fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[784,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rdPPYXXerb81+kbClyzWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[785,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v68n6rCVbz9274HYUabXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[786,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DjgH+6TAoL9PSK/S4jTUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[787,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmL3+o7J4b9LQb4Yl4Dpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[788,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CDndOsyL4L+3VTBCKuDovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[789,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmcBI23o4L/9L5NuPbjnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[790,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0wDH+GoY4r/k24rDzVfnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[791,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ud5GD7VM0z/hTOf5pa7tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[792,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TSPQlbLv1j9+ey6x+BrsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[793,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UPX6mojU0j8YTwNUQ/brPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[794,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bEtJAXVB1j+sN2dc297tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[795,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DAUrxWwn7b8nAga8gtXcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[796,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cBqLYrfa7L/rkX6w3m3fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[797,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r8Jv5oQT7j+CzT4T9jfQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[798,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N5Ua7WYN7L/jca4s7GXbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[799,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QkaCl4xk479SJeYRPk/vPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[800,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aq6reEcp67/3B9JTpjbdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[801,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bIepWTTexz+Ah8n+KXXrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4051\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4048\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4049\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4050\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4052\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4053\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4065\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4058\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4055\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4056\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4057\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[760,760,760,760,761,761,761,762,762,763,764,764,764,764,765,765,765,766,766,767,768,768,768,768,769,769,769,770,770,771,772,772,772,772,775,775,775,775,776,776,776,777,777,778,778,778,778,779,779,779,779,780,782,782,782,783,783,783,783,784,784,785,787,787,787,788,788,789,791,791,791,792,792,793,795,795,795,796,796,798]],[\"end\",[801,761,762,763,801,762,763,801,763,801,797,765,766,767,797,766,767,797,767,797,769,770,771,773,770,771,773,771,773,773,776,777,780,781,782,784,785,786,777,780,781,780,781,787,788,789,790,791,792,793,794,781,784,785,786,800,795,796,798,785,786,786,788,789,790,789,790,790,792,793,794,793,794,794,800,796,798,800,798,800]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4059\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4060\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4064\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4061\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4062\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4022\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4035\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4036\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4042\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4041\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4043\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4044\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4045\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4066\",\"attributes\":{\"renderers\":[{\"id\":\"p4058\"},{\"id\":\"p4051\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4030\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4031\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4032\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4033\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4025\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4026\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4027\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4028\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4029\",\"attributes\":{\"axis\":{\"id\":\"p4025\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4034\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4030\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"6caef0a9-6c1f-4fce-b530-c3554fc7ad48\",\"roots\":{\"p4014\":\"e041afe1-0bc0-4df4-8ffa-676c5b683ff6\"},\"root_ids\":[\"p4014\"],\"notebook_comms_target\":\"p4067\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4014" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "inspector.plot_networks(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we bring back all other settings we made so far:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "class TeachersInClassRoom(p2n.MeltLocationDesigner):\n", " n_agents = 1\n", "\n", " def filter(self, agent):\n", " return agent.status == \"teacher\"\n", "\n", "\n", "class PupilsInClassRoom(p2n.MeltLocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", "\n", "class ClassRoom(p2n.LocationDesigner):\n", " def melt(self):\n", " return TeachersInClassRoom, PupilsInClassRoom\n", "\n", " def weight(self, agent):\n", " return agent.hours\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"57df8576-f3d5-42fa-a739-624c44b7bce6\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4110\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4111\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4112\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4119\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4120\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4117\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4142\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4159\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[810,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w39mi/Awx7+6xw0Yj3Ttvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[811,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"88wrJCMexL/wZxfWjcDrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[812,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TReI0nMfsj+qIntSlSG1Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[813,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BraU0Lk1vz9jFfY6ImCoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[814,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tGOMOAyywr/hCpI6f73uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[815,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sQ5AzxzzoD9EtmUpL3iVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[816,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k57YCLP73b/j1O8/OG3Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[817,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Wvb9645Ttb8EgM3fVl/svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[818,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"izSktrq5tz9MQwAIqaxwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[819,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EjrbFgSiuL/6oCTJkEXuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[820,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qBwddaFJ4L8HQnHV+SDAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[821,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1NhLR+MU0b8iTv9H2oPlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[822,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"O+o/i+Lx6T/fChKp6iXjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[823,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gsSHf+dT6j9ZKiKNSo/hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[824,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ihm+5tgl6T8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[825,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RoPhh6LsyL+kTOcrXFTlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[826,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UQedb/rv6b/Tod1nP+rDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[827,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"07fjmNsQxb8lBaJFmQznPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[828,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lp6Eoz4L0D/gBHbOZv/Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[829,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EA3p0Vic6r+VaRRvz2XOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[830,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TfhsOklq379kLaSZI86xvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[831,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E09upvU9zT8XS5puO3nWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[832,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2vczPfr53T96ZOLg7a7lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[833,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TPSfkjW32784ajN1lzuxvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[834,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9A74fsE76b9dbigIts7NPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[835,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sg3ZdbCq0z+5vMPwOKTSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[836,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DDDFFK0M7L+86vPdMivMPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[837,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jw/dyO5E4j9DEZqC22nmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[838,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z2sOYN6967/JRw6/L/vFPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[839,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9WNDnqR56D8lP9144QHkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[840,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qoDbP/bVjj8OOyB9EbGmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[841,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0msN0Bpz1D8id63KRDbWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[842,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gCcgr5u/0T+yVJ9iLCDYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[843,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MnBJFI6Q4D+4M33W1wfnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[844,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TVAORY5u4j9u5U0Z4YHkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[845,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WnVmvSbQ0L+JeZStcG/nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[846,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"frfoMxZ5y79Ubv2ig0voPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[847,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R2MrtS954D88LfaTQPLjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[848,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9+sMrj982r91rwFIaVjBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[849,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lOJpHsrk6L84N4PqfVDtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[850,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aIS/grmh6D9QW+uX3Wfgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[851,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A/k63Z7y5j9pTw2Nrs/ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[852,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vMx2vq8N3b+R+UTSOU67vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[853,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wgbnnpOYwL+bVIGyDt3svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[854,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MtcDgX2h4D9f9H7EaB3lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[855,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a7ZdbgMusT/rflGQFjKZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[856,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OvGbc9xp6D93at30Ghfivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[857,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uaFYHSWoy7/fGH7IhjXmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[858,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GdxTtRhV0T8WB1qu8tfUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[859,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1kjbfsZL6r9JStC5bKbJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4147\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4144\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4145\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4146\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4148\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4149\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4161\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4154\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4151\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4152\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4153\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,6,4,4,5,4,5,5,9,5,5,4,5,4,9,6,4,11,10,5,6,4,6,6,6,6,4,6,4,4,6,6,4,4,4,4,9,5,4,4]],[\"start\",[810,811,812,813,814,815,816,817,818,819,820,821,822,823,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,850,851]],[\"end\",[853,853,855,855,853,855,852,853,855,853,852,857,856,856,857,859,857,858,859,852,858,854,852,859,858,859,854,859,856,855,858,858,854,854,857,857,854,852,856,856]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.3333333333333333,0.5,0.16666666666666666,0.16666666666666666,0.3333333333333333,0.16666666666666666,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.16666666666666666,0.3333333333333333,0.16666666666666666,0.6666666666666666,0.5,0.16666666666666666,0.9999999999999999,0.8333333333333333,0.3333333333333333,0.5,0.16666666666666666,0.5,0.5,0.5,0.5,0.16666666666666666,0.5,0.16666666666666666,0.16666666666666666,0.5,0.5,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.16666666666666666,0.6666666666666666,0.3333333333333333,0.16666666666666666,0.16666666666666666]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4155\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4156\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4160\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4157\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4158\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4118\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4131\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4132\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4138\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4137\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4139\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4140\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4141\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4162\",\"attributes\":{\"renderers\":[{\"id\":\"p4154\"},{\"id\":\"p4147\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4126\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4127\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4128\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4129\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4121\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4122\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4123\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4124\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4125\",\"attributes\":{\"axis\":{\"id\":\"p4121\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4130\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4126\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"57df8576-f3d5-42fa-a739-624c44b7bce6\",\"roots\":{\"p4110\":\"b6ac6f87-af7f-4dc1-a464-4f38628be362\"},\"root_ids\":[\"p4110\"],\"notebook_comms_target\":\"p4163\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4110" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"14773cd3-7982-4c30-8f81-8c5aad00b1d7\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4214\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4215\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4216\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4223\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4224\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4221\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4246\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4263\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[810,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bPdoTUIfu78OCdgdZXvXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[811,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jQEi0lcys7/nqtx2l7LYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[812,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/5CQobWJwT8Y11dlzITiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[813,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6W9w985LwT8mpIEzqyfhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[814,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"91IiDF7Hsb8LlmY1CVLXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[815,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3iZGhoEFvT8ctI5BQSfiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[816,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oUH82stCvD/Y0AtKe3vBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[817,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bGNHP+Qeub/XzR9D0fHYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[818,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hOtWD4SvvD+SUD7nCWXhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[819,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tPUmVAHXtr+ghkjh/qTWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[820,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l+aEi+rSsj/15fRkawDCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[821,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sMwKKFDiqT+aZlp5Tl3mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[822,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6WE6ySai1r+OYr2DIP6Yvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[823,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZI9iKAjZ17/oK8a208KGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[824,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nKGNg4uE6z9ARiAf5Y/hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[825,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b0cq13pOoj+H5Pmb/GHnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[826,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Sk87khxc4L898rTaIk7LPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[827,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gmPr23mJnz8U6pwOx3/mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[828,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RY9ZfcX+3z9Z3DKfFUCKvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[829,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Fkht/kUX4L91f9A4uSXQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[830,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9F6QNkh8tz8WTM+a16bCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[831,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VVZ8gkIU3z9VUgc1Otqmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[832,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AOQ8YFMRoj/m5Lkh1tHAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[833,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MyYHp6B5tD8ugZvWctm9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[834,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eWcJVcgU378HhzF3ADPNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[835,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gTUdYTog3j/iPg0jjj+evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[836,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QwScrBrM4L/JvuJESz/OPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[837,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"U6wThTi0eD8Pq/AdHqjCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[838,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mmte/5ke4L9BNzLGRbrNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[839,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OuNsI3I71r8U+snHkumCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[840,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rbn+j3gTwz9CtNhZEb3hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[841,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"94cC6NUW4D8dUxqB8UChvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[842,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AVeqpJam3j9GO1jtxX+Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[843,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qf+cKjZqqj8Mv9fftHPDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[844,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qoZQPM8yoT+DHjPxpf3FPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[845,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kKQJZW1wkD+J3axVqwDmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[846,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dfunbGgOgz9YMdyt7vbmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[847,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pcoJwXbBlT+R3X4D0c7DPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[848,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y0D1AuJruj91tY9md2e9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[849,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SmEUWQM2iD8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[850,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TmklO/V21b9HFEGG4Qegvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[851,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SdRQM4Yi1b+1A8jJHzJ2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4251\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4248\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4249\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4250\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4252\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4253\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4265\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4258\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4255\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4256\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4257\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,5,5,5,5,5,5,4,4,4,4,4,4,4,5,5,4,4,5,5,5,5,5,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,4,4,6,6,6,6,6,6,6,5,5,6,6,6,4,4,4,4,5,6,6,6,6,6,4,4,4,4,4,6,4,4,4,4,4]],[\"start\",[810,810,810,810,811,811,811,812,812,812,812,813,813,813,814,814,815,815,816,816,816,816,817,818,820,820,820,821,821,821,821,822,822,822,822,823,823,823,825,825,825,826,826,826,826,827,827,828,828,828,828,829,829,829,830,830,831,831,831,832,832,832,832,833,834,834,835,835,836,837,837,837,839,839,841,843,843,844,845,850]],[\"end\",[811,814,817,819,814,817,819,840,813,815,818,840,815,818,817,819,840,818,833,848,820,830,819,840,833,848,830,845,846,825,827,839,850,851,823,839,850,851,845,846,827,834,836,838,829,845,846,835,841,842,831,834,836,838,833,848,835,841,842,837,843,844,847,848,836,838,841,842,838,843,844,847,850,851,842,844,847,847,846,851]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.6666666666666666,0.6666666666666666,0.6666666666666666,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,1.0,1.0,1.0,1.0,0.3333333333333333,0.3333333333333333,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.6666666666666666,0.6666666666666666,1.0,1.0,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.6666666666666666,1.0,1.0,1.0,1.0,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,1.0,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333,0.3333333333333333]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4259\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4260\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4264\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4261\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4262\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4222\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4235\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4236\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4242\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4241\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4243\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4244\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4245\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4266\",\"attributes\":{\"renderers\":[{\"id\":\"p4258\"},{\"id\":\"p4251\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4230\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4231\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4232\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4233\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4225\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4226\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4227\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4228\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4229\",\"attributes\":{\"axis\":{\"id\":\"p4225\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4234\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4230\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"14773cd3-7982-4c30-8f81-8c5aad00b1d7\",\"roots\":{\"p4214\":\"a52d337e-aa0b-4eb2-aa43-c8fe927dabdd\"},\"root_ids\":[\"p4214\"],\"notebook_comms_target\":\"p4267\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4214" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[ClassRoom], clear=True)\n", "inspector.plot_networks(agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## More than one location\n", "\n", "The melting of locations combines different locations into one location, but does not create multiple different location classes.\n", "If we want to generate multiple different location types, we have to simply feed more than one location class into the `Creator`.\n", "\n", "In the following, we introduce a `School` as a second type of location.\n", "(In order to keep the code clean, we skip the melting of locations temporarely.)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", " def weight(self, agent):\n", " return agent.hours\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])\n", "\n", "\n", "class School(p2n.LocationDesigner):\n", " n_locations = 2" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"e59e6273-f21b-4a2d-a9bc-77800eca96aa\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4310\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4311\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4312\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4319\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4320\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4317\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4342\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4359\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[860,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n9sMXgzrzb8WspGjxHHbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[861,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rR+KQg7a6L/ospRd2sPhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[862,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQYeAzZ20L/tsk6kExx9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[863,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FJ9XFVXQyL91uZ65Ydizvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[864,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DX8y77bK0b96aHTQpxXgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[865,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NX6I0ipwxr9UTrOU9A6pPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[866,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6kxX4Pzs3r8NXJueSavTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[867,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0I00U2Gjvr+bUSH73+zYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[868,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dmInaMPt478J7mD12WXjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[869,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qhVuzsHP079+pmz1lW7iPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[870,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QCABTRRm4r9SyT+ad07Wvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[871,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+XaQb7Df4b/4O9Sso7zHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[872,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CEbcVZP/779N4cUj/8rQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[873,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T56EHruB4r+qXmuJW6LbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[874,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L+oqhZ50BPAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[875,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LiblAtZK7D9SMuvOreOwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[876,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7nrIwgjb1z/AhSGpqxLUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[877,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fQka6WS7s7+mvpl4mE/Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[878,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3pPffcF+5z+VZRnJfTKsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[879,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kF6vKoTr7D/qgBTlcD+uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[880,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"S4BMaT/3ur+bx2LOz33cvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[881,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"STvaC/G76z+IUbh/x8zZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[882,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vqGtb48d4T9BiOOZhtzgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[883,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3r0bJXK16D9+YH5o2SPBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[884,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dfLuFV9l4T+/a2i44k/WPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[885,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xvcHAe/N6j86F8bwdPXUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[886,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"77qVxLmv4j8pt1adYFvRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[887,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4HUPZWz23j8L12sxgT3jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[888,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j/APqCv13T+TUpabMVXQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[889,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zkB5u4cDw79IWY7UkcXIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[890,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iYh17gmSwz/7UdiUK2DEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[891,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p339DxW17j8WYDdCQWjNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[892,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qKbLkJvf6z+eY7c3kprPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[893,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xp6RhI0O5D+K0EVLzlrgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[894,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gFhksx0L5j8BMZsh0F3ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[895,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IkwQR9N8vb8hPp+cLZnLvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[896,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uf+BQFmd4L/nFHfDAd6+vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[897,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rJtiFC517b+RiPEAC0baPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[898,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eNI5iZGZ4L+O9F7cm3bYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[899,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YmZO0yfD7r/ZcsjalIJ/vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[900,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VIgfMNLt5L80cQmoitvXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[901,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OwbnHz035b/NPxbHiw/SPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[902,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VMmOvY1+2L8oX1emyhzcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[903,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EyNsmpE7w7+wbbbl397gPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[904,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R0+EwBEs4z+iQfbiY+/kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[905,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qPugjt/fq7+nsnwiqnSzvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[906,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TP5Qi78N3r/ozMawg/LTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[907,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pD5/R2t81b/8kCg/giLNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[908,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ku2vdXeh7j8b0L+CQ2PVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[909,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BVHI/z2M3j92nUcOaXLYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[910,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"77YfE/qf4b+vU4qgTxTEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[911,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0eqw2OwQ3j9J1JbZMGrCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4347\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4344\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4345\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4346\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"School\",\"School\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4348\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4349\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4361\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4354\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4351\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4352\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4353\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,1,1,4,1,4,1,5,1,4,1,5,1,5,1,1,5,1,5,1,4,1,1,4,1,1,1,6,1,4,1,1,1,5,1,6,1,4,1,1,6,1,6,1,6,1,4,1,6,1,4,1,4,1,6,1,6,1,4,1,4,1,4,1,4,1,1,5,1,1,4,1,4,1]],[\"start\",[860,860,861,862,862,863,863,864,864,865,865,866,866,867,867,868,869,869,870,870,871,871,872,873,873,874,875,876,876,877,877,878,879,880,880,881,881,882,882,883,884,884,885,885,886,886,887,887,888,888,889,889,890,890,891,891,892,892,893,893,894,894,895,895,896,896,897,898,898,899,900,900,901,901]],[\"end\",[903,910,910,905,910,905,910,903,910,905,910,902,910,903,910,910,903,910,902,910,907,910,910,906,910,910,911,909,911,907,911,911,911,902,911,908,911,904,911,911,909,911,908,911,909,911,904,911,909,911,906,911,905,911,908,911,908,911,904,911,904,911,907,911,907,910,910,902,910,910,906,910,906,910]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.75,0.25,0.25,0.5,0.25,0.5,0.25,0.75,0.25,0.5,0.25,0.75,0.25,0.75,0.25,0.25,0.75,0.25,0.75,0.25,0.5,0.25,0.25,0.5,0.25,0.25,0.25,1.0,0.25,0.5,0.25,0.25,0.25,0.75,0.25,1.0,0.25,0.5,0.25,0.25,1.0,0.25,1.0,0.25,1.0,0.25,0.5,0.25,1.0,0.25,0.5,0.25,0.5,0.25,1.0,0.25,1.0,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.25,0.75,0.25,0.25,0.5,0.25,0.5,0.25]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4355\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4356\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4360\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4357\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4358\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4318\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4331\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4332\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4338\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4337\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4339\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4340\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4341\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4362\",\"attributes\":{\"renderers\":[{\"id\":\"p4354\"},{\"id\":\"p4347\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4326\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4327\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4328\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4329\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4321\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4322\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4323\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4324\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4325\",\"attributes\":{\"axis\":{\"id\":\"p4321\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4330\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4326\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"e59e6273-f21b-4a2d-a9bc-77800eca96aa\",\"roots\":{\"p4310\":\"bf8a7b30-771e-4206-95f6-25d3f581309a\"},\"root_ids\":[\"p4310\"],\"notebook_comms_target\":\"p4363\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4310" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"97a0f70f-fa03-4db9-ae97-3954d7a8e607\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4416\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4417\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4418\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4425\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4426\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4423\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4448\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4465\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[860,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DFJex5Gf1b878X1/zEjoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[861,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"egKerx8FzD9FusqXzuXqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[862,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6yCY4x8SzT/GYr4XeyLiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[863,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y1f13qijxj+gIcmBkVfePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[864,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LjlAfzM2yb/6YXvhFZ/pPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[865,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3uq188pLuj+e4mHi+vzhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[866,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Siyge5uLy79JWjWG3FfYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[867,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bAh7By+k1r84uuKOLOzrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[868,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UmbZNJdpuT97v8zMFxjqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[869,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b63HEfBCz78/8Fr4NUHtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[870,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"y+AP62pd1r/ZEVFKnVrgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[871,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oXlNTcimuT9NYH/2bunSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[872,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GuHA13EGlb9KknC6rqjvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[873,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ec7IPqpD0r9XqRyvZ4nbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[874,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B5VTR+c9w78AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[875,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wjBOZUKb0z8HUcievdrrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[876,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5Dol+tmiv79iExigMVznvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[877,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Dwp1qRGWqz/+cS8p+JPWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[878,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KokigIQz0z/U5ATZO1Livw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[879,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WWhjmeDO2D8fQ1KqOGbpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[880,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"69OyAnvTw7+ha0N1O1nHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[881,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7rzv9h3cwr+ihmfS6Vftvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[882,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9q6Q75tnzj+SryYDiVTmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[883,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H0LoiqYF2T/LNOu3nCflvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[884,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FkIrUQ6bzb/uEmqYya7nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[885,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"piLCQlmmqb9whViiP0brvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[886,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"spUoZYukpb+SICTlBfvjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[887,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QxtMZ+izuD+uJ6ejgYPmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[888,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pCGFF8GRxr+5Ef+wpsbjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[889,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XWMAhFdIpL9EKfwCx/DKvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[890,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+MTcJg5Sxz8dDjDh38HFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[891,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+goreMn/rT8cAyHRpqnuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[892,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"raCkCgCxpL9iG9LMH5Pvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[893,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7vSzcR4Yyj/0Q07YijLuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[894,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ps4p8VySwz+ZkFa2v43qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[895,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0dKlyo4Oxj/7AiCstdfVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[896,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mv6LDj+0jb/DppTwv+/QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[897,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2w9XcOevpb8Cp0P/7q3qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[898,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vnLeQMjayr+vYjbTQJrgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[899,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1VQXZbgJuj/YciOqWuHuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[900,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JHgu7E6osL88DaKIrQ7hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[901,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9s6Pg8UItL9u/aOjx3jbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4453\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4450\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4451\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4452\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4454\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4455\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4467\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4460\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4457\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4458\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4459\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,6,1,1,6,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,5,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,6,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,6,1,1,1,1,1,1,6,1,1,1,1,5,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,7,1,7,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,7,7,1,1,1,1,1,1,1,5,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,7,1,1,1,1,1,1,1,1,1,1,1,1,7,7,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,5,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5]],[\"start\",[860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,861,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,862,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,863,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,865,865,865,865,865,865,865,865,865,865,865,865,865,865,865,865,866,866,866,866,866,866,866,866,866,866,866,866,866,866,866,867,867,867,867,867,867,867,867,867,867,867,867,867,868,868,868,868,868,868,868,868,868,868,868,868,869,869,869,869,869,869,869,869,869,869,869,870,870,870,870,870,870,870,870,870,870,870,871,871,871,871,871,871,871,871,871,871,871,872,872,872,872,872,872,872,872,873,873,873,873,873,873,873,873,874,874,874,874,874,874,875,875,875,875,875,875,875,875,875,875,875,875,875,875,875,875,875,875,875,875,876,876,876,876,876,876,876,876,876,876,876,876,876,876,876,876,876,876,876,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,878,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,879,880,880,880,880,880,880,880,880,880,880,880,880,880,880,880,880,881,881,881,881,881,881,881,881,881,881,881,881,881,881,882,882,882,882,882,882,882,882,882,882,882,882,882,883,883,883,883,883,883,883,883,883,883,883,883,884,884,884,884,884,884,884,884,884,884,884,885,885,885,885,885,885,885,885,885,885,886,886,886,886,886,886,886,886,886,887,887,887,887,887,887,887,887,888,888,888,888,888,888,888,889,889,889,889,889,889,889,889,890,890,890,890,890,891,891,891,891,892,892,892,893,893,894,895,896,896,896,896,896,897,897,897,897,898,898,898,899,899,900]],[\"end\",[896,897,898,899,900,901,861,862,863,864,865,866,867,868,869,870,871,872,873,874,896,897,898,899,900,901,862,863,864,865,866,867,868,869,870,871,872,873,874,896,897,898,899,900,901,863,864,865,866,867,868,869,870,871,872,873,874,890,896,897,898,899,900,901,864,865,866,867,868,869,870,871,872,873,874,890,896,897,898,899,900,901,865,866,867,868,869,870,871,872,873,874,896,897,898,899,900,901,866,867,868,869,870,871,872,873,874,890,896,897,898,899,900,901,867,868,869,870,871,872,873,874,880,896,897,898,899,900,901,868,869,870,871,872,873,874,896,897,898,899,900,901,869,870,871,872,873,874,896,897,898,899,900,901,870,871,872,873,874,896,897,898,899,900,901,871,872,873,874,880,896,897,898,899,900,901,872,873,874,877,895,896,897,898,899,900,901,873,874,896,897,898,899,900,901,874,889,896,897,898,899,900,901,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,898,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,882,883,884,885,886,887,888,889,890,891,892,893,894,895,883,884,885,886,887,888,889,890,891,892,893,894,895,884,885,886,887,888,889,890,891,892,893,894,895,885,886,887,888,889,890,891,892,893,894,895,886,887,888,889,890,891,892,893,894,895,887,888,889,890,891,892,893,894,895,888,889,890,891,892,893,894,895,889,890,891,892,893,894,895,900,901,890,891,892,893,894,895,891,892,893,894,895,892,893,894,895,893,894,895,894,895,895,896,897,898,899,900,901,898,899,900,901,899,900,901,900,901,901]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.8,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.6000000000000001,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.2,1.0,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.2,0.2,0.2,0.2,0.2,1.0,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,1.0,0.2,0.2,0.2,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4461\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4462\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4466\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4463\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4464\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4424\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4437\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4438\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4444\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4443\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4445\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4446\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4447\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4468\",\"attributes\":{\"renderers\":[{\"id\":\"p4460\"},{\"id\":\"p4453\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4432\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4433\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4434\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4435\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4427\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4428\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4429\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4430\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4431\",\"attributes\":{\"axis\":{\"id\":\"p4427\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4436\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4432\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"97a0f70f-fa03-4db9-ae97-3954d7a8e607\",\"roots\":{\"p4416\":\"b053a605-ac3b-4185-9049-9db782763b45\"},\"root_ids\":[\"p4416\"],\"notebook_comms_target\":\"p4469\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4416" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[ClassRoom, School], clear=True)\n", "inspector.plot_networks(location_color=\"label\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Nesting locations\n", "The plot above shows two big clusters.\n", "Each of those clusters represents one school.\n", "The plot above also shows something unrealistic: The schools are connected because members of one class are not always in the same school.\n", "\n", "### Nesting locations using `stick_together()`\n", "We can use the `School`-method `stick_together()` to fix this issue.\n", "This works because whenever an agent is assigned to a location instance, the agent gets a new attribute named after the location class.\n", "This new attribute is set to a location instance identifier value." ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", " def weight(self, agent):\n", " return agent.hours\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])\n", "\n", "\n", "class School(p2n.LocationDesigner):\n", " n_locations = 2\n", "\n", " def stick_together(self, agent):\n", " return agent.ClassRoom" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"a22f3a3a-94be-4980-9633-83eff5b7e296\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4512\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4513\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4514\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4521\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4522\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4519\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4544\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4561\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[912,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sbTHeAsj5j/s71MHDxnuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[913,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q1kYAor8679HqbrCsXzsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[914,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/0pKPl5f1T9D56nDeirnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[915,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G1/T0hvI1D8nuWz8sBzlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[916,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n5Gd3AqT5T8RER7YFnXsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[917,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v0LEidA31D81+ljeLMjoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[918,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M/33HgKd5L/jih+jnoPcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[919,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"acPL8nSV4T+Jcv6aZs7tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[920,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y6Tsn7FM6r8EQbCk2d3pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[921,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+DcLafxf4z93TdC4zpLsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[922,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c/k8Fpfa4b9MwwzUiZngvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[923,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"afVtLsO96j8v8vcp2nznPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[924,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XzHXyHXp6T+7I/oJ8y3hPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[925,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gMqb6DPT6b+RL03I6/fhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[926,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AOFOeuNK4L9/L7R+uRftvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[927,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9f24c3Lq57+nGix0JaDsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[928,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a2wYT48x17+G7jiBTlzlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[929,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sJbqYIxI7D9E4e1KoVLoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[930,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N+TGt19d5L/tyLkzuSntvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[931,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UhtjNSAH4r9n/j80xILvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[932,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Kv2yg3Di47/5ZrZXLxzgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[933,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JnwzKoFw5D/WWkNYVZXZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[934,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KOocjjvU3D+scMZCF2PmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[935,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iC3xy9TG5b8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[936,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AN4ZCiEZ2r8gXCHFD5jmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[937,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EYvmCw+25z98Bw8J12DYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[938,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GPd/6cQb2b+mZfgrZ0jovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[939,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"weroSLen4D/cA7RsE6LmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[940,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ug7NFiv517/3GeYO6unpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[941,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oQkzakc/678swBb/qZbjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[942,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4fAKG84u0z9zBG1la3DjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[943,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qYiQil9E4z9vAQsIptLWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[944,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bv7BtKVZ5j84B+lnMI7aPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[945,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2jaTaVQW3T8aVChuFyrhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[946,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3DsDT2wJ4T/43qMhlyniPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[947,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/uguCD4W6z/mnkPU5lTlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[948,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f/064rSP7D9timWOhanjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[949,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Dfm9bYhr6b+3Xg6K+xXvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[950,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vX4hXQE/4L85amXWtrzevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[951,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZPJ/xLks7b+ZgmwrTOPovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[952,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CaGv0ZmO6r98LQ7+KSbgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[953,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5pEd0zFB7b8NO5CnVLPjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[954,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ivbushoY4r/4I07+bIXbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[955,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"skpI57jd4z/lN+ZPU8buPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[956,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oNgMBOXt3T/D2G+5SdXjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[957,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pT44KYaGzz/oTlgJ6THmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[958,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3jH6Omup7L/uTcaAEvjgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[959,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qMO3Ub+G7T+nmFSVSBPmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[960,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z27qYxei5T/mrKnVoy7VPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[961,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mlUc/CXg1L9GnkxTV3Xnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[962,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PPzrqFdf4z+PFEbQstPkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[963,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pKRlCOWS5L9OnvOBMO7mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4549\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4546\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4547\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4548\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"School\",\"School\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4550\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4551\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4563\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4556\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4553\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4554\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4555\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[5,1,1,4,1,4,1,5,1,4,1,5,1,5,1,1,5,1,5,1,4,1,1,4,1,1,1,6,1,4,1,1,1,5,1,6,1,4,1,1,6,1,6,1,6,1,4,1,6,1,4,1,4,1,6,1,6,1,4,1,4,1,4,1,4,1,1,5,1,1,4,1,4,1]],[\"start\",[912,912,913,914,914,915,915,916,916,917,917,918,918,919,919,920,921,921,922,922,923,923,924,925,925,926,927,928,928,929,929,930,931,932,932,933,933,934,934,935,936,936,937,937,938,938,939,939,940,940,941,941,942,942,943,943,944,944,945,945,946,946,947,947,948,948,949,950,950,951,952,952,953,953]],[\"end\",[955,962,963,957,962,957,962,955,962,957,962,954,963,955,962,963,955,962,954,963,959,962,962,958,963,963,963,961,963,959,962,963,963,954,963,960,962,956,962,963,961,963,960,962,961,963,956,962,961,963,958,963,957,962,960,962,960,962,956,962,956,962,959,962,959,962,963,954,963,963,958,963,958,963]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.75,0.25,0.25,0.5,0.25,0.5,0.25,0.75,0.25,0.5,0.25,0.75,0.25,0.75,0.25,0.25,0.75,0.25,0.75,0.25,0.5,0.25,0.25,0.5,0.25,0.25,0.25,1.0,0.25,0.5,0.25,0.25,0.25,0.75,0.25,1.0,0.25,0.5,0.25,0.25,1.0,0.25,1.0,0.25,1.0,0.25,0.5,0.25,1.0,0.25,0.5,0.25,0.5,0.25,1.0,0.25,1.0,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.25,0.75,0.25,0.25,0.5,0.25,0.5,0.25]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4557\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4558\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4562\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4559\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4560\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4520\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4533\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4534\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4540\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4539\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4541\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4542\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4543\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4564\",\"attributes\":{\"renderers\":[{\"id\":\"p4556\"},{\"id\":\"p4549\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4528\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4529\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4530\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4531\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4523\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4524\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4525\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4526\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4527\",\"attributes\":{\"axis\":{\"id\":\"p4523\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4532\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4528\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"a22f3a3a-94be-4980-9633-83eff5b7e296\",\"roots\":{\"p4512\":\"b2793725-bdbc-4cf8-acf4-a8d11d753620\"},\"root_ids\":[\"p4512\"],\"notebook_comms_target\":\"p4565\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4512" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"0a56c299-1da9-4c55-a1c0-2f9cc030f93c\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4618\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4619\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4620\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4627\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4628\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4625\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4650\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4667\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[912,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2NRJjZt16b+KBEsbLsDXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[913,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ueIKrSu47z9wfOuO6ZjJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[914,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JwknB+Ad6790twXhJ3+zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[915,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"knMuYjMZ7r9gY322MEe8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[916,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jYiZoMeP679SH+CeYpjYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[917,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GXWoZCcG7L9b+nke07bEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[918,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OlhCwy7W5z8TJMvC+VvJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[919,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/vZIfHa56r/jUO4ckJTUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[920,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zc/Yv3wB7j8fdBGXLgLQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[921,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5OjH7+vx7L8WuTzTC1PWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[922,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5osPV9Qt6D9DFRhJK/7QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[923,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lRmn163m7b/J5oW2UrHMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[924,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L/YHvEp4A7Pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[925,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ASMjABl06T/zVNd7YMuxPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[926,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AVS2BgHp5j/ni600JU3UPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[927,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"C77ZJ5FG6D+f9Kde4jvXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[928,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EcFXEc+56j+l2Y7JEv3UPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[929,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zWLfAWMR77/y2BIlmiTHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[930,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eq0lCbSS7T+pREDVzSLHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[931,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r3zerVPF5T8mRd2I4KTNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[932,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wHvxANDM6T8kt0ipQUPPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[933,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/jGFjQMi6b/oTV6H2ZDQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[934,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yJh7aTRj6L8ECogG+4+4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[935,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0ZoMJeOV7j+StkYZzgPAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[936,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p/XTjGw07T/pYnuTq+LWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[937,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0rFWBtp6578TbNjpT0jUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[938,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zM0FNuiO7D8Xzzcb0nnTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[939,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uky6qa005r8IteYlSqPHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[940,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w/ZZ5aQW6z87Mlk8kFjYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[941,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HL3OrGjm5j9KsrmWFrS/Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[942,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x5qQyOZQ7L9PzfuRqKy5vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[943,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ciCp5s2T57/XOcZShjrOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[944,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"acnaaSdf5r9TRpjYovrRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[945,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yxCsfxrD5r80vXK1pcrAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[946,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Cj4/ScIP6b8RPFIDozfEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[947,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LDtkJMfQ7r8RPmYWYQ/Tvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[948,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kLPKQt+U7L92XEYKx6zQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[949,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iw6aMe317D8Rkel0C8u1Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[950,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mBmIcmeT6j8ZNlc5PH7IPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[951,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9ClUgAG77z9H536HTsnSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[952,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"32TozUzo6j9Q1nuQj6O7Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[953,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UTsVRkrU6D8KaDSA8RrAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4655\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4652\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4653\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4654\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4656\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4657\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4669\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4662\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4659\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4660\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4661\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,6,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,5,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,6,1,1,1,1,1,1,6,1,1,1,1,1,1,6,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,6,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,7,1,1,7,7,1,1,1,1,1,5,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,7,7,1,1,1,1,1,1,1,1,7,7,1,1,1,1,7,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,5,1,1,1,1,5,1,1,1,1,1,1,1,1,1,5]],[\"start\",[912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,916,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,921,921,921,921,921,921,921,921,921,921,921,921,921,921,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,923,923,923,923,923,923,923,923,923,923,923,923,923,924,924,924,924,924,924,924,924,924,924,924,924,925,925,925,925,925,925,925,925,925,925,925,925,925,925,925,925,926,926,926,926,926,926,926,926,926,926,926,926,926,926,926,927,927,927,927,927,927,927,927,927,927,927,927,927,927,928,928,928,928,928,928,928,928,928,928,928,928,928,929,929,929,929,929,929,929,929,929,929,929,930,930,930,930,930,930,930,930,930,930,930,930,931,931,931,931,931,931,931,931,931,931,931,932,932,932,932,932,932,932,932,932,932,933,933,933,933,933,933,933,933,933,933,934,934,934,934,934,934,934,934,934,935,935,935,935,935,935,935,935,935,936,936,936,936,936,936,936,936,937,937,937,937,937,937,937,937,938,938,938,938,938,938,938,939,939,939,939,939,939,939,940,940,940,940,940,940,941,941,941,941,941,942,942,942,942,942,942,943,943,943,943,943,944,944,944,944,945,945,945,946,946,947,949,949,949,949,950,950,950,951,951,952]],[\"end\",[914,915,916,917,919,921,923,924,929,933,934,937,939,942,943,944,945,946,947,948,918,920,922,925,926,927,928,930,931,932,935,936,938,940,941,949,950,951,952,953,915,916,917,919,921,923,924,929,933,934,937,939,942,943,944,945,946,947,948,916,917,919,921,923,924,929,933,934,937,939,942,943,944,945,946,947,948,917,919,921,923,924,929,933,934,937,939,942,943,944,945,946,947,948,919,921,923,924,929,933,934,937,939,942,943,944,945,946,947,948,920,922,925,926,927,928,930,931,932,935,936,938,940,941,949,950,951,952,953,921,923,924,929,933,934,937,939,942,943,944,945,946,947,948,922,925,926,927,928,930,931,932,935,936,938,940,941,949,950,951,952,953,923,924,929,933,934,937,939,942,943,944,945,946,947,948,925,926,927,928,930,931,932,935,936,938,940,941,949,950,951,952,953,924,929,933,934,937,939,942,943,944,945,946,947,948,929,933,934,937,939,942,943,944,945,946,947,948,926,927,928,930,931,932,935,936,938,940,941,949,950,951,952,953,927,928,930,931,932,935,936,938,940,941,949,950,951,952,953,928,930,931,932,935,936,938,940,941,949,950,951,952,953,930,931,932,935,936,938,940,941,949,950,951,952,953,933,934,937,939,942,943,944,945,946,947,948,931,932,935,936,938,940,941,949,950,951,952,953,932,935,936,938,940,941,949,950,951,952,953,935,936,938,940,941,949,950,951,952,953,934,937,939,942,943,944,945,946,947,948,937,939,942,943,944,945,946,947,948,936,938,940,941,949,950,951,952,953,938,940,941,949,950,951,952,953,939,942,943,944,945,946,947,948,940,941,949,950,951,952,953,942,943,944,945,946,947,948,941,949,950,951,952,953,949,950,951,952,953,943,944,945,946,947,948,944,945,946,947,948,945,946,947,948,946,947,948,947,948,948,950,951,952,953,951,952,953,952,953,953]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.25,0.25,0.75,0.25,0.75,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,1.0,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,1.0,0.25,0.25,1.0,1.0,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,1.0,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4663\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4664\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4668\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4665\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4666\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4626\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4639\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4640\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4646\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4645\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4647\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4648\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4649\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4670\",\"attributes\":{\"renderers\":[{\"id\":\"p4662\"},{\"id\":\"p4655\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4634\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4635\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4636\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4637\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4629\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4630\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4631\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4632\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4633\",\"attributes\":{\"axis\":{\"id\":\"p4629\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4638\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4634\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"0a56c299-1da9-4c55-a1c0-2f9cc030f93c\",\"roots\":{\"p4618\":\"d714cc56-4a7a-4cac-9759-0f0dd1ad084c\"},\"root_ids\":[\"p4618\"],\"notebook_comms_target\":\"p4671\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4618" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[ClassRoom, School], clear=True)\n", "inspector.plot_networks(location_color=\"label\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that it is very important that the agents get assigned to classrooms before getting assigned to schools.\n", "This means that the order of the creation of the locations is important and, hence, the order of the location classes given to the `location_designers` argument.\n", "\n", "If we build schools before classrooms, the above method does not work the way intended:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"549de169-ff2a-4414-b4db-00ad4c6da92f\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4714\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4715\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4716\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4723\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4724\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4721\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4746\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4763\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[964,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4xAxHLaO278cqERGv8nXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[965,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IF+vaJzt6z8VYA9++snWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[966,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rhJNoPSb6L/kUao7YWO1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[967,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AQPGPtVf0r9mJIzmTv/Evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[968,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mUW9j5jzjz8jKUrSnSTWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[969,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Hx2qjd4Y6L8iRlu7WZKlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[970,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fdn8Amxg5r+qyKh4gvLePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[971,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VLRULYyLqL8le6MQgIzQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[972,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sdV5EQQP7L/VcRLuyiTSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[973,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gmJ3kv6m2r/0eXxNanDfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[974,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"r3qXgm4s0r8mu2EKdsrfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[975,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m+opJpID5j8aQBeJMeK6Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[976,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0fIX4Kd66j8UShPtLS/gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[977,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nwl6lIfweL8jblC1gb7jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[978,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KSgMJEgL5b9tSsXXFWLhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[979,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yrXjTMxM7z9hDUyTN3+3Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[980,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nb0q/+MC4L/BXpl2sfrZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[981,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nWF8W8QF0T9FV9+amOzHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[982,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HGjTYpMc7z+vSF9OCIG5vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[983,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9134F3h76D8V6p0YRbTZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[984,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sFEd2Rzx5r9OCuvO9YPkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[985,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/RLEIhZZ1z8Ruaq2Lcrkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[986,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9jzyQRCVf7+wbDI5UfHWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[987,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"V5PtNxPV7D85eyY/tezRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[988,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oAR9nYjWxb8zJrr2BbXhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[989,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N1XmTKk7oj/KGKKNaGvkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[990,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"STGEhr32x78Z1w3kfFbdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[991,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QjHNSAy1tT8zR7x65AjHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[992,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"U0ZWVQb94b/GA7Q/zPndvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[993,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UPcazNaFub8ciANGoMDlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[994,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YTCEEwqV0b+tY0eWUemwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[995,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4BJa7I/L3D9QSXQh6FPmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[996,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RAodwliK2T+W5IZPLdLovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[997,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RcCxx3kBjz+F+9OqcIXQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[998,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4/GUdBE73D8dv9HGFTHavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[999,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L8qMO/U85j+c0ULgM9LNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1000,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i4KL7qJO0T8AdrEntfzSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1001,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZTUNaMsq7z/lLZRQUgjQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1002,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2tkhZV7c6L9mJgcO3VjhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1003,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L/QzkDIsxlmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1004,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Theph7861D811EYY4n3jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1005,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8Rigvqmewr/CJYEGMHjoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1006,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Uc8gyAhC2D8xhfLlnVi3vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1007,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m899NGsQ17+3YCImHG+2Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1008,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yirEjePy4r/QlvHVW8zjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1009,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5ZFwSXASzb85SEqBISDZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1010,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tj0qKGXTyj/hRcY+UjnXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1011,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+IUBtEzT4b+vJ9uNV3S0vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1012,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jeP5rrxHtj+Nril579joPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1013,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L0JxYtuG4D/4IY8cF0zOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1014,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qcAPWQcH0T8U4OFquLTovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1015,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Jjso1CaR2L9sO6ZSgSzhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4751\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4748\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4749\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4750\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"School\",\"School\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4752\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4753\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4765\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4758\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4755\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4756\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4757\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,5,1,1,4,1,4,1,5,1,4,1,5,1,5,1,1,5,1,5,1,4,1,1,4,1,1,1,6,1,4,1,1,1,5,1,6,1,4,1,1,6,1,6,1,6,1,4,1,6,1,4,1,4,1,6,1,6,1,4,1,4,1,4,1,4,1,1,5,1,1,4,1,4]],[\"start\",[964,964,965,966,966,967,967,968,968,969,969,970,970,971,971,972,973,973,974,974,975,975,976,977,977,978,979,980,980,981,981,982,983,984,984,985,985,986,986,987,988,988,989,989,990,990,991,991,992,992,993,993,994,994,995,995,996,996,997,997,998,998,999,999,1000,1000,1001,1002,1002,1003,1004,1004,1005,1005]],[\"end\",[1007,1009,1006,1007,1011,1006,1011,1006,1009,1007,1011,1007,1008,1006,1009,1007,1007,1009,1006,1008,1006,1013,1006,1007,1012,1007,1006,1007,1015,1007,1013,1006,1006,1007,1008,1006,1014,1007,1010,1006,1006,1015,1007,1014,1006,1015,1007,1010,1007,1015,1007,1012,1006,1011,1006,1014,1006,1014,1007,1010,1006,1010,1006,1013,1007,1013,1006,1007,1008,1007,1006,1012,1007,1012]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.25,0.75,0.25,0.25,0.5,0.25,0.5,0.25,0.75,0.25,0.5,0.25,0.75,0.25,0.75,0.25,0.25,0.75,0.25,0.75,0.25,0.5,0.25,0.25,0.5,0.25,0.25,0.25,1.0,0.25,0.5,0.25,0.25,0.25,0.75,0.25,1.0,0.25,0.5,0.25,0.25,1.0,0.25,1.0,0.25,1.0,0.25,0.5,0.25,1.0,0.25,0.5,0.25,0.5,0.25,1.0,0.25,1.0,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.25,0.75,0.25,0.25,0.5,0.25,0.5]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4759\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4760\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4764\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4761\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4762\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4722\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4735\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4736\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4742\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4741\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4743\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4744\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4745\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4766\",\"attributes\":{\"renderers\":[{\"id\":\"p4758\"},{\"id\":\"p4751\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4730\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4731\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4732\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4733\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4725\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4726\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4727\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4728\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4729\",\"attributes\":{\"axis\":{\"id\":\"p4725\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4734\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4730\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"549de169-ff2a-4414-b4db-00ad4c6da92f\",\"roots\":{\"p4714\":\"f76796d1-4d21-4dcb-b6e1-dc4298e1c296\"},\"root_ids\":[\"p4714\"],\"notebook_comms_target\":\"p4767\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4714" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"99e5c11d-0641-45dc-a369-f21401fab6d5\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4820\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4821\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4822\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4829\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4830\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4827\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4852\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4869\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[964,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oJRDuUCY5D/1LXvpnRG/vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[965,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bI7dIuF43r9yZMGGwUXuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[966,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yCs2L2QuZz/e53ng6yTgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[967,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aJGPFyr03r8q3N69tcbEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[968,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"InvgD8+ypL+3g0n7S+Xlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[969,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eLfKUTSOuT8QsDpIK+zXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[970,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"moYCSPmf3D/fopyjTsrjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[971,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2JkAnUEFrD+Negu1mMnivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[972,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yeLNoyWs7z+apn4lNtngPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[973,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"X5Qovbbu4D8NcS7wGf3Bvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[974,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9Z7siiNKs7+kWeAnnsWxPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[975,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nuhqGONM0r/znJD0DNbFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[976,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f6m67ZEc6L/FrHL5ZVTjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[977,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3PGymzvt6T8MIKwrAAjBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[978,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6a2FGgcs7T/FvxfhN6fmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[979,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L8qkNRnmMDavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[980,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PFUnWoMT0j/GBpUCPmOtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[981,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GVKkGuVS3D+unn2pShrKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[982,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w6wqP/Bd4L/BK3XiR33ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[983,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KaQHF8fq6r9Zs204JRfpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[984,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D09j1O8W4z+0x9ZSeczgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[985,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZFMY8g1c6r8oa78nDOfGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[986,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4f2jQKdJ0T+ko2QFZL7lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[987,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UD6XviiH5b8+YDMt8wrrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[988,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VpW9PaOh0L+6BNFTcSDgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[989,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Kze1aoU1x7/7gebajEvTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[990,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rk+34FOrvL/5Ug/mciDfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[991,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1sM8p9H8vz9ylCnl1ZDoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[992,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M0O5E7ZI1j/XGz1lPw60vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[993,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rVeAd2dJ6z+3LTScAmjRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[994,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jRIxfXin4b8ynTWxP1aFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[995,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VqXPDQ/X6L8ZDrVTt7imvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[996,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JA9Wj3cV5r+PAn4IsonSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[997,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k8l4Yz+k0j8FcqVVwxjrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[998,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i2PdW6FC2b8yD0kUYXPIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[999,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ILzqLwbxzb+APNzgYR7Tvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1000,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TPk5MBlJ0z/nRI6IEtLTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1001,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"S5j6VkPA7r+HmO8qRK7jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1002,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ysyaLdyQ4T/rB9VqhSLnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1003,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OC9GVwWj6D/kyc8mtLjrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1004,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fcLeVvqMuT/bXc5/QO/Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1005,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7X+fpTOh5j+dNQlhtJfUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4857\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4854\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4855\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4856\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4858\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4859\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4871\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4864\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4861\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4862\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4863\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,5,1,1,5,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,5,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,6,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,5,1,1,1,1,6,1,1,1,1,1,1,1,6,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,5,1,1,1,4,1,1,1,1,1,1,1,1,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,4,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,6,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,4,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,6,1,1,7,7,1,1,1,1,1,5,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,7,6,1,1,1,1,1,1,1,1,1,1,6,6,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,5,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,5,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,4]],[\"start\",[964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,965,965,965,965,965,965,965,965,965,965,965,965,965,965,965,965,965,965,965,965,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,966,967,967,967,967,967,967,967,967,967,967,967,967,967,967,967,967,967,967,967,967,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,969,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,970,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,972,972,972,972,972,972,972,972,972,972,972,972,972,972,972,972,973,973,973,973,973,973,973,973,973,973,973,973,973,973,973,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,975,975,975,975,975,975,975,975,975,975,975,975,975,975,975,975,975,976,976,976,976,976,976,976,976,976,976,976,976,976,976,977,977,977,977,977,977,977,977,977,977,977,977,977,977,977,978,978,978,978,978,978,978,978,978,978,978,978,978,979,979,979,979,979,979,979,979,979,979,979,979,979,980,980,980,980,980,980,980,980,980,980,980,980,980,980,981,981,981,981,981,981,981,981,981,981,981,981,982,982,982,982,982,982,982,982,982,982,982,982,983,983,983,983,983,983,983,983,983,983,983,984,984,984,984,984,984,984,984,984,984,985,985,985,985,985,985,985,985,985,985,985,986,986,986,986,986,986,986,986,986,986,987,987,987,987,987,987,987,987,987,988,988,988,988,988,988,988,988,988,989,989,989,989,989,989,989,989,989,989,990,990,990,990,990,990,990,990,991,991,991,991,991,991,991,991,992,992,992,992,992,992,993,993,993,993,993,993,994,994,994,994,994,994,995,995,995,995,995,996,996,996,996,997,997,997,997,997,998,998,998,999,999,999,1000,1000,1000,1001,1002,1002,1003,1004]],[\"end\",[966,968,969,970,971,972,973,977,978,980,981,984,986,989,991,992,993,997,1000,1002,1003,1005,967,968,971,974,975,976,979,982,983,985,987,988,990,994,995,996,998,999,1001,1004,967,969,970,972,973,977,978,980,981,984,986,989,991,992,993,994,997,1000,1002,1003,1005,968,969,971,974,975,976,979,982,983,985,987,988,990,994,995,996,998,999,1001,1004,971,973,974,975,976,979,982,983,985,987,988,990,994,995,996,998,999,1001,1004,970,972,973,977,978,980,981,984,986,989,991,992,993,994,997,1000,1002,1003,1005,972,973,974,977,978,980,981,984,986,989,991,992,993,997,1000,1002,1003,1005,973,974,975,976,979,982,983,985,987,988,990,994,995,996,998,999,1001,1004,973,977,978,980,981,984,986,989,991,992,993,997,1000,1002,1003,1005,977,978,980,981,984,986,989,991,992,993,997,1000,1002,1003,1005,975,976,979,982,983,984,985,987,988,990,994,995,996,998,999,1001,1002,1004,976,979,981,982,983,985,987,988,990,994,995,996,998,999,1000,1001,1004,979,982,983,985,987,988,990,994,995,996,998,999,1001,1004,978,980,981,984,986,989,991,992,993,997,1000,1002,1003,1004,1005,980,981,984,986,989,991,992,993,997,1000,1002,1003,1005,982,983,985,987,988,990,994,995,996,998,999,1001,1004,981,984,986,988,989,990,991,992,993,997,1000,1002,1003,1005,984,986,989,991,992,993,997,999,1000,1002,1003,1005,983,985,987,988,990,994,995,996,998,999,1001,1004,985,987,988,990,994,995,996,998,999,1001,1004,986,989,991,992,993,997,1000,1002,1003,1005,987,988,989,990,994,995,996,998,999,1001,1004,989,991,992,993,997,998,1000,1002,1003,1005,988,990,994,995,996,998,999,1001,1004,990,992,994,995,996,998,999,1001,1004,991,992,993,995,996,997,1000,1002,1003,1005,992,994,995,996,998,999,1001,1004,992,993,997,998,1000,1002,1003,1005,993,997,1000,1002,1003,1005,997,1000,1002,1003,1004,1005,995,996,998,999,1001,1004,996,998,999,1001,1004,998,999,1001,1004,998,1000,1002,1003,1005,999,1001,1004,1000,1001,1004,1002,1003,1005,1004,1003,1005,1005,1005]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.2,0.6000000000000001,0.2,0.2,0.6000000000000001,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.4,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.8,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.8,0.2,0.2,1.0,1.0,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.6000000000000001,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.8,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4865\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4866\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4870\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4867\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4868\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4828\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4841\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4842\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4848\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4847\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4849\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4850\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4851\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4872\",\"attributes\":{\"renderers\":[{\"id\":\"p4864\"},{\"id\":\"p4857\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4836\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4837\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4838\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4839\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4831\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4832\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4833\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4834\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4835\",\"attributes\":{\"axis\":{\"id\":\"p4831\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4840\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4836\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"99e5c11d-0641-45dc-a369-f21401fab6d5\",\"roots\":{\"p4820\":\"d8b48fec-5169-44ef-96a5-05a416eadffa\"},\"root_ids\":[\"p4820\"],\"notebook_comms_target\":\"p4873\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4820" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[School, ClassRoom], clear=True)\n", "\n", "inspector.plot_networks(location_color=\"label\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we saw, the method `stick_together()` can be used to nest locations into other locations.\n", "However, this approach is limited because we can only specify one location class as the return value of `stick_together()`.\n", "\n", "### Nesting locations using `nest()`\n", "\n", "Another way to nest locations into other locations is to use the location method `nest()`.\n", "The method `nest()` can return `None` or a location label.\n", "If `nest()` returns a location label, the location is nested into the corresponding location type.\n", "For instance, to nest classrooms within schools, we must define the method `nest()` for the location `ClassRoom` and let this method return `\"School\"`.\n", "Again, the order of location creation plays a crucial role: The level-1 location must always be created after the level-2 location." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "class ClassRoom(p2n.LocationDesigner):\n", " def setup(self):\n", " self.n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", " def weight(self, agent):\n", " return agent.hours\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])\n", "\n", " def nest(self):\n", " return \"School\"\n", "\n", "\n", "class School(p2n.LocationDesigner):\n", " n_locations = 2" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"14d4b025-d00b-4d42-afd1-a9195c493d9a\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p4916\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4917\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p4918\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4925\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p4926\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p4923\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p4948\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p4965\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1016,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4PrR0VFq4T8xVx3sBGSyvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1017,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PCwCJxCd6z/d9/tOgPq8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1018,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QktL7gk25T+2A/pXWabHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1019,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LJZs/1dj7j+icPDWoym0Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1020,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Bq1qg/w/5D/zfZ7uQB6Zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1021,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Gd+D2lWn7z8ao0y/yp6hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1022,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RB+uu4Dm4z92ovHyIJ+dPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1023,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x//tSRMf4j/mBt4J04ijPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1024,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7txYQUTM778tDReMmCDBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1025,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z3n4l5QE6L9WKzd+vka8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1026,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3r2y7CML5r8F7nJqQae7vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1027,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qXBU8Npk4b+KSelGOO+wPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1028,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l2yujkRL7L8dM93DSD7QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1029,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N/wYz20m4r8mvt4wAPjEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1030,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0KE4MXK07b/tq/7NTnC4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1031,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xgxPyYlA7r9Y9rINLJrKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1032,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0meUkGpq47/5MgRQBPrDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1033,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iPj6nq2J4r+KaxZlkiC8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1034,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AlK2p84s578DUJxDRarKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1035,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CBzRSPPs6b+N2LLKPo/QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1036,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b5er8z586b9fBmIYYWnDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1037,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"icZhzWM7678k4TzJgta7Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1038,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"N0U/gC+Q5r8Hg49v5qvUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1039,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L/Qkv2PAB1fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1040,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RPnLGBz15L9fpfJ/tfrGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1041,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1C7FSKWE7b+hACwDrC+2Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1042,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dOgtyAkx67/LnfdZGj9fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1043,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Nba4FXLc5L8NXOzEe4LTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1044,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"koyuBG0+7b+ODTukcAKIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1045,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qtA0kP4v5z+JB5iNzKvTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1046,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a2Nop82N4z8aMGPhCcXEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1047,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"18mpxLHx7T81DIPK6sHNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1048,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XpWWJHTw7j8q8xLKfAPIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1049,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EmAWoYEc7j/FPYzD1weWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1050,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OEhYQcW47T+nNYyksTCfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1051,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kg11xnwO6D87tEc65SbRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1052,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"p7e9lPi04z+fsL121AvQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1053,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T3N35Xak6T/o4amFK4PAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1054,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HOUXNrkX4z+eUSKSyZmyvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1055,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2XL5U61m6z8Yd/QhMi/Gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1056,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vsrhutoL5T/HbHC/f1nMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1057,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"d7MI4mi+5j+Tr4/FZfXNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1058,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7VnOAug26L/UG0QvqiCxPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1059,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vVkYu4gz6D+NYej/NByvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1060,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aKgCK8zv4T9btVmOlheOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1061,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"veE+iyPa7z8APxVUY2igPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1062,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H27Ilpf94j+kAtxy7ljPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1063,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tUuwAYxz579ka5+8NOLFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1064,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PTfRy8sg4L+fZQgyH0DAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1065,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"X4/tWsQE7L8y0IUu8VyrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1066,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qekqd9VQ479vPrqXO6jNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1067,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f+GX1X7t5L8j86T/rhHZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1068,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8kUIfSJX5T88rxaWQMnSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1069,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AgP+8YjL7z8Vt3Ip/PjPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4953\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4950\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4951\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4952\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"School\",\"School\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4954\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4955\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p4967\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p4960\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p4957\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p4958\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p4959\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,5,1,1,4,1,4,1,5,1,4,1,5,1,5,1,1,5,1,5,1,4,1,1,4,1,1,1,6,1,4,1,1,1,5,1,6,1,4,1,1,6,1,6,1,6,1,4,1,6,1,4,1,4,1,6,1,6,1,4,1,4,1,4,1,4,1,1,5,1,1,4,1,4]],[\"start\",[1016,1016,1017,1018,1018,1019,1019,1020,1020,1021,1021,1022,1022,1023,1023,1024,1025,1025,1026,1026,1027,1027,1028,1029,1029,1030,1031,1032,1032,1033,1033,1034,1035,1036,1036,1037,1037,1038,1038,1039,1040,1040,1041,1041,1042,1042,1043,1043,1044,1044,1045,1045,1046,1046,1047,1047,1048,1048,1049,1049,1050,1050,1051,1051,1052,1052,1053,1054,1054,1055,1056,1056,1057,1057]],[\"end\",[1059,1060,1059,1059,1062,1059,1061,1059,1060,1059,1061,1059,1060,1059,1060,1058,1058,1063,1058,1063,1058,1064,1058,1058,1064,1058,1058,1058,1066,1058,1064,1058,1058,1058,1063,1058,1065,1058,1067,1058,1058,1066,1058,1065,1058,1065,1058,1067,1058,1065,1059,1068,1059,1062,1059,1069,1059,1069,1059,1061,1059,1061,1059,1068,1059,1068,1059,1059,1060,1059,1059,1068,1059,1068]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.25,0.75,0.25,0.25,0.5,0.25,0.5,0.25,0.75,0.25,0.5,0.25,0.75,0.25,0.75,0.25,0.25,0.75,0.25,0.75,0.25,0.5,0.25,0.25,0.5,0.25,0.25,0.25,1.0,0.25,0.5,0.25,0.25,0.25,0.75,0.25,1.0,0.25,0.5,0.25,0.25,1.0,0.25,1.0,0.25,1.0,0.25,0.5,0.25,1.0,0.25,0.5,0.25,0.5,0.25,1.0,0.25,1.0,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.5,0.25,0.25,0.75,0.25,0.25,0.5,0.25,0.5]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p4961\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p4962\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p4966\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4963\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p4964\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p4924\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p4937\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p4938\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p4944\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p4943\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p4945\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p4946\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p4947\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p4968\",\"attributes\":{\"renderers\":[{\"id\":\"p4960\"},{\"id\":\"p4953\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4932\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4933\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4934\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4935\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p4927\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p4928\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p4929\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p4930\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4931\",\"attributes\":{\"axis\":{\"id\":\"p4927\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p4936\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p4932\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"14d4b025-d00b-4d42-afd1-a9195c493d9a\",\"roots\":{\"p4916\":\"d5e37c94-c7d6-4c2d-800c-91f12aeb430f\"},\"root_ids\":[\"p4916\"],\"notebook_comms_target\":\"p4969\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p4916" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"8d1c48f6-bb56-4b85-8d9b-d16db5c0ffaa\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5024\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5025\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5026\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5033\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5034\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5031\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5056\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5073\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1016,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JU9rnvB8yL9TkRHu9frsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1017,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8gFrJSiz27+BLLbDBiPuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1018,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fX42P0ayz79JK0fFk4DvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1019,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TQ4O9rbm2L8Ci7dblgrqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1020,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bOTb5ytSzr8pXWOteZjrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1021,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tJOC+y3f3L+65BdLKPfoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1022,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NyT7X57v079rCOOZjCTsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1023,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K+usnkg30r/eZPektvzpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1024,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oKz1b7/T0T+gosJFo9Dsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1025,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UJzKYQ460D9vFlDsJ3/vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1026,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XNN6gbq6yj8udsJTlDDuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1027,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RxpYGSb2wz95hwDDu7Dpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1028,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"78DTYLTQ2D+y2LYz1YHvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1029,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UVufdzz/yz8Fg1c7WXXrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1030,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OZRN0b2zxz+FuZiyEF3nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1031,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iy0kYMj71T9jmpkWu7jlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1032,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QxBGATASzT+qbgHqUpTovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1033,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wJ2ZfKztwz/3zqAbfvLrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1034,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qHEUmAvm1j9qQn8MV37nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1035,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uYHVT9Ih2z/D4juP3ebmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1036,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Vt16YCXi0z/LDO3iHiHvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1037,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+sRyWoQ72z/I9HwP9Nrrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1038,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HbsWQk+Q3j++HN4MvtDqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1039,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/tw/C17D0D+Sis7o1szlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1040,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y/NHJu0u0j8bDpTYdwfovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1041,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dch070fI1z94uCUNGCLqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1042,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dYydYT0a1j/aw8784+frvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1043,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tdTEGjf93D/gQeqdKOvovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1044,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z8BwOS3A2T+4N20SlGbtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1045,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Z91JD6BzL8lswmnwErnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1046,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zcmUGLYV17/L1W85wGPuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1047,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CFchViJB1r8ayjeOozPnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1048,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jic0X0nq1b/+TtxbJWrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1049,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ekIkWAUn3r+QuB0E5ZvqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1050,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EtSxbX0127+NW1VVlOLrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1051,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OcPhT9V1yr+jKlyKwQXqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1052,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mlM9BYFfxr+Xond1XrvnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1053,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DVa+7Dwg27/EMsPnOijnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1054,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"llLMiXjE0L/DJuGmT6jtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1055,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MPW28SQT1b8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1056,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3Afx3kQI0b/00Ej7BdDmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1057,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WjlM3vxUw7+mpIzlc6DpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5061\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5058\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5059\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5060\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5062\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5063\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5075\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5068\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5065\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5066\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5067\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,6,1,6,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,6,6,1,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,6,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1,1,1,5,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,1,7,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,7,1,7,1,7,1,1,1,1,1,1,5,5,1,1,1,5,5,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,1,5,5,1,1,1,5,5,1,1,1,1,1,1,1,1,1,5]],[\"start\",[1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1016,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1019,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1021,1021,1021,1021,1021,1021,1021,1021,1021,1021,1021,1021,1021,1021,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1026,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1033,1034,1034,1034,1034,1034,1034,1034,1034,1034,1034,1035,1035,1035,1035,1035,1035,1035,1035,1035,1036,1036,1036,1036,1036,1036,1036,1036,1037,1037,1037,1037,1037,1037,1037,1038,1038,1038,1038,1038,1038,1039,1039,1039,1039,1039,1040,1040,1040,1040,1041,1041,1041,1042,1042,1043,1045,1045,1045,1045,1045,1045,1045,1045,1045,1045,1045,1045,1046,1046,1046,1046,1046,1046,1046,1046,1046,1046,1046,1047,1047,1047,1047,1047,1047,1047,1047,1047,1047,1048,1048,1048,1048,1048,1048,1048,1048,1048,1049,1049,1049,1049,1049,1049,1049,1049,1050,1050,1050,1050,1050,1050,1050,1051,1051,1051,1051,1051,1051,1052,1052,1052,1052,1052,1053,1053,1053,1053,1054,1054,1054,1055,1055,1056]],[\"end\",[1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1017,1018,1019,1020,1021,1022,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1018,1019,1020,1021,1022,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1019,1020,1021,1022,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1020,1021,1022,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1021,1022,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1022,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1023,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1036,1037,1038,1039,1040,1041,1042,1043,1044,1037,1038,1039,1040,1041,1042,1043,1044,1038,1039,1040,1041,1042,1043,1044,1039,1040,1041,1042,1043,1044,1040,1041,1042,1043,1044,1041,1042,1043,1044,1042,1043,1044,1043,1044,1044,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1049,1050,1051,1052,1053,1054,1055,1056,1057,1050,1051,1052,1053,1054,1055,1056,1057,1051,1052,1053,1054,1055,1056,1057,1052,1053,1054,1055,1056,1057,1053,1054,1055,1056,1057,1054,1055,1056,1057,1055,1056,1057,1056,1057,1057]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.75,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.75,0.75,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,1.0,0.25,1.0,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,1.0,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5069\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5070\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5074\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5071\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5072\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5032\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5045\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5046\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5052\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5051\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5053\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5054\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5055\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5076\",\"attributes\":{\"renderers\":[{\"id\":\"p5068\"},{\"id\":\"p5061\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5040\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5041\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5042\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5043\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5035\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5036\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5037\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5038\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5039\",\"attributes\":{\"axis\":{\"id\":\"p5035\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5044\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5040\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"8d1c48f6-bb56-4b85-8d9b-d16db5c0ffaa\",\"roots\":{\"p5024\":\"b644c240-5e4d-4f26-95db-cadc91c3729d\"},\"root_ids\":[\"p5024\"],\"notebook_comms_target\":\"p5077\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5024" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[School, ClassRoom], clear=True)\n", "inspector.plot_networks(location_color=\"label\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`nest()` allows us to nest as many locations in as many levels as we want.\n", "However, `nest()` has one disadvantage: Because the agents are first grouped into the level-2 location and then into the level-1 location, specific compositions defined at level 1 are not considered when grouping the agents into the level-2 locations.\n", "\n", "The following example demonstrates that:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "class TeachersInClassRoom(p2n.MeltLocationDesigner):\n", " def setup(self):\n", " self.n_agents = 1\n", "\n", " def filter(self, agent):\n", " return agent.status == \"teacher\"\n", "\n", "\n", "class PupilsInClassRoom(p2n.MeltLocationDesigner):\n", " def setup(self):\n", " self.n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", "\n", "class ClassRoom(p2n.LocationDesigner):\n", " def melt(self):\n", " return [TeachersInClassRoom, PupilsInClassRoom]\n", "\n", " def weight(self, agent):\n", " return agent.hours * 10\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])\n", "\n", " def nest(self):\n", " return \"School\"\n", "\n", "\n", "class School(p2n.LocationDesigner):\n", " n_locations = 2" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"3eae5608-7ef4-4219-ac13-01b81945c050\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5120\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5121\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5122\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5129\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5130\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5127\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5152\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5169\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1070,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1ZyqxFNi4T/SHYEkErzjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1071,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W3qCTy4v3z/SIx7cf0vQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1072,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9aPnSyPq4j9g0DvI5NrAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1073,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3MD1PuVS4D/n5lsPEM/DPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1074,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pi4+yX+65D+y+rV5UdPkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1075,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uIJUhHPC4z/uKZN3ox7MPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1076,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7zoUhUrM4T+/Qjn8mEjivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1077,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"145bijj05L8RYi08utjOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1078,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aU0Ripg+xL9PSuZ2QfXrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1079,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"azW2y/ym5b+E44AiBrXUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1080,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EDqK8Q8q6L92O0TxIxXVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1081,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OM/dSYAZyr8dTJ7/8hXvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1082,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JsQMpAP85b9F4VN5YdvPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1083,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aswI5Dcqqb+oiV6uOT/tvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1084,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hpNaeN2F3b+O8TPdY3fqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1085,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"V9wKRklH5D/UuzWLyu/fvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1086,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4MUi1zKx5L/EeJ8tAprTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1087,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6VIIPUE7tb8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1088,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kxOxsDzr4T9sXHMaYLfmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1089,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ej3sWNZz578ok1TIYwXJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1090,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0xDCd0pi5T+C7NZ8Ljbjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1091,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WaWJwWxzu7+OXYqGLZPIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1092,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7Ht4FIPnzj9J5T3Wy46pPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1093,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2z/GcrrnwL84/WQqSHHqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1094,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"caza9XE1xr/Bx09aIfrDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1095,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yV4EI/fHxb8uuhhIL465vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1096,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o2ry6iMnwb8hAZQECSeqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1097,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jTwUlXHC0D9azH5cnbaJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1098,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H5JCbpDbir9zeTlRzmHuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1099,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mquT70Bi1r/9rA2Zyf/oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1100,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tKadEx60xz/QHuBp2721Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1101,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Rh5HZZKqrz9M261p+f3qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1102,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sMQcEEAmqT//4tcBvj/tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1103,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"M132OqYuzT9Zn9TlUpSzvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1104,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mRktUL+Qvj+xU8Yj6m2zPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1105,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OjdyN99y07/ZdZ3owTLtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1106,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HEFvK940zb8dfSiNPT/tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1107,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m6KE/Evvoj9YdIj74Sy1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1108,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DExKRtX3or/F+EQvTMmtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1109,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L7kBzr0F2j9t4zOR7O7tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1110,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IK/JE3uV1r+MTnYp6XDrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1111,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uZ70e82M0b/El2tzrZ3nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1112,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BIRg+tfijD+KRrAb2rjWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1113,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GDWmGwV4nb8WgtgHiBnaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1114,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K0752OAd4z8UuBvYir3kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1115,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A3vNoJ2O57831jqBCGHQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1116,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2OvccaDq4T8GpJQ2P5rNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1117,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7AfRAhjjwL/Jg2ePcfjtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1118,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x4UvxX8i579WIYr4rh/WPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1119,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wdGUxDgQ5D/DgxrFih7ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1120,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wYUgxaIotb/APeBRZlfAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1121,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nIozC/WQkr8mpQ16vcTrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1122,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iqBmOqn/wz/LNTP5cMaXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1123,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K5ymj0qA0L9qbNaGL3zqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1124,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pq3uhasZaD9kANKdh1+evw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5157\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5154\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5155\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5156\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"School\",\"School\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5158\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5159\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5171\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5164\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5161\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5162\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5163\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,50,50,1,60,1,40,1,40,1,50,50,1,40,1,50,50,1,50,1,90,1,50,1,50,1,40,1,50,1,40,1,1,90,1,60,1,40,1,110,1,100,1,50,50,1,60,1,40,1,60,60,1,60,1,60,1,60,1,40,1,60,1,40,1,40,1,60,1,60,1,40,1,40,1,40,1,40,1,90,90,90,1,50,1,1,40,1,40]],[\"start\",[1070,1070,1070,1071,1071,1072,1072,1073,1073,1074,1074,1074,1075,1075,1076,1076,1076,1077,1077,1078,1078,1079,1079,1080,1080,1081,1081,1082,1082,1083,1083,1084,1085,1085,1086,1086,1087,1087,1088,1088,1089,1089,1090,1090,1090,1091,1091,1092,1092,1093,1093,1093,1094,1094,1095,1095,1096,1096,1097,1097,1098,1098,1099,1099,1100,1100,1101,1101,1102,1102,1103,1103,1104,1104,1105,1105,1106,1106,1107,1107,1107,1107,1108,1108,1109,1110,1110,1111,1111]],[\"end\",[1112,1114,1119,1112,1116,1112,1116,1112,1116,1112,1114,1119,1112,1116,1112,1114,1119,1112,1115,1112,1117,1112,1115,1112,1115,1112,1117,1112,1118,1112,1117,1112,1112,1119,1112,1118,1112,1117,1112,1114,1112,1115,1112,1114,1119,1113,1120,1113,1122,1113,1121,1123,1113,1120,1113,1120,1113,1120,1113,1122,1113,1121,1113,1123,1113,1122,1113,1121,1113,1121,1113,1122,1113,1122,1113,1123,1113,1123,1113,1120,1122,1124,1113,1124,1113,1113,1123,1113,1123]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.14285714285714285,0.42857142857142855,0.42857142857142855,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.42857142857142855,0.42857142857142855,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.42857142857142855,0.42857142857142855,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.9999999999999998,0.14285714285714285,0.857142857142857,0.14285714285714285,0.42857142857142855,0.42857142857142855,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.5714285714285714,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.7142857142857142,0.7142857142857142,0.7142857142857142,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5165\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5166\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5170\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5167\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5168\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5128\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5141\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5142\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5148\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5147\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5149\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5150\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5151\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5172\",\"attributes\":{\"renderers\":[{\"id\":\"p5164\"},{\"id\":\"p5157\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5136\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5137\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5138\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5139\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5131\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5132\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5133\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5134\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5135\",\"attributes\":{\"axis\":{\"id\":\"p5131\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5140\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5136\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"3eae5608-7ef4-4219-ac13-01b81945c050\",\"roots\":{\"p5120\":\"a3853440-03b1-41f3-83a0-bc19a80bd1f0\"},\"root_ids\":[\"p5120\"],\"notebook_comms_target\":\"p5173\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5120" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"9d4b0189-0f18-4f1c-a6d5-faea68b2acb9\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5229\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5230\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5231\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5238\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5239\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5236\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5261\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5278\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1070,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6/p4NHb75D8lv2pahHKpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1071,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yEoRFd3g7j+marD02ld7vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1072,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MawB9Tlz7T+63vxvqeKNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1073,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fNrpDAle7j+3XP0OmOOsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1074,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1KZfdhJ+5D88JUUJpSZ+vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1075,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yvHLofqm7D91azngqmqnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1076,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sLD/pyJD4z94SaFNTA2Wvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1077,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1sQj7cp66T9+caDcwUTJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1078,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VOdcC0/S6T/ztVobt26uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1079,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GsBlKEjo6D90Kp5MuKTPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1080,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f939+V7k5z8xfcao0VfHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1081,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QaCfu0956z9uQOaH0OG3Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1082,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9w6Ld8uS7T/fxsdjDrfIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1083,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6Qz5+CVb6j9wpWZyubXAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1084,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D/nqdNczznBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1085,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W+cDT+vk4z/xAM02zPy4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1086,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UnNJst6e7D8HkKpP193Ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1087,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Vnm+7gfI6D9FHLjlfzK7Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1088,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yKyoi2Q95j/E5IXyXySQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1089,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nhRBtcRT5z+3Lqr5kgDOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1090,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7mKfUwXy4z/xoCyqae+rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1091,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vDsjkV1P7b8FaybiQNDJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1092,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y4XiBxrg6L+4Nk1blAjKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1093,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GK41C+Dh5r9eGrzEXyCjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1094,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+hBb/Gxy7L+aJCW4B/TGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1095,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2HpuZznT7b+ehu911KjDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1096,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iFnPjAm17L9sciaOS3bAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1097,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3vdW6Y536L/nIK1RQYfDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1098,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZoIeVlGj5b+m7MFUVxWUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1099,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hpJjmRwG6L87hh1Ov0C9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1100,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DMlEl34W6L/phKL9DefNPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1101,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zFX0PShb5L+J5ylhc4GfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1102,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gDJvCHRp5L/yFWlSG+mWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1103,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IthIM2LK5r80gbuVDPbJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1104,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CU4oqbU557/9zPciMVbEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1105,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DtqBF/0V6L84ADsh4bewvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1106,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LfDkN1R/6b/JMJd3xp60vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1107,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tvC9NZjD6r/LVShJepnEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1108,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8GvXHC0w7b95YMGjX4ywPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1109,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DQWXL4Hq77+ZcrDkh/qYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1110,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vADUdrEo6r+Q8l2DoJKpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1111,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pw4QZ0i96b8vG76jX2G9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5266\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5263\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5264\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5265\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5267\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5268\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5280\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5273\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5270\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5271\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5272\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,101,1,101,1,1,1,1,1,1,1,1,51,1,1,51,1,101,41,41,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,101,1,1,1,1,1,1,1,1,51,1,1,51,1,101,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,51,1,101,1,51,51,1,1,1,1,1,1,1,1,51,1,1,1,41,1,41,1,1,1,41,1,1,1,51,1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,1,51,1,1,41,1,1,1,41,1,1,1,1,1,1,51,1,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,51,1,1,1,61,61,61,1,1,1,1,1,1,1,1,1,1,61,1,1,1,1,1,1,1,1,41,1,1,41,1,1,41,41,1,1,41,1,1,1,1,1,1,1,1,61,41,1,61,61,1,1,41,41,1,1,1,41,41,61,61,1,1,1,1,1,1,1,1,1,1,61,1,1,1,1,61,1,1,1,1,1,1,1,1,1,1,61,1,1,1,1,1,1,1,1,1,1,1,1,1,1,61,1,1,1,1,1,1,41,1,1,41,41,1,1,41,1,1,1,1,1,1,61,61,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,41,1,1,1,41,41,1,1,41,41,1,1,41,1,1,1,1,61,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,41,1,1,1,1,1,1,41,1,1,1,1,41,1,1,1,41,41,1,1,1,41,41,51,1,1,1,1,1,1,1,1,41]],[\"start\",[1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1081,1081,1081,1081,1081,1081,1081,1081,1081,1082,1082,1082,1082,1082,1082,1082,1082,1083,1083,1083,1083,1083,1083,1083,1084,1084,1084,1084,1084,1084,1085,1085,1085,1085,1085,1086,1086,1086,1086,1087,1087,1087,1088,1088,1089,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1093,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1102,1102,1102,1102,1102,1102,1102,1102,1102,1103,1103,1103,1103,1103,1103,1103,1103,1104,1104,1104,1104,1104,1104,1104,1105,1105,1105,1105,1105,1105,1106,1106,1106,1106,1106,1107,1107,1107,1107,1108,1108,1108,1109,1109,1110]],[\"end\",[1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1082,1083,1084,1085,1086,1087,1088,1089,1090,1083,1084,1085,1086,1087,1088,1089,1090,1084,1085,1086,1087,1088,1089,1090,1085,1086,1087,1088,1089,1090,1086,1087,1088,1089,1090,1087,1088,1089,1090,1088,1089,1090,1089,1090,1090,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1103,1104,1105,1106,1107,1108,1109,1110,1111,1104,1105,1106,1107,1108,1109,1110,1111,1105,1106,1107,1108,1109,1110,1111,1106,1107,1108,1109,1110,1111,1107,1108,1109,1110,1111,1108,1109,1110,1111,1109,1110,1111,1110,1111,1111]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.2,0.2,0.2,1.0,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.6000000000000001,0.2,1.0,0.4,0.4,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.6000000000000001,0.2,1.0,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.6000000000000001,0.2,1.0,0.2,0.6000000000000001,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.4,0.2,0.4,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.4,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.6000000000000001,0.2,0.2,0.2,0.8,0.8,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.4,0.2,0.2,0.4,0.4,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.4,0.2,0.8,0.8,0.2,0.2,0.4,0.4,0.2,0.2,0.2,0.4,0.4,0.8,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.4,0.4,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.8,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.4,0.2,0.2,0.2,0.4,0.4,0.2,0.2,0.4,0.4,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.8,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.2,0.4,0.2,0.2,0.2,0.4,0.4,0.2,0.2,0.2,0.4,0.4,0.6000000000000001,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.4]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5274\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5275\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5279\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5276\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5277\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5237\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5250\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5251\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5257\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5256\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5258\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5259\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5260\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5281\",\"attributes\":{\"renderers\":[{\"id\":\"p5273\"},{\"id\":\"p5266\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5245\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5246\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5247\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5248\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5240\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5241\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5242\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5243\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5244\",\"attributes\":{\"axis\":{\"id\":\"p5240\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5249\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5245\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"9d4b0189-0f18-4f1c-a6d5-faea68b2acb9\",\"roots\":{\"p5229\":\"bea31079-7524-4964-97dc-f3eeb1d3b61d\"},\"root_ids\":[\"p5229\"],\"notebook_comms_target\":\"p5282\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5229" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[School, ClassRoom], clear=True)\n", "inspector.plot_networks(location_color=\"label\", agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see in the graph above, the compositions defined by `ClassRoom` are not always met.\n", "That is due to the fact that the agents are first assigned to the schools independently of the settings defined by `ClassRoom`.\n", "When the classrooms are built, there are not always the *necessary* agents in each school needed to meet the composition defined in `ClassRoom`.\n", "This might not always be a problem.\n", "However, if we want to ensure that classrooms always have the defined composition of agents, they have to be created before the schools are created and, thus, we have to use the method `stick_together()` to nest classrooms into schools:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "class TeachersInClassRoom(p2n.MeltLocationDesigner):\n", " def setup(self):\n", " self.n_agents = 1\n", "\n", " def filter(self, agent):\n", " return agent.status == \"teacher\"\n", "\n", "\n", "class PupilsInClassRoom(p2n.MeltLocationDesigner):\n", " def setup(self):\n", " self.n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", "\n", "class ClassRoom(p2n.LocationDesigner):\n", " def melt(self):\n", " return [TeachersInClassRoom, PupilsInClassRoom]\n", "\n", " def weight(self, agent):\n", " return agent.hours * 10\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])\n", "\n", "\n", "class School(p2n.LocationDesigner):\n", " n_locations = 2\n", "\n", " def stick_together(self, agent):\n", " return agent.ClassRoom" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"762a5f57-bb92-4f26-9418-3886f4a494b4\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5325\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5326\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5327\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5334\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5335\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5332\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5357\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5374\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1125,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fu4lDFOKyT8nxcp2hlniPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1126,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sVtfnERE1T8cis+Pd4S6vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1127,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"08oezvaP77/ivwPxhdCQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1128,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nLp/DSTH7r+ckheCpGSovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1129,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MC4XQpHayT8RrR3UrhXcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1130,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"19LlXu1m67+SM6F9GNJwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1131,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FGYpnhxh2T8UNaJjUTOOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1132,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ipqFqkD3wD+a8TYAGpHgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1133,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bwkNRQV9vL++AWw3SAvhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1134,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eROejOak0D+Yda2dYCvfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1135,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LphCTTdh2T+/KvklAT2zvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1136,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Layg83Eu7D9aOOMlzsnKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1137,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"49e90Mai7L/JGMHbJnuzPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1138,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rOqRZs2m4z8zQKS7OxHmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1139,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D/FCJX68c2ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1140,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GlDfsi5A5z/YmlXOi3DmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1141,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/5Y52R/k37/ilerkCDPCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1142,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jpRq03PN6j/J7dRG/tLAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1143,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"azUywgJO7j9Utz14JtzAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1144,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OEhAeLkv379msbnCX1/nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1145,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mVjbuoX50T9fusdNJ5OAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1146,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"29GNfIVX4r8kyBXfjCjlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1147,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a2IQlE82x7+dscyockTgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1148,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HPEAwP/74b8xYSyux7e8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1149,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wU2dk5VM4L/qbE1BLDSYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1150,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0pZTpTHH4b/NDogQ14vovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1151,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aVuwnpTX3L8EJpj4xwysPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1152,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0kbSAn/0x78Hs9d/Bc3jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1153,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wmPFKzD34b/3zujSZ6KrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1154,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SK9ru6yQ5T+a0o6iGOTnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1155,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lONCc8LN7L+WoUtpKUqqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1156,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"af1u2MpA47+fLaNFVAznvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1157,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XwG6WaFq4L+9RWrrivbkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1158,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"40z3EPkbzL+nRdumvxfivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1159,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i5lPqfYAwb/wvNhWL33kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1160,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kUaF4luU7D8dcJHGeiSyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1161,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y+C4TW2z7j9xQNp5IxbJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1162,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EQJpskbyzD9h0oWzreLgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1163,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IDuSZLG91T+ovmFSg8yTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1164,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zK1sZ8PY77/CIAE7nf3gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1165,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Q4a8u9Ys6D9DOp82tKfkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1166,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xcXLfpTb5T+0ZoTP0YnjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1167,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZmEBGWkI1T+0hshemkepvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1168,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Hdufj57Bxz8DtQCRBQjgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1169,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c85gH6Z1wb+YHflfyFHivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1170,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kSRd5zR/7b+AgqPysSeXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1171,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+4M8yzbU5T/qdPoZPrHlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1172,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FOvqoz3q7D+SfsxvD9/BPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1173,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ArT1dbD94L94QNeXaL3mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1174,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LncWlRYh4L+ql9Unza+2Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1175,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OAYw8izR4T/LQTgYRE3TPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1176,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m+209g734b99z4pBB+zTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5362\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5359\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5360\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5361\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"School\",\"School\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5363\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5364\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5376\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5369\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5366\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5367\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5368\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[50,1,60,1,40,1,40,1,50,1,40,1,50,1,50,1,90,1,50,1,50,1,40,1,50,1,40,1,1,90,1,60,1,40,1,110,1,100,1,50,1,60,1,40,1,60,1,60,1,60,1,60,1,40,1,60,1,40,1,40,1,60,1,60,1,40,1,40,1,40,1,40,1,90,1,50,1,1,40,1,40,1]],[\"start\",[1125,1125,1126,1126,1127,1127,1128,1128,1129,1129,1130,1130,1131,1131,1132,1132,1133,1133,1134,1134,1135,1135,1136,1136,1137,1137,1138,1138,1139,1140,1140,1141,1141,1142,1142,1143,1143,1144,1144,1145,1145,1146,1146,1147,1147,1148,1148,1149,1149,1150,1150,1151,1151,1152,1152,1153,1153,1154,1154,1155,1155,1156,1156,1157,1157,1158,1158,1159,1159,1160,1160,1161,1161,1162,1162,1163,1163,1164,1165,1165,1166,1166]],[\"end\",[1168,1175,1167,1175,1170,1176,1170,1176,1168,1175,1170,1176,1167,1175,1168,1175,1169,1176,1168,1175,1167,1175,1172,1175,1170,1176,1171,1175,1175,1171,1175,1174,1176,1172,1175,1172,1175,1173,1176,1167,1175,1173,1176,1169,1176,1174,1176,1174,1176,1173,1176,1174,1176,1169,1176,1174,1176,1171,1175,1170,1176,1173,1176,1173,1176,1169,1176,1169,1176,1172,1175,1172,1175,1168,1175,1167,1175,1176,1171,1175,1171,1175]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.42857142857142855,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.9999999999999998,0.14285714285714285,0.857142857142857,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.2857142857142857,0.14285714285714285]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5370\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5371\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5375\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5372\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5373\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5333\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5346\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5347\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5353\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5352\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5354\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5355\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5356\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5377\",\"attributes\":{\"renderers\":[{\"id\":\"p5369\"},{\"id\":\"p5362\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5341\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5342\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5343\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5344\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5336\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5337\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5338\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5339\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5340\",\"attributes\":{\"axis\":{\"id\":\"p5336\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5345\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5341\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"762a5f57-bb92-4f26-9418-3886f4a494b4\",\"roots\":{\"p5325\":\"f6c1c22e-03d4-4cc6-9352-82254c8a4aa6\"},\"root_ids\":[\"p5325\"],\"notebook_comms_target\":\"p5378\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5325" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"6f4d41ef-232e-45f4-a36f-1c7cd5afba8d\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5431\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5432\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5433\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5440\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5441\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5438\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5463\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5480\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1125,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jcyJIekg5r/aPgA+/yHYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1126,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HQCq/Lav6L9f99gk2PnlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1127,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EluWAJyT5T8mudsYHVXbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1128,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cQlUcZKs5T9wXOrdo3jXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1129,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jtz/98l4479zOucWY9zWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1130,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BqG69kXX4z87cKzNAzbWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1131,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A47ZoiPN6b+zfRfa1E7nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1132,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qrgYNnkV5b8iwGIwaD3VPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1133,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l1yc55vg6j97qah4ZQHnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1134,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lvA8PAkS5b+6ZMaa59baPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1135,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ftJIa51267/Y08iwmBrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1136,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oXkJmQV9678p+YB8VpncPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1137,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OGqJaen14j/mWcTu+2vZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1138,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YJFDA+qL47+SmOV/waTiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1139,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xkz5kSi+779bCbqLWF7jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1140,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/6QfEGhu47/ie1ZrodnlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1141,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iyUyMECE7T/73+pnI0Havw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1142,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a5VvA7RO7b+0EXbGuKrdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1143,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SY0nqeda678u9xQ77bbYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1144,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6VWi32kB5D8Vi6I2XEnlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1145,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JCIWumtg679Ze1CTHrnmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1146,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0GjbgKdU5D+GxVMeqr3jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1147,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Mtb24dh56T86JefzlMHmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1148,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mqd8ykjv7D8LF7laux3Xvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1149,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4taxxhoi7D+IO0v+5Rrcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1150,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3jQ74uue4j+m2GwEzu/lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1151,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AskQBb7o6j/u6LS72xHavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1152,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l/5cifwf7D8NAP8rP/nlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1153,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LwrlqyE36z8G/9UUL63Wvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1154,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dv4dBJme4b8RAz0/5QrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1155,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"APS3eOKq4z8YffRB2lbcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1156,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B3ux9ZXC4T8dJ1vLBZDkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1157,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RwyE3Nqc4j/2GYJ0nx7jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1158,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"khK9goPk6z+gatAF527kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1159,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gP781YKm6T+9qG+HTXfkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1160,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jYgokLAO7b/wTD4PYnfXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1161,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UO1vNI8D7r9bHS70XGLaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1162,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6LNQsXxM478+zJ65BUbaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1163,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QXqMxJze6b+xcZurDDvkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1164,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D+R83thS+Hivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1165,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hxR8sBQp5L/AeUi+NCXkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1166,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9OwGU23O4b9+PylT6C3jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5468\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5465\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5466\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5467\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5469\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5470\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5482\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5475\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5472\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5473\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5474\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,51,1,1,1,1,51,1,51,51,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,51,1,1,51,1,1,1,1,1,1,51,1,1,41,1,1,1,1,1,41,41,1,41,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,41,1,41,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,1,51,51,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,1,51,1,1,1,1,1,1,51,1,1,1,51,1,1,1,51,1,1,1,1,1,1,1,1,41,1,1,1,1,41,41,1,1,1,1,1,41,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,51,1,1,1,1,1,1,1,1,51,1,41,41,1,1,1,1,1,1,1,41,41,1,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,41,41,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,1,41,1,1,1,1,41,41,1,1,1,1,61,1,1,1,1,1,1,1,1,1,61,61,1,61,1,41,41,1,1,1,1,41,1,1,41,41,1,1,1,1,1,1,1,1,61,61,1,1,1,61,1,1,1,61,1,1,1,1,1,51,1,1,1,1,1,61,61,1,1,1,1,1,1,61,1,41,1,1,1,1,41,41,1,1,1,1,1,1,61,1,1,1,1,1,1,61,1,61,1,61,1,1,1,1,1,1,1,61,1,1,1,61,61,1,1,1,1,1,61,1,1,1,1,1,1,1,1,1,1,41,41,1,1,1,1,1,1,1,1,1,1,1,41,41,1,1,1,1,1,61,1,1,1,1,1,1,41,1,1,41,1,1,1,1,1,1,1,1,1,1,1,1,1,41]],[\"start\",[1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1129,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1131,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1139,1139,1139,1139,1139,1139,1139,1139,1139,1139,1139,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1142,1142,1142,1142,1142,1142,1142,1142,1142,1143,1143,1143,1143,1143,1143,1143,1143,1144,1144,1144,1144,1144,1144,1144,1144,1144,1144,1144,1144,1144,1144,1145,1145,1145,1145,1145,1145,1145,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1149,1149,1149,1149,1149,1149,1149,1149,1149,1149,1150,1150,1150,1150,1150,1150,1150,1150,1150,1151,1151,1151,1151,1151,1151,1151,1151,1152,1152,1152,1152,1152,1152,1152,1153,1153,1153,1153,1153,1153,1154,1154,1154,1154,1154,1154,1155,1155,1155,1155,1155,1156,1156,1156,1156,1157,1157,1157,1158,1158,1159,1160,1160,1160,1160,1160,1161,1161,1161,1161,1162,1162,1162,1163,1163,1165]],[\"end\",[1154,1160,1161,1162,1163,1165,1166,1126,1129,1131,1132,1134,1135,1136,1138,1139,1140,1142,1143,1145,1154,1160,1161,1162,1163,1165,1166,1129,1131,1132,1134,1135,1136,1138,1139,1140,1142,1143,1145,1152,1153,1155,1156,1157,1158,1159,1164,1128,1130,1133,1137,1141,1144,1146,1147,1148,1149,1150,1151,1152,1153,1155,1156,1157,1158,1159,1164,1130,1133,1137,1141,1144,1146,1147,1148,1149,1150,1151,1154,1160,1161,1162,1163,1165,1166,1131,1132,1134,1135,1136,1138,1139,1140,1142,1143,1145,1152,1153,1155,1156,1157,1158,1159,1164,1133,1137,1141,1144,1146,1147,1148,1149,1150,1151,1154,1160,1161,1162,1163,1165,1166,1132,1134,1135,1136,1138,1139,1140,1142,1143,1145,1154,1160,1161,1162,1163,1165,1166,1134,1135,1136,1138,1139,1140,1142,1143,1145,1152,1153,1155,1156,1157,1158,1159,1164,1137,1141,1144,1146,1147,1148,1149,1150,1151,1154,1160,1161,1162,1163,1165,1166,1135,1136,1138,1139,1140,1142,1143,1145,1154,1160,1161,1162,1163,1165,1166,1136,1138,1139,1140,1142,1143,1145,1154,1160,1161,1162,1163,1165,1166,1138,1139,1140,1142,1143,1145,1152,1153,1155,1156,1157,1158,1159,1164,1141,1144,1146,1147,1148,1149,1150,1151,1154,1160,1161,1162,1163,1165,1166,1139,1140,1142,1143,1145,1154,1160,1161,1162,1163,1165,1166,1140,1142,1143,1145,1154,1160,1161,1162,1163,1165,1166,1142,1143,1145,1152,1153,1155,1156,1157,1158,1159,1164,1144,1146,1147,1148,1149,1150,1151,1154,1160,1161,1162,1163,1165,1166,1143,1145,1154,1160,1161,1162,1163,1165,1166,1145,1152,1153,1155,1156,1157,1158,1159,1164,1146,1147,1148,1149,1150,1151,1154,1160,1161,1162,1163,1165,1166,1152,1153,1155,1156,1157,1158,1159,1164,1147,1148,1149,1150,1151,1152,1153,1155,1156,1157,1158,1159,1164,1148,1149,1150,1151,1152,1153,1155,1156,1157,1158,1159,1164,1149,1150,1151,1152,1153,1155,1156,1157,1158,1159,1164,1150,1151,1152,1153,1155,1156,1157,1158,1159,1164,1151,1152,1153,1155,1156,1157,1158,1159,1164,1153,1155,1156,1157,1158,1159,1164,1155,1156,1157,1158,1159,1164,1160,1161,1162,1163,1165,1166,1156,1157,1158,1159,1164,1157,1158,1159,1164,1158,1159,1164,1159,1164,1164,1161,1162,1163,1165,1166,1162,1163,1165,1166,1163,1165,1166,1165,1166,1166]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.75,0.25,0.75,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.75,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.75,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,1.0,0.25,1.0,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,1.0,0.25,0.25,0.25,1.0,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,0.25,1.0,1.0,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.5,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,1.0,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,1.0,1.0,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5476\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5477\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5481\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5478\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5479\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5439\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5452\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5453\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5459\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5458\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5460\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5461\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5462\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5483\",\"attributes\":{\"renderers\":[{\"id\":\"p5475\"},{\"id\":\"p5468\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5447\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5448\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5449\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5450\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5442\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5443\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5444\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5445\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5446\",\"attributes\":{\"axis\":{\"id\":\"p5442\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5451\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5447\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"6f4d41ef-232e-45f4-a36f-1c7cd5afba8d\",\"roots\":{\"p5431\":\"bb296d7d-c97b-4248-acb0-67cc5e7c0244\"},\"root_ids\":[\"p5431\"],\"notebook_comms_target\":\"p5484\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5431" } }, "output_type": "display_data" } ], "source": [ "creator.create(df=df_school, location_designers=[ClassRoom, School], clear=True)\n", "inspector.plot_networks(location_color=\"label\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is also possible to combine both nesting techniques.\n", "We could first nest the class `ClassRoom` into `School` using `stick_together()` in order to get the composition wanted for `ClassRoom` and then use `nest()` to nest further locations into `School`, as it is done in the next example:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "class TeachersInClassRoom(p2n.MeltLocationDesigner):\n", " n_agents = 1\n", "\n", " def filter(self, agent):\n", " return agent.status == \"teacher\"\n", "\n", "\n", "class PupilsInClassRoom(p2n.MeltLocationDesigner):\n", " n_agents = 4\n", "\n", " def filter(self, agent):\n", " return agent.status == \"pupil\"\n", "\n", " def split(self, agent):\n", " return agent.grade\n", "\n", " def stick_together(self, agent):\n", " return agent.friend_group\n", "\n", "\n", "class ClassRoom(p2n.LocationDesigner):\n", " def melt(self):\n", " return [TeachersInClassRoom, PupilsInClassRoom]\n", "\n", " def weight(self, agent):\n", " return agent.hours * 10\n", "\n", " def project_weights(self, agent1, agent2) -> float:\n", " return min([self.get_weight(agent1), self.get_weight(agent2)])\n", "\n", "\n", "class School(p2n.LocationDesigner):\n", " n_locations = 2\n", "\n", " def stick_together(self, agent):\n", " return agent.ClassRoom\n", "\n", "\n", "class SoccerTeam(p2n.LocationDesigner):\n", " n_agents = 11\n", "\n", " def nest(self):\n", " return \"School\"" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(AgentList (42 objects), LocationList (14 objects))" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "creator.create(\n", " df=df_school,\n", " location_designers=[\n", " ClassRoom, # nested into School using `stick_together()`\n", " School,\n", " SoccerTeam, # nested into School using `nest()`\n", " ],\n", " clear=True,\n", ")" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"65471585-6f34-46b1-882f-2a6c0b887aad\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5527\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5528\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5529\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5536\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5537\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5534\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5559\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5576\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1177,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P/C45AcX5L9MhXM7cjjZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1178,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7uqYs0lM4z9pjmJNdPvkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1179,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pZAOZfcpzr+eaJADBe/APw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1180,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FLNbYTHG2b8tVzY/LPWdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1181,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BvPU/QuO6L9u7vO13I3SPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1182,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uU7j0heB0L8Xjwg+GCOfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1183,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s/ngF9F65L9rbKjNHBTmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1184,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"derKKzXP6b+xefVYThjWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1185,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WgF7UcBs4r/HUhZshZHovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1186,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jyDeCpyw5L+c+1NTDLDTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1187,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ercDVCV84r+83CNC1l3kvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1188,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4iVFUNlW4D+1h9oHi/quvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1189,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cc+X/qrZ5r+Nu1EAuhPQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1190,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qKDLzayL0D/kglnZKmDpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1191,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i7MkWCB27L/QKlcTtjjavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1192,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+cHPqF7PwT9lPeMqsnDZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1193,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2dYQH+drwD8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1194,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g6+XZI+54z/6snR5857Jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1195,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oBHkNBGh1L+dazBvAxHEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1196,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"d/c3Hz5h1j/bce6Psk/svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1197,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kfVZRGs027/Xj8z8Z0zpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1198,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kil/1Wdr3z9DNNEkl0bhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1199,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s9idj59Rxz+iYvqJwErTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1200,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rqTb6oUe5T8HZz15PY/Dvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1201,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aCUABAphyD8P6QuvtlntPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1202,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zBymXW/g4j89stj7I7zhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1203,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uxIcp/G+aD/dLfPiiX7uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1204,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1fDi69yRlr8gCbY9S8rVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1205,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"so+2pc0zhz9us8i9Br7rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1206,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uWzCz+QL4D/ypYS7HFPpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1207,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8byiV4t22r8LAmfLtwDHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1208,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/CoYqWRO4D+LyV03+wbnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1209,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pSOj6EiW2z8rcZD88u/kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1210,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dVNRIXdWoD/PlThgOx/Rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1211,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a0zgkheXuz/x66ppiHbPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1212,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HmVSEDs/6D8nSU41ux60vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1213,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KRD3CMCD5z/Y43WjMv/Ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1214,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fjEW0QzqvT9p7yezNZPrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1215,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t94mt4KK2b/os0hUgSrnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1216,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"akT34Dxk1b/OtCXoxGjpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1217,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KtDErIlP2T/Y4SJtVMzuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1218,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8Q01HqMU4D/T8LaHQJzsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1219,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kur5TNHi4L9iq+jOkiTnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1220,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"do6zfQYa578WjNGb/DPYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1221,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ytRhoVXPsz9h2oK9rSbYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1222,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dbo2GDoS1r/h/FdbiDC3Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1223,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Zm3wHDVN2j9fMKRcR1zrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1224,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2kyTXdOE5T/dJPn6PkO1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1225,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rZhwS4S54D80KGSX4+7jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1226,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uhKZNrNltz8V2aU+HIjtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1227,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hpcVfLUnur89wjv69e7Svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1228,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FY7BnKk6tD/lx98wOvbVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1229,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DG1ITEJi3r/7TmW43qvKvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1230,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NB+dfP3q1z/ViL+u5rvivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1231,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fG7h4Ix5xD/Q0sonaRPTPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1232,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8KxQLsxQkz+Bz28Sox3bPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5564\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5561\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5562\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5563\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"ClassRoom\",\"School\",\"School\",\"SoccerTeam\",\"SoccerTeam\",\"SoccerTeam\",\"SoccerTeam\"]],[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\",null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#aec7e8\",\"#aec7e8\",\"#ff7f0e\",\"#ff7f0e\",\"#ff7f0e\",\"#ff7f0e\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5565\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5566\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5578\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5571\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5568\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5569\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5570\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[50,1,1,60,1,1,40,1,1,40,1,1,50,1,1,40,1,1,50,1,1,50,1,1,90,1,1,50,1,1,50,1,1,40,1,1,50,1,1,40,1,1,1,1,90,1,1,60,1,1,40,1,1,110,1,1,100,1,1,50,1,1,60,1,1,40,1,1,60,1,1,60,1,1,60,1,1,60,1,1,40,1,1,60,1,1,40,1,1,40,1,1,60,1,1,60,1,1,40,1,1,40,1,1,40,1,1,40,1,1,90,1,1,50,1,1,1,1,40,1,1,40,1,1]],[\"start\",[1177,1177,1177,1178,1178,1178,1179,1179,1179,1180,1180,1180,1181,1181,1181,1182,1182,1182,1183,1183,1183,1184,1184,1184,1185,1185,1185,1186,1186,1186,1187,1187,1187,1188,1188,1188,1189,1189,1189,1190,1190,1190,1191,1191,1192,1192,1192,1193,1193,1193,1194,1194,1194,1195,1195,1195,1196,1196,1196,1197,1197,1197,1198,1198,1198,1199,1199,1199,1200,1200,1200,1201,1201,1201,1202,1202,1202,1203,1203,1203,1204,1204,1204,1205,1205,1205,1206,1206,1206,1207,1207,1207,1208,1208,1208,1209,1209,1209,1210,1210,1210,1211,1211,1211,1212,1212,1212,1213,1213,1213,1214,1214,1214,1215,1215,1215,1216,1216,1217,1217,1217,1218,1218,1218]],[\"end\",[1220,1227,1229,1225,1228,1231,1222,1228,1231,1222,1228,1231,1220,1227,1229,1222,1228,1231,1219,1227,1229,1220,1227,1229,1219,1227,1229,1220,1227,1229,1219,1227,1229,1224,1227,1229,1220,1227,1229,1223,1227,1229,1227,1229,1221,1228,1231,1226,1228,1231,1224,1227,1230,1222,1228,1231,1223,1227,1230,1219,1227,1230,1225,1228,1231,1221,1228,1231,1224,1227,1230,1226,1228,1231,1225,1228,1231,1226,1228,1232,1221,1228,1232,1226,1228,1232,1223,1227,1230,1222,1228,1232,1225,1228,1232,1225,1228,1232,1221,1228,1232,1221,1228,1232,1224,1227,1230,1224,1227,1230,1226,1228,1232,1219,1227,1230,1228,1232,1223,1227,1230,1223,1227,1230]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.42857142857142855,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.14285714285714285,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.9999999999999998,0.14285714285714285,0.14285714285714285,0.857142857142857,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.5714285714285714,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.7142857142857142,0.14285714285714285,0.14285714285714285,0.42857142857142855,0.14285714285714285,0.14285714285714285,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285,0.2857142857142857,0.14285714285714285,0.14285714285714285]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5572\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5573\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5577\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5574\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5575\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5535\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5548\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5549\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5555\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5554\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5556\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5557\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5558\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5579\",\"attributes\":{\"renderers\":[{\"id\":\"p5571\"},{\"id\":\"p5564\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5543\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5544\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5545\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5546\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5538\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5539\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5540\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5541\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5542\",\"attributes\":{\"axis\":{\"id\":\"p5538\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5547\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5543\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"65471585-6f34-46b1-882f-2a6c0b887aad\",\"roots\":{\"p5527\":\"c889b8d7-a073-47fe-902b-1966487ac255\"},\"root_ids\":[\"p5527\"],\"notebook_comms_target\":\"p5580\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5527" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"0b10afe4-2beb-4598-b756-855448b350b0\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5637\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5638\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5639\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5646\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5647\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5644\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5669\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5686\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1177,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LnBl91Ez5T9mYqQEQuiQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1178,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CgxrGwcL679ZFu6TO+3Pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1179,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6auW00es7L9QU8n6rrKOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1180,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8CZNL9gs7r9DUw7WLPykPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1181,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A7CbDsi15j9Bdjb5+MuDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1182,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DGhiGiX+7r+Io7GK3cKkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1183,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PSXMEeJT7D+KIR65xrtsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1184,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2AJE4Lws5j9FNuzS6GKzvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1185,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"U2DEgBoQ7T8hwHDIurGmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1186,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1uKjoGjA5j9zRfqU1MKivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1187,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BhhsVnxL7j8fE7qftAiYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1188,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DOOtZBsV5j9BZB+0QSLCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1189,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"++sNZX8P6D/B6XhWA4movw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1190,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7wqTEUJ57D+LpWjErhvEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1191,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1zrnR0pc6z/IKApunWDAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1192,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+oPVt9QS6b9f0XWwOG6VPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1193,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iHJBCEIp5b+5Np1iD9XAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1194,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qGjx2Ga85T8ZHptD/CTKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1195,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vT9t2arS7r+3JNMsUaNbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1196,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oHd5uU1b7j9+DSlfNfzGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1197,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bHh2SNAe7T/d4mpj1JumPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1198,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wYavajKf7L/gRcqJJDjOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1199,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ESQCINd1579g4HWdYpiDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1200,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"B9bLPh0h5z8cg5x1m2DOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1201,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NfmQXSFC57+jAJ8h6D7Avw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1202,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WLdAwwJw7L9TONBIriHJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1203,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OBeHpEUd5b/MzLGl+VPGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1204,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qVUobTPP57+17SjXwDa3Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1205,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IrpREp2V5r9dADq4TEzGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1206,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Fg5cccEe7j9ZbOg8sLvMPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1207,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2lCQSeuv7L/XypsAPmSivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1208,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Pjql65j26b/MQgzhpB3Lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1209,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Uu5WcitK678jxkhoCknGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1210,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5k3nWo6F5r/9dIs6/jysPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1211,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IrKEZbAQ6b/+4wddDqSyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1212,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wcjmAjLP5z9jDHNe7gvEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1213,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TGf77+wI6D+wa0OOVu3JPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1214,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"50ZCCguL5b+I73iQAPu4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1215,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lP04M0x97j+TbwOJmZucPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1216,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8L8ZkAyQCzXCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1217,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wKC/kSHt7D+bI+Hz4mnQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[1218,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EPz0PXsT7D+D6wcVwfvLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5674\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5671\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5672\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5673\"},\"data\":{\"type\":\"map\",\"entries\":[[\"status\",[\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"teacher\",\"pupil\",\"pupil\",\"teacher\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"pupil\",\"teacher\",\"pupil\",\"social_worker\",\"pupil\",\"pupil\"]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#aec7e8\",\"#1f77b4\",\"#1f77b4\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"status_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5675\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5676\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5688\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5681\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5678\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5679\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5680\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[52,2,52,2,52,2,2,52,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,62,2,2,62,1,1,1,1,61,61,1,1,1,1,42,42,2,2,42,2,2,2,2,1,1,1,41,1,1,1,1,1,1,42,2,2,42,2,2,2,2,1,1,1,41,1,1,1,1,1,1,2,52,2,52,2,2,52,2,2,1,1,1,1,1,1,1,1,1,1,2,2,42,2,2,2,2,1,1,1,41,1,1,1,1,1,1,2,52,2,52,2,2,2,2,1,1,51,1,1,1,1,51,1,1,2,52,2,2,52,2,2,1,1,1,1,1,1,1,1,1,1,2,52,2,2,2,2,1,1,51,1,1,1,1,51,1,1,2,2,52,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,51,1,1,1,1,51,1,1,2,2,2,41,1,1,41,1,41,41,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,2,1,41,1,1,41,1,1,1,41,41,1,1,1,1,1,1,1,1,1,1,2,2,2,42,2,2,1,41,1,1,1,1,41,41,1,1,2,2,2,62,2,61,1,61,1,1,1,1,1,61,1,2,2,42,2,42,42,2,2,2,2,2,2,2,1,1,1,41,1,1,1,1,1,1,2,2,42,2,2,2,42,42,2,2,2,2,52,2,2,2,2,62,1,1,1,1,61,61,1,1,1,1,2,2,1,41,1,1,1,1,41,41,1,1,2,42,42,2,2,2,2,61,1,61,1,1,1,1,1,61,1,1,1,1,1,61,61,1,1,1,1,2,62,2,2,2,2,2,62,2,2,2,2,2,42,42,2,2,2,2,2,2,2,62,2,2,2,2,42,42,2,2,2,2,2,2,62,2,2,2,2,2,2,2,2,42,2,2,2,2,42,2,2,2,2,2,2,2,2,2,42]],[\"start\",[1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1178,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1179,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1181,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1187,1187,1187,1187,1187,1187,1187,1187,1187,1187,1187,1187,1187,1187,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1188,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193,1194,1194,1194,1194,1194,1194,1194,1194,1194,1195,1195,1195,1195,1195,1195,1195,1195,1195,1195,1195,1195,1195,1195,1196,1196,1196,1196,1196,1196,1196,1196,1197,1197,1197,1197,1197,1197,1197,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1200,1200,1200,1200,1200,1200,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1203,1203,1203,1203,1203,1203,1203,1203,1203,1204,1204,1204,1204,1204,1204,1204,1204,1205,1205,1205,1205,1205,1205,1205,1206,1206,1206,1206,1206,1207,1207,1207,1207,1207,1207,1208,1208,1208,1208,1208,1209,1209,1209,1209,1210,1210,1210,1211,1211,1212,1212,1212,1212,1213,1213,1213,1214,1215,1215,1217]],[\"end\",[1181,1183,1184,1185,1186,1187,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1179,1180,1182,1192,1193,1195,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1180,1182,1192,1193,1195,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1182,1192,1193,1195,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1183,1184,1185,1186,1187,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1192,1193,1195,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1184,1185,1186,1187,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1185,1186,1187,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1186,1187,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1187,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1188,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1189,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1190,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1191,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1194,1196,1197,1200,1206,1212,1213,1215,1217,1218,1193,1195,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1195,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1196,1197,1200,1206,1212,1213,1215,1217,1218,1198,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1197,1200,1206,1212,1213,1215,1217,1218,1200,1206,1212,1213,1215,1217,1218,1199,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1201,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1206,1212,1213,1215,1217,1218,1202,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1203,1204,1205,1207,1208,1209,1210,1211,1214,1216,1204,1205,1207,1208,1209,1210,1211,1214,1216,1205,1207,1208,1209,1210,1211,1214,1216,1207,1208,1209,1210,1211,1214,1216,1212,1213,1215,1217,1218,1208,1209,1210,1211,1214,1216,1209,1210,1211,1214,1216,1210,1211,1214,1216,1211,1214,1216,1214,1216,1213,1215,1217,1218,1215,1217,1218,1216,1217,1218,1218]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[0.75,0.25,0.75,0.25,0.75,0.25,0.25,0.75,0.25,0.25,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,1.0,0.125,0.125,0.125,0.125,0.875,0.875,0.125,0.125,0.125,0.125,0.5,0.5,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.125,0.125,0.125,0.375,0.125,0.125,0.125,0.125,0.125,0.125,0.5,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.125,0.125,0.125,0.375,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.75,0.25,0.75,0.25,0.25,0.75,0.25,0.25,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.125,0.125,0.125,0.375,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.75,0.25,0.75,0.25,0.25,0.25,0.25,0.125,0.125,0.625,0.125,0.125,0.125,0.125,0.625,0.125,0.125,0.25,0.75,0.25,0.25,0.75,0.25,0.25,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.75,0.25,0.25,0.25,0.25,0.125,0.125,0.625,0.125,0.125,0.125,0.125,0.625,0.125,0.125,0.25,0.25,0.75,0.25,0.25,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.25,0.25,0.25,0.125,0.125,0.625,0.125,0.125,0.125,0.125,0.625,0.125,0.125,0.25,0.25,0.25,0.375,0.125,0.125,0.375,0.125,0.375,0.375,0.125,0.125,0.125,0.25,0.25,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.125,0.375,0.125,0.125,0.375,0.125,0.125,0.125,0.375,0.375,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.25,0.25,0.5,0.25,0.25,0.125,0.375,0.125,0.125,0.125,0.125,0.375,0.375,0.125,0.125,0.25,0.25,0.25,1.0,0.25,0.875,0.125,0.875,0.125,0.125,0.125,0.125,0.125,0.875,0.125,0.25,0.25,0.5,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.125,0.125,0.125,0.375,0.125,0.125,0.125,0.125,0.125,0.125,0.25,0.25,0.5,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,1.0,0.125,0.125,0.125,0.125,0.875,0.875,0.125,0.125,0.125,0.125,0.25,0.25,0.125,0.375,0.125,0.125,0.125,0.125,0.375,0.375,0.125,0.125,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.875,0.125,0.875,0.125,0.125,0.125,0.125,0.125,0.875,0.125,0.125,0.125,0.125,0.125,0.875,0.875,0.125,0.125,0.125,0.125,0.25,1.0,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.5,0.5,0.25,0.25,0.25,0.25,0.25,0.25,1.0,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.5,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.5]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"status_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5682\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5683\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5687\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5684\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5685\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5645\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5658\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5659\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5665\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5664\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5666\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5667\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5668\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5689\",\"attributes\":{\"renderers\":[{\"id\":\"p5681\"},{\"id\":\"p5674\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
status:@status
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5653\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5654\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5655\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5656\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5648\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5649\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5650\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5651\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5652\",\"attributes\":{\"axis\":{\"id\":\"p5648\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5657\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5653\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"0b10afe4-2beb-4598-b756-855448b350b0\",\"roots\":{\"p5637\":\"a149cc26-4ad0-429e-837c-848a0f6f4d2a\"},\"root_ids\":[\"p5637\"],\"notebook_comms_target\":\"p5690\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5637" } }, "output_type": "display_data" } ], "source": [ "inspector.plot_networks(location_color=\"label\", agent_color=\"status\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This way we can nest multiple locations into one level-2 location and at the same time ensure that the composition of agents defined in `ClassRoom` is met in each school.\n", "The order of the locations plays a crucial role:\n", "1. The classrooms with the desired compositions are created\n", "2. The schools are created keeping together whole classrooms\n", "3. Soccer teams are created within the schools" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Integrating networkx graph generators\n", "\n", "One great features of Pop2net is that we do not have to forego classic network models because networkX graph generators are easily integrateble.\n", "To build a network component based on a networkX graph or networkX graph generator, we only have to set the LocationDesigner class attribute `nxgraph` to the desired graph (generator).\n", "\n", "In the following example, we define a location class that creates a small world network from a networkx graph generator:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"2eb6a754-4a67-46a1-ac2f-c997f9beb381\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5733\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5734\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5735\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5742\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5743\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5740\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5765\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5782\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ACvB5PoP3L/B1XvbdabpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"o1/ODmVQ478WqJEEOqDoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4l44cVgz579C8zo8O5fmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8WGx2O0L6L8N/TdXzoPgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NplgTxM46r+kpHv8uCPYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sIAa+plR5L92AZ/i0nXBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9oCV2QVg679valkdwfqvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vijNhCLs57/z6J2Pegy2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QldNlPjE5b8APUUZrgOuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AoftTSjL3r8fVMe21FC4Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Wsd97rZ51r/bJT1fEH7SPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sAa9bI03wr/5TqCvZfrWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ByVj1fmXrj95no97XsfePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oFm/B3F+0T9nLbETVnjgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2rbOH1dd3j9VJYJ81RXePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9BxJYgdG5T9KjjXHN5DaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tiaNZlRE6T8jA3KhZhjOPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IF4oxkXz7D/IbyU5Kb20Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7FRU2pYD7j8WsughNkfEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7jFqn6uw7T/He0P5f+nUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K2PIAlHJ6z+J4wGn/pDhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"we4YvOyu5j+nHfRrtZjivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"j4zr5O7F5D/WjVtvSRHnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ry9gcu4D4D/XhsBQGo3ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a+QvRTgJ1j+es1fHt+Lhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BNXYt0UQzT8SyM4cP+PVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LnP1A9u2az+qhpTcqfTRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kjtM612byb8q2Y9lRdS/vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0oEiOqyT2b+G6sD4jYG5vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mn7/74Kv57/sbyvRQLt2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CClvd69h5r/VIZ392Xicvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E18H0xM+6L8TnQ9XXqjDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1bRJiFyK47/G2rE21IbTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dlG1w91y3L+lB5RC1xTVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sH2xuF3Kzr+E2j9b56nbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"erew4QyPp7+eLnwVDwfQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a3joH5MNyz+jjtS5OZPbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AXP8+9rW2T/gqfAomqvSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7Fw1WFFS4j+nl0Ju9LDSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aEB7Z7jA5T+O+0A3UgPIvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"V0dsrX6P4z9CpCrPDkDBvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t17tm9pG3z/mZdxEe3DHvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NxZbUXfG2z850x2Xh7vWvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y0cnF/1Hyj+g66XYdSTTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+PMpjJCavz9aiwm92SLJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ou/gIHvFgL/PkBph+Xufvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XZHrcJQZhL909nDIJFDBPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rJ4CT7WRvb9r/9d0KDTYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G/Z2eSw9xr9268Jn6RHiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dFUYaKKw1L/OjehrsqLmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[51,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lGi6BBwn7z+kcfM99Myevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[52,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RquQSKWG5j+LtUpCGUu6vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[53,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5TkJfEzZ4r/Z0garYbKqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[54,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lkbHBtdc4r8mVIYJ7LCqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[55,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f0mO/x/c0L8Ocdsln6nWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[56,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FnnDjNE95j8ryW2uzdfmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[57,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bHMAIMRb1j853NoPvi/Ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[58,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Eq8mwKXyz7936Kc+PqfTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[59,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CVFgLUpl7T9X1Tnc/XvXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[60,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JYFHuBm37D/EXszrMEDIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[61,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Am2cMRc4j8lJUk3M0nfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[62,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"knjMlXafmD+c2+gSgTvMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[63,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UNjhRy+xsD+QfDt4rzncPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[64,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xMpu1Fij6L8fUnVfT5Glvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[65,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vrEbKiLfxz/LYG42RKrQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[66,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"C/TT/yN26b+wT8sYHbXhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[67,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TNF5uYOV3j9fVJavSN/fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[68,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4o7xtW2j5D/d+5cIjnvJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[69,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8ZoZSWeO3z89xycX9rrlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[70,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2W58R2vF2r//q99H61p1Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[71,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Oi3dYqJywr/eXtv4LKzXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[72,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/CPP/2HB4D96AnGKPzvVvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[73,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aPmVJZIE7j+u6mdXisHdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[74,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kOhcNZYVxL9W1G8DzrvZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[75,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tysdyymbyb+mb21IAk/Ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[76,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MLnZMIGbp79RmEv59RvRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[77,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1EOtoQwh17+0pqB8biLqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[78,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QlCnf8Xy2z++uMPP+73jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[79,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g0q688Zesj+D/ctOF1aYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[80,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nCcG9bR3vz+a4Q2hBirUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[81,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R4MLriDf5b+ujJeZgirGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[82,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4BDYhhyGwL+gYF4o5iTgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[83,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"J+cxjUt2pr9aaJChzu7cPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[84,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CQYvGk1n6D9GuRdE2Vbkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[85,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H2tu39yS479QNCgBiHajvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[86,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ox5Oy9pQzL/gERrPoNThPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[87,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MjM+rkW4lT9YCiZ4kJfCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[88,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JjwVCY9t4z8D4B87KyHGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[89,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W6dgD23P7T+l9M2yChK/vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[90,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1ewgmwJF6r9VVNJTATyWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[91,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"STS8tdY26b9YebRVGV/kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[92,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nC11/AeK5r/wqsb4MqvpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[93,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Na0YrtDU6T/t+9G+diTRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[94,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JrgJ5vWO6T+bjkpKy9Llvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[95,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2ygX14+T579f2o+QFiHRvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[96,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pvSKxNjSzL9zJEmpOcblPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[97,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1noTtJ5L1L/RePW44S3NPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[98,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x5gZ1LTQ4T/dxdhUAbS7vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[99,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dw/8K5vZ2D+PWnSSMm7dvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[100,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PihRWZX/6z8YVKxGe9elPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[101,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"30N11AD74r/NybA5gnvpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[102,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GABILQ7p5b8GB2jSMRhtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[103,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7fBn6YsU0T8+1rfpb8LSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[104,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"O4Tirfs45r+jVJt9aBTlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[105,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Zu7p4/sk5j8fMDr0l5jQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[106,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OWR8TVQ667/FUwnlbp/LPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[107,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YSNxFJ/d4L9GXG+ZHzPHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[108,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nYPEjRyF6D9kYXhIqQrXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[109,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A8sveSKQ0r8JH2fb9ZjmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[110,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EMx/Rdkdxj9zPm5GrzPbvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[111,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OFa/scIV4b944yot9EvrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[112,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sinyasLJ0z+npKKebcvXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[113,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D887Po+PxT94em7KhXrhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[114,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"U260Z0kM4j8YSZ5BAsTPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[115,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IpY1UhNGVz8nFyYHOjuwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[116,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fjqfd3nA4b9WAXvyyYHXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[117,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JSdjWxWG579ZLwtdAiesPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[118,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9oLd+EM77L/V5K5C1PGtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[119,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XdpjQ/mN6b+tWU8RpYqjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[120,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"EBvQ02Cc479DASOOLezPvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[121,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D9DnWe+ACnQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[122,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7ZUkaXULsL9OIjGiAYPGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[123,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BIG6DdQgvL8vVy4vFI7Lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[124,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sRRPcZjY57+2InI0dI3QPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[125,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L1yyhnNQ0T8at5QCRyPfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[126,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XrAUIr3R279NZIxd7+TJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[127,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1k5UWV2d5D894+2Kl5HXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[128,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/bCiKnqfsz99T7Eo5CXJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[129,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"K2/MsELR3b/AmwZmjnXoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[130,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8lkCXRBS4b+6IlJ+O/Slvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[131,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"a3ZqGHHe6r88NjrmvCOxvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[132,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nzrYJcyM5r/96MV2jTXVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[133,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qJFfCRlYwD8dirt50dXSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[134,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1fINCCd82T8p3OmeoFjXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[135,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WtA5MNse3L8LrC4n9RnZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[136,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"if6TrTwK4z+hNrvNgrPfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[137,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+LWnUoH02D/sbptkuXbhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[138,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YTvVEngk679wnP3WMnXePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[139,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oSBNjlMos7/jQ80+9LTWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[140,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"drLbXKpe17//ri/ko2/bvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[141,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R5IW29Op07+oPMeDWvq+vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[142,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Vz7F21eO4D+DaRP9YDfOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[143,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mQVmy5v0i7+EEaaBvWOuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[144,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FEmXna/C3D/aoZ13DM3Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[145,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sncy0rPu6j+blzjj/XTevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[146,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"71bAv7hV1T/5YghdplnZvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[147,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"48PN7tbikr/AtTgdfkbdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[148,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Cxk4IJN16b/jTs0CuNKlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[149,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Pk/Jqagt0z+i3v1a0fDdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[150,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6hrMl2iU4j9tj7MM2Azmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5770\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5767\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5768\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5769\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5771\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5772\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5784\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5777\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5774\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5775\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5776\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50]],[\"end\",[77,101,109,111,92,104,111,129,66,91,92,101,91,104,132,138,66,106,124,138,70,102,117,124,132,90,106,117,118,64,85,102,118,53,64,90,107,53,85,97,126,55,74,107,126,55,63,83,97,74,83,113,125,63,67,113,137,125,127,136,137,67,93,108,136,60,100,108,127,51,60,89,93,51,59,100,121,73,89,121,145,59,73,84,94,56,61,84,145,56,69,94,150,78,99,150,69,78,110,149,62,99,133,149,75,110,123,133,62,70,123,141,54,75,130,141,54,119,131,81,119,130,148,95,120,131,148,81,95,116,135,58,116,120,140,71,135,140,147,58,65,71,143,134,146,147,65,72,114,146,68,72,105,134,52,88,105,114,52,68,98,142,57,88,98,144,61,103,112,142,144,57,80,112,128,79,80,87,103,87,115,122,128,76,79,115,139,143,76,82,86,122,82,96,109,139,77,86,96,129]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5778\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5779\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5783\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5780\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5781\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5741\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5754\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5755\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5761\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5760\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5762\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5763\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5764\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5785\",\"attributes\":{\"renderers\":[{\"id\":\"p5777\"},{\"id\":\"p5770\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5749\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5750\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5751\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5752\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5744\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5745\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5746\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5747\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5748\",\"attributes\":{\"axis\":{\"id\":\"p5744\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5753\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5749\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"2eb6a754-4a67-46a1-ac2f-c997f9beb381\",\"roots\":{\"p5733\":\"b1acfcd2-b745-4914-9245-703379f4172e\"},\"root_ids\":[\"p5733\"],\"notebook_comms_target\":\"p5786\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5733" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"8256f9fd-faef-4b2b-a7c8-f2bf07ef55cc\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p5937\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5938\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p5939\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5946\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p5947\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p5944\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p5969\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p5986\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dDqv5ehG4z81yWLgOFvqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pz+1HtDA3z/aH5xya2vtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Xsp7D8Mt1z/dOqhbcmXvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"F+tYwSdSyD/sX1zAqZnuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TOrw0OrzsT/yOhU2QPbtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xqPsfXkzxL+yRrY04Ynpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ye1QRZpKqr/5GBNiImfnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nVsWxlsAwL+AGdRvl6Xivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zcH1uAzMtr+PTFvywRzcvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"po2tuSAuvb+Mt0DPoX3Rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aKi+Xdk2u7859Qtb6Ni3vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rYbuOotgvr/kM/qdBWO2Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3yjIhsg3wL/AGjlJq0bSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RNz1fIaUwr++7+JnTIPdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+0SALwfuwb80UZMidlzkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"USjcKKL6wL9jU5Hl/FXpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ugC7UGnvxb/7hJ2EI03tPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XaIH4EiHzL8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6r+pfwTb1L/80SUI+dvsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D+SzP45xzL/WAsFlWyvpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3HzNrXRG078v/eYg//3jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b9QP92FamL8V+itttVzgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"us/WdjuZ2b/5p0gGH87SPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DjJTGkmx4r8YR2oen5+YPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XGp1gxEZ479ZjVVOAuayvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zAsskTha5L/MeZwFRB7Rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DJidzQxg5r/RKMtCAC7Xvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QNVoPK6s4b/8gX4RBTvhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ROoURQBE6r8bjZoP+NPUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"urYrEi9c7b8h2EXhzfC8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ORS2U0Re6b++uLvfQI2uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"X0ERj/Cx5b/hFayLxvGoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wFG5qhzo37+NBR/HXUu6Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GMAcKhmZ0r8bZhDUtq21Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"i8+MWa2Dvr/icfkKKwjHPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L25oSjcdxD8IhELgP6qyPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tl9cSFAoyD812oRHKX3XPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"b/C5Qxbq1j8Gxc84gyHWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MtShE7kp3D/74s1X/2LgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pXMU0j944j8/Chij4BjgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tHelSubz5D8ypyKY2lrhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k+RBfadC5z/mfWTwZobaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/tokK4S03z8+QVL+OxbXPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"II8boJzK5z+7sF2LE6rJPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"scVct09W5T8gCgA6gf+zPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rdM5uydo6D9FLlCgfte2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Ld8pEoAC4j/Yuca9LXbGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Mb81Oiij5z/h093kg2rYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dPJ5rTSI5T+AA+YS9a7gvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"1CyuwIsx5j8+2IhuAx3mvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5974\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5971\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5972\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5973\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5975\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5976\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p5988\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p5981\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p5978\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p5979\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p5980\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,2,2,2,3,3,4,4,5,5,6,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49]],[\"end\",[2,3,49,50,3,4,50,4,5,5,6,6,7,7,8,28,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,43,23,24,25,25,26,26,27,27,28,28,29,29,30,31,32,31,32,33,33,34,34,35,35,36,36,37,38,47,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p5982\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p5983\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p5987\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5984\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p5985\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p5945\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p5958\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p5959\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p5965\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p5964\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p5966\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p5967\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p5968\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p5989\",\"attributes\":{\"renderers\":[{\"id\":\"p5981\"},{\"id\":\"p5974\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5953\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5954\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5955\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5956\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p5948\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p5949\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p5950\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p5951\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5952\",\"attributes\":{\"axis\":{\"id\":\"p5948\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p5957\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p5953\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"8256f9fd-faef-4b2b-a7c8-f2bf07ef55cc\",\"roots\":{\"p5937\":\"cdfa2967-09d8-43b0-bb6e-40a7c3606e3d\"},\"root_ids\":[\"p5937\"],\"notebook_comms_target\":\"p5990\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p5937" } }, "output_type": "display_data" } ], "source": [ "import networkx as nx\n", "\n", "model = p2n.Model()\n", "creator = p2n.Creator(model)\n", "inspector = p2n.NetworkInspector(model)\n", "\n", "N_AGENTS = 50\n", "\n", "\n", "class SmallWorld(p2n.LocationDesigner):\n", " nxgraph = nx.watts_strogatz_graph(n=N_AGENTS, k=4, p=0.05)\n", "\n", "\n", "creator.create_agents(n=N_AGENTS)\n", "creator.create_locations(\n", " location_designers=[\n", " SmallWorld,\n", " ],\n", ")\n", "inspector.plot_networks()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see in the bipartite network graph, networkX graphs are translated into a pop2net graph by creating one location instance for each bilateral relation between nodes.\n", "Thus, agents are assigned to multiple instances of the `SmallWorld` location class:" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SmallWorld\n", "SmallWorld\n", "SmallWorld\n", "SmallWorld\n" ] } ], "source": [ "agent = model.agents[0]\n", "\n", "for location in agent.locations:\n", " print(location.label)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get all neighbors that are connected to an agent via the small world graph we could do the follwoing:" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AgentList (4 objects)" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "agent.neighbors(location_labels=[\"SmallWorld\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When building locations based on networkX graphs we still retain the flexibility of Pop2net and its LocationDesigners.\n", "For instance, we could create seperated small worlds for each group of agents or layer multiple network structures by defining multiple location classes:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"3ebd5803-0927-48a5-8bce-0dbcc613ad78\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p6041\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6042\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6043\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6050\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6051\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p6048\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p6073\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p6090\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qZp+5KK21D9tJcid16HMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A6tYe1xeyj/SwnbPvObIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XHGHmlUJ0T8EK9CjRVnevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OWJLLBs0oT+7EH9f1+TbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WH/nTNqquT/lPNPm6jXgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SQm4YyJ2cT9hsrHAjvHhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NYhVndzesr9H22LWC3Xjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HTi89Ed0w79+pDyKlULmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4Ae3ECts0r+XjKHyHPLivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8mfUJqsdx7+6MQ08eXfqPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PHHv/dsQ3b82KpZl+y3lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uPnTrE69y7/mik/y4TDtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"H/6K9N1l5L//FUAYhgXkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HE5ApKE1vr8jp00Td+HvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Lv40Cqn25r8jKw+75x/ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cCPSlxckhD/9KYKKNhHtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4+w0zI0Q5r8HiVcLHgvovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Jj1iYB0vwD9vN8eFMvLsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JRVQGwtL4b9KL7rudaLqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Y4oxcugY0z9MfhQMJbfrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+96XziVi3b/+xc1aGIPjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tLFg5M6S0j8Wwfl/jWTkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Aj+LX7a30L9C8BWjc7Dtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Zny+Dy0H4z9uawUuv37qPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WVmOLp0gx7/wE/TBveDpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"X0TybEt24z82IGlWiHPmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NqKh5f0jpL8MdAyj9qTqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vwD9WKbX5z+OK7ZXhSDkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bXkaLv4Qdz9idU9aSTLmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OWZqbab35T9IPuKDOvLfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"np3rXEolr7/smGjscvLgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5rHg91Db5D9WKgohcc7XPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Hg3mxzoGw7/vQJ5ckRvavw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QtrnKG3F3j9EZig7epfUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"utfagr+u0L/QjPgPe2zOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T3L+ntPv1j8IX3Fe/NzIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vwQEcKeV2b/KSwnUbLLNvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"an3I/Bphwz94DN9m/IfPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2oJdCD+/2L+1YOG+pWWSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Sqh5X3khnz+rLnCONdedPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DgYvePXv0L/Yo3D3TAejPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WNIknIJiu7/xDtWkvr40Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"L80oJ6MCwL8hhy5zCMevPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"negheQeTsr9tUZ/fqujCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hP1baLaOsz+ZAEHjRqmevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FuZ7evxccL+RyLXw4Ou4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"G8cI8B+4yz+siXLYqlS2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7qu2zk6mwD/i1CQLdcajvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HmEwNgOZ1T+sz6XHsS/Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KxuqNqMxtz8hTTg+DX7DPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[51,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3AD4Iejq1r9+IrTeslDMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[52,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nyOdcaF5hT/ybRi8CvLjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[53,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nEQyASiB5L+IqpBh5NTqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[54,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vfyDFrP2vD/OzSSuNfThvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[55,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"x5Pk2FRJnL9btSbGn8ikPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[56,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dsUFMj9uoz/swPTw3p7pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[57,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fVRnwj933r8i23AdCPDivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[58,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DPPjTMDf4r8uJ4kXsM/lvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[59,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"A74Q1CjWx79bzSEebiPkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[60,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"T/CFFCdwuL8w6vtQyAfevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[61,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vNIoCbi70z92GajbJgbGvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[62,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bCKF6B9/1T+I3U36UgrXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[63,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8Q8gvtxv2j8yg9PZydjQvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[64,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"54iAE/3kuL9cbDeQD+zrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[65,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PxrnD3Fgyr/LeCXqgEftvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[66,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"brgtzYHJzL/bDA8QPVe6Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[67,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uPyC/vV/1D8I86C50ybCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[68,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c/Qgg6nf5L97iN2yn/npvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[69,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qhw3epw+1796FdYu5jy0vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[70,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XjOwqagi4r92Zn4fWZLkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[71,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E1RQrxXZ578cIi/FrXHlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[72,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vOobNZ6Qyr/4y+PtqErUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[73,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SaxJoIkewb+3qhqkOIvtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[74,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"R4CCcvLm6L+21tShbk3pvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[75,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q80vLpKp3L8MICLJx0C9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[76,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"e6ouMep3uL9N3GurLcThvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[77,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Fma+jZpM2L9fNZe6W7Lkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[78,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DnFLONkIsr8dV92HdSHpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[79,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8nXd9W5R4L/iPwU7x2bnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[80,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bhd5+fS61j/VJl9zj9DYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[81,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gHzp8vGIpr/7S/Dcan3hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[82,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"65S5Aircob/67ek+NCPmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[83,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AdL+7RJ01r+dU0h/yFvAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[84,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"edooHDkK57/ksTbxDPrlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[85,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Dpg/9LW53L9rn/++433avw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[86,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Bgh3p/jcpD84zHvC8t7ivw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[87,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t6IMLIcW0b+a4h/38Hfkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[88,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3NyA/7tzyz/Snz6HTyDhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[89,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PPgQ6RsuxL+anwe/KiHYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[90,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gMdIqJUrub+lCg2kl4edPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[91,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Vo7BWeUR0r+gw5v+fbGsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[92,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0bFpOkq9zD8EcnzN3//Bvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[93,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jCLpp4fF2b+fnnAQWp3svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[94,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VCjZ4jwerT+zqwoqXnBgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[95,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MjbqAnHl0b+D5JBLOwfUvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[96,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gqRo4djgzT8Ukk9ynSnYvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[97,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BVsuDIAz478/x8Ziufbmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[98,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7pM28Bnc178NzxqzJbSwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[99,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"I0V+lF+Cxj9B56dkA9isvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[100,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uZ2MGLWY1L+QVWjuhfHmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[101,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qe0cAKwMzz9RcNKaxfvKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[102,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"oHjZ1NY05z+sXIPpIyDbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[103,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vSzkTTTrzD/W+L0q3MXtPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[104,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CIModndSsb8mcbJbH0TiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[105,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sSygNJH+or8PtDEOBz7Hvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[106,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ncoXKiCU6D9ayLJJnOrhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[107,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rrz4WDkjx79hpUu63DPuPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[108,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8i1UXuMTyz97skwQb+PoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[109,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CyKr8WzYyr8Q91Yznn3oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[110,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0vg2kHXY4j8bq0mMCjTVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[111,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pdsUcOAnwT9NHbgG6z2uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[112,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k4AB5OxDwT+M/R12ATHVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[113,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DrVMPSXlxD+NndizBCrIPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[114,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fK+u2+685j9XRZa7pUPmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[115,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mjEopXe15D+gQPVw7pbpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[116,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"POy0Q2HOxL+yn+hhUEu8vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[117,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AMwzEI+Ryj+WcoODjkmxPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[118,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"cKZkLNkFxD9OTcNcvGTsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[119,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"luExCestYL/Ro6eVIbrAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[120,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"bAJMwpU1y78AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[121,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"//PECoShrL/mSsqjRp3vPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[122,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dt897/Xj3D/96r46pYfPPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[123,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zYeZIRV95j/XFbYTVyHoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[124,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5OedjMhdsj8mDt00/77uPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[125,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"q19A4cIasT+YZmwHw0HCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[126,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sZzcvCKmtr+fvbcr9HDmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[127,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z34aObvW0L99GDd105HsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[128,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v/NLK09l5T9loljZlIjjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[129,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LLtB6Iuc0z+PcJiL7kroPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[130,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0FpO11exqz8Zh04wOH3TPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[131,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"TEzvWasE4z+x+zjp5kzaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[132,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"P4Zyfvdu5z9JVsXaFa3fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[133,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"S1q9Hvz+yD/LFWZ1x/i4Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[134,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"X4T4maO5bT8vJoHyEAbvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[135,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Iznw7Dw4yz/VTw2CPtXbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[136,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2qwe+leas79zxlT0MojkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[137,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Qn8D1EkUzL+MAUMcwtjpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[138,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ATqLNdTskj+UD2zG65zgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[139,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"298ZT9Ow4D/cSakKG1bRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[140,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QcdgNnk1ub/vTsvXntOyvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[141,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"z3f1aZhWqr8jPReo/lS1vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[142,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l0HsrSXjoz9PgTgyM1iDPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[143,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"82+qZ2UK3T+ESRTtY7jrPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[144,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mQYt+DK+oz9zdkYGjmPAvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[145,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"39Fg6fVe1D8GxeL4/hfSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[146,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ZLDQXoHSvT8pududKsnYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[147,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"byzUU6Ynvb/V6pUPwO7sPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[148,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PxY6C7+fsb/3fruBIMCMvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[149,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xGKt3COntT9XRjna26y9vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[150,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UlZnNDgK3T/DYllUOtLlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[151,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"NscZZS780j96k2XWXIuFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6078\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6075\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6076\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6077\"},\"data\":{\"type\":\"map\",\"entries\":[[\"group\",[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"SmallWorld\",\"Bridge\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"group_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6079\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6080\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p6092\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6085\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6082\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6083\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6084\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,37,38,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50]],[\"end\",[62,63,67,96,151,112,113,117,146,151,54,62,80,88,104,112,130,138,76,86,88,96,126,136,138,146,54,59,86,87,104,109,136,137,57,59,76,77,107,109,126,127,70,77,87,97,120,127,137,147,57,70,71,84,107,120,121,134,68,71,74,97,118,121,124,147,53,58,74,84,103,108,124,134,53,68,79,93,103,118,129,143,58,79,85,100,108,129,135,150,65,73,93,115,123,143,64,65,78,100,114,115,128,150,56,64,73,82,106,114,123,132,52,56,78,81,102,106,128,131,52,60,82,89,102,110,132,139,60,72,81,95,110,122,131,145,51,72,83,89,101,122,133,139,51,69,75,85,95,101,119,125,135,145,75,83,91,98,125,133,141,148,66,69,90,98,116,119,140,148,55,66,91,94,105,116,141,144,55,90,92,99,105,140,142,149,61,67,94,99,111,117,144,149,61,63,80,92,111,113,130,142]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"group_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6086\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6087\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p6091\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6088\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6089\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p6049\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p6062\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p6063\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p6069\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p6068\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p6070\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p6071\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p6072\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p6093\",\"attributes\":{\"renderers\":[{\"id\":\"p6085\"},{\"id\":\"p6078\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
group:@group
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6057\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6058\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6059\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6060\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6052\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6053\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6054\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6055\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6056\",\"attributes\":{\"axis\":{\"id\":\"p6052\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6061\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p6057\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"3ebd5803-0927-48a5-8bce-0dbcc613ad78\",\"roots\":{\"p6041\":\"b1f52771-7d4f-4ac9-9c06-da1093a98343\"},\"root_ids\":[\"p6041\"],\"notebook_comms_target\":\"p6094\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p6041" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"9a138cdb-a155-4cd5-b054-94dcdc2f8bae\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p6246\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6247\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6248\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6255\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6256\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p6253\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p6278\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p6295\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"urWTGBeY2L/GbR61Z3LePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VjhX/Qez2b9SYkfF2w/kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DpYTrlAt3r+vIVnRVnfWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"J++aZmc84L8XhNvE0dThPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lxsjTV1J3L9DDYlZLL3NPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"J7Us/mee479oFDjV8enaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mEqZfoeM2b9cqrLH4bO6Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iO1DQXpa5r8F2Nj/rWrRPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8MAjMcSe07/HJ/XccjlmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g3mdjroi6L8W6stdyUS8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RTO32BEuyL93nsZpuG+4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Z2W0/kl66L9kNhyK0zCuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"DRL1P3gPrL999wl6gBbDvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CCWxmL+z57+hAUucKUjLvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zzEffJhauj+1j/bo1BPOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vt9FvzQe5r/ZO/oKSufXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OXX+9I460T/hSf3kezfJvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RN2Vwn084r8s1235S4Pdvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hWmP4wSl3D/ccP0BDZ/Qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tKB9RzcP37/tpo1IDK/jvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XRrEyHIr4j8HEhectgC5vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"g2KCjP9Z0b9qekm3mLDgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"LwdCc1NZ6D+2zI6660LSvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"s5Vnm9B50r++HDrXG+Xqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"gSAW63vd6j8Zv3HD3abFvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qaflIO15w7/Tsx3CBfjovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"u1KcvFsW7z9Zz90E79fEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"OUwJo2whp7+Y3PDolKfrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"AAAAAAAA8D+4qhcdQ3Wkvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"90BU97gdrz/sPq+DGrzovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XTgtvQcF7z/HWXpAan6yPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SPqBy9ppwD/feC1LI3Hlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5heImyq+6z+xmxqq0WTCPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IW13T+7wuz9Q2IdL7gLhvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VTKojW6/6D+rF3mmjofQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tbCpWLkSxD+ryom7FXvXvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7hfMAfJV4z/1Hs0mkbDLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"8G49ETbYlj+BPLlaSY7Ovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m7qW4tsm4D90QDRdmkjZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"l9XnDNu0vz+1+YganUaOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2xEGEhc21T/B49EvbUXaPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fAw35QQwsz9LZo6iTXPEPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eb/Ek3O2xz/baEyx2QvgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"k2tXprw4tz/aIi5mt3HWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PY2zJjPeiD8FRcFh0TbfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"iDifydhDgT+RNuOUxLDgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"arolCCsCv78D3vtCtknhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MLeTgjQIu79K8H/RUf/jPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BugKr6GA0b9Bwc+9NhngPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"JcL/ZOUM0L9KaDs7S5/lPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6283\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6280\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6281\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6282\"},\"data\":{\"type\":\"map\",\"entries\":[[\"group\",[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\",\"#1f77b4\",\"#ff7f0e\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"group_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6284\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6285\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p6297\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6290\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6287\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6288\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6289\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,1,2,2,2,2,3,3,3,4,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,48]],[\"end\",[2,3,5,47,49,4,6,48,50,5,7,49,6,8,50,7,9,8,10,9,11,10,12,11,13,12,14,13,15,14,16,15,17,16,18,17,19,18,20,19,21,20,22,21,23,22,24,37,25,38,26,25,27,26,28,27,29,28,30,29,31,32,30,33,31,32,34,33,35,34,36,35,37,36,38,37,39,38,40,39,41,40,42,41,43,42,44,43,45,44,46,45,47,46,48,47,49,48,50,49,50]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"group_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6291\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6292\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p6296\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6293\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6294\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p6254\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p6267\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p6268\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p6274\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p6273\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p6275\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p6276\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p6277\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p6298\",\"attributes\":{\"renderers\":[{\"id\":\"p6290\"},{\"id\":\"p6283\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
group:@group
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6262\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6263\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6264\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6265\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6257\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6258\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6259\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6260\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6261\",\"attributes\":{\"axis\":{\"id\":\"p6257\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6266\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p6262\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"9a138cdb-a155-4cd5-b054-94dcdc2f8bae\",\"roots\":{\"p6246\":\"f987b54b-7169-4f98-8735-01367425f57f\"},\"root_ids\":[\"p6246\"],\"notebook_comms_target\":\"p6299\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p6246" } }, "output_type": "display_data" } ], "source": [ "model = p2n.Model()\n", "creator = p2n.Creator(model)\n", "inspector = p2n.NetworkInspector(model)\n", "\n", "N_AGENTS = 50\n", "N_GROUPS = 2\n", "\n", "\n", "class SmallWorld(p2n.LocationDesigner):\n", " nxgraph = nx.watts_strogatz_graph(n=int(N_AGENTS / N_GROUPS), k=4, p=0.05)\n", "\n", " def split(self, agent):\n", " return agent.group\n", "\n", "\n", "class Bridge(p2n.LocationDesigner):\n", " n_locations = 1\n", "\n", " def bridge(self, agent):\n", " return agent.group\n", "\n", "\n", "creator.create_agents(n=N_AGENTS)\n", "\n", "for i, agent in enumerate(model.agents):\n", " agent.group = i % N_GROUPS\n", "\n", "creator.create_locations(\n", " location_designers=[\n", " SmallWorld,\n", " Bridge,\n", " ],\n", ")\n", "inspector.plot_networks(agent_color=\"group\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Magic agent attributes\n", "\n", "When creating locations with the Creator class, the Creator temporarily sets certain agent attributes that provide information about the specific location to which the agent has been assigned and the position of the agent within this location.\n", "These temporary agent attributes can be used to address specific agents when defining a second location type.\n", "Each of the temporary agent attributes begins with the name of the location label.\n", "\n", "The following list shows all magic agent attributes:\n", "\n", "- `agent.LOCATIONLABEL`: An identifier of the location the agent was assigned to.\n", "- `agent.LOCATIONLABEL_assigned`: A bool which is `True` if the agent was assigned to this location class.\n", "- `agent.LOCATIONLABEL_id`: An identifier of the sub-location instance.\n", "- `agent.LOCATIONLABEL_position`: An identifier of the agent's *position* within the location. The *first* agent gets a `0`.\n", "- `agent.LOCATIONLABEL_head`: A bool which is `True` if the agent is the first agent within the location.\n", "- `agent.LOCATIONLABEL_tail`: A bool which is `True` if the agent is the last agent within the location.\n", "\n", "In the following example, we first create 3 simple clusters by defining the 'Cluster' location class.\n", "In the next step we select an agent from each cluster and connect them to the location class `Bridge`.\n", "To select only one agent from each cluster, we filter by the magic agent attribute `agent.Cluster_head` that was set when the clusters were created.\n", "This way, only the *first* agent of each cluster is assigned to the `Bridge` location." ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"ef64dc84-0ec6-4653-baf3-030d7c7759cd\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p6350\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6351\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6352\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6359\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6360\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p6357\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p6382\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p6399\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"skVnqUrn1z8JpRCQlqe2vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"39qUp2Rm7z+CwwmnBG7Nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VU/y1A4B6D/bIDyk2ul4vw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CRAfv/B87j+W7lelD0Gqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"apXEL1nA6z9L0o8oznR5Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dEeGMIzi7j891K1TqiHCvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"esgpVgXY6j9XuXdDl47Wvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/rDpI1Ro5z/rXz/suV3Vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"n25kCNOD7T+tcvYq62zTvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Zrk30xy65D+ZZ3bXRCrLvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7dGlYTgw079wjorGsE7Uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YwIcl1CL57+/b6dB/VDpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hem9AthE479WKj9ifHrevw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uL2lu6Bn57+Uz396jjTgvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"42/6hQGU379SvXYgklrpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ioF8PHgb6b+fyrErZkDmvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IrrSM3Gr5L9BeaAQkO/nvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+h6zoEw9479Z9AjaCOPqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FLNWw7Ya3L8/vLf37rnlvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WImgti436b/uSL+qFwrjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ay4b9wd7ub9h7y8X7CLYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PgcZVBVB0L8AAAAAAADwPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"3z5io0Qx0b9NVuWB7PvsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D93Q19dkrr9jANjISmruPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"0Kq2Sgyr1784C0LJiqDsPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BQuaPCYEw7+P3JqGv5DvPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v5yA7dUygL/efxEwIo3rPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xT9MCXip17+VxyW0deDoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"c5enJRtX0r9YPgEdjKLlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WcndCmn5ob/Q4SviaqLnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[31,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"+DJLQB+k6D9shMQbGrTEvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[32,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"jFT9zCq34r86umC6bLXjvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[33,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qsrd9YP0xr9D5Q9iWO/oPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[34,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"zbjgodMJkL801JdTHmqOvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6387\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6384\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6385\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6386\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"Cluster\",\"Cluster\",\"Cluster\",\"Bridge\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\",\"Location\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6388\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6389\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p6401\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6394\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6391\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6392\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6393\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,2,3,4,5,6,7,8,9,10,11,11,12,13,14,15,16,17,18,19,20,21,21,22,23,24,25,26,27,28,29,30]],[\"end\",[31,34,31,31,31,31,31,31,31,31,31,32,34,32,32,32,32,32,32,32,32,32,33,34,33,33,33,33,33,33,33,33,33]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6395\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6396\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p6400\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6397\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6398\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p6358\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p6371\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p6372\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p6378\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p6377\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p6379\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p6380\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p6381\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p6402\",\"attributes\":{\"renderers\":[{\"id\":\"p6394\"},{\"id\":\"p6387\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6366\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6367\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6368\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6369\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6361\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6362\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6363\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6364\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6365\",\"attributes\":{\"axis\":{\"id\":\"p6361\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6370\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p6366\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"ef64dc84-0ec6-4653-baf3-030d7c7759cd\",\"roots\":{\"p6350\":\"a7990885-2261-479c-8810-68da9f46f95e\"},\"root_ids\":[\"p6350\"],\"notebook_comms_target\":\"p6403\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p6350" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"02339f3b-0f27-4eb1-b922-c23b4b3df62e\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p6438\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6439\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6440\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6447\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6448\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p6445\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p6470\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p6487\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[1,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"CqRIB3TtxL8gOYBNY6Tfvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[2,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"wLOC21JI0L+qfDH/otbrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[3,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VyFoAp4Hw7/mWs+f/z7qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[4,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"VICGKBgC2L+62PitPeDrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[5,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tzaie5PO3b8raGdQ4rbqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[6,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"35SYF9/L0L8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[7,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9zaeTdcDxL+IMcSBGSjuvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[8,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hwvk7RyR2L/FJBa6M6Hnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[9,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rKfCOplL2L8AHVltuD/vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[10,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"MLOCR3LB0L8SxxJDEsDnvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[11,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SdfEw22W3z9qCpSHEgu+Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[12,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/U10LwbU7z/t+cVPhwHGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[13,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ECiFKJOi7z+v/mZ0TBnSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[14,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"D033F5gU6j82TaKJVITYPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[15,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"O5pp1Ich6j/9UAl9cWCzPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[16,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"dREyNZmt7T+520LAik20Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[17,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"tfvT97kL7T8k78WIzUbWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[18,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"vkFhWBYF7D9rxyUh0IjKPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[19,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"azOsbtz/5z9tAtdKPsbGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[20,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hZHHanXs5z/Sc8vFI/LSPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[21,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IHsRiv9w1L9Zf6Xvz+XWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[22,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ggGLY/St5b8k8Ty4BR3nPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[23,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PpmT6aE84r9RU4l0ECXkPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[24,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ALbVy1m/3r9OY7kst8boPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[25,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kU+Zm00N2794dkD0qePlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[26,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"6lP/UbIp3b+Nkabul2DiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[27,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GXQNSNHU5r9mlWW7T9jjPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[28,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KTHJB5an5b/jWt39qaLgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[29,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/tYRSrEZ4r/GnbTz4drfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[30,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"f2nGopKu4r+hsTbbGanoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6475\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6472\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6473\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6474\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6476\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6477\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p6489\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6482\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6479\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6480\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6481\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,6,6,6,6,7,7,7,8,8,9,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14,14,14,14,14,14,15,15,15,15,15,16,16,16,16,17,17,17,18,18,19,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,24,24,24,24,24,24,25,25,25,25,25,26,26,26,26,27,27,27,28,28,29]],[\"end\",[2,3,4,5,6,7,8,9,10,11,21,3,4,5,6,7,8,9,10,4,5,6,7,8,9,10,5,6,7,8,9,10,6,7,8,9,10,7,8,9,10,8,9,10,9,10,10,12,13,14,15,16,17,18,19,20,21,13,14,15,16,17,18,19,20,14,15,16,17,18,19,20,15,16,17,18,19,20,16,17,18,19,20,17,18,19,20,18,19,20,19,20,20,22,23,24,25,26,27,28,29,30,23,24,25,26,27,28,29,30,24,25,26,27,28,29,30,25,26,27,28,29,30,26,27,28,29,30,27,28,29,30,28,29,30,29,30,30]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6483\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6484\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p6488\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6485\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6486\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p6446\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p6459\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p6460\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p6466\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p6465\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p6467\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p6468\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p6469\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p6490\",\"attributes\":{\"renderers\":[{\"id\":\"p6482\"},{\"id\":\"p6475\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6454\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6455\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6456\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6457\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6449\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6450\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6451\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6452\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6453\",\"attributes\":{\"axis\":{\"id\":\"p6449\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6458\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p6454\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"02339f3b-0f27-4eb1-b922-c23b4b3df62e\",\"roots\":{\"p6438\":\"e80283cc-d018-4513-b631-09892667b3f6\"},\"root_ids\":[\"p6438\"],\"notebook_comms_target\":\"p6491\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p6438" } }, "output_type": "display_data" } ], "source": [ "model = p2n.Model()\n", "creator = p2n.Creator(model)\n", "inspector = p2n.NetworkInspector(model)\n", "\n", "\n", "class Cluster(p2n.LocationDesigner):\n", " n_locations = 3\n", "\n", "\n", "class Bridge(p2n.LocationDesigner):\n", " def filter(self, agent):\n", " return agent.Cluster_head\n", "\n", "\n", "creator.create_agents(n=30)\n", "creator.create_locations(\n", " location_designers=[\n", " Cluster,\n", " Bridge,\n", " ],\n", ")\n", "\n", "inspector.plot_networks()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As the creator builds one location class after another, it is very important that the order of the location classes provided to the creator is correct.\n", "In the following, the connection of the clusters fails due to an incorrect order of the location classes provided to the creator." ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"0a4ca938-1120-4c73-ac50-ab7fcf2bafd1\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p6522\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6523\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6524\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6531\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6532\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p6529\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p6554\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p6571\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IrfQqYzutz/zQJhUUg7vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"h2rTbaFkwT+F8fhd4EXtvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rUK5jAZhoD8AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"IN4cJhqjd7/o0j8vqGnovw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5XoNbXKItT9vAy3zr7Povw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"UpnIukOvtL+W6p6Iieztvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"aClk1i/Ns78JjMlOnsfpvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"GUBazaQGu7+rAvk3LNXrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lbA5vDJDwT9lFsnAUPLqvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"86hq8ZT2ob8xO2ez65/vvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qswAhTD+3r8keggbmSjpPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"J/qfhnn8179G0u9Ozq/iPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W5uJkCAD479RKHbPuvniPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"utQQvmPI4L/djsIlPyLhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"YYlZSPKR4b+2oUFnBZjoPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ovIUV4NK3b/p7yMP3gHiPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[51,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"m8c9WlRk2L9dyFXWrgLmPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[52,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"E5UIRwe62r/YoJqeqjToPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[53,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"mrQu+sRM478x7TdGQFTnPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[54,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pvtL0tDE47/IMTq0DyrlPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[55,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"qQdwCS7Z3j8MoNBtWInVPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[56,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ayAlSuk81z9/Kt2qTGvQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[57,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"XLQ0OMKZ2j9+fKDksB+8Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[58,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"KBja8Ckb2j8YEIB0IWHUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[59,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"9sSUsjqX1z833oaj3mPGPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[60,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eLQxw1AL4z+TRxrEZZ/IPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[61,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xHUA+FSg4T91oaA2YSLUPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[62,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pbzxJld/3z+12DVwN8m4Pw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[63,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"FyyBXRcC4z+/APhZgbPQPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[64,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"7YfFsLfn4T/AdGvJPcDAPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[65,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"lx2YYxCwlD8pvEqW4rPrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[66,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"pTUVyTBG379cObVARv7kPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[67,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ijGrFq3w3T/KJawN3WvLPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6559\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6556\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6557\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6558\"},\"data\":{\"type\":\"map\",\"entries\":[[\"label\",[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"Cluster\",\"Cluster\",\"Cluster\"]],[\"bipartite\",[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1]],[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Location\",\"Location\",\"Location\"]],[\"index\",[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"square\",\"square\",\"square\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"steelblue\",\"steelblue\",\"steelblue\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6560\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6561\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p6573\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6566\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6563\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6564\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6565\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]],[\"end\",[65,65,65,65,65,65,65,65,65,65,66,66,66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"label_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6567\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6568\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p6572\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6569\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6570\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p6530\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p6543\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p6544\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p6550\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p6549\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p6551\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p6552\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p6553\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p6574\",\"attributes\":{\"renderers\":[{\"id\":\"p6566\"},{\"id\":\"p6559\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
label:@label
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6538\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6539\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6540\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6541\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6533\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6534\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6535\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6536\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6537\",\"attributes\":{\"axis\":{\"id\":\"p6533\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6542\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p6538\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"0a4ca938-1120-4c73-ac50-ab7fcf2bafd1\",\"roots\":{\"p6522\":\"a5b89672-b6a4-4b22-b590-0b2a23004a44\"},\"root_ids\":[\"p6522\"],\"notebook_comms_target\":\"p6575\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p6522" } }, "output_type": "display_data" }, { "data": { "application/javascript": "'use strict';\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\nconst JS_MIME_TYPE = 'application/javascript';\n const HTML_MIME_TYPE = 'text/html';\n const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n const CLASS_NAME = 'output_bokeh rendered_html';\n\n /**\n * Render data to the DOM node\n */\n function render(props, node) {\n const script = document.createElement(\"script\");\n node.appendChild(script);\n }\n\n /**\n * Handle when an output is cleared or removed\n */\n function handleClearOutput(event, handle) {\n function drop(id) {\n const view = Bokeh.index.get_by_id(id)\n if (view != null) {\n view.model.document.clear()\n Bokeh.index.delete(view)\n }\n }\n\n const cell = handle.cell;\n\n const id = cell.output_area._bokeh_element_id;\n const server_id = cell.output_area._bokeh_server_id;\n\n // Clean up Bokeh references\n if (id != null) {\n drop(id)\n }\n\n if (server_id !== undefined) {\n // Clean up Bokeh references\n const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n cell.notebook.kernel.execute(cmd_clean, {\n iopub: {\n output: function(msg) {\n const id = msg.content.text.trim()\n drop(id)\n }\n }\n });\n // Destroy server and session\n const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n cell.notebook.kernel.execute(cmd_destroy);\n }\n }\n\n /**\n * Handle when a new output is added\n */\n function handleAddOutput(event, handle) {\n const output_area = handle.output_area;\n const output = handle.output;\n\n // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n return\n }\n\n const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n // store reference to embed id on output_area\n output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n }\n if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n const bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n const script_attrs = bk_div.children[0].attributes;\n for (let i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n }\n\n function register_renderer(events, OutputArea) {\n\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n const toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[toinsert.length - 1]);\n element.append(toinsert);\n return toinsert\n }\n\n /* Handle when an output is cleared or removed */\n events.on('clear_output.CodeCell', handleClearOutput);\n events.on('delete.Cell', handleClearOutput);\n\n /* Handle when a new output is added */\n events.on('output_added.OutputArea', handleAddOutput);\n\n /**\n * Register the mime type and append_mime function with output_area\n */\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n /* Is output safe? */\n safe: true,\n /* Index of renderer in `output_area.display_order` */\n index: 0\n });\n }\n\n // register the mime type if in Jupyter Notebook environment and previously unregistered\n if (root.Jupyter !== undefined) {\n const events = require('base/js/events');\n const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n }\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded(error = null) {\n const el = document.getElementById(null);\n if (el != null) {\n const html = (() => {\n if (typeof root.Bokeh === \"undefined\") {\n if (error == null) {\n return \"BokehJS is loading ...\";\n } else {\n return \"BokehJS failed to load.\";\n }\n } else {\n const prefix = `BokehJS ${root.Bokeh.version}`;\n if (error == null) {\n return `${prefix} successfully loaded.`;\n } else {\n return `${prefix} encountered errors while loading and may not function as expected.`;\n }\n }\n })();\n el.innerHTML = html;\n\n if (error != null) {\n const wrapper = document.createElement(\"div\");\n wrapper.style.overflow = \"auto\";\n wrapper.style.height = \"5em\";\n wrapper.style.resize = \"vertical\";\n const content = document.createElement(\"div\");\n content.style.fontFamily = \"monospace\";\n content.style.whiteSpace = \"pre-wrap\";\n content.style.backgroundColor = \"rgb(255, 221, 221)\";\n content.textContent = error.stack ?? error.toString();\n wrapper.append(content);\n el.append(wrapper);\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(() => display_loaded(error), 100);\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.7.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.7.1.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n try {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n\n } catch (error) {throw error;\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(null)).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.bokehjs_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "(function(root) {\n function embed_document(root) {\n const docs_json = {\"e7a1ea85-0ec4-4447-bd55-d29791c4b0ee\":{\"version\":\"3.7.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p6609\",\"attributes\":{\"width\":400,\"height\":400,\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6610\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p6611\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6618\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p6619\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p6616\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GraphRenderer\",\"id\":\"p6641\",\"attributes\":{\"layout_provider\":{\"type\":\"object\",\"name\":\"StaticLayoutProvider\",\"id\":\"p6658\",\"attributes\":{\"graph_layout\":{\"type\":\"map\",\"entries\":[[35,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"w7jkT/Tr579HGtVNSvvZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[36,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"eQy1Grvy578JJ7QfneHhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[37,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"sLCUhi+O679FLhZ8t0/bPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[38,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"nyoQ25oY57+iOdEsiyHdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[39,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"/KcaUePW5r9zTEvkS0bgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[40,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"hdAMor+F6b97Plm761vhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[41,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"rkkCQQTP6b+lIuDdu1fZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[42,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"klBIs7m+6b8oztYghkrePw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[43,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"SHbf6wJf679HbimGXobhPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[44,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"2wAF+R8a7L87S3oXIy/fPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[45,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"W1GcyDBDkz+Z8Rat8P/svw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[46,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"kWv1ImCHYb9kElcQZn7uvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[47,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"QMnPxZkcw78xGOik/6Hsvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[48,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"yEcutizssr9ESc53Jq/tvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[49,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xbgPMUuUwr9DTf50+4juvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[50,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"Q5/HZe8Xib/hySiTunbrvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[51,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"t6w7qGPEub/X3eOFyeXvvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[52,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"5vpj/GMXsL/eDQnN+t7qvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[53,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"WYdY2b71vb+BYMG9mh/rvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[54,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"BdGVQNCjo78AAAAAAADwvw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[55,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"v38gTiNf6T/4p/kg7v3YPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[56,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"uSAI8eyU7T+Nb3+UI4HfPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[57,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ew40NL5l7j9RXiYzUebbPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[58,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"fd0SOxiK7T/QXNpFm6/XPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[59,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"PvCiMPHg6D/dx6wWDKzcPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[60,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"prohihjr6j/PabxuKVTWPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[61,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"xMObJ+vJ6T/v90Oi+SXgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[62,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"ult/SwgF7D/b3qb8DZ7ZPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[63,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"RJvyQeV56z/u9CWtz3LdPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}],[64,{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"HHYOui7K6z+G5eRVY9HgPw==\"},\"shape\":[2],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"node_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6646\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6643\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6644\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6645\"},\"data\":{\"type\":\"map\",\"entries\":[[\"type\",[\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\",\"Agent\"]],[\"index\",[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]],[\"_marker\",[\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\",\"circle\"]],[\"_color\",[\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\",\"firebrick\"]],[\"_alpha\",[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]],[\"_size\",[10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]],[\"start_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"end_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"weight_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"index_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"type_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6647\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6648\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Scatter\",\"id\":\"p6660\",\"attributes\":{\"size\":{\"type\":\"field\",\"field\":\"_size\"},\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"fill_color\":{\"type\":\"field\",\"field\":\"_color\"},\"fill_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"marker\":{\"type\":\"field\",\"field\":\"_marker\"}}}}},\"edge_renderer\":{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p6653\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p6650\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p6651\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p6652\"},\"data\":{\"type\":\"map\",\"entries\":[[\"weight\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"start\",[35,35,35,35,35,35,35,35,35,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,38,38,38,38,38,38,39,39,39,39,39,40,40,40,40,41,41,41,42,42,43,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,51,51,51,52,52,53,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,58,58,58,58,58,58,59,59,59,59,59,60,60,60,60,61,61,61,62,62,63]],[\"end\",[36,37,38,39,40,41,42,43,44,37,38,39,40,41,42,43,44,38,39,40,41,42,43,44,39,40,41,42,43,44,40,41,42,43,44,41,42,43,44,42,43,44,43,44,44,46,47,48,49,50,51,52,53,54,47,48,49,50,51,52,53,54,48,49,50,51,52,53,54,49,50,51,52,53,54,50,51,52,53,54,51,52,53,54,52,53,54,53,54,54,64,56,57,58,59,60,61,62,63,64,57,58,59,60,61,62,63,64,58,59,60,61,62,63,64,59,60,61,62,63,64,60,61,62,63,64,61,62,63,64,62,63,64,63,64]],[\"_color\",[\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\",\"#440154\"]],[\"_alpha\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"_size\",[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]],[\"start_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"end_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"weight_display\",[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],[\"index_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]],[\"type_display\",[\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\",\"none\"]]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p6654\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p6655\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"MultiLine\",\"id\":\"p6659\",\"attributes\":{\"line_color\":{\"type\":\"field\",\"field\":\"_color\"},\"line_alpha\":{\"type\":\"field\",\"field\":\"_alpha\"},\"line_width\":{\"type\":\"field\",\"field\":\"_size\"}}}}},\"selection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6656\"},\"inspection_policy\":{\"type\":\"object\",\"name\":\"NodesOnly\",\"id\":\"p6657\"}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p6617\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p6630\",\"attributes\":{\"dimensions\":\"both\",\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p6631\",\"attributes\":{\"syncable\":false,\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5,\"level\":\"overlay\",\"visible\":false,\"left\":{\"type\":\"number\",\"value\":\"nan\"},\"right\":{\"type\":\"number\",\"value\":\"nan\"},\"top\":{\"type\":\"number\",\"value\":\"nan\"},\"bottom\":{\"type\":\"number\",\"value\":\"nan\"},\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"top_units\":\"canvas\",\"bottom_units\":\"canvas\",\"handles\":{\"type\":\"object\",\"name\":\"BoxInteractionHandles\",\"id\":\"p6637\",\"attributes\":{\"all\":{\"type\":\"object\",\"name\":\"AreaVisuals\",\"id\":\"p6636\",\"attributes\":{\"fill_color\":\"white\",\"hover_fill_color\":\"lightgray\"}}}}}}}},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p6638\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p6639\",\"attributes\":{\"renderers\":\"auto\"}},{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p6640\"},{\"type\":\"object\",\"name\":\"HoverTool\",\"id\":\"p6661\",\"attributes\":{\"renderers\":[{\"id\":\"p6653\"},{\"id\":\"p6646\"}],\"tooltips\":\"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
start:@start
end:@end
weight:@weight
index:@index
type:@type
\",\"line_policy\":\"interp\"}}],\"logo\":null}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6625\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6626\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6627\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6628\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p6620\",\"attributes\":{\"visible\":false,\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p6621\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p6622\"},\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p6623\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6624\",\"attributes\":{\"axis\":{\"id\":\"p6620\"},\"grid_line_color\":null}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p6629\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p6625\"},\"grid_line_color\":null}}]}}]}};\n const render_items = [{\"docid\":\"e7a1ea85-0ec4-4447-bd55-d29791c4b0ee\",\"roots\":{\"p6609\":\"b046ca84-7258-4e85-8238-0b73b087e345\"},\"root_ids\":[\"p6609\"],\"notebook_comms_target\":\"p6662\"}];\n void root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n }\n if (root.Bokeh !== undefined) {\n embed_document(root);\n } else {\n let attempts = 0;\n const timer = setInterval(function(root) {\n if (root.Bokeh !== undefined) {\n clearInterval(timer);\n embed_document(root);\n } else {\n attempts++;\n if (attempts > 100) {\n clearInterval(timer);\n console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n }\n }\n }, 10, root)\n }\n})(window);", "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p6609" } }, "output_type": "display_data" } ], "source": [ "class Cluster(p2n.LocationDesigner):\n", " n_locations = 3\n", "\n", "\n", "class Bridge(p2n.LocationDesigner):\n", " def filter(self, agent):\n", " return agent.Cluster_head\n", "\n", "\n", "creator.create_agents(n=30, clear=True)\n", "creator.create_locations(\n", " location_designers=[\n", " Bridge,\n", " Cluster,\n", " ],\n", " clear=True,\n", ")\n", "\n", "inspector.plot_networks()" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }