From a6464298411fce00a1cebe3223cbd66f2301681f Mon Sep 17 00:00:00 2001 From: McSinyx Date: Mon, 2 Nov 2020 15:43:10 +0000 Subject: [PATCH] deploy: 1a4f368c6e901e27f113dbb4fa81802a099e7226 --- _sources/index.rst.txt | 3 +++ _sources/works.rst.txt | 2 +- _static/basic.css | 1 + _static/doctools.js | 5 ++-- _static/pygments.css | 8 +++--- _static/pygments_dark.css | 8 +++--- _static/scripts/main.js | 2 +- _static/scripts/main.js.map | 2 +- _static/searchtools.js | 8 +++--- _static/styles/default.css | 2 +- _static/styles/default.css.map | 2 +- genindex.html | 34 +++++++++++++++--------- gsoc2020/blog20200609.html | 45 +++++++++++++++++++------------ gsoc2020/blog20200622.html | 45 +++++++++++++++++++------------ gsoc2020/blog20200706.html | 45 +++++++++++++++++++------------ gsoc2020/blog20200720.html | 45 +++++++++++++++++++------------ gsoc2020/blog20200803.html | 45 +++++++++++++++++++------------ gsoc2020/blog20200817.html | 45 +++++++++++++++++++------------ gsoc2020/blog20200831.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200601.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200615.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200629.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200713.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200727.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200810.html | 45 +++++++++++++++++++------------ gsoc2020/checkin20200824.html | 45 +++++++++++++++++++------------ gsoc2020/index.html | 45 +++++++++++++++++++------------ index.html | 48 ++++++++++++++++++++++------------ life/2010.html | 45 +++++++++++++++++++------------ life/2013.html | 45 +++++++++++++++++++------------ life/2020.html | 45 +++++++++++++++++++------------ life/index.html | 45 +++++++++++++++++++------------ math/conseq.html | 45 +++++++++++++++++++------------ math/index.html | 45 +++++++++++++++++++------------ math/system.html | 45 +++++++++++++++++++------------ search.html | 45 +++++++++++++++++++------------ searchindex.js | 2 +- works.html | 47 +++++++++++++++++++++------------ 38 files changed, 774 insertions(+), 435 deletions(-) diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt index cf1eb2d..bd5ad84 100644 --- a/_sources/index.rst.txt +++ b/_sources/index.rst.txt @@ -24,6 +24,8 @@ I also use_ pretty much every social medium I advocate against: +Academically, I am also known as 0000-0003-2336-706X_. + This site is licensed under a `Creative Commons Attribution-ShareAlike 4.0 International License`_. @@ -38,5 +40,6 @@ a `Creative Commons Attribution-ShareAlike 4.0 International License`_. .. _free software: https://www.gnu.org/philosophy/free-sw.html .. _Fediverse: https://en.wikipedia.org/wiki/Fediverse .. _use: start.html +.. _0000-0003-2336-706X: https://orcid.org/0000-0003-2336-706X .. _Creative Commons Attribution-ShareAlike 4.0 International License: http://creativecommons.org/licenses/by-sa/4.0/ diff --git a/_sources/works.rst.txt b/_sources/works.rst.txt index a66f22e..7abf262 100644 --- a/_sources/works.rst.txt +++ b/_sources/works.rst.txt @@ -61,7 +61,7 @@ Lazip Lazip__ is a Python library providing a read-only file-like object lazily mapped to a ZIP file over HTTP via range requests. -__ https://lazip.rtfd.io +__ https://sr.ht/~cnx/lazip Video Games ----------- diff --git a/_static/basic.css b/_static/basic.css index 24bc73e..24a49f0 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -764,6 +764,7 @@ div.code-block-caption code { } table.highlighttable td.linenos, +span.linenos, div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; } diff --git a/_static/doctools.js b/_static/doctools.js index daccd20..7d88f80 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -285,9 +285,10 @@ var Documentation = { initOnKeyListeners: function() { $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea + // don't navigate when in search box, textarea, dropdown or button if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); diff --git a/_static/pygments.css b/_static/pygments.css index be9feff..96529c7 100644 --- a/_static/pygments.css +++ b/_static/pygments.css @@ -1,8 +1,8 @@ pre { line-height: 125%; margin: 0; } -td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } -span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } -td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } +td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } +span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } +td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #f8f8f8; } .highlight .c { color: #408080; font-style: italic } /* Comment */ diff --git a/_static/pygments_dark.css b/_static/pygments_dark.css index db7ce0f..ad554ee 100644 --- a/_static/pygments_dark.css +++ b/_static/pygments_dark.css @@ -1,8 +1,8 @@ pre { line-height: 125%; margin: 0; } -td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } -span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } -td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } +td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } +span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } +td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #404040 } .highlight { background: #202020; color: #d0d0d0 } .highlight .c { color: #999999; font-style: italic } /* Comment */ diff --git a/_static/scripts/main.js b/_static/scripts/main.js index 8ddff3b..f42d0a0 100644 --- a/_static/scripts/main.js +++ b/_static/scripts/main.js @@ -1,2 +1,2 @@ -!function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(u){"use strict";function f(e,t,n){var o;n.settings.events&&(o=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n}),t.dispatchEvent(o))}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function d(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function v(e,t){var n,o,s=e[e.length-1];if(n=s,o=t,!(!i()||!r(n.content,o,!0)))return s;for(var c=e.length-1;0<=c;c--)if(r(e[c].content,t))return e[c]}function m(e,t){var n;!e||(n=e.nav.closest("li"))&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),o(n,t),f("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}var h={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},o=function(e,t){var n;t.nested&&e.parentNode&&((n=e.parentNode.closest("li"))&&(n.classList.remove(t.nestedClass),o(n,t)))},p=function(e,t){var n;!t.nested||(n=e.parentNode.closest("li"))&&(n.classList.add(t.nestedClass),p(n,t))};return function(e,t){var n,s,c,o,r,i={setup:function(){n=document.querySelectorAll(e),s=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&s.push({nav:e,content:t})}),d(s)}};i.detect=function(){var e,t,n,o=v(s,r);o?c&&o.content===c.content||(m(c,r),t=r,!(e=o)||(n=e.nav.closest("li"))&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),p(n,t),f("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t})),c=o):c&&(m(c,r),c=null)};function l(e){o&&u.cancelAnimationFrame(o),o=u.requestAnimationFrame(i.detect)}function a(e){o&&u.cancelAnimationFrame(o),o=u.requestAnimationFrame(function(){d(s),i.detect()})}i.destroy=function(){c&&m(c,r),u.removeEventListener("scroll",l,!1),r.reflow&&u.removeEventListener("resize",a,!1),r=o=c=n=s=null};return r=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(h,t||{}),i.setup(),i.detect(),u.addEventListener("scroll",l,!1),r.reflow&&u.addEventListener("resize",a,!1),i}}),function(o,s){var c=null,r=null;function e(){var t,n=!1;o.addEventListener("scroll",function(e){t=o.scrollY,n||(o.requestAnimationFrame(function(){var e;e=t,0==c.getBoundingClientRect().top?c.classList.add("scrolled"):c.classList.remove("scrolled"),null!==r&&(0==e?r.scrollTo(0,0):Math.ceil(o.innerHeight+e)>=s.body.offsetHeight&&r.scrollTo(0,r.scrollHeight)),n=!1}),n=!0)}),o.scroll()}s.addEventListener("DOMContentLoaded",function(){s.body.parentNode.classList.remove("no-js"),c=s.querySelector("header"),r=s.querySelector(".toc-scroll"),e(),null!==r&&new Gumshoe(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current"})})}(window,document); +!function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(u){"use strict";function d(e,t,n){var o;n.settings.events&&(o=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n}),t.dispatchEvent(o))}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function f(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function v(e,t){var n,o,s=e[e.length-1];if(n=s,o=t,!(!i()||!r(n.content,o,!0)))return s;for(var c=e.length-1;0<=c;c--)if(r(e[c].content,t))return e[c]}function m(e,t){var n;!e||(n=e.nav.closest("li"))&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),o(n,t),d("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}var p={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},o=function(e,t){var n;t.nested&&e.parentNode&&((n=e.parentNode.closest("li"))&&(n.classList.remove(t.nestedClass),o(n,t)))},h=function(e,t){var n;!t.nested||(n=e.parentNode.closest("li"))&&(n.classList.add(t.nestedClass),h(n,t))};return function(e,t){var n,s,c,o,r,i={setup:function(){n=document.querySelectorAll(e),s=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&s.push({nav:e,content:t})}),f(s)}};i.detect=function(){var e,t,n,o=v(s,r);o?c&&o.content===c.content||(m(c,r),t=r,!(e=o)||(n=e.nav.closest("li"))&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),h(n,t),d("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t})),c=o):c&&(m(c,r),c=null)};function a(e){o&&u.cancelAnimationFrame(o),o=u.requestAnimationFrame(i.detect)}function l(e){o&&u.cancelAnimationFrame(o),o=u.requestAnimationFrame(function(){f(s),i.detect()})}i.destroy=function(){c&&m(c,r),u.removeEventListener("scroll",a,!1),r.reflow&&u.removeEventListener("resize",l,!1),r=o=c=n=s=null};return r=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(p,t||{}),i.setup(),i.detect(),u.addEventListener("scroll",a,!1),r.reflow&&u.addEventListener("resize",l,!1),i}}),function(o,e){var s=null,c=null;function t(){var t,n=!1;o.addEventListener("scroll",function(e){t=o.scrollY,n||(o.requestAnimationFrame(function(){var e;e=t,0==s.getBoundingClientRect().top?s.classList.add("scrolled"):s.classList.remove("scrolled"),null!==c&&0==e&&c.scrollTo(0,0),n=!1}),n=!0)}),o.scroll()}e.addEventListener("DOMContentLoaded",function(){e.body.parentNode.classList.remove("no-js"),s=e.querySelector("header"),c=e.querySelector(".toc-scroll"),t(),null!==c&&new Gumshoe(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current"})})}(window,document); //# sourceMappingURL=main.js.map diff --git a/_static/scripts/main.js.map b/_static/scripts/main.js.map index a9890e5..9422747 100644 --- a/_static/scripts/main.js.map +++ b/_static/scripts/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["gumshoe-5.1.2-patched.js","main.js"],"names":["root","factory","define","amd","exports","module","Gumshoe","global","window","this","emitEvent","type","elem","detail","event","settings","events","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","offset","parseFloat","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","item","last","length","i","deactivate","items","li","nav","closest","classList","remove","navClass","contentClass","deactivateNested","link","defaults","nested","nestedClass","reflow","parentNode","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","setup","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","detect","active","scrollHandler","cancelAnimationFrame","requestAnimationFrame","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","addEventListener","header","tocScroll","setupScrollHandler","last_known_scroll_position","ticking","e","scrollY","positionY","scrollTo","scroll","querySelector","recursive"],"mappings":"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","file":"main.js","sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1))\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n }\n);\n","(function (window, document) {\n var header = null;\n var tocScroll = null;\n\n function scrollHandler(positionY) {\n if (header.getBoundingClientRect().top == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n\n if (tocScroll === null) {\n return;\n }\n\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n Math.ceil(window.innerHeight + positionY) >= document.body.offsetHeight\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n }\n }\n\n function setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n var last_known_scroll_position = 0;\n var ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n }\n\n function setup() {\n setupScrollHandler();\n\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n var spy = new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n });\n }\n\n document.addEventListener(\"DOMContentLoaded\", function main(params) {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n setup();\n });\n})(window, document);\n"]} \ No newline at end of file +{"version":3,"sources":["gumshoe-5.1.2-patched.js","main.js"],"names":["root","factory","define","amd","exports","module","Gumshoe","global","window","this","emitEvent","type","elem","detail","event","settings","events","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","offset","parseFloat","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","item","last","length","i","deactivate","items","li","nav","closest","classList","remove","navClass","contentClass","deactivateNested","link","defaults","nested","nestedClass","reflow","parentNode","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","setup","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","detect","active","scrollHandler","cancelAnimationFrame","requestAnimationFrame","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","addEventListener","header","tocScroll","setupScrollHandler","last_known_scroll_position","ticking","e","scrollY","positionY","scrollTo","scroll","querySelector","recursive"],"mappings":"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","file":"main.js","sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1))\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n }\n);\n","(function (window, document) {\n var header = null;\n var tocScroll = null;\n\n function scrollHandler(positionY) {\n if (header.getBoundingClientRect().top == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n\n if (tocScroll === null) {\n return;\n }\n\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n }\n }\n\n function setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n var last_known_scroll_position = 0;\n var ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n }\n\n function setup() {\n setupScrollHandler();\n\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n var spy = new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n });\n }\n\n document.addEventListener(\"DOMContentLoaded\", function main(params) {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n setup();\n });\n})(window, document);\n"]} \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js index 970d0d9..261ecaa 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -59,10 +59,10 @@ var Search = { _pulse_status : -1, htmlToText : function(htmlString) { - var htmlElement = document.createElement('span'); - htmlElement.innerHTML = htmlString; - $(htmlElement).find('.headerlink').remove(); - docContent = $(htmlElement).find('[role=main]')[0]; + var virtualDocument = document.implementation.createHTMLDocument('virtual'); + var htmlElement = $(htmlString, virtualDocument); + htmlElement.find('.headerlink').remove(); + docContent = htmlElement.find('[role=main]')[0]; if(docContent === undefined) { console.warn("Content block not found. Sphinx search tries to obtain it " + "via '[role=main]'. Could you check your theme or template."); diff --git a/_static/styles/default.css b/_static/styles/default.css index 9a68f8f..5dc4c53 100644 --- a/_static/styles/default.css +++ b/_static/styles/default.css @@ -1,2 +1,2 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--font-stack:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--header-height:calc(var(--sidebar-item-line-height) + 4*var(--sidebar-item-spacing-vertical));--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + 2*var(--sidebar-item-spacing-vertical));--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--icon-admonition-default:var(--icon-abstract);--color-problematic:#c00;--color-foreground:#000;--color-foreground-secondary:#5c5962;--color-foreground-border:#888;--color-background:#fff;--color-background-two:#f8f9fb;--color-background-three:#efeff4;--color-background-three--transparent:rgba(239,239,244,0);--color-background-border:#eeebee;--color-announcement-background:rgba(0,0,0,0.87);--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-admonition-background:transparent;--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,0.1);--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,0.1);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,0.1);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,0.1);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,0.1);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,0.1);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,0.1);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,0.1);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,0.1);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,0.1);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,0.1);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50.2%,0.1);--color-api-overall:#555;--color-api-name:var(--color-brand-content);--color-api-pre-name:var(--color-brand-content);--color-api-paren:#333;--color-api-keyword:var(--color-problematic);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground);--color-header-background:var(--color-background);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground);--color-sidebar-background:var(--color-background-two);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground);--color-sidebar-caption-text:var(--color-foreground-secondary);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var(--color-sidebar-item-background);--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-three--transparent),var(--color-background-three) var(--sidebar-item-spacing-horizontal),var(--color-background-three));--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var(--color-background-three);--color-sidebar-search-text:var(--color-foreground);--color-sidebar-search-background:var(--color-background-two);--color-sidebar-search-background--focus:var(--color-background);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-border);--color-toc-background:var(--color-background);--color-toc-title-text:var(--color-foreground-border);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}@media (prefers-color-scheme:dark){:root{--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-foreground:hsla(0,0%,100%,0.85);--color-foreground-secondary:#9ca0a5;--color-foreground-border:#454545;--color-background:#131416;--color-background-two:#1a1c1e;--color-background-three:#1e2124;--color-background-three--transparent:rgba(30,33,36,0);--color-background-border:#242628;--color-admonition-background:#18181a}}body{overflow-y:scroll}body,html{height:100%}.page{display:flex;min-height:100%}.mobile-header{width:100%;height:var(--header-height);background-color:var(--color-header-background);color:var(--color-header-text);border-bottom:1px solid var(--color-header-border);z-index:10;display:none}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.main{display:flex;flex:1}.sidebar-drawer{box-sizing:border-box;display:flex;justify-content:flex-end;width:calc((100% - 82em)/2 + 15em);min-width:15em}.sidebar-container,.toc-drawer{width:15em}.sidebar-sticky,.toc-sticky{position:-webkit-sticky;position:sticky;top:0;height:100vh;height:min(100%,100vh);display:flex;flex-direction:column}.sidebar-scroll,.toc-scroll{flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{padding:0 3em;width:46em;display:flex;flex-direction:column;justify-content:space-between}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{width:100%;height:100%}.announcement{height:var(--header-height);display:flex;align-items:center;overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;padding:.5rem;min-width:100%;white-space:nowrap;text-align:center}.toc-overlay-icon{display:none;float:right;height:1.5rem;width:1.5rem;margin-top:1.5rem;align-items:center;justify-content:right}.sidebar-toggle{position:absolute;display:none}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{position:fixed;top:0;width:0;height:0;transition:width 0ms,height 0ms,opacity .25s ease-out;opacity:0;background-color:rgba(0,0,0,.54)}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{z-index:30;transition:left .25s ease-in-out}.toc-drawer{z-index:50;transition:right .25s ease-in-out}#__navigation:checked~.sidebar-overlay{width:100%;height:100%;opacity:1}#__navigation:checked~.page .sidebar-drawer{top:0;left:0}#__toc:checked~.toc-overlay{width:100%;height:100%;opacity:1}#__toc:checked~.page .toc-drawer{top:0;right:0}@media (min-width:97em){html{font-size:110%}}@media (max-width:82em){.toc-overlay-icon{display:flex;cursor:pointer}.sidebar-drawer{width:calc((100% - 67em)/2 + 15em)}.toc-drawer{position:fixed;height:100vh;top:0;right:-15em}.toc-tree{font-size:var(--toc-font-size--mobile)}}@media (max-width:67em){.sidebar-drawer{position:fixed;height:100vh;width:15em;top:0;left:-15em}.mobile-header{position:-webkit-sticky;position:sticky;top:0;display:flex;justify-content:space-between;align-items:center}.mobile-header .nav-overlay-icon{cursor:pointer;display:flex;justify-content:center;align-items:center}.mobile-header .nav-overlay-icon .icon{color:var(--color-foreground-two);height:1.25rem;width:1.25rem}.mobile-header .header-left,.mobile-header .header-right{height:var(--header-height);width:var(--header-height)}:target{scroll-margin-top:var(--header-height)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media (max-width:52em){.content{width:100%;overflow-x:auto}}@media (max-width:46em){.content{padding:0 1em}article div.sidebar{float:none;width:100%;margin:1rem 0}}footer{font-size:var(--font-size--small);display:flex;flex-direction:column;margin-top:2rem}.related-information{margin-top:1rem;padding:.75rem .75rem 2rem;border-top:1px solid var(--color-background-border);line-height:1.5;color:var(--color-foreground-secondary)}.related-pages a{display:flex;align-items:center;text-decoration:none}.related-pages a:hover .page-info .title{text-decoration:underline;color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}.related-pages a svg,.related-pages a svg>use{flex-shrink:0;color:var(--color-foreground-border);width:.75rem;height:.75rem;margin:0 .5rem}.related-pages a.next-page{max-width:50%;float:right;clear:right;text-align:right}.related-pages a.prev-page{max-width:50%;float:left;clear:left}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column}.next-page .page-info{align-items:flex-end}.page-info .context{display:flex;align-items:center;padding-bottom:.1rem;color:var(--color-foreground-border);font-size:var(--font-size--small);text-decoration:none}html{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.25rem}h4{font-size:1rem}h5{font-size:.875rem}h6{font-size:.75rem}h1,h2{margin-bottom:1rem;font-weight:300}h1,h2,h3{margin-top:1.5rem}h3{margin-bottom:.75rem;font-weight:400}h4,h5,h6{text-transform:uppercase;margin-top:1rem;margin-bottom:.5rem;font-weight:700}p{margin-top:.75rem;margin-bottom:.75rem}hr.docutils{height:.0625rem;padding:0;margin:2rem 0;background-color:var(--color-foreground-border);border:0}.centered{text-align:center}dl.c dd,dl.cpp dd,dl.js dd,dl.py dd{margin-left:2rem}dl.c dd>:first-child,dl.cpp dd>:first-child,dl.js dd>:first-child,dl.py dd>:first-child{margin-top:.125rem}dl.c .field-list,dl.c dd>:last-child,dl.cpp .field-list,dl.cpp dd>:last-child,dl.js .field-list,dl.js dd>:last-child,dl.py .field-list,dl.py dd>:last-child{margin-bottom:.75rem}dl.c .field-list dt,dl.cpp .field-list dt,dl.js .field-list dt,dl.py .field-list dt{text-transform:uppercase;font-size:var(--font-size--small)}dl.c .field-list dd:empty,dl.cpp .field-list dd:empty,dl.js .field-list dd:empty,dl.py .field-list dd:empty{margin-bottom:.5rem}dl.c .field-list dd>ul,dl.cpp .field-list dd>ul,dl.js .field-list dd>ul,dl.py .field-list dd>ul{margin-left:-1.2rem}dl.c .field-list dd>ul>li>p:nth-child(2),dl.cpp .field-list dd>ul>li>p:nth-child(2),dl.js .field-list dd>ul>li>p:nth-child(2),dl.py .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl.c .field-list dd>ul>li>p+p:last-child:empty,dl.cpp .field-list dd>ul>li>p+p:last-child:empty,dl.js .field-list dd>ul>li>p+p:last-child:empty,dl.py .field-list dd>ul>li>p+p:last-child:empty{margin-top:0;margin-bottom:0}dl.c>dt,dl.cpp>dt,dl.js>dt,dl.py>dt{color:var(--color-api-overall)}dl.class>dt .property,dl.enum-class>dt .property,dl.enum-struct>dt .property,dl.enum>dt .property,dl.function>dt .property,dl.method>dt .property,dl.type>dt .property{color:var(--color-api-keyword)}.sig-name{font-weight:700;color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name)}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-top:.125rem;margin-bottom:.125rem}.viewcode-back,.viewcode-link{float:right;font-size:var(--font-size--small)}.admonition{margin:1rem auto;padding:0 .5rem .5rem;background:var(--color-admonition-background);border-radius:.2rem;border-left:.2rem solid var(--color-admonition-title);box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);overflow:hidden;page-break-inside:avoid}.admonition>:nth-child(2){margin-top:0}.admonition>:last-child{margin-bottom:0}.admonition p.admonition-title{position:relative;margin:0 -.5rem .5rem;padding:.5rem .5rem .5rem 2rem;font-weight:500;font-size:var(--admonition-title-font-size);background-color:var(--color-admonition-title-background);line-height:1.3}.admonition p.admonition-title:before{content:"";position:absolute;left:.5rem;width:1rem;height:1rem;background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution .admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution .admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning .admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning .admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger .admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger .admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention .admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention .admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error .admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error .admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint .admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint .admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important .admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important .admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note .admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note .admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso .admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso .admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip .admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip .admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo .admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo .admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo .admonition-title{text-transform:uppercase}abbr[title]{cursor:help}kbd{margin:0 .2rem;padding:0 .2rem;border-radius:.2rem;border:1px solid var(--color-foreground-border);color:var(--color-foreground);vertical-align:text-bottom;font-size:var(--font-size--small--3);display:inline-block;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background);background-color:var(--color-background-two)}kbd>kbd{margin:0}code.literal{background:var(--color-background-two);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}.code-block-caption>.headerlink,dl dt>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{font-weight:100;margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,:target>h1:first-child>.headerlink,:target>h2:first-child>.headerlink,:target>h3:first-child>.headerlink,:target>h4:first-child>.headerlink,:target>h5:first-child>.headerlink,:target>h6:first-child>.headerlink,dl dt:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption{text-align:initial;font-size:1em;margin-bottom:0}.toctree-wrapper.compound>ul{margin-top:0;margin-bottom:0}img{box-sizing:border-box;max-width:100%;height:auto}article .figure{border-radius:.2rem;padding:.5rem}article .figure :last-child{margin-bottom:0}article .align-left{float:left;clear:left;margin:0 1rem 1rem}article .align-right{float:right;clear:right;margin:0 1rem 1rem}article .align-center,article .figure.align-default,article .legend .align-default{text-align:center;margin-left:50%;transform:translate(-50%)}blockquote{border-left:1px solid var(--color-foreground-border);font-style:italic;margin-left:.5rem;margin-right:.5rem;padding:.5rem 1rem}article div[class*=" highlight-"],article div[class^=highlight-]{margin:1em 0;display:flex}pre{margin:0;padding:0}article pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{margin-top:1rem;margin-bottom:1rem;background-color:var(--color-code-background);color:var(--color-code-foreground)}.highlight,pre.literal-block{overflow:auto;border-radius:.2rem}.highlight{flex-grow:1}.highlighttable{width:100%;display:block}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem;border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.highlighttable .linenodiv{font-size:var(--code-font-size);padding-right:.5rem;box-shadow:-.0625rem 0 var(--color-code-foreground) inset;opacity:.5}.highlighttable td.code{padding:0;display:block;flex:1;overflow:hidden}.highlighttable td.code .highlight{border-top-left-radius:0;border-bottom-left-radius:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt{display:inline-block;margin-top:.25rem;font-weight:500}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd>p:first-child,.field-list dd ul,.option-list dd>p:first-child,.option-list dd ul,dl.footnote dd>p:first-child,dl.footnote dd ul,dl.glossary dd>p:first-child,dl.glossary dd ul,dl.simple dd>p:first-child,dl.simple dd ul{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul{margin-bottom:.125rem}dl.footnote{font-size:var(--font-size--small);color:var(--color-foreground-secondary);display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto}dl.footnote dt{margin:0}dl.footnote dt>.fn-backref{margin-left:.25rem}dl.footnote dt:after{content:":"}dl.footnote dt .brackets:before{content:"["}dl.footnote dt .brackets:after{content:"]"}article .sidebar{float:right;clear:right;width:30%;margin-left:1rem;margin-right:0;border-radius:.2rem;background-color:var(--color-background-two);border:1px solid var(--color-background-border)}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar .sidebar-title{margin:0;padding:.5rem 1rem;border-bottom:1px solid var(--color-background-border);font-weight:500}ol,ul{padding-left:1.2rem;margin-top:1rem;margin-bottom:1rem}ol li>p:first-child,ul li>p:first-child{margin-top:.25rem;margin-bottom:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-top:.5rem;margin-bottom:.5rem}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-top:0;margin-bottom:0}.table-wrapper{width:100%;overflow-x:auto;margin-top:1rem;margin-bottom:.5rem;padding:.2rem .2rem .75rem}table.docutils{border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-background-two)}table.docutils td,table.docutils th{padding:0 .25rem;border-left:1px solid var(--color-background-border);border-bottom:1px solid var(--color-background-border)}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils tbody tr:last-child td,table.docutils tbody tr:last-child th{border-bottom:none}.math-wrapper{width:100%;overflow-x:auto}ul.search{padding-left:0;list-style:none}ul.search li{padding:1rem 0;border-bottom:1px solid var(--color-background-border)}.highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{font-size:1.5rem}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{margin:0 auto;display:block;max-width:100%}.sidebar-search-container{display:flex;align-items:center;margin-top:var(--sidebar-search-space-above)}.sidebar-search-container:before{content:"";position:absolute;left:var(--sidebar-item-spacing-horizontal);width:var(--sidebar-search-icon-size);height:var(--sidebar-search-icon-size)}.sidebar-search{box-sizing:border-box;padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;color:var(--color-sidebar-search-foreground);background:transparent;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search:-ms-input-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::-ms-input-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-top:var(--sidebar-tree-space-above);margin-bottom:var(--sidebar-item-spacing-vertical)}.sidebar-tree ul{padding:0;margin-top:0;margin-bottom:0;display:flex;flex-direction:column;list-style:none}.sidebar-tree li{position:relative;margin:0}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;line-height:var(--sidebar-item-line-height);height:100%;width:100%;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}.sidebar-tree .reference.external:after{content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 00-2 2v9a2 2 0 002 2h9a2 2 0 002-2v-5M10 14L20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:center}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{position:absolute;top:0;right:0;height:var(--sidebar-item-height);width:var(--sidebar-expander-width);cursor:pointer;display:flex;justify-content:center;align-items:center}.sidebar-tree .caption{font-size:var(--sidebar-caption-font-size);font-weight:700;text-transform:uppercase;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.toctree-checkbox{position:absolute;display:none}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree{font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal));margin-bottom:var(--toc-spacing-vertical)}.toc-tree>ul>li{padding-top:0}.toc-tree>ul>li>ul{padding-left:0}.toc-tree>ul>li>a{display:none}.toc-tree ul{list-style-type:none;margin-top:0;margin-bottom:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li .reference{text-decoration:none}.toc-tree li.scroll-current>.reference{font-weight:700}.toc-scroll{max-height:100vh;overflow-y:hidden}.toc-scroll:hover{overflow-y:auto}.contents{color:var(--color-problematic);background:rgba(255,0,0,.25)}.contents:before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling."}body{color:var(--color-foreground);background:var(--color-background)}.announcement{background-color:var(--color-announcement-background);color:var(--color-announcement-text)}.sidebar-drawer{border-right:1px solid var(--color-sidebar-background-border);background:var(--color-sidebar-background)}.sidebar-brand{color:var(--color-sidebar-brand-text)}.sidebar-search-container{background:var(--color-sidebar-search-background)}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search)}.sidebar-search{border:none;border-top:1px solid var(--color-sidebar-search-border);border-bottom:1px solid var(--color-sidebar-search-border)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{text-decoration:none}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text)}.sidebar-tree .caption{color:var(--color-sidebar-caption-text)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toc-drawer{background:var(--color-toc-background)}.toc-title{color:var(--color-toc-title-text)}.toc-tree{border-left:1px solid var(--color-background-border)}.toc-tree .reference{text-decoration:none;color:var(--color-toc-item-text)}.toc-tree .scroll-current>.reference{color:var(--color-toc-item-text--active)}article{color:var(--color-content-foreground);background:var(--color-content-background)}a{text-decoration:underline;color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);-webkit-text-decoration-color:var(--color-link-underline--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{text-decoration:none}a.muted-link:hover{text-decoration:underline;color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}.problematic{color:var(--color-problematic)}:root{--tabs-color-label-active:var(--color-brand-content);--tabs-color-label-inactive:var(--color-foreground-border);--tabs-color-overline:var(--color-background-border);--tabs-color-underline:transparent}.tabbed-set>label.tabbed-label{font-size:var(--font-size--small);border-bottom-width:.125rem}.tabbed-content{box-shadow:0 -.125rem var(--tabs-color-overline),0 .125rem var(--tabs-color-underline);padding:0}.tabbed-content>p:first-child{margin-top:.75rem!important}.tabbed-content>[class^=highlight-]:first-child .highlight{border-top-left-radius:0;border-top-right-radius:0}[role=main] .container{max-width:none!important;padding:0!important}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}:root{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--header-height:calc(var(--sidebar-item-line-height) + 4*var(--sidebar-item-spacing-vertical));--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + 2*var(--sidebar-item-spacing-vertical));--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--icon-admonition-default:var(--icon-abstract);--color-problematic:#c00;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#72747e;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:rgba(239,239,244,0);--color-background-border:#eeebee;--color-announcement-background:rgba(0,0,0,0.87);--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-overall:var(--color-foreground-muted);--color-api-name:var(--color-brand-content);--color-api-pre-name:var(--color-brand-content);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-problematic);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,0.1);--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,0.1);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,0.1);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,0.1);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,0.1);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,0.1);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,0.1);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,0.1);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,0.1);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,0.1);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,0.1);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50.2%,0.1);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var(--color-sidebar-item-background);--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent),var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover));--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var(--color-background-hover);--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}@media (prefers-color-scheme:dark){:root{--color-problematic:#b81e1e;--color-foreground-primary:hsla(0,0%,100%,0.85);--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:rgba(30,33,36,0);--color-background-border:#303335;--color-announcement-background:rgba(0,0,0,0.87);--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-highlighted-text:var(--color-foreground-primary);--color-admonition-background:#18181a}}body{overflow-y:scroll}body,html{height:100%}.page{display:flex;min-height:100%}.mobile-header{width:100%;height:var(--header-height);background-color:var(--color-header-background);color:var(--color-header-text);border-bottom:1px solid var(--color-header-border);z-index:10;display:none}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.main{display:flex;flex:1}.sidebar-drawer{box-sizing:border-box;display:flex;justify-content:flex-end;width:calc((100% - 82em)/2 + 15em);min-width:15em}.sidebar-container,.toc-drawer{width:15em}.sidebar-sticky,.toc-sticky{position:-webkit-sticky;position:sticky;top:0;height:100vh;height:min(100%,100vh);display:flex;flex-direction:column}.sidebar-scroll,.toc-scroll{flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{padding:0 3em;width:46em;display:flex;flex-direction:column;justify-content:space-between}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{width:100%;height:100%}.announcement{height:var(--header-height);display:flex;align-items:center;overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;padding:.5rem;min-width:100%;white-space:nowrap;text-align:center}.toc-overlay-icon{display:none;float:right;height:1.5rem;width:1.5rem;margin-top:1.5rem;align-items:center;justify-content:right}.sidebar-toggle{position:absolute;display:none}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{position:fixed;top:0;width:0;height:0;transition:width 0ms,height 0ms,opacity .25s ease-out;opacity:0;background-color:rgba(0,0,0,.54)}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{z-index:30;transition:left .25s ease-in-out}.toc-drawer{z-index:50;transition:right .25s ease-in-out}#__navigation:checked~.sidebar-overlay{width:100%;height:100%;opacity:1}#__navigation:checked~.page .sidebar-drawer{top:0;left:0}#__toc:checked~.toc-overlay{width:100%;height:100%;opacity:1}#__toc:checked~.page .toc-drawer{top:0;right:0}@media (min-width:97em){html{font-size:110%}}@media (max-width:82em){.toc-overlay-icon{display:flex;cursor:pointer}.sidebar-drawer{width:calc((100% - 67em)/2 + 15em)}.toc-drawer{position:fixed;height:100vh;top:0;right:-15em}.toc-tree{font-size:var(--toc-font-size--mobile)}}@media (max-width:67em){.sidebar-drawer{position:fixed;height:100vh;width:15em;top:0;left:-15em}.mobile-header{position:-webkit-sticky;position:sticky;top:0;display:flex;justify-content:space-between;align-items:center}.mobile-header .nav-overlay-icon{cursor:pointer;display:flex;justify-content:center;align-items:center}.mobile-header .nav-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.25rem;width:1.25rem}.mobile-header .header-left,.mobile-header .header-right{height:var(--header-height);width:var(--header-height)}:target{scroll-margin-top:var(--header-height)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media (max-width:52em){.content{width:100%;overflow-x:auto}}@media (max-width:46em){.content{padding:0 1em}article div.sidebar{float:none;width:100%;margin:1rem 0}}footer{font-size:var(--font-size--small);display:flex;flex-direction:column;margin-top:2rem}.related-information{margin-top:1rem;padding:.75rem .75rem 2rem;border-top:1px solid var(--color-background-border);line-height:1.5;color:var(--color-foreground-secondary)}.related-pages a{display:flex;align-items:center;text-decoration:none}.related-pages a:hover .page-info .title{text-decoration:underline;color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}.related-pages a svg,.related-pages a svg>use{flex-shrink:0;color:var(--color-foreground-border);width:.75rem;height:.75rem;margin:0 .5rem}.related-pages a.next-page{max-width:50%;float:right;clear:right;text-align:right}.related-pages a.prev-page{max-width:50%;float:left;clear:left}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column}.next-page .page-info{align-items:flex-end}.page-info .context{display:flex;align-items:center;padding-bottom:.1rem;color:var(--color-foreground-muted);font-size:var(--font-size--small);text-decoration:none}html{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.25rem}h4{font-size:1rem}h5{font-size:.875rem}h6{font-size:.75rem}h1,h2{margin-bottom:1rem;font-weight:300}h1,h2,h3{margin-top:1.5rem}h3{margin-bottom:.75rem;font-weight:400}h4,h5,h6{text-transform:uppercase;margin-top:1rem;margin-bottom:.5rem;font-weight:700}p{margin-top:.75rem;margin-bottom:.75rem}hr.docutils{height:.0625rem;padding:0;margin:2rem 0;background-color:var(--color-background-border);border:0}.centered{text-align:center}dl.c dd,dl.cpp dd,dl.js dd,dl.py dd{margin-left:2rem}dl.c dd>:first-child,dl.cpp dd>:first-child,dl.js dd>:first-child,dl.py dd>:first-child{margin-top:.125rem}dl.c .field-list,dl.c dd>:last-child,dl.cpp .field-list,dl.cpp dd>:last-child,dl.js .field-list,dl.js dd>:last-child,dl.py .field-list,dl.py dd>:last-child{margin-bottom:.75rem}dl.c .field-list dt,dl.cpp .field-list dt,dl.js .field-list dt,dl.py .field-list dt{text-transform:uppercase;font-size:var(--font-size--small)}dl.c .field-list dd:empty,dl.cpp .field-list dd:empty,dl.js .field-list dd:empty,dl.py .field-list dd:empty{margin-bottom:.5rem}dl.c .field-list dd>ul,dl.cpp .field-list dd>ul,dl.js .field-list dd>ul,dl.py .field-list dd>ul{margin-left:-1.2rem}dl.c .field-list dd>ul>li>p:nth-child(2),dl.cpp .field-list dd>ul>li>p:nth-child(2),dl.js .field-list dd>ul>li>p:nth-child(2),dl.py .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl.c .field-list dd>ul>li>p+p:last-child:empty,dl.cpp .field-list dd>ul>li>p+p:last-child:empty,dl.js .field-list dd>ul>li>p+p:last-child:empty,dl.py .field-list dd>ul>li>p+p:last-child:empty{margin-top:0;margin-bottom:0}dl.c>dt,dl.cpp>dt,dl.js>dt,dl.py>dt{color:var(--color-api-overall)}dl.class>dt .property,dl.enum-class>dt .property,dl.enum-struct>dt .property,dl.enum>dt .property,dl.function>dt .property,dl.method>dt .property,dl.type>dt .property{color:var(--color-api-keyword)}.sig-name{font-weight:700;color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name)}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-top:.125rem;margin-bottom:.125rem}.viewcode-back,.viewcode-link{float:right;font-size:var(--font-size--small)}.admonition{margin:1rem auto;padding:0 .5rem .5rem;background:var(--color-admonition-background);border-radius:.2rem;border-left:.2rem solid var(--color-admonition-title);box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);overflow:hidden;page-break-inside:avoid}.admonition>:nth-child(2){margin-top:0}.admonition>:last-child{margin-bottom:0}.admonition p.admonition-title{position:relative;margin:0 -.5rem .5rem;padding:.5rem .5rem .5rem 2rem;font-weight:500;font-size:var(--admonition-title-font-size);background-color:var(--color-admonition-title-background);line-height:1.3}.admonition p.admonition-title:before{content:"";position:absolute;left:.5rem;width:1rem;height:1rem;background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution .admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution .admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning .admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning .admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger .admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger .admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention .admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention .admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error .admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error .admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint .admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint .admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important .admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important .admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note .admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note .admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso .admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso .admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip .admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip .admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo .admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo .admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo .admonition-title{text-transform:uppercase}abbr[title]{cursor:help}kbd{margin:0 .2rem;padding:0 .2rem;border-radius:.2rem;border:1px solid var(--color-foreground-border);color:var(--color-foreground-primary);vertical-align:text-bottom;font-size:var(--font-size--small--3);display:inline-block;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);background-color:var(--color-background-secondary)}kbd>kbd{margin:0}code.literal{background:var(--color-background-secondary);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}.code-block-caption>.headerlink,dl dt>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{font-weight:100;margin-left:.5rem;visibility:hidden;text-decoration:none}.code-block-caption:hover>.headerlink,:target>h1:first-child>.headerlink,:target>h2:first-child>.headerlink,:target>h3:first-child>.headerlink,:target>h4:first-child>.headerlink,:target>h5:first-child>.headerlink,:target>h6:first-child>.headerlink,dl dt:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption{text-align:initial;font-size:1em;margin-bottom:0}.toctree-wrapper.compound>ul{margin-top:0;margin-bottom:0}img{box-sizing:border-box;max-width:100%;height:auto}article .figure{border-radius:.2rem;padding:.5rem}article .figure :last-child{margin-bottom:0}article .align-left{float:left;clear:left;margin:0 1rem 1rem}article .align-right{float:right;clear:right;margin:0 1rem 1rem}article .align-center,article .figure.align-default,article .legend .align-default{text-align:center;margin-left:50%;transform:translate(-50%)}blockquote{border-left:1px solid var(--color-foreground-border);font-style:italic;margin-left:.5rem;margin-right:.5rem;padding:.5rem 1rem}article div[class*=" highlight-"],article div[class^=highlight-]{margin:1em 0;display:flex}pre{margin:0;padding:0}article pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{margin-top:1rem;margin-bottom:1rem;background-color:var(--color-code-background);color:var(--color-code-foreground)}.highlight,pre.literal-block{overflow:auto;border-radius:.2rem}.highlight{flex-grow:1}.highlighttable{width:100%;display:block}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem;border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.highlighttable .linenodiv{font-size:var(--code-font-size);padding-right:.5rem;box-shadow:-.0625rem 0 var(--color-code-foreground) inset;opacity:.5}.highlighttable td.code{padding:0;display:block;flex:1;overflow:hidden}.highlighttable td.code .highlight{border-top-left-radius:0;border-bottom-left-radius:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt{display:inline-block;margin-top:.25rem;font-weight:500}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd>p:first-child,.field-list dd ul,.option-list dd>p:first-child,.option-list dd ul,dl.footnote dd>p:first-child,dl.footnote dd ul,dl.glossary dd>p:first-child,dl.glossary dd ul,dl.simple dd>p:first-child,dl.simple dd ul{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul{margin-bottom:.125rem}dl.footnote{font-size:var(--font-size--small);color:var(--color-foreground-secondary);display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto}dl.footnote dt{margin:0}dl.footnote dt>.fn-backref{margin-left:.25rem}dl.footnote dt:after{content:":"}dl.footnote dt .brackets:before{content:"["}dl.footnote dt .brackets:after{content:"]"}article .sidebar{float:right;clear:right;width:30%;margin-left:1rem;margin-right:0;border-radius:.2rem;background-color:var(--color-background-secondary);border:1px solid var(--color-background-border)}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar .sidebar-title{margin:0;padding:.5rem 1rem;border-bottom:1px solid var(--color-background-border);font-weight:500}ol,ul{padding-left:1.2rem;margin-top:1rem;margin-bottom:1rem}ol li>p:first-child,ul li>p:first-child{margin-top:.25rem;margin-bottom:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-top:.5rem;margin-bottom:.5rem}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-top:0;margin-bottom:0}.table-wrapper{width:100%;overflow-x:auto;margin-top:1rem;margin-bottom:.5rem;padding:.2rem .2rem .75rem}table.docutils{border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-background-secondary)}table.docutils td,table.docutils th{padding:0 .25rem;border-left:1px solid var(--color-background-border);border-bottom:1px solid var(--color-background-border)}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}.math-wrapper{width:100%;overflow-x:auto}ul.search{padding-left:0;list-style:none}ul.search li{padding:1rem 0;border-bottom:1px solid var(--color-background-border)}.highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{font-size:1.5rem}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{margin:0 auto;display:block;max-width:100%}.sidebar-search-container{display:flex;align-items:center;margin-top:var(--sidebar-search-space-above)}.sidebar-search-container:before{content:"";position:absolute;left:var(--sidebar-item-spacing-horizontal);width:var(--sidebar-search-icon-size);height:var(--sidebar-search-icon-size)}.sidebar-search{box-sizing:border-box;padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;color:var(--color-sidebar-search-foreground);background:transparent;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search:-ms-input-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::-ms-input-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-top:var(--sidebar-tree-space-above);margin-bottom:var(--sidebar-item-spacing-vertical)}.sidebar-tree ul{padding:0;margin-top:0;margin-bottom:0;display:flex;flex-direction:column;list-style:none}.sidebar-tree li{position:relative;margin:0}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;line-height:var(--sidebar-item-line-height);height:100%;width:100%;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}.sidebar-tree .reference.external:after{content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 00-2 2v9a2 2 0 002 2h9a2 2 0 002-2v-5M10 14L20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:center}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{position:absolute;top:0;right:0;height:var(--sidebar-item-height);width:var(--sidebar-expander-width);cursor:pointer;display:flex;justify-content:center;align-items:center}.sidebar-tree .caption{font-size:var(--sidebar-caption-font-size);font-weight:700;text-transform:uppercase;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.toctree-checkbox{position:absolute;display:none}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree{font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal));margin-bottom:var(--toc-spacing-vertical)}.toc-tree>ul>li{padding-top:0}.toc-tree>ul>li>ul{padding-left:0}.toc-tree>ul>li>a{display:none}.toc-tree ul{list-style-type:none;margin-top:0;margin-bottom:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li .reference{text-decoration:none}.toc-tree li.scroll-current>.reference{font-weight:700}.toc-scroll{max-height:100vh;overflow-y:hidden}.toc-scroll:hover{overflow-y:auto}.contents{color:var(--color-problematic);background:rgba(255,0,0,.25)}.contents:before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling."}body{color:var(--color-foreground-primary);background:var(--color-background-primary)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.announcement{background-color:var(--color-announcement-background);color:var(--color-announcement-text)}.sidebar-drawer{border-right:1px solid var(--color-sidebar-background-border);background:var(--color-sidebar-background)}.sidebar-brand{color:var(--color-sidebar-brand-text)}.sidebar-search-container{background:var(--color-sidebar-search-background)}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search)}.sidebar-search{border:none;border-top:1px solid var(--color-sidebar-search-border);border-bottom:1px solid var(--color-sidebar-search-border)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{text-decoration:none}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text)}.sidebar-tree .caption{color:var(--color-sidebar-caption-text)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toc-drawer{background:var(--color-toc-background)}.toc-title{color:var(--color-toc-title-text)}.toc-tree{border-left:1px solid var(--color-background-border)}.toc-tree .reference{text-decoration:none;color:var(--color-toc-item-text)}.toc-tree .scroll-current>.reference{color:var(--color-toc-item-text--active)}article{color:var(--color-content-foreground);background:var(--color-content-background)}a{text-decoration:underline;color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);-webkit-text-decoration-color:var(--color-link-underline--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{text-decoration:none}a.muted-link:hover{text-decoration:underline;color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}.problematic{color:var(--color-problematic)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}:root{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--hover:var(--color-brand-content);--tabs--label-background--active:transparent;--tabs--label-background--hover:var(--color-background-secondary);--tabs--border:var(--color-background-border)} /*# sourceMappingURL=default.css.map */ diff --git a/_static/styles/default.css.map b/_static/styles/default.css.map index f3c376c..9d5f7de 100644 --- a/_static/styles/default.css.map +++ b/_static/styles/default.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../../../node_modules/normalize.css/normalize.css","_variables.scss","default.css","_layout.scss","_footer.scss","_typography.scss","content/_api.sass","content/_admonitions.scss","content/_inline_elements.scss","content/_block_elements.scss","content/_sidebar.scss","content/_lists.scss","content/_tables.scss","content/_math.scss","_search.scss","_sidebar.scss","_table_of_contents.sass","_theme.scss","extensions/_sphinx-panels.sass"],"names":[],"mappings":"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","file":"default.css","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file defines all the knobs that can be tweaked by end users.\n\n// Overall Layout Variables\n//\n// These are set here, since CSS variables can't be used in media queries,\n// which is where these would be used.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n\n// Admonitions\n//\n// Structure of these: (color, key-in-$icons).\n// The colors are translated into CSS variables below, and icons are used for\n// the declarations.\n$admonition-default: #651fff \"abstract\";\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"tip\": #00c852 \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n:root {\n //////////////////////////////////////////////////////////////////////////////\n // Fonts\n //////////////////////////////////////////////////////////////////////////////\n // This seems to be the best \"system UI font stack\" as on Aug 2020.\n --font-stack: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\";\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, monospace;\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n //////////////////////////////////////////////////////////////////////////////\n // Spacing\n //////////////////////////////////////////////////////////////////////////////\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n\n //////////////////////////////////////////////////////////////////////////////\n // Icons\n //////////////////////////////////////////////////////////////////////////////\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n --icon-admonition-default: var(--icon-#{nth($admonition-default, 2)});\n\n //////////////////////////////////////////////////////////////////////////////\n // Overall Colors\n // To give the user more control, avoid using these colors directly\n // outside of this file. Instead, try to define more variables here that\n // based on these, and use them in the actual stylesheets.\n //////////////////////////////////////////////////////////////////////////////\n --color-problematic: #cc0000;\n\n --color-foreground: black; // for main text and headings\n --color-foreground-secondary: #5c5962; // for secondary text\n --color-foreground-border: #888888; // for muted text, borders in content\n\n --color-background: white; // used for content + ToC\n --color-background-two: #f8f9fb; // used for navigation\n --color-background-three: rgba(239, 239, 244, 1); // for navigation-item hover\n --color-background-three--transparent: rgba(239, 239, 244, 0);\n --color-background-border: #eeebee;\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: hsl(224, 100%, 58%);\n --color-brand-content: hsl(224, 74%, 52%);\n\n // Admonitions!\n --color-admonition-background: transparent;\n --color-admonition-title: #{nth($admonition-default, 1)};\n --color-admonition-title-background: #{rgba(nth($admonition-default, 1), 0.1)};\n\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(nth($values, 1), 0.1)};\n }\n\n // API documentation\n --color-api-overall: #555555;\n --color-api-name: var(--color-brand-content);\n --color-api-pre-name: var(--color-brand-content);\n --color-api-paren: #333333;\n --color-api-keyword: var(--color-problematic);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground);\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Header\n --color-header-background: var(--color-background);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-two);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground);\n --color-sidebar-caption-text: var(--color-foreground-secondary);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-three--transparent) 0%,\n var(--color-background-three) var(--sidebar-item-spacing-horizontal),\n var(--color-background-three) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-three\n );\n\n --color-sidebar-search-text: var(--color-foreground);\n --color-sidebar-search-background: var(--color-background-two);\n --color-sidebar-search-background--focus: var(--color-background);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-border);\n\n // Table of Contents\n --color-toc-background: var(--color-background);\n --color-toc-title-text: var(--color-foreground-border);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground);\n --color-content-background: transparent;\n\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --color-brand-primary: hsl(210, 85%, 55%);\n --color-brand-content: hsl(210, 75%, 55%);\n\n --color-foreground: rgba(255, 255, 255, 0.85);\n --color-foreground-secondary: hsl(215, 5%, 63%);\n --color-foreground-border: hsl(0, 0%, 27%);\n\n --color-background: #131416;\n --color-background-two: #1a1c1e;\n --color-background-three: rgba(30, 33, 36, 1);\n --color-background-three--transparent: rgba(30, 33, 36, 0);\n --color-background-border: hsl(215, 5%, 15%);\n\n --color-admonition-background: #18181a;\n }\n}\n","@import \"normalize.css\";\n:root {\n --font-stack: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto,\n \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\",\n \"Segoe UI Symbol\";\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, monospace;\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n --code-font-size: var(--font-size--small--2);\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * var(--sidebar-item-spacing-vertical)\n );\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *var(--sidebar-item-spacing-vertical)\n );\n --sidebar-expander-width: var(--sidebar-item-height);\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n --icon-search: url('data:image/svg+xml;charset=utf-8,');\n --icon-pencil: url('data:image/svg+xml;charset=utf-8,');\n --icon-abstract: url('data:image/svg+xml;charset=utf-8,');\n --icon-info: url('data:image/svg+xml;charset=utf-8,');\n --icon-flame: url('data:image/svg+xml;charset=utf-8,');\n --icon-question: url('data:image/svg+xml;charset=utf-8,');\n --icon-warning: url('data:image/svg+xml;charset=utf-8,');\n --icon-failure: url('data:image/svg+xml;charset=utf-8,');\n --icon-spark: url('data:image/svg+xml;charset=utf-8,');\n --icon-admonition-default: var(--icon-abstract);\n --color-problematic: #cc0000;\n --color-foreground: black;\n --color-foreground-secondary: #5c5962;\n --color-foreground-border: #888888;\n --color-background: white;\n --color-background-two: #f8f9fb;\n --color-background-three: rgba(239, 239, 244, 1);\n --color-background-three--transparent: rgba(239, 239, 244, 0);\n --color-background-border: #eeebee;\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n --color-brand-primary: hsl(224, 100%, 58%);\n --color-brand-content: hsl(224, 74%, 52%);\n --color-admonition-background: transparent;\n --color-admonition-title: #651fff;\n --color-admonition-title-background: rgba(101, 31, 255, 0.1);\n --color-admonition-title--caution: #ff9100;\n --color-admonition-title-background--caution: rgba(255, 145, 0, 0.1);\n --color-admonition-title--warning: #ff9100;\n --color-admonition-title-background--warning: rgba(255, 145, 0, 0.1);\n --color-admonition-title--danger: #ff5252;\n --color-admonition-title-background--danger: rgba(255, 82, 82, 0.1);\n --color-admonition-title--attention: #ff5252;\n --color-admonition-title-background--attention: rgba(255, 82, 82, 0.1);\n --color-admonition-title--error: #ff5252;\n --color-admonition-title-background--error: rgba(255, 82, 82, 0.1);\n --color-admonition-title--hint: #00c852;\n --color-admonition-title-background--hint: rgba(0, 200, 82, 0.1);\n --color-admonition-title--important: #00bfa5;\n --color-admonition-title-background--important: rgba(0, 191, 165, 0.1);\n --color-admonition-title--note: #00b0ff;\n --color-admonition-title-background--note: rgba(0, 176, 255, 0.1);\n --color-admonition-title--seealso: #448aff;\n --color-admonition-title-background--seealso: rgba(68, 138, 255, 0.1);\n --color-admonition-title--tip: #00c852;\n --color-admonition-title-background--tip: rgba(0, 200, 82, 0.1);\n --color-admonition-title--admonition-todo: #808080;\n --color-admonition-title-background--admonition-todo: rgba(128, 128, 128, 0.1);\n --color-api-overall: #555555;\n --color-api-name: var(--color-brand-content);\n --color-api-pre-name: var(--color-brand-content);\n --color-api-paren: #333333;\n --color-api-keyword: var(--color-problematic);\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground);\n --color-header-background: var(--color-background);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground);\n --color-sidebar-background: var(--color-background-two);\n --color-sidebar-background-border: var(--color-background-border);\n --color-sidebar-brand-text: var(--color-foreground);\n --color-sidebar-caption-text: var(--color-foreground-secondary);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-three--transparent) 0%,\n var(--color-background-three) var(--sidebar-item-spacing-horizontal),\n var(--color-background-three) 100%\n );\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-three\n );\n --color-sidebar-search-text: var(--color-foreground);\n --color-sidebar-search-background: var(--color-background-two);\n --color-sidebar-search-background--focus: var(--color-background);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-border);\n --color-toc-background: var(--color-background);\n --color-toc-title-text: var(--color-foreground-border);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground);\n --color-toc-item-text--active: var(--color-brand-primary);\n --color-content-foreground: var(--color-foreground);\n --color-content-background: transparent;\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --color-brand-primary: hsl(210, 85%, 55%);\n --color-brand-content: hsl(210, 75%, 55%);\n --color-foreground: rgba(255, 255, 255, 0.85);\n --color-foreground-secondary: hsl(215, 5%, 63%);\n --color-foreground-border: hsl(0, 0%, 27%);\n --color-background: #131416;\n --color-background-two: #1a1c1e;\n --color-background-three: rgba(30, 33, 36, 1);\n --color-background-three--transparent: rgba(30, 33, 36, 0);\n --color-background-border: hsl(215, 5%, 15%);\n --color-admonition-background: #18181a;\n }\n}\nbody {\n overflow-y: scroll;\n}\n\nhtml,\nbody {\n height: 100%;\n}\n\n.page {\n display: flex;\n min-height: 100%;\n}\n\n.mobile-header {\n width: 100%;\n height: var(--header-height);\n background-color: var(--color-header-background);\n color: var(--color-header-text);\n border-bottom: 1px solid var(--color-header-border);\n z-index: 10;\n display: none;\n}\n.mobile-header.scrolled {\n border-bottom: none;\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2);\n}\n\n.main {\n display: flex;\n flex: 1;\n}\n\n.sidebar-drawer {\n box-sizing: border-box;\n display: flex;\n justify-content: flex-end;\n width: calc((100% - 82em) / 2 + 15em);\n min-width: 15em;\n}\n\n.sidebar-container,\n.toc-drawer {\n width: 15em;\n}\n\n.sidebar-sticky,\n.toc-sticky {\n position: sticky;\n top: 0;\n height: 100vh;\n height: min(100%, 100vh);\n display: flex;\n flex-direction: column;\n}\n\n.sidebar-scroll,\n.toc-scroll {\n flex-shrink: 1;\n overflow: auto;\n scroll-behavior: smooth;\n}\n\n.content {\n padding: 0 3em;\n width: 46em;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n\n.icon {\n display: inline-block;\n height: 1rem;\n width: 1rem;\n}\n.icon svg {\n width: 100%;\n height: 100%;\n}\n\n.announcement {\n height: var(--header-height);\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n\n.announcement + .page {\n min-height: calc(100% - var(--header-height));\n}\n\n.announcement-content {\n box-sizing: border-box;\n padding: 0.5rem;\n min-width: 100%;\n white-space: nowrap;\n text-align: center;\n}\n\n.toc-overlay-icon {\n display: none;\n float: right;\n height: 1.5rem;\n width: 1.5rem;\n margin-top: 1.5rem;\n align-items: center;\n justify-content: right;\n}\n\n.sidebar-toggle {\n position: absolute;\n display: none;\n}\n\n.sidebar-toggle[name=__toc] {\n left: 20px;\n}\n\n.sidebar-toggle:checked {\n left: 40px;\n}\n\n.overlay {\n position: fixed;\n top: 0;\n width: 0;\n height: 0;\n transition: width 0ms, height 0ms, opacity 250ms ease-out;\n opacity: 0;\n background-color: rgba(0, 0, 0, 0.54);\n}\n\n.sidebar-overlay {\n z-index: 20;\n}\n\n.toc-overlay {\n z-index: 40;\n}\n\n.sidebar-drawer {\n z-index: 30;\n transition: left 250ms ease-in-out;\n}\n\n.toc-drawer {\n z-index: 50;\n transition: right 250ms ease-in-out;\n}\n\n#__navigation:checked ~ .sidebar-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n}\n#__navigation:checked ~ .page .sidebar-drawer {\n top: 0;\n left: 0;\n}\n\n#__toc:checked ~ .toc-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n}\n#__toc:checked ~ .page .toc-drawer {\n top: 0;\n right: 0;\n}\n\n@media (min-width: 97em) {\n html {\n font-size: 110%;\n }\n}\n@media (max-width: 82em) {\n .toc-overlay-icon {\n display: flex;\n cursor: pointer;\n }\n\n .sidebar-drawer {\n width: calc( (100% - 67em) / 2 + 15em );\n }\n\n .toc-drawer {\n position: fixed;\n height: 100vh;\n top: 0;\n right: -15em;\n }\n\n .toc-tree {\n font-size: var(--toc-font-size--mobile);\n }\n}\n@media (max-width: 67em) {\n .sidebar-drawer {\n position: fixed;\n height: 100vh;\n width: 15em;\n top: 0;\n left: -15em;\n }\n\n .mobile-header {\n position: sticky;\n top: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .mobile-header .nav-overlay-icon {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .mobile-header .nav-overlay-icon .icon {\n color: var(--color-foreground-two);\n height: 1.25rem;\n width: 1.25rem;\n }\n .mobile-header .header-left,\n.mobile-header .header-right {\n height: var(--header-height);\n width: var(--header-height);\n }\n\n :target {\n scroll-margin-top: var(--header-height);\n }\n\n .page {\n flex-direction: column;\n justify-content: center;\n }\n\n .content {\n margin-left: auto;\n margin-right: auto;\n }\n}\n@media (max-width: 52em) {\n .content {\n width: 100%;\n overflow-x: auto;\n }\n}\n@media (max-width: 46em) {\n .content {\n padding: 0 1em;\n }\n\n article div.sidebar {\n float: none;\n width: 100%;\n margin: 1rem 0;\n }\n}\nfooter {\n font-size: var(--font-size--small);\n display: flex;\n flex-direction: column;\n margin-top: 2rem;\n}\n\n.related-information {\n margin-top: 1rem;\n padding: 0.75rem;\n padding-bottom: 2rem;\n border-top: 1px solid var(--color-background-border);\n line-height: 1.5;\n color: var(--color-foreground-secondary);\n}\n\n.related-pages a {\n display: flex;\n align-items: center;\n text-decoration: none;\n}\n.related-pages a:hover .page-info .title {\n text-decoration: underline;\n color: var(--color-link);\n text-decoration-color: var(--color-link-underline);\n}\n.related-pages a svg,\n.related-pages a svg > use {\n flex-shrink: 0;\n color: var(--color-foreground-border);\n width: 0.75rem;\n height: 0.75rem;\n margin: 0 0.5rem;\n}\n.related-pages a.next-page {\n max-width: 50%;\n float: right;\n clear: right;\n text-align: right;\n}\n.related-pages a.prev-page {\n max-width: 50%;\n float: left;\n clear: left;\n}\n.related-pages a.prev-page svg {\n transform: rotate(180deg);\n}\n\n.page-info {\n display: flex;\n flex-direction: column;\n}\n.next-page .page-info {\n align-items: flex-end;\n}\n.page-info .context {\n display: flex;\n align-items: center;\n padding-bottom: 0.1rem;\n color: var(--color-foreground-border);\n font-size: var(--font-size--small);\n text-decoration: none;\n}\n\nhtml {\n font-family: var(--font-stack);\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--font-stack--monospace);\n}\n\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\narticle {\n line-height: 1.5;\n}\n\nh1 {\n font-size: 2.25rem;\n}\n\nh2 {\n font-size: 1.75rem;\n}\n\nh3 {\n font-size: 1.25rem;\n}\n\nh4 {\n font-size: 1rem;\n}\n\nh5 {\n font-size: 0.875rem;\n}\n\nh6 {\n font-size: 0.75rem;\n}\n\nh1,\nh2 {\n margin-top: 1.5rem;\n margin-bottom: 1rem;\n font-weight: 300;\n}\n\nh3 {\n margin-top: 1.5rem;\n margin-bottom: 0.75rem;\n font-weight: 400;\n}\n\nh4,\nh5,\nh6 {\n text-transform: uppercase;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n font-weight: 700;\n}\n\np {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n\nhr.docutils {\n height: 0.0625rem;\n padding: 0;\n margin: 2rem 0;\n background-color: var(--color-foreground-border);\n border: 0;\n}\n\n.centered {\n text-align: center;\n}\n\ndl.py dd, dl.cpp dd, dl.c dd, dl.js dd {\n margin-left: 2rem;\n}\ndl.py dd > :first-child, dl.cpp dd > :first-child, dl.c dd > :first-child, dl.js dd > :first-child {\n margin-top: 0.125rem;\n}\ndl.py dd > :last-child, dl.cpp dd > :last-child, dl.c dd > :last-child, dl.js dd > :last-child {\n margin-bottom: 0.75rem;\n}\ndl.py .field-list, dl.cpp .field-list, dl.c .field-list, dl.js .field-list {\n margin-bottom: 0.75rem;\n}\ndl.py .field-list dt, dl.cpp .field-list dt, dl.c .field-list dt, dl.js .field-list dt {\n text-transform: uppercase;\n font-size: var(--font-size--small);\n}\ndl.py .field-list dd:empty, dl.cpp .field-list dd:empty, dl.c .field-list dd:empty, dl.js .field-list dd:empty {\n margin-bottom: 0.5rem;\n}\ndl.py .field-list dd > ul, dl.cpp .field-list dd > ul, dl.c .field-list dd > ul, dl.js .field-list dd > ul {\n margin-left: -1.2rem;\n}\ndl.py .field-list dd > ul > li > p:nth-child(2), dl.cpp .field-list dd > ul > li > p:nth-child(2), dl.c .field-list dd > ul > li > p:nth-child(2), dl.js .field-list dd > ul > li > p:nth-child(2) {\n margin-top: 0;\n}\ndl.py .field-list dd > ul > li > p + p:last-child:empty, dl.cpp .field-list dd > ul > li > p + p:last-child:empty, dl.c .field-list dd > ul > li > p + p:last-child:empty, dl.js .field-list dd > ul > li > p + p:last-child:empty {\n margin-top: 0;\n margin-bottom: 0;\n}\ndl.py > dt, dl.cpp > dt, dl.c > dt, dl.js > dt {\n color: var(--color-api-overall);\n}\n\ndl.class > dt .property, dl.function > dt .property, dl.method > dt .property, dl.enum > dt .property, dl.enum-class > dt .property, dl.enum-struct > dt .property, dl.type > dt .property {\n color: var(--color-api-keyword);\n}\n\n.sig-name {\n font-weight: bold;\n color: var(--color-api-name);\n}\n\n.sig-prename {\n color: var(--color-api-pre-name);\n}\n\n.sig-paren {\n color: var(--color-api-paren);\n}\n\n.sig-param {\n font-style: normal;\n}\n\n.versionmodified {\n font-style: italic;\n}\n\ndiv.versionadded p, div.versionchanged p, div.deprecated p {\n margin-top: 0.125rem;\n margin-bottom: 0.125rem;\n}\n\n.viewcode-link, .viewcode-back {\n float: right;\n font-size: var(--font-size--small);\n}\n\n.admonition {\n margin: 1rem auto;\n padding: 0 0.5rem 0.5rem 0.5rem;\n background: var(--color-admonition-background);\n border-radius: 0.2rem;\n border-left: 0.2rem solid var(--color-admonition-title);\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1);\n font-size: var(--admonition-font-size);\n overflow: hidden;\n page-break-inside: avoid;\n}\n.admonition > :nth-child(2) {\n margin-top: 0;\n}\n.admonition > :last-child {\n margin-bottom: 0;\n}\n.admonition p.admonition-title {\n position: relative;\n margin: 0 -0.5rem 0.5rem;\n padding: 0.5rem 0.5rem 0.5rem 2rem;\n font-weight: 500;\n font-size: var(--admonition-title-font-size);\n background-color: var(--color-admonition-title-background);\n line-height: 1.3;\n}\n.admonition p.admonition-title::before {\n content: \"\";\n position: absolute;\n left: 0.5rem;\n width: 1rem;\n height: 1rem;\n background-color: var(--color-admonition-title);\n mask-image: var(--icon-admonition-default);\n mask-repeat: no-repeat;\n}\n.admonition.caution {\n border-left-color: var(--color-admonition-title--caution);\n}\n.admonition.caution .admonition-title {\n background-color: var(--color-admonition-title-background--caution);\n}\n.admonition.caution .admonition-title::before {\n background-color: var(--color-admonition-title--caution);\n mask-image: var(--icon-spark);\n}\n.admonition.warning {\n border-left-color: var(--color-admonition-title--warning);\n}\n.admonition.warning .admonition-title {\n background-color: var(--color-admonition-title-background--warning);\n}\n.admonition.warning .admonition-title::before {\n background-color: var(--color-admonition-title--warning);\n mask-image: var(--icon-warning);\n}\n.admonition.danger {\n border-left-color: var(--color-admonition-title--danger);\n}\n.admonition.danger .admonition-title {\n background-color: var(--color-admonition-title-background--danger);\n}\n.admonition.danger .admonition-title::before {\n background-color: var(--color-admonition-title--danger);\n mask-image: var(--icon-spark);\n}\n.admonition.attention {\n border-left-color: var(--color-admonition-title--attention);\n}\n.admonition.attention .admonition-title {\n background-color: var(--color-admonition-title-background--attention);\n}\n.admonition.attention .admonition-title::before {\n background-color: var(--color-admonition-title--attention);\n mask-image: var(--icon-warning);\n}\n.admonition.error {\n border-left-color: var(--color-admonition-title--error);\n}\n.admonition.error .admonition-title {\n background-color: var(--color-admonition-title-background--error);\n}\n.admonition.error .admonition-title::before {\n background-color: var(--color-admonition-title--error);\n mask-image: var(--icon-failure);\n}\n.admonition.hint {\n border-left-color: var(--color-admonition-title--hint);\n}\n.admonition.hint .admonition-title {\n background-color: var(--color-admonition-title-background--hint);\n}\n.admonition.hint .admonition-title::before {\n background-color: var(--color-admonition-title--hint);\n mask-image: var(--icon-question);\n}\n.admonition.important {\n border-left-color: var(--color-admonition-title--important);\n}\n.admonition.important .admonition-title {\n background-color: var(--color-admonition-title-background--important);\n}\n.admonition.important .admonition-title::before {\n background-color: var(--color-admonition-title--important);\n mask-image: var(--icon-flame);\n}\n.admonition.note {\n border-left-color: var(--color-admonition-title--note);\n}\n.admonition.note .admonition-title {\n background-color: var(--color-admonition-title-background--note);\n}\n.admonition.note .admonition-title::before {\n background-color: var(--color-admonition-title--note);\n mask-image: var(--icon-pencil);\n}\n.admonition.seealso {\n border-left-color: var(--color-admonition-title--seealso);\n}\n.admonition.seealso .admonition-title {\n background-color: var(--color-admonition-title-background--seealso);\n}\n.admonition.seealso .admonition-title::before {\n background-color: var(--color-admonition-title--seealso);\n mask-image: var(--icon-info);\n}\n.admonition.tip {\n border-left-color: var(--color-admonition-title--tip);\n}\n.admonition.tip .admonition-title {\n background-color: var(--color-admonition-title-background--tip);\n}\n.admonition.tip .admonition-title::before {\n background-color: var(--color-admonition-title--tip);\n mask-image: var(--icon-info);\n}\n.admonition.admonition-todo {\n border-left-color: var(--color-admonition-title--admonition-todo);\n}\n.admonition.admonition-todo .admonition-title {\n background-color: var(--color-admonition-title-background--admonition-todo);\n}\n.admonition.admonition-todo .admonition-title::before {\n background-color: var(--color-admonition-title--admonition-todo);\n mask-image: var(--icon-pencil);\n}\n\n.admonition-todo .admonition-title {\n text-transform: uppercase;\n}\n\nabbr[title] {\n cursor: help;\n}\n\nkbd {\n margin: 0 0.2rem;\n padding: 0 0.2rem;\n border-radius: 0.2rem;\n border: 1px solid var(--color-foreground-border);\n color: var(--color-foreground);\n vertical-align: text-bottom;\n font-size: var(--font-size--small--3);\n display: inline-block;\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background);\n background-color: var(--color-background-two);\n}\nkbd > kbd {\n margin: 0;\n}\n\ncode.literal {\n background: var(--color-background-two);\n border-radius: 0.2em;\n font-size: var(--font-size--small--2);\n padding: 0.1em 0.2em;\n}\n\n.footnote-reference {\n font-size: var(--font-size--small--4);\n vertical-align: super;\n}\n\nh1 > .headerlink,\nh2 > .headerlink,\nh3 > .headerlink,\nh4 > .headerlink,\nh5 > .headerlink,\nh6 > .headerlink,\ndl dt > .headerlink,\np.caption > .headerlink,\ntable > caption > .headerlink,\n.code-block-caption > .headerlink {\n font-weight: 100;\n margin-left: 0.5rem;\n visibility: hidden;\n}\nh1:hover > .headerlink,\nh2:hover > .headerlink,\nh3:hover > .headerlink,\nh4:hover > .headerlink,\nh5:hover > .headerlink,\nh6:hover > .headerlink,\ndl dt:hover > .headerlink,\np.caption:hover > .headerlink,\ntable > caption:hover > .headerlink,\n.code-block-caption:hover > .headerlink {\n visibility: visible;\n}\n\n:target > h1:first-child > .headerlink,\n:target > h2:first-child > .headerlink,\n:target > h3:first-child > .headerlink,\n:target > h4:first-child > .headerlink,\n:target > h5:first-child > .headerlink,\n:target > h6:first-child > .headerlink {\n visibility: visible;\n}\n\narticle p.caption,\ntable > caption,\n.code-block-caption {\n font-size: var(--font-size--small);\n text-align: center;\n}\n\n.toctree-wrapper.compound .caption {\n text-align: initial;\n font-size: 1em;\n margin-bottom: 0;\n}\n.toctree-wrapper.compound > ul {\n margin-top: 0;\n margin-bottom: 0;\n}\n\nimg {\n box-sizing: border-box;\n max-width: 100%;\n height: auto;\n}\n\narticle .figure {\n border-radius: 0.2rem;\n padding: 0.5rem;\n}\narticle .figure :last-child {\n margin-bottom: 0;\n}\narticle .align-left {\n float: left;\n clear: left;\n margin: 0 1rem 1rem;\n}\narticle .align-right {\n float: right;\n clear: right;\n margin: 0 1rem 1rem;\n}\narticle .align-center, article .figure.align-default,\narticle .legend .align-default {\n text-align: center;\n margin-left: 50%;\n transform: translate(-50%);\n}\nblockquote {\n border-left: 1px solid var(--color-foreground-border);\n font-style: italic;\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n padding: 0.5rem 1rem;\n}\n\narticle div[class*=\" highlight-\"],\narticle div[class^=highlight-] {\n margin: 1em 0;\n display: flex;\n}\n\npre {\n margin: 0;\n padding: 0;\n}\narticle pre {\n line-height: 1.5;\n}\npre.literal-block, .highlight pre {\n font-size: var(--code-font-size);\n padding: 0.625rem 0.875rem;\n}\npre.literal-block {\n overflow: auto;\n margin-top: 1rem;\n margin-bottom: 1rem;\n border-radius: 0.2rem;\n background-color: var(--color-code-background);\n color: var(--color-code-foreground);\n}\n\n.highlight {\n flex-grow: 1;\n border-radius: 0.2rem;\n overflow: auto;\n}\n\n.highlighttable {\n width: 100%;\n display: block;\n}\n.highlighttable tbody {\n display: block;\n}\n.highlighttable tr {\n display: flex;\n}\n.highlighttable td.linenos {\n background-color: var(--color-code-background);\n color: var(--color-code-foreground);\n padding: 0.625rem 0.875rem;\n padding-right: 0;\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n.highlighttable .linenodiv {\n font-size: var(--code-font-size);\n padding-right: 0.5rem;\n box-shadow: -0.0625rem 0 var(--color-code-foreground) inset;\n opacity: 0.5;\n}\n.highlighttable td.code {\n padding: 0;\n display: block;\n flex: 1;\n overflow: hidden;\n}\n.highlighttable td.code .highlight {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.field-list dt,\n.option-list dt,\ndl.simple dt,\ndl.footnote dt,\ndl.glossary dt {\n display: inline-block;\n margin-top: 0.25rem;\n font-weight: 500;\n}\n.field-list dt .classifier::before,\n.option-list dt .classifier::before,\ndl.simple dt .classifier::before,\ndl.footnote dt .classifier::before,\ndl.glossary dt .classifier::before {\n content: \":\";\n margin-left: 0.2rem;\n margin-right: 0.2rem;\n}\n.field-list dd > p:first-child,\n.field-list dd ul,\n.option-list dd > p:first-child,\n.option-list dd ul,\ndl.simple dd > p:first-child,\ndl.simple dd ul,\ndl.footnote dd > p:first-child,\ndl.footnote dd ul,\ndl.glossary dd > p:first-child,\ndl.glossary dd ul {\n margin-top: 0.125rem;\n}\n.field-list dd ul,\n.option-list dd ul,\ndl.simple dd ul,\ndl.footnote dd ul,\ndl.glossary dd ul {\n margin-bottom: 0.125rem;\n}\n\ndl.footnote {\n font-size: var(--font-size--small);\n color: var(--color-foreground-secondary);\n display: grid;\n grid-template-columns: max-content auto;\n}\ndl.footnote dt {\n margin: 0;\n}\ndl.footnote dt > .fn-backref {\n margin-left: 0.25rem;\n}\ndl.footnote dt:after {\n content: \":\";\n}\ndl.footnote dt .brackets:before {\n content: \"[\";\n}\ndl.footnote dt .brackets:after {\n content: \"]\";\n}\n\narticle .sidebar {\n float: right;\n clear: right;\n width: 30%;\n margin-left: 1rem;\n margin-right: 0;\n border-radius: 0.2rem;\n background-color: var(--color-background-two);\n border: var(--color-background-border) 1px solid;\n}\narticle .sidebar > * {\n padding-left: 1rem;\n padding-right: 1rem;\n}\narticle .sidebar .sidebar-title {\n margin: 0;\n padding: 0.5rem 1rem;\n border-bottom: var(--color-background-border) 1px solid;\n font-weight: 500;\n}\n\nul,\nol {\n padding-left: 1.2rem;\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\nul li > p:first-child,\nol li > p:first-child {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\nul li > p:last-child,\nol li > p:last-child {\n margin-top: 0.25rem;\n}\nul li > ul,\nul li > ol,\nol li > ul,\nol li > ol {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.simple li > ul,\n.simple li > ol,\n.toctree-wrapper li > ul,\n.toctree-wrapper li > ol {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.table-wrapper {\n width: 100%;\n overflow-x: auto;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n padding: 0.2rem 0.2rem 0.75rem;\n}\n\ntable.docutils {\n border-radius: 0.2rem;\n border-spacing: 0;\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1);\n}\ntable.docutils th {\n background: var(--color-background-two);\n}\ntable.docutils td,\ntable.docutils th {\n padding: 0 0.25rem;\n border-left: 1px solid var(--color-background-border);\n border-bottom: 1px solid var(--color-background-border);\n}\ntable.docutils td p,\ntable.docutils th p {\n margin: 0.25rem;\n}\ntable.docutils td:first-child,\ntable.docutils th:first-child {\n border-left: none;\n}\ntable.docutils tbody tr:last-child td,\ntable.docutils tbody tr:last-child th {\n border-bottom: none;\n}\n\n.math-wrapper {\n width: 100%;\n overflow-x: auto;\n}\n\nul.search {\n padding-left: 0;\n list-style: none;\n}\nul.search li {\n padding: 1rem 0;\n border-bottom: 1px solid var(--color-background-border);\n}\n\n.highlighted {\n background-color: var(--color-highlighted-background);\n color: var(--color-highlighted-text);\n}\n\n.sidebar-brand {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);\n text-decoration: none;\n}\n\n.sidebar-brand-text {\n margin: var(--sidebar-item-spacing-vertical) 0;\n font-size: 1.5rem;\n}\n\n.sidebar-logo-container {\n margin: var(--sidebar-item-spacing-vertical) 0;\n}\n\n.sidebar-logo {\n margin: 0 auto;\n display: block;\n max-width: 100%;\n}\n\n.sidebar-search-container {\n display: flex;\n align-items: center;\n margin-top: var(--sidebar-search-space-above);\n}\n.sidebar-search-container::before {\n content: \"\";\n position: absolute;\n left: var(--sidebar-item-spacing-horizontal);\n width: var(--sidebar-search-icon-size);\n height: var(--sidebar-search-icon-size);\n}\n\n.sidebar-search {\n box-sizing: border-box;\n padding-top: var(--sidebar-search-input-spacing-vertical);\n padding-bottom: var(--sidebar-search-input-spacing-vertical);\n padding-right: var(--sidebar-search-input-spacing-horizontal);\n padding-left: calc( var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size) );\n width: 100%;\n color: var(--color-sidebar-search-foreground);\n background: transparent;\n z-index: 10;\n}\n.sidebar-search:focus {\n outline: none;\n}\n.sidebar-search::placeholder {\n font-size: var(--sidebar-search-input-font-size);\n}\n\n.sidebar-tree {\n font-size: var(--sidebar-item-font-size);\n margin-top: var(--sidebar-tree-space-above);\n margin-bottom: var(--sidebar-item-spacing-vertical);\n}\n.sidebar-tree ul {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n display: flex;\n flex-direction: column;\n list-style: none;\n}\n.sidebar-tree li {\n position: relative;\n margin: 0;\n}\n.sidebar-tree li > ul {\n margin-left: var(--sidebar-item-spacing-horizontal);\n}\n.sidebar-tree .reference {\n box-sizing: border-box;\n display: inline-block;\n line-height: var(--sidebar-item-line-height);\n height: 100%;\n width: 100%;\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);\n}\n.sidebar-tree .reference.external::after {\n content: url('data:image/svg+xml,');\n margin: 0 0.25rem;\n vertical-align: center;\n}\n.sidebar-tree .current-page > .reference {\n font-weight: bold;\n}\n.sidebar-tree label {\n position: absolute;\n top: 0;\n right: 0;\n height: var(--sidebar-item-height);\n width: var(--sidebar-expander-width);\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.sidebar-tree .caption {\n font-size: var(--sidebar-caption-font-size);\n font-weight: bold;\n text-transform: uppercase;\n margin: var(--sidebar-caption-space-above) 0 0 0;\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);\n}\n.sidebar-tree li.has-children > .reference {\n padding-right: var(--sidebar-expander-width);\n}\n\n.toctree-checkbox {\n position: absolute;\n display: none;\n}\n\n.toctree-checkbox ~ ul {\n display: none;\n}\n.toctree-checkbox ~ label .icon svg {\n transform: rotate(90deg);\n}\n\n.toctree-checkbox:checked ~ ul {\n display: block;\n}\n.toctree-checkbox:checked ~ label .icon svg {\n transform: rotate(-90deg);\n}\n\n.toc-title-container {\n padding: var(--toc-title-padding);\n padding-top: var(--toc-spacing-vertical);\n}\n\n.toc-title {\n font-size: var(--toc-title-font-size);\n padding-left: var(--toc-spacing-horizontal);\n text-transform: uppercase;\n}\n\n.no-toc {\n display: none;\n}\n\n.toc-tree {\n font-size: var(--toc-font-size);\n line-height: 1.3;\n padding-left: calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal));\n margin-bottom: var(--toc-spacing-vertical);\n}\n.toc-tree > ul > li {\n padding-top: 0;\n}\n.toc-tree > ul > li > ul {\n padding-left: 0;\n}\n.toc-tree > ul > li > a {\n display: none;\n}\n.toc-tree ul {\n list-style-type: none;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: var(--toc-item-spacing-horizontal);\n}\n.toc-tree li {\n padding-top: var(--toc-item-spacing-vertical);\n}\n.toc-tree li .reference {\n text-decoration: none;\n}\n.toc-tree li.scroll-current > .reference {\n font-weight: bold;\n}\n\n.toc-scroll {\n max-height: 100vh;\n overflow-y: hidden;\n}\n.toc-scroll:hover {\n overflow-y: auto;\n}\n\n.contents {\n color: var(--color-problematic);\n background: rgba(255, 0, 0, 0.25);\n}\n.contents::before {\n content: \"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.\";\n}\n\nbody {\n color: var(--color-foreground);\n background: var(--color-background);\n}\n\n.announcement {\n background-color: var(--color-announcement-background);\n color: var(--color-announcement-text);\n}\n\n.sidebar-drawer {\n border-right: 1px solid var(--color-sidebar-background-border);\n background: var(--color-sidebar-background);\n}\n\n.sidebar-brand {\n color: var(--color-sidebar-brand-text);\n}\n\n.sidebar-search-container {\n background: var(--color-sidebar-search-background);\n}\n.sidebar-search-container:hover, .sidebar-search-container:focus-within {\n background: var(--color-sidebar-search-background--focus);\n}\n.sidebar-search-container::before {\n background-color: var(--color-sidebar-search-icon);\n mask-image: var(--icon-search);\n}\n\n.sidebar-search {\n border: none;\n border-top: 1px solid var(--color-sidebar-search-border);\n border-bottom: 1px solid var(--color-sidebar-search-border);\n}\n\n.sidebar-tree .icon {\n color: var(--color-sidebar-link-text);\n}\n.sidebar-tree .reference {\n text-decoration: none;\n color: var(--color-sidebar-link-text);\n}\n.sidebar-tree .reference:hover {\n background: var(--color-sidebar-item-background--hover);\n}\n.sidebar-tree .reference.external::after {\n color: var(--color-sidebar-link-text);\n}\n.sidebar-tree .caption {\n color: var(--color-sidebar-caption-text);\n}\n.sidebar-tree .toctree-l1 > .reference, .sidebar-tree .toctree-l1 > label .icon {\n color: var(--color-sidebar-link-text--top-level);\n}\n.sidebar-tree label {\n background: var(--color-sidebar-item-expander-background);\n}\n.sidebar-tree label:hover {\n background: var(--color-sidebar-item-expander-background--hover);\n}\n.sidebar-tree .current > .reference {\n background: var(--color-sidebar-item-background--current);\n}\n.sidebar-tree .current > .reference:hover {\n background: var(--color-sidebar-item-background--hover);\n}\n\n.toc-drawer {\n background: var(--color-toc-background);\n}\n\n.toc-title {\n color: var(--color-toc-title-text);\n}\n\n.toc-tree {\n border-left: 1px solid var(--color-background-border);\n}\n.toc-tree .reference {\n text-decoration: none;\n color: var(--color-toc-item-text);\n}\n.toc-tree .scroll-current > .reference {\n color: var(--color-toc-item-text--active);\n}\n\narticle {\n color: var(--color-content-foreground);\n background: var(--color-content-background);\n}\n\na {\n text-decoration: underline;\n color: var(--color-link);\n text-decoration-color: var(--color-link-underline);\n}\na:hover {\n color: var(--color-link--hover);\n text-decoration-color: var(--color-link-underline--hover);\n}\na.muted-link {\n text-decoration: none;\n}\na.muted-link:hover {\n text-decoration: underline;\n color: var(--color-link);\n text-decoration-color: var(--color-link-underline);\n}\n\n.problematic {\n color: var(--color-problematic);\n}\n\n:root {\n --tabs-color-label-active: var(--color-brand-content);\n --tabs-color-label-inactive: var(--color-foreground-border);\n --tabs-color-overline: var(--color-background-border);\n --tabs-color-underline: transparent;\n}\n\n.tabbed-set > label.tabbed-label {\n font-size: var(--font-size--small);\n border-bottom-width: 0.125rem;\n}\n\n.tabbed-content {\n box-shadow: 0 -0.125rem var(--tabs-color-overline), 0 0.125rem var(--tabs-color-underline);\n}\n\n.tabbed-content {\n padding: 0;\n}\n.tabbed-content > p:first-child {\n margin-top: 0.75rem !important;\n}\n.tabbed-content > [class^=highlight-]:first-child .highlight {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n[role=main] .container {\n max-width: initial !important;\n padding: 0 !important;\n}\n\n.shadow.docutils {\n border: none;\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important;\n}","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n//\n// Overalls\n//\nbody {\n overflow-y: scroll; // always have the scrollbar\n}\nhtml,\nbody {\n height: 100%;\n}\n.page {\n display: flex;\n // fill the viewport for pages with little content.\n min-height: 100%;\n}\n.mobile-header {\n width: 100%;\n height: var(--header-height);\n background-color: var(--color-header-background);\n color: var(--color-header-text);\n border-bottom: 1px solid var(--color-header-border);\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10;\n\n // Add shadow when scrolled\n &.scrolled {\n border-bottom: none;\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1),\n 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2);\n }\n\n // We don't show the header on large screens.\n display: none;\n}\n.main {\n display: flex;\n flex: 1;\n}\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer {\n box-sizing: border-box;\n\n display: flex;\n justify-content: flex-end;\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width});\n min-width: $sidebar-width;\n}\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer {\n width: $sidebar-width;\n}\n.sidebar-sticky,\n.toc-sticky {\n position: sticky;\n top: 0;\n height: 100vh;\n height: min(100%, 100vh);\n\n display: flex;\n flex-direction: column;\n}\n\n.sidebar-scroll,\n.toc-scroll {\n flex-shrink: 1;\n\n overflow: auto;\n scroll-behavior: smooth;\n}\n\n// Central items.\n.content {\n padding: 0 $content-padding;\n width: $content-width;\n\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n\n.icon {\n display: inline-block;\n height: 1rem;\n width: 1rem;\n svg {\n width: 100%;\n height: 100%;\n }\n}\n\n// TODO: figure out what could cause content to flow \"out\" of .content and\n// add an overflow-x on it.\n\n//\n// Accommodate announcement banner\n//\n.announcement {\n height: var(--header-height);\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.announcement + .page {\n min-height: calc(100% - var(--header-height));\n}\n.announcement-content {\n box-sizing: border-box;\n padding: 0.5rem;\n min-width: 100%;\n white-space: nowrap;\n text-align: center;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon {\n display: none;\n float: right;\n\n height: 1.5rem;\n width: 1.5rem;\n margin-top: 1.5rem;\n\n align-items: center;\n justify-content: right;\n}\n.sidebar-toggle {\n position: absolute;\n display: none;\n}\n// \n.sidebar-toggle[name=\"__toc\"] {\n left: 20px;\n}\n.sidebar-toggle:checked {\n left: 40px;\n}\n// \n.overlay {\n position: fixed;\n top: 0;\n width: 0;\n height: 0;\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out;\n\n opacity: 0;\n background-color: rgba(0, 0, 0, 0.54);\n}\n.sidebar-overlay {\n z-index: 20;\n}\n.toc-overlay {\n z-index: 40;\n}\n\n// Keep things on top and smooth.\n.sidebar-drawer {\n z-index: 30;\n transition: left 250ms ease-in-out;\n}\n.toc-drawer {\n z-index: 50;\n transition: right 250ms ease-in-out;\n}\n\n// Show the Sidebar\n#__navigation:checked {\n & ~ .sidebar-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n }\n & ~ .page {\n .sidebar-drawer {\n top: 0;\n left: 0;\n }\n }\n}\n// Show the toc sidebar\n#__toc:checked {\n & ~ .toc-overlay {\n width: 100%;\n height: 100%;\n opacity: 1;\n }\n & ~ .page {\n .toc-drawer {\n top: 0;\n right: 0;\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width) {\n html {\n font-size: 110%;\n }\n}\n\n@media (max-width: $full-width) {\n // Collapse \"toc\" into the icon.\n .toc-overlay-icon {\n display: flex;\n cursor: pointer;\n }\n\n .sidebar-drawer {\n width: calc(\n (100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width}\n );\n }\n .toc-drawer {\n position: fixed;\n height: 100vh;\n top: 0;\n right: -$sidebar-width;\n }\n .toc-tree {\n font-size: var(--toc-font-size--mobile);\n }\n}\n\n@media (max-width: $full-width - $sidebar-width) {\n // Collapse \"navigation\".\n .sidebar-drawer {\n position: fixed;\n height: 100vh;\n width: $sidebar-width;\n\n top: 0;\n left: -$sidebar-width;\n }\n\n // Show the header.\n .mobile-header {\n position: sticky;\n top: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .nav-overlay-icon {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n .icon {\n color: var(--color-foreground-two);\n height: 1.25rem;\n width: 1.25rem;\n }\n }\n .header-left,\n .header-right {\n height: var(--header-height);\n width: var(--header-height);\n }\n }\n\n // Add a scroll margin for the content\n :target {\n scroll-margin-top: var(--header-height);\n }\n\n // Center the page, and accommodate for the header.\n .page {\n flex-direction: column;\n justify-content: center;\n }\n .content {\n margin-left: auto;\n margin-right: auto;\n }\n}\n@media (max-width: $content-width + 2* $content-padding) {\n // Content should respect window limits.\n .content {\n width: 100%;\n overflow-x: auto;\n }\n}\n@media (max-width: $content-width) {\n .content {\n padding: 0 $content-padding--small;\n }\n // Don't float sidebars to the right.\n article div.sidebar {\n float: none;\n width: 100%;\n margin: 1rem 0;\n }\n}\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter {\n font-size: var(--font-size--small);\n display: flex;\n flex-direction: column;\n\n margin-top: 2rem;\n}\n\n// Bottom of page information\n.related-information {\n margin-top: 1rem;\n\n padding: 0.75rem;\n padding-bottom: 2rem;\n border-top: 1px solid var(--color-background-border);\n\n line-height: 1.5;\n color: var(--color-foreground-secondary);\n}\n\n// Next/Prev page information\n.related-pages {\n a {\n display: flex;\n align-items: center;\n\n text-decoration: none;\n &:hover .page-info .title {\n text-decoration: underline;\n color: var(--color-link);\n text-decoration-color: var(--color-link-underline);\n }\n\n svg,\n svg > use {\n flex-shrink: 0;\n\n color: var(--color-foreground-border);\n\n width: 0.75rem;\n height: 0.75rem;\n margin: 0 0.5rem;\n }\n &.next-page {\n max-width: 50%;\n\n float: right;\n clear: right;\n text-align: right;\n }\n &.prev-page {\n max-width: 50%;\n\n float: left;\n clear: left;\n\n svg {\n transform: rotate(180deg);\n }\n }\n }\n}\n\n.page-info {\n display: flex;\n flex-direction: column;\n\n .next-page & {\n align-items: flex-end;\n }\n\n .context {\n display: flex;\n align-items: center;\n\n padding-bottom: 0.1rem;\n\n color: var(--color-foreground-border);\n font-size: var(--font-size--small);\n text-decoration: none;\n }\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nhtml {\n font-family: var(--font-stack);\n}\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--font-stack--monospace);\n}\n\n// Make fonts look slightly nicer.\nbody {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Line height from Bootstrap 4.1\narticle {\n line-height: 1.5;\n}\n\n//\n// Headings\n//\nh1 {\n font-size: 2.25rem;\n}\nh2 {\n font-size: 1.75rem;\n}\nh3 {\n font-size: 1.25rem;\n}\nh4 {\n font-size: 1rem;\n}\nh5 {\n font-size: 0.875rem;\n}\nh6 {\n font-size: 0.75rem;\n}\n\n// Main headings\nh1,\nh2 {\n margin-top: 1.5rem;\n margin-bottom: 1rem;\n font-weight: 300;\n}\n\nh3 {\n margin-top: 1.5rem;\n margin-bottom: 0.75rem;\n font-weight: 400;\n}\n\n// You're in-too-deep headings\nh4,\nh5,\nh6 {\n text-transform: uppercase;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n font-weight: 700;\n}\n\n// Paragraph\np {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n\n// Horizontal rules\nhr.docutils {\n height: 0.0625rem;\n padding: 0;\n margin: 2rem 0;\n background-color: var(--color-foreground-border);\n border: 0;\n}\n\n.centered {\n text-align: center;\n}\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl.py, dl.cpp, dl.c, dl.js\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n .field-list\n margin-bottom: 0.75rem\n dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\ndl.class, dl.function, dl.method, dl.enum, dl.enum-class, dl.enum-struct, dl.type\n > dt .property\n color: var(--color-api-keyword)\n\n.sig-name\n font-weight: bold\n color: var(--color-api-name)\n.sig-prename\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\n.versionmodified\n font-style: italic\ndiv.versionadded, div.versionchanged, div.deprecated\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\n.viewcode-link, .viewcode-back\n float: right\n font-size: var(--font-size--small)\n","// Definitely inspired by mkdocs-material.\n.admonition {\n margin: 1rem auto;\n padding: 0 0.5rem 0.5rem 0.5rem;\n\n background: var(--color-admonition-background);\n\n border-radius: 0.2rem;\n border-left: 0.2rem solid var(--color-admonition-title);\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05),\n 0 0 0.0625rem rgba(0, 0, 0, 0.1);\n\n font-size: var(--admonition-font-size);\n\n overflow: hidden;\n page-break-inside: avoid;\n\n // First element should have no margin, since the title has it.\n > :nth-child(2) {\n margin-top: 0;\n }\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child {\n margin-bottom: 0;\n }\n\n // Defaults for all admonitions\n p.admonition-title {\n position: relative;\n margin: 0 -0.5rem 0.5rem;\n padding: 0.5rem 0.5rem 0.5rem 2rem;\n\n font-weight: 500;\n font-size: var(--admonition-title-font-size);\n background-color: var(--color-admonition-title-background);\n\n line-height: 1.3;\n\n // Our fancy icon\n &::before {\n content: \"\";\n position: absolute;\n left: 0.5rem;\n width: 1rem;\n height: 1rem;\n // color: var(--color-admonition-title);\n background-color: var(--color-admonition-title);\n\n mask-image: var(--icon-admonition-default);\n mask-repeat: no-repeat;\n }\n }\n\n //\n // Variants\n //\n @each $type, $value in $admonitions {\n &.#{$type} {\n border-left-color: var(--color-admonition-title--#{$type});\n .admonition-title {\n background-color: var(--color-admonition-title-background--#{$type});\n &::before {\n background-color: var(--color-admonition-title--#{$type});\n mask-image: var(--icon-#{nth($value, 2)});\n }\n }\n }\n }\n}\n\n.admonition-todo .admonition-title {\n text-transform: uppercase;\n}\n","// Abbreviations\nabbr[title] {\n cursor: help;\n}\n\n// Keyboard / Mouse \"instructions\"\nkbd {\n margin: 0 0.2rem;\n padding: 0 0.2rem;\n border-radius: 0.2rem;\n border: 1px solid var(--color-foreground-border);\n color: var(--color-foreground);\n vertical-align: text-bottom;\n\n font-size: var(--font-size--small--3);\n display: inline-block;\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2),\n inset 0 0 0 0.125rem var(--color-background);\n\n background-color: var(--color-background-two);\n\n > kbd {\n margin: 0;\n }\n}\n\n// Inline code\ncode.literal {\n background: var(--color-background-two);\n border-radius: 0.2em;\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2);\n padding: 0.1em 0.2em;\n}\n\n// Footnote References\n.footnote-reference {\n font-size: var(--font-size--small--4);\n vertical-align: super;\n}\n\n// Permalinks\n// Adapted from Sphinx-RTD-theme's corresponding CSS\n// https://github.com/readthedocs/sphinx_rtd_theme/blob/1a32899b/src/sass/_theme_rst.sass#L201\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\ntable > caption,\n.code-block-caption {\n > .headerlink {\n font-weight: 100;\n margin-left: 0.5rem;\n visibility: hidden;\n }\n &:hover > .headerlink {\n visibility: visible;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n :target > &:first-child > .headerlink {\n visibility: visible;\n }\n}\n\n// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption {\n font-size: var(--font-size--small);\n text-align: center;\n}\n\n.toctree-wrapper.compound {\n .caption {\n text-align: initial;\n font-size: 1em;\n margin-bottom: 0;\n }\n > ul {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n","//\n// Figures\n//\nimg {\n box-sizing: border-box;\n max-width: 100%;\n height: auto;\n}\n\narticle {\n .figure {\n border-radius: 0.2rem;\n\n padding: 0.5rem;\n :last-child {\n margin-bottom: 0;\n }\n }\n .align-left {\n float: left;\n clear: left;\n margin: 0 1rem 1rem;\n }\n .align-right {\n float: right;\n clear: right;\n margin: 0 1rem 1rem;\n }\n .align-center {\n text-align: center;\n margin-left: 50%;\n transform: translate(-50%);\n }\n\n .figure.align-default,\n .legend .align-default {\n @extend .align-center;\n }\n}\n\n//\n// Blockquote\n//\nblockquote {\n border-left: 1px solid var(--color-foreground-border);\n font-style: italic;\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n padding: 0.5rem 1rem;\n}\n\n//\n// Code and Literal Blocks\n//\n// Inspired by mkdocs-material's design.\n$code-spacing-vertical: 0.625rem;\n$code-spacing-horizontal: 0.875rem;\n\narticle {\n // Wraps every literal block + line numbers.\n div[class*=\" highlight-\"],\n div[class^=\"highlight-\"] {\n margin: 1em 0;\n display: flex;\n }\n}\n\npre {\n margin: 0;\n padding: 0;\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article & {\n line-height: 1.5;\n }\n\n &.literal-block,\n .highlight & {\n font-size: var(--code-font-size);\n padding: $code-spacing-vertical $code-spacing-horizontal;\n }\n // Make it look like all the other blocks.\n &.literal-block {\n overflow: auto;\n\n margin-top: 1rem;\n margin-bottom: 1rem;\n\n border-radius: 0.2rem;\n background-color: var(--color-code-background);\n color: var(--color-code-foreground);\n }\n}\n\n// All code is always contained in a pre\n.highlight {\n flex-grow: 1;\n border-radius: 0.2rem;\n overflow: auto;\n}\n// Added when there's line numbers associated with a literal block.\n.highlighttable {\n width: 100%;\n display: block;\n tbody {\n display: block;\n }\n tr {\n display: flex;\n }\n // Line numbers\n td.linenos {\n background-color: var(--color-code-background);\n color: var(--color-code-foreground);\n padding: $code-spacing-vertical $code-spacing-horizontal;\n padding-right: 0;\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n }\n .linenodiv {\n font-size: var(--code-font-size);\n\n padding-right: 0.5rem;\n box-shadow: -0.0625rem 0 var(--color-code-foreground) inset;\n opacity: 0.5; // I hate myself.\n }\n // Actual code\n td.code {\n padding: 0;\n display: block;\n flex: 1;\n overflow: hidden;\n\n .highlight {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n\n.field-list,\n.option-list,\ndl.simple,\ndl.footnote,\ndl.glossary {\n dt {\n display: inline-block;\n margin-top: 0.25rem;\n font-weight: 500;\n\n .classifier::before {\n content: \":\";\n margin-left: 0.2rem;\n margin-right: 0.2rem;\n }\n }\n\n dd {\n > p:first-child,\n ul {\n margin-top: 0.125rem;\n }\n ul {\n margin-bottom: 0.125rem;\n }\n }\n}\n\n// Footnotes\ndl.footnote {\n font-size: var(--font-size--small);\n color: var(--color-foreground-secondary);\n\n display: grid;\n grid-template-columns: max-content auto;\n dt {\n margin: 0;\n > .fn-backref {\n margin-left: 0.25rem;\n }\n\n &:after {\n content: \":\";\n }\n .brackets {\n &:before {\n content: \"[\";\n }\n &:after {\n content: \"]\";\n }\n }\n }\n}\n","article .sidebar {\n float: right;\n clear: right;\n width: 30%;\n\n margin-left: 1rem;\n margin-right: 0;\n\n border-radius: 0.2rem;\n background-color: var(--color-background-two);\n border: var(--color-background-border) 1px solid;\n\n > * {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n\n .sidebar-title {\n margin: 0;\n padding: 0.5rem 1rem;\n border-bottom: var(--color-background-border) 1px solid;\n\n font-weight: 500;\n }\n}\n// TODO: subtitle\n// TODO: dedicated variables?\n","ul,\nol {\n padding-left: 1.2rem;\n\n // Space lists out like paragraphs\n margin-top: 1rem;\n margin-bottom: 1rem;\n // reduce margins within li.\n li {\n > p:first-child {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n }\n > p:last-child {\n margin-top: 0.25rem;\n }\n\n > ul,\n > ol {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n }\n }\n}\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper {\n li {\n > ul,\n > ol {\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n}\n",".table-wrapper {\n width: 100%;\n overflow-x: auto;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n padding: 0.2rem 0.2rem 0.75rem;\n}\n\ntable.docutils {\n border-radius: 0.2rem;\n border-spacing: 0;\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05),\n 0 0 0.0625rem rgba(0, 0, 0, 0.1);\n\n th {\n background: var(--color-background-two);\n }\n\n td,\n th {\n // Space things out properly\n padding: 0 0.25rem;\n p {\n margin: 0.25rem;\n }\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-background-border);\n border-bottom: 1px solid var(--color-background-border);\n\n &:first-child {\n border-left: none;\n }\n }\n tbody tr:last-child {\n td,\n th {\n border-bottom: none;\n }\n }\n}\n",".math-wrapper {\n width: 100%;\n overflow-x: auto;\n}\n","//\n// Search Page Listing\n//\nul.search {\n padding-left: 0;\n list-style: none;\n\n li {\n padding: 1rem 0;\n border-bottom: 1px solid var(--color-background-border);\n }\n}\n\n//\n// Highlighted by links in search page\n//\n.highlighted {\n background-color: var(--color-highlighted-background);\n color: var(--color-highlighted-text);\n}\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n\n padding: var(--sidebar-item-spacing-vertical)\n var(--sidebar-item-spacing-horizontal);\n text-decoration: none;\n}\n\n.sidebar-brand-text {\n margin: var(--sidebar-item-spacing-vertical) 0;\n font-size: 1.5rem;\n}\n\n.sidebar-logo-container {\n margin: var(--sidebar-item-spacing-vertical) 0;\n}\n\n.sidebar-logo {\n margin: 0 auto;\n display: block;\n max-width: 100%;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container {\n display: flex;\n align-items: center;\n margin-top: var(--sidebar-search-space-above);\n\n &::before {\n content: \"\";\n position: absolute;\n left: var(--sidebar-item-spacing-horizontal);\n width: var(--sidebar-search-icon-size);\n height: var(--sidebar-search-icon-size);\n }\n}\n\n.sidebar-search {\n box-sizing: border-box;\n\n padding-top: var(--sidebar-search-input-spacing-vertical);\n padding-bottom: var(--sidebar-search-input-spacing-vertical);\n padding-right: var(--sidebar-search-input-spacing-horizontal);\n padding-left: calc(\n var(--sidebar-item-spacing-horizontal) +\n var(--sidebar-search-input-spacing-horizontal) +\n var(--sidebar-search-icon-size)\n );\n\n width: 100%;\n\n color: var(--color-sidebar-search-foreground);\n background: transparent;\n z-index: 10;\n\n &:focus {\n outline: none;\n }\n\n &::placeholder {\n font-size: var(--sidebar-search-input-font-size);\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree {\n font-size: var(--sidebar-item-font-size);\n margin-top: var(--sidebar-tree-space-above);\n margin-bottom: var(--sidebar-item-spacing-vertical);\n\n ul {\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n\n display: flex;\n flex-direction: column;\n\n list-style: none;\n }\n li {\n position: relative;\n margin: 0;\n\n > ul {\n margin-left: var(--sidebar-item-spacing-horizontal);\n }\n }\n .reference {\n box-sizing: border-box;\n // Fill the parent.\n display: inline-block;\n line-height: var(--sidebar-item-line-height);\n\n height: 100%;\n width: 100%;\n\n padding: var(--sidebar-item-spacing-vertical)\n var(--sidebar-item-spacing-horizontal);\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after {\n content: url('data:image/svg+xml,');\n margin: 0 0.25rem;\n vertical-align: center;\n }\n }\n\n // Make the current page reference bold.\n .current-page > .reference {\n font-weight: bold;\n }\n\n label {\n position: absolute;\n top: 0;\n right: 0;\n height: var(--sidebar-item-height);\n width: var(--sidebar-expander-width);\n\n cursor: pointer;\n\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .caption {\n font-size: var(--sidebar-caption-font-size);\n\n font-weight: bold;\n text-transform: uppercase;\n\n margin: var(--sidebar-caption-space-above) 0 0 0;\n\n padding: var(--sidebar-item-spacing-vertical)\n var(--sidebar-item-spacing-horizontal);\n }\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the