Files
FYS-STK4155/doc/LectureNotes/exercisesweek36.html
T

8350 lines
590 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>exercisesweek36</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<style type="text/css">
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .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: var(--jp-cell-editor-active-background) }
.highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }
.highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */
.highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */
.highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
.highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */
.highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */
.highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */
.highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */
.highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */
.highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */
.highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */
.highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */
.highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */
.highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
.highlight .pm { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation.Marker */
.highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */
.highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */
.highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */
.highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */
.highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
.highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */
.highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */
.highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */
.highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */
.highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */
.highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */
.highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
.highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */
.highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */
.highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */
.highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */
.highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */
.highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */
.highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */
.highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*
* Mozilla scrollbar styling
*/
/* use standard opaque scrollbars for most nodes */
[data-jp-theme-scrollbars='true'] {
scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))
var(--jp-scrollbar-background-color);
}
/* for code nodes, use a transparent style of scrollbar. These selectors
* will match lower in the tree, and so will override the above */
[data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar,
[data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar {
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
}
/* tiny scrollbar */
.jp-scrollbar-tiny {
scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
scrollbar-width: thin;
}
/* tiny scrollbar */
.jp-scrollbar-tiny::-webkit-scrollbar,
.jp-scrollbar-tiny::-webkit-scrollbar-corner {
background-color: transparent;
height: 4px;
width: 4px;
}
.jp-scrollbar-tiny::-webkit-scrollbar-thumb {
background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
}
.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {
border-left: 0 solid transparent;
border-right: 0 solid transparent;
}
.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {
border-top: 0 solid transparent;
border-bottom: 0 solid transparent;
}
/*
* Lumino
*/
.lm-ScrollBar[data-orientation='horizontal'] {
min-height: 16px;
max-height: 16px;
min-width: 45px;
border-top: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='vertical'] {
min-width: 16px;
max-width: 16px;
min-height: 45px;
border-left: 1px solid #a0a0a0;
}
.lm-ScrollBar-button {
background-color: #f0f0f0;
background-position: center center;
min-height: 15px;
max-height: 15px;
min-width: 15px;
max-width: 15px;
}
.lm-ScrollBar-button:hover {
background-color: #dadada;
}
.lm-ScrollBar-button.lm-mod-active {
background-color: #cdcdcd;
}
.lm-ScrollBar-track {
background: #f0f0f0;
}
.lm-ScrollBar-thumb {
background: #cdcdcd;
}
.lm-ScrollBar-thumb:hover {
background: #bababa;
}
.lm-ScrollBar-thumb.lm-mod-active {
background: #a0a0a0;
}
.lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb {
height: 100%;
min-width: 15px;
border-left: 1px solid #a0a0a0;
border-right: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb {
width: 100%;
min-height: 15px;
border-top: 1px solid #a0a0a0;
border-bottom: 1px solid #a0a0a0;
}
.lm-ScrollBar[data-orientation='horizontal']
.lm-ScrollBar-button[data-action='decrement'] {
background-image: var(--jp-icon-caret-left);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='horizontal']
.lm-ScrollBar-button[data-action='increment'] {
background-image: var(--jp-icon-caret-right);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='vertical']
.lm-ScrollBar-button[data-action='decrement'] {
background-image: var(--jp-icon-caret-up);
background-size: 17px;
}
.lm-ScrollBar[data-orientation='vertical']
.lm-ScrollBar-button[data-action='increment'] {
background-image: var(--jp-icon-caret-down);
background-size: 17px;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-Widget {
box-sizing: border-box;
position: relative;
overflow: hidden;
}
.lm-Widget.lm-mod-hidden {
display: none !important;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.lm-AccordionPanel[data-orientation='horizontal'] > .lm-AccordionPanel-title {
/* Title is rotated for horizontal accordion panel using CSS */
display: block;
transform-origin: top left;
transform: rotate(-90deg) translate(-100%);
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-CommandPalette {
display: flex;
flex-direction: column;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-CommandPalette-search {
flex: 0 0 auto;
}
.lm-CommandPalette-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
min-height: 0;
overflow: auto;
list-style-type: none;
}
.lm-CommandPalette-header {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.lm-CommandPalette-item {
display: flex;
flex-direction: row;
}
.lm-CommandPalette-itemIcon {
flex: 0 0 auto;
}
.lm-CommandPalette-itemContent {
flex: 1 1 auto;
overflow: hidden;
}
.lm-CommandPalette-itemShortcut {
flex: 0 0 auto;
}
.lm-CommandPalette-itemLabel {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.lm-close-icon {
border: 1px solid transparent;
background-color: transparent;
position: absolute;
z-index: 1;
right: 3%;
top: 0;
bottom: 0;
margin: auto;
padding: 7px 0;
display: none;
vertical-align: middle;
outline: 0;
cursor: pointer;
}
.lm-close-icon:after {
content: 'X';
display: block;
width: 15px;
height: 15px;
text-align: center;
color: #000;
font-weight: normal;
font-size: 12px;
cursor: pointer;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-DockPanel {
z-index: 0;
}
.lm-DockPanel-widget {
z-index: 0;
}
.lm-DockPanel-tabBar {
z-index: 1;
}
.lm-DockPanel-handle {
z-index: 2;
}
.lm-DockPanel-handle.lm-mod-hidden {
display: none !important;
}
.lm-DockPanel-handle:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
.lm-DockPanel-handle[data-orientation='horizontal'] {
cursor: ew-resize;
}
.lm-DockPanel-handle[data-orientation='vertical'] {
cursor: ns-resize;
}
.lm-DockPanel-handle[data-orientation='horizontal']:after {
left: 50%;
min-width: 8px;
transform: translateX(-50%);
}
.lm-DockPanel-handle[data-orientation='vertical']:after {
top: 50%;
min-height: 8px;
transform: translateY(-50%);
}
.lm-DockPanel-overlay {
z-index: 3;
box-sizing: border-box;
pointer-events: none;
}
.lm-DockPanel-overlay.lm-mod-hidden {
display: none !important;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-Menu {
z-index: 10000;
position: absolute;
white-space: nowrap;
overflow-x: hidden;
overflow-y: auto;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-Menu-content {
margin: 0;
padding: 0;
display: table;
list-style-type: none;
}
.lm-Menu-item {
display: table-row;
}
.lm-Menu-item.lm-mod-hidden,
.lm-Menu-item.lm-mod-collapsed {
display: none !important;
}
.lm-Menu-itemIcon,
.lm-Menu-itemSubmenuIcon {
display: table-cell;
text-align: center;
}
.lm-Menu-itemLabel {
display: table-cell;
text-align: left;
}
.lm-Menu-itemShortcut {
display: table-cell;
text-align: right;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-MenuBar {
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-MenuBar-content {
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
list-style-type: none;
}
.lm-MenuBar-item {
box-sizing: border-box;
}
.lm-MenuBar-itemIcon,
.lm-MenuBar-itemLabel {
display: inline-block;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-ScrollBar {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-ScrollBar[data-orientation='horizontal'] {
flex-direction: row;
}
.lm-ScrollBar[data-orientation='vertical'] {
flex-direction: column;
}
.lm-ScrollBar-button {
box-sizing: border-box;
flex: 0 0 auto;
}
.lm-ScrollBar-track {
box-sizing: border-box;
position: relative;
overflow: hidden;
flex: 1 1 auto;
}
.lm-ScrollBar-thumb {
box-sizing: border-box;
position: absolute;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-SplitPanel-child {
z-index: 0;
}
.lm-SplitPanel-handle {
z-index: 1;
}
.lm-SplitPanel-handle.lm-mod-hidden {
display: none !important;
}
.lm-SplitPanel-handle:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle {
cursor: ew-resize;
}
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle {
cursor: ns-resize;
}
.lm-SplitPanel[data-orientation='horizontal'] > .lm-SplitPanel-handle:after {
left: 50%;
min-width: 8px;
transform: translateX(-50%);
}
.lm-SplitPanel[data-orientation='vertical'] > .lm-SplitPanel-handle:after {
top: 50%;
min-height: 8px;
transform: translateY(-50%);
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-TabBar {
display: flex;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lm-TabBar[data-orientation='horizontal'] {
flex-direction: row;
align-items: flex-end;
}
.lm-TabBar[data-orientation='vertical'] {
flex-direction: column;
align-items: flex-end;
}
.lm-TabBar-content {
margin: 0;
padding: 0;
display: flex;
flex: 1 1 auto;
list-style-type: none;
}
.lm-TabBar[data-orientation='horizontal'] > .lm-TabBar-content {
flex-direction: row;
}
.lm-TabBar[data-orientation='vertical'] > .lm-TabBar-content {
flex-direction: column;
}
.lm-TabBar-tab {
display: flex;
flex-direction: row;
box-sizing: border-box;
overflow: hidden;
touch-action: none; /* Disable native Drag/Drop */
}
.lm-TabBar-tabIcon,
.lm-TabBar-tabCloseIcon {
flex: 0 0 auto;
}
.lm-TabBar-tabLabel {
flex: 1 1 auto;
overflow: hidden;
white-space: nowrap;
}
.lm-TabBar-tabInput {
user-select: all;
width: 100%;
box-sizing: border-box;
}
.lm-TabBar-tab.lm-mod-hidden {
display: none !important;
}
.lm-TabBar-addButton.lm-mod-hidden {
display: none !important;
}
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
position: relative;
}
.lm-TabBar.lm-mod-dragging[data-orientation='horizontal'] .lm-TabBar-tab {
left: 0;
transition: left 150ms ease;
}
.lm-TabBar.lm-mod-dragging[data-orientation='vertical'] .lm-TabBar-tab {
top: 0;
transition: top 150ms ease;
}
.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging {
transition: none;
}
.lm-TabBar-tabLabel .lm-TabBar-tabInput {
user-select: all;
width: 100%;
box-sizing: border-box;
background: inherit;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-TabPanel-tabBar {
z-index: 1;
}
.lm-TabPanel-stackedPanel {
z-index: 0;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Collapse {
display: flex;
flex-direction: column;
align-items: stretch;
}
.jp-Collapse-header {
padding: 1px 12px;
background-color: var(--jp-layout-color1);
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
color: var(--jp-ui-font-color1);
cursor: pointer;
display: flex;
align-items: center;
font-size: var(--jp-ui-font-size0);
font-weight: 600;
text-transform: uppercase;
user-select: none;
}
.jp-Collapser-icon {
height: 16px;
}
.jp-Collapse-header-collapsed .jp-Collapser-icon {
transform: rotate(-90deg);
margin: auto 0;
}
.jp-Collapser-title {
line-height: 25px;
}
.jp-Collapse-contents {
padding: 0 12px;
background-color: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
overflow: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/* This file was auto-generated by ensureUiComponents() in @jupyterlab/buildutils */
/**
* (DEPRECATED) Support for consuming icons as CSS background images
*/
/* Icons urls */
:root {
--jp-icon-add-above: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5MikiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik00Ljc1IDQuOTMwNjZINi42MjVWNi44MDU2NkM2LjYyNSA3LjAxMTkxIDYuNzkzNzUgNy4xODA2NiA3IDcuMTgwNjZDNy4yMDYyNSA3LjE4MDY2IDcuMzc1IDcuMDExOTEgNy4zNzUgNi44MDU2NlY0LjkzMDY2SDkuMjVDOS40NTYyNSA0LjkzMDY2IDkuNjI1IDQuNzYxOTEgOS42MjUgNC41NTU2NkM5LjYyNSA0LjM0OTQxIDkuNDU2MjUgNC4xODA2NiA5LjI1IDQuMTgwNjZINy4zNzVWMi4zMDU2NkM3LjM3NSAyLjA5OTQxIDcuMjA2MjUgMS45MzA2NiA3IDEuOTMwNjZDNi43OTM3NSAxLjkzMDY2IDYuNjI1IDIuMDk5NDEgNi42MjUgMi4zMDU2NlY0LjE4MDY2SDQuNzVDNC41NDM3NSA0LjE4MDY2IDQuMzc1IDQuMzQ5NDEgNC4zNzUgNC41NTU2NkM0LjM3NSA0Ljc2MTkxIDQuNTQzNzUgNC45MzA2NiA0Ljc1IDQuOTMwNjZaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC43Ii8+CjwvZz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjUgOS41VjExLjVMMi41IDExLjVWOS41TDExLjUgOS41Wk0xMiA4QzEyLjU1MjMgOCAxMyA4LjQ0NzcyIDEzIDlWMTJDMTMgMTIuNTUyMyAxMi41NTIzIDEzIDEyIDEzTDIgMTNDMS40NDc3MiAxMyAxIDEyLjU1MjMgMSAxMlY5QzEgOC40NDc3MiAxLjQ0NzcxIDggMiA4TDEyIDhaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5MiI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDAgMCAxIDEwIDEuNTU1NjYpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==);
--jp-icon-add-below: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5OCkiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik05LjI1IDEwLjA2OTNMNy4zNzUgMTAuMDY5M0w3LjM3NSA4LjE5NDM0QzcuMzc1IDcuOTg4MDkgNy4yMDYyNSA3LjgxOTM0IDcgNy44MTkzNEM2Ljc5Mzc1IDcuODE5MzQgNi42MjUgNy45ODgwOSA2LjYyNSA4LjE5NDM0TDYuNjI1IDEwLjA2OTNMNC43NSAxMC4wNjkzQzQuNTQzNzUgMTAuMDY5MyA0LjM3NSAxMC4yMzgxIDQuMzc1IDEwLjQ0NDNDNC4zNzUgMTAuNjUwNiA0LjU0Mzc1IDEwLjgxOTMgNC43NSAxMC44MTkzTDYuNjI1IDEwLjgxOTNMNi42MjUgMTIuNjk0M0M2LjYyNSAxMi45MDA2IDYuNzkzNzUgMTMuMDY5MyA3IDEzLjA2OTNDNy4yMDYyNSAxMy4wNjkzIDcuMzc1IDEyLjkwMDYgNy4zNzUgMTIuNjk0M0w3LjM3NSAxMC44MTkzTDkuMjUgMTAuODE5M0M5LjQ1NjI1IDEwLjgxOTMgOS42MjUgMTAuNjUwNiA5LjYyNSAxMC40NDQzQzkuNjI1IDEwLjIzODEgOS40NTYyNSAxMC4wNjkzIDkuMjUgMTAuMDY5M1oiIGZpbGw9IiM2MTYxNjEiIHN0cm9rZT0iIzYxNjE2MSIgc3Ryb2tlLXdpZHRoPSIwLjciLz4KPC9nPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDUuNUwyLjUgMy41TDExLjUgMy41TDExLjUgNS41TDIuNSA1LjVaTTIgN0MxLjQ0NzcyIDcgMSA2LjU1MjI4IDEgNkwxIDNDMSAyLjQ0NzcyIDEuNDQ3NzIgMiAyIDJMMTIgMkMxMi41NTIzIDIgMTMgMi40NDc3MiAxMyAzTDEzIDZDMTMgNi41NTIyOSAxMi41NTIzIDcgMTIgN0wyIDdaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5OCI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KDEgMS43NDg0NmUtMDcgMS43NDg0NmUtMDcgLTEgNCAxMy40NDQzKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=);
--jp-icon-add: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-bell: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiPgogICA8cGF0aCBjbGFzcz0ianAtaWNvbjIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzMzMzMzIgogICAgICBkPSJtOCAwLjI5Yy0xLjQgMC0yLjcgMC43My0zLjYgMS44LTEuMiAxLjUtMS40IDMuNC0xLjUgNS4yLTAuMTggMi4yLTAuNDQgNC0yLjMgNS4zbDAuMjggMS4zaDVjMC4wMjYgMC42NiAwLjMyIDEuMSAwLjcxIDEuNSAwLjg0IDAuNjEgMiAwLjYxIDIuOCAwIDAuNTItMC40IDAuNi0xIDAuNzEtMS41aDVsMC4yOC0xLjNjLTEuOS0wLjk3LTIuMi0zLjMtMi4zLTUuMy0wLjEzLTEuOC0wLjI2LTMuNy0xLjUtNS4yLTAuODUtMS0yLjItMS44LTMuNi0xLjh6bTAgMS40YzAuODggMCAxLjkgMC41NSAyLjUgMS4zIDAuODggMS4xIDEuMSAyLjcgMS4yIDQuNCAwLjEzIDEuNyAwLjIzIDMuNiAxLjMgNS4yaC0xMGMxLjEtMS42IDEuMi0zLjQgMS4zLTUuMiAwLjEzLTEuNyAwLjMtMy4zIDEuMi00LjQgMC41OS0wLjcyIDEuNi0xLjMgMi41LTEuM3ptLTAuNzQgMTJoMS41Yy0wLjAwMTUgMC4yOCAwLjAxNSAwLjc5LTAuNzQgMC43OS0wLjczIDAuMDAxNi0wLjcyLTAuNTMtMC43NC0wLjc5eiIgLz4KPC9zdmc+Cg==);
--jp-icon-bug-dot: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuMTkgOEgyMFYxMEgxNy45MUMxNy45NiAxMC4zMyAxOCAxMC42NiAxOCAxMVYxMkgyMFYxNEgxOC41SDE4VjE0LjAyNzVDMTUuNzUgMTQuMjc2MiAxNCAxNi4xODM3IDE0IDE4LjVDMTQgMTkuMjA4IDE0LjE2MzUgMTkuODc3OSAxNC40NTQ5IDIwLjQ3MzlDMTMuNzA2MyAyMC44MTE3IDEyLjg3NTcgMjEgMTIgMjFDOS43OCAyMSA3Ljg1IDE5Ljc5IDYuODEgMThINFYxNkg2LjA5QzYuMDQgMTUuNjcgNiAxNS4zNCA2IDE1VjE0SDRWMTJINlYxMUM2IDEwLjY2IDYuMDQgMTAuMzMgNi4wOSAxMEg0VjhINi44MUM3LjI2IDcuMjIgNy44OCA2LjU1IDguNjIgNi4wNEw3IDQuNDFMOC40MSAzTDEwLjU5IDUuMTdDMTEuMDQgNS4wNiAxMS41MSA1IDEyIDVDMTIuNDkgNSAxMi45NiA1LjA2IDEzLjQyIDUuMTdMMTUuNTkgM0wxNyA0LjQxTDE1LjM3IDYuMDRDMTYuMTIgNi41NSAxNi43NCA3LjIyIDE3LjE5IDhaTTEwIDE2SDE0VjE0SDEwVjE2Wk0xMCAxMkgxNFYxMEgxMFYxMloiIGZpbGw9IiM2MTYxNjEiLz4KICAgICAgICA8cGF0aCBkPSJNMjIgMTguNUMyMiAyMC40MzMgMjAuNDMzIDIyIDE4LjUgMjJDMTYuNTY3IDIyIDE1IDIwLjQzMyAxNSAxOC41QzE1IDE2LjU2NyAxNi41NjcgMTUgMTguNSAxNUMyMC40MzMgMTUgMjIgMTYuNTY3IDIyIDE4LjVaIiBmaWxsPSIjNjE2MTYxIi8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-bug: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yMCA4aC0yLjgxYy0uNDUtLjc4LTEuMDctMS40NS0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-build: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE0LjkgMTcuNDVDMTYuMjUgMTcuNDUgMTcuMzUgMTYuMzUgMTcuMzUgMTVDMTcuMzUgMTMuNjUgMTYuMjUgMTIuNTUgMTQuOSAxMi41NUMxMy41NCAxMi41NSAxMi40NSAxMy42NSAxMi40NSAxNUMxMi40NSAxNi4zNSAxMy41NCAxNy40NSAxNC45IDE3LjQ1Wk0yMC4xIDE1LjY4TDIxLjU4IDE2Ljg0QzIxLjcxIDE2Ljk1IDIxLjc1IDE3LjEzIDIxLjY2IDE3LjI5TDIwLjI2IDE5LjcxQzIwLjE3IDE5Ljg2IDIwIDE5LjkyIDE5LjgzIDE5Ljg2TDE4LjA5IDE5LjE2QzE3LjczIDE5LjQ0IDE3LjMzIDE5LjY3IDE2LjkxIDE5Ljg1TDE2LjY0IDIxLjdDMTYuNjIgMjEuODcgMTYuNDcgMjIgMTYuMyAyMkgxMy41QzEzLjMyIDIyIDEzLjE4IDIxLjg3IDEzLjE1IDIxLjdMMTIuODkgMTkuODVDMTIuNDYgMTkuNjcgMTIuMDcgMTkuNDQgMTEuNzEgMTkuMTZMOS45NjAwMiAxOS44NkM5LjgxMDAyIDE5LjkyIDkuNjIwMDIgMTkuODYgOS41NDAwMiAxOS43MUw4LjE0MDAyIDE3LjI5QzguMDUwMDIgMTcuMTMgOC4wOTAwMiAxNi45NSA4LjIyMDAyIDE2Ljg0TDkuNzAwMDIgMTUuNjhMOS42NTAwMSAxNUw5LjcwMDAyIDE0LjMxTDguMjIwMDIgMTMuMTZDOC4wOTAwMiAxMy4wNSA4LjA1MDAyIDEyLjg2IDguMTQwMDIgMTIuNzFMOS41NDAwMiAxMC4yOUM5LjYyMDAyIDEwLjEzIDkuODEwMDIgMTAuMDcgOS45NjAwMiAxMC4xM0wxMS43MSAxMC44NEMxMi4wNyAxMC41NiAxMi40NiAxMC4zMiAxMi44OSAxMC4xNUwxMy4xNSA4LjI4OTk4QzEzLjE4IDguMTI5OTggMTMuMzIgNy45OTk5OCAxMy41IDcuOTk5OThIMTYuM0MxNi40NyA3Ljk5OTk4IDE2LjYyIDguMTI5OTggMTYuNjQgOC4yODk5OEwxNi45MSAxMC4xNUMxNy4zMyAxMC4zMiAxNy43MyAxMC41NiAxOC4wOSAxMC44NEwxOS44MyAxMC4xM0MyMCAxMC4wNyAyMC4xNyAxMC4xMyAyMC4yNiAxMC4yOUwyMS42NiAxMi43MUMyMS43NSAxMi44NiAyMS43MSAxMy4wNSAyMS41OCAxMy4xNkwyMC4xIDE0LjMxTDIwLjE1IDE1TDIwLjEgMTUuNjhaIi8+CiAgICA8cGF0aCBkPSJNNy4zMjk2NiA3LjQ0NDU0QzguMDgzMSA3LjAwOTU0IDguMzM5MzIgNi4wNTMzMiA3LjkwNDMyIDUuMjk5ODhDNy40NjkzMiA0LjU0NjQzIDYuNTA4MSA0LjI4MTU2IDUuNzU0NjYgNC43MTY1NkM1LjM5MTc2IDQuOTI2MDggNS4xMjY5NSA1LjI3MTE4IDUuMDE4NDkgNS42NzU5NEM0LjkxMDA0IDYuMDgwNzEgNC45NjY4MiA2LjUxMTk4IDUuMTc2MzQgNi44NzQ4OEM1LjYxMTM0IDcuNjI4MzIgNi41NzYyMiA3Ljg3OTU0IDcuMzI5NjYgNy40NDQ1NFpNOS42NTcxOCA0Ljc5NTkzTDEwLjg2NzIgNC45NTE3OUMxMC45NjI4IDQuOTc3NDEgMTEuMDQwMiA1LjA3MTMzIDExLjAzODIgNS4xODc5M0wxMS4wMzg4IDYuOTg4OTNDMTEuMDQ1NSA3LjEwMDU0IDEwLjk2MTYgNy4xOTUxOCAxMC44NTUgNy4yMTA1NEw5LjY2MDAxIDcuMzgwODNMOS4yMzkxNSA4LjEzMTg4TDkuNjY5NjEgOS4yNTc0NUM5LjcwNzI5IDkuMzYyNzEgOS42NjkzNCA5LjQ3Njk5IDkuNTc0MDggOS41MzE5OUw4LjAxNTIzIDEwLjQzMkM3LjkxMTMxIDEwLjQ5MiA3Ljc5MzM3IDEwLjQ2NzcgNy43MjEwNSAxMC4zODI0TDYuOTg3NDggOS40MzE4OEw2LjEwOTMxIDkuNDMwODNMNS4zNDcwNCAxMC4zOTA1QzUuMjg5MDkgMTAuNDcwMiA1LjE3MzgzIDEwLjQ5MDUgNS4wNzE4NyAxMC40MzM5TDMuNTEyNDUgOS41MzI5M0MzLjQxMDQ5IDkuNDc2MzMgMy4zNzY0NyA5LjM1NzQxIDMuNDEwNzUgOS4yNTY3OUwzLjg2MzQ3IDguMTQwOTNMMy42MTc0OSA3Ljc3NDg4TDMuNDIzNDcgNy4zNzg4M0wyLjIzMDc1IDcuMjEyOTdDMi4xMjY0NyA3LjE5MjM1IDIuMDQwNDkgNy4xMDM0MiAyLjA0MjQ1IDYuOTg2ODJMMi4wNDE4NyA1LjE4NTgyQzIuMDQzODMgNS4wNjkyMiAyLjExOTA5IDQuOTc5NTggMi4yMTcwNCA0Ljk2OTIyTDMuNDIwNjUgNC43OTM5M0wzLjg2NzQ5IDQuMDI3ODhMMy40MTEwNSAyLjkxNzMxQzMuMzczMzcgMi44MTIwNCAzLjQxMTMxIDIuNjk3NzYgMy41MTUyMyAyLjYzNzc2TDUuMDc0MDggMS43Mzc3NkM1LjE2OTM0IDEuNjgyNzYgNS4yODcyOSAxLjcwNzA0IDUuMzU5NjEgMS43OTIzMUw2LjExOTE1IDIuNzI3ODhMNi45ODAwMSAyLjczODkzTDcuNzI0OTYgMS43ODkyMkM3Ljc5MTU2IDEuNzA0NTggNy45MTU0OCAxLjY3OTIyIDguMDA4NzkgMS43NDA4Mkw5LjU2ODIxIDIuNjQxODJDOS42NzAxNyAyLjY5ODQyIDkuNzEyODUgMi44MTIzNCA5LjY4NzIzIDIuOTA3OTdMOS4yMTcxOCA0LjAzMzgzTDkuNDYzMTYgNC4zOTk4OEw5LjY1NzE4IDQuNzk1OTNaIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iOS45LDEzLjYgMy42LDcuNCA0LjQsNi42IDkuOSwxMi4yIDE1LjQsNi43IDE2LjEsNy40ICIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNS45TDksOS43bDMuOC0zLjhsMS4yLDEuMmwtNC45LDVsLTQuOS01TDUuMiw1Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-caret-down: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNy41TDksMTEuMmwzLjgtMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-caret-left: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik0xMC44LDEyLjhMNy4xLDlsMy44LTMuOGwwLDcuNkgxMC44eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-caret-right: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik03LjIsNS4yTDEwLjksOWwtMy44LDMuOFY1LjJINy4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-caret-up-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMTUuNCwxMy4zIDkuOSw3LjcgNC40LDEzLjIgMy42LDEyLjUgOS45LDYuMyAxNi4xLDEyLjYgIi8+Cgk8L2c+Cjwvc3ZnPgo=);
--jp-icon-caret-up: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik01LjIsMTAuNUw5LDYuOGwzLjgsMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-case-sensitive: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWFjY2VudDIiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTcuNiw4aDAuOWwzLjUsOGgtMS4xTDEwLDE0SDZsLTAuOSwySDRMNy42LDh6IE04LDkuMUw2LjQsMTNoMy4yTDgsOS4xeiIvPgogICAgPHBhdGggZD0iTTE2LjYsOS44Yy0wLjIsMC4xLTAuNCwwLjEtMC43LDAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4yYy0wLjEtMC4xLTAuMi0wLjQtMC4yLTAuNyBjLTAuMywwLjMtMC42LDAuNS0wLjksMC43Yy0wLjMsMC4xLTAuNywwLjItMS4xLDAuMmMtMC4zLDAtMC41LDAtMC43LTAuMWMtMC4yLTAuMS0wLjQtMC4yLTAuNi0wLjNjLTAuMi0wLjEtMC4zLTAuMy0wLjQtMC41IGMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjdjMC0wLjMsMC4xLTAuNiwwLjItMC44YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC41QzEyLDcsMTIuMiw2LjksMTIuNSw2LjhjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjIgYzAuMy0wLjEsMC41LTAuMSwwLjctMC4xYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRjMC0xLTEuMS0xLTEuMy0xIGMtMC40LDAtMS40LDAtMS40LDEuMmgtMC45YzAtMC40LDAuMS0wLjcsMC4yLTFjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjZjMC4yLTAuMiwwLjUtMC4zLDAuOC0wLjNDMTMuMyw0LDEzLjYsNCwxMy45LDQgYzAuMywwLDAuNSwwLDAuOCwwLjFjMC4zLDAsMC41LDAuMSwwLjcsMC4yYzAuMiwwLjEsMC40LDAuMywwLjUsMC41QzE2LDUsMTYsNS4yLDE2LDUuNnYyLjljMCwwLjIsMCwwLjQsMCwwLjUgYzAsMC4xLDAuMSwwLjIsMC4zLDAuMmMwLjEsMCwwLjIsMCwwLjMsMFY5Ljh6IE0xNS4yLDYuOWMtMS4yLDAuNi0zLjEsMC4yLTMuMSwxLjRjMCwxLjQsMy4xLDEsMy4xLTAuNVY2Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-circle-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-circle: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-clear: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8bWFzayBpZD0iZG9udXRIb2xlIj4KICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIC8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiBmaWxsPSJibGFjayIvPgogIDwvbWFzaz4KCiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxyZWN0IGhlaWdodD0iMTgiIHdpZHRoPSIyIiB4PSIxMSIgeT0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1LCAxMiwgMTIpIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgbWFzaz0idXJsKCNkb251dEhvbGUpIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-close: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1ub25lIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIGpwLWljb24zLWhvdmVyIiBmaWxsPSJub25lIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjExIi8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIGpwLWljb24tYWNjZW50Mi1ob3ZlciIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIvPgogIDwvZz4KCiAgPGcgY2xhc3M9ImpwLWljb24tbm9uZSBqcC1pY29uLWJ1c3kiIGZpbGw9Im5vbmUiPgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNyIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-code-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICA8cGF0aCBkPSJNNi41OSwzLjQxTDIsOEw2LjU5LDEyLjZMOCwxMS4xOEw0LjgyLDhMOCw0LjgyTDYuNTksMy40MU0xMi40MSwzLjQxTDExLDQuODJMMTQuMTgsOEwxMSwxMS4xOEwxMi40MSwxMi42TDE3LDhMMTIuNDEsMy40MU0yMS41OSwxMS41OUwxMy41LDE5LjY4TDkuODMsMTZMOC40MiwxNy40MUwxMy41LDIyLjVMMjMsMTNMMjEuNTksMTEuNTlaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-code: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+Cg==);
--jp-icon-collapse-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNNiAxM3YyaDh2LTJ6IiAvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1jb25zb2xlLWljb24tYmFja2dyb3VuZC1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtY29uc29sZS1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik0xMDUgMTI3LjNoNDB2MTIuOGgtNDB6TTUxLjEgNzdMNzQgOTkuOWwtMjMuMyAyMy4zIDEwLjUgMTAuNSAyMy4zLTIzLjNMOTUgOTkuOSA4NC41IDg5LjQgNjEuNiA2Ni41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-copy: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTExLjksMUgzLjJDMi40LDEsMS43LDEuNywxLjcsMi41djEwLjJoMS41VjIuNWg4LjdWMXogTTE0LjEsMy45aC04Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MTAuMmMwLDAuOCwwLjcsMS41LDEuNSwxLjVoOCBjMC44LDAsMS41LTAuNywxLjUtMS41VjUuNEMxNS41LDQuNiwxNC45LDMuOSwxNC4xLDMuOXogTTE0LjEsMTUuNWgtOFY1LjRoOFYxNS41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-copyright: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+CiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0xMS44OCw5LjE0YzEuMjgsMC4wNiwxLjYxLDEuMTUsMS42MywxLjY2aDEuNzljLTAuMDgtMS45OC0xLjQ5LTMuMTktMy40NS0zLjE5QzkuNjQsNy42MSw4LDksOCwxMi4xNCBjMCwxLjk0LDAuOTMsNC4yNCwzLjg0LDQuMjRjMi4yMiwwLDMuNDEtMS42NSwzLjQ0LTIuOTVoLTEuNzljLTAuMDMsMC41OS0wLjQ1LDEuMzgtMS42MywxLjQ0QzEwLjU1LDE0LjgzLDEwLDEzLjgxLDEwLDEyLjE0IEMxMCw5LjI1LDExLjI4LDkuMTYsMTEuODgsOS4xNHogTTEyLDJDNi40OCwyLDIsNi40OCwyLDEyczQuNDgsMTAsMTAsMTBzMTAtNC40OCwxMC0xMFMxNy41MiwyLDEyLDJ6IE0xMiwyMGMtNC40MSwwLTgtMy41OS04LTggczMuNTktOCw4LThzOCwzLjU5LDgsOFMxNi40MSwyMCwxMiwyMHoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-cut: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-delete: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjI2MjYyIiBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIgLz4KPC9zdmc+Cg==);
--jp-icon-download: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-duplicate: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNzk5OTggMC44NzVIOC44OTU4MkM5LjIwMDYxIDAuODc1IDkuNDQ5OTggMS4xMzkxNCA5LjQ0OTk4IDEuNDYxOThDOS40NDk5OCAxLjc4NDgyIDkuMjAwNjEgMi4wNDg5NiA4Ljg5NTgyIDIuMDQ4OTZIMy4zNTQxNUMzLjA0OTM2IDIuMDQ4OTYgMi43OTk5OCAyLjMxMzEgMi43OTk5OCAyLjYzNTk0VjkuNjc5NjlDMi43OTk5OCAxMC4wMDI1IDIuNTUwNjEgMTAuMjY2NyAyLjI0NTgyIDEwLjI2NjdDMS45NDEwMyAxMC4yNjY3IDEuNjkxNjUgMTAuMDAyNSAxLjY5MTY1IDkuNjc5NjlWMi4wNDg5NkMxLjY5MTY1IDEuNDAzMjggMi4xOTA0IDAuODc1IDIuNzk5OTggMC44NzVaTTUuMzY2NjUgMTEuOVY0LjU1SDExLjA4MzNWMTEuOUg1LjM2NjY1Wk00LjE0MTY1IDQuMTQxNjdDNC4xNDE2NSAzLjY5MDYzIDQuNTA3MjggMy4zMjUgNC45NTgzMiAzLjMyNUgxMS40OTE3QzExLjk0MjcgMy4zMjUgMTIuMzA4MyAzLjY5MDYzIDEyLjMwODMgNC4xNDE2N1YxMi4zMDgzQzEyLjMwODMgMTIuNzU5NCAxMS45NDI3IDEzLjEyNSAxMS40OTE3IDEzLjEyNUg0Ljk1ODMyQzQuNTA3MjggMTMuMTI1IDQuMTQxNjUgMTIuNzU5NCA0LjE0MTY1IDEyLjMwODNWNC4xNDE2N1oiIGZpbGw9IiM2MTYxNjEiLz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNOS40MzU3NCA4LjI2NTA3SDguMzY0MzFWOS4zMzY1QzguMzY0MzEgOS40NTQzNSA4LjI2Nzg4IDkuNTUwNzggOC4xNTAwMiA5LjU1MDc4QzguMDMyMTcgOS41NTA3OCA3LjkzNTc0IDkuNDU0MzUgNy45MzU3NCA5LjMzNjVWOC4yNjUwN0g2Ljg2NDMxQzYuNzQ2NDUgOC4yNjUwNyA2LjY1MDAyIDguMTY4NjQgNi42NTAwMiA4LjA1MDc4QzYuNjUwMDIgNy45MzI5MiA2Ljc0NjQ1IDcuODM2NSA2Ljg2NDMxIDcuODM2NUg3LjkzNTc0VjYuNzY1MDdDNy45MzU3NCA2LjY0NzIxIDguMDMyMTcgNi41NTA3OCA4LjE1MDAyIDYuNTUwNzhDOC4yNjc4OCA2LjU1MDc4IDguMzY0MzEgNi42NDcyMSA4LjM2NDMxIDYuNzY1MDdWNy44MzY1SDkuNDM1NzRDOS41NTM2IDcuODM2NSA5LjY1MDAyIDcuOTMyOTIgOS42NTAwMiA4LjA1MDc4QzkuNjUwMDIgOC4xNjg2NCA5LjU1MzYgOC4yNjUwNyA5LjQzNTc0IDguMjY1MDdaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC41Ii8+Cjwvc3ZnPgo=);
--jp-icon-edit: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-ellipses: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEyIiByPSIyIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-error: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIyIi8+PHBhdGggZD0iTTEwIDNoNHYxMmgtNHoiLz48L2c+CjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz4KPC9zdmc+Cg==);
--jp-icon-expand-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNMTEgMTBIOXYzSDZ2MmgzdjNoMnYtM2gzdi0yaC0zeiIgLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-extension: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-fast-forward: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTQgMThsOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-file-upload: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-file: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuMyA4LjJsLTUuNS01LjVjLS4zLS4zLS43LS41LTEuMi0uNUgzLjljLS44LjEtMS42LjktMS42IDEuOHYxNC4xYzAgLjkuNyAxLjYgMS42IDEuNmgxNC4yYy45IDAgMS42LS43IDEuNi0xLjZWOS40Yy4xLS41LS4xLS45LS40LTEuMnptLTUuOC0zLjNsMy40IDMuNmgtMy40VjQuOXptMy45IDEyLjdINC43Yy0uMSAwLS4yIDAtLjItLjJWNC43YzAtLjIuMS0uMy4yLS4zaDcuMnY0LjRzMCAuOC4zIDEuMWMuMy4zIDEuMS4zIDEuMS4zaDQuM3Y3LjJzLS4xLjItLjIuMnoiLz4KPC9zdmc+Cg==);
--jp-icon-filter-dot: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWRvdCIgZmlsbD0iI0ZGRiI+CiAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3IiByPSIzIj48L2NpcmNsZT4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-filter-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-filter: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-folder-favorite: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggY2xhc3M9ImpwLWljb24zIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxNjE2MSIgZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0yLjA2IDExTDE1IDE1LjI4IDEyLjA2IDE3bC43OC0zLjMzLTIuNTktMi4yNCAzLjQxLS4yOUwxNSA4bDEuMzQgMy4xNCAzLjQxLjI5LTIuNTkgMi4yNC43OCAzLjMzeiIvPgo8L3N2Zz4K);
--jp-icon-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6Ii8+Cjwvc3ZnPgo=);
--jp-icon-home: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ii8+Cjwvc3ZnPgo=);
--jp-icon-html5: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMDAiIGQ9Ik0xMDguNCAwaDIzdjIyLjhoMjEuMlYwaDIzdjY5aC0yM1Y0NmgtMjF2MjNoLTIzLjJNMjA2IDIzaC0yMC4zVjBoNjMuN3YyM0gyMjl2NDZoLTIzbTUzLjUtNjloMjQuMWwxNC44IDI0LjNMMzEzLjIgMGgyNC4xdjY5aC0yM1YzNC44bC0xNi4xIDI0LjgtMTYuMS0yNC44VjY5aC0yMi42bTg5LjItNjloMjN2NDYuMmgzMi42VjY5aC01NS42Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2U0NGQyNiIgZD0iTTEwNy42IDQ3MWwtMzMtMzcwLjRoMzYyLjhsLTMzIDM3MC4yTDI1NS43IDUxMiIvPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNmMTY1MjkiIGQ9Ik0yNTYgNDgwLjVWMTMxaDE0OC4zTDM3NiA0NDciLz4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNlYmViZWIiIGQ9Ik0xNDIgMTc2LjNoMTE0djQ1LjRoLTY0LjJsNC4yIDQ2LjVoNjB2NDUuM0gxNTQuNG0yIDIyLjhIMjAybDMuMiAzNi4zIDUwLjggMTMuNnY0Ny40bC05My4yLTI2Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIiBkPSJNMzY5LjYgMTc2LjNIMjU1Ljh2NDUuNGgxMDkuNm0tNC4xIDQ2LjVIMjU1Ljh2NDUuNGg1NmwtNS4zIDU5LTUwLjcgMTMuNnY0Ny4ybDkzLTI1LjgiLz4KPC9zdmc+Cg==);
--jp-icon-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1icmFuZDQganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNGRkYiIGQ9Ik0yLjIgMi4yaDE3LjV2MTcuNUgyLjJ6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzNGNTFCNSIgZD0iTTIuMiAyLjJ2MTcuNWgxNy41bC4xLTE3LjVIMi4yem0xMi4xIDIuMmMxLjIgMCAyLjIgMSAyLjIgMi4ycy0xIDIuMi0yLjIgMi4yLTIuMi0xLTIuMi0yLjIgMS0yLjIgMi4yLTIuMnpNNC40IDE3LjZsMy4zLTguOCAzLjMgNi42IDIuMi0zLjIgNC40IDUuNEg0LjR6Ii8+Cjwvc3ZnPgo=);
--jp-icon-info: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUwLjk3OCA1MC45NzgiPgoJPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KCQk8cGF0aCBkPSJNNDMuNTIsNy40NThDMzguNzExLDIuNjQ4LDMyLjMwNywwLDI1LjQ4OSwwQzE4LjY3LDAsMTIuMjY2LDIuNjQ4LDcuNDU4LDcuNDU4CgkJCWMtOS45NDMsOS45NDEtOS45NDMsMjYuMTE5LDAsMzYuMDYyYzQuODA5LDQuODA5LDExLjIxMiw3LjQ1NiwxOC4wMzEsNy40NThjMCwwLDAuMDAxLDAsMC4wMDIsMAoJCQljNi44MTYsMCwxMy4yMjEtMi42NDgsMTguMDI5LTcuNDU4YzQuODA5LTQuODA5LDcuNDU3LTExLjIxMiw3LjQ1Ny0xOC4wM0M1MC45NzcsMTguNjcsNDguMzI4LDEyLjI2Niw0My41Miw3LjQ1OHoKCQkJIE00Mi4xMDYsNDIuMTA1Yy00LjQzMiw0LjQzMS0xMC4zMzIsNi44NzItMTYuNjE1LDYuODcyaC0wLjAwMmMtNi4yODUtMC4wMDEtMTIuMTg3LTIuNDQxLTE2LjYxNy02Ljg3MgoJCQljLTkuMTYyLTkuMTYzLTkuMTYyLTI0LjA3MSwwLTMzLjIzM0MxMy4zMDMsNC40NCwxOS4yMDQsMiwyNS40ODksMmM2LjI4NCwwLDEyLjE4NiwyLjQ0LDE2LjYxNyw2Ljg3MgoJCQljNC40MzEsNC40MzEsNi44NzEsMTAuMzMyLDYuODcxLDE2LjYxN0M0OC45NzcsMzEuNzcyLDQ2LjUzNiwzNy42NzUsNDIuMTA2LDQyLjEwNXoiLz4KCQk8cGF0aCBkPSJNMjMuNTc4LDMyLjIxOGMtMC4wMjMtMS43MzQsMC4xNDMtMy4wNTksMC40OTYtMy45NzJjMC4zNTMtMC45MTMsMS4xMS0xLjk5NywyLjI3Mi0zLjI1MwoJCQljMC40NjgtMC41MzYsMC45MjMtMS4wNjIsMS4zNjctMS41NzVjMC42MjYtMC43NTMsMS4xMDQtMS40NzgsMS40MzYtMi4xNzVjMC4zMzEtMC43MDcsMC40OTUtMS41NDEsMC40OTUtMi41CgkJCWMwLTEuMDk2LTAuMjYtMi4wODgtMC43NzktMi45NzljLTAuNTY1LTAuODc5LTEuNTAxLTEuMzM2LTIuODA2LTEuMzY5Yy0xLjgwMiwwLjA1Ny0yLjk4NSwwLjY2Ny0zLjU1LDEuODMyCgkJCWMtMC4zMDEsMC41MzUtMC41MDMsMS4xNDEtMC42MDcsMS44MTRjLTAuMTM5LDAuNzA3LTAuMjA3LDEuNDMyLTAuMjA3LDIuMTc0aC0yLjkzN2MtMC4wOTEtMi4yMDgsMC40MDctNC4xMTQsMS40OTMtNS43MTkKCQkJYzEuMDYyLTEuNjQsMi44NTUtMi40ODEsNS4zNzgtMi41MjdjMi4xNiwwLjAyMywzLjg3NCwwLjYwOCw1LjE0MSwxLjc1OGMxLjI3OCwxLjE2LDEuOTI5LDIuNzY0LDEuOTUsNC44MTEKCQkJYzAsMS4xNDItMC4xMzcsMi4xMTEtMC40MSwyLjkxMWMtMC4zMDksMC44NDUtMC43MzEsMS41OTMtMS4yNjgsMi4yNDNjLTAuNDkyLDAuNjUtMS4wNjgsMS4zMTgtMS43MywyLjAwMgoJCQljLTAuNjUsMC42OTctMS4zMTMsMS40NzktMS45ODcsMi4zNDZjLTAuMjM5LDAuMzc3LTAuNDI5LDAuNzc3LTAuNTY1LDEuMTk5Yy0wLjE2LDAuOTU5LTAuMjE3LDEuOTUxLTAuMTcxLDIuOTc5CgkJCUMyNi41ODksMzIuMjE4LDIzLjU3OCwzMi4yMTgsMjMuNTc4LDMyLjIxOHogTTIzLjU3OCwzOC4yMnYtMy40ODRoMy4wNzZ2My40ODRIMjMuNTc4eiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaW5zcGVjdG9yLWljb24tY29sb3IganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K);
--jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtanNvbi1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0Y5QTgyNSI+CiAgICA8cGF0aCBkPSJNMjAuMiAxMS44Yy0xLjYgMC0xLjcuNS0xLjcgMSAwIC40LjEuOS4xIDEuMy4xLjUuMS45LjEgMS4zIDAgMS43LTEuNCAyLjMtMy41IDIuM2gtLjl2LTEuOWguNWMxLjEgMCAxLjQgMCAxLjQtLjggMC0uMyAwLS42LS4xLTEgMC0uNC0uMS0uOC0uMS0xLjIgMC0xLjMgMC0xLjggMS4zLTItMS4zLS4yLTEuMy0uNy0xLjMtMiAwLS40LjEtLjguMS0xLjIuMS0uNC4xLS43LjEtMSAwLS44LS40LS43LTEuNC0uOGgtLjVWNC4xaC45YzIuMiAwIDMuNS43IDMuNSAyLjMgMCAuNC0uMS45LS4xIDEuMy0uMS41LS4xLjktLjEgMS4zIDAgLjUuMiAxIDEuNyAxdjEuOHpNMS44IDEwLjFjMS42IDAgMS43LS41IDEuNy0xIDAtLjQtLjEtLjktLjEtMS4zLS4xLS41LS4xLS45LS4xLTEuMyAwLTEuNiAxLjQtMi4zIDMuNS0yLjNoLjl2MS45aC0uNWMtMSAwLTEuNCAwLTEuNC44IDAgLjMgMCAuNi4xIDEgMCAuMi4xLjYuMSAxIDAgMS4zIDAgMS44LTEuMyAyQzYgMTEuMiA2IDExLjcgNiAxM2MwIC40LS4xLjgtLjEgMS4yLS4xLjMtLjEuNy0uMSAxIDAgLjguMy44IDEuNC44aC41djEuOWgtLjljLTIuMSAwLTMuNS0uNi0zLjUtMi4zIDAtLjQuMS0uOS4xLTEuMy4xLS41LjEtLjkuMS0xLjMgMC0uNS0uMi0xLTEuNy0xdi0xLjl6Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzLjgiIHI9IjIuMSIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSI4LjIiIHI9IjIuMSIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-julia: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDMyNSAzMDAiPgogIDxnIGNsYXNzPSJqcC1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjY2IzYzMzIj4KICAgIDxwYXRoIGQ9Ik0gMTUwLjg5ODQzOCAyMjUgQyAxNTAuODk4NDM4IDI2Ni40MjE4NzUgMTE3LjMyMDMxMiAzMDAgNzUuODk4NDM4IDMwMCBDIDM0LjQ3NjU2MiAzMDAgMC44OTg0MzggMjY2LjQyMTg3NSAwLjg5ODQzOCAyMjUgQyAwLjg5ODQzOCAxODMuNTc4MTI1IDM0LjQ3NjU2MiAxNTAgNzUuODk4NDM4IDE1MCBDIDExNy4zMjAzMTIgMTUwIDE1MC44OTg0MzggMTgzLjU3ODEyNSAxNTAuODk4NDM4IDIyNSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzM4OTgyNiI+CiAgICA8cGF0aCBkPSJNIDIzNy41IDc1IEMgMjM3LjUgMTE2LjQyMTg3NSAyMDMuOTIxODc1IDE1MCAxNjIuNSAxNTAgQyAxMjEuMDc4MTI1IDE1MCA4Ny41IDExNi40MjE4NzUgODcuNSA3NSBDIDg3LjUgMzMuNTc4MTI1IDEyMS4wNzgxMjUgMCAxNjIuNSAwIEMgMjAzLjkyMTg3NSAwIDIzNy41IDMzLjU3ODEyNSAyMzcuNSA3NSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzk1NThiMiI+CiAgICA8cGF0aCBkPSJNIDMyNC4xMDE1NjIgMjI1IEMgMzI0LjEwMTU2MiAyNjYuNDIxODc1IDI5MC41MjM0MzggMzAwIDI0OS4xMDE1NjIgMzAwIEMgMjA3LjY3OTY4OCAzMDAgMTc0LjEwMTU2MiAyNjYuNDIxODc1IDE3NC4xMDE1NjIgMjI1IEMgMTc0LjEwMTU2MiAxODMuNTc4MTI1IDIwNy42Nzk2ODggMTUwIDI0OS4xMDE1NjIgMTUwIEMgMjkwLjUyMzQzOCAxNTAgMzI0LjEwMTU2MiAxODMuNTc4MTI1IDMyNC4xMDE1NjIgMjI1Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-jupyter-favicon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUyIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDE1MiAxNjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgPGcgY2xhc3M9ImpwLWp1cHl0ZXItaWNvbi1jb2xvciIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA3ODk0NywgMTEwLjU4MjkyNykiIGQ9Ik03NS45NDIyODQyLDI5LjU4MDQ1NjEgQzQzLjMwMjM5NDcsMjkuNTgwNDU2MSAxNC43OTY3ODMyLDE3LjY1MzQ2MzQgMCwwIEM1LjUxMDgzMjExLDE1Ljg0MDY4MjkgMTUuNzgxNTM4OSwyOS41NjY3NzMyIDI5LjM5MDQ5NDcsMzkuMjc4NDE3MSBDNDIuOTk5Nyw0OC45ODk4NTM3IDU5LjI3MzcsNTQuMjA2NzgwNSA3NS45NjA1Nzg5LDU0LjIwNjc4MDUgQzkyLjY0NzQ1NzksNTQuMjA2NzgwNSAxMDguOTIxNDU4LDQ4Ljk4OTg1MzcgMTIyLjUzMDY2MywzOS4yNzg0MTcxIEMxMzYuMTM5NDUzLDI5LjU2Njc3MzIgMTQ2LjQxMDI4NCwxNS44NDA2ODI5IDE1MS45MjExNTgsMCBDMTM3LjA4Nzg2OCwxNy42NTM0NjM0IDEwOC41ODI1ODksMjkuNTgwNDU2MSA3NS45NDIyODQyLDI5LjU4MDQ1NjEgTDc1Ljk0MjI4NDIsMjkuNTgwNDU2MSBaIiAvPgogICAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMzczNjgsIDAuNzA0ODc4KSIgZD0iTTc1Ljk3ODQ1NzksMjQuNjI2NDA3MyBDMTA4LjYxODc2MywyNC42MjY0MDczIDEzNy4xMjQ0NTgsMzYuNTUzNDQxNSAxNTEuOTIxMTU4LDU0LjIwNjc4MDUgQzE0Ni40MTAyODQsMzguMzY2MjIyIDEzNi4xMzk0NTMsMjQuNjQwMTMxNyAxMjIuNTMwNjYzLDE0LjkyODQ4NzggQzEwOC45MjE0NTgsNS4yMTY4NDM5IDkyLjY0NzQ1NzksMCA3NS45NjA1Nzg5LDAgQzU5LjI3MzcsMCA0Mi45OTk3LDUuMjE2ODQzOSAyOS4zOTA0OTQ3LDE0LjkyODQ4NzggQzE1Ljc4MTUzODksMjQuNjQwMTMxNyA1LjUxMDgzMjExLDM4LjM2NjIyMiAwLDU0LjIwNjc4MDUgQzE0LjgzMzA4MTYsMzYuNTg5OTI5MyA0My4zMzg1Njg0LDI0LjYyNjQwNzMgNzUuOTc4NDU3OSwyNC42MjY0MDczIEw3NS45Nzg0NTc5LDI0LjYyNjQwNzMgWiIgLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-jupyter: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iNTEiIHZpZXdCb3g9IjAgMCAzOSA1MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYzOCAtMjI4MSkiPgogICAgIDxnIGNsYXNzPSJqcC1qdXB5dGVyLWljb24tY29sb3IiIGZpbGw9IiNGMzc3MjYiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5Ljc0IDIzMTEuOTgpIiBkPSJNIDE4LjI2NDYgNy4xMzQxMUMgMTAuNDE0NSA3LjEzNDExIDMuNTU4NzIgNC4yNTc2IDAgMEMgMS4zMjUzOSAzLjgyMDQgMy43OTU1NiA3LjEzMDgxIDcuMDY4NiA5LjQ3MzAzQyAxMC4zNDE3IDExLjgxNTIgMTQuMjU1NyAxMy4wNzM0IDE4LjI2OSAxMy4wNzM0QyAyMi4yODIzIDEzLjA3MzQgMjYuMTk2MyAxMS44MTUyIDI5LjQ2OTQgOS40NzMwM0MgMzIuNzQyNCA3LjEzMDgxIDM1LjIxMjYgMy44MjA0IDM2LjUzOCAwQyAzMi45NzA1IDQuMjU3NiAyNi4xMTQ4IDcuMTM0MTEgMTguMjY0NiA3LjEzNDExWiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5LjczIDIyODUuNDgpIiBkPSJNIDE4LjI3MzMgNS45MzkzMUMgMjYuMTIzNSA1LjkzOTMxIDMyLjk3OTMgOC44MTU4MyAzNi41MzggMTMuMDczNEMgMzUuMjEyNiA5LjI1MzAzIDMyLjc0MjQgNS45NDI2MiAyOS40Njk0IDMuNjAwNEMgMjYuMTk2MyAxLjI1ODE4IDIyLjI4MjMgMCAxOC4yNjkgMEMgMTQuMjU1NyAwIDEwLjM0MTcgMS4yNTgxOCA3LjA2ODYgMy42MDA0QyAzLjc5NTU2IDUuOTQyNjIgMS4zMjUzOSA5LjI1MzAzIDAgMTMuMDczNEMgMy41Njc0NSA4LjgyNDYzIDEwLjQyMzIgNS45MzkzMSAxOC4yNzMzIDUuOTM5MzFaIi8+CiAgICA8L2c+CiAgICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjY5LjMgMjI4MS4zMSkiIGQ9Ik0gNS44OTM1MyAyLjg0NEMgNS45MTg4OSAzLjQzMTY1IDUuNzcwODUgNC4wMTM2NyA1LjQ2ODE1IDQuNTE2NDVDIDUuMTY1NDUgNS4wMTkyMiA0LjcyMTY4IDUuNDIwMTUgNC4xOTI5OSA1LjY2ODUxQyAzLjY2NDMgNS45MTY4OCAzLjA3NDQ0IDYuMDAxNTEgMi40OTgwNSA1LjkxMTcxQyAxLjkyMTY2IDUuODIxOSAxLjM4NDYzIDUuNTYxNyAwLjk1NDg5OCA1LjE2NDAxQyAwLjUyNTE3IDQuNzY2MzMgMC4yMjIwNTYgNC4yNDkwMyAwLjA4MzkwMzcgMy42Nzc1N0MgLTAuMDU0MjQ4MyAzLjEwNjExIC0wLjAyMTIzIDIuNTA2MTcgMC4xNzg3ODEgMS45NTM2NEMgMC4zNzg3OTMgMS40MDExIDAuNzM2ODA5IDAuOTIwODE3IDEuMjA3NTQgMC41NzM1MzhDIDEuNjc4MjYgMC4yMjYyNTkgMi4yNDA1NSAwLjAyNzU5MTkgMi44MjMyNiAwLjAwMjY3MjI5QyAzLjYwMzg5IC0wLjAzMDcxMTUgNC4zNjU3MyAwLjI0OTc4OSA0Ljk0MTQyIDAuNzgyNTUxQyA1LjUxNzExIDEuMzE1MzEgNS44NTk1NiAyLjA1Njc2IDUuODkzNTMgMi44NDRaIi8+CiAgICAgIDxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MzkuOCAyMzIzLjgxKSIgZD0iTSA3LjQyNzg5IDMuNTgzMzhDIDcuNDYwMDggNC4zMjQzIDcuMjczNTUgNS4wNTgxOSA2Ljg5MTkzIDUuNjkyMTNDIDYuNTEwMzEgNi4zMjYwNyA1Ljk1MDc1IDYuODMxNTYgNS4yODQxMSA3LjE0NDZDIDQuNjE3NDcgNy40NTc2MyAzLjg3MzcxIDcuNTY0MTQgMy4xNDcwMiA3LjQ1MDYzQyAyLjQyMDMyIDcuMzM3MTIgMS43NDMzNiA3LjAwODcgMS4yMDE4NCA2LjUwNjk1QyAwLjY2MDMyOCA2LjAwNTIgMC4yNzg2MSA1LjM1MjY4IDAuMTA1MDE3IDQuNjMyMDJDIC0wLjA2ODU3NTcgMy45MTEzNSAtMC4wMjYyMzYxIDMuMTU0OTQgMC4yMjY2NzUgMi40NTg1NkMgMC40Nzk1ODcgMS43NjIxNyAwLjkzMTY5NyAxLjE1NzEzIDEuNTI1NzYgMC43MjAwMzNDIDIuMTE5ODMgMC4yODI5MzUgMi44MjkxNCAwLjAzMzQzOTUgMy41NjM4OSAwLjAwMzEzMzQ0QyA0LjU0NjY3IC0wLjAzNzQwMzMgNS41MDUyOSAwLjMxNjcwNiA2LjIyOTYxIDAuOTg3ODM1QyA2Ljk1MzkzIDEuNjU4OTYgNy4zODQ4NCAyLjU5MjM1IDcuNDI3ODkgMy41ODMzOEwgNy40Mjc4OSAzLjU4MzM4WiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM4LjM2IDIyODYuMDYpIiBkPSJNIDIuMjc0NzEgNC4zOTYyOUMgMS44NDM2MyA0LjQxNTA4IDEuNDE2NzEgNC4zMDQ0NSAxLjA0Nzk5IDQuMDc4NDNDIDAuNjc5MjY4IDMuODUyNCAwLjM4NTMyOCAzLjUyMTE0IDAuMjAzMzcxIDMuMTI2NTZDIDAuMDIxNDEzNiAyLjczMTk4IC0wLjA0MDM3OTggMi4yOTE4MyAwLjAyNTgxMTYgMS44NjE4MUMgMC4wOTIwMDMxIDEuNDMxOCAwLjI4MzIwNCAxLjAzMTI2IDAuNTc1MjEzIDAuNzEwODgzQyAwLjg2NzIyMiAwLjM5MDUxIDEuMjQ2OTEgMC4xNjQ3MDggMS42NjYyMiAwLjA2MjA1OTJDIDIuMDg1NTMgLTAuMDQwNTg5NyAyLjUyNTYxIC0wLjAxNTQ3MTQgMi45MzA3NiAwLjEzNDIzNUMgMy4zMzU5MSAwLjI4Mzk0MSAzLjY4NzkyIDAuNTUxNTA1IDMuOTQyMjIgMC45MDMwNkMgNC4xOTY1MiAxLjI1NDYyIDQuMzQxNjkgMS42NzQzNiA0LjM1OTM1IDIuMTA5MTZDIDQuMzgyOTkgMi42OTEwNyA0LjE3Njc4IDMuMjU4NjkgMy43ODU5NyAzLjY4NzQ2QyAzLjM5NTE2IDQuMTE2MjQgMi44NTE2NiA0LjM3MTE2IDIuMjc0NzEgNC4zOTYyOUwgMi4yNzQ3MSA0LjM5NjI5WiIvPgogICAgPC9nPgogIDwvZz4+Cjwvc3ZnPgo=);
--jp-icon-jupyterlab-wordmark: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIHZpZXdCb3g9IjAgMCAxODYwLjggNDc1Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0RTRFNEUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4MC4xMzY0MDEsIDY0LjI3MTQ5MykiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDU4Ljg3NTU2NikiPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA4NzYwMywgMC4xNDAyOTQpIj4KICAgICAgICA8cGF0aCBkPSJNLTQyNi45LDE2OS44YzAsNDguNy0zLjcsNjQuNy0xMy42LDc2LjRjLTEwLjgsMTAtMjUsMTUuNS0zOS43LDE1LjVsMy43LDI5IGMyMi44LDAuMyw0NC44LTcuOSw2MS45LTIzLjFjMTcuOC0xOC41LDI0LTQ0LjEsMjQtODMuM1YwSC00Mjd2MTcwLjFMLTQyNi45LDE2OS44TC00MjYuOSwxNjkuOHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU1LjA0NTI5NiwgNTYuODM3MTA0KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNTYyNDUzLCAxLjc5OTg0MikiPgogICAgICAgIDxwYXRoIGQ9Ik0tMzEyLDE0OGMwLDIxLDAsMzkuNSwxLjcsNTUuNGgtMzEuOGwtMi4xLTMzLjNoLTAuOGMtNi43LDExLjYtMTYuNCwyMS4zLTI4LDI3LjkgYy0xMS42LDYuNi0yNC44LDEwLTM4LjIsOS44Yy0zMS40LDAtNjktMTcuNy02OS04OVYwaDM2LjR2MTEyLjdjMCwzOC43LDExLjYsNjQuNyw0NC42LDY0LjdjMTAuMy0wLjIsMjAuNC0zLjUsMjguOS05LjQgYzguNS01LjksMTUuMS0xNC4zLDE4LjktMjMuOWMyLjItNi4xLDMuMy0xMi41LDMuMy0xOC45VjAuMmgzNi40VjE0OEgtMzEyTC0zMTIsMTQ4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTAuMDEzMzIyLCA1My40Nzk2MzgpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS43MDY0NTgsIDAuMjMxNDI1KSI+CiAgICAgICAgPHBhdGggZD0iTS00NzguNiw3MS40YzAtMjYtMC44LTQ3LTEuNy02Ni43aDMyLjdsMS43LDM0LjhoMC44YzcuMS0xMi41LDE3LjUtMjIuOCwzMC4xLTI5LjcgYzEyLjUtNywyNi43LTEwLjMsNDEtOS44YzQ4LjMsMCw4NC43LDQxLjcsODQuNywxMDMuM2MwLDczLjEtNDMuNywxMDkuMi05MSwxMDkuMmMtMTIuMSwwLjUtMjQuMi0yLjItMzUtNy44IGMtMTAuOC01LjYtMTkuOS0xMy45LTI2LjYtMjQuMmgtMC44VjI5MWgtMzZ2LTIyMEwtNDc4LjYsNzEuNEwtNDc4LjYsNzEuNHogTS00NDIuNiwxMjUuNmMwLjEsNS4xLDAuNiwxMC4xLDEuNywxNS4xIGMzLDEyLjMsOS45LDIzLjMsMTkuOCwzMS4xYzkuOSw3LjgsMjIuMSwxMi4xLDM0LjcsMTIuMWMzOC41LDAsNjAuNy0zMS45LDYwLjctNzguNWMwLTQwLjctMjEuMS03NS42LTU5LjUtNzUuNiBjLTEyLjksMC40LTI1LjMsNS4xLTM1LjMsMTMuNGMtOS45LDguMy0xNi45LDE5LjctMTkuNiwzMi40Yy0xLjUsNC45LTIuMywxMC0yLjUsMTUuMVYxMjUuNkwtNDQyLjYsMTI1LjZMLTQ0Mi42LDEyNS42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MDYuNzQwNzI2LCA1Ni44MzcxMDQpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC43NTEyMjYsIDEuOTg5Mjk5KSI+CiAgICAgICAgPHBhdGggZD0iTS00NDAuOCwwbDQzLjcsMTIwLjFjNC41LDEzLjQsOS41LDI5LjQsMTIuOCw0MS43aDAuOGMzLjctMTIuMiw3LjktMjcuNywxMi44LTQyLjQgbDM5LjctMTE5LjJoMzguNUwtMzQ2LjksMTQ1Yy0yNiw2OS43LTQzLjcsMTA1LjQtNjguNiwxMjcuMmMtMTIuNSwxMS43LTI3LjksMjAtNDQuNiwyMy45bC05LjEtMzEuMSBjMTEuNy0zLjksMjIuNS0xMC4xLDMxLjgtMTguMWMxMy4yLTExLjEsMjMuNy0yNS4yLDMwLjYtNDEuMmMxLjUtMi44LDIuNS01LjcsMi45LTguOGMtMC4zLTMuMy0xLjItNi42LTIuNS05LjdMLTQ4MC4yLDAuMSBoMzkuN0wtNDQwLjgsMEwtNDQwLjgsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODIyLjc0ODEwNCwgMC4wMDAwMDApIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40NjQwNTAsIDAuMzc4OTE0KSI+CiAgICAgICAgPHBhdGggZD0iTS00MTMuNywwdjU4LjNoNTJ2MjguMmgtNTJWMTk2YzAsMjUsNywzOS41LDI3LjMsMzkuNWM3LjEsMC4xLDE0LjItMC43LDIxLjEtMi41IGwxLjcsMjcuN2MtMTAuMywzLjctMjEuMyw1LjQtMzIuMiw1Yy03LjMsMC40LTE0LjYtMC43LTIxLjMtMy40Yy02LjgtMi43LTEyLjktNi44LTE3LjktMTIuMWMtMTAuMy0xMC45LTE0LjEtMjktMTQuMS01Mi45IFY4Ni41aC0zMVY1OC4zaDMxVjkuNkwtNDEzLjcsMEwtNDEzLjcsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTc0LjQzMzI4NiwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuOTkwMDM0LCAwLjYxMDMzOSkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDQ1LjgsMTEzYzAuOCw1MCwzMi4yLDcwLjYsNjguNiw3MC42YzE5LDAuNiwzNy45LTMsNTUuMy0xMC41bDYuMiwyNi40IGMtMjAuOSw4LjktNDMuNSwxMy4xLTY2LjIsMTIuNmMtNjEuNSwwLTk4LjMtNDEuMi05OC4zLTEwMi41Qy00ODAuMiw0OC4yLTQ0NC43LDAtMzg2LjUsMGM2NS4yLDAsODIuNyw1OC4zLDgyLjcsOTUuNyBjLTAuMSw1LjgtMC41LDExLjUtMS4yLDE3LjJoLTE0MC42SC00NDUuOEwtNDQ1LjgsMTEzeiBNLTMzOS4yLDg2LjZjMC40LTIzLjUtOS41LTYwLjEtNTAuNC02MC4xIGMtMzYuOCwwLTUyLjgsMzQuNC01NS43LDYwLjFILTMzOS4yTC0zMzkuMiw4Ni42TC0zMzkuMiw4Ni42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAxLjk2MTA1OCwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMTc5NjQwLCAwLjcwNTA2OCkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDc4LjYsNjhjMC0yMy45LTAuNC00NC41LTEuNy02My40aDMxLjhsMS4yLDM5LjloMS43YzkuMS0yNy4zLDMxLTQ0LjUsNTUuMy00NC41IGMzLjUtMC4xLDcsMC40LDEwLjMsMS4ydjM0LjhjLTQuMS0wLjktOC4yLTEuMy0xMi40LTEuMmMtMjUuNiwwLTQzLjcsMTkuNy00OC43LDQ3LjRjLTEsNS43LTEuNiwxMS41LTEuNywxNy4ydjEwOC4zaC0zNlY2OCBMLTQ3OC42LDY4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCBkPSJNMTM1Mi4zLDMyNi4yaDM3VjI4aC0zN1YzMjYuMnogTTE2MDQuOCwzMjYuMmMtMi41LTEzLjktMy40LTMxLjEtMy40LTQ4Ljd2LTc2IGMwLTQwLjctMTUuMS04My4xLTc3LjMtODMuMWMtMjUuNiwwLTUwLDcuMS02Ni44LDE4LjFsOC40LDI0LjRjMTQuMy05LjIsMzQtMTUuMSw1My0xNS4xYzQxLjYsMCw0Ni4yLDMwLjIsNDYuMiw0N3Y0LjIgYy03OC42LTAuNC0xMjIuMywyNi41LTEyMi4zLDc1LjZjMCwyOS40LDIxLDU4LjQsNjIuMiw1OC40YzI5LDAsNTAuOS0xNC4zLDYyLjItMzAuMmgxLjNsMi45LDI1LjZIMTYwNC44eiBNMTU2NS43LDI1Ny43IGMwLDMuOC0wLjgsOC0yLjEsMTEuOGMtNS45LDE3LjItMjIuNywzNC00OS4yLDM0Yy0xOC45LDAtMzQuOS0xMS4zLTM0LjktMzUuM2MwLTM5LjUsNDUuOC00Ni42LDg2LjItNDUuOFYyNTcuN3ogTTE2OTguNSwzMjYuMiBsMS43LTMzLjZoMS4zYzE1LjEsMjYuOSwzOC43LDM4LjIsNjguMSwzOC4yYzQ1LjQsMCw5MS4yLTM2LjEsOTEuMi0xMDguOGMwLjQtNjEuNy0zNS4zLTEwMy43LTg1LjctMTAzLjcgYy0zMi44LDAtNTYuMywxNC43LTY5LjMsMzcuNGgtMC44VjI4aC0zNi42djI0NS43YzAsMTguMS0wLjgsMzguNi0xLjcsNTIuNUgxNjk4LjV6IE0xNzA0LjgsMjA4LjJjMC01LjksMS4zLTEwLjksMi4xLTE1LjEgYzcuNi0yOC4xLDMxLjEtNDUuNCw1Ni4zLTQ1LjRjMzkuNSwwLDYwLjUsMzQuOSw2MC41LDc1LjZjMCw0Ni42LTIzLjEsNzguMS02MS44LDc4LjFjLTI2LjksMC00OC4zLTE3LjYtNTUuNS00My4zIGMtMC44LTQuMi0xLjctOC44LTEuNy0xMy40VjIwOC4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzYxNjE2MSIgZD0iTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEweiIvPgo8L3N2Zz4K);
--jp-icon-keyboard: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTdjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOSAzaDJ2MmgtMlY4em0wIDNoMnYyaC0ydi0yek04IDhoMnYySDhWOHptMCAzaDJ2Mkg4di0yem0tMSAySDV2LTJoMnYyem0wLTNINVY4aDJ2MnptOSA3SDh2LTJoOHYyem0wLTRoLTJ2LTJoMnYyem0wLTNoLTJWOGgydjJ6bTMgM2gtMnYtMmgydjJ6bTAtM2gtMlY4aDJ2MnoiLz4KPC9zdmc+Cg==);
--jp-icon-launch: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSIzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yNiwyOEg2YTIuMDAyNywyLjAwMjcsMCwwLDEtMi0yVjZBMi4wMDI3LDIuMDAyNywwLDAsMSw2LDRIMTZWNkg2VjI2SDI2VjE2aDJWMjZBMi4wMDI3LDIuMDAyNywwLDAsMSwyNiwyOFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMjAgMiAyMCA0IDI2LjU4NiA0IDE4IDEyLjU4NiAxOS40MTQgMTQgMjggNS40MTQgMjggMTIgMzAgMTIgMzAgMiAyMCAyIi8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-launcher: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+Cg==);
--jp-icon-line-form: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNS44OCA0LjEyTDEzLjc2IDEybC03Ljg4IDcuODhMOCAyMmwxMC0xMEw4IDJ6Ii8+Cjwvc3ZnPgo=);
--jp-icon-link: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3eiIvPgo8L3N2Zz4K);
--jp-icon-markdown: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjN0IxRkEyIiBkPSJNNSAxNC45aDEybC02LjEgNnptOS40LTYuOGMwLTEuMy0uMS0yLjktLjEtNC41LS40IDEuNC0uOSAyLjktMS4zIDQuM2wtMS4zIDQuM2gtMkw4LjUgNy45Yy0uNC0xLjMtLjctMi45LTEtNC4zLS4xIDEuNi0uMSAzLjItLjIgNC42TDcgMTIuNEg0LjhsLjctMTFoMy4zTDEwIDVjLjQgMS4yLjcgMi43IDEgMy45LjMtMS4yLjctMi42IDEtMy45bDEuMi0zLjdoMy4zbC42IDExaC0yLjRsLS4zLTQuMnoiLz4KPC9zdmc+Cg==);
--jp-icon-move-down: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMTIuNDcxIDcuNTI4OTlDMTIuNzYzMiA3LjIzNjg0IDEyLjc2MzIgNi43NjMxNiAxMi40NzEgNi40NzEwMVY2LjQ3MTAxQzEyLjE3OSA2LjE3OTA1IDExLjcwNTcgNi4xNzg4NCAxMS40MTM1IDYuNDcwNTRMNy43NSAxMC4xMjc1VjEuNzVDNy43NSAxLjMzNTc5IDcuNDE0MjEgMSA3IDFWMUM2LjU4NTc5IDEgNi4yNSAxLjMzNTc5IDYuMjUgMS43NVYxMC4xMjc1TDIuNTk3MjYgNi40NjgyMkMyLjMwMzM4IDYuMTczODEgMS44MjY0MSA2LjE3MzU5IDEuNTMyMjYgNi40Njc3NFY2LjQ2Nzc0QzEuMjM4MyA2Ljc2MTcgMS4yMzgzIDcuMjM4MyAxLjUzMjI2IDcuNTMyMjZMNi4yOTI4OSAxMi4yOTI5QzYuNjgzNDIgMTIuNjgzNCA3LjMxNjU4IDEyLjY4MzQgNy43MDcxMSAxMi4yOTI5TDEyLjQ3MSA3LjUyODk5WiIgZmlsbD0iIzYxNjE2MSIvPgo8L3N2Zz4K);
--jp-icon-move-up: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMS41Mjg5OSA2LjQ3MTAxQzEuMjM2ODQgNi43NjMxNiAxLjIzNjg0IDcuMjM2ODQgMS41Mjg5OSA3LjUyODk5VjcuNTI4OTlDMS44MjA5NSA3LjgyMDk1IDIuMjk0MjYgNy44MjExNiAyLjU4NjQ5IDcuNTI5NDZMNi4yNSAzLjg3MjVWMTIuMjVDNi4yNSAxMi42NjQyIDYuNTg1NzkgMTMgNyAxM1YxM0M3LjQxNDIxIDEzIDcuNzUgMTIuNjY0MiA3Ljc1IDEyLjI1VjMuODcyNUwxMS40MDI3IDcuNTMxNzhDMTEuNjk2NiA3LjgyNjE5IDEyLjE3MzYgNy44MjY0MSAxMi40Njc3IDcuNTMyMjZWNy41MzIyNkMxMi43NjE3IDcuMjM4MyAxMi43NjE3IDYuNzYxNyAxMi40Njc3IDYuNDY3NzRMNy43MDcxMSAxLjcwNzExQzcuMzE2NTggMS4zMTY1OCA2LjY4MzQyIDEuMzE2NTggNi4yOTI4OSAxLjcwNzExTDEuNTI4OTkgNi40NzEwMVoiIGZpbGw9IiM2MTYxNjEiLz4KPC9zdmc+Cg==);
--jp-icon-new-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS0xIDhoLTN2M2gtMnYtM2gtM3YtMmgzVjloMnYzaDN2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-not-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI1IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMTkgMTcuMTg0NCAyLjk2OTY4IDE0LjMwMzIgMS44NjA5NCAxMS40NDA5WiIvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24yIiBzdHJva2U9IiMzMzMzMzMiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4zMTU5MiA5LjMyMDMxKSIgZD0iTTcuMzY4NDIgMEwwIDcuMzY0NzkiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzE1OTIgMTYuNjgzNikgc2NhbGUoMSAtMSkiIGQ9Ik03LjM2ODQyIDBMMCA3LjM2NDc5Ii8+Cjwvc3ZnPgo=);
--jp-icon-notebook: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtbm90ZWJvb2staWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNFRjZDMDAiPgogICAgPHBhdGggZD0iTTE4LjcgMy4zdjE1LjRIMy4zVjMuM2gxNS40bTEuNS0xLjVIMS44djE4LjNoMTguM2wuMS0xOC4zeiIvPgogICAgPHBhdGggZD0iTTE2LjUgMTYuNWwtNS40LTQuMy01LjYgNC4zdi0xMWgxMXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-numbering: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTQgMTlINlYxOS41SDVWMjAuNUg2VjIxSDRWMjJIN1YxOEg0VjE5Wk01IDEwSDZWNkg0VjdINVYxMFpNNCAxM0g1LjhMNCAxNS4xVjE2SDdWMTVINS4yTDcgMTIuOVYxMkg0VjEzWk05IDdWOUgyM1Y3SDlaTTkgMjFIMjNWMTlIOVYyMVpNOSAxNUgyM1YxM0g5VjE1WiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-offline-bolt: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDIuMDJjLTUuNTEgMC05Ljk4IDQuNDctOS45OCA5Ljk4czQuNDcgOS45OCA5Ljk4IDkuOTggOS45OC00LjQ3IDkuOTgtOS45OFMxNy41MSAyLjAyIDEyIDIuMDJ6TTExLjQ4IDIwdi02LjI2SDhMMTMgNHY2LjI2aDMuMzVMMTEuNDggMjB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-palette: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE4IDEzVjIwSDRWNkg5LjAyQzkuMDcgNS4yOSA5LjI0IDQuNjIgOS41IDRINEMyLjkgNCAyIDQuOSAyIDZWMjBDMiAyMS4xIDIuOSAyMiA0IDIySDE4QzE5LjEgMjIgMjAgMjEuMSAyMCAyMFYxNUwxOCAxM1pNMTkuMyA4Ljg5QzE5Ljc0IDguMTkgMjAgNy4zOCAyMCA2LjVDMjAgNC4wMSAxNy45OSAyIDE1LjUgMkMxMy4wMSAyIDExIDQuMDEgMTEgNi41QzExIDguOTkgMTMuMDEgMTEgMTUuNDkgMTFDMTYuMzcgMTEgMTcuMTkgMTAuNzQgMTcuODggMTAuM0wyMSAxMy40MkwyMi40MiAxMkwxOS4zIDguODlaTTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41QzEzIDUuMTIgMTQuMTIgNCAxNS41IDRDMTYuODggNCAxOCA1LjEyIDE4IDYuNUMxOCA3Ljg4IDE2Ljg4IDkgMTUuNSA5WiIvPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDZIOS4wMTg5NEM5LjAwNjM5IDYuMTY1MDIgOSA2LjMzMTc2IDkgNi41QzkgOC44MTU3NyAxMC4yMTEgMTAuODQ4NyAxMi4wMzQzIDEySDlWMTRIMTZWMTIuOTgxMUMxNi41NzAzIDEyLjkzNzcgMTcuMTIgMTIuODIwNyAxNy42Mzk2IDEyLjYzOTZMMTggMTNWMjBINFY2Wk04IDhINlYxMEg4VjhaTTYgMTJIOFYxNEg2VjEyWk04IDE2SDZWMThIOFYxNlpNOSAxNkgxNlYxOEg5VjE2WiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-paste: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-pdf: url(data:image/svg+xml;base64,PHN2ZwogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiAyMiIgd2lkdGg9IjE2Ij4KICAgIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0ZGMkEyQSIKICAgICAgIGQ9Im0gMjIuMzQ0MzY5LC0zLjAxNjM2NDIgaCA1LjYzODYwNCB2IDEuNTc5MjQzMyBoIC0zLjU0OTIyNyB2IDEuNTA4NjkyOTkgaCAzLjMzNzU3NiBWIDEuNjUwODE1NCBoIC0zLjMzNzU3NiB2IDMuNDM1MjYxMyBoIC0yLjA4OTM3NyB6IG0gLTcuMTM2NDQ0LDEuNTc5MjQzMyB2IDQuOTQzOTU0MyBoIDAuNzQ4OTIgcSAxLjI4MDc2MSwwIDEuOTUzNzAzLC0wLjYzNDk1MzUgMC42NzgzNjksLTAuNjM0OTUzNSAwLjY3ODM2OSwtMS44NDUxNjQxIDAsLTEuMjA0NzgzNTUgLTAuNjcyOTQyLC0xLjgzNDMxMDExIC0wLjY3Mjk0MiwtMC42Mjk1MjY1OSAtMS45NTkxMywtMC42Mjk1MjY1OSB6IG0gLTIuMDg5Mzc3LC0xLjU3OTI0MzMgaCAyLjIwMzM0MyBxIDEuODQ1MTY0LDAgMi43NDYwMzksMC4yNjU5MjA3IDAuOTA2MzAxLDAuMjYwNDkzNyAxLjU1MjEwOCwwLjg5MDAyMDMgMC41Njk4MywwLjU0ODEyMjMgMC44NDY2MDUsMS4yNjQ0ODAwNiAwLjI3Njc3NCwwLjcxNjM1NzgxIDAuMjc2Nzc0LDEuNjIyNjU4OTQgMCwwLjkxNzE1NTEgLTAuMjc2Nzc0LDEuNjM4OTM5OSAtMC4yNzY3NzUsMC43MTYzNTc4IC0wLjg0NjYwNSwxLjI2NDQ4IC0wLjY1MTIzNCwwLjYyOTUyNjYgLTEuNTYyOTYyLDAuODk1NDQ3MyAtMC45MTE3MjgsMC4yNjA0OTM3IC0yLjczNTE4NSwwLjI2MDQ5MzcgaCAtMi4yMDMzNDMgeiBtIC04LjE0NTg1NjUsMCBoIDMuNDY3ODIzIHEgMS41NDY2ODE2LDAgMi4zNzE1Nzg1LDAuNjg5MjIzIDAuODMwMzI0LDAuNjgzNzk2MSAwLjgzMDMyNCwxLjk1MzcwMzE0IDAsMS4yNzUzMzM5NyAtMC44MzAzMjQsMS45NjQ1NTcwNiBRIDkuOTg3MTk2MSwyLjI3NDkxNSA4LjQ0MDUxNDUsMi4yNzQ5MTUgSCA3LjA2MjA2ODQgViA1LjA4NjA3NjcgSCA0Ljk3MjY5MTUgWiBtIDIuMDg5Mzc2OSwxLjUxNDExOTkgdiAyLjI2MzAzOTQzIGggMS4xNTU5NDEgcSAwLjYwNzgxODgsMCAwLjkzODg2MjksLTAuMjkzMDU1NDcgMC4zMzEwNDQxLC0wLjI5ODQ4MjQxIDAuMzMxMDQ0MSwtMC44NDExNzc3MiAwLC0wLjU0MjY5NTMxIC0wLjMzMTA0NDEsLTAuODM1NzUwNzQgLTAuMzMxMDQ0MSwtMC4yOTMwNTU1IC0wLjkzODg2MjksLTAuMjkzMDU1NSB6IgovPgo8L3N2Zz4K);
--jp-icon-python: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iLTEwIC0xMCAxMzEuMTYxMzYxNjk0MzM1OTQgMTMyLjM4ODk5OTkzODk2NDg0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzA2OTk4IiBkPSJNIDU0LjkxODc4NSw5LjE5Mjc0MjFlLTQgQyA1MC4zMzUxMzIsMC4wMjIyMTcyNyA0NS45NTc4NDYsMC40MTMxMzY5NyA0Mi4xMDYyODUsMS4wOTQ2NjkzIDMwLjc2MDA2OSwzLjA5OTE3MzEgMjguNzAwMDM2LDcuMjk0NzcxNCAyOC43MDAwMzUsMTUuMDMyMTY5IHYgMTAuMjE4NzUgaCAyNi44MTI1IHYgMy40MDYyNSBoIC0yNi44MTI1IC0xMC4wNjI1IGMgLTcuNzkyNDU5LDAgLTE0LjYxNTc1ODgsNC42ODM3MTcgLTE2Ljc0OTk5OTgsMTMuNTkzNzUgLTIuNDYxODE5OTgsMTAuMjEyOTY2IC0yLjU3MTAxNTA4LDE2LjU4NjAyMyAwLDI3LjI1IDEuOTA1OTI4Myw3LjkzNzg1MiA2LjQ1NzU0MzIsMTMuNTkzNzQ4IDE0LjI0OTk5OTgsMTMuNTkzNzUgaCA5LjIxODc1IHYgLTEyLjI1IGMgMCwtOC44NDk5MDIgNy42NTcxNDQsLTE2LjY1NjI0OCAxNi43NSwtMTYuNjU2MjUgaCAyNi43ODEyNSBjIDcuNDU0OTUxLDAgMTMuNDA2MjUzLC02LjEzODE2NCAxMy40MDYyNSwtMTMuNjI1IHYgLTI1LjUzMTI1IGMgMCwtNy4yNjYzMzg2IC02LjEyOTk4LC0xMi43MjQ3NzcxIC0xMy40MDYyNSwtMTMuOTM3NDk5NyBDIDY0LjI4MTU0OCwwLjMyNzk0Mzk3IDU5LjUwMjQzOCwtMC4wMjAzNzkwMyA1NC45MTg3ODUsOS4xOTI3NDIxZS00IFogbSAtMTQuNSw4LjIxODc1MDEyNTc5IGMgMi43Njk1NDcsMCA1LjAzMTI1LDIuMjk4NjQ1NiA1LjAzMTI1LDUuMTI0OTk5NiAtMmUtNiwyLjgxNjMzNiAtMi4yNjE3MDMsNS4wOTM3NSAtNS4wMzEyNSw1LjA5Mzc1IC0yLjc3OTQ3NiwtMWUtNiAtNS4wMzEyNSwtMi4yNzc0MTUgLTUuMDMxMjUsLTUuMDkzNzUgLTEwZS03LC0yLjgyNjM1MyAyLjI1MTc3NCwtNS4xMjQ5OTk2IDUuMDMxMjUsLTUuMTI0OTk5NiB6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2ZmZDQzYiIgZD0ibSA4NS42Mzc1MzUsMjguNjU3MTY5IHYgMTEuOTA2MjUgYyAwLDkuMjMwNzU1IC03LjgyNTg5NSwxNi45OTk5OTkgLTE2Ljc1LDE3IGggLTI2Ljc4MTI1IGMgLTcuMzM1ODMzLDAgLTEzLjQwNjI0OSw2LjI3ODQ4MyAtMTMuNDA2MjUsMTMuNjI1IHYgMjUuNTMxMjQ3IGMgMCw3LjI2NjM0NCA2LjMxODU4OCwxMS41NDAzMjQgMTMuNDA2MjUsMTMuNjI1MDA0IDguNDg3MzMxLDIuNDk1NjEgMTYuNjI2MjM3LDIuOTQ2NjMgMjYuNzgxMjUsMCA2Ljc1MDE1NSwtMS45NTQzOSAxMy40MDYyNTMsLTUuODg3NjEgMTMuNDA2MjUsLTEzLjYyNTAwNCBWIDg2LjUwMDkxOSBoIC0yNi43ODEyNSB2IC0zLjQwNjI1IGggMjYuNzgxMjUgMTMuNDA2MjU0IGMgNy43OTI0NjEsMCAxMC42OTYyNTEsLTUuNDM1NDA4IDEzLjQwNjI0MSwtMTMuNTkzNzUgMi43OTkzMywtOC4zOTg4ODYgMi42ODAyMiwtMTYuNDc1Nzc2IDAsLTI3LjI1IC0xLjkyNTc4LC03Ljc1NzQ0MSAtNS42MDM4NywtMTMuNTkzNzUgLTEzLjQwNjI0MSwtMTMuNTkzNzUgeiBtIC0xNS4wNjI1LDY0LjY1NjI1IGMgMi43Nzk0NzgsM2UtNiA1LjAzMTI1LDIuMjc3NDE3IDUuMDMxMjUsNS4wOTM3NDcgLTJlLTYsMi44MjYzNTQgLTIuMjUxNzc1LDUuMTI1MDA0IC01LjAzMTI1LDUuMTI1MDA0IC0yLjc2OTU1LDAgLTUuMDMxMjUsLTIuMjk4NjUgLTUuMDMxMjUsLTUuMTI1MDA0IDJlLTYsLTIuODE2MzMgMi4yNjE2OTcsLTUuMDkzNzQ3IDUuMDMxMjUsLTUuMDkzNzQ3IHoiLz4KPC9zdmc+Cg==);
--jp-icon-r-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjE5NkYzIiBkPSJNNC40IDIuNWMxLjItLjEgMi45LS4zIDQuOS0uMyAyLjUgMCA0LjEuNCA1LjIgMS4zIDEgLjcgMS41IDEuOSAxLjUgMy41IDAgMi0xLjQgMy41LTIuOSA0LjEgMS4yLjQgMS43IDEuNiAyLjIgMyAuNiAxLjkgMSAzLjkgMS4zIDQuNmgtMy44Yy0uMy0uNC0uOC0xLjctMS4yLTMuN3MtMS4yLTIuNi0yLjYtMi42aC0uOXY2LjRINC40VjIuNXptMy43IDYuOWgxLjRjMS45IDAgMi45LS45IDIuOS0yLjNzLTEtMi4zLTIuOC0yLjNjLS43IDAtMS4zIDAtMS42LjJ2NC41aC4xdi0uMXoiLz4KPC9zdmc+Cg==);
--jp-icon-react: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMTUwIDE1MCA1NDEuOSAyOTUuMyI+CiAgPGcgY2xhc3M9ImpwLWljb24tYnJhbmQyIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxREFGQiI+CiAgICA8cGF0aCBkPSJNNjY2LjMgMjk2LjVjMC0zMi41LTQwLjctNjMuMy0xMDMuMS04Mi40IDE0LjQtNjMuNiA4LTExNC4yLTIwLjItMTMwLjQtNi41LTMuOC0xNC4xLTUuNi0yMi40LTUuNnYyMi4zYzQuNiAwIDguMy45IDExLjQgMi42IDEzLjYgNy44IDE5LjUgMzcuNSAxNC45IDc1LjctMS4xIDkuNC0yLjkgMTkuMy01LjEgMjkuNC0xOS42LTQuOC00MS04LjUtNjMuNS0xMC45LTEzLjUtMTguNS0yNy41LTM1LjMtNDEuNi01MCAzMi42LTMwLjMgNjMuMi00Ni45IDg0LTQ2LjlWNzhjLTI3LjUgMC02My41IDE5LjYtOTkuOSA1My42LTM2LjQtMzMuOC03Mi40LTUzLjItOTkuOS01My4ydjIyLjNjMjAuNyAwIDUxLjQgMTYuNSA4NCA0Ni42LTE0IDE0LjctMjggMzEuNC00MS4zIDQ5LjktMjIuNiAyLjQtNDQgNi4xLTYzLjYgMTEtMi4zLTEwLTQtMTkuNy01LjItMjktNC43LTM4LjIgMS4xLTY3LjkgMTQuNi03NS44IDMtMS44IDYuOS0yLjYgMTEuNS0yLjZWNzguNWMtOC40IDAtMTYgMS44LTIyLjYgNS42LTI4LjEgMTYuMi0zNC40IDY2LjctMTkuOSAxMzAuMS02Mi4yIDE5LjItMTAyLjcgNDkuOS0xMDIuNyA4Mi4zIDAgMzIuNSA0MC43IDYzLjMgMTAzLjEgODIuNC0xNC40IDYzLjYtOCAxMTQuMiAyMC4yIDEzMC40IDYuNSAzLjggMTQuMSA1LjYgMjIuNSA1LjYgMjcuNSAwIDYzLjUtMTkuNiA5OS45LTUzLjYgMzYuNCAzMy44IDcyLjQgNTMuMiA5OS45IDUzLjIgOC40IDAgMTYtMS44IDIyLjYtNS42IDI4LjEtMTYuMiAzNC40LTY2LjcgMTkuOS0xMzAuMSA2Mi0xOS4xIDEwMi41LTQ5LjkgMTAyLjUtODIuM3ptLTEzMC4yLTY2LjdjLTMuNyAxMi45LTguMyAyNi4yLTEzLjUgMzkuNS00LjEtOC04LjQtMTYtMTMuMS0yNC00LjYtOC05LjUtMTUuOC0xNC40LTIzLjQgMTQuMiAyLjEgMjcuOSA0LjcgNDEgNy45em0tNDUuOCAxMDYuNWMtNy44IDEzLjUtMTUuOCAyNi4zLTI0LjEgMzguMi0xNC45IDEuMy0zMCAyLTQ1LjIgMi0xNS4xIDAtMzAuMi0uNy00NS0xLjktOC4zLTExLjktMTYuNC0yNC42LTI0LjItMzgtNy42LTEzLjEtMTQuNS0yNi40LTIwLjgtMzkuOCA2LjItMTMuNCAxMy4yLTI2LjggMjAuNy0zOS45IDcuOC0xMy41IDE1LjgtMjYuMyAyNC4xLTM4LjIgMTQuOS0xLjMgMzAtMiA0NS4yLTIgMTUuMSAwIDMwLjIuNyA0NSAxLjkgOC4zIDExLjkgMTYuNCAyNC42IDI0LjIgMzggNy42IDEzLjEgMTQuNSAyNi40IDIwLjggMzkuOC02LjMgMTMuNC0xMy4yIDI2LjgtMjAuNyAzOS45em0zMi4zLTEzYzUuNCAxMy40IDEwIDI2LjggMTMuOCAzOS44LTEzLjEgMy4yLTI2LjkgNS45LTQxLjIgOCA0LjktNy43IDkuOC0xNS42IDE0LjQtMjMuNyA0LjYtOCA4LjktMTYuMSAxMy0yNC4xek00MjEuMiA0MzBjLTkuMy05LjYtMTguNi0yMC4zLTI3LjgtMzIgOSAuNCAxOC4yLjcgMjcuNS43IDkuNCAwIDE4LjctLjIgMjcuOC0uNy05IDExLjctMTguMyAyMi40LTI3LjUgMzJ6bS03NC40LTU4LjljLTE0LjItMi4xLTI3LjktNC43LTQxLTcuOSAzLjctMTIuOSA4LjMtMjYuMiAxMy41LTM5LjUgNC4xIDggOC40IDE2IDEzLjEgMjQgNC43IDggOS41IDE1LjggMTQuNCAyMy40ek00MjAuNyAxNjNjOS4zIDkuNiAxOC42IDIwLjMgMjcuOCAzMi05LS40LTE4LjItLjctMjcuNS0uNy05LjQgMC0xOC43LjItMjcuOC43IDktMTEuNyAxOC4zLTIyLjQgMjcuNS0zMnptLTc0IDU4LjljLTQuOSA3LjctOS44IDE1LjYtMTQuNCAyMy43LTQuNiA4LTguOSAxNi0xMyAyNC01LjQtMTMuNC0xMC0yNi44LTEzLjgtMzkuOCAxMy4xLTMuMSAyNi45LTUuOCA0MS4yLTcuOXptLTkwLjUgMTI1LjJjLTM1LjQtMTUuMS01OC4zLTM0LjktNTguMy01MC42IDAtMTUuNyAyMi45LTM1LjYgNTguMy01MC42IDguNi0zLjcgMTgtNyAyNy43LTEwLjEgNS43IDE5LjYgMTMuMiA0MCAyMi41IDYwLjktOS4yIDIwLjgtMTYuNiA0MS4xLTIyLjIgNjAuNi05LjktMy4xLTE5LjMtNi41LTI4LTEwLjJ6TTMxMCA0OTBjLTEzLjYtNy44LTE5LjUtMzcuNS0xNC45LTc1LjcgMS4xLTkuNCAyLjktMTkuMyA1LjEtMjkuNCAxOS42IDQuOCA0MSA4LjUgNjMuNSAxMC45IDEzLjUgMTguNSAyNy41IDM1LjMgNDEuNiA1MC0zMi42IDMwLjMtNjMuMiA0Ni45LTg0IDQ2LjktNC41LS4xLTguMy0xLTExLjMtMi43em0yMzcuMi03Ni4yYzQuNyAzOC4yLTEuMSA2Ny45LTE0LjYgNzUuOC0zIDEuOC02LjkgMi42LTExLjUgMi42LTIwLjcgMC01MS40LTE2LjUtODQtNDYuNiAxNC0xNC43IDI4LTMxLjQgNDEuMy00OS45IDIyLjYtMi40IDQ0LTYuMSA2My42LTExIDIuMyAxMC4xIDQuMSAxOS44IDUuMiAyOS4xem0zOC41LTY2LjdjLTguNiAzLjctMTggNy0yNy43IDEwLjEtNS43LTE5LjYtMTMuMi00MC0yMi41LTYwLjkgOS4yLTIwLjggMTYuNi00MS4xIDIyLjItNjAuNiA5LjkgMy4xIDE5LjMgNi41IDI4LjEgMTAuMiAzNS40IDE1LjEgNTguMyAzNC45IDU4LjMgNTAuNi0uMSAxNS43LTIzIDM1LjYtNTguNCA1MC42ek0zMjAuOCA3OC40eiIvPgogICAgPGNpcmNsZSBjeD0iNDIwLjkiIGN5PSIyOTYuNSIgcj0iNDUuNyIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-redo: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-refresh: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTkgMTMuNWMtMi40OSAwLTQuNS0yLjAxLTQuNS00LjVTNi41MSA0LjUgOSA0LjVjMS4yNCAwIDIuMzYuNTIgMy4xNyAxLjMzTDEwIDhoNVYzbC0xLjc2IDEuNzZDMTIuMTUgMy42OCAxMC42NiAzIDkgMyA1LjY5IDMgMy4wMSA1LjY5IDMuMDEgOVM1LjY5IDE1IDkgMTVjMi45NyAwIDUuNDMtMi4xNiA1LjktNWgtMS41MmMtLjQ2IDItMi4yNCAzLjUtNC4zOCAzLjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
--jp-icon-regex: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiBmaWxsPSIjRkZGIj4KICAgIDxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjUuNSIgY3k9IjE0LjUiIHI9IjEuNSIvPgogICAgPHJlY3QgeD0iMTIiIHk9IjQiIGNsYXNzPSJzdDIiIHdpZHRoPSIxIiBoZWlnaHQ9IjgiLz4KICAgIDxyZWN0IHg9IjguNSIgeT0iNy41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg2NiAtMC41IDAuNSAwLjg2NiAtMi4zMjU1IDcuMzIxOSkiIGNsYXNzPSJzdDIiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiLz4KICAgIDxyZWN0IHg9IjEyIiB5PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgLTAuODY2IDAuODY2IDAuNSAtMC42Nzc5IDE0LjgyNTIpIiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-run: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-running: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYweiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-save: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-search: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjEsMTAuOWgtMC43bC0wLjItMC4yYzAuOC0wLjksMS4zLTIuMiwxLjMtMy41YzAtMy0yLjQtNS40LTUuNC01LjRTMS44LDQuMiwxLjgsNy4xczIuNCw1LjQsNS40LDUuNCBjMS4zLDAsMi41LTAuNSwzLjUtMS4zbDAuMiwwLjJ2MC43bDQuMSw0LjFsMS4yLTEuMkwxMi4xLDEwLjl6IE03LjEsMTAuOWMtMi4xLDAtMy43LTEuNy0zLjctMy43czEuNy0zLjcsMy43LTMuN3MzLjcsMS43LDMuNywzLjcgUzkuMiwxMC45LDcuMSwxMC45eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-settings: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuNDMgMTIuOThjLjA0LS4zMi4wNy0uNjQuMDctLjk4cy0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2Yy0uMTItLjIyLS4zOS0uMy0uNjEtLjIybC0yLjQ5IDFjLS41Mi0uNC0xLjA4LS43My0xLjY5LS45OGwtLjM4LTIuNjVBLjQ4OC40ODggMCAwMDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFjLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0yIDMuNDZjLS4xMy4yMi0uMDcuNDkuMTIuNjRsMi4xMSAxLjY1Yy0uMDQuMzItLjA3LjY1LS4wNy45OHMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2Yy4xMi4yMi4zOS4zLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjIzLjA5LjQ5IDAgLjYxLS4yMmwyLTMuNDZjLjEyLS4yMi4wNy0uNDktLjEyLS42NGwtMi4xMS0xLjY1ek0xMiAxNS41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXoiLz4KPC9zdmc+Cg==);
--jp-icon-share: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTSAxOCAyIEMgMTYuMzU0OTkgMiAxNSAzLjM1NDk5MDQgMTUgNSBDIDE1IDUuMTkwOTUyOSAxNS4wMjE3OTEgNS4zNzcxMjI0IDE1LjA1NjY0MSA1LjU1ODU5MzggTCA3LjkyMTg3NSA5LjcyMDcwMzEgQyA3LjM5ODUzOTkgOS4yNzc4NTM5IDYuNzMyMDc3MSA5IDYgOSBDIDQuMzU0OTkwNCA5IDMgMTAuMzU0OTkgMyAxMiBDIDMgMTMuNjQ1MDEgNC4zNTQ5OTA0IDE1IDYgMTUgQyA2LjczMjA3NzEgMTUgNy4zOTg1Mzk5IDE0LjcyMjE0NiA3LjkyMTg3NSAxNC4yNzkyOTcgTCAxNS4wNTY2NDEgMTguNDM5NDUzIEMgMTUuMDIxNTU1IDE4LjYyMTUxNCAxNSAxOC44MDgzODYgMTUgMTkgQyAxNSAyMC42NDUwMSAxNi4zNTQ5OSAyMiAxOCAyMiBDIDE5LjY0NTAxIDIyIDIxIDIwLjY0NTAxIDIxIDE5IEMgMjEgMTcuMzU0OTkgMTkuNjQ1MDEgMTYgMTggMTYgQyAxNy4yNjc0OCAxNiAxNi42MDE1OTMgMTYuMjc5MzI4IDE2LjA3ODEyNSAxNi43MjI2NTYgTCA4Ljk0MzM1OTQgMTIuNTU4NTk0IEMgOC45NzgyMDk1IDEyLjM3NzEyMiA5IDEyLjE5MDk1MyA5IDEyIEMgOSAxMS44MDkwNDcgOC45NzgyMDk1IDExLjYyMjg3OCA4Ljk0MzM1OTQgMTEuNDQxNDA2IEwgMTYuMDc4MTI1IDcuMjc5Mjk2OSBDIDE2LjYwMTQ2IDcuNzIyMTQ2MSAxNy4yNjc5MjMgOCAxOCA4IEMgMTkuNjQ1MDEgOCAyMSA2LjY0NTAwOTYgMjEgNSBDIDIxIDMuMzU0OTkwNCAxOS42NDUwMSAyIDE4IDIgeiBNIDE4IDQgQyAxOC41NjQxMjkgNCAxOSA0LjQzNTg3MDYgMTkgNSBDIDE5IDUuNTY0MTI5NCAxOC41NjQxMjkgNiAxOCA2IEMgMTcuNDM1ODcxIDYgMTcgNS41NjQxMjk0IDE3IDUgQyAxNyA0LjQzNTg3MDYgMTcuNDM1ODcxIDQgMTggNCB6IE0gNiAxMSBDIDYuNTY0MTI5NCAxMSA3IDExLjQzNTg3MSA3IDEyIEMgNyAxMi41NjQxMjkgNi41NjQxMjk0IDEzIDYgMTMgQyA1LjQzNTg3MDYgMTMgNSAxMi41NjQxMjkgNSAxMiBDIDUgMTEuNDM1ODcxIDUuNDM1ODcwNiAxMSA2IDExIHogTSAxOCAxOCBDIDE4LjU2NDEyOSAxOCAxOSAxOC40MzU4NzEgMTkgMTkgQyAxOSAxOS41NjQxMjkgMTguNTY0MTI5IDIwIDE4IDIwIEMgMTcuNDM1ODcxIDIwIDE3IDE5LjU2NDEyOSAxNyAxOSBDIDE3IDE4LjQzNTg3MSAxNy40MzU4NzEgMTggMTggMTggeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-spreadsheet: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNENBRjUwIiBkPSJNMi4yIDIuMnYxNy42aDE3LjZWMi4ySDIuMnptMTUuNCA3LjdoLTUuNVY0LjRoNS41djUuNXpNOS45IDQuNHY1LjVINC40VjQuNGg1LjV6bS01LjUgNy43aDUuNXY1LjVINC40di01LjV6bTcuNyA1LjV2LTUuNWg1LjV2NS41aC01LjV6Ii8+Cjwvc3ZnPgo=);
--jp-icon-stop: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik02IDZoMTJ2MTJINnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
--jp-icon-tab: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
--jp-icon-table-rows: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMSw4SDNWNGgxOFY4eiBNMjEsMTBIM3Y0aDE4VjEweiBNMjEsMTZIM3Y0aDE4VjE2eiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-tag: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCA0MyAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTI4LjgzMzIgMTIuMzM0TDMyLjk5OTggMTYuNTAwN0wzNy4xNjY1IDEyLjMzNEgyOC44MzMyWiIvPgoJCTxwYXRoIGQ9Ik0xNi4yMDk1IDIxLjYxMDRDMTUuNjg3MyAyMi4xMjk5IDE0Ljg0NDMgMjIuMTI5OSAxNC4zMjQ4IDIxLjYxMDRMNi45ODI5IDE0LjcyNDVDNi41NzI0IDE0LjMzOTQgNi4wODMxMyAxMy42MDk4IDYuMDQ3ODYgMTMuMDQ4MkM1Ljk1MzQ3IDExLjUyODggNi4wMjAwMiA4LjYxOTQ0IDYuMDY2MjEgNy4wNzY5NUM2LjA4MjgxIDYuNTE0NzcgNi41NTU0OCA2LjA0MzQ3IDcuMTE4MDQgNi4wMzA1NUM5LjA4ODYzIDUuOTg0NzMgMTMuMjYzOCA1LjkzNTc5IDEzLjY1MTggNi4zMjQyNUwyMS43MzY5IDEzLjYzOUMyMi4yNTYgMTQuMTU4NSAyMS43ODUxIDE1LjQ3MjQgMjEuMjYyIDE1Ljk5NDZMMTYuMjA5NSAyMS42MTA0Wk05Ljc3NTg1IDguMjY1QzkuMzM1NTEgNy44MjU2NiA4LjYyMzUxIDcuODI1NjYgOC4xODI4IDguMjY1QzcuNzQzNDYgOC43MDU3MSA3Ljc0MzQ2IDkuNDE3MzMgOC4xODI4IDkuODU2NjdDOC42MjM4MiAxMC4yOTY0IDkuMzM1ODIgMTAuMjk2NCA5Ljc3NTg1IDkuODU2NjdDMTAuMjE1NiA5LjQxNzMzIDEwLjIxNTYgOC43MDUzMyA5Ljc3NTg1IDguMjY1WiIvPgoJPC9nPgo8L3N2Zz4K);
--jp-icon-terminal: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiA+CiAgICA8cmVjdCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDIpIiBmaWxsPSIjMzMzMzMzIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUtaW52ZXJzZSIgZD0iTTUuMDU2NjQgOC43NjE3MkM1LjA1NjY0IDguNTk3NjYgNS4wMzEyNSA4LjQ1MzEyIDQuOTgwNDcgOC4zMjgxMkM0LjkzMzU5IDguMTk5MjIgNC44NTU0NyA4LjA4MjAzIDQuNzQ2MDkgNy45NzY1NkM0LjY0MDYyIDcuODcxMDkgNC41IDcuNzc1MzkgNC4zMjQyMiA3LjY4OTQ1QzQuMTUyMzQgNy41OTk2MSAzLjk0MzM2IDcuNTExNzIgMy42OTcyNyA3LjQyNTc4QzMuMzAyNzMgNy4yODUxNiAyLjk0MzM2IDcuMTM2NzIgMi42MTkxNCA2Ljk4MDQ3QzIuMjk0OTIgNi44MjQyMiAyLjAxNzU4IDYuNjQyNTggMS43ODcxMSA2LjQzNTU1QzEuNTYwNTUgNi4yMjg1MiAxLjM4NDc3IDUuOTg4MjggMS4yNTk3NyA1LjcxNDg0QzEuMTM0NzcgNS40Mzc1IDEuMDcyMjcgNS4xMDkzOCAxLjA3MjI3IDQuNzMwNDdDMS4wNzIyNyA0LjM5ODQ0IDEuMTI4OTEgNC4wOTU3IDEuMjQyMTkgMy44MjIyN0MxLjM1NTQ3IDMuNTQ0OTIgMS41MTU2MiAzLjMwNDY5IDEuNzIyNjYgMy4xMDE1NkMxLjkyOTY5IDIuODk4NDQgMi4xNzk2OSAyLjczNDM3IDIuNDcyNjYgMi42MDkzOEMyLjc2NTYyIDIuNDg0MzggMy4wOTE4IDIuNDA0MyAzLjQ1MTE3IDIuMzY5MTRWMS4xMDkzOEg0LjM4ODY3VjIuMzgwODZDNC43NDAyMyAyLjQyNzczIDUuMDU2NjQgMi41MjM0NCA1LjMzNzg5IDIuNjY3OTdDNS42MTkxNCAyLjgxMjUgNS44NTc0MiAzLjAwMTk1IDYuMDUyNzMgMy4yMzYzM0M2LjI1MTk1IDMuNDY2OCA2LjQwNDMgMy43NDAyMyA2LjUwOTc3IDQuMDU2NjRDNi42MTkxNCA0LjM2OTE0IDYuNjczODMgNC43MjA3IDYuNjczODMgNS4xMTEzM0g1LjA0NDkyQzUuMDQ0OTIgNC42Mzg2NyA0LjkzNzUgNC4yODEyNSA0LjcyMjY2IDQuMDM5MDZDNC41MDc4MSAzLjc5Mjk3IDQuMjE2OCAzLjY2OTkyIDMuODQ5NjEgMy42Njk5MkMzLjY1MDM5IDMuNjY5OTIgMy40NzY1NiAzLjY5NzI3IDMuMzI4MTIgMy43NTE5NUMzLjE4MzU5IDMuODAyNzMgMy4wNjQ0NSAzLjg3Njk1IDIuOTcwNyAzLjk3NDYxQzIuODc2OTUgNC4wNjgzNiAyLjgwNjY0IDQuMTc5NjkgMi43NTk3NyA0LjMwODU5QzIuNzE2OCA0LjQzNzUgMi42OTUzMSA0LjU3ODEyIDIuNjk1MzEgNC43MzA0N0MyLjY5NTMxIDQuODgyODEgMi43MTY4IDUuMDE5NTMgMi43NTk3NyA1LjE0MDYyQzIuODA2NjQgNS4yNTc4MSAyLjg4MjgxIDUuMzY3MTkgMi45ODgyOCA1LjQ2ODc1QzMuMDk3NjYgNS41NzAzMSAzLjI0MDIzIDUuNjY3OTcgMy40MTYwMiA1Ljc2MTcyQzMuNTkxOCA1Ljg1MTU2IDMuODEwNTUgNS45NDMzNiA0LjA3MjI3IDYuMDM3MTFDNC40NjY4IDYuMTg1NTUgNC44MjQyMiA2LjMzOTg0IDUuMTQ0NTMgNi41QzUuNDY0ODQgNi42NTYyNSA1LjczODI4IDYuODM5ODQgNS45NjQ4NCA3LjA1MDc4QzYuMTk1MzEgNy4yNTc4MSA2LjM3MTA5IDcuNSA2LjQ5MjE5IDcuNzc3MzRDNi42MTcxOSA4LjA1MDc4IDYuNjc5NjkgOC4zNzUgNi42Nzk2OSA4Ljc1QzYuNjc5NjkgOS4wOTM3NSA2LjYyMzA1IDkuNDA0MyA2LjUwOTc3IDkuNjgxNjRDNi4zOTY0OCA5Ljk1NTA4IDYuMjM0MzggMTAuMTkxNCA2LjAyMzQ0IDEwLjM5MDZDNS44MTI1IDEwLjU4OTggNS41NTg1OSAxMC43NSA1LjI2MTcyIDEwLjg3MTFDNC45NjQ4NCAxMC45ODgzIDQuNjMyODEgMTEuMDY0NSA0LjI2NTYyIDExLjA5OTZWMTIuMjQ4SDMuMzMzOThWMTEuMDk5NkMzLjAwMTk1IDExLjA2ODQgMi42Nzk2OSAxMC45OTYxIDIuMzY3MTkgMTAuODgyOEMyLjA1NDY5IDEwLjc2NTYgMS43NzczNCAxMC41OTc3IDEuNTM1MTYgMTAuMzc4OUMxLjI5Njg4IDEwLjE2MDIgMS4xMDU0NyA5Ljg4NDc3IDAuOTYwOTM4IDkuNTUyNzNDMC44MTY0MDYgOS4yMTY4IDAuNzQ0MTQxIDguODE0NDUgMC43NDQxNDEgOC4zNDU3SDIuMzc4OTFDMi4zNzg5MSA4LjYyNjk1IDIuNDE5OTIgOC44NjMyOCAyLjUwMTk1IDkuMDU0NjlDMi41ODM5OCA5LjI0MjE5IDIuNjg5NDUgOS4zOTI1OCAyLjgxODM2IDkuNTA1ODZDMi45NTExNyA5LjYxNTIzIDMuMTAxNTYgOS42OTMzNiAzLjI2OTUzIDkuNzQwMjNDMy40Mzc1IDkuNzg3MTEgMy42MDkzOCA5LjgxMDU1IDMuNzg1MTYgOS44MTA1NUM0LjIwMzEyIDkuODEwNTUgNC41MTk1MyA5LjcxMjg5IDQuNzM0MzggOS41MTc1OEM0Ljk0OTIyIDkuMzIyMjcgNS4wNTY2NCA5LjA3MDMxIDUuMDU2NjQgOC43NjE3MlpNMTMuNDE4IDEyLjI3MTVIOC4wNzQyMlYxMUgxMy40MThWMTIuMjcxNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuOTUyNjQgNikiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=);
--jp-icon-text-editor: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtdGV4dC1lZGl0b3ItaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xNSAxNUgzdjJoMTJ2LTJ6bTAtOEgzdjJoMTJWN3pNMyAxM2gxOHYtMkgzdjJ6bTAgOGgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3oiLz4KPC9zdmc+Cg==);
--jp-icon-toc: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik03LDVIMjFWN0g3VjVNNywxM1YxMUgyMVYxM0g3TTQsNC41QTEuNSwxLjUgMCAwLDEgNS41LDZBMS41LDEuNSAwIDAsMSA0LDcuNUExLjUsMS41IDAgMCwxIDIuNSw2QTEuNSwxLjUgMCAwLDEgNCw0LjVNNCwxMC41QTEuNSwxLjUgMCAwLDEgNS41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMy41QTEuNSwxLjUgMCAwLDEgMi41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMC41TTcsMTlWMTdIMjFWMTlIN000LDE2LjVBMS41LDEuNSAwIDAsMSA1LjUsMThBMS41LDEuNSAwIDAsMSA0LDE5LjVBMS41LDEuNSAwIDAsMSAyLjUsMThBMS41LDEuNSAwIDAsMSA0LDE2LjVaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-tree-view: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzeiIvPgogICAgPC9nPgo8L3N2Zz4K);
--jp-icon-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMiAxNy4xODQ0IDIuOTY5NjggMTQuMzAzMiAxLjg2MDk0IDExLjQ0MDlaIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiMzMzMzMzMiIHN0cm9rZT0iIzMzMzMzMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA5Ljg2NzE5KSIgZD0iTTIuODYwMTUgNC44NjUzNUwwLjcyNjU0OSAyLjk5OTU5TDAgMy42MzA0NUwyLjg2MDE1IDYuMTMxNTdMOCAwLjYzMDg3Mkw3LjI3ODU3IDBMMi44NjAxNSA0Ljg2NTM1WiIvPgo8L3N2Zz4K);
--jp-icon-undo: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-user: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE2IDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek0xMiAxNGE3IDcgMCAwMC03IDdoMTRhNyA3IDAgMDAtNy03eiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-users: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPGcgY2xhc3M9ImpwLWljb24zIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjczMjcgMCAwIDEuNzMyNyAtMy42MjgyIC4wOTk1NzcpIiBmaWxsPSIjNjE2MTYxIj4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgxLjUsMCwwLDEuNSwwLC02KSIgZD0ibTEyLjE4NiA3LjUwOThjLTEuMDUzNSAwLTEuOTc1NyAwLjU2NjUtMi40Nzg1IDEuNDEwMiAwLjc1MDYxIDAuMzEyNzcgMS4zOTc0IDAuODI2NDggMS44NzMgMS40NzI3aDMuNDg2M2MwLTEuNTkyLTEuMjg4OS0yLjg4MjgtMi44ODA5LTIuODgyOHoiLz4KICA8cGF0aCBkPSJtMjAuNDY1IDIuMzg5NWEyLjE4ODUgMi4xODg1IDAgMCAxLTIuMTg4NCAyLjE4ODUgMi4xODg1IDIuMTg4NSAwIDAgMS0yLjE4ODUtMi4xODg1IDIuMTg4NSAyLjE4ODUgMCAwIDEgMi4xODg1LTIuMTg4NSAyLjE4ODUgMi4xODg1IDAgMCAxIDIuMTg4NCAyLjE4ODV6Ii8+CiAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMS41LDAsMCwxLjUsMCwtNikiIGQ9Im0zLjU4OTggOC40MjE5Yy0xLjExMjYgMC0yLjAxMzcgMC45MDExMS0yLjAxMzcgMi4wMTM3aDIuODE0NWMwLjI2Nzk3LTAuMzczMDkgMC41OTA3LTAuNzA0MzUgMC45NTg5OC0wLjk3ODUyLTAuMzQ0MzMtMC42MTY4OC0xLjAwMzEtMS4wMzUyLTEuNzU5OC0xLjAzNTJ6Ii8+CiAgPHBhdGggZD0ibTYuOTE1NCA0LjYyM2ExLjUyOTQgMS41Mjk0IDAgMCAxLTEuNTI5NCAxLjUyOTQgMS41Mjk0IDEuNTI5NCAwIDAgMS0xLjUyOTQtMS41Mjk0IDEuNTI5NCAxLjUyOTQgMCAwIDEgMS41Mjk0LTEuNTI5NCAxLjUyOTQgMS41Mjk0IDAgMCAxIDEuNTI5NCAxLjUyOTR6Ii8+CiAgPHBhdGggZD0ibTYuMTM1IDEzLjUzNWMwLTMuMjM5MiAyLjYyNTktNS44NjUgNS44NjUtNS44NjUgMy4yMzkyIDAgNS44NjUgMi42MjU5IDUuODY1IDUuODY1eiIvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMy43Njg1IiByPSIyLjk2ODUiLz4KIDwvZz4KPC9zdmc+Cg==);
--jp-icon-vega: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbjEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjEyMTIxIj4KICAgIDxwYXRoIGQ9Ik0xMC42IDUuNGwyLjItMy4ySDIuMnY3LjNsNC02LjZ6Ii8+CiAgICA8cGF0aCBkPSJNMTUuOCAyLjJsLTQuNCA2LjZMNyA2LjNsLTQuOCA4djUuNWgxNy42VjIuMmgtNHptLTcgMTUuNEg1LjV2LTQuNGgzLjN2NC40em00LjQgMEg5LjhWOS44aDMuNHY3Ljh6bTQuNCAwaC0zLjRWNi41aDMuNHYxMS4xeiIvPgogIDwvZz4KPC9zdmc+Cg==);
--jp-icon-word: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KIDxnIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzQxNDE0MSI+CiAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiA8L2c+CiA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSguNDMgLjA0MDEpIiBmaWxsPSIjZmZmIj4KICA8cGF0aCBkPSJtNC4xNCA4Ljc2cTAuMDY4Mi0xLjg5IDIuNDItMS44OSAxLjE2IDAgMS42OCAwLjQyIDAuNTY3IDAuNDEgMC41NjcgMS4xNnYzLjQ3cTAgMC40NjIgMC41MTQgMC40NjIgMC4xMDMgMCAwLjItMC4wMjMxdjAuNzE0cS0wLjM5OSAwLjEwMy0wLjY1MSAwLjEwMy0wLjQ1MiAwLTAuNjkzLTAuMjItMC4yMzEtMC4yLTAuMjg0LTAuNjYyLTAuOTU2IDAuODcyLTIgMC44NzItMC45MDMgMC0xLjQ3LTAuNDcyLTAuNTI1LTAuNDcyLTAuNTI1LTEuMjYgMC0wLjI2MiAwLjA0NTItMC40NzIgMC4wNTY3LTAuMjIgMC4xMTYtMC4zNzggMC4wNjgyLTAuMTY4IDAuMjMxLTAuMzA0IDAuMTU4LTAuMTQ3IDAuMjYyLTAuMjQyIDAuMTE2LTAuMDkxNCAwLjM2OC0wLjE2OCAwLjI2Mi0wLjA5MTQgMC4zOTktMC4xMjYgMC4xMzYtMC4wNDUyIDAuNDcyLTAuMTAzIDAuMzM2LTAuMDU3OCAwLjUwNC0wLjA3OTggMC4xNTgtMC4wMjMxIDAuNTY3LTAuMDc5OCAwLjU1Ni0wLjA2ODIgMC43NzctMC4yMjEgMC4yMi0wLjE1MiAwLjIyLTAuNDQxdi0wLjI1MnEwLTAuNDMtMC4zNTctMC42NjItMC4zMzYtMC4yMzEtMC45NzYtMC4yMzEtMC42NjIgMC0wLjk5OCAwLjI2Mi0wLjMzNiAwLjI1Mi0wLjM5OSAwLjc5OHptMS44OSAzLjY4cTAuNzg4IDAgMS4yNi0wLjQxIDAuNTA0LTAuNDIgMC41MDQtMC45MDN2LTEuMDVxLTAuMjg0IDAuMTM2LTAuODYxIDAuMjMxLTAuNTY3IDAuMDkxNC0wLjk4NyAwLjE1OC0wLjQyIDAuMDY4Mi0wLjc2NiAwLjMyNi0wLjMzNiAwLjI1Mi0wLjMzNiAwLjcwNHQwLjMwNCAwLjcwNCAwLjg2MSAwLjI1MnoiIHN0cm9rZS13aWR0aD0iMS4wNSIvPgogIDxwYXRoIGQ9Im0xMCA0LjU2aDAuOTQ1djMuMTVxMC42NTEtMC45NzYgMS44OS0wLjk3NiAxLjE2IDAgMS44OSAwLjg0IDAuNjgyIDAuODQgMC42ODIgMi4zMSAwIDEuNDctMC43MDQgMi40Mi0wLjcwNCAwLjg4Mi0xLjg5IDAuODgyLTEuMjYgMC0xLjg5LTEuMDJ2MC43NjZoLTAuODV6bTIuNjIgMy4wNHEtMC43NDYgMC0xLjE2IDAuNjQtMC40NTIgMC42My0wLjQ1MiAxLjY4IDAgMS4wNSAwLjQ1MiAxLjY4dDEuMTYgMC42M3EwLjc3NyAwIDEuMjYtMC42MyAwLjQ5NC0wLjY0IDAuNDk0LTEuNjggMC0xLjA1LTAuNDcyLTEuNjgtMC40NjItMC42NC0xLjI2LTAuNjR6IiBzdHJva2Utd2lkdGg9IjEuMDUiLz4KICA8cGF0aCBkPSJtMi43MyAxNS44IDEzLjYgMC4wMDgxYzAuMDA2OSAwIDAtMi42IDAtMi42IDAtMC4wMDc4LTEuMTUgMC0xLjE1IDAtMC4wMDY5IDAtMC4wMDgzIDEuNS0wLjAwODMgMS41LTJlLTMgLTAuMDAxNC0xMS4zLTAuMDAxNC0xMS4zLTAuMDAxNGwtMC4wMDU5Mi0xLjVjMC0wLjAwNzgtMS4xNyAwLjAwMTMtMS4xNyAwLjAwMTN6IiBzdHJva2Utd2lkdGg9Ii45NzUiLz4KIDwvZz4KPC9zdmc+Cg==);
--jp-icon-yaml: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1jb250cmFzdDIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjRDgxQjYwIj4KICAgIDxwYXRoIGQ9Ik03LjIgMTguNnYtNS40TDMgNS42aDMuM2wxLjQgMy4xYy4zLjkuNiAxLjYgMSAyLjUuMy0uOC42LTEuNiAxLTIuNWwxLjQtMy4xaDMuNGwtNC40IDcuNnY1LjVsLTIuOS0uMXoiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxNi41IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxMSIgcj0iMi4xIi8+CiAgPC9nPgo8L3N2Zz4K);
}
/* Icon CSS class declarations */
.jp-AddAboveIcon {
background-image: var(--jp-icon-add-above);
}
.jp-AddBelowIcon {
background-image: var(--jp-icon-add-below);
}
.jp-AddIcon {
background-image: var(--jp-icon-add);
}
.jp-BellIcon {
background-image: var(--jp-icon-bell);
}
.jp-BugDotIcon {
background-image: var(--jp-icon-bug-dot);
}
.jp-BugIcon {
background-image: var(--jp-icon-bug);
}
.jp-BuildIcon {
background-image: var(--jp-icon-build);
}
.jp-CaretDownEmptyIcon {
background-image: var(--jp-icon-caret-down-empty);
}
.jp-CaretDownEmptyThinIcon {
background-image: var(--jp-icon-caret-down-empty-thin);
}
.jp-CaretDownIcon {
background-image: var(--jp-icon-caret-down);
}
.jp-CaretLeftIcon {
background-image: var(--jp-icon-caret-left);
}
.jp-CaretRightIcon {
background-image: var(--jp-icon-caret-right);
}
.jp-CaretUpEmptyThinIcon {
background-image: var(--jp-icon-caret-up-empty-thin);
}
.jp-CaretUpIcon {
background-image: var(--jp-icon-caret-up);
}
.jp-CaseSensitiveIcon {
background-image: var(--jp-icon-case-sensitive);
}
.jp-CheckIcon {
background-image: var(--jp-icon-check);
}
.jp-CircleEmptyIcon {
background-image: var(--jp-icon-circle-empty);
}
.jp-CircleIcon {
background-image: var(--jp-icon-circle);
}
.jp-ClearIcon {
background-image: var(--jp-icon-clear);
}
.jp-CloseIcon {
background-image: var(--jp-icon-close);
}
.jp-CodeCheckIcon {
background-image: var(--jp-icon-code-check);
}
.jp-CodeIcon {
background-image: var(--jp-icon-code);
}
.jp-CollapseAllIcon {
background-image: var(--jp-icon-collapse-all);
}
.jp-ConsoleIcon {
background-image: var(--jp-icon-console);
}
.jp-CopyIcon {
background-image: var(--jp-icon-copy);
}
.jp-CopyrightIcon {
background-image: var(--jp-icon-copyright);
}
.jp-CutIcon {
background-image: var(--jp-icon-cut);
}
.jp-DeleteIcon {
background-image: var(--jp-icon-delete);
}
.jp-DownloadIcon {
background-image: var(--jp-icon-download);
}
.jp-DuplicateIcon {
background-image: var(--jp-icon-duplicate);
}
.jp-EditIcon {
background-image: var(--jp-icon-edit);
}
.jp-EllipsesIcon {
background-image: var(--jp-icon-ellipses);
}
.jp-ErrorIcon {
background-image: var(--jp-icon-error);
}
.jp-ExpandAllIcon {
background-image: var(--jp-icon-expand-all);
}
.jp-ExtensionIcon {
background-image: var(--jp-icon-extension);
}
.jp-FastForwardIcon {
background-image: var(--jp-icon-fast-forward);
}
.jp-FileIcon {
background-image: var(--jp-icon-file);
}
.jp-FileUploadIcon {
background-image: var(--jp-icon-file-upload);
}
.jp-FilterDotIcon {
background-image: var(--jp-icon-filter-dot);
}
.jp-FilterIcon {
background-image: var(--jp-icon-filter);
}
.jp-FilterListIcon {
background-image: var(--jp-icon-filter-list);
}
.jp-FolderFavoriteIcon {
background-image: var(--jp-icon-folder-favorite);
}
.jp-FolderIcon {
background-image: var(--jp-icon-folder);
}
.jp-HomeIcon {
background-image: var(--jp-icon-home);
}
.jp-Html5Icon {
background-image: var(--jp-icon-html5);
}
.jp-ImageIcon {
background-image: var(--jp-icon-image);
}
.jp-InfoIcon {
background-image: var(--jp-icon-info);
}
.jp-InspectorIcon {
background-image: var(--jp-icon-inspector);
}
.jp-JsonIcon {
background-image: var(--jp-icon-json);
}
.jp-JuliaIcon {
background-image: var(--jp-icon-julia);
}
.jp-JupyterFaviconIcon {
background-image: var(--jp-icon-jupyter-favicon);
}
.jp-JupyterIcon {
background-image: var(--jp-icon-jupyter);
}
.jp-JupyterlabWordmarkIcon {
background-image: var(--jp-icon-jupyterlab-wordmark);
}
.jp-KernelIcon {
background-image: var(--jp-icon-kernel);
}
.jp-KeyboardIcon {
background-image: var(--jp-icon-keyboard);
}
.jp-LaunchIcon {
background-image: var(--jp-icon-launch);
}
.jp-LauncherIcon {
background-image: var(--jp-icon-launcher);
}
.jp-LineFormIcon {
background-image: var(--jp-icon-line-form);
}
.jp-LinkIcon {
background-image: var(--jp-icon-link);
}
.jp-ListIcon {
background-image: var(--jp-icon-list);
}
.jp-MarkdownIcon {
background-image: var(--jp-icon-markdown);
}
.jp-MoveDownIcon {
background-image: var(--jp-icon-move-down);
}
.jp-MoveUpIcon {
background-image: var(--jp-icon-move-up);
}
.jp-NewFolderIcon {
background-image: var(--jp-icon-new-folder);
}
.jp-NotTrustedIcon {
background-image: var(--jp-icon-not-trusted);
}
.jp-NotebookIcon {
background-image: var(--jp-icon-notebook);
}
.jp-NumberingIcon {
background-image: var(--jp-icon-numbering);
}
.jp-OfflineBoltIcon {
background-image: var(--jp-icon-offline-bolt);
}
.jp-PaletteIcon {
background-image: var(--jp-icon-palette);
}
.jp-PasteIcon {
background-image: var(--jp-icon-paste);
}
.jp-PdfIcon {
background-image: var(--jp-icon-pdf);
}
.jp-PythonIcon {
background-image: var(--jp-icon-python);
}
.jp-RKernelIcon {
background-image: var(--jp-icon-r-kernel);
}
.jp-ReactIcon {
background-image: var(--jp-icon-react);
}
.jp-RedoIcon {
background-image: var(--jp-icon-redo);
}
.jp-RefreshIcon {
background-image: var(--jp-icon-refresh);
}
.jp-RegexIcon {
background-image: var(--jp-icon-regex);
}
.jp-RunIcon {
background-image: var(--jp-icon-run);
}
.jp-RunningIcon {
background-image: var(--jp-icon-running);
}
.jp-SaveIcon {
background-image: var(--jp-icon-save);
}
.jp-SearchIcon {
background-image: var(--jp-icon-search);
}
.jp-SettingsIcon {
background-image: var(--jp-icon-settings);
}
.jp-ShareIcon {
background-image: var(--jp-icon-share);
}
.jp-SpreadsheetIcon {
background-image: var(--jp-icon-spreadsheet);
}
.jp-StopIcon {
background-image: var(--jp-icon-stop);
}
.jp-TabIcon {
background-image: var(--jp-icon-tab);
}
.jp-TableRowsIcon {
background-image: var(--jp-icon-table-rows);
}
.jp-TagIcon {
background-image: var(--jp-icon-tag);
}
.jp-TerminalIcon {
background-image: var(--jp-icon-terminal);
}
.jp-TextEditorIcon {
background-image: var(--jp-icon-text-editor);
}
.jp-TocIcon {
background-image: var(--jp-icon-toc);
}
.jp-TreeViewIcon {
background-image: var(--jp-icon-tree-view);
}
.jp-TrustedIcon {
background-image: var(--jp-icon-trusted);
}
.jp-UndoIcon {
background-image: var(--jp-icon-undo);
}
.jp-UserIcon {
background-image: var(--jp-icon-user);
}
.jp-UsersIcon {
background-image: var(--jp-icon-users);
}
.jp-VegaIcon {
background-image: var(--jp-icon-vega);
}
.jp-WordIcon {
background-image: var(--jp-icon-word);
}
.jp-YamlIcon {
background-image: var(--jp-icon-yaml);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* (DEPRECATED) Support for consuming icons as CSS background images
*/
.jp-Icon,
.jp-MaterialIcon {
background-position: center;
background-repeat: no-repeat;
background-size: 16px;
min-width: 16px;
min-height: 16px;
}
.jp-Icon-cover {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
/**
* (DEPRECATED) Support for specific CSS icon sizes
*/
.jp-Icon-16 {
background-size: 16px;
min-width: 16px;
min-height: 16px;
}
.jp-Icon-18 {
background-size: 18px;
min-width: 18px;
min-height: 18px;
}
.jp-Icon-20 {
background-size: 20px;
min-width: 20px;
min-height: 20px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.lm-TabBar .lm-TabBar-addButton {
align-items: center;
display: flex;
padding: 4px;
padding-bottom: 5px;
margin-right: 1px;
background-color: var(--jp-layout-color2);
}
.lm-TabBar .lm-TabBar-addButton:hover {
background-color: var(--jp-layout-color1);
}
.lm-DockPanel-tabBar .lm-TabBar-tab {
width: var(--jp-private-horizontal-tab-width);
}
.lm-DockPanel-tabBar .lm-TabBar-content {
flex: unset;
}
.lm-DockPanel-tabBar[data-orientation='horizontal'] {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* Support for icons as inline SVG HTMLElements
*/
/* recolor the primary elements of an icon */
.jp-icon0[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon1[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon2[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon3[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon4[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon0[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon1[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon2[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon3[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon4[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/* recolor the accent elements of an icon */
.jp-icon-accent0[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-accent1[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-accent2[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-accent3[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-accent4[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-accent0[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-accent1[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-accent2[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-accent3[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-accent4[stroke] {
stroke: var(--jp-layout-color4);
}
/* set the color of an icon to transparent */
.jp-icon-none[fill] {
fill: none;
}
.jp-icon-none[stroke] {
stroke: none;
}
/* brand icon colors. Same for light and dark */
.jp-icon-brand0[fill] {
fill: var(--jp-brand-color0);
}
.jp-icon-brand1[fill] {
fill: var(--jp-brand-color1);
}
.jp-icon-brand2[fill] {
fill: var(--jp-brand-color2);
}
.jp-icon-brand3[fill] {
fill: var(--jp-brand-color3);
}
.jp-icon-brand4[fill] {
fill: var(--jp-brand-color4);
}
.jp-icon-brand0[stroke] {
stroke: var(--jp-brand-color0);
}
.jp-icon-brand1[stroke] {
stroke: var(--jp-brand-color1);
}
.jp-icon-brand2[stroke] {
stroke: var(--jp-brand-color2);
}
.jp-icon-brand3[stroke] {
stroke: var(--jp-brand-color3);
}
.jp-icon-brand4[stroke] {
stroke: var(--jp-brand-color4);
}
/* warn icon colors. Same for light and dark */
.jp-icon-warn0[fill] {
fill: var(--jp-warn-color0);
}
.jp-icon-warn1[fill] {
fill: var(--jp-warn-color1);
}
.jp-icon-warn2[fill] {
fill: var(--jp-warn-color2);
}
.jp-icon-warn3[fill] {
fill: var(--jp-warn-color3);
}
.jp-icon-warn0[stroke] {
stroke: var(--jp-warn-color0);
}
.jp-icon-warn1[stroke] {
stroke: var(--jp-warn-color1);
}
.jp-icon-warn2[stroke] {
stroke: var(--jp-warn-color2);
}
.jp-icon-warn3[stroke] {
stroke: var(--jp-warn-color3);
}
/* icon colors that contrast well with each other and most backgrounds */
.jp-icon-contrast0[fill] {
fill: var(--jp-icon-contrast-color0);
}
.jp-icon-contrast1[fill] {
fill: var(--jp-icon-contrast-color1);
}
.jp-icon-contrast2[fill] {
fill: var(--jp-icon-contrast-color2);
}
.jp-icon-contrast3[fill] {
fill: var(--jp-icon-contrast-color3);
}
.jp-icon-contrast0[stroke] {
stroke: var(--jp-icon-contrast-color0);
}
.jp-icon-contrast1[stroke] {
stroke: var(--jp-icon-contrast-color1);
}
.jp-icon-contrast2[stroke] {
stroke: var(--jp-icon-contrast-color2);
}
.jp-icon-contrast3[stroke] {
stroke: var(--jp-icon-contrast-color3);
}
.jp-icon-dot[fill] {
fill: var(--jp-warn-color0);
}
.jp-jupyter-icon-color[fill] {
fill: var(--jp-jupyter-icon-color, var(--jp-warn-color0));
}
.jp-notebook-icon-color[fill] {
fill: var(--jp-notebook-icon-color, var(--jp-warn-color0));
}
.jp-json-icon-color[fill] {
fill: var(--jp-json-icon-color, var(--jp-warn-color1));
}
.jp-console-icon-color[fill] {
fill: var(--jp-console-icon-color, white);
}
.jp-console-icon-background-color[fill] {
fill: var(--jp-console-icon-background-color, var(--jp-brand-color1));
}
.jp-terminal-icon-color[fill] {
fill: var(--jp-terminal-icon-color, var(--jp-layout-color2));
}
.jp-terminal-icon-background-color[fill] {
fill: var(
--jp-terminal-icon-background-color,
var(--jp-inverse-layout-color2)
);
}
.jp-text-editor-icon-color[fill] {
fill: var(--jp-text-editor-icon-color, var(--jp-inverse-layout-color3));
}
.jp-inspector-icon-color[fill] {
fill: var(--jp-inspector-icon-color, var(--jp-inverse-layout-color3));
}
/* CSS for icons in selected filebrowser listing items */
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* stylelint-disable selector-max-class, selector-max-compound-selectors */
/**
* TODO: come up with non css-hack solution for showing the busy icon on top
* of the close icon
* CSS for complex behavior of close icon of tabs in the main area tabbar
*/
.lm-DockPanel-tabBar
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon3[fill] {
fill: none;
}
.lm-DockPanel-tabBar
.lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
> .lm-TabBar-tabCloseIcon
> :not(:hover)
> .jp-icon-busy[fill] {
fill: var(--jp-inverse-layout-color3);
}
/* stylelint-enable selector-max-class, selector-max-compound-selectors */
/* CSS for icons in status bar */
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable[fill] {
fill: #fff;
}
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable-inverse[fill] {
fill: var(--jp-brand-color1);
}
/* special handling for splash icon CSS. While the theme CSS reloads during
splash, the splash icon can loose theming. To prevent that, we set a
default for its color variable */
:root {
--jp-warn-color0: var(--md-orange-700);
}
/* not sure what to do with this one, used in filebrowser listing */
.jp-DragIcon {
margin-right: 4px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/**
* Support for alt colors for icons as inline SVG HTMLElements
*/
/* alt recolor the primary elements of an icon */
.jp-icon-alt .jp-icon0[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-alt .jp-icon1[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-alt .jp-icon2[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-alt .jp-icon3[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-alt .jp-icon4[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-alt .jp-icon0[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-alt .jp-icon1[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-alt .jp-icon2[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-alt .jp-icon3[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-alt .jp-icon4[stroke] {
stroke: var(--jp-layout-color4);
}
/* alt recolor the accent elements of an icon */
.jp-icon-alt .jp-icon-accent0[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-alt .jp-icon-accent1[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-alt .jp-icon-accent2[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-alt .jp-icon-accent3[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-alt .jp-icon-accent4[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-alt .jp-icon-accent0[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-alt .jp-icon-accent1[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-alt .jp-icon-accent2[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-alt .jp-icon-accent3[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-alt .jp-icon-accent4[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-icon-hoverShow:not(:hover) .jp-icon-hoverShow-content {
display: none !important;
}
/**
* Support for hover colors for icons as inline SVG HTMLElements
*/
/**
* regular colors
*/
/* recolor the primary elements of an icon */
.jp-icon-hover :hover .jp-icon0-hover[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-hover :hover .jp-icon1-hover[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-hover :hover .jp-icon2-hover[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-hover :hover .jp-icon3-hover[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-hover :hover .jp-icon4-hover[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-hover :hover .jp-icon0-hover[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-hover :hover .jp-icon1-hover[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-hover :hover .jp-icon2-hover[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-hover :hover .jp-icon3-hover[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-hover :hover .jp-icon4-hover[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/* recolor the accent elements of an icon */
.jp-icon-hover :hover .jp-icon-accent0-hover[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-hover :hover .jp-icon-accent1-hover[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-hover :hover .jp-icon-accent2-hover[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-hover :hover .jp-icon-accent3-hover[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-hover :hover .jp-icon-accent4-hover[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-hover :hover .jp-icon-accent0-hover[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-hover :hover .jp-icon-accent1-hover[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-hover :hover .jp-icon-accent2-hover[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-hover :hover .jp-icon-accent3-hover[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-hover :hover .jp-icon-accent4-hover[stroke] {
stroke: var(--jp-layout-color4);
}
/* set the color of an icon to transparent */
.jp-icon-hover :hover .jp-icon-none-hover[fill] {
fill: none;
}
.jp-icon-hover :hover .jp-icon-none-hover[stroke] {
stroke: none;
}
/**
* inverse colors
*/
/* inverse recolor the primary elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[fill] {
fill: var(--jp-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[fill] {
fill: var(--jp-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[fill] {
fill: var(--jp-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[fill] {
fill: var(--jp-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[fill] {
fill: var(--jp-layout-color4);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[stroke] {
stroke: var(--jp-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[stroke] {
stroke: var(--jp-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[stroke] {
stroke: var(--jp-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[stroke] {
stroke: var(--jp-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[stroke] {
stroke: var(--jp-layout-color4);
}
/* inverse recolor the accent elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[fill] {
fill: var(--jp-inverse-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[fill] {
fill: var(--jp-inverse-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[fill] {
fill: var(--jp-inverse-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[fill] {
fill: var(--jp-inverse-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[fill] {
fill: var(--jp-inverse-layout-color4);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[stroke] {
stroke: var(--jp-inverse-layout-color0);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[stroke] {
stroke: var(--jp-inverse-layout-color1);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[stroke] {
stroke: var(--jp-inverse-layout-color2);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[stroke] {
stroke: var(--jp-inverse-layout-color3);
}
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[stroke] {
stroke: var(--jp-inverse-layout-color4);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-IFrame {
width: 100%;
height: 100%;
}
.jp-IFrame > iframe {
border: none;
}
/*
When drag events occur, `lm-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-IFrame {
position: relative;
}
body.lm-mod-override-cursor .jp-IFrame::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-HoverBox {
position: fixed;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-FormGroup-content fieldset {
border: none;
padding: 0;
min-width: 0;
width: 100%;
}
/* stylelint-disable selector-max-type */
.jp-FormGroup-content fieldset .jp-inputFieldWrapper input,
.jp-FormGroup-content fieldset .jp-inputFieldWrapper select,
.jp-FormGroup-content fieldset .jp-inputFieldWrapper textarea {
font-size: var(--jp-content-font-size2);
border-color: var(--jp-input-border-color);
border-style: solid;
border-radius: var(--jp-border-radius);
border-width: 1px;
padding: 6px 8px;
background: none;
color: var(--jp-ui-font-color0);
height: inherit;
}
.jp-FormGroup-content fieldset input[type='checkbox'] {
position: relative;
top: 2px;
margin-left: 0;
}
.jp-FormGroup-content button.jp-mod-styled {
cursor: pointer;
}
.jp-FormGroup-content .checkbox label {
cursor: pointer;
font-size: var(--jp-content-font-size1);
}
.jp-FormGroup-content .jp-root > fieldset > legend {
display: none;
}
.jp-FormGroup-content .jp-root > fieldset > p {
display: none;
}
/** copy of `input.jp-mod-styled:focus` style */
.jp-FormGroup-content fieldset input:focus,
.jp-FormGroup-content fieldset select:focus {
-moz-outline-radius: unset;
outline: var(--jp-border-width) solid var(--md-blue-500);
outline-offset: -1px;
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-FormGroup-content fieldset input:hover:not(:focus),
.jp-FormGroup-content fieldset select:hover:not(:focus) {
background-color: var(--jp-border-color2);
}
/* stylelint-enable selector-max-type */
.jp-FormGroup-content .checkbox .field-description {
/* Disable default description field for checkbox:
because other widgets do not have description fields,
we add descriptions to each widget on the field level.
*/
display: none;
}
.jp-FormGroup-content #root__description {
display: none;
}
.jp-FormGroup-content .jp-modifiedIndicator {
width: 5px;
background-color: var(--jp-brand-color2);
margin-top: 0;
margin-left: calc(var(--jp-private-settingeditor-modifier-indent) * -1);
flex-shrink: 0;
}
.jp-FormGroup-content .jp-modifiedIndicator.jp-errorIndicator {
background-color: var(--jp-error-color0);
margin-right: 0.5em;
}
/* RJSF ARRAY style */
.jp-arrayFieldWrapper legend {
font-size: var(--jp-content-font-size2);
color: var(--jp-ui-font-color0);
flex-basis: 100%;
padding: 4px 0;
font-weight: var(--jp-content-heading-font-weight);
border-bottom: 1px solid var(--jp-border-color2);
}
.jp-arrayFieldWrapper .field-description {
padding: 4px 0;
white-space: pre-wrap;
}
.jp-arrayFieldWrapper .array-item {
width: 100%;
border: 1px solid var(--jp-border-color2);
border-radius: 4px;
margin: 4px;
}
.jp-ArrayOperations {
display: flex;
margin-left: 8px;
}
.jp-ArrayOperationsButton {
margin: 2px;
}
.jp-ArrayOperationsButton .jp-icon3[fill] {
fill: var(--jp-ui-font-color0);
}
button.jp-ArrayOperationsButton.jp-mod-styled:disabled {
cursor: not-allowed;
opacity: 0.5;
}
/* RJSF form validation error */
.jp-FormGroup-content .validationErrors {
color: var(--jp-error-color0);
}
/* Hide panel level error as duplicated the field level error */
.jp-FormGroup-content .panel.errors {
display: none;
}
/* RJSF normal content (settings-editor) */
.jp-FormGroup-contentNormal {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.jp-FormGroup-contentNormal .jp-FormGroup-contentItem {
margin-left: 7px;
color: var(--jp-ui-font-color0);
}
.jp-FormGroup-contentNormal .jp-FormGroup-description {
flex-basis: 100%;
padding: 4px 7px;
}
.jp-FormGroup-contentNormal .jp-FormGroup-default {
flex-basis: 100%;
padding: 4px 7px;
}
.jp-FormGroup-contentNormal .jp-FormGroup-fieldLabel {
font-size: var(--jp-content-font-size1);
font-weight: normal;
min-width: 120px;
}
.jp-FormGroup-contentNormal fieldset:not(:first-child) {
margin-left: 7px;
}
.jp-FormGroup-contentNormal .field-array-of-string .array-item {
/* Display `jp-ArrayOperations` buttons side-by-side with content except
for small screens where flex-wrap will place them one below the other.
*/
display: flex;
align-items: center;
flex-wrap: wrap;
}
.jp-FormGroup-contentNormal .jp-objectFieldWrapper .form-group {
padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
margin-top: 2px;
}
/* RJSF compact content (metadata-form) */
.jp-FormGroup-content.jp-FormGroup-contentCompact {
width: 100%;
}
.jp-FormGroup-contentCompact .form-group {
display: flex;
padding: 0.5em 0.2em 0.5em 0;
}
.jp-FormGroup-contentCompact
.jp-FormGroup-compactTitle
.jp-FormGroup-description {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color2);
}
.jp-FormGroup-contentCompact .jp-FormGroup-fieldLabel {
padding-bottom: 0.3em;
}
.jp-FormGroup-contentCompact .jp-inputFieldWrapper .form-control {
width: 100%;
box-sizing: border-box;
}
.jp-FormGroup-contentCompact .jp-arrayFieldWrapper .jp-FormGroup-compactTitle {
padding-bottom: 7px;
}
.jp-FormGroup-contentCompact
.jp-objectFieldWrapper
.jp-objectFieldWrapper
.form-group {
padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
margin-top: 2px;
}
.jp-FormGroup-contentCompact ul.error-detail {
margin-block-start: 0.5em;
margin-block-end: 0.5em;
padding-inline-start: 1em;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-SidePanel {
display: flex;
flex-direction: column;
min-width: var(--jp-sidebar-min-width);
overflow-y: auto;
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
font-size: var(--jp-ui-font-size1);
}
.jp-SidePanel-header {
flex: 0 0 auto;
display: flex;
border-bottom: var(--jp-border-width) solid var(--jp-border-color2);
font-size: var(--jp-ui-font-size0);
font-weight: 600;
letter-spacing: 1px;
margin: 0;
padding: 2px;
text-transform: uppercase;
}
.jp-SidePanel-toolbar {
flex: 0 0 auto;
}
.jp-SidePanel-content {
flex: 1 1 auto;
}
.jp-SidePanel-toolbar,
.jp-AccordionPanel-toolbar {
height: var(--jp-private-toolbar-height);
}
.jp-SidePanel-toolbar.jp-Toolbar-micro {
display: none;
}
.lm-AccordionPanel .jp-AccordionPanel-title {
box-sizing: border-box;
line-height: 25px;
margin: 0;
display: flex;
align-items: center;
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
font-size: var(--jp-ui-font-size0);
}
.jp-AccordionPanel-title {
cursor: pointer;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
text-transform: uppercase;
}
.lm-AccordionPanel[data-orientation='horizontal'] > .jp-AccordionPanel-title {
/* Title is rotated for horizontal accordion panel using CSS */
display: block;
transform-origin: top left;
transform: rotate(-90deg) translate(-100%);
}
.jp-AccordionPanel-title .lm-AccordionPanel-titleLabel {
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.jp-AccordionPanel-title .lm-AccordionPanel-titleCollapser {
transform: rotate(-90deg);
margin: auto 0;
height: 16px;
}
.jp-AccordionPanel-title.lm-mod-expanded .lm-AccordionPanel-titleCollapser {
transform: rotate(0deg);
}
.lm-AccordionPanel .jp-AccordionPanel-toolbar {
background: none;
box-shadow: none;
border: none;
margin-left: auto;
}
.lm-AccordionPanel .lm-SplitPanel-handle:hover {
background: var(--jp-layout-color3);
}
.jp-text-truncated {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Spinner {
position: absolute;
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: var(--jp-layout-color0);
outline: none;
}
.jp-SpinnerContent {
font-size: 10px;
margin: 50px auto;
text-indent: -9999em;
width: 3em;
height: 3em;
border-radius: 50%;
background: var(--jp-brand-color3);
background: linear-gradient(
to right,
#f37626 10%,
rgba(255, 255, 255, 0) 42%
);
position: relative;
animation: load3 1s infinite linear, fadeIn 1s;
}
.jp-SpinnerContent::before {
width: 50%;
height: 50%;
background: #f37626;
border-radius: 100% 0 0;
position: absolute;
top: 0;
left: 0;
content: '';
}
.jp-SpinnerContent::after {
background: var(--jp-layout-color0);
width: 75%;
height: 75%;
border-radius: 50%;
content: '';
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes load3 {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
button.jp-mod-styled {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
border: none;
box-sizing: border-box;
text-align: center;
line-height: 32px;
height: 32px;
padding: 0 12px;
letter-spacing: 0.8px;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input.jp-mod-styled {
background: var(--jp-input-background);
height: 28px;
box-sizing: border-box;
border: var(--jp-border-width) solid var(--jp-border-color1);
padding-left: 7px;
padding-right: 7px;
font-size: var(--jp-ui-font-size2);
color: var(--jp-ui-font-color0);
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
input[type='checkbox'].jp-mod-styled {
appearance: checkbox;
-webkit-appearance: checkbox;
-moz-appearance: checkbox;
height: auto;
}
input.jp-mod-styled:focus {
border: var(--jp-border-width) solid var(--md-blue-500);
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-select-wrapper {
display: flex;
position: relative;
flex-direction: column;
padding: 1px;
background-color: var(--jp-layout-color1);
box-sizing: border-box;
margin-bottom: 12px;
}
.jp-select-wrapper:not(.multiple) {
height: 28px;
}
.jp-select-wrapper.jp-mod-focused select.jp-mod-styled {
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
background-color: var(--jp-input-active-background);
}
select.jp-mod-styled:hover {
cursor: pointer;
color: var(--jp-ui-font-color0);
background-color: var(--jp-input-hover-background);
box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5);
}
select.jp-mod-styled {
flex: 1 1 auto;
width: 100%;
font-size: var(--jp-ui-font-size2);
background: var(--jp-input-background);
color: var(--jp-ui-font-color0);
padding: 0 25px 0 8px;
border: var(--jp-border-width) solid var(--jp-input-border-color);
border-radius: 0;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
}
select.jp-mod-styled:not([multiple]) {
height: 32px;
}
select.jp-mod-styled[multiple] {
max-height: 200px;
overflow-y: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-switch {
display: flex;
align-items: center;
padding-left: 4px;
padding-right: 4px;
font-size: var(--jp-ui-font-size1);
background-color: transparent;
color: var(--jp-ui-font-color1);
border: none;
height: 20px;
}
.jp-switch:hover {
background-color: var(--jp-layout-color2);
}
.jp-switch-label {
margin-right: 5px;
font-family: var(--jp-ui-font-family);
}
.jp-switch-track {
cursor: pointer;
background-color: var(--jp-switch-color, var(--jp-border-color1));
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 34px;
height: 16px;
width: 35px;
position: relative;
}
.jp-switch-track::before {
content: '';
position: absolute;
height: 10px;
width: 10px;
margin: 3px;
left: 0;
background-color: var(--jp-ui-inverse-font-color1);
-webkit-transition: 0.4s;
transition: 0.4s;
border-radius: 50%;
}
.jp-switch[aria-checked='true'] .jp-switch-track {
background-color: var(--jp-switch-true-position-color, var(--jp-warn-color0));
}
.jp-switch[aria-checked='true'] .jp-switch-track::before {
/* track width (35) - margins (3 + 3) - thumb width (10) */
left: 19px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
:root {
--jp-private-toolbar-height: calc(
28px + var(--jp-border-width)
); /* leave 28px for content */
}
.jp-Toolbar {
color: var(--jp-ui-font-color1);
flex: 0 0 auto;
display: flex;
flex-direction: row;
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
background: var(--jp-toolbar-background);
min-height: var(--jp-toolbar-micro-height);
padding: 2px;
z-index: 8;
overflow-x: hidden;
}
/* Toolbar items */
.jp-Toolbar > .jp-Toolbar-item.jp-Toolbar-spacer {
flex-grow: 1;
flex-shrink: 1;
}
.jp-Toolbar-item.jp-Toolbar-kernelStatus {
display: inline-block;
width: 32px;
background-repeat: no-repeat;
background-position: center;
background-size: 16px;
}
.jp-Toolbar > .jp-Toolbar-item {
flex: 0 0 auto;
display: flex;
padding-left: 1px;
padding-right: 1px;
font-size: var(--jp-ui-font-size1);
line-height: var(--jp-private-toolbar-height);
height: 100%;
}
/* Toolbar buttons */
/* This is the div we use to wrap the react component into a Widget */
div.jp-ToolbarButton {
color: transparent;
border: none;
box-sizing: border-box;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 0;
margin: 0;
}
button.jp-ToolbarButtonComponent {
background: var(--jp-layout-color1);
border: none;
box-sizing: border-box;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
padding: 0 6px;
margin: 0;
height: 24px;
border-radius: var(--jp-border-radius);
display: flex;
align-items: center;
text-align: center;
font-size: 14px;
min-width: unset;
min-height: unset;
}
button.jp-ToolbarButtonComponent:disabled {
opacity: 0.4;
}
button.jp-ToolbarButtonComponent > span {
padding: 0;
flex: 0 0 auto;
}
button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label {
font-size: var(--jp-ui-font-size1);
line-height: 100%;
padding-left: 2px;
color: var(--jp-ui-font-color1);
font-family: var(--jp-ui-font-family);
}
#jp-main-dock-panel[data-mode='single-document']
.jp-MainAreaWidget
> .jp-Toolbar.jp-Toolbar-micro {
padding: 0;
min-height: 0;
}
#jp-main-dock-panel[data-mode='single-document']
.jp-MainAreaWidget
> .jp-Toolbar {
border: none;
box-shadow: none;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-WindowedPanel-outer {
position: relative;
overflow-y: auto;
}
.jp-WindowedPanel-inner {
position: relative;
}
.jp-WindowedPanel-window {
position: absolute;
left: 0;
right: 0;
overflow: visible;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/* Sibling imports */
body {
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
}
/* Disable native link decoration styles everywhere outside of dialog boxes */
a {
text-decoration: unset;
color: unset;
}
a:hover {
text-decoration: unset;
color: unset;
}
/* Accessibility for links inside dialog box text */
.jp-Dialog-content a {
text-decoration: revert;
color: var(--jp-content-link-color);
}
.jp-Dialog-content a:hover {
text-decoration: revert;
}
/* Styles for ui-components */
.jp-Button {
color: var(--jp-ui-font-color2);
border-radius: var(--jp-border-radius);
padding: 0 12px;
font-size: var(--jp-ui-font-size1);
/* Copy from blueprint 3 */
display: inline-flex;
flex-direction: row;
border: none;
cursor: pointer;
align-items: center;
justify-content: center;
text-align: left;
vertical-align: middle;
min-height: 30px;
min-width: 30px;
}
.jp-Button:disabled {
cursor: not-allowed;
}
.jp-Button:empty {
padding: 0 !important;
}
.jp-Button.jp-mod-small {
min-height: 24px;
min-width: 24px;
font-size: 12px;
padding: 0 7px;
}
/* Use our own theme for hover styles */
.jp-Button.jp-mod-minimal:hover {
background-color: var(--jp-layout-color2);
}
.jp-Button.jp-mod-minimal {
background: none;
}
.jp-InputGroup {
display: block;
position: relative;
}
.jp-InputGroup input {
box-sizing: border-box;
border: none;
border-radius: 0;
background-color: transparent;
color: var(--jp-ui-font-color0);
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
padding-bottom: 0;
padding-top: 0;
padding-left: 10px;
padding-right: 28px;
position: relative;
width: 100%;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-size: 14px;
font-weight: 400;
height: 30px;
line-height: 30px;
outline: none;
vertical-align: middle;
}
.jp-InputGroup input:focus {
box-shadow: inset 0 0 0 var(--jp-border-width)
var(--jp-input-active-box-shadow-color),
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}
.jp-InputGroup input:disabled {
cursor: not-allowed;
resize: block;
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color2);
}
.jp-InputGroup input:disabled ~ span {
cursor: not-allowed;
color: var(--jp-ui-font-color2);
}
.jp-InputGroup input::placeholder,
input::placeholder {
color: var(--jp-ui-font-color2);
}
.jp-InputGroupAction {
position: absolute;
bottom: 1px;
right: 0;
padding: 6px;
}
.jp-HTMLSelect.jp-DefaultStyle select {
background-color: initial;
border: none;
border-radius: 0;
box-shadow: none;
color: var(--jp-ui-font-color0);
display: block;
font-size: var(--jp-ui-font-size1);
font-family: var(--jp-ui-font-family);
height: 24px;
line-height: 14px;
padding: 0 25px 0 10px;
text-align: left;
-moz-appearance: none;
-webkit-appearance: none;
}
.jp-HTMLSelect.jp-DefaultStyle select:disabled {
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color2);
cursor: not-allowed;
resize: block;
}
.jp-HTMLSelect.jp-DefaultStyle select:disabled ~ span {
cursor: not-allowed;
}
/* Use our own theme for hover and option styles */
/* stylelint-disable-next-line selector-max-type */
.jp-HTMLSelect.jp-DefaultStyle select:hover,
.jp-HTMLSelect.jp-DefaultStyle select > option {
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color0);
}
select {
box-sizing: border-box;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-StatusBar-Widget {
display: flex;
align-items: center;
background: var(--jp-layout-color2);
min-height: var(--jp-statusbar-height);
justify-content: space-between;
padding: 0 10px;
}
.jp-StatusBar-Left {
display: flex;
align-items: center;
flex-direction: row;
}
.jp-StatusBar-Middle {
display: flex;
align-items: center;
}
.jp-StatusBar-Right {
display: flex;
align-items: center;
flex-direction: row-reverse;
}
.jp-StatusBar-Item {
max-height: var(--jp-statusbar-height);
margin: 0 2px;
height: var(--jp-statusbar-height);
white-space: nowrap;
text-overflow: ellipsis;
color: var(--jp-ui-font-color1);
padding: 0 6px;
}
.jp-mod-highlighted:hover {
background-color: var(--jp-layout-color3);
}
.jp-mod-clicked {
background-color: var(--jp-brand-color1);
}
.jp-mod-clicked:hover {
background-color: var(--jp-brand-color0);
}
.jp-mod-clicked .jp-StatusBar-TextItem {
color: var(--jp-ui-inverse-font-color1);
}
.jp-StatusBar-HoverItem {
box-shadow: '0px 4px 4px rgba(0, 0, 0, 0.25)';
}
.jp-StatusBar-TextItem {
font-size: var(--jp-ui-font-size1);
font-family: var(--jp-ui-font-family);
line-height: 24px;
color: var(--jp-ui-font-color1);
}
.jp-StatusBar-GroupItem {
display: flex;
align-items: center;
flex-direction: row;
}
.jp-Statusbar-ProgressCircle svg {
display: block;
margin: 0 auto;
width: 16px;
height: 24px;
align-self: normal;
}
.jp-Statusbar-ProgressCircle path {
fill: var(--jp-inverse-layout-color3);
}
.jp-Statusbar-ProgressBar-progress-bar {
height: 10px;
width: 100px;
border: solid 0.25px var(--jp-brand-color2);
border-radius: 3px;
overflow: hidden;
align-self: center;
}
.jp-Statusbar-ProgressBar-progress-bar > div {
background-color: var(--jp-brand-color2);
background-image: linear-gradient(
-45deg,
rgba(255, 255, 255, 0.2) 25%,
transparent 25%,
transparent 50%,
rgba(255, 255, 255, 0.2) 50%,
rgba(255, 255, 255, 0.2) 75%,
transparent 75%,
transparent
);
background-size: 40px 40px;
float: left;
width: 0%;
height: 100%;
font-size: 12px;
line-height: 14px;
color: #fff;
text-align: center;
animation: jp-Statusbar-ExecutionTime-progress-bar 2s linear infinite;
}
.jp-Statusbar-ProgressBar-progress-bar p {
color: var(--jp-ui-font-color1);
font-family: var(--jp-ui-font-family);
font-size: var(--jp-ui-font-size1);
line-height: 10px;
width: 100px;
}
@keyframes jp-Statusbar-ExecutionTime-progress-bar {
0% {
background-position: 0 0;
}
100% {
background-position: 40px 40px;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-commandpalette-search-height: 28px;
}
/*-----------------------------------------------------------------------------
| Overall styles
|----------------------------------------------------------------------------*/
.lm-CommandPalette {
padding-bottom: 0;
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
}
/*-----------------------------------------------------------------------------
| Modal variant
|----------------------------------------------------------------------------*/
.jp-ModalCommandPalette {
position: absolute;
z-index: 10000;
top: 38px;
left: 30%;
margin: 0;
padding: 4px;
width: 40%;
box-shadow: var(--jp-elevation-z4);
border-radius: 4px;
background: var(--jp-layout-color0);
}
.jp-ModalCommandPalette .lm-CommandPalette {
max-height: 40vh;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {
display: none;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {
display: none;
}
.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {
margin-left: 4px;
margin-right: 4px;
}
.jp-ModalCommandPalette
.lm-CommandPalette
.lm-CommandPalette-item.lm-mod-disabled {
display: none;
}
/*-----------------------------------------------------------------------------
| Search
|----------------------------------------------------------------------------*/
.lm-CommandPalette-search {
padding: 4px;
background-color: var(--jp-layout-color1);
z-index: 2;
}
.lm-CommandPalette-wrapper {
overflow: overlay;
padding: 0 9px;
background-color: var(--jp-input-active-background);
height: 30px;
box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
}
.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {
box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color),
inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}
.jp-SearchIconGroup {
color: white;
background-color: var(--jp-brand-color1);
position: absolute;
top: 4px;
right: 4px;
padding: 5px 5px 1px;
}
.jp-SearchIconGroup svg {
height: 20px;
width: 20px;
}
.jp-SearchIconGroup .jp-icon3[fill] {
fill: var(--jp-layout-color0);
}
.lm-CommandPalette-input {
background: transparent;
width: calc(100% - 18px);
float: left;
border: none;
outline: none;
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
line-height: var(--jp-private-commandpalette-search-height);
}
.lm-CommandPalette-input::-webkit-input-placeholder,
.lm-CommandPalette-input::-moz-placeholder,
.lm-CommandPalette-input:-ms-input-placeholder {
color: var(--jp-ui-font-color2);
font-size: var(--jp-ui-font-size1);
}
/*-----------------------------------------------------------------------------
| Results
|----------------------------------------------------------------------------*/
.lm-CommandPalette-header:first-child {
margin-top: 0;
}
.lm-CommandPalette-header {
border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
color: var(--jp-ui-font-color1);
cursor: pointer;
display: flex;
font-size: var(--jp-ui-font-size0);
font-weight: 600;
letter-spacing: 1px;
margin-top: 8px;
padding: 8px 0 8px 12px;
text-transform: uppercase;
}
.lm-CommandPalette-header.lm-mod-active {
background: var(--jp-layout-color2);
}
.lm-CommandPalette-header > mark {
background-color: transparent;
font-weight: bold;
color: var(--jp-ui-font-color1);
}
.lm-CommandPalette-item {
padding: 4px 12px 4px 4px;
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
font-weight: 400;
display: flex;
}
.lm-CommandPalette-item.lm-mod-disabled {
color: var(--jp-ui-font-color2);
}
.lm-CommandPalette-item.lm-mod-active {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-inverse-font-color0);
}
.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {
fill: var(--jp-layout-color0);
}
.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {
background: var(--jp-layout-color2);
}
.lm-CommandPalette-itemContent {
overflow: hidden;
}
.lm-CommandPalette-itemLabel > mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.lm-CommandPalette-item.lm-mod-disabled mark {
color: var(--jp-ui-font-color2);
}
.lm-CommandPalette-item .lm-CommandPalette-itemIcon {
margin: 0 4px 0 0;
position: relative;
width: 16px;
top: 2px;
flex: 0 0 auto;
}
.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {
opacity: 0.6;
}
.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {
flex: 0 0 auto;
}
.lm-CommandPalette-itemCaption {
display: none;
}
.lm-CommandPalette-content {
background-color: var(--jp-layout-color1);
}
.lm-CommandPalette-content:empty::after {
content: 'No results';
margin: auto;
margin-top: 20px;
width: 100px;
display: block;
font-size: var(--jp-ui-font-size2);
font-family: var(--jp-ui-font-family);
font-weight: lighter;
}
.lm-CommandPalette-emptyMessage {
text-align: center;
margin-top: 24px;
line-height: 1.32;
padding: 0 8px;
color: var(--jp-content-font-color3);
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Dialog {
position: absolute;
z-index: 10000;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
top: 0;
left: 0;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background: var(--jp-dialog-background);
}
.jp-Dialog-content {
display: flex;
flex-direction: column;
margin-left: auto;
margin-right: auto;
background: var(--jp-layout-color1);
padding: 24px 24px 12px;
min-width: 300px;
min-height: 150px;
max-width: 1000px;
max-height: 500px;
box-sizing: border-box;
box-shadow: var(--jp-elevation-z20);
word-wrap: break-word;
border-radius: var(--jp-border-radius);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color1);
resize: both;
}
.jp-Dialog-content.jp-Dialog-content-small {
max-width: 500px;
}
.jp-Dialog-button {
overflow: visible;
}
button.jp-Dialog-button:focus {
outline: 1px solid var(--jp-brand-color1);
outline-offset: 4px;
-moz-outline-radius: 0;
}
button.jp-Dialog-button:focus::-moz-focus-inner {
border: 0;
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
outline-offset: 4px;
-moz-outline-radius: 0;
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus {
outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1));
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus {
outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1));
}
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600));
}
button.jp-Dialog-close-button {
padding: 0;
height: 100%;
min-width: unset;
min-height: unset;
}
.jp-Dialog-header {
display: flex;
justify-content: space-between;
flex: 0 0 auto;
padding-bottom: 12px;
font-size: var(--jp-ui-font-size3);
font-weight: 400;
color: var(--jp-ui-font-color1);
}
.jp-Dialog-body {
display: flex;
flex-direction: column;
flex: 1 1 auto;
font-size: var(--jp-ui-font-size1);
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
overflow: auto;
}
.jp-Dialog-footer {
display: flex;
flex-direction: row;
justify-content: flex-end;
align-items: center;
flex: 0 0 auto;
margin-left: -12px;
margin-right: -12px;
padding: 12px;
}
.jp-Dialog-checkbox {
padding-right: 5px;
}
.jp-Dialog-checkbox > input:focus-visible {
outline: 1px solid var(--jp-input-active-border-color);
outline-offset: 1px;
}
.jp-Dialog-spacer {
flex: 1 1 auto;
}
.jp-Dialog-title {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.jp-Dialog-body > .jp-select-wrapper {
width: 100%;
}
.jp-Dialog-body > button {
padding: 0 16px;
}
.jp-Dialog-body > label {
line-height: 1.4;
color: var(--jp-ui-font-color0);
}
.jp-Dialog-button.jp-mod-styled:not(:last-child) {
margin-right: 12px;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-Input-Boolean-Dialog {
flex-direction: row-reverse;
align-items: end;
width: 100%;
}
.jp-Input-Boolean-Dialog > label {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-MainAreaWidget > :focus {
outline: none;
}
.jp-MainAreaWidget .jp-MainAreaWidget-error {
padding: 6px;
}
.jp-MainAreaWidget .jp-MainAreaWidget-error > pre {
width: auto;
padding: 10px;
background: var(--jp-error-color3);
border: var(--jp-border-width) solid var(--jp-error-color1);
border-radius: var(--jp-border-radius);
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
white-space: pre-wrap;
word-wrap: break-word;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/**
* google-material-color v1.2.6
* https://github.com/danlevan/google-material-color
*/
:root {
--md-red-50: #ffebee;
--md-red-100: #ffcdd2;
--md-red-200: #ef9a9a;
--md-red-300: #e57373;
--md-red-400: #ef5350;
--md-red-500: #f44336;
--md-red-600: #e53935;
--md-red-700: #d32f2f;
--md-red-800: #c62828;
--md-red-900: #b71c1c;
--md-red-A100: #ff8a80;
--md-red-A200: #ff5252;
--md-red-A400: #ff1744;
--md-red-A700: #d50000;
--md-pink-50: #fce4ec;
--md-pink-100: #f8bbd0;
--md-pink-200: #f48fb1;
--md-pink-300: #f06292;
--md-pink-400: #ec407a;
--md-pink-500: #e91e63;
--md-pink-600: #d81b60;
--md-pink-700: #c2185b;
--md-pink-800: #ad1457;
--md-pink-900: #880e4f;
--md-pink-A100: #ff80ab;
--md-pink-A200: #ff4081;
--md-pink-A400: #f50057;
--md-pink-A700: #c51162;
--md-purple-50: #f3e5f5;
--md-purple-100: #e1bee7;
--md-purple-200: #ce93d8;
--md-purple-300: #ba68c8;
--md-purple-400: #ab47bc;
--md-purple-500: #9c27b0;
--md-purple-600: #8e24aa;
--md-purple-700: #7b1fa2;
--md-purple-800: #6a1b9a;
--md-purple-900: #4a148c;
--md-purple-A100: #ea80fc;
--md-purple-A200: #e040fb;
--md-purple-A400: #d500f9;
--md-purple-A700: #a0f;
--md-deep-purple-50: #ede7f6;
--md-deep-purple-100: #d1c4e9;
--md-deep-purple-200: #b39ddb;
--md-deep-purple-300: #9575cd;
--md-deep-purple-400: #7e57c2;
--md-deep-purple-500: #673ab7;
--md-deep-purple-600: #5e35b1;
--md-deep-purple-700: #512da8;
--md-deep-purple-800: #4527a0;
--md-deep-purple-900: #311b92;
--md-deep-purple-A100: #b388ff;
--md-deep-purple-A200: #7c4dff;
--md-deep-purple-A400: #651fff;
--md-deep-purple-A700: #6200ea;
--md-indigo-50: #e8eaf6;
--md-indigo-100: #c5cae9;
--md-indigo-200: #9fa8da;
--md-indigo-300: #7986cb;
--md-indigo-400: #5c6bc0;
--md-indigo-500: #3f51b5;
--md-indigo-600: #3949ab;
--md-indigo-700: #303f9f;
--md-indigo-800: #283593;
--md-indigo-900: #1a237e;
--md-indigo-A100: #8c9eff;
--md-indigo-A200: #536dfe;
--md-indigo-A400: #3d5afe;
--md-indigo-A700: #304ffe;
--md-blue-50: #e3f2fd;
--md-blue-100: #bbdefb;
--md-blue-200: #90caf9;
--md-blue-300: #64b5f6;
--md-blue-400: #42a5f5;
--md-blue-500: #2196f3;
--md-blue-600: #1e88e5;
--md-blue-700: #1976d2;
--md-blue-800: #1565c0;
--md-blue-900: #0d47a1;
--md-blue-A100: #82b1ff;
--md-blue-A200: #448aff;
--md-blue-A400: #2979ff;
--md-blue-A700: #2962ff;
--md-light-blue-50: #e1f5fe;
--md-light-blue-100: #b3e5fc;
--md-light-blue-200: #81d4fa;
--md-light-blue-300: #4fc3f7;
--md-light-blue-400: #29b6f6;
--md-light-blue-500: #03a9f4;
--md-light-blue-600: #039be5;
--md-light-blue-700: #0288d1;
--md-light-blue-800: #0277bd;
--md-light-blue-900: #01579b;
--md-light-blue-A100: #80d8ff;
--md-light-blue-A200: #40c4ff;
--md-light-blue-A400: #00b0ff;
--md-light-blue-A700: #0091ea;
--md-cyan-50: #e0f7fa;
--md-cyan-100: #b2ebf2;
--md-cyan-200: #80deea;
--md-cyan-300: #4dd0e1;
--md-cyan-400: #26c6da;
--md-cyan-500: #00bcd4;
--md-cyan-600: #00acc1;
--md-cyan-700: #0097a7;
--md-cyan-800: #00838f;
--md-cyan-900: #006064;
--md-cyan-A100: #84ffff;
--md-cyan-A200: #18ffff;
--md-cyan-A400: #00e5ff;
--md-cyan-A700: #00b8d4;
--md-teal-50: #e0f2f1;
--md-teal-100: #b2dfdb;
--md-teal-200: #80cbc4;
--md-teal-300: #4db6ac;
--md-teal-400: #26a69a;
--md-teal-500: #009688;
--md-teal-600: #00897b;
--md-teal-700: #00796b;
--md-teal-800: #00695c;
--md-teal-900: #004d40;
--md-teal-A100: #a7ffeb;
--md-teal-A200: #64ffda;
--md-teal-A400: #1de9b6;
--md-teal-A700: #00bfa5;
--md-green-50: #e8f5e9;
--md-green-100: #c8e6c9;
--md-green-200: #a5d6a7;
--md-green-300: #81c784;
--md-green-400: #66bb6a;
--md-green-500: #4caf50;
--md-green-600: #43a047;
--md-green-700: #388e3c;
--md-green-800: #2e7d32;
--md-green-900: #1b5e20;
--md-green-A100: #b9f6ca;
--md-green-A200: #69f0ae;
--md-green-A400: #00e676;
--md-green-A700: #00c853;
--md-light-green-50: #f1f8e9;
--md-light-green-100: #dcedc8;
--md-light-green-200: #c5e1a5;
--md-light-green-300: #aed581;
--md-light-green-400: #9ccc65;
--md-light-green-500: #8bc34a;
--md-light-green-600: #7cb342;
--md-light-green-700: #689f38;
--md-light-green-800: #558b2f;
--md-light-green-900: #33691e;
--md-light-green-A100: #ccff90;
--md-light-green-A200: #b2ff59;
--md-light-green-A400: #76ff03;
--md-light-green-A700: #64dd17;
--md-lime-50: #f9fbe7;
--md-lime-100: #f0f4c3;
--md-lime-200: #e6ee9c;
--md-lime-300: #dce775;
--md-lime-400: #d4e157;
--md-lime-500: #cddc39;
--md-lime-600: #c0ca33;
--md-lime-700: #afb42b;
--md-lime-800: #9e9d24;
--md-lime-900: #827717;
--md-lime-A100: #f4ff81;
--md-lime-A200: #eeff41;
--md-lime-A400: #c6ff00;
--md-lime-A700: #aeea00;
--md-yellow-50: #fffde7;
--md-yellow-100: #fff9c4;
--md-yellow-200: #fff59d;
--md-yellow-300: #fff176;
--md-yellow-400: #ffee58;
--md-yellow-500: #ffeb3b;
--md-yellow-600: #fdd835;
--md-yellow-700: #fbc02d;
--md-yellow-800: #f9a825;
--md-yellow-900: #f57f17;
--md-yellow-A100: #ffff8d;
--md-yellow-A200: #ff0;
--md-yellow-A400: #ffea00;
--md-yellow-A700: #ffd600;
--md-amber-50: #fff8e1;
--md-amber-100: #ffecb3;
--md-amber-200: #ffe082;
--md-amber-300: #ffd54f;
--md-amber-400: #ffca28;
--md-amber-500: #ffc107;
--md-amber-600: #ffb300;
--md-amber-700: #ffa000;
--md-amber-800: #ff8f00;
--md-amber-900: #ff6f00;
--md-amber-A100: #ffe57f;
--md-amber-A200: #ffd740;
--md-amber-A400: #ffc400;
--md-amber-A700: #ffab00;
--md-orange-50: #fff3e0;
--md-orange-100: #ffe0b2;
--md-orange-200: #ffcc80;
--md-orange-300: #ffb74d;
--md-orange-400: #ffa726;
--md-orange-500: #ff9800;
--md-orange-600: #fb8c00;
--md-orange-700: #f57c00;
--md-orange-800: #ef6c00;
--md-orange-900: #e65100;
--md-orange-A100: #ffd180;
--md-orange-A200: #ffab40;
--md-orange-A400: #ff9100;
--md-orange-A700: #ff6d00;
--md-deep-orange-50: #fbe9e7;
--md-deep-orange-100: #ffccbc;
--md-deep-orange-200: #ffab91;
--md-deep-orange-300: #ff8a65;
--md-deep-orange-400: #ff7043;
--md-deep-orange-500: #ff5722;
--md-deep-orange-600: #f4511e;
--md-deep-orange-700: #e64a19;
--md-deep-orange-800: #d84315;
--md-deep-orange-900: #bf360c;
--md-deep-orange-A100: #ff9e80;
--md-deep-orange-A200: #ff6e40;
--md-deep-orange-A400: #ff3d00;
--md-deep-orange-A700: #dd2c00;
--md-brown-50: #efebe9;
--md-brown-100: #d7ccc8;
--md-brown-200: #bcaaa4;
--md-brown-300: #a1887f;
--md-brown-400: #8d6e63;
--md-brown-500: #795548;
--md-brown-600: #6d4c41;
--md-brown-700: #5d4037;
--md-brown-800: #4e342e;
--md-brown-900: #3e2723;
--md-grey-50: #fafafa;
--md-grey-100: #f5f5f5;
--md-grey-200: #eee;
--md-grey-300: #e0e0e0;
--md-grey-400: #bdbdbd;
--md-grey-500: #9e9e9e;
--md-grey-600: #757575;
--md-grey-700: #616161;
--md-grey-800: #424242;
--md-grey-900: #212121;
--md-blue-grey-50: #eceff1;
--md-blue-grey-100: #cfd8dc;
--md-blue-grey-200: #b0bec5;
--md-blue-grey-300: #90a4ae;
--md-blue-grey-400: #78909c;
--md-blue-grey-500: #607d8b;
--md-blue-grey-600: #546e7a;
--md-blue-grey-700: #455a64;
--md-blue-grey-800: #37474f;
--md-blue-grey-900: #263238;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| RenderedText
|----------------------------------------------------------------------------*/
:root {
/* This is the padding value to fill the gaps between lines containing spans with background color. */
--jp-private-code-span-padding: calc(
(var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
);
}
.jp-RenderedText {
text-align: left;
padding-left: var(--jp-code-padding);
line-height: var(--jp-code-line-height);
font-family: var(--jp-code-font-family);
}
.jp-RenderedText pre,
.jp-RenderedJavaScript pre,
.jp-RenderedHTMLCommon pre {
color: var(--jp-content-font-color1);
font-size: var(--jp-code-font-size);
border: none;
margin: 0;
padding: 0;
}
.jp-RenderedText pre a:link {
text-decoration: none;
color: var(--jp-content-link-color);
}
.jp-RenderedText pre a:hover {
text-decoration: underline;
color: var(--jp-content-link-color);
}
.jp-RenderedText pre a:visited {
text-decoration: none;
color: var(--jp-content-link-color);
}
/* console foregrounds and backgrounds */
.jp-RenderedText pre .ansi-black-fg {
color: #3e424d;
}
.jp-RenderedText pre .ansi-red-fg {
color: #e75c58;
}
.jp-RenderedText pre .ansi-green-fg {
color: #00a250;
}
.jp-RenderedText pre .ansi-yellow-fg {
color: #ddb62b;
}
.jp-RenderedText pre .ansi-blue-fg {
color: #208ffb;
}
.jp-RenderedText pre .ansi-magenta-fg {
color: #d160c4;
}
.jp-RenderedText pre .ansi-cyan-fg {
color: #60c6c8;
}
.jp-RenderedText pre .ansi-white-fg {
color: #c5c1b4;
}
.jp-RenderedText pre .ansi-black-bg {
background-color: #3e424d;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-red-bg {
background-color: #e75c58;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-green-bg {
background-color: #00a250;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-yellow-bg {
background-color: #ddb62b;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-blue-bg {
background-color: #208ffb;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-magenta-bg {
background-color: #d160c4;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-cyan-bg {
background-color: #60c6c8;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-white-bg {
background-color: #c5c1b4;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-black-intense-fg {
color: #282c36;
}
.jp-RenderedText pre .ansi-red-intense-fg {
color: #b22b31;
}
.jp-RenderedText pre .ansi-green-intense-fg {
color: #007427;
}
.jp-RenderedText pre .ansi-yellow-intense-fg {
color: #b27d12;
}
.jp-RenderedText pre .ansi-blue-intense-fg {
color: #0065ca;
}
.jp-RenderedText pre .ansi-magenta-intense-fg {
color: #a03196;
}
.jp-RenderedText pre .ansi-cyan-intense-fg {
color: #258f8f;
}
.jp-RenderedText pre .ansi-white-intense-fg {
color: #a1a6b2;
}
.jp-RenderedText pre .ansi-black-intense-bg {
background-color: #282c36;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-red-intense-bg {
background-color: #b22b31;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-green-intense-bg {
background-color: #007427;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-yellow-intense-bg {
background-color: #b27d12;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-blue-intense-bg {
background-color: #0065ca;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-magenta-intense-bg {
background-color: #a03196;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-cyan-intense-bg {
background-color: #258f8f;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-white-intense-bg {
background-color: #a1a6b2;
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-default-inverse-fg {
color: var(--jp-ui-inverse-font-color0);
}
.jp-RenderedText pre .ansi-default-inverse-bg {
background-color: var(--jp-inverse-layout-color0);
padding: var(--jp-private-code-span-padding) 0;
}
.jp-RenderedText pre .ansi-bold {
font-weight: bold;
}
.jp-RenderedText pre .ansi-underline {
text-decoration: underline;
}
.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
background: var(--jp-rendermime-error-background);
padding-top: var(--jp-code-padding);
}
/*-----------------------------------------------------------------------------
| RenderedLatex
|----------------------------------------------------------------------------*/
.jp-RenderedLatex {
color: var(--jp-content-font-color1);
font-size: var(--jp-content-font-size1);
line-height: var(--jp-content-line-height);
}
/* Left-justify outputs.*/
.jp-OutputArea-output.jp-RenderedLatex {
padding: var(--jp-code-padding);
text-align: left;
}
/*-----------------------------------------------------------------------------
| RenderedHTML
|----------------------------------------------------------------------------*/
.jp-RenderedHTMLCommon {
color: var(--jp-content-font-color1);
font-family: var(--jp-content-font-family);
font-size: var(--jp-content-font-size1);
line-height: var(--jp-content-line-height);
/* Give a bit more R padding on Markdown text to keep line lengths reasonable */
padding-right: 20px;
}
.jp-RenderedHTMLCommon em {
font-style: italic;
}
.jp-RenderedHTMLCommon strong {
font-weight: bold;
}
.jp-RenderedHTMLCommon u {
text-decoration: underline;
}
.jp-RenderedHTMLCommon a:link {
text-decoration: none;
color: var(--jp-content-link-color);
}
.jp-RenderedHTMLCommon a:hover {
text-decoration: underline;
color: var(--jp-content-link-color);
}
.jp-RenderedHTMLCommon a:visited {
text-decoration: none;
color: var(--jp-content-link-color);
}
/* Headings */
.jp-RenderedHTMLCommon h1,
.jp-RenderedHTMLCommon h2,
.jp-RenderedHTMLCommon h3,
.jp-RenderedHTMLCommon h4,
.jp-RenderedHTMLCommon h5,
.jp-RenderedHTMLCommon h6 {
line-height: var(--jp-content-heading-line-height);
font-weight: var(--jp-content-heading-font-weight);
font-style: normal;
margin: var(--jp-content-heading-margin-top) 0
var(--jp-content-heading-margin-bottom) 0;
}
.jp-RenderedHTMLCommon h1:first-child,
.jp-RenderedHTMLCommon h2:first-child,
.jp-RenderedHTMLCommon h3:first-child,
.jp-RenderedHTMLCommon h4:first-child,
.jp-RenderedHTMLCommon h5:first-child,
.jp-RenderedHTMLCommon h6:first-child {
margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
}
.jp-RenderedHTMLCommon h1:last-child,
.jp-RenderedHTMLCommon h2:last-child,
.jp-RenderedHTMLCommon h3:last-child,
.jp-RenderedHTMLCommon h4:last-child,
.jp-RenderedHTMLCommon h5:last-child,
.jp-RenderedHTMLCommon h6:last-child {
margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
}
.jp-RenderedHTMLCommon h1 {
font-size: var(--jp-content-font-size5);
}
.jp-RenderedHTMLCommon h2 {
font-size: var(--jp-content-font-size4);
}
.jp-RenderedHTMLCommon h3 {
font-size: var(--jp-content-font-size3);
}
.jp-RenderedHTMLCommon h4 {
font-size: var(--jp-content-font-size2);
}
.jp-RenderedHTMLCommon h5 {
font-size: var(--jp-content-font-size1);
}
.jp-RenderedHTMLCommon h6 {
font-size: var(--jp-content-font-size0);
}
/* Lists */
/* stylelint-disable selector-max-type, selector-max-compound-selectors */
.jp-RenderedHTMLCommon ul:not(.list-inline),
.jp-RenderedHTMLCommon ol:not(.list-inline) {
padding-left: 2em;
}
.jp-RenderedHTMLCommon ul {
list-style: disc;
}
.jp-RenderedHTMLCommon ul ul {
list-style: square;
}
.jp-RenderedHTMLCommon ul ul ul {
list-style: circle;
}
.jp-RenderedHTMLCommon ol {
list-style: decimal;
}
.jp-RenderedHTMLCommon ol ol {
list-style: upper-alpha;
}
.jp-RenderedHTMLCommon ol ol ol {
list-style: lower-alpha;
}
.jp-RenderedHTMLCommon ol ol ol ol {
list-style: lower-roman;
}
.jp-RenderedHTMLCommon ol ol ol ol ol {
list-style: decimal;
}
.jp-RenderedHTMLCommon ol,
.jp-RenderedHTMLCommon ul {
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon ul ul,
.jp-RenderedHTMLCommon ul ol,
.jp-RenderedHTMLCommon ol ul,
.jp-RenderedHTMLCommon ol ol {
margin-bottom: 0;
}
/* stylelint-enable selector-max-type, selector-max-compound-selectors */
.jp-RenderedHTMLCommon hr {
color: var(--jp-border-color2);
background-color: var(--jp-border-color1);
margin-top: 1em;
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon > pre {
margin: 1.5em 2em;
}
.jp-RenderedHTMLCommon pre,
.jp-RenderedHTMLCommon code {
border: 0;
background-color: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
font-family: var(--jp-code-font-family);
font-size: inherit;
line-height: var(--jp-code-line-height);
padding: 0;
white-space: pre-wrap;
}
.jp-RenderedHTMLCommon :not(pre) > code {
background-color: var(--jp-layout-color2);
padding: 1px 5px;
}
/* Tables */
.jp-RenderedHTMLCommon table {
border-collapse: collapse;
border-spacing: 0;
border: none;
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
table-layout: fixed;
margin-left: auto;
margin-bottom: 1em;
margin-right: auto;
}
.jp-RenderedHTMLCommon thead {
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
vertical-align: bottom;
}
.jp-RenderedHTMLCommon td,
.jp-RenderedHTMLCommon th,
.jp-RenderedHTMLCommon tr {
vertical-align: middle;
padding: 0.5em;
line-height: normal;
white-space: normal;
max-width: none;
border: none;
}
.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
max-width: none;
}
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
text-align: right;
}
.jp-RenderedHTMLCommon th {
font-weight: bold;
}
.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
background: var(--jp-layout-color0);
}
.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
background: var(--jp-rendermime-table-row-background);
}
.jp-RenderedHTMLCommon tbody tr:hover {
background: var(--jp-rendermime-table-row-hover-background);
}
.jp-RenderedHTMLCommon p {
text-align: left;
margin: 0;
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon img {
-moz-force-broken-image-icon: 1;
}
/* Restrict to direct children as other images could be nested in other content. */
.jp-RenderedHTMLCommon > img {
display: block;
margin-left: 0;
margin-right: 0;
margin-bottom: 1em;
}
/* Change color behind transparent images if they need it... */
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
background-color: var(--jp-inverse-layout-color1);
}
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
background-color: var(--jp-inverse-layout-color1);
}
.jp-RenderedHTMLCommon img,
.jp-RenderedImage img,
.jp-RenderedHTMLCommon svg,
.jp-RenderedSVG svg {
max-width: 100%;
height: auto;
}
.jp-RenderedHTMLCommon img.jp-mod-unconfined,
.jp-RenderedImage img.jp-mod-unconfined,
.jp-RenderedHTMLCommon svg.jp-mod-unconfined,
.jp-RenderedSVG svg.jp-mod-unconfined {
max-width: none;
}
.jp-RenderedHTMLCommon .alert {
padding: var(--jp-notebook-padding);
border: var(--jp-border-width) solid transparent;
border-radius: var(--jp-border-radius);
margin-bottom: 1em;
}
.jp-RenderedHTMLCommon .alert-info {
color: var(--jp-info-color0);
background-color: var(--jp-info-color3);
border-color: var(--jp-info-color2);
}
.jp-RenderedHTMLCommon .alert-info hr {
border-color: var(--jp-info-color3);
}
.jp-RenderedHTMLCommon .alert-info > p:last-child,
.jp-RenderedHTMLCommon .alert-info > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-warning {
color: var(--jp-warn-color0);
background-color: var(--jp-warn-color3);
border-color: var(--jp-warn-color2);
}
.jp-RenderedHTMLCommon .alert-warning hr {
border-color: var(--jp-warn-color3);
}
.jp-RenderedHTMLCommon .alert-warning > p:last-child,
.jp-RenderedHTMLCommon .alert-warning > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-success {
color: var(--jp-success-color0);
background-color: var(--jp-success-color3);
border-color: var(--jp-success-color2);
}
.jp-RenderedHTMLCommon .alert-success hr {
border-color: var(--jp-success-color3);
}
.jp-RenderedHTMLCommon .alert-success > p:last-child,
.jp-RenderedHTMLCommon .alert-success > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon .alert-danger {
color: var(--jp-error-color0);
background-color: var(--jp-error-color3);
border-color: var(--jp-error-color2);
}
.jp-RenderedHTMLCommon .alert-danger hr {
border-color: var(--jp-error-color3);
}
.jp-RenderedHTMLCommon .alert-danger > p:last-child,
.jp-RenderedHTMLCommon .alert-danger > ul:last-child {
margin-bottom: 0;
}
.jp-RenderedHTMLCommon blockquote {
margin: 1em 2em;
padding: 0 1em;
border-left: 5px solid var(--jp-border-color2);
}
a.jp-InternalAnchorLink {
visibility: hidden;
margin-left: 8px;
color: var(--md-blue-800);
}
h1:hover .jp-InternalAnchorLink,
h2:hover .jp-InternalAnchorLink,
h3:hover .jp-InternalAnchorLink,
h4:hover .jp-InternalAnchorLink,
h5:hover .jp-InternalAnchorLink,
h6:hover .jp-InternalAnchorLink {
visibility: visible;
}
.jp-RenderedHTMLCommon kbd {
background-color: var(--jp-rendermime-table-row-background);
border: 1px solid var(--jp-border-color0);
border-bottom-color: var(--jp-border-color2);
border-radius: 3px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
display: inline-block;
font-size: var(--jp-ui-font-size0);
line-height: 1em;
padding: 0.2em 0.5em;
}
/* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
* At the bottom of cells this is a bit too much as there is also spacing
* between cells. Going all the way to 0 gets too tight between markdown and
* code cells.
*/
.jp-RenderedHTMLCommon > *:last-child {
margin-bottom: 0.5em;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
.lm-cursor-backdrop {
position: fixed;
width: 200px;
height: 200px;
margin-top: -100px;
margin-left: -100px;
will-change: transform;
z-index: 100;
}
.lm-mod-drag-image {
will-change: transform;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-lineFormSearch {
padding: 4px 12px;
background-color: var(--jp-layout-color2);
box-shadow: var(--jp-toolbar-box-shadow);
z-index: 2;
font-size: var(--jp-ui-font-size1);
}
.jp-lineFormCaption {
font-size: var(--jp-ui-font-size0);
line-height: var(--jp-ui-font-size1);
margin-top: 4px;
color: var(--jp-ui-font-color0);
}
.jp-baseLineForm {
border: none;
border-radius: 0;
position: absolute;
background-size: 16px;
background-repeat: no-repeat;
background-position: center;
outline: none;
}
.jp-lineFormButtonContainer {
top: 4px;
right: 8px;
height: 24px;
padding: 0 12px;
width: 12px;
}
.jp-lineFormButtonIcon {
top: 0;
right: 0;
background-color: var(--jp-brand-color1);
height: 100%;
width: 100%;
box-sizing: border-box;
padding: 4px 6px;
}
.jp-lineFormButton {
top: 0;
right: 0;
background-color: transparent;
height: 100%;
width: 100%;
box-sizing: border-box;
}
.jp-lineFormWrapper {
overflow: hidden;
padding: 0 8px;
border: 1px solid var(--jp-border-color0);
background-color: var(--jp-input-active-background);
height: 22px;
}
.jp-lineFormWrapperFocusWithin {
border: var(--jp-border-width) solid var(--md-blue-500);
box-shadow: inset 0 0 4px var(--md-blue-300);
}
.jp-lineFormInput {
background: transparent;
width: 200px;
height: 100%;
border: none;
outline: none;
color: var(--jp-ui-font-color0);
line-height: 28px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-JSONEditor {
display: flex;
flex-direction: column;
width: 100%;
}
.jp-JSONEditor-host {
flex: 1 1 auto;
border: var(--jp-border-width) solid var(--jp-input-border-color);
border-radius: 0;
background: var(--jp-layout-color0);
min-height: 50px;
padding: 1px;
}
.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {
border-color: red;
outline-color: red;
}
.jp-JSONEditor-header {
display: flex;
flex: 1 0 auto;
padding: 0 0 0 12px;
}
.jp-JSONEditor-header label {
flex: 0 0 auto;
}
.jp-JSONEditor-commitButton {
height: 16px;
width: 16px;
background-size: 18px;
background-repeat: no-repeat;
background-position: center;
}
.jp-JSONEditor-host.jp-mod-focused {
background-color: var(--jp-input-active-background);
border: 1px solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
}
.jp-Editor.jp-mod-dropTarget {
border: var(--jp-border-width) solid var(--jp-input-active-border-color);
box-shadow: var(--jp-input-box-shadow);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-DocumentSearch-input {
border: none;
outline: none;
color: var(--jp-ui-font-color0);
font-size: var(--jp-ui-font-size1);
background-color: var(--jp-layout-color0);
font-family: var(--jp-ui-font-family);
padding: 2px 1px;
resize: none;
}
.jp-DocumentSearch-overlay {
position: absolute;
background-color: var(--jp-toolbar-background);
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
border-left: var(--jp-border-width) solid var(--jp-toolbar-border-color);
top: 0;
right: 0;
z-index: 7;
min-width: 405px;
padding: 2px;
font-size: var(--jp-ui-font-size1);
--jp-private-document-search-button-height: 20px;
}
.jp-DocumentSearch-overlay button {
background-color: var(--jp-toolbar-background);
outline: 0;
}
.jp-DocumentSearch-overlay button:hover {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-overlay button:active {
background-color: var(--jp-layout-color3);
}
.jp-DocumentSearch-overlay-row {
display: flex;
align-items: center;
margin-bottom: 2px;
}
.jp-DocumentSearch-button-content {
display: inline-block;
cursor: pointer;
box-sizing: border-box;
width: 100%;
height: 100%;
}
.jp-DocumentSearch-button-content svg {
width: 100%;
height: 100%;
}
.jp-DocumentSearch-input-wrapper {
border: var(--jp-border-width) solid var(--jp-border-color0);
display: flex;
background-color: var(--jp-layout-color0);
margin: 2px;
}
.jp-DocumentSearch-input-wrapper:focus-within {
border-color: var(--jp-cell-editor-active-border-color);
}
.jp-DocumentSearch-toggle-wrapper,
.jp-DocumentSearch-button-wrapper {
all: initial;
overflow: hidden;
display: inline-block;
border: none;
box-sizing: border-box;
}
.jp-DocumentSearch-toggle-wrapper {
width: 14px;
height: 14px;
}
.jp-DocumentSearch-button-wrapper {
width: var(--jp-private-document-search-button-height);
height: var(--jp-private-document-search-button-height);
}
.jp-DocumentSearch-toggle-wrapper:focus,
.jp-DocumentSearch-button-wrapper:focus {
outline: var(--jp-border-width) solid
var(--jp-cell-editor-active-border-color);
outline-offset: -1px;
}
.jp-DocumentSearch-toggle-wrapper,
.jp-DocumentSearch-button-wrapper,
.jp-DocumentSearch-button-content:focus {
outline: none;
}
.jp-DocumentSearch-toggle-placeholder {
width: 5px;
}
.jp-DocumentSearch-input-button::before {
display: block;
padding-top: 100%;
}
.jp-DocumentSearch-input-button-off {
opacity: var(--jp-search-toggle-off-opacity);
}
.jp-DocumentSearch-input-button-off:hover {
opacity: var(--jp-search-toggle-hover-opacity);
}
.jp-DocumentSearch-input-button-on {
opacity: var(--jp-search-toggle-on-opacity);
}
.jp-DocumentSearch-index-counter {
padding-left: 10px;
padding-right: 10px;
user-select: none;
min-width: 35px;
display: inline-block;
}
.jp-DocumentSearch-up-down-wrapper {
display: inline-block;
padding-right: 2px;
margin-left: auto;
white-space: nowrap;
}
.jp-DocumentSearch-spacer {
margin-left: auto;
}
.jp-DocumentSearch-up-down-wrapper button {
outline: 0;
border: none;
width: var(--jp-private-document-search-button-height);
height: var(--jp-private-document-search-button-height);
vertical-align: middle;
margin: 1px 5px 2px;
}
.jp-DocumentSearch-up-down-button:hover {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-up-down-button:active {
background-color: var(--jp-layout-color3);
}
.jp-DocumentSearch-filter-button {
border-radius: var(--jp-border-radius);
}
.jp-DocumentSearch-filter-button:hover {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-filter-button-enabled {
background-color: var(--jp-layout-color2);
}
.jp-DocumentSearch-filter-button-enabled:hover {
background-color: var(--jp-layout-color3);
}
.jp-DocumentSearch-search-options {
padding: 0 8px;
margin-left: 3px;
width: 100%;
display: grid;
justify-content: start;
grid-template-columns: 1fr 1fr;
align-items: center;
justify-items: stretch;
}
.jp-DocumentSearch-search-filter-disabled {
color: var(--jp-ui-font-color2);
}
.jp-DocumentSearch-search-filter {
display: flex;
align-items: center;
user-select: none;
}
.jp-DocumentSearch-regex-error {
color: var(--jp-error-color0);
}
.jp-DocumentSearch-replace-button-wrapper {
overflow: hidden;
display: inline-block;
box-sizing: border-box;
border: var(--jp-border-width) solid var(--jp-border-color0);
margin: auto 2px;
padding: 1px 4px;
height: calc(var(--jp-private-document-search-button-height) + 2px);
}
.jp-DocumentSearch-replace-button-wrapper:focus {
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
}
.jp-DocumentSearch-replace-button {
display: inline-block;
text-align: center;
cursor: pointer;
box-sizing: border-box;
color: var(--jp-ui-font-color1);
/* height - 2 * (padding of wrapper) */
line-height: calc(var(--jp-private-document-search-button-height) - 2px);
width: 100%;
height: 100%;
}
.jp-DocumentSearch-replace-button:focus {
outline: none;
}
.jp-DocumentSearch-replace-wrapper-class {
margin-left: 14px;
display: flex;
}
.jp-DocumentSearch-replace-toggle {
border: none;
background-color: var(--jp-toolbar-background);
border-radius: var(--jp-border-radius);
}
.jp-DocumentSearch-replace-toggle:hover {
background-color: var(--jp-layout-color2);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.cm-editor {
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
font-family: var(--jp-code-font-family);
border: 0;
border-radius: 0;
height: auto;
/* Changed to auto to autogrow */
}
.cm-editor pre {
padding: 0 var(--jp-code-padding);
}
.jp-CodeMirrorEditor[data-type='inline'] .cm-dialog {
background-color: var(--jp-layout-color0);
color: var(--jp-content-font-color1);
}
.jp-CodeMirrorEditor {
cursor: text;
}
/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
border-left: var(--jp-code-cursor-width1) solid
var(--jp-editor-cursor-color);
}
}
/* When zoomed out less than 33% */
@media screen and (min-width: 4320px) {
.jp-CodeMirrorEditor[data-type='inline'] .cm-cursor {
border-left: var(--jp-code-cursor-width2) solid
var(--jp-editor-cursor-color);
}
}
.cm-editor.jp-mod-readOnly .cm-cursor {
display: none;
}
.jp-CollaboratorCursor {
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: none;
border-bottom: 3px solid;
background-clip: content-box;
margin-left: -5px;
margin-right: -5px;
}
.cm-searching,
.cm-searching span {
/* `.cm-searching span`: we need to override syntax highlighting */
background-color: var(--jp-search-unselected-match-background-color);
color: var(--jp-search-unselected-match-color);
}
.cm-searching::selection,
.cm-searching span::selection {
background-color: var(--jp-search-unselected-match-background-color);
color: var(--jp-search-unselected-match-color);
}
.jp-current-match > .cm-searching,
.jp-current-match > .cm-searching span,
.cm-searching > .jp-current-match,
.cm-searching > .jp-current-match span {
background-color: var(--jp-search-selected-match-background-color);
color: var(--jp-search-selected-match-color);
}
.jp-current-match > .cm-searching::selection,
.cm-searching > .jp-current-match::selection,
.jp-current-match > .cm-searching span::selection {
background-color: var(--jp-search-selected-match-background-color);
color: var(--jp-search-selected-match-color);
}
.cm-trailingspace {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
background-position: center left;
background-repeat: repeat-x;
}
.jp-CollaboratorCursor-hover {
position: absolute;
z-index: 1;
transform: translateX(-50%);
color: white;
border-radius: 3px;
padding-left: 4px;
padding-right: 4px;
padding-top: 1px;
padding-bottom: 1px;
text-align: center;
font-size: var(--jp-ui-font-size1);
white-space: nowrap;
}
.jp-CodeMirror-ruler {
border-left: 1px dashed var(--jp-border-color2);
}
/* Styles for shared cursors (remote cursor locations and selected ranges) */
.jp-CodeMirrorEditor .cm-ySelectionCaret {
position: relative;
border-left: 1px solid black;
margin-left: -1px;
margin-right: -1px;
box-sizing: border-box;
}
.jp-CodeMirrorEditor .cm-ySelectionCaret > .cm-ySelectionInfo {
white-space: nowrap;
position: absolute;
top: -1.15em;
padding-bottom: 0.05em;
left: -1px;
font-size: 0.95em;
font-family: var(--jp-ui-font-family);
font-weight: bold;
line-height: normal;
user-select: none;
color: white;
padding-left: 2px;
padding-right: 2px;
z-index: 101;
transition: opacity 0.3s ease-in-out;
}
.jp-CodeMirrorEditor .cm-ySelectionInfo {
transition-delay: 0.7s;
opacity: 0;
}
.jp-CodeMirrorEditor .cm-ySelectionCaret:hover > .cm-ySelectionInfo {
opacity: 1;
transition-delay: 0s;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-MimeDocument {
outline: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-filebrowser-button-height: 28px;
--jp-private-filebrowser-button-width: 48px;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-FileBrowser .jp-SidePanel-content {
display: flex;
flex-direction: column;
}
.jp-FileBrowser-toolbar.jp-Toolbar {
flex-wrap: wrap;
row-gap: 12px;
border-bottom: none;
height: auto;
margin: 8px 12px 0;
box-shadow: none;
padding: 0;
justify-content: flex-start;
}
.jp-FileBrowser-Panel {
flex: 1 1 auto;
display: flex;
flex-direction: column;
}
.jp-BreadCrumbs {
flex: 0 0 auto;
margin: 8px 12px;
}
.jp-BreadCrumbs-item {
margin: 0 2px;
padding: 0 2px;
border-radius: var(--jp-border-radius);
cursor: pointer;
}
.jp-BreadCrumbs-item:hover {
background-color: var(--jp-layout-color2);
}
.jp-BreadCrumbs-item:first-child {
margin-left: 0;
}
.jp-BreadCrumbs-item.jp-mod-dropTarget {
background-color: var(--jp-brand-color2);
opacity: 0.7;
}
/*-----------------------------------------------------------------------------
| Buttons
|----------------------------------------------------------------------------*/
.jp-FileBrowser-toolbar > .jp-Toolbar-item {
flex: 0 0 auto;
padding-left: 0;
padding-right: 2px;
align-items: center;
height: unset;
}
.jp-FileBrowser-toolbar > .jp-Toolbar-item .jp-ToolbarButtonComponent {
width: 40px;
}
/*-----------------------------------------------------------------------------
| Other styles
|----------------------------------------------------------------------------*/
.jp-FileDialog.jp-mod-conflict input {
color: var(--jp-error-color1);
}
.jp-FileDialog .jp-new-name-title {
margin-top: 12px;
}
.jp-LastModified-hidden {
display: none;
}
.jp-FileSize-hidden {
display: none;
}
.jp-FileBrowser .lm-AccordionPanel > h3:first-child {
display: none;
}
/*-----------------------------------------------------------------------------
| DirListing
|----------------------------------------------------------------------------*/
.jp-DirListing {
flex: 1 1 auto;
display: flex;
flex-direction: column;
outline: 0;
}
.jp-DirListing-header {
flex: 0 0 auto;
display: flex;
flex-direction: row;
align-items: center;
overflow: hidden;
border-top: var(--jp-border-width) solid var(--jp-border-color2);
border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
box-shadow: var(--jp-toolbar-box-shadow);
z-index: 2;
}
.jp-DirListing-headerItem {
padding: 4px 12px 2px;
font-weight: 500;
}
.jp-DirListing-headerItem:hover {
background: var(--jp-layout-color2);
}
.jp-DirListing-headerItem.jp-id-name {
flex: 1 0 84px;
}
.jp-DirListing-headerItem.jp-id-modified {
flex: 0 0 112px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
}
.jp-DirListing-headerItem.jp-id-filesize {
flex: 0 0 75px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
}
.jp-id-narrow {
display: none;
flex: 0 0 5px;
padding: 4px;
border-left: var(--jp-border-width) solid var(--jp-border-color2);
text-align: right;
color: var(--jp-border-color2);
}
.jp-DirListing-narrow .jp-id-narrow {
display: block;
}
.jp-DirListing-narrow .jp-id-modified,
.jp-DirListing-narrow .jp-DirListing-itemModified {
display: none;
}
.jp-DirListing-headerItem.jp-mod-selected {
font-weight: 600;
}
/* increase specificity to override bundled default */
.jp-DirListing-content {
flex: 1 1 auto;
margin: 0;
padding: 0;
list-style-type: none;
overflow: auto;
background-color: var(--jp-layout-color1);
}
.jp-DirListing-content mark {
color: var(--jp-ui-font-color0);
background-color: transparent;
font-weight: bold;
}
.jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
color: var(--jp-ui-inverse-font-color0);
}
/* Style the directory listing content when a user drops a file to upload */
.jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
outline: 5px dashed rgba(128, 128, 128, 0.5);
outline-offset: -10px;
cursor: copy;
}
.jp-DirListing-item {
display: flex;
flex-direction: row;
align-items: center;
padding: 4px 12px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-DirListing-checkboxWrapper {
/* Increases hit area of checkbox. */
padding: 4px;
}
.jp-DirListing-header
.jp-DirListing-checkboxWrapper
+ .jp-DirListing-headerItem {
padding-left: 4px;
}
.jp-DirListing-content .jp-DirListing-checkboxWrapper {
position: relative;
left: -4px;
margin: -4px 0 -4px -8px;
}
.jp-DirListing-checkboxWrapper.jp-mod-visible {
visibility: visible;
}
/* For devices that support hovering, hide checkboxes until hovered, selected...
*/
@media (hover: hover) {
.jp-DirListing-checkboxWrapper {
visibility: hidden;
}
.jp-DirListing-item:hover .jp-DirListing-checkboxWrapper,
.jp-DirListing-item.jp-mod-selected .jp-DirListing-checkboxWrapper {
visibility: visible;
}
}
.jp-DirListing-item[data-is-dot] {
opacity: 75%;
}
.jp-DirListing-item.jp-mod-selected {
color: var(--jp-ui-inverse-font-color1);
background: var(--jp-brand-color1);
}
.jp-DirListing-item.jp-mod-dropTarget {
background: var(--jp-brand-color3);
}
.jp-DirListing-item:hover:not(.jp-mod-selected) {
background: var(--jp-layout-color2);
}
.jp-DirListing-itemIcon {
flex: 0 0 20px;
margin-right: 4px;
}
.jp-DirListing-itemText {
flex: 1 0 64px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
user-select: none;
}
.jp-DirListing-itemText:focus {
outline-width: 2px;
outline-color: var(--jp-inverse-layout-color1);
outline-style: solid;
outline-offset: 1px;
}
.jp-DirListing-item.jp-mod-selected .jp-DirListing-itemText:focus {
outline-color: var(--jp-layout-color1);
}
.jp-DirListing-itemModified {
flex: 0 0 125px;
text-align: right;
}
.jp-DirListing-itemFileSize {
flex: 0 0 90px;
text-align: right;
}
.jp-DirListing-editor {
flex: 1 0 64px;
outline: none;
border: none;
color: var(--jp-ui-font-color1);
background-color: var(--jp-layout-color1);
}
.jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon::before {
color: var(--jp-success-color1);
content: '\25CF';
font-size: 8px;
position: absolute;
left: -8px;
}
.jp-DirListing-item.jp-mod-running.jp-mod-selected
.jp-DirListing-itemIcon::before {
color: var(--jp-ui-inverse-font-color1);
}
.jp-DirListing-item.lm-mod-drag-image,
.jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
font-size: var(--jp-ui-font-size1);
padding-left: 4px;
margin-left: 4px;
width: 160px;
background-color: var(--jp-ui-inverse-font-color2);
box-shadow: var(--jp-elevation-z2);
border-radius: 0;
color: var(--jp-ui-font-color1);
transform: translateX(-40%) translateY(-58%);
}
.jp-Document {
min-width: 120px;
min-height: 120px;
outline: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Main OutputArea
| OutputArea has a list of Outputs
|----------------------------------------------------------------------------*/
.jp-OutputArea {
overflow-y: auto;
}
.jp-OutputArea-child {
display: table;
table-layout: fixed;
width: 100%;
overflow: hidden;
}
.jp-OutputPrompt {
width: var(--jp-cell-prompt-width);
color: var(--jp-cell-outprompt-font-color);
font-family: var(--jp-cell-prompt-font-family);
padding: var(--jp-code-padding);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
opacity: var(--jp-cell-prompt-opacity);
/* Right align prompt text, don't wrap to handle large prompt numbers */
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Disable text selection */
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-OutputArea-prompt {
display: table-cell;
vertical-align: top;
}
.jp-OutputArea-output {
display: table-cell;
width: 100%;
height: auto;
overflow: auto;
user-select: text;
-moz-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
}
.jp-OutputArea .jp-RenderedText {
padding-left: 1ch;
}
/**
* Prompt overlay.
*/
.jp-OutputArea-promptOverlay {
position: absolute;
top: 0;
width: var(--jp-cell-prompt-width);
height: 100%;
opacity: 0.5;
}
.jp-OutputArea-promptOverlay:hover {
background: var(--jp-layout-color2);
box-shadow: inset 0 0 1px var(--jp-inverse-layout-color0);
cursor: zoom-out;
}
.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay:hover {
cursor: zoom-in;
}
/**
* Isolated output.
*/
.jp-OutputArea-output.jp-mod-isolated {
width: 100%;
display: block;
}
/*
When drag events occur, `lm-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
position: relative;
}
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: transparent;
}
/* pre */
.jp-OutputArea-output pre {
border: none;
margin: 0;
padding: 0;
overflow-x: auto;
overflow-y: auto;
word-break: break-all;
word-wrap: break-word;
white-space: pre-wrap;
}
/* tables */
.jp-OutputArea-output.jp-RenderedHTMLCommon table {
margin-left: 0;
margin-right: 0;
}
/* description lists */
.jp-OutputArea-output dl,
.jp-OutputArea-output dt,
.jp-OutputArea-output dd {
display: block;
}
.jp-OutputArea-output dl {
width: 100%;
overflow: hidden;
padding: 0;
margin: 0;
}
.jp-OutputArea-output dt {
font-weight: bold;
float: left;
width: 20%;
padding: 0;
margin: 0;
}
.jp-OutputArea-output dd {
float: left;
width: 80%;
padding: 0;
margin: 0;
}
.jp-TrimmedOutputs pre {
background: var(--jp-layout-color3);
font-size: calc(var(--jp-code-font-size) * 1.4);
text-align: center;
text-transform: uppercase;
}
/* Hide the gutter in case of
* - nested output areas (e.g. in the case of output widgets)
* - mirrored output areas
*/
.jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
display: none;
}
/* Hide empty lines in the output area, for instance due to cleared widgets */
.jp-OutputArea-prompt:empty {
padding: 0;
border: 0;
}
/*-----------------------------------------------------------------------------
| executeResult is added to any Output-result for the display of the object
| returned by a cell
|----------------------------------------------------------------------------*/
.jp-OutputArea-output.jp-OutputArea-executeResult {
margin-left: 0;
width: 100%;
}
/* Text output with the Out[] prompt needs a top padding to match the
* alignment of the Out[] prompt itself.
*/
.jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
padding-top: var(--jp-code-padding);
border-top: var(--jp-border-width) solid transparent;
}
/*-----------------------------------------------------------------------------
| The Stdin output
|----------------------------------------------------------------------------*/
.jp-Stdin-prompt {
color: var(--jp-content-font-color0);
padding-right: var(--jp-code-padding);
vertical-align: baseline;
flex: 0 0 auto;
}
.jp-Stdin-input {
font-family: var(--jp-code-font-family);
font-size: inherit;
color: inherit;
background-color: inherit;
width: 42%;
min-width: 200px;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0 0.25em;
margin: 0 0.25em;
flex: 0 0 70%;
}
.jp-Stdin-input::placeholder {
opacity: 0;
}
.jp-Stdin-input:focus {
box-shadow: none;
}
.jp-Stdin-input:focus::placeholder {
opacity: 1;
}
/*-----------------------------------------------------------------------------
| Output Area View
|----------------------------------------------------------------------------*/
.jp-LinkedOutputView .jp-OutputArea {
height: 100%;
display: block;
}
.jp-LinkedOutputView .jp-OutputArea-output:only-child {
height: 100%;
}
/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/
@media print {
.jp-OutputArea-child {
break-inside: avoid-page;
}
}
/*-----------------------------------------------------------------------------
| Mobile
|----------------------------------------------------------------------------*/
@media only screen and (max-width: 760px) {
.jp-OutputPrompt {
display: table-row;
text-align: left;
}
.jp-OutputArea-child .jp-OutputArea-output {
display: table-row;
margin-left: var(--jp-notebook-padding);
}
}
/* Trimmed outputs warning */
.jp-TrimmedOutputs > a {
margin: 10px;
text-decoration: none;
cursor: pointer;
}
.jp-TrimmedOutputs > a:hover {
text-decoration: none;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Table of Contents
|----------------------------------------------------------------------------*/
:root {
--jp-private-toc-active-width: 4px;
}
.jp-TableOfContents {
display: flex;
flex-direction: column;
background: var(--jp-layout-color1);
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
height: 100%;
}
.jp-TableOfContents-placeholder {
text-align: center;
}
.jp-TableOfContents-placeholderContent {
color: var(--jp-content-font-color2);
padding: 8px;
}
.jp-TableOfContents-placeholderContent > h3 {
margin-bottom: var(--jp-content-heading-margin-bottom);
}
.jp-TableOfContents .jp-SidePanel-content {
overflow-y: auto;
}
.jp-TableOfContents-tree {
margin: 4px;
}
.jp-TableOfContents ol {
list-style-type: none;
}
/* stylelint-disable-next-line selector-max-type */
.jp-TableOfContents li > ol {
/* Align left border with triangle icon center */
padding-left: 11px;
}
.jp-TableOfContents-content {
/* left margin for the active heading indicator */
margin: 0 0 0 var(--jp-private-toc-active-width);
padding: 0;
background-color: var(--jp-layout-color1);
}
.jp-tocItem {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jp-tocItem-heading {
display: flex;
cursor: pointer;
}
.jp-tocItem-heading:hover {
background-color: var(--jp-layout-color2);
}
.jp-tocItem-content {
display: block;
padding: 4px 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow-x: hidden;
}
.jp-tocItem-collapser {
height: 20px;
margin: 2px 2px 0;
padding: 0;
background: none;
border: none;
cursor: pointer;
}
.jp-tocItem-collapser:hover {
background-color: var(--jp-layout-color3);
}
/* Active heading indicator */
.jp-tocItem-heading::before {
content: ' ';
background: transparent;
width: var(--jp-private-toc-active-width);
height: 24px;
position: absolute;
left: 0;
border-radius: var(--jp-border-radius);
}
.jp-tocItem-heading.jp-tocItem-active::before {
background-color: var(--jp-brand-color1);
}
.jp-tocItem-heading:hover.jp-tocItem-active::before {
background: var(--jp-brand-color0);
opacity: 1;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-Collapser {
flex: 0 0 var(--jp-cell-collapser-width);
padding: 0;
margin: 0;
border: none;
outline: none;
background: transparent;
border-radius: var(--jp-border-radius);
opacity: 1;
}
.jp-Collapser-child {
display: block;
width: 100%;
box-sizing: border-box;
/* height: 100% doesn't work because the height of its parent is computed from content */
position: absolute;
top: 0;
bottom: 0;
}
/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/
/*
Hiding collapsers in print mode.
Note: input and output wrappers have "display: block" propery in print mode.
*/
@media print {
.jp-Collapser {
display: none;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Header/Footer
|----------------------------------------------------------------------------*/
/* Hidden by zero height by default */
.jp-CellHeader,
.jp-CellFooter {
height: 0;
width: 100%;
padding: 0;
margin: 0;
border: none;
outline: none;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Input
|----------------------------------------------------------------------------*/
/* All input areas */
.jp-InputArea {
display: table;
table-layout: fixed;
width: 100%;
overflow: hidden;
}
.jp-InputArea-editor {
display: table-cell;
overflow: hidden;
vertical-align: top;
/* This is the non-active, default styling */
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
border-radius: 0;
background: var(--jp-cell-editor-background);
}
.jp-InputPrompt {
display: table-cell;
vertical-align: top;
width: var(--jp-cell-prompt-width);
color: var(--jp-cell-inprompt-font-color);
font-family: var(--jp-cell-prompt-font-family);
padding: var(--jp-code-padding);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
opacity: var(--jp-cell-prompt-opacity);
line-height: var(--jp-code-line-height);
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
/* Right align prompt text, don't wrap to handle large prompt numbers */
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
/* Disable text selection */
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*-----------------------------------------------------------------------------
| Mobile
|----------------------------------------------------------------------------*/
@media only screen and (max-width: 760px) {
.jp-InputArea-editor {
display: table-row;
margin-left: var(--jp-notebook-padding);
}
.jp-InputPrompt {
display: table-row;
text-align: left;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/
.jp-Placeholder {
display: table;
table-layout: fixed;
width: 100%;
}
.jp-Placeholder-prompt {
display: table-cell;
box-sizing: border-box;
}
.jp-Placeholder-content {
display: table-cell;
padding: 4px 6px;
border: 1px solid transparent;
border-radius: 0;
background: none;
box-sizing: border-box;
cursor: pointer;
}
.jp-Placeholder-contentContainer {
display: flex;
}
.jp-Placeholder-content:hover,
.jp-InputPlaceholder > .jp-Placeholder-content:hover {
border-color: var(--jp-layout-color3);
}
.jp-Placeholder-content .jp-MoreHorizIcon {
width: 32px;
height: 16px;
border: 1px solid transparent;
border-radius: var(--jp-border-radius);
}
.jp-Placeholder-content .jp-MoreHorizIcon:hover {
border: 1px solid var(--jp-border-color1);
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.25);
background-color: var(--jp-layout-color0);
}
.jp-PlaceholderText {
white-space: nowrap;
overflow-x: hidden;
color: var(--jp-inverse-layout-color3);
font-family: var(--jp-code-font-family);
}
.jp-InputPlaceholder > .jp-Placeholder-content {
border-color: var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background);
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Private CSS variables
|----------------------------------------------------------------------------*/
:root {
--jp-private-cell-scrolling-output-offset: 5px;
}
/*-----------------------------------------------------------------------------
| Cell
|----------------------------------------------------------------------------*/
.jp-Cell {
padding: var(--jp-cell-padding);
margin: 0;
border: none;
outline: none;
background: transparent;
}
/*-----------------------------------------------------------------------------
| Common input/output
|----------------------------------------------------------------------------*/
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: flex;
flex-direction: row;
padding: 0;
margin: 0;
/* Added to reveal the box-shadow on the input and output collapsers. */
overflow: visible;
}
/* Only input/output areas inside cells */
.jp-Cell-inputArea,
.jp-Cell-outputArea {
flex: 1 1 auto;
}
/*-----------------------------------------------------------------------------
| Collapser
|----------------------------------------------------------------------------*/
/* Make the output collapser disappear when there is not output, but do so
* in a manner that leaves it in the layout and preserves its width.
*/
.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
border: none !important;
background: transparent !important;
}
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
min-height: var(--jp-cell-collapser-min-height);
}
/*-----------------------------------------------------------------------------
| Output
|----------------------------------------------------------------------------*/
/* Put a space between input and output when there IS output */
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
margin-top: 5px;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
overflow-y: auto;
max-height: 24em;
margin-left: var(--jp-private-cell-scrolling-output-offset);
resize: vertical;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*='height'] {
max-height: unset;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {
content: ' ';
box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);
width: 100%;
height: 100%;
position: sticky;
bottom: 0;
top: 0;
margin-top: -50%;
float: left;
display: block;
pointer-events: none;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {
padding-top: 6px;
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
width: calc(
var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)
);
}
.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay {
left: calc(-1 * var(--jp-private-cell-scrolling-output-offset));
}
/*-----------------------------------------------------------------------------
| CodeCell
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| MarkdownCell
|----------------------------------------------------------------------------*/
.jp-MarkdownOutput {
display: table-cell;
width: 100%;
margin-top: 0;
margin-bottom: 0;
padding-left: var(--jp-code-padding);
}
.jp-MarkdownOutput.jp-RenderedHTMLCommon {
overflow: auto;
}
/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */
.jp-collapseHeadingButton {
display: flex;
min-height: var(--jp-cell-collapser-min-height);
font-size: var(--jp-code-font-size);
position: absolute;
background-color: transparent;
background-size: 25px;
background-repeat: no-repeat;
background-position-x: center;
background-position-y: top;
background-image: var(--jp-icon-caret-down);
right: 0;
top: 0;
bottom: 0;
}
.jp-collapseHeadingButton.jp-mod-collapsed {
background-image: var(--jp-icon-caret-right);
}
/*
set the container font size to match that of content
so that the nested collapse buttons have the right size
*/
.jp-MarkdownCell .jp-InputPrompt {
font-size: var(--jp-content-font-size1);
}
/*
Align collapseHeadingButton with cell top header
The font sizes are identical to the ones in packages/rendermime/style/base.css
*/
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='1'] {
font-size: var(--jp-content-font-size5);
background-position-y: calc(0.3 * var(--jp-content-font-size5));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='2'] {
font-size: var(--jp-content-font-size4);
background-position-y: calc(0.3 * var(--jp-content-font-size4));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='3'] {
font-size: var(--jp-content-font-size3);
background-position-y: calc(0.3 * var(--jp-content-font-size3));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='4'] {
font-size: var(--jp-content-font-size2);
background-position-y: calc(0.3 * var(--jp-content-font-size2));
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='5'] {
font-size: var(--jp-content-font-size1);
background-position-y: top;
}
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='6'] {
font-size: var(--jp-content-font-size0);
background-position-y: top;
}
/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {
display: none;
}
.jp-Notebook.jp-mod-showHiddenCellsButton
:is(.jp-MarkdownCell:hover, .jp-mod-active)
.jp-collapseHeadingButton {
display: flex;
}
/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which
is a consequence of the showHiddenCellsButton option in Notebook Settings)*/
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {
margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
margin-top: var(--jp-code-padding);
border: 1px solid var(--jp-border-color2);
background-color: var(--jp-border-color3) !important;
color: var(--jp-content-font-color0) !important;
display: flex;
}
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {
background-color: var(--jp-border-color2) !important;
}
.jp-showHiddenCellsButton {
display: none;
}
/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/
/*
Using block instead of flex to allow the use of the break-inside CSS property for
cell outputs.
*/
@media print {
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: block;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
:root {
--jp-notebook-toolbar-padding: 2px 5px 2px 2px;
}
/*-----------------------------------------------------------------------------
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-NotebookPanel-toolbar {
padding: var(--jp-notebook-toolbar-padding);
/* disable paint containment from lumino 2.0 default strict CSS containment */
contain: style size !important;
}
.jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused {
border: none;
box-shadow: none;
}
.jp-Notebook-toolbarCellTypeDropdown select {
height: 24px;
font-size: var(--jp-ui-font-size1);
line-height: 14px;
border-radius: 0;
display: block;
}
.jp-Notebook-toolbarCellTypeDropdown span {
top: 5px !important;
}
.jp-Toolbar-responsive-popup {
position: absolute;
height: fit-content;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end;
border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
box-shadow: var(--jp-toolbar-box-shadow);
background: var(--jp-toolbar-background);
min-height: var(--jp-toolbar-micro-height);
padding: var(--jp-notebook-toolbar-padding);
z-index: 1;
right: 0;
top: 0;
}
.jp-Toolbar > .jp-Toolbar-responsive-opener {
margin-left: auto;
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/
.jp-Notebook-ExecutionIndicator {
position: relative;
display: inline-block;
height: 100%;
z-index: 9997;
}
.jp-Notebook-ExecutionIndicator-tooltip {
visibility: hidden;
height: auto;
width: max-content;
width: -moz-max-content;
background-color: var(--jp-layout-color2);
color: var(--jp-ui-font-color1);
text-align: justify;
border-radius: 6px;
padding: 0 5px;
position: fixed;
display: table;
}
.jp-Notebook-ExecutionIndicator-tooltip.up {
transform: translateX(-50%) translateY(-100%) translateY(-32px);
}
.jp-Notebook-ExecutionIndicator-tooltip.down {
transform: translateX(calc(-100% + 16px)) translateY(5px);
}
.jp-Notebook-ExecutionIndicator-tooltip.hidden {
display: none;
}
.jp-Notebook-ExecutionIndicator:hover .jp-Notebook-ExecutionIndicator-tooltip {
visibility: visible;
}
.jp-Notebook-ExecutionIndicator span {
font-size: var(--jp-ui-font-size1);
font-family: var(--jp-ui-font-family);
color: var(--jp-ui-font-color1);
line-height: 24px;
display: block;
}
.jp-Notebook-ExecutionIndicator-progress-bar {
display: flex;
justify-content: center;
height: 100%;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
/*
* Execution indicator
*/
.jp-tocItem-content::after {
content: '';
/* Must be identical to form a circle */
width: 12px;
height: 12px;
background: none;
border: none;
position: absolute;
right: 0;
}
.jp-tocItem-content[data-running='0']::after {
border-radius: 50%;
border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
background: none;
}
.jp-tocItem-content[data-running='1']::after {
border-radius: 50%;
border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
background-color: var(--jp-inverse-layout-color3);
}
.jp-tocItem-content[data-running='0'],
.jp-tocItem-content[data-running='1'] {
margin-right: 12px;
}
/*
* Copyright (c) Jupyter Development Team.
* Distributed under the terms of the Modified BSD License.
*/
.jp-Notebook-footer {
height: 27px;
margin-left: calc(
var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
var(--jp-cell-padding)
);
width: calc(
100% -
(
var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
var(--jp-cell-padding) + var(--jp-cell-padding)
)
);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
color: var(--jp-ui-font-color3);
margin-top: 6px;
background: none;
cursor: pointer;
}
.jp-Notebook-footer:focus {
border-color: var(--jp-cell-editor-active-border-color);
}
/* For devices that support hovering, hide footer until hover */
@media (hover: hover) {
.jp-Notebook-footer {
opacity: 0;
}
.jp-Notebook-footer:focus,
.jp-Notebook-footer:hover {
opacity: 1;
}
}
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| Imports
|----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------
| CSS variables
|----------------------------------------------------------------------------*/
:root {
--jp-side-by-side-output-size: 1fr;
--jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size);
--jp-private-notebook-dragImage-width: 304px;
--jp-private-notebook-dragImage-height: 36px;
--jp-private-notebook-selected-color: var(--md-blue-400);
--jp-private-notebook-active-color: var(--md-green-400);
}
/*-----------------------------------------------------------------------------
| Notebook
|----------------------------------------------------------------------------*/
/* stylelint-disable selector-max-class */
.jp-NotebookPanel {
display: block;
height: 100%;
}
.jp-NotebookPanel.jp-Document {
min-width: 240px;
min-height: 120px;
}
.jp-Notebook {
padding: var(--jp-notebook-padding);
outline: none;
overflow: auto;
background: var(--jp-layout-color0);
}
.jp-Notebook.jp-mod-scrollPastEnd::after {
display: block;
content: '';
min-height: var(--jp-notebook-scroll-padding);
}
.jp-MainAreaWidget-ContainStrict .jp-Notebook * {
contain: strict;
}
.jp-Notebook .jp-Cell {
overflow: visible;
}
.jp-Notebook .jp-Cell .jp-InputPrompt {
cursor: move;
}
/*-----------------------------------------------------------------------------
| Notebook state related styling
|
| The notebook and cells each have states, here are the possibilities:
|
| - Notebook
| - Command
| - Edit
| - Cell
| - None
| - Active (only one can be active)
| - Selected (the cells actions are applied to)
| - Multiselected (when multiple selected, the cursor)
| - No outputs
|----------------------------------------------------------------------------*/
/* Command or edit modes */
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
opacity: var(--jp-cell-prompt-not-active-opacity);
color: var(--jp-cell-prompt-not-active-font-color);
}
.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
opacity: var(--jp-cell-prompt-not-active-opacity);
color: var(--jp-cell-prompt-not-active-font-color);
}
/* cell is active */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
background: var(--jp-brand-color1);
}
/* cell is dirty */
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
color: var(--jp-warn-color1);
}
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt::before {
color: var(--jp-warn-color1);
content: '•';
}
.jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
background: var(--jp-warn-color1);
}
/* collapser is hovered */
.jp-Notebook .jp-Cell .jp-Collapser:hover {
box-shadow: var(--jp-elevation-z2);
background: var(--jp-brand-color1);
opacity: var(--jp-cell-collapser-not-active-hover-opacity);
}
/* cell is active and collapser is hovered */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
background: var(--jp-brand-color0);
opacity: 1;
}
/* Command mode */
.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
background: var(--jp-notebook-multiselected-color);
}
.jp-Notebook.jp-mod-commandMode
.jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
background: transparent;
}
/* Edit mode */
.jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
box-shadow: var(--jp-input-box-shadow);
background-color: var(--jp-cell-editor-active-background);
}
/*-----------------------------------------------------------------------------
| Notebook drag and drop
|----------------------------------------------------------------------------*/
.jp-Notebook-cell.jp-mod-dropSource {
opacity: 0.5;
}
.jp-Notebook-cell.jp-mod-dropTarget,
.jp-Notebook.jp-mod-commandMode
.jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
border-top-color: var(--jp-private-notebook-selected-color);
border-top-style: solid;
border-top-width: 2px;
}
.jp-dragImage {
display: block;
flex-direction: row;
width: var(--jp-private-notebook-dragImage-width);
height: var(--jp-private-notebook-dragImage-height);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background);
overflow: visible;
}
.jp-dragImage-singlePrompt {
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
}
.jp-dragImage .jp-dragImage-content {
flex: 1 1 auto;
z-index: 2;
font-size: var(--jp-code-font-size);
font-family: var(--jp-code-font-family);
line-height: var(--jp-code-line-height);
padding: var(--jp-code-padding);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
background: var(--jp-cell-editor-background-color);
color: var(--jp-content-font-color3);
text-align: left;
margin: 4px 4px 4px 0;
}
.jp-dragImage .jp-dragImage-prompt {
flex: 0 0 auto;
min-width: 36px;
color: var(--jp-cell-inprompt-font-color);
padding: var(--jp-code-padding);
padding-left: 12px;
font-family: var(--jp-cell-prompt-font-family);
letter-spacing: var(--jp-cell-prompt-letter-spacing);
line-height: 1.9;
font-size: var(--jp-code-font-size);
border: var(--jp-border-width) solid transparent;
}
.jp-dragImage-multipleBack {
z-index: -1;
position: absolute;
height: 32px;
width: 300px;
top: 8px;
left: 8px;
background: var(--jp-layout-color2);
border: var(--jp-border-width) solid var(--jp-input-border-color);
box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
}
/*-----------------------------------------------------------------------------
| Cell toolbar
|----------------------------------------------------------------------------*/
.jp-NotebookTools {
display: block;
min-width: var(--jp-sidebar-min-width);
color: var(--jp-ui-font-color1);
background: var(--jp-layout-color1);
/* This is needed so that all font sizing of children done in ems is
* relative to this base size */
font-size: var(--jp-ui-font-size1);
overflow: auto;
}
.jp-ActiveCellTool {
padding: 12px 0;
display: flex;
}
.jp-ActiveCellTool-Content {
flex: 1 1 auto;
}
.jp-ActiveCellTool .jp-ActiveCellTool-CellContent {
background: var(--jp-cell-editor-background);
border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
border-radius: 0;
min-height: 29px;
}
.jp-ActiveCellTool .jp-InputPrompt {
min-width: calc(var(--jp-cell-prompt-width) * 0.75);
}
.jp-ActiveCellTool-CellContent > pre {
padding: 5px 4px;
margin: 0;
white-space: normal;
}
.jp-MetadataEditorTool {
flex-direction: column;
padding: 12px 0;
}
.jp-RankedPanel > :not(:first-child) {
margin-top: 12px;
}
.jp-KeySelector select.jp-mod-styled {
font-size: var(--jp-ui-font-size1);
color: var(--jp-ui-font-color0);
border: var(--jp-border-width) solid var(--jp-border-color1);
}
.jp-KeySelector label,
.jp-MetadataEditorTool label,
.jp-NumberSetter label {
line-height: 1.4;
}
.jp-NotebookTools .jp-select-wrapper {
margin-top: 4px;
margin-bottom: 0;
}
.jp-NumberSetter input {
width: 100%;
margin-top: 4px;
}
.jp-NotebookTools .jp-Collapse {
margin-top: 16px;
}
/*-----------------------------------------------------------------------------
| Presentation Mode (.jp-mod-presentationMode)
|----------------------------------------------------------------------------*/
.jp-mod-presentationMode .jp-Notebook {
--jp-content-font-size1: var(--jp-content-presentation-font-size1);
--jp-code-font-size: var(--jp-code-presentation-font-size);
}
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
flex: 0 0 110px;
}
/*-----------------------------------------------------------------------------
| Side-by-side Mode (.jp-mod-sideBySide)
|----------------------------------------------------------------------------*/
.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell {
margin-top: 3em;
margin-bottom: 3em;
margin-left: 5%;
margin-right: 5%;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell {
display: grid;
grid-template-columns: minmax(0, 1fr) min-content minmax(
0,
var(--jp-side-by-side-output-size)
);
grid-template-rows: auto minmax(0, 1fr) auto;
grid-template-areas:
'header header header'
'input handle output'
'footer footer footer';
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell {
grid-template-columns: minmax(0, 1fr) min-content minmax(
0,
var(--jp-side-by-side-resized-cell)
);
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellHeader {
grid-area: header;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-inputWrapper {
grid-area: input;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-outputWrapper {
/* overwrite the default margin (no vertical separation needed in side by side move */
margin-top: 0;
grid-area: output;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellFooter {
grid-area: footer;
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle {
grid-area: handle;
user-select: none;
display: block;
height: 100%;
cursor: ew-resize;
padding: 0 var(--jp-cell-padding);
}
.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle::after {
content: '';
display: block;
background: var(--jp-border-color2);
height: 100%;
width: 5px;
}
.jp-mod-sideBySide.jp-Notebook
.jp-CodeCell.jp-mod-resizedCell
.jp-CellResizeHandle::after {
background: var(--jp-border-color0);
}
.jp-CellResizeHandle {
display: none;
}
/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/
.jp-Cell-Placeholder {
padding-left: 55px;
}
.jp-Cell-Placeholder-wrapper {
background: #fff;
border: 1px solid;
border-color: #e5e6e9 #dfe0e4 #d0d1d5;
border-radius: 4px;
-webkit-border-radius: 4px;
margin: 10px 15px;
}
.jp-Cell-Placeholder-wrapper-inner {
padding: 15px;
position: relative;
}
.jp-Cell-Placeholder-wrapper-body {
background-repeat: repeat;
background-size: 50% auto;
}
.jp-Cell-Placeholder-wrapper-body div {
background: #f6f7f8;
background-image: -webkit-linear-gradient(
left,
#f6f7f8 0%,
#edeef1 20%,
#f6f7f8 40%,
#f6f7f8 100%
);
background-repeat: no-repeat;
background-size: 800px 104px;
height: 104px;
position: absolute;
right: 15px;
left: 15px;
top: 15px;
}
div.jp-Cell-Placeholder-h1 {
top: 20px;
height: 20px;
left: 15px;
width: 150px;
}
div.jp-Cell-Placeholder-h2 {
left: 15px;
top: 50px;
height: 10px;
width: 100px;
}
div.jp-Cell-Placeholder-content-1,
div.jp-Cell-Placeholder-content-2,
div.jp-Cell-Placeholder-content-3 {
left: 15px;
right: 15px;
height: 10px;
}
div.jp-Cell-Placeholder-content-1 {
top: 100px;
}
div.jp-Cell-Placeholder-content-2 {
top: 120px;
}
div.jp-Cell-Placeholder-content-3 {
top: 140px;
}
</style>
<style type="text/css">
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
/*
The following CSS variables define the main, public API for styling JupyterLab.
These variables should be used by all plugins wherever possible. In other
words, plugins should not define custom colors, sizes, etc unless absolutely
necessary. This enables users to change the visual theme of JupyterLab
by changing these variables.
Many variables appear in an ordered sequence (0,1,2,3). These sequences
are designed to work well together, so for example, `--jp-border-color1` should
be used with `--jp-layout-color1`. The numbers have the following meanings:
* 0: super-primary, reserved for special emphasis
* 1: primary, most important under normal situations
* 2: secondary, next most important under normal situations
* 3: tertiary, next most important under normal situations
Throughout JupyterLab, we are mostly following principles from Google's
Material Design when selecting colors. We are not, however, following
all of MD as it is not optimized for dense, information rich UIs.
*/
:root {
/* Elevation
*
* We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here:
*
* https://github.com/material-components/material-components-web
* https://material-components-web.appspot.com/elevation.html
*/
--jp-shadow-base-lightness: 0;
--jp-shadow-umbra-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.2
);
--jp-shadow-penumbra-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.14
);
--jp-shadow-ambient-color: rgba(
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
var(--jp-shadow-base-lightness),
0.12
);
--jp-elevation-z0: none;
--jp-elevation-z1: 0 2px 1px -1px var(--jp-shadow-umbra-color),
0 1px 1px 0 var(--jp-shadow-penumbra-color),
0 1px 3px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z2: 0 3px 1px -2px var(--jp-shadow-umbra-color),
0 2px 2px 0 var(--jp-shadow-penumbra-color),
0 1px 5px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z4: 0 2px 4px -1px var(--jp-shadow-umbra-color),
0 4px 5px 0 var(--jp-shadow-penumbra-color),
0 1px 10px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z6: 0 3px 5px -1px var(--jp-shadow-umbra-color),
0 6px 10px 0 var(--jp-shadow-penumbra-color),
0 1px 18px 0 var(--jp-shadow-ambient-color);
--jp-elevation-z8: 0 5px 5px -3px var(--jp-shadow-umbra-color),
0 8px 10px 1px var(--jp-shadow-penumbra-color),
0 3px 14px 2px var(--jp-shadow-ambient-color);
--jp-elevation-z12: 0 7px 8px -4px var(--jp-shadow-umbra-color),
0 12px 17px 2px var(--jp-shadow-penumbra-color),
0 5px 22px 4px var(--jp-shadow-ambient-color);
--jp-elevation-z16: 0 8px 10px -5px var(--jp-shadow-umbra-color),
0 16px 24px 2px var(--jp-shadow-penumbra-color),
0 6px 30px 5px var(--jp-shadow-ambient-color);
--jp-elevation-z20: 0 10px 13px -6px var(--jp-shadow-umbra-color),
0 20px 31px 3px var(--jp-shadow-penumbra-color),
0 8px 38px 7px var(--jp-shadow-ambient-color);
--jp-elevation-z24: 0 11px 15px -7px var(--jp-shadow-umbra-color),
0 24px 38px 3px var(--jp-shadow-penumbra-color),
0 9px 46px 8px var(--jp-shadow-ambient-color);
/* Borders
*
* The following variables, specify the visual styling of borders in JupyterLab.
*/
--jp-border-width: 1px;
--jp-border-color0: var(--md-grey-400);
--jp-border-color1: var(--md-grey-400);
--jp-border-color2: var(--md-grey-300);
--jp-border-color3: var(--md-grey-200);
--jp-inverse-border-color: var(--md-grey-600);
--jp-border-radius: 2px;
/* UI Fonts
*
* The UI font CSS variables are used for the typography all of the JupyterLab
* user interface elements that are not directly user generated content.
*
* The font sizing here is done assuming that the body font size of --jp-ui-font-size1
* is applied to a parent element. When children elements, such as headings, are sized
* in em all things will be computed relative to that body size.
*/
--jp-ui-font-scale-factor: 1.2;
--jp-ui-font-size0: 0.83333em;
--jp-ui-font-size1: 13px; /* Base font size */
--jp-ui-font-size2: 1.2em;
--jp-ui-font-size3: 1.44em;
--jp-ui-font-family: system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI',
helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
'Segoe UI Symbol';
/*
* Use these font colors against the corresponding main layout colors.
* In a light theme, these go from dark to light.
*/
/* Defaults use Material Design specification */
--jp-ui-font-color0: rgba(0, 0, 0, 1);
--jp-ui-font-color1: rgba(0, 0, 0, 0.87);
--jp-ui-font-color2: rgba(0, 0, 0, 0.54);
--jp-ui-font-color3: rgba(0, 0, 0, 0.38);
/*
* Use these against the brand/accent/warn/error colors.
* These will typically go from light to darker, in both a dark and light theme.
*/
--jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);
--jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);
--jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);
--jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);
/* Content Fonts
*
* Content font variables are used for typography of user generated content.
*
* The font sizing here is done assuming that the body font size of --jp-content-font-size1
* is applied to a parent element. When children elements, such as headings, are sized
* in em all things will be computed relative to that body size.
*/
--jp-content-line-height: 1.6;
--jp-content-font-scale-factor: 1.2;
--jp-content-font-size0: 0.83333em;
--jp-content-font-size1: 14px; /* Base font size */
--jp-content-font-size2: 1.2em;
--jp-content-font-size3: 1.44em;
--jp-content-font-size4: 1.728em;
--jp-content-font-size5: 2.0736em;
/* This gives a magnification of about 125% in presentation mode over normal. */
--jp-content-presentation-font-size1: 17px;
--jp-content-heading-line-height: 1;
--jp-content-heading-margin-top: 1.2em;
--jp-content-heading-margin-bottom: 0.8em;
--jp-content-heading-font-weight: 500;
/* Defaults use Material Design specification */
--jp-content-font-color0: rgba(0, 0, 0, 1);
--jp-content-font-color1: rgba(0, 0, 0, 0.87);
--jp-content-font-color2: rgba(0, 0, 0, 0.54);
--jp-content-font-color3: rgba(0, 0, 0, 0.38);
--jp-content-link-color: var(--md-blue-900);
--jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont,
'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji',
'Segoe UI Emoji', 'Segoe UI Symbol';
/*
* Code Fonts
*
* Code font variables are used for typography of code and other monospaces content.
*/
--jp-code-font-size: 13px;
--jp-code-line-height: 1.3077; /* 17px for 13px base */
--jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
--jp-code-font-family-default: menlo, consolas, 'DejaVu Sans Mono', monospace;
--jp-code-font-family: var(--jp-code-font-family-default);
/* This gives a magnification of about 125% in presentation mode over normal. */
--jp-code-presentation-font-size: 16px;
/* may need to tweak cursor width if you change font size */
--jp-code-cursor-width0: 1.4px;
--jp-code-cursor-width1: 2px;
--jp-code-cursor-width2: 4px;
/* Layout
*
* The following are the main layout colors use in JupyterLab. In a light
* theme these would go from light to dark.
*/
--jp-layout-color0: white;
--jp-layout-color1: white;
--jp-layout-color2: var(--md-grey-200);
--jp-layout-color3: var(--md-grey-400);
--jp-layout-color4: var(--md-grey-600);
/* Inverse Layout
*
* The following are the inverse layout colors use in JupyterLab. In a light
* theme these would go from dark to light.
*/
--jp-inverse-layout-color0: #111;
--jp-inverse-layout-color1: var(--md-grey-900);
--jp-inverse-layout-color2: var(--md-grey-800);
--jp-inverse-layout-color3: var(--md-grey-700);
--jp-inverse-layout-color4: var(--md-grey-600);
/* Brand/accent */
--jp-brand-color0: var(--md-blue-900);
--jp-brand-color1: var(--md-blue-700);
--jp-brand-color2: var(--md-blue-300);
--jp-brand-color3: var(--md-blue-100);
--jp-brand-color4: var(--md-blue-50);
--jp-accent-color0: var(--md-green-900);
--jp-accent-color1: var(--md-green-700);
--jp-accent-color2: var(--md-green-300);
--jp-accent-color3: var(--md-green-100);
/* State colors (warn, error, success, info) */
--jp-warn-color0: var(--md-orange-900);
--jp-warn-color1: var(--md-orange-700);
--jp-warn-color2: var(--md-orange-300);
--jp-warn-color3: var(--md-orange-100);
--jp-error-color0: var(--md-red-900);
--jp-error-color1: var(--md-red-700);
--jp-error-color2: var(--md-red-300);
--jp-error-color3: var(--md-red-100);
--jp-success-color0: var(--md-green-900);
--jp-success-color1: var(--md-green-700);
--jp-success-color2: var(--md-green-300);
--jp-success-color3: var(--md-green-100);
--jp-info-color0: var(--md-cyan-900);
--jp-info-color1: var(--md-cyan-700);
--jp-info-color2: var(--md-cyan-300);
--jp-info-color3: var(--md-cyan-100);
/* Cell specific styles */
--jp-cell-padding: 5px;
--jp-cell-collapser-width: 8px;
--jp-cell-collapser-min-height: 20px;
--jp-cell-collapser-not-active-hover-opacity: 0.6;
--jp-cell-editor-background: var(--md-grey-100);
--jp-cell-editor-border-color: var(--md-grey-300);
--jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);
--jp-cell-editor-active-background: var(--jp-layout-color0);
--jp-cell-editor-active-border-color: var(--jp-brand-color1);
--jp-cell-prompt-width: 64px;
--jp-cell-prompt-font-family: var(--jp-code-font-family-default);
--jp-cell-prompt-letter-spacing: 0;
--jp-cell-prompt-opacity: 1;
--jp-cell-prompt-not-active-opacity: 0.5;
--jp-cell-prompt-not-active-font-color: var(--md-grey-700);
/* A custom blend of MD grey and blue 600
* See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
--jp-cell-inprompt-font-color: #307fc1;
/* A custom blend of MD grey and orange 600
* https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */
--jp-cell-outprompt-font-color: #bf5b3d;
/* Notebook specific styles */
--jp-notebook-padding: 10px;
--jp-notebook-select-background: var(--jp-layout-color1);
--jp-notebook-multiselected-color: var(--md-blue-50);
/* The scroll padding is calculated to fill enough space at the bottom of the
notebook to show one single-line cell (with appropriate padding) at the top
when the notebook is scrolled all the way to the bottom. We also subtract one
pixel so that no scrollbar appears if we have just one single-line cell in the
notebook. This padding is to enable a 'scroll past end' feature in a notebook.
*/
--jp-notebook-scroll-padding: calc(
100% - var(--jp-code-font-size) * var(--jp-code-line-height) -
var(--jp-code-padding) - var(--jp-cell-padding) - 1px
);
/* Rendermime styles */
--jp-rendermime-error-background: #fdd;
--jp-rendermime-table-row-background: var(--md-grey-100);
--jp-rendermime-table-row-hover-background: var(--md-light-blue-50);
/* Dialog specific styles */
--jp-dialog-background: rgba(0, 0, 0, 0.25);
/* Console specific styles */
--jp-console-padding: 10px;
/* Toolbar specific styles */
--jp-toolbar-border-color: var(--jp-border-color1);
--jp-toolbar-micro-height: 8px;
--jp-toolbar-background: var(--jp-layout-color1);
--jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.24);
--jp-toolbar-header-margin: 4px 4px 0 4px;
--jp-toolbar-active-background: var(--md-grey-300);
/* Statusbar specific styles */
--jp-statusbar-height: 24px;
/* Input field styles */
--jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);
--jp-input-active-background: var(--jp-layout-color1);
--jp-input-hover-background: var(--jp-layout-color1);
--jp-input-background: var(--md-grey-100);
--jp-input-border-color: var(--jp-inverse-border-color);
--jp-input-active-border-color: var(--jp-brand-color1);
--jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);
/* General editor styles */
--jp-editor-selected-background: #d9d9d9;
--jp-editor-selected-focused-background: #d7d4f0;
--jp-editor-cursor-color: var(--jp-ui-font-color0);
/* Code mirror specific styles */
--jp-mirror-editor-keyword-color: #008000;
--jp-mirror-editor-atom-color: #88f;
--jp-mirror-editor-number-color: #080;
--jp-mirror-editor-def-color: #00f;
--jp-mirror-editor-variable-color: var(--md-grey-900);
--jp-mirror-editor-variable-2-color: rgb(0, 54, 109);
--jp-mirror-editor-variable-3-color: #085;
--jp-mirror-editor-punctuation-color: #05a;
--jp-mirror-editor-property-color: #05a;
--jp-mirror-editor-operator-color: #a2f;
--jp-mirror-editor-comment-color: #408080;
--jp-mirror-editor-string-color: #ba2121;
--jp-mirror-editor-string-2-color: #708;
--jp-mirror-editor-meta-color: #a2f;
--jp-mirror-editor-qualifier-color: #555;
--jp-mirror-editor-builtin-color: #008000;
--jp-mirror-editor-bracket-color: #997;
--jp-mirror-editor-tag-color: #170;
--jp-mirror-editor-attribute-color: #00c;
--jp-mirror-editor-header-color: blue;
--jp-mirror-editor-quote-color: #090;
--jp-mirror-editor-link-color: #00c;
--jp-mirror-editor-error-color: #f00;
--jp-mirror-editor-hr-color: #999;
/*
RTC user specific colors.
These colors are used for the cursor, username in the editor,
and the icon of the user.
*/
--jp-collaborator-color1: #ffad8e;
--jp-collaborator-color2: #dac83d;
--jp-collaborator-color3: #72dd76;
--jp-collaborator-color4: #00e4d0;
--jp-collaborator-color5: #45d4ff;
--jp-collaborator-color6: #e2b1ff;
--jp-collaborator-color7: #ff9de6;
/* Vega extension styles */
--jp-vega-background: white;
/* Sidebar-related styles */
--jp-sidebar-min-width: 250px;
/* Search-related styles */
--jp-search-toggle-off-opacity: 0.5;
--jp-search-toggle-hover-opacity: 0.8;
--jp-search-toggle-on-opacity: 1;
--jp-search-selected-match-background-color: rgb(245, 200, 0);
--jp-search-selected-match-color: black;
--jp-search-unselected-match-background-color: var(
--jp-inverse-layout-color0
);
--jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);
/* Icon colors that work well with light or dark backgrounds */
--jp-icon-contrast-color0: var(--md-purple-600);
--jp-icon-contrast-color1: var(--md-green-600);
--jp-icon-contrast-color2: var(--md-pink-600);
--jp-icon-contrast-color3: var(--md-blue-600);
/* Button colors */
--jp-accept-color-normal: var(--md-blue-700);
--jp-accept-color-hover: var(--md-blue-800);
--jp-accept-color-active: var(--md-blue-900);
--jp-warn-color-normal: var(--md-red-700);
--jp-warn-color-hover: var(--md-red-800);
--jp-warn-color-active: var(--md-red-900);
--jp-reject-color-normal: var(--md-grey-600);
--jp-reject-color-hover: var(--md-grey-700);
--jp-reject-color-active: var(--md-grey-800);
/* File or activity icons and switch semantic variables */
--jp-jupyter-icon-color: #f37626;
--jp-notebook-icon-color: #f37626;
--jp-json-icon-color: var(--md-orange-700);
--jp-console-icon-background-color: var(--md-blue-700);
--jp-console-icon-color: white;
--jp-terminal-icon-background-color: var(--md-grey-800);
--jp-terminal-icon-color: var(--md-grey-200);
--jp-text-editor-icon-color: var(--md-grey-700);
--jp-inspector-icon-color: var(--md-grey-700);
--jp-switch-color: var(--md-grey-400);
--jp-switch-true-position-color: var(--md-orange-900);
}
</style>
<style type="text/css">
/* Force rendering true colors when outputing to pdf */
* {
-webkit-print-color-adjust: exact;
}
/* Misc */
a.anchor-link {
display: none;
}
/* Input area styling */
.jp-InputArea {
overflow: hidden;
}
.jp-InputArea-editor {
overflow: hidden;
}
.cm-editor.cm-s-jupyter .highlight pre {
/* weird, but --jp-code-padding defined to be 5px but 4px horizontal padding is hardcoded for pre.cm-line */
padding: var(--jp-code-padding) 4px;
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
color: inherit;
}
.jp-OutputArea-output pre {
line-height: inherit;
font-family: inherit;
}
.jp-RenderedText pre {
color: var(--jp-content-font-color1);
font-size: var(--jp-code-font-size);
}
/* Hiding the collapser by default */
.jp-Collapser {
display: none;
}
@page {
margin: 0.5in; /* Margin for each printed piece of paper */
}
@media print {
.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
display: block;
}
}
</style>
<!-- Load mathjax -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
init_mathjax = function() {
if (window.MathJax) {
// MathJax loaded
MathJax.Hub.Config({
TeX: {
equationNumbers: {
autoNumber: "AMS",
useLabelIds: true
}
},
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
displayAlign: 'center',
messageStyle: 'none',
CommonHTML: {
linebreaks: {
automatic: true
}
}
});
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}
}
init_mathjax();
</script>
<!-- End of mathjax configuration --><script type="module">
document.addEventListener("DOMContentLoaded", async () => {
const diagrams = document.querySelectorAll(".jp-Mermaid > pre.mermaid");
// do not load mermaidjs if not needed
if (!diagrams.length) {
return;
}
const mermaid = (await import("https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs")).default;
const parser = new DOMParser();
mermaid.initialize({
maxTextSize: 100000,
maxEdges: 100000,
startOnLoad: false,
fontFamily: window
.getComputedStyle(document.body)
.getPropertyValue("--jp-ui-font-family"),
theme: document.querySelector("body[data-jp-theme-light='true']")
? "default"
: "dark",
});
let _nextMermaidId = 0;
function makeMermaidImage(svg) {
const img = document.createElement("img");
const doc = parser.parseFromString(svg, "image/svg+xml");
const svgEl = doc.querySelector("svg");
const { maxWidth } = svgEl?.style || {};
const firstTitle = doc.querySelector("title");
const firstDesc = doc.querySelector("desc");
img.setAttribute("src", `data:image/svg+xml,${encodeURIComponent(svg)}`);
if (maxWidth) {
img.width = parseInt(maxWidth);
}
if (firstTitle) {
img.setAttribute("alt", firstTitle.textContent);
}
if (firstDesc) {
const caption = document.createElement("figcaption");
caption.className = "sr-only";
caption.textContent = firstDesc.textContent;
return [img, caption];
}
return [img];
}
async function makeMermaidError(text) {
let errorMessage = "";
try {
await mermaid.parse(text);
} catch (err) {
errorMessage = `${err}`;
}
const result = document.createElement("details");
result.className = 'jp-RenderedMermaid-Details';
const summary = document.createElement("summary");
summary.className = 'jp-RenderedMermaid-Summary';
const pre = document.createElement("pre");
const code = document.createElement("code");
code.innerText = text;
pre.appendChild(code);
summary.appendChild(pre);
result.appendChild(summary);
const warning = document.createElement("pre");
warning.innerText = errorMessage;
result.appendChild(warning);
return [result];
}
async function renderOneMarmaid(src) {
const id = `jp-mermaid-${_nextMermaidId++}`;
const parent = src.parentNode;
let raw = src.textContent.trim();
const el = document.createElement("div");
el.style.visibility = "hidden";
document.body.appendChild(el);
let results = null;
let output = null;
try {
let { svg } = await mermaid.render(id, raw, el);
svg = cleanMermaidSvg(svg);
results = makeMermaidImage(svg);
output = document.createElement("figure");
results.map(output.appendChild, output);
} catch (err) {
parent.classList.add("jp-mod-warning");
results = await makeMermaidError(raw);
output = results[0];
} finally {
el.remove();
}
parent.classList.add("jp-RenderedMermaid");
parent.appendChild(output);
}
/**
* Post-process to ensure mermaid diagrams contain only valid SVG and XHTML.
*/
function cleanMermaidSvg(svg) {
return svg.replace(RE_VOID_ELEMENT, replaceVoidElement);
}
/**
* A regular expression for all void elements, which may include attributes and
* a slash.
*
* @see https://developer.mozilla.org/en-US/docs/Glossary/Void_element
*
* Of these, only `<br>` is generated by Mermaid in place of `\n`,
* but _any_ "malformed" tag will break the SVG rendering entirely.
*/
const RE_VOID_ELEMENT =
/<\s*(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\s*([^>]*?)\s*>/gi;
/**
* Ensure a void element is closed with a slash, preserving any attributes.
*/
function replaceVoidElement(match, tag, rest) {
rest = rest.trim();
if (!rest.endsWith('/')) {
rest = `${rest} /`;
}
return `<${tag} ${rest}>`;
}
void Promise.all([...diagrams].map(renderOneMarmaid));
});
</script>
<style>
.jp-Mermaid:not(.jp-RenderedMermaid) {
display: none;
}
.jp-RenderedMermaid {
overflow: auto;
display: flex;
}
.jp-RenderedMermaid.jp-mod-warning {
width: auto;
padding: 0.5em;
margin-top: 0.5em;
border: var(--jp-border-width) solid var(--jp-warn-color2);
border-radius: var(--jp-border-radius);
color: var(--jp-ui-font-color1);
font-size: var(--jp-ui-font-size1);
white-space: pre-wrap;
word-wrap: break-word;
}
.jp-RenderedMermaid figure {
margin: 0;
overflow: auto;
max-width: 100%;
}
.jp-RenderedMermaid img {
max-width: 100%;
}
.jp-RenderedMermaid-Details > pre {
margin-top: 1em;
}
.jp-RenderedMermaid-Summary {
color: var(--jp-warn-color2);
}
.jp-RenderedMermaid:not(.jp-mod-warning) pre {
display: none;
}
.jp-RenderedMermaid-Summary > pre {
display: inline-block;
white-space: normal;
}
</style>
<!-- End of mermaid configuration --></head>
<body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light">
<main>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=9dd8f8d0">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h1 id="Exercises-week-36">Exercises week 36<a class="anchor-link" href="#Exercises-week-36"></a></h1><h2 id="Deriving-and-Implementing-Ridge-Regression">Deriving and Implementing Ridge Regression<a class="anchor-link" href="#Deriving-and-Implementing-Ridge-Regression"></a></h2>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=6b5c366c">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>Python Code can be found at <a href="https://github.uio.no/larsbog/FYS-STK4155">https://github.uio.no/larsbog/FYS-STK4155</a></strong></p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=e5cc5739">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Learning-goals">Learning goals<a class="anchor-link" href="#Learning-goals"></a></h2><p>After completing these exercises, you will know how to</p>
<ul>
<li>Take more derivatives of simple products between vectors and matrices</li>
<li>Implement Ridge regression using the analytical expressions</li>
<li>Scale data appropriately for linear regression</li>
<li>Evaluate a model across two different hyperparameters</li>
</ul>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=427d9b9d">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Exercise-1---Choice-of-model-and-degrees-of-freedom">Exercise 1 - Choice of model and degrees of freedom<a class="anchor-link" href="#Exercise-1---Choice-of-model-and-degrees-of-freedom"></a></h2>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=ff6ebdb5">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>a)</strong> How many degrees of freedom does an OLS model fit to the features $x, x^2, x^3$ and the intercept have?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=b4ea1834">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
<p>A ordinary least squares model fit with $n$ features has $n$ free parameters. In this case $n=4$, as the intercept can be interpreted as a separate feature.</p>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=43d5ceca">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>b)</strong> Why is it bad for a model to have too many degrees of freedom?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=54f77cc5">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
If we have too many degrees of freedom our model is at danger of overfitting the training data, i.e. trading a very low bias with a high variance in the bias-variance-tradeoff. The model adjusts to every slightest variation in the training data.
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=053f115d">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>c)</strong> Why is it bad for a model to have too few degrees of freedom?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=fabceb50">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
Because in this case the model is not able to reproduce the structure of the problem well enough and this leads to a very high bias (underfitting). Imagine approximating a circle with a straight line, as we have no degree of freedom left to describe the curvature.
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=6eef6aaa">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>d)</strong> Read <a href="https://link.springer.com/book/10.1007/978-0-387-84858-7">chapter 3.4.1 of Hastie et al.'s book</a>. What is the expression for the effective degrees of freedom of the ridge regression fit?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=d79b8cbc">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
The number of effective degrees of freedom is given by
<p>$$
n_\text{effective} = \sum_{i=1}^{n_\text{features}} \frac{d_i^2}{d_i^2 + \lambda}
$$</p>
<p>where $d_i$ is the singular value of variable $i$.</p>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=428d20c5">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>e)</strong> Why might we want to use Ridge regression instead of OLS?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=57d76adb">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
We might want to use Ridge regression instead of OLS to control overfitting within a problem with many input features as we can effectively reduce the $n_{dof}$ of the problem.
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=868b27f1">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>f)</strong> Why migth we want to use OLS instead of Ridge regression?</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=07b73cba">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
If our goal is to describe a dataset as close as possible, OLS outperforms Ridge regression, as Ridge regression systematically underestimates our parameters of the model.
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=a78b2ce2">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Exercise-2---Deriving-the-expression-for-Ridge-Regression">Exercise 2 - Deriving the expression for Ridge Regression<a class="anchor-link" href="#Exercise-2---Deriving-the-expression-for-Ridge-Regression"></a></h2><p>The aim here is to derive the expression for the optimal parameters using Ridge regression.</p>
<p>The expression for the standard Mean Squared Error (MSE) which we used to define our cost function and the equations for the ordinary least squares (OLS) method, was given by the optimization problem</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=93a7ad16">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>$$
{\displaystyle \min_{\boldsymbol{\beta}\in {\mathbb{R}}^{p}}}\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)\right\}.
$$</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=6b182c01">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>By minimizing the above equation with respect to the parameters $\boldsymbol{\beta}$ we could then obtain an analytical expression for the parameters $\boldsymbol{\hat\beta_{OLS}}$.</p>
<p>We can add a regularization parameter $\lambda$ by
defining a new cost function to be optimized, that is</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=fb065daf">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>$$
{\displaystyle \min_{\boldsymbol{\beta}\in
{\mathbb{R}}^{p}}}\frac{1}{n}\vert\vert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\vert\vert_2^2+\lambda\vert\vert \boldsymbol{\beta}\vert\vert_2^2
$$</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=89ae11e8">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p>which leads to the Ridge regression minimization problem. (One can require as part of the optimization problem that $\vert\vert \boldsymbol{\beta}\vert\vert_2^2\le t$, where $t$ is a finite number larger than zero. We will not implement that in this course.)</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=456d58d4">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h3 id="a)-Expression-for-Ridge-regression">a) Expression for Ridge regression<a class="anchor-link" href="#a)-Expression-for-Ridge-regression"></a></h3><p>Show that the optimal parameters
$$
\hat{\boldsymbol{\beta}}_{\mathrm{Ridge}} = \left(\boldsymbol{X}^T\boldsymbol{X}+\lambda\boldsymbol{I}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y},
$$
with $\boldsymbol{I}$ being a $p\times p$ identity matrix.</p>
<p>The ordinary least squares result is
$$
\hat{\boldsymbol{\beta}}_{\mathrm{OLS}} = \left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y},
$$</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=8939b1b0">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<div class="alert alert-block alert-success">
<p>Differentiate the objective and set the gradient to zero:
$$
\nabla_{\beta}\big(\|y-X\beta\|_2^2+\lambda\|\beta\|_2^2\big)
= -2X^{\!T}(y-X\beta)+2\lambda\beta
= -2X^{\!T}y+2X^{\!T}X\beta+2\lambda\beta = 0 .
$$
This yields the equation
$$
\big(X^{\!T}X+\lambda I_p\big)\beta = X^{\!T}y .
$$
For $\lambda&gt;0$, $X^{\!T}X+\lambda I_p$ is positive definite (hence invertible), so
$$
\hat{\beta}_{\mathrm{Ridge}}
=\big(X^{\!T}X+\lambda I_p\big)^{-1}X^{\!T}y
$$
which reduces to OLS, $\hat\beta_{\mathrm{OLS}}=(X^{\!T}X)^{-1}X^{\!T}y$, when $\lambda=0$ (assuming $X^{\!T}X$ invertible).</p>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=2faaae78">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Exercise-3---Scaling-data">Exercise 3 - Scaling data<a class="anchor-link" href="#Exercise-3---Scaling-data"></a></h2>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=8ed79466">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [1]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.model_selection</span><span class="w"> </span><span class="kn">import</span> <span class="n">train_test_split</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.preprocessing</span><span class="w"> </span><span class="kn">import</span> <span class="n">StandardScaler</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=59d6f347">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [2]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">n</span> <span class="o">=</span> <span class="mi">100</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">x</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="mf">1.5</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="p">(</span><span class="n">x</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=c9fc9fe0">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>a)</strong> Adapt your function from last week to only include the intercept column if the boolean argument <code>intercept</code> is set to true.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=5aa9c86d">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [3]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">polynomial_features</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">intercept</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="k">if</span> <span class="n">intercept</span><span class="p">:</span>
<span class="n">P</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">p</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">P</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">p</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
<span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">x</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">],</span> <span class="n">P</span><span class="p">)</span>
<span class="k">return</span> <span class="n">X</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=c5924634">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>b)</strong> Split your data into training and test data(80/20 split)</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=676541e7">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [4]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">X</span> <span class="o">=</span> <span class="n">polynomial_features</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=f895606f">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [5]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">X_train</span><span class="p">,</span> <span class="n">X_test</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_test</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.2</span><span class="p">)</span>
<span class="n">x_train</span> <span class="o">=</span> <span class="n">X_train</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">]</span> <span class="c1"># These are used for plotting</span>
<span class="n">x_test</span> <span class="o">=</span> <span class="n">X_test</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">]</span> <span class="c1"># These are used for plotting</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=a58f05ad">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>c)</strong> Scale your design matrix with the sklearn standard scaler, though based on the mean and standard deviation of the training data only.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=0c07995a">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">scaler</span> <span class="o">=</span> <span class="n">StandardScaler</span><span class="p">()</span>
<span class="n">scaler</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span>
<span class="n">X_train_s</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span>
<span class="n">X_test_s</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span>
<span class="n">y_offset</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">y_train</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=c41cc7ea">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [7]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">x_s</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">X</span><span class="p">)[:,</span> <span class="mi">0</span><span class="p">]</span> <span class="c1"># These are used for plotting</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=63b86003">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Exercise-4---Implementing-Ridge-Regression">Exercise 4 - Implementing Ridge Regression<a class="anchor-link" href="#Exercise-4---Implementing-Ridge-Regression"></a></h2>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=a2f52ef2">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>a)</strong> Implement a function for computing the optimal Ridge parameters using the expression from <strong>2a)</strong>.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=69f19bde">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [8]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">Ridge_parameters</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">lam</span> <span class="o">=</span> <span class="mf">0.01</span><span class="p">):</span>
<span class="c1"># Assumes X is scaled and has no intercept column</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">inv</span><span class="p">(</span><span class="n">X</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">X</span> <span class="o">+</span> <span class="n">lam</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">eye</span><span class="p">(</span><span class="n">X</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> <span class="o">@</span> <span class="n">X</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">y</span>
<span class="n">beta</span> <span class="o">=</span> <span class="n">Ridge_parameters</span><span class="p">(</span><span class="n">X_train_s</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=626c81ba">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>b)</strong> Fit a model to the data, and plot the prediction using both the training and test x-values extracted before scaling, and the y_offset.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=f9ba0655">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [9]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x_train</span><span class="p">,</span> <span class="n">X_train_s</span> <span class="o">@</span> <span class="n">beta</span> <span class="o">+</span> <span class="n">y_offset</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x_test</span><span class="p">,</span> <span class="n">X_test_s</span> <span class="o">@</span> <span class="n">beta</span> <span class="o">+</span> <span class="n">y_offset</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child jp-OutputArea-executeResult">
<div class="jp-OutputPrompt jp-OutputArea-prompt">Out[9]:</div>
<div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain" tabindex="0">
<pre>&lt;matplotlib.collections.PathCollection at 0x7f4f71186490&gt;</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZAdJREFUeJzt3Xl4lOX1//H3TFaWJJAEskBI2CFEWQ2ERQVBQIrVLlpcgmhtpdIW+bVVWoUvtRVtq6WtFJe61AWVqihuQUQR2YyAUSDshD17IBtkm+f5/ZHFBLLMhElmJvm8rmuuq0yeZ+ZkiuTkvs85t8U0TRMRERERF7G6OgARERFp35SMiIiIiEspGRERERGXUjIiIiIiLqVkRERERFxKyYiIiIi4lJIRERERcSklIyIiIuJS3q4OwB6GYXD69GkCAgKwWCyuDkdERETsYJomhYWFREZGYrU2vP7hEcnI6dOniYqKcnUYIiIi0gwnTpygZ8+eDX7dI5KRgIAAqPpmAgMDXR2OiIiI2KGgoICoqKian+MNcTgZ2bhxI3/961/ZsWMH6enprF69mhtuuKHRe0pLS/njH//IK6+8QkZGBhERESxatIg777zTrves3poJDAxUMiIiIuJhmiqxcDgZKS4uZujQodx555384Ac/sOuem266iczMTJ577jn69etHeno6hmE4+tYiIiLSBjmcjEyfPp3p06fbfX1SUhKff/45R44cITg4GICYmBhH31ZERETaqBZv7V2zZg2jRo3iL3/5Cz169GDAgAH85je/4fz58w3eU1paSkFBQZ2HiIiItE0tXsB65MgRNm3ahL+/P6tXryYnJ4df/OIX5Obm8sILL9R7z9KlS1myZElLhyYiIiJuoMVXRgzDwGKx8OqrrxIfH891113HE088wX//+98GV0cWLlxIfn5+zePEiRMtHaaIiIi4SIuvjERERNCjRw+CgoJqnhs8eDCmaXLy5En69+9/0T1+fn74+fm1dGgiIiLiBlp8ZWTcuHGcPn2aoqKimucOHDiA1WptdACKiIiItA8OJyNFRUWkpKSQkpICQFpaGikpKRw/fhyqtlgSExNrrr/lllsICQlhzpw5pKamsnHjRn77299y55130qFDB2d+LyIiIuKBHE5Gtm/fzvDhwxk+fDgACxYsYPjw4SxatAiA9PT0msQEoHPnzqxbt46z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sGHDeOqpp+x6z9bapmmKo5NMx1hTed33T01e95OyB9lmtFzdiLpiRETEFVqkm6asrIwdO3awcOHCmuesViuTJ09m69at9d6zdetWFixYUOe5qVOn8s477zjy1m6h9kqJPUPGko1BnDaDm6wZaWziq6NcPYRNRETEUQ4lIzk5OdhsNsLC6p7xEhYWxr599dc9ZGRk1Ht9RkZGg+9TWlpKaWlpzZ8LCgocCbNFVdeV1DY1LqJO4etrycfJKCjBwMqS8kSe8l2GiQVLMya+NsUZA9ZERERcyS1be5cuXcqSJUtcHYbdLkxQ5k3qV2v1ZAxGyQi81j5QZ+JrliWExWXfTXzt0tEHgLPnymuusVq+S1rQqoeIiLRRDiUjoaGheHl5kZmZWef5zMxMwsPD670nPDzcoesBFi5cWGdrp6CggKioKEdCdamLV0++D4O/B8e2QFEmdA6jW1QCdxzL57paSQVQZwtoZHRXdhw7o8RDRETaNIeSEV9fX0aOHMn69eu54YYboKqAdf369cybN6/eexISEli/fj3z58+veW7dunUkJCQ0+D5+fn74+bWxU2CtXtB7Qs0fveCi7R7qea6+a0RERNoSh7dpFixYwOzZsxk1ahTx8fEsW7aM4uJi5syZA0BiYiI9evRg6dKlAPz617/mqquu4vHHH2fGjBm8/vrrbN++nWeeecb5342IiIh4HIeTkZtvvpns7GwWLVpERkYGw4YNIykpqaZI9fjx41it3xVkjh07lpUrV/Lggw/y+9//nv79+/POO++4/YwRERERaR0aBy8iIiItokXHwYuIiIg4i5IRERERcSklIyIiIuJSSkZERETEpZSMiIiIiEspGRERERGXcsuzaS5U3X3sTgfmiYiISOOqf243NUXEI5KRwsJCAI86n0ZEREQqFRYWEhQU1ODXPWLomWEYnD59moCAACwW5x0UV30A34kTJzRMzQ76vOynz8p++qzsp8/Kfvqs7NeSn5VpmhQWFhIZGVlnOvuFPGJlxGq10rNnzxZ7/cDAQP1ldYA+L/vps7KfPiv76bOynz4r+7XUZ9XYikg1FbCKiIiISykZEREREZdq18mIn58fixcvxs/Pz9WheAR9XvbTZ2U/fVb202dlP31W9nOHz8ojClhFRESk7WrXKyMiIiLiekpGRERExKWUjIiIiIhLKRkRERERl1IyUsv1119Pr1698Pf3JyIigttvv53Tp0+7Oiy3c/ToUe666y569+5Nhw4d6Nu3L4sXL6asrMzVobmlP//5z4wdO5aOHTvSpUsXV4fjVpYvX05MTAz+/v6MHj2a5ORkV4fkljZu3MjMmTOJjIzEYrHwzjvvuDokt7V06VKuuOIKAgIC6N69OzfccAP79+93dVhuacWKFVx++eU1w84SEhL46KOPXBKLkpFaJk6cyKpVq9i/fz9vvfUWhw8f5kc/+pGrw3I7+/btwzAMnn76afbs2cPf//53nnrqKX7/+9+7OjS3VFZWxo9//GPmzp3r6lDcyhtvvMGCBQtYvHgxO3fuZOjQoUydOpWsrCxXh+Z2iouLGTp0KMuXL3d1KG7v888/595772Xbtm2sW7eO8vJyrr32WoqLi10dmtvp2bMnjz76KDt27GD79u1MmjSJ73//++zZs6f1gzGlQe+++65psVjMsrIyV4fi9v7yl7+YvXv3dnUYbu2FF14wg4KCXB2G24iPjzfvvffemj/bbDYzMjLSXLp0qUvjcneAuXr1aleH4TGysrJMwPz8889dHYpH6Nq1q/mf//yn1d9XKyMNyMvL49VXX2Xs2LH4+Pi4Ohy3l5+fT3BwsKvDEA9RVlbGjh07mDx5cs1zVquVyZMns3XrVpfGJm1Lfn4+gP59aoLNZuP111+nuLiYhISEVn9/JSMXuP/+++nUqRMhISEcP36cd99919Uhub1Dhw7xr3/9i5///OeuDkU8RE5ODjabjbCwsDrPh4WFkZGR4bK4pG0xDIP58+czbtw44uLiXB2OW9q1axedO3fGz8+Pe+65h9WrVxMbG9vqcbT5ZOSBBx7AYrE0+ti3b1/N9b/97W/5+uuv+fjjj/Hy8iIxMZH2MqTW0c8K4NSpU0ybNo0f//jH3H333S6LvbU157MSkdZ17733snv3bl5//XVXh+K2Bg4cSEpKCl9++SVz585l9uzZpKamtnocbX4cfHZ2Nrm5uY1e06dPH3x9fS96/uTJk0RFRbFlyxaXLFu1Nkc/q9OnT3P11VczZswYXnzxRazWNp/b1mjO36sXX3yR+fPnc/bs2VaI0L2VlZXRsWNH3nzzTW644Yaa52fPns3Zs2e1ItkIi8XC6tWr63xucrF58+bx7rvvsnHjRnr37u3qcDzG5MmT6du3L08//XSrvq93q76bC3Tr1o1u3bo1617DMAAoLS11clTuyZHP6tSpU0ycOJGRI0fywgsvtKtEhEv8eyXg6+vLyJEjWb9+fc0PVcMwWL9+PfPmzXN1eOLBTNPkl7/8JatXr2bDhg1KRBxkGIZLfua1+WTEXl9++SVfffUV48ePp2vXrhw+fJiHHnqIvn37totVEUecOnWKq6++mujoaP72t7+RnZ1d87Xw8HCXxuaOjh8/Tl5eHsePH8dms5GSkgJAv3796Ny5s6vDc5kFCxYwe/ZsRo0aRXx8PMuWLaO4uJg5c+a4OjS3U1RUxKFDh2r+nJaWRkpKCsHBwfTq1culsbmbe++9l5UrV/Luu+8SEBBQU4MUFBREhw4dXB2eW1m4cCHTp0+nV69eFBYWsnLlSjZs2MDatWtbP5hW799xU99++605ceJEMzg42PTz8zNjYmLMe+65xzx58qSrQ3M7L7zwggnU+5CLzZ49u97P6rPPPnN1aC73r3/9y+zVq5fp6+trxsfHm9u2bXN1SG7ps88+q/fv0OzZs10dmttp6N+mF154wdWhuZ0777zTjI6ONn19fc1u3bqZ11xzjfnxxx+7JJY2XzMiIiIi7q19bfSLiIiI21EyIiIiIi6lZERERERcSsmIiIiIuJSSEREREXEpJSMiIiLiUkpGRERExKWUjIiIiIhLKRkRERERl1IyIiIiIi6lZERERERcSsmIiIiIuNT/B8vyNfNbOquFAAAAAElFTkSuQmCC"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=2993cfae">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<h2 id="Exercise-4---Testing-multiple-hyperparameters">Exercise 4 - Testing multiple hyperparameters<a class="anchor-link" href="#Exercise-4---Testing-multiple-hyperparameters"></a></h2>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=e6cdc89a">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>a)</strong> Compute the MSE of your ridge model for polynomials of degrees 1 to 5 with lambda set to 0.01. Plot the MSE as a function of polynomial degree.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=a2524d2d">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [10]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.metrics</span><span class="w"> </span><span class="kn">import</span> <span class="n">mean_squared_error</span>
<span class="k">def</span><span class="w"> </span><span class="nf">evaluate_model</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">lam</span><span class="p">,</span> <span class="n">intercept</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="n">X_train</span> <span class="o">=</span> <span class="n">polynomial_features</span><span class="p">(</span><span class="n">x_train</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">intercept</span><span class="p">)</span>
<span class="n">X_test</span> <span class="o">=</span> <span class="n">polynomial_features</span><span class="p">(</span><span class="n">x_test</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="n">intercept</span><span class="p">)</span>
<span class="n">scaler</span> <span class="o">=</span> <span class="n">StandardScaler</span><span class="p">()</span>
<span class="n">X_train</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span>
<span class="n">X_test</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span>
<span class="n">beta</span> <span class="o">=</span> <span class="n">Ridge_parameters</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">lam</span><span class="p">)</span>
<span class="n">y_pred_train</span> <span class="o">=</span> <span class="n">X_train</span> <span class="o">@</span> <span class="n">beta</span>
<span class="n">y_pred</span> <span class="o">=</span> <span class="n">X_test</span> <span class="o">@</span> <span class="n">beta</span>
<span class="k">return</span> <span class="n">mean_squared_error</span><span class="p">(</span><span class="n">y_train</span><span class="p">,</span> <span class="n">y_pred_train</span><span class="p">),</span> <span class="n">mean_squared_error</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">)</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">):</span>
<span class="n">mse_train</span><span class="p">,</span> <span class="n">mse_test</span> <span class="o">=</span> <span class="n">evaluate_model</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="mf">0.01</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
<span class="n">mse_values</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">mse_train</span><span class="p">,</span> <span class="n">mse_test</span><span class="p">))</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">mse_values</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">),</span> <span class="n">mse_values</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="s1">'o'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Train'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">),</span> <span class="n">mse_values</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="s1">'o'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Test'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'Polynomial Degree'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'Mean Squared Error'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,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"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=4c5dc12e">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>b)</strong> Compute the MSE of your ridge model for a polynomial with degree 3, and with lambdas from $10^{-1}$ to $10^{-5}$ on a logarithmic scale. Plot the MSE as a function of lambda.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=84db3721">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [11]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">mse_values</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">lam_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="k">for</span> <span class="n">lam</span> <span class="ow">in</span> <span class="n">lam_values</span><span class="p">:</span>
<span class="n">mse_train</span><span class="p">,</span> <span class="n">mse_test</span> <span class="o">=</span> <span class="n">evaluate_model</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">lam</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
<span class="n">mse_values</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">mse_train</span><span class="p">,</span> <span class="n">mse_test</span><span class="p">))</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">mse_values</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">lam_values</span><span class="p">,</span> <span class="n">mse_values</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="s1">'o'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Train'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">lam_values</span><span class="p">,</span> <span class="n">mse_values</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">marker</span><span class="o">=</span><span class="s1">'o'</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">'Test'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xscale</span><span class="p">(</span><span class="s1">'log'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'Regularization Strength (lambda)'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'Mean Squared Error'</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,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ta4fCxERETUAKs+DFBsbi9zcXIWOym+88QZ++uknoHx02V9//dVoOi5zHiQiIiLDo/F5kL7//nuFof3x8fFYu3Yt1q9fj5MnT6J58+ZYuHDhs0dOREREpGMq32L7559/0LNnT/nyjh07MHLkSIwbNw4AsHjxYnm/ISIiIiJDpnIL0qNHjxSaohITE9G3b1/5cvv27aud3JGIiIjIkKicILm4uCA5ORkon3n64sWL6N27t3x7VlYWrK2ttRMlERERUT1S+RZbREQE3n77bVy8eBH79+9Hp06d4OvrK9+emJiILl26aCtOIiIionqjcoI0e/ZsFBUV4bfffoODgwO2bt2qsP3o0aMYO3asNmIkIiIiqlcqD/MnRRzmT0REZHg0PsyfiIiIqLFggkRERESkhAkSERERkRImSERERERKmCARERERKVF5mH8FiUSCuLg4JCQk4M6dO5BKpQrb9+/fr8n4iIiIiOqd2gnSu+++i7i4ODz//PPo0qULRCKRdiIjIiIi0hG1E6RNmzZhy5YtGDZsmHYiIiIiItIxtfsgmZqaws3NTTvREBEREekBtROk999/H19//TU4ATcRERE1VGrfYjty5AgOHDiAP//8E507d4aJiYnC9t9++02T8RERERHVO7UTpObNmyMsLEw70RARERHpAbUTpLVr12onEiIiIiI9wYkiiYiIiJSo3YIEANu2bcOWLVuQkZGBkpIShW0pKSmaio2IiIhIJ9RuQfrmm28wadIk2Nvb4/Tp0/D390fLli1x7do1DB06VDtREhEREdUjtROk1atX4/vvv8e3334LU1NTzJ49G3v37sX06dORl5ennSiJiIiI6pHaCVJGRgaCgoIAAE2aNMHDhw8BAOPHj8fGjRs1HyERERFRPVM7QXJwcEBOTg4AoG3btjh27BgA4Pr165w8koiIiBoEtROkgQMHYufOnQCASZMmYcaMGRg8eDDCw8M5PxIRERE1CCJBzWYfqVQKqVQKY2PZALhNmzYhMTER7u7umDp1KkxNTbUVq17Jz8+HtbU18vLyYGVlpetwiIiISAWqfn+rnSCRDBMkIiIiw6Pq93edJoo8fPgwXnvtNQQGBuJ///sfAODnn3/GkSNH6h4xERERkZ5QO0H69ddfERISgiZNmuD06dMoLi4GAOTl5WHx4sXaiJGIiIioXqmdIH322WeIiYnBDz/8ABMTE/n63r17cxZtIiIiahDUTpBSU1PRt2/fSuutra2Rm5tbpyBWrVoFV1dXmJubIyAgACdOnKi2bFxcHEQikcLL3Ny8UrnLly9jxIgRsLa2hqWlJfz8/JCRkSHf/vjxY7z99tto2bIlmjZtihdffBHZ2dl1ip+IiIgaljrNg3T16tVK648cOYL27durHcDmzZsRFRWFBQsWICUlBd7e3ggJCcGdO3eq3cfKygqZmZnyV3p6usL2tLQ09OnTB506dcLBgwdx7tw5fPzxxwqJ1IwZM7Br1y5s3boVhw4dwu3btzF69Gi14yciIqIGSFDT4sWLBS8vL+HYsWNCs2bNhMOHDwsbNmwQWrVqJXzzzTfqHk7w9/cX3n77bfmyRCIRnJychOjo6CrLr127VrC2tq7xmOHh4cJrr71W7fbc3FzBxMRE2Lp1q3zd5cuXBQBCUlKSSnHn5eUJAIS8vDyVyhMREZHuqfr9rXYL0pw5c/Dqq69i0KBBKCgoQN++fTFlyhRMnToV06ZNU+tYJSUlSE5ORnBwsHydWCxGcHAwkpKSqt2voKAALi4ucHZ2xsiRI3Hx4kX5NqlUit27d6Njx44ICQmBnZ0dAgICsH37dnmZ5ORklJaWKpy3U6dOaNu2bbXnLS4uRn5+vsKLiIiIGia1EySRSIR58+YhJycHFy5cwLFjx3D37l0sWrRI7ZPfu3cPEokE9vb2Cuvt7e2RlZVV5T4eHh6IjY3Fjh07sGHDBkilUgQFBeHWrVsAgDt37qCgoABLlixBaGgo9uzZg7CwMIwePRqHDh0CAGRlZcHU1BTNmzdX+bzR0dGwtraWv5ydndWuLxERERkG47ruaGpqCi8vL81Go4LAwEAEBgbKl4OCguDp6Yk1a9Zg0aJFkEqlAICRI0dixowZAAAfHx8kJiYiJiYG/fr1q9N5586di6ioKPlyfn4+kyQiIqIGSuUE6fXXX1epXGxsrMont7W1hZGRUaXRY9nZ2XBwcFDpGCYmJujevbu847itrS2MjY0rJW+enp7yiSwdHBxQUlKC3NxchVakms5rZmYGMzMzletGREREhkvlW2xxcXE4cOAAcnNz8eDBg2pf6jA1NYWvry8SEhLk66RSKRISEhRaiWoikUhw/vx5ODo6yo/p5+eH1NRUhXJXrlyBi4sLAMDX1xcmJiYK501NTUVGRobK5yUiIqKGS+UWpDfffBMbN27E9evXMWnSJLz22mto0aLFMwcQFRWFiIgI9OzZE/7+/lixYgUKCwsxadIkAMCECRPQunVrREdHAwA+/fRT9OrVC25ubsjNzcXSpUuRnp6OKVOmyI85a9YshIeHo2/fvhgwYADi4+Oxa9cuHDx4ECifs2ny5MmIiopCixYtYGVlhWnTpiEwMBC9evV65joRERGRgVNnaNzjx4+Ff//730JwcLBgYWEhvPTSS0J8fLwglUqfacjdt99+K7Rt21YwNTUV/P39hWPHjsm39evXT4iIiJAvv/fee/Ky9vb2wrBhw4SUlJRKx/zpp58ENzc3wdzcXPD29ha2b9+usP3Ro0fCW2+9JdjY2AgWFhZCWFiYkJmZqXLMHOZPRERkeFT9/hYJgiDUJbFKT09HXFwc1q9fj7KyMly8eBFNmzbVfAanp1R9GjARERHpD1W/v9Ue5i/fUSyGSCSCIAiQSCR1PQwRERGR3lErQSouLsbGjRsxePBgdOzYEefPn8fKlSuRkZHRqFqPiIiIqGFTuZP2W2+9hU2bNsHZ2Rmvv/46Nm7cCFtbW+1GR0RERKQDKvdBEovFaNu2Lbp37w6RSFRtud9++02T8ekt9kEiIiIyPKp+f6vcgjRhwoQaEyMiIiKihkLlBCkuLk67kRARERHpiTqPYiMiIiJqqJggERERESlhgkRERESkhAkSERERkRImSERERERKmCARERERKWGCRERERKSECRIRERGREiZIREREREqYIBEREREpYYJEREREpIQJEhEREZESJkhERERESpggERERESlhgkRERESkhAkSERERkRImSERERERKmCARERERKWGCRERERKSECRIRERGREiZIREREREqYIBEREREpYYJEREREpIQJEhEREZESJkhERERESpggERERESlhgkRERESkRC8SpFWrVsHV1RXm5uYICAjAiRMnqi0bFxcHkUik8DI3N1coM3HixEplQkNDFcpcuXIFI0eOhK2tLaysrNCnTx8cOHBAa3UkIiIiw6HzBGnz5s2IiorCggULkJKSAm9vb4SEhODOnTvV7mNlZYXMzEz5Kz09vVKZ0NBQhTIbN25U2P7CCy+grKwM+/fvR3JyMry9vfHCCy8gKytLK/UkIiIiw6HzBGn58uWIjIzEpEmT4OXlhZiYGFhYWCA2Nrba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"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=5dfec17d">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown">
<p><strong>c)</strong> Compute the MSE of your ridge model for polynomials of degrees 1 to 5, and with lambdas from $10^{-1}$ to $10^{-5}$ on a logarithmic scale. Plot the MSE as a function of polynomial degree and lambda using a <a href="https://matplotlib.org/stable/gallery/images_contours_and_fields/image_annotated_heatmap.html">heatmap</a>.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=f0ea7224">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [16]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">p_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">)</span>
<span class="n">lam_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">8</span><span class="p">)</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">p_values</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">lam_values</span><span class="p">),</span> <span class="mi">2</span><span class="p">))</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">p</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">p_values</span><span class="p">):</span>
<span class="k">for</span> <span class="n">j</span><span class="p">,</span> <span class="n">lam</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lam_values</span><span class="p">):</span>
<span class="n">mse_train</span><span class="p">,</span> <span class="n">mse_test</span> <span class="o">=</span> <span class="n">evaluate_model</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">lam</span><span class="o">=</span><span class="n">lam</span><span class="p">,</span> <span class="n">intercept</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">mse_values</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">mse_train</span>
<span class="n">mse_values</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">mse_test</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">mse_values</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=248399ff">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [17]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="n">fig</span><span class="p">,</span> <span class="p">(</span><span class="n">ax1</span><span class="p">,</span> <span class="n">ax2</span><span class="p">)</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">ncols</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="n">heatmap</span> <span class="o">=</span> <span class="n">ax1</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">mse_values</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">aspect</span><span class="o">=</span><span class="s1">'auto'</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">'nearest'</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">'viridis'</span><span class="p">)</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Train MSE'</span><span class="p">)</span>
<span class="n">fig</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">heatmap</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax1</span><span class="p">)</span>
<span class="n">heatmap</span> <span class="o">=</span> <span class="n">ax2</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">mse_values</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">aspect</span><span class="o">=</span><span class="s1">'auto'</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">'nearest'</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">'viridis'</span><span class="p">)</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Test MSE'</span><span class="p">)</span>
<span class="n">fig</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">heatmap</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax2</span><span class="p">)</span>
<span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="p">(</span><span class="n">ax1</span><span class="p">,</span> <span class="n">ax2</span><span class="p">):</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">'Regularization Strength (lambda)'</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">'Polynomial Degree'</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lam_values</span><span class="p">)))</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">([</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">lam</span><span class="si">:</span><span class="s2">.2e</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">lam</span> <span class="ow">in</span> <span class="n">lam_values</span><span class="p">],</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">45</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">p_values</span><span class="p">)))</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_yticklabels</span><span class="p">([</span><span class="sa">f</span><span class="s2">"Degree </span><span class="si">{</span><span class="n">p</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">p_values</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABJcAAAHqCAYAAAC5ja9QAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAArnlJREFUeJzs3Xl4U1X+x/FPWrqwtAWELpRVUfa1CBQcFCiLDlDEUUbqsAioWATp6I9tAEGWQRRQRIpggVFAFBlhZF+mgiIDgiwqln2VsshSCrSF5P7+gAZDCyZNSprwfj3PfZ7Jzb0n3xtM85mTc841GYZhCAAAAAAAAMgDH3cXAAAAAAAAAM9F5xIAAAAAAADyjM4lAAAAAAAA5BmdSwAAAAAAAMgzOpcAAAAAAACQZ3QuAQAAAAAAIM/oXAIAAAAAAECe0bkEAAAAAACAPKNzCQAAAAAAAHlG5xKAu6J79+6qWLGiu8sAAAAAALgYnUvAPc5kMtm1JScnu7tUG8nJydbaPvnkk1yPadq0qUwmk2rWrGmzPysrS++++67q1aun4OBgFS9eXDVq1NALL7ygX375xXrc7Nmz7/iebNq0Kd+vEwAAFGx3M0tdvnxZb7zxht1tkZcA3C2F3F0AAPf6+OOPbR7/61//0urVq3Psr1atmlOvM2PGDFksFqfayE1gYKDmzZun5557zmb/oUOHtHHjRgUGBuY456mnntLy5cv17LPPqnfv3rp69ap++eUXffXVV2rSpImqVq1qc/yoUaNUqVKlHO1UrlzZ5dcDAAA8y93KUrrRuTRy5EhJ0mOPPWb3eeQlAPmNziXgHndryNi0aZNWr16dY/+tLl++rCJFitj9On5+fnmu8U6eeOIJLVmyRGfOnFGpUqWs++fNm6ewsDA9+OCDOnfunHX/li1b9NVXX2nMmDEaMmSITVvvv/++zp8/n+M1Hn/8cTVo0CBf6gcAAJ4tr1nqbiIvAchvTIsD8Icee+wx1axZU1u3blWzZs1UpEgRa9BYvHix/vznP6tMmTIKCAjQAw88oDfffFNms9mmjVvXXDp06JBMJpPefvttffjhh3rggQcUEBCghx9+WFu2bLG7ttjYWAUEBOjzzz+32T9v3jw988wz8vX1tdm/f/9+6cYQ8Fv5+vrqvvvus/u1AQAA7GGxWDR58mTVqFFDgYGBCgsL04svvmjToSNJ33//vdq0aaNSpUqpcOHCqlSpkp5//nnpRnYqXbq0JGnkyJHWaWdvvPHGH74+eQlAfmPkEgC7/Pbbb3r88cf117/+Vc8995zCwsKkG/PsixUrpoSEBBUrVkzr1q3T8OHDlZaWpgkTJvxhu/PmzdPFixf14osvymQy6a233lKnTp104MABu0Y7FSlSRLGxsZo/f7769OkjSdqxY4d++uknzZw5Uzt37rQ5vkKFCpKkuXPnqmnTpipU6I//DF64cEFnzpyx2WcymQhWAADALi+++KJmz56tHj16qF+/fjp48KDef/99/fDDD/r222/l5+enU6dOqXXr1ipdurQGDRqk4sWL69ChQ1q0aJEkqXTp0po2bZr69OmjJ598Up06dZIk1a5d+w9fn7wEIL/RuQTALqmpqUpMTNSLL75os3/evHkqXLiw9fFLL72kl156SR988IFGjx6tgICAO7Z75MgR7d27VyVKlJAkValSRbGxsVq5cqXatWtnV21dunRR+/btdfToUZUrV05z587V/fffr8aNG+c4tnHjxnr00Uc1Y8YMLVmyRC1atNAjjzyidu3aqXz58rm2HxMTk2NfQECAMjIy7KoPAADcu7755hvNnDlTc+fOVZcuXaz7mzdvrrZt2+rzzz9Xly5dtHHjRp07d06rVq2ymV42evRoSVLRokX1l7/8RX369FHt2rUdnnZHXgKQn5gWB8AuAQEB6tGjR479v+9Yunjxos6cOaM//elPunz5ss2dRG6nc+fO1o4lSfrTn/4kSTpw4IDdtbVu3VolS5bUp59+KsMw9Omnn+rZZ5/N9ViTyaSVK1dq9OjRKlGihObPn6/4+HhVqFBBnTt3znUNgalTp2r16tU22/Lly+2uDwAA3Ls+//xzhYSEqFWrVjpz5ox1i4qKUrFixfTf//5XklS8eHFJ0ldffaWrV6+6vA7yEoD8xMglAHaJjIyUv79/jv0//fST/vGPf2jdunVKS0uzee7ChQt/2O6tv35ldzTdugbBnfj5+enpp5/WvHnz1LBhQx09etTml8FbBQQEaOjQoRo6dKhOnDihr7/+Wu+++64+++wz+fn55bhVb8OGDVmgEgAA5MnevXt14cIFhYaG5vr8qVOnJEmPPvqonnrqKY0cOVKTJk3SY489po4dO6pLly5/OBLcHuQlAPmJziUAdvn9CKVs58+f16OPPqrg4GCNGjVKDzzwgAIDA7Vt2zYNHDhQFovlD9u9dQHJbIZhOFRfly5dlJiYqDfeeEN16tRR9erV7TovIiJCf/3rX/XUU0+pRo0a+uyzzzR79my71hYAAAD4IxaLRaGhoZo7d26uz2cv0m0ymbRw4UJt2rRJ//nPf7Ry5Uo9//zzeuedd7Rp0yYVK1bM6VrISwDyC38NAORZcnKyfvvtNy1atEjNmjWz7j948OBdr+WRRx5R+fLllZycrPHjxzt8vp+fn2rXrq29e/fqzJkzCg8Pz5c6AQDAveWBBx7QmjVr1LRp01x/rLtV48aN1bhxY40ZM0bz5s1TXFycPv30U/Xq1Usmk8mpWshLAPILay4ByLPsUUe/H2WUlZWlDz744K7XYjKZ9N5772nEiBH629/+dtvj9u7dqyNHjuTYf/78eX333XcqUaKE9RdEAAAAZz3zzDMym8168803czx37do16/pF586dyzFyu27dupKkzMxM6cZd33Qjt+QFeQlAfmHkEoA8a9KkiUqUKKFu3bqpX79+MplM+vjjjx2e0uYqsbGxio2NveMxO3bsUJcuXfT444/rT3/6k0qWLKnjx49rzpw5+vXXXzV58uQcU/WWL1+e6+LkTZo00f333+/y6wAAAN7j0Ucf1Ysvvqhx48Zp+/btat26tfz8/LR37159/vnnevfdd/WXv/xFc+bM0QcffKAnn3xSDzzwgC5evKgZM2YoODhYTzzxhHRjmYLq1atrwYIFeuihh1SyZEnVrFlTNWvWtLse8hKA/EDnEoA8u++++/TVV1/p73//u/7xj3+oRIkSeu6559SyZUu1adPG3eXlqlmzZnrzzTe1fPlyTZw4UadPn1ZQUJDq1aun8ePH66mnnspxzvDhw3Nta9asWYQlAADwhxITExUVFaXp06dryJAhKlSokCpWrKjnnntOTZs2lW50Qm3evFmffvqpTp48qZCQEDVs2FBz585VpUqVrG3NnDlTr7zyigYMGKCsrCyNGDHCoc4le5CXADjKZLhriAEAAAAAAAA8HmsuAQAAAAAAIM/oXAIAAAAAAECe0bkEAAAAAACAPKNzCQAAAAAAAHlG5xIAAAAAAADyjM4lAAAAAAAA5FkhdxeA3FksFv36668KCgqSyWRydzkAADcyDEMXL15UmTJl5OOTP78LZWRkKCsryyVt+fv7KzAw0CVtAfYiOwEAsnlSdvKW3ETnUgH166+/qly5cu4uAwBQgBw9elRly5Z1ebsZGRmqVKGYUk+ZXdJeeHi4Dh486BVBCZ6D7AQAuJUnZCdvyU10LhVQQUFBkqTD2yoquBizFwHgXpaWblGF+oes3w2ulpWVpdRTZh3eWlHBQc5956RdtKhC1CFlZWV5fEiCZyE7AQCyeUp28qbcROdSAZU9nDu4mI/TQR8A4B3ye6pPsSCTigU59xoWMR0J7kF2AgDcqqBnJ2/KTXQuAQAASZLZsMhsON8GAADAvcDZ7ORNuYmfdQAAAAAAAJBnjFwCAACSJIsMWeTc0CVnzwcAAPAUzmYnb8pNdC4BAABJkkUWOTs42/kWAAAAPIOz2cmbchOdSwAAQJJkNgyZDed+QXP2fAAAAE/hbHbyptzEmksAAAAAAADIM0YuAQAAiTWXAAAAHMKaSzfRuQQAAKQbAcdM5xIAAIBdnM1O3pSbmBYHAAAAAACAPGPkEgAAkJgWBwAA4BCmxd1E5xIAAJC4WxwAAIBDuFvcTUyLAwAAAAAAQJ4xcgkAAEiSLDc2Z9sAAAC4FzibnbwpN9G5BAAAJElmF9wtztnzAQAAPIWz2cmbchOdSwAAQJJkNq5vzrYBAABwL3A2O3lTbmLNJQAAAAAAAOQZI5cAAIDEmksAAAAOYc2lm+hcAgAAkiSLTDLL5HQbAAAA9wJns5M35SamxQEAAAAAACDPGLkEAAAkSRbj+uZsGwAAAPcCZ7OTN+UmOpcAAIAkyeyCaXHOng8AAOApnM1O3pSbmBYHAAAAAACAPGPkEgAAkBi5BAAA4BBGLt1E5xIAAJAkWQyTLIaTd4tz8nwAAABP4Wx28qbcROcSAACQGLkEAADgEEYu3cSaSwAAAAAAAMgzRi4BAABJklk+Mjv5u5PZZdUAAAAUbM5mJ2/KTXQuAQAASZLhgjWXDC9aOwAAAOBOnM1O3pSbmBYHAAAAAACAPHNr51L37t1lMplkMpnk5+ensLAwtWrVSklJSbJYLO4szWnr169X+/btVaZMGZlMJn355ZfuLgkAgDvKXpTS2Q35g9wEAEDBQm66ye0jl9q2basTJ07o0KFDWr58uZo3b67+/furXbt2unbtWr6+dlZWVr61fenSJdWpU0dTp07Nt9cAAMCVzIaPSzbkH3ITAAAFB7npJrdfSUBAgMLDwxUZGan69etryJAhWrx4sZYvX67Zs2dbjzt//rx69eql0qVLKzg4WC1atNCOHTts2ho9erRCQ0MVFBSkXr16adCgQapbt671+e7du6tjx44aM2aMypQpoypVqkiSjh49qmeeeUbFixdXyZIlFRsbq0OHDtm0PXPmTFWrVk2BgYGqWrWqPvjggzte1+OPP67Ro0frySefdNE7BQAA7nXkJgAAUBC5vXMpNy1atFCdOnW0aNEi676nn35ap06d0vLly7V161bVr19fLVu21NmzZyVJc+fO1ZgxYzR+/Hht3bpV5cuX17Rp03K0vXbtWqWkpGj16tX66quvdPXqVbVp00ZBQUHasGGDvv32WxUrVkxt27a1/kI3d+5cDR8+XGPGjNHu3bs1duxYDRs2THPmzLmL7woAAPnLIpMs8nFy857h3Z6C3AQAgHs4n53ylpumTp2qihUrKjAwUI0aNdLmzZvvePz58+cVHx+viIgIBQQE6KGHHtKyZcusz0+bNk21a9dWcHCwgoODFR0dreXLlztUU4G9W1zVqlW1c+dOSdI333yjzZs369SpUwoICJAkvf322/ryyy+1cOFCvfDCC5oyZYp69uypHj16SJKGDx+uVatWKT093abdokWLaubMmfL395ckffLJJ7JYLJo5c6ZMpuv/sLNmzVLx4sWVnJys1q1ba8SIEXrnnXfUqVMnSVKlSpX0888/a/r06erWrZtLrjczM1OZmZnWx2lpaS5pFwAAe7li7r83rR3gSe613CSyEwCgAHA2O+Xl3AULFighIUGJiYlq1KiRJk+erDZt2iglJUWhoaE5js/KylKrVq0UGhqqhQsXKjIyUocPH1bx4sWtx5QtW1b//Oc/9eCDD8owDM2ZM0exsbH64YcfVKNGDbvqKrCdS4ZhWEPLjh07lJ6ervvuu8/mmCtXrmj//v2SpJSUFL388ss2zzds2FDr1q2z2VerVi1rQMpue9++fQoKCrI5LiMjQ/v379elS5e0f/9+9ezZU71797Y+f+3aNYWEhLjseseNG6eRI0e6rD0AABzlirn/ZsNwWT2w372Wm0R2AgAUAM5mp7zkpokTJ6p3797WH4gSExO1dOlSJSUladCgQTmOT0pK0tmzZ7Vx40b5+flJkipWrGhzTPv27W0ejxkzRtOmTdOmTZs8v3Np9+7dqlSpkiQpPT1dERERSk5OznHc73vb7FG0aFGbx+np6YqKitLcuXNzHFu6dGnrL3gzZsxQo0aNbJ739fV16LXvZPDgwUpISLA+TktLU7ly5VzWPgAA8F73Wm4S2QkAcA/KysrS1q1bNXjwYOs+Hx8fxcTE6Lvvvsv1nCVLlig6Olrx8fFavHixSpcurS5dumjgwIG5fjebzWZ9/vnnunTpkqKjo+2urUB2Lq1bt067du3SgAEDJEn169dXamqqChUqlKOHLVuVKlW0ZcsWde3a1bpvy5Ytf/ha9evX14IFCxQaGqrg4OAcz4eEhKhMmTI6cOCA4uLinLquOwkICLAOXQcAwB2urxvg3LQ21ly6++7F3CSyEwCgAHA2O2Wfe+vU7tt9x505c0Zms1lhYWE2+8PCwvTLL7/k+hoHDhzQunXrFBcXp2XLlmnfvn16+eWXdfXqVY0YMcJ63K5duxQdHa2MjAwVK1ZM//73v1W9enW7r8XtC3pnZmYqNTVVx48f17Zt2zR27FjFxsaqXbt21sATExOj6OhodezYUatWrdKhQ4e0ceNGDR06VN9//70k6ZVXXtFHH32kOXPmaO/evRo9erR27txpHSJ+O3FxcSpVqpRiY2O1YcMGHTx4UMnJyerXr5+OHTsmSRo5cqTGjRun9957T3v27NGuXbs0a9YsTZw48bbtpqena/v27dq+fbsk6eDBg9q+fbuOHDniwncPAADXschHZic3i/ujhVcjNwEAUHA4m52yc1O5cuUUEhJi3caNG+e6Gi0WhYaG6sMPP1RUVJQ6d+6soUOHKjEx0ea4KlWqaPv27frf//6nPn36qFu3bvr555/tfh23j1xasWKFIiIiVKhQIZUoUUJ16tTRe++9p27dusnH5/obbTKZtGzZMg0dOlQ9evTQ6dOnFR4ermbNmll77OLi4nTgwAG99tprysjI0DPPPKPu3bv/4arpRYoU0fr16zVw4EB16tRJFy9eVGRkpFq2bGn9Ra5Xr14qUqSIJkyYoNdff11FixZVrVq19Oqrr9623e+//17Nmze3Ps4ett2tWzebWwUDAADYi9wEAID3OXr0qM2I4NuNzC1VqpR8fX118uRJm/0nT55UeHh4rudERETIz8/PZgpctWrVlJqaqqysLOvaiv7+/qpcubIkKSoqSlu2bNG7776r6dOn23UNJsPw3pU3W7VqpfDwcH388cfuLsVhaWlpCgkJ0bk99ys4iF+BAeBelnbRohIPHdCFCxdynYrkdPs3vnM+3V5dRYKcWxfn8kWz/lr353yrFfnHk3OTyE4AgN/xlOyUl9zUqFEjNWzYUFOmTJFujEwqX768+vbtm+uC3kOGDNG8efN04MAB6w9R7777rsaPH69ff/31tq/TokULlS9f3u4fedw+cslVLl++rMTERLVp00a+vr6aP3++1qxZo9WrV7u7NAAAPILFBdPaLPLa36y8CrkJAADnOZud8pKbEhIS1K1bNzVo0EANGzbU5MmTdenSJevd47p27arIyEjr1Lo+ffro/fffV//+/fXKK69o7969Gjt2rPr162dtc/DgwXr88cdVvnx5Xbx4UfPmzVNycrJWrlxpd11e07mUPQR8zJgxysjIUJUqVfTFF18oJibG3aUBAAAUKOQmAAA8U+fOnXX69GkNHz5cqampqlu3rlasWGGd+n7kyBHrCCXdWM9p5cqVGjBggGrXrq3IyEj1799fAwcOtB5z6tQpde3aVSdOnFBISIhq166tlStXqlWrVnbX5TWdS4ULF9aaNWvcXQYAAB7LbJhkNpy721tezp86daomTJig1NRU1alTR1OmTFHDhg1ve/z58+c1dOhQLVq0SGfPnlWFChU0efJkPfHEE3lu815DbgIAwHnOZqe8ntu3b1/17ds31+eSk5Nz7IuOjtamTZtu295HH32Upzp+jwnpAABAkpy+U1z25ogFCxYoISFBI0aM0LZt21SnTh21adNGp06dyvX4rKwstWrVSocOHdLChQuVkpKiGTNmKDIyMs9tAgAA5MXdzk0FmfdcCQAAcIrF8HHJ5oiJEyeqd+/e6tGjh6pXr67ExEQVKVJESUlJuR6flJSks2fP6ssvv1TTpk1VsWJFPfroo6pTp06e2wQAAMiLu52bCjLvuRIAAFBgpKWl2WyZmZk5jsnKytLWrVtt1vnx8fFRTEyMvvvuu1zbXbJkiaKjoxUfH6+wsDDVrFlTY8eOldlsznObAAAAcA6dSwAAQHLxtLhy5copJCTEumXfseT3zpw5I7PZbF2AMltYWJhSU1NzrfHAgQNauHChzGazli1bpmHDhumdd97R6NGj89wmAABAXjAt7iavWdAbAAA4x+LEwpK/b0OSjh49quDgYOv+gIAAJ6u70b7FotDQUH344Yfy9fVV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N1k5PC0uJCREq1ev1jfffKOdO3cqPT1d9evXV0xMTP5UCAAA7hLTjc3ZNvB7ZCcAALyVs9nJe3KTw51L2R555BE98sgjrq0GAADAS5GdAACAt3Koc8lisWj27NlatGiRDh06JJPJpEqVKukvf/mL/va3v8lk8p5eNwAA7jmuGJ7tRcO7XYHsBACAF3M2O3lRbrJ7zSXDMNShQwf16tVLx48fV61atVSjRg0dPnxY3bt315NPPpm/lQIAgPzFmksuRXYCAMDLkZus7B65NHv2bK1fv15r165V8+bNbZ5bt26dOnbsqH/961/q2rVrftQJAADym2G6vjnbBiSyEwAA3s/Z7ORFucnukUvz58/XkCFDcoQjSWrRooUGDRqkuXPnuro+AAAAj0R2AgAA9wq7O5d27typtm3b3vb5xx9/XDt27HBVXQAA4C4zDNdsuI7sBACAdyM33WT3tLizZ88qLCzsts+HhYXp3LlzrqoLAADcbSzo7VJkJwAAvBwLelvZPXLJbDarUKHb90X5+vrq2rVrrqoLAADAo5GdAADAvcLukUuGYah79+4KCAjI9fnMzExX1gUAAO42FvR2KbITAABejgW9rezuXOrWrdsfHsPdTgAA8Fwm4/rmbBu4juwEAIB3czY7eVNusrtzadasWflbCQAAcC/WXHIpshMAAF6ONZes7F5zCQAAAAAAALiV3SOXAACAl2PNJQAAAPux5pIVnUsAAOA6psUBAADYj2lxVkyLAwAAAAAAQJ4xcgkAAFzHyCUAAAD7MXLJyq7OpSVLltjdYIcOHZypBwAAuAudSy5DdgIA4B5A55KVXZ1LHTt2tKsxk8kks9nsbE0AAAAejewEAADuJXZ1LlkslvyvBAAAuBd3i3MZshMAAPcA7hZnxZpLAABAkmQyrm/OtgEAAHAvcDY7eVNuylPn0qVLl/T111/ryJEjysrKsnmuX79+drfTvXt3zZkz53ohhQqpZMmSql27tp599ll1795dPj6eezO7adOmadq0aTp06JAkqUaNGho+fLgef/xxd5cGAEDuWHMp37giO5GbAAAoYFhzycrhzqUffvhBTzzxhC5fvqxLly6pZMmSOnPmjIoUKaLQ0FCHOpckqW3btpo1a5bMZrNOnjypFStWqH///lq4cKGWLFmiQoXyb3BVVlaW/P3986XtsmXL6p///KcefPBBGYahOXPmKDY2Vj/88INq1KiRL68JAAAKHldmJ3ITAAAoiBz+iWvAgAFq3769zp07p8KFC2vTpk06fPiwoqKi9PbbbztcQEBAgMLDwxUZGan69etryJAhWrx4sZYvX67Zs2dbjzt//rx69eql0qVLKzg4WC1atNCOHTts2ho9erRCQ0MVFBSkXr16adCgQapbt671+e7du6tjx44aM2aMypQpoypVqkiSjh49qmeeeUbFixdXyZIlFRsba/3lLNvMmTNVrVo1BQYGqmrVqvrggw/ueF3t27fXE088oQcffFAPPfSQxowZo2LFimnTpk0Ov0cAAMBzuTI7kZsAAEBB5HDn0vbt2/X3v/9dPj4+8vX1VWZmpsqVK6e33npLQ4YMcUlRLVq0UJ06dbRo0SLrvqefflqnTp3S8uXLtXXrVtWvX18tW7bU2bNnJUlz587VmDFjNH78eG3dulXly5fXtGnTcrS9du1apaSkaPXq1frqq6909epVtWnTRkFBQdqwYYO+/fZbFStWTG3btrUOW587d66GDx+uMWPGaPfu3Ro7dqyGDRtmHZr+R8xmsz799FNdunRJ0dHRLnmPAABwNdPv1g7I8+buiyiA8js7kZsAAHAPp7OTuy/AhRzuXPLz87PO6Q8NDdWRI0ckSSEhITp69KjLCqtatar1V7BvvvlGmzdv1ueff64GDRrowQcf1Ntvv63ixYtr4cKFkqQpU6aoZ8+e6tGjhx566CENHz5ctWrVytFu0aJFNXPmTNWoUUM1atTQggULZLFYNHPmTNWqVUvVqlXTrFmzdOTIESUnJ0uSRowYoXfeeUedOnVSpUqV1KlTJw0YMEDTp0+/4zXs2rVLxYoVU0BAgF566SX9+9//VvXq1XM9NjMzU2lpaTYbAADwfHcjO91ruUlkJwDAPWzq1KmqWLGiAgMD1ahRI23evPmOx58/f17x8fGKiIhQQECAHnroIS1btsypNm/l8MT8evXqacuWLXrwwQf16KOPavjw4Tpz5ow+/vhj1axZ09HmbsswDJlM1/vxduzYofT0dN133302x1y5ckX79++XJKWkpOjll1+2eb5hw4Zat26dzb5atWrZrBewY8cO7du3T0FBQTbHZWRkaP/+/bp06ZL279+vnj17qnfv3tbnr127ppCQkDteQ5UqVbR9+3ZduHBBCxcuVLdu3fT111/n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AHcDC3rnC7ITAABeigW9rRweuXTgwAG1b98+x/4OHTro4MGDrqoLAADcZdnrBji7wRbZCQAA70RuusnhzqVy5cpp7dq1OfavWbNG5cqVc1VdAADAHQwnN+RAdgIAwIuRm6S8TIv7+9//rn79+mn79u1q0qSJJOnbb7/V7Nmz9e677+ZHjQAAAB6L7AQAALydw51Lffr0UXh4uN555x199tlnkqRq1appwYIFio2NzY8aAQDA3cCaS/mC7AQAgJdizSUrhzuXJOnJJ5/Uk08+6fpqAACA27hi7r83rR3gSmQnAAC8j7PZyZtyU546lyQpKytLp06dksVisdlfvnx5V9QFAADgVchOAADAWzncubR37149//zz2rhxo81+wzBkMplkNptdWR8AALhbmBaXL8hOAAB4KabFWTncudS9e3cVKlRIX331lSIiImQymfKnMgAAcFcxLS5/kJ0AAPBOTIu7yeHOpe3bt2vr1q2qWrVq/lQEAADgRchOAADA2zncuVS9enWdOXMmf6oBAADuw7S4fEF2AgDASzEtzsrH0RPGjx+v//u//1NycrJ+++03paWl2WwAAMBDGS7aYIPsBACAlyI3WTk8cikmJkaS1LJlS5v9LEoJAIBnY82l/EF2AgDAO7Hm0k0Ody6tW7eOhSjvIp9Ms3wInQBwT/O5xveAJyM73V19KyarSJCvu8sAcI8zy7P/7l81HO4qKFCupF/Ti+4u4h7j8H8xjz32WP5UAgAA3Is1l/IF2QkAAC/FmktWDq+5VKlSJY0aNUpHjhzJn4oAAIB7sOZSviA7AQDgpchNVg53LvXv31+LFi3S/fffr1atWunTTz9VZmZm/lQHAADg4chOAADA2zncufTqq69q+/bt2rx5s6pVq6ZXXnlFERER6tu3r7Zt25Y/VQIAgHyXvSilsxtskZ0AAPBO5KabHO5cyla/fn299957+vXXXzVixAjNnDlTDz/8sOrWraukpCQZhhe9SwAA3AuYFpevyE4AAHgZcpNVnpeAv3r1qv79739r1qxZWr16tRo3bqyePXvq2LFjGjJkiNasWaN58+a5tloAAJBvXPELmjf9AudqZCcAALyLs9nJm3KTw51L27Zt06xZszR//nz5+Pioa9eumjRpkqpWrWo95sknn9TDDz/s6loBAAA8DtkJAAB4O4c7lx5++GG1atVK06ZN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qF69eqpRo4Zb6/69Wz8LZcqUUenSpSVJoaGheuONN1S0aFHpxjUcPXpUdevW1QMPPODmyq/btWuXYmJiVLFiRf3444968MEH9cgjj+j999+Xn5+fLBaLfHx85OPjo0uXLikrK0vDhw/X+++/r//+978KDQ119yXk+HtarVo1VapUSYZhWP+GhoaGauXKlWrTpo3+8pe/qGrVqvr000/1888/u7t8AHYiO7mfp2cPT6//TtfgKdnJ03OTyE5kJ3dx99ApFEw//vijUaJECaNt27ZGzZo1japVqxpNmjQx1q1bZxg3hhveavDgwcYjjzxinDlzxg0V29q5c6dx3333GU2aNDHKly9vlClTxujSpYuxefNmw7hN/a+//rrRunVr4/z5826oOKeffvrJCAkJMZ5++mmjefPmRnR0tBEREWEsWbLEMAzD2LVrl2EymYyIiAhj69at1vPWr19vHDx40I2VX+fp9Rt2XIPFYskx7HbYsGFG1apVjSNHjripalu3+yxs27bNesytn4ehQ4caDRs2LBCLO164cMGoU6eO0a9fP+Py5cvGnj17jClTphilSpUynnzySZtjT506ZVSrVs3o0KGD4e/vb3z//fduq/v3bvf39OuvvzaMG/8d/X6Y+tGjRw1/f3+jZMmSNv9OAAo2spP7eXr28PT6DS/ITp6emwyyE9nJjehcQg6ZmZnGk08+afTu3dv6x3/FihVGly5djNDQUGPNmjU2x3/77bfGoEGDjKCgIGPHjh1uqvqmS5cuGTExMUa/fv2MK1euGIZhGDNnzjSeeOIJo2HDhsb//vc/m+O3b99uDBkyxAgJCTF27tzppqptmc1mo3v37sZf//pX675du3YZ8fHxhslkMhYsWGAYhmHMnz+/wNT8e55ev2HHNXz++eeG8bu568nJycbAgQON4OBg44cffnBb3b/n6Gdhx44dxpAhQ4ygoCBj+/btbqra1q+//mrUqFHD2LBhg3XflStXjOXLlxulSpWy+ffZv3+/YTKZjOLFixeY+u39e5r931FWVpbx0ksvGYGBgcZPP/3k1toB2I/s5H6enj08vX7DC7KTN+Qmg+zk1trvdXQuIYdLly4Z9erVM8aNG2ez/8cffzSee+454/777ze2bNliGIZh/Pbbb0ZcXJxRrVq1AvMH6dy5c0aVKlWMGTNm2OxfuXKl0a5dO6NF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"/>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=5920642b">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [20]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Optional bigger range</span>
<span class="n">p_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">20</span><span class="p">)</span>
<span class="n">lam_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">logspace</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">19</span><span class="p">)</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">p_values</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">lam_values</span><span class="p">),</span> <span class="mi">2</span><span class="p">))</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">p</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">p_values</span><span class="p">):</span>
<span class="k">for</span> <span class="n">j</span><span class="p">,</span> <span class="n">lam</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lam_values</span><span class="p">):</span>
<span class="n">mse_train</span><span class="p">,</span> <span class="n">mse_test</span> <span class="o">=</span> <span class="n">evaluate_model</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">lam</span><span class="o">=</span><span class="n">lam</span><span class="p">,</span> <span class="n">intercept</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">mse_values</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">mse_train</span>
<span class="n">mse_values</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">mse_test</span>
<span class="n">mse_values</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">mse_values</span><span class="p">)</span>
<span class="n">fig</span><span class="p">,</span> <span class="p">(</span><span class="n">ax1</span><span class="p">,</span> <span class="n">ax2</span><span class="p">)</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">ncols</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="n">heatmap</span> <span class="o">=</span> <span class="n">ax1</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">mse_values</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">aspect</span><span class="o">=</span><span class="s1">'auto'</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">'nearest'</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">'viridis'</span><span class="p">)</span>
<span class="n">ax1</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Train MSE'</span><span class="p">)</span>
<span class="n">fig</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">heatmap</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax1</span><span class="p">)</span>
<span class="n">heatmap</span> <span class="o">=</span> <span class="n">ax2</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">mse_values</span><span class="p">[:,</span> <span class="p">:,</span> <span class="mi">1</span><span class="p">],</span> <span class="n">aspect</span><span class="o">=</span><span class="s1">'auto'</span><span class="p">,</span> <span class="n">interpolation</span><span class="o">=</span><span class="s1">'nearest'</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">'viridis'</span><span class="p">)</span>
<span class="n">ax2</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Test MSE'</span><span class="p">)</span>
<span class="n">fig</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">heatmap</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax2</span><span class="p">)</span>
<span class="k">for</span> <span class="n">ax</span> <span class="ow">in</span> <span class="p">(</span><span class="n">ax1</span><span class="p">,</span> <span class="n">ax2</span><span class="p">):</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">'Regularization Strength (lambda)'</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">'Polynomial Degree'</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">lam_values</span><span class="p">)))</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">([</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">lam</span><span class="si">:</span><span class="s2">.2e</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">lam</span> <span class="ow">in</span> <span class="n">lam_values</span><span class="p">],</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">90</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">p_values</span><span class="p">)))</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_yticklabels</span><span class="p">([</span><span class="sa">f</span><span class="s2">"Degree </span><span class="si">{</span><span class="n">p</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">p_values</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output" tabindex="0">
<img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABJgAAAHqCAYAAABIhvTdAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xlc1HXiP/DXcB9yeHB7QLkCFaKDadiurQqCZYG22kErEOhWKiqreSWGMfA1j0zzWokjRbPU1J8JyRF55Yq4ApuECqJmIrqKOOhwzMzvj3RyApSZ+XANr+c+Po9tPsf78/4MA/Py/Xm/3x+RUqlUgoiIiIiIiIiISEsG7V0BIiIiIiIiIiLq3NjAREREREREREREOmEDExERERERERER6YQNTEREREREREREpBM2MBERERERERERkU7YwERERERERERERDphAxMREREREREREemEDUxERERERERERKQTNjAREREREREREZFO2MBERO0qLCwMrq6u7V0NIiIiIiIi0gEbmIioSSKRqEVLbm5ue1dVTW5urqpuW7dubXKf559/HiKRCM8884za+rq6Onz66acYPHgwrK2tYWtri6effhpTp07Fzz//rNovJSXlke/J8ePHW/06iYiIqONqyxx19+5dfPjhhy0ui1mJiFqLUXtXgIg6pi1btqi9/uKLL5CZmdlovaenp07n2bx5MxQKhU5lNMXMzAzbtm3DW2+9pba+vLwcx44dg5mZWaNjXn31VaSnp+ONN97AlClTUF9fj59//hn79+/H8OHD4eHhobb/0qVL4ebm1qic/v37C349RERE1Hm0VY7C/Qam2NhYAMBf//rXFh/HrEREQmMDExE16Y9h4/jx48jMzGy0/o/u3r0LCwuLFp/H2NhY6zo+yosvvoh9+/bhxo0b6NWrl2r9tm3b4ODggD/96U+4deuWan1eXh72798PiUSChQsXqpX12WefoaqqqtE5xo4diyFDhrRK/YmIiKjz0jZHtSVmJSISGofIEZHW/vrXv+KZZ55Bfn4+RowYAQsLC1Xg2Lt3L1566SU4OzvD1NQUTz75JD766CPI5XK1Mv44B1N5eTlEIhFWrFiBf/3rX3jyySdhamqKZ599Fnl5eS2uW1BQEExNTfH111+rrd+2bRsmTZoEQ0NDtfWlpaXA/S7hf2RoaIiePXu2+NxEREREj6NQKLB69Wo8/fTTMDMzg4ODA/7xj3+oNeoAwMmTJxEQEIBevXrB3Nwcbm5uePvtt4H7ucnOzg4AEBsbqxqC9uGHHz72/MxKRCQ09mAiIp3873//w9ixY/H666/jrbfegoODA3B/7H23bt0QHR2Nbt26IScnBzExMaiursby5csfW+62bdtw584d/OMf/4BIJMLHH3+MCRMmoKysrEW9niwsLBAUFITt27fj3XffBQAUFBTgp59+QmJiIgoLC9X279evHwAgLS0Nzz//PIyMHv/n8fbt27hx44baOpFIxIBFREREj/WPf/wDKSkpCA8PR1RUFC5cuIDPPvsM//nPf3D06FEYGxujsrISY8aMgZ2dHebPnw9bW1uUl5dj9+7dAAA7Ozts2LAB7777LsaPH48JEyYAAAYOHPjY8zMrEZHQ2MBERDqpqKjAxo0b8Y9//ENt/bZt22Bubq56/c477+Cdd97B+vXrERcXB1NT00eWe+nSJZw7dw7du3cHALi7uyMoKAjfffcdxo0b16K6vfnmm3j55Zdx+fJl9OnTB2lpaXjiiSfw3HPPNdr3ueeewwsvvIDNmzdj3759GDVqFP785z9j3Lhx6Nu3b5Pl+/n5NVpnamoKmUzWovoRERFR13TkyBEkJiYiLS0Nb775pmr9yJEjERgYiK+//hpvvvkmjh07hlu3buHgwYNqQ83i4uIAAJaWlvjb3/6Gd999FwMHDtR4CB6zEhEJiUPkiEgnpqamCA8Pb7T+4calO3fu4MaNG/jLX/6Cu3fvqj1lpDmvvfaaqnEJAP7yl78AAMrKylpctzFjxqBHjx748ssvoVQq8eWXX+KNN95ocl+RSITvvvsOcXFx6N69O7Zv345p06ahX79+eO2115qcV2DdunXIzMxUW9LT01tcPyIiIuqavv76a9jY2MDf3x83btxQLT4+PujWrRu+//57AICtrS0AYP/+/aivrxe8HsxKRCQk9mAiIp24uLjAxMSk0fqffvoJH3zwAXJyclBdXa227fbt248t9493wh40Nv1xXoJHMTY2xsSJE7Ft2zYMHToUly9fVrtL+EempqZYtGgRFi1ahKtXr+KHH37Ap59+iq+++grGxsaNHuU7dOhQTlxJREREGjt37hxu374Ne3v7JrdXVlYCAF544QW8+uqriI2NxSeffIK//vWvCA4OxptvvvnY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b+PAgQOYP38+lEolunXrhkGDBpW5ffrKEPocFBSEwMBAzJ07F7a2tkhISED16tVx/PhxvP/++0hPTy/vJjLGXkP6lp10kZugZXbi3KQbInITODuViaH0l7OT/uO7yBmpf/75B2vXri224WvWrBn69eun8aBvIjekT548waZNm3D06FHcunULCoUC1atXR2hoKNq0aaNhT18sKysLhw4d0vh9t27dwvLly0tsY79+/WBiYqJ2rY4dO2LTpk2wt7fHvXv30LFjR5w6dQpVqlTBv//+i1q1auHw4cNqfSejR48u8fXCwkLMnj1b3nh+9dVXarcvOjoaoaGhCAwMREhICKpWrQoAuH37Nvbu3YvAwEDs2LEDwcHBatXr3LkzevTogf/+979aH40BgLNnz6JixYryXVo2bNiAFStW4OrVq/D09MSwYcPQq1cvjWqK/H5fxMfHR+PwWrt2bRw9ehSVKlXCtWvX8O677+LBgweoVasWUlJS8OWXX+LkyZPF7lpTmpUrV2LYsGEICAjAokWLsGzZMgwdOhQ9e/aEiYkJRo4ciSdPnmDEiBFa9PT/Va9eHb///rvGRx4//fRT9OjRA++++67WbYAO+rxgwQL897//haenp5D2FRF9RyjGWNnpc27Ca5adROYm6CA7ic5N4OwkK0tuggFnp7LmJgjOToaSm8DZySDwGUxG6PTp0wgODoa1tTWCgoJUNnz79+/H48eP8fvvv6Nhw4Zq1Xt2QxocHFxsQxoXF6f2hjQ5ORlBQUF48uQJLCwscP36dXTs2BH//PMPzpw5g27duuGHH35Q+8jF4sWLXzj9xo0bmD9/fol3MCjNmTNnEBQUhBo1asDKygonTpzA+++/j7y8PPz++++oXbs2YmJi1L77gUKhQEZGBpycnDB06FAcOnQIu3btgre3N65fv47Q0FA0atQIy5cvV6tWQEAAHBwcVF4/dOgQGjZsCBsbG0iSpNFRx4CAAISEhGDGjBklTv/iiy+wbds2nDt3Tq16CoUCJiYmsLGxQe/evREeHo4GDRqo3Z6S2rdgwQIEBQVh9erVGD58OAYOHAg/Pz8kJSVh9erVWLRoET766CO16on+fgGgW7duJb6+Y8cOtG7dWq61bdu2l9Z6dn354IMPkJaWht9++w329vbIyspC165d4ejoWOJtfUtSp04djBw5EgMHDsTBgwfR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AgJU5lm4cCF5enqqtCUkJKTUtt69e5cA0Pnz54mIKC0tjQDQ119/rTLfunXryN7evsQaw4cPJ09PT7pz506pnzNv3jxq0KCB/LykttP/H2ahX375hYiIvv32W6pYsSJlZWXJ03fv3k0KhYIyMjLk/nl6elJBQYE8T/fu3alnz56ltuXChQvk5+dHCoWC/P39afDgwfTbb7+pzNOiRQsaMWKEymsHDx4kALR9+3b5NXW+y6L37du3T6UfAOjJkydERNS4cWP65JNPVGq8/fbbKsuopO+y6PtavXq1Sv8AUGJiYqnLwN7enr777juV10r7TooUFhaSra0t7dy5U34NAH3++efy8xMnThAAWrNmjfzapk2byNLSUuVzTExM6Pr16/Jr0dHRpFAo6NatW0RE5OLiQnPnzpWn5+fnU7Vq1TRal4uMGjWKWrZsWer7GGOMlT/OTsVxduLs9OzncHZi7H/4DCb22mnVqhXi4+Pxxx9/ICwsDP3795ev2U5OTsbjx4/Rtm1bVKhQQX5899138mmqSUlJaNSokUrNt956S+t2Xb58Gb1790b16tVhZ2cnnxJ+9epVlfledoSmyLfffos1a9bg119/haOjo/z6li1b8Pbbb8PZ2RkVKlTA559/XuwzXiYxMREBAQGwsbGRX3v77behVCpVTpGuU6eOymCLLi4uuHPnTql1a9eujb/++gsnT57ERx99hDt37qBz584IDw9Xq13PLht1vssidevWVWkjALmdSUlJxb5fTb7vF9UuyZMnT154ijcA3L59GwMHDkTNmjVhb28POzs7ZGVlFfsen/3sqlWrAgD8/f1VXsvJyUFmZqb8moeHB9zc3OTnTZs2lb/Xhw8f4tatW2jcuLE83dTUtNg6qe66bGVlhcePH7+wr4wxxsofZyfOTpyd/vcaZyfGSmd4o7gxpiUbGxvUqFEDALB27VoEBARgzZo1GDBggHwd/O7du1U2FHg6/oC6FApFsWurX3T9PAB07twZnp6eWLVqFVxdXaFUKvHmm28iLy+vWPtf5uDBg/j000+xadMmlQ3liRMn0KdPH0yfPh3BwcGwt7fH5s2bsWDBArX7pgkzMzOV55IkFTvV93kKhQKNGjVCo0aNMHLkSHz//ff48MMPMXnyZHh7e7/wvc8uG02+y2fbWTTmwsvaqS5Na1epUuWlA3OGhYXh33//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"/>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=7a5bd4dd">
<div class="jp-Cell-inputWrapper" tabindex="0">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [ ]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</main>
</body>
</html>