XM_40017/dev/LEQ_src/index.html
2023-09-08 16:04:01 +00:00

7873 lines
486 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.

This file contains Unicode characters that might be confused with other characters. 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>LEQ</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src='../assets/iframeResizer.contentWindow.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',
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.3.1/mermaid.esm.min.mjs")).default;
const parser = new DOMParser();
mermaid.initialize({
maxTextSize: 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 {
const { svg } = await mermaid.render(id, raw, el);
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);
}
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=46d0dd15">
<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">
<img alt="No description has been provided for this image" src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/VU_logo.png/800px-VU_logo.png?20161029201021" width="350"/>
<h3 id="Programming-large-scale-parallel-systems">Programming large-scale parallel systems<a class="anchor-link" href="#Programming-large-scale-parallel-systems"></a></h3><h1 id="Gaussian-elimination">Gaussian elimination<a class="anchor-link" href="#Gaussian-elimination"></a></h1>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=ff0fbd76">
<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="Contents">Contents<a class="anchor-link" href="#Contents"></a></h2><p>In this notebook, we will learn</p>
<ul>
<li>How to parallelize Gaussian elimination</li>
<li>How the data partition can create (or solve) load imbalances</li>
</ul>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=8dcee319">
<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="Gaussian-elimination">Gaussian elimination<a class="anchor-link" href="#Gaussian-elimination"></a></h2><p><a href="https://en.wikipedia.org/wiki/Gaussian_elimination">Gaussian elimination</a> is provably one of the first algorithms you have learned to solve linear equations like this one:</p>
<p>$$
\left[
\begin{matrix}
1 &amp; 3 &amp; 1 \\
1 &amp; 2 &amp; -1 \\
3 &amp; 11 &amp; 5 \\
\end{matrix}
\right]
\left[
\begin{matrix}
x \\
y \\
z \\
\end{matrix}
\right]
=
\left[
\begin{matrix}
9 \\
1 \\
35 \\
\end{matrix}
\right]
$$</p>
<p>The value of $x$, $y$, and $z$ can be found by creating an <em>augmented matrix</em> and applying Gaussian elimination to it:</p>
<p>$$
\left[
\begin{matrix}
1 &amp; 3 &amp; 1 &amp; 9 \\
1 &amp; 2 &amp; -1 &amp; 1 \\
3 &amp; 11 &amp; 5 &amp; 35 \\
\end{matrix}
\right]
\rightarrow
\left[
\begin{matrix}
1 &amp; 3 &amp; 1 &amp; 9 \\
0 &amp; -1 &amp; -2 &amp; -8 \\
0 &amp; 2 &amp; 2 &amp; 8 \\
\end{matrix}
\right]
\rightarrow
\left[
\begin{matrix}
1 &amp; 3 &amp; 1 &amp; 9 \\
0 &amp; 1 &amp; 2 &amp; 8 \\
0 &amp; 0 &amp; 1 &amp; 4 \\
\end{matrix}
\right]
$$</p>
<p>The result is an upper diagonal matrix with ones on the diagonal. From this matrix the values $x$, $y$, and $z$ can be found via <a href="https://en.wikipedia.org/wiki/Triangular_matrix">backward substitution</a>.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=94c10106">
<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="Serial-implementation">Serial implementation<a class="anchor-link" href="#Serial-implementation"></a></h3><p>Gaussian elimination can be implemented as shown in the following function. Note that the result is overwritten in-place on the input matrix.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=e4070214">
<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 [70]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-julia"><pre><span></span><span class="k">function</span><span class="w"> </span><span class="n">gaussian_elimination!</span><span class="p">(</span><span class="n">B</span><span class="p">)</span>
<span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">B</span><span class="p">)</span>
<span class="w"> </span><span class="nd">@inbounds</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">1</span><span class="o">:</span><span class="n">n</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">:</span><span class="n">m</span>
<span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">t</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">t</span><span class="p">]</span><span class="o">/</span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">k</span><span class="p">]</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">k</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">:</span><span class="n">n</span><span class="w"> </span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">:</span><span class="n">m</span>
<span class="w"> </span><span class="n">B</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="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</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="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">i</span><span class="p">,</span><span class="n">k</span><span class="p">]</span><span class="o">*</span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">j</span><span class="p">]</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">i</span><span class="p">,</span><span class="n">k</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">B</span>
<span class="k">end</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[70]:</div>
<div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain" tabindex="0">
<pre>gaussian_elimination! (generic function with 2 methods)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=cb7f89e5">
<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>Let us test the function with the example above:</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=eb30df0d">
<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 [68]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-julia"><pre><span></span><span class="n">A</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kt">Float64</span><span class="p">[</span><span class="mi">1</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="mi">11</span><span class="w"> </span><span class="mi">5</span><span class="p">]</span>
<span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kt">Float64</span><span class="p">[</span><span class="mi">9</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">35</span><span class="p">]</span>
<span class="n">B</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="n">A</span><span class="w"> </span><span class="n">b</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[68]:</div>
<div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain" tabindex="0">
<pre>3×4 Matrix{Float64}:
1.0 3.0 1.0 9.0
1.0 2.0 -1.0 1.0
3.0 11.0 5.0 35.0</pre>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=52bfada2">
<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 [71]:</div>
<div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="cm-editor cm-s-jupyter">
<div class="highlight hl-julia"><pre><span></span><span class="n">gaussian_elimination!</span><span class="p">(</span><span class="n">B</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[71]:</div>
<div class="jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/plain" tabindex="0">
<pre>3×4 Matrix{Float64}:
1.0 3.0 1.0 9.0
0.0 1.0 2.0 8.0
0.0 0.0 1.0 4.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=563aa0d0">
<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>We get the same result as shown before (as expected).</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=39f2e8ef">
<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="Parallelization">Parallelization<a class="anchor-link" href="#Parallelization"></a></h2><p>Gaussian elimination is expensive and thus it makes sense to try to seed-up this computation by using several processors. It requires $(2n^3)/3$ operation, where $n$ is the number of rows in the input matrix. Thus, the time complexity is $O(n^3)$, which rapidly grows with $n$.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=1b1a6469">
<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="Where-can-we-extract-parallelism?">Where can we extract parallelism?<a class="anchor-link" href="#Where-can-we-extract-parallelism?"></a></h3><div class="highlight"><pre><span></span><span class="n">n</span><span class="p">,</span><span class="n">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">size</span><span class="p">(</span><span class="n">B</span><span class="p">)</span>
<span class="k">for</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">1</span><span class="o">:</span><span class="n">n</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">:</span><span class="n">m</span>
<span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">t</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">t</span><span class="p">]</span><span class="o">/</span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">k</span><span class="p">]</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">k</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">:</span><span class="n">n</span><span class="w"> </span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">:</span><span class="n">m</span>
<span class="w"> </span><span class="n">B</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="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">B</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="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">i</span><span class="p">,</span><span class="n">k</span><span class="p">]</span><span class="o">*</span><span class="n">B</span><span class="p">[</span><span class="n">k</span><span class="p">,</span><span class="n">j</span><span class="p">]</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="n">B</span><span class="p">[</span><span class="n">i</span><span class="p">,</span><span class="n">k</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="k">end</span>
<span class="k">end</span>
</pre></div>
<ul>
<li>The loop over k cannot be parallelized (the state of B at iteration k depends on the state at iteration k-1)</li>
<li>Loops over t, i, and j can be parallelized</li>
<li>BUT the loop over t needs to be done before loop over i and j</li>
</ul>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=a67e0aad">
<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="Data-partition">Data partition<a class="anchor-link" href="#Data-partition"></a></h3><p>Let us start considering a simple 1D block partition. We assume that each process contains only a portion of the input matrix consisting in a block of consecutive rows. In this algorithm, the data stored in a process does not correspond with the data updated at a given iteration over the outer loop over k. The data updated is only a subset of the data stored, which leads to load imbalances (as we will see in a second).</p>
<p>Consider next figure. Let's find out which is the data updated and the data used by CPU 3 at iteration $k$.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=6d8b79ba">
<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>
<img align="left" alt="No description has been provided for this image" src="data:image/png;base64,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" width="450">
</img></div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=edb211d0">
<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 looking into the code above, you can see that <code>B[i,j]</code> is updated at iteration k, if and only if i and j are greater or equal than k. Thus, from all entries owned by CPU3, only the ones fulfilling this condition will be updated. See the entries highlighted in the next figure.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=f18f33da">
<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>
<img align="left" alt="No description has been provided for this image" src="data:image/png;base64,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" width="450"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=1eced940">
<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="Data-dependencies">Data dependencies<a class="anchor-link" href="#Data-dependencies"></a></h3><p>At iteration k, CPU3 needs part of row k to update its entries. The process owning row k needs to broadcast this entries to all other processes that require them. This communication pattern is almost identical to the one previously studied in Floyd's algorithm.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=410eb1ba">
<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>
<img align="left" alt="No description has been provided for this image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABRAAAAJNCAYAAABJK1kjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAewgAAHsIBbtB1PgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7N13vCV1efjxz91dlmWpCyxSpQoI0lExKqLYUaMRW9QYolGSoFGjRmPB9jOKBltib1jATtBgwYqAiiJFRASRjvTett/fH8893pnvmZkzc+49Z2Yvn/frdV5wzk557pyZOd95vg0kafQ+DkxmXoe0Gs1900qmj/8lY9zvxsAfgVumXi8csPylTMe5fLShacR2In/df6fdcNYqLyZ/7N40gn18l+nr8gMj2L4kqdq6wAGZ1y5j3v9emX1vWbHcBPk49xh9aBqhjcl/n9u2G85aZVvyx27JLG9/UbL9xbO8/Rlb0HYAYgvgv2ssdy9wB3AncCtwMXA2cNXoQpOkGXs70wXiPwAntBiLpGnvBn469f9HAZ8nyhWSpPG4P3BW5v3JwFPGtO+Did+ACWAVsDdwXcmyC8nH+Vtgn1EGp5F6BPB/mffvB17dUixrm1cAr828Pxz4xixufwXwSWC/qfed+25MILZvfeBZM1j/RuCXwDeJk/fO2QhqRDYG3pB5fxnRMk1qy7OB/TPvP06cl5odewP/knn/RqKQOlsWAO/MvL8BOHYWt39f95/EgwVExdV7WoxFs+9UohXik4D5wIeJh4rJNoPSWmlXoixaZTn5ivDbgYuAc4jE9aWjDFBSzkLgY0z/xn8cuLC9cCRNWQP8B1E+A3g58Fng/NYiUufsSL6b0kxetxKtfdYf619Q37bk4z213XA0Rl3twvw58nEd3Go0o9VGF+ZvZfZ5ATCvxjpNujAvIv/9/X7oSFVkDdPHdpjEul2YhzeOLswAj0z289cj2o/mtgcy8zLsdcBHmG510VVbAz/IvKxY0Uw8gPx18H/Vi8+aV2X2eQ9wvwHLr0s+zvMGLL8z+evkrTOIVXnbkT+27xpiG4eR/z6tfK/vGPLH7pkj2s9pmX38cET7GIotELvpt8TDftY8ogXfkqn/Fj2IbwK8Gfg74DnAmSOMUZKqPAx4aub9e4iE1CBXMd0CKr0Pau2yknyrorKuUWrPacDpRMtDgHcA36betSrNpvsB/zT1+i6R4Lio1YiKLQYem3lvi12tbTYkWjj1fBq4fgT7yF4nXe4ht7ZZn/yxtaw8N/0nMaQBwKFTrx+1F840E4jd9ETg2op/34AYVPMg4PnEALhZ2xOt+57J9IknSeOULZzeCHyl5nqPGkEsasdVRCsEddv/MJ1A3ItI/J/UXjiaI46juBX5RkRF+LbERAzzC5Z5EvBoYgiMz4wqQOk+6lXA5lP/vxp4X4111gBfy7y/YraD0lhdS/77HNSiVOP3XaLbci/P8//oSAJR7SvqwrxVw20cQlz46XbuJT++W9vswnzfZRfm9o2zC/Pu5Lu/HjOi/diFebRm2oVZwxtXF2aIrmk34m+zhlfUhbnOzJQbEInCTxNl1qKuza8tXbsdu5CP75R2w9FabtxdmBeTv99/a0T72Zf83/XNEe3nvmh3HB6mTePqwgzRIr9zz891xqNS9/2UaI14XPL5IuB4YqBcSRqXo5gemBsiUSupm5YTZYWeg3F2TY3HXcBPiIT5dhS3VH8P8LRxBiXNYX/HdOtDgE+0FYikgY4H7s68f1VbgWTZhXnuuBf4B2BL4AmZz3cDjgQ+1HB7WxJdS7YhxrFYDdxMdEk7h5hivCu2IGLdloh1EriF6ViXtRda63YhZkfciulByn9N1D7Ohm2JWsatiYfQa4E/AFfO0vZ71iVq3HYClgLrELM53gKcC1wzy/ubDfOJY7MtEfN8YoyZy4hxTmdj3KR5xHAGOwKbEdfoNcQxubtivVFaCDw38/5C1t6WgZsQrbjvN/X/dxPXzlnM3jWUtZBI3GxFXFMriMlnBo1nuxmwJ/EAviGRvL2FOBfOJgZIX5utAxxIHJMtiHvNjcAfifvNKGxATOZwf6LL5W3Eudxr7T/XfB14Reb9i4BXtxSL7ptuIn47ziQ/oP8E8EmiZeztLcQlzSX/nPn/m4DvtRWIpIFuJ8al7j1XPYUol872c3YjJhDnljXA3xLdE7NdR/4V+G+qB0VfTIx79BSieey2FcveS/TBfx/1ujqdTYx3k55vDwH+VLHeD4jkZ2oR8GSiRvpRwA4V21g+FeP7prY3al8lEjo9BxKzY9d1CdMtty4nBkwt83TgvzLvPwx8YGr95wNvIBKrqVXEbE5vJL6bYTyGmFHt4RS3ZP418DZmNgbnXsDhxDF4MNUtaf9EdIH6CIMfMF5CHBuIxF7WCVQnnJ8EXDxg+3sCr59adrOSZa4FvkQMkHvLgO0VWQi8DngpkTRKLQO+TEyqdPUQ25+JJ5P/u09suP6pTN9/VhKJ49SPiOt+Ivl8F6rvKb8Bnj1g//OBFxItYg6i+HdyDXGOH0uMIVM3oXQ+ca+F+N4fPPX/WxFdVF9IJACzTqW/y8JCoqLor4l74C4V+1xJTJJxLHE9Dor1ZKaPefb4bkv1sf0d/TP4bke0kO85lajoqutBxHF5EpHEK3IZcd0eQ/3kwi7A9zPvf0LcFyDOqzcSE5Gl3wXEtXsMca/pUkVa1uuAl2XeTxJjkn61Yp0ziAqO3kyczyO6jq4eRYBShfcT12g20bEFkdA+usF2tiPusbtP/f8GxP2wV8F8OlHZVvcc34S4J6b3onWo7q69gsEVelsTZeLdiYfDDabi6lUEnUH8fq2qGetMbUR+bMrbaFZxkj0eq4kK3zrmAQ8lytEPIO7B60/t/x6iXHwR8ft7c4N4siaIyqGDid+1zadivI6oJPo+s1NBuCfx27UdcTyuI867U4lK5DbsS37c/JNodk7V+V57y6TXyUKqr5Pl1K/s3JB4NtibKMcvIa6V64lr5XSa/V29iUp7VpGf9GU+8FfEM902RCOb24muw1XPOfdn+h7Ua+SynHguvIqYxOw86t+Dyo7tMPegdYj7TM8y4vm+ifnE9fpI4pgsJc6JG4ky4Sk0r/QZFNciYgKZfYjvYn0iEX4ekQy/oeH+xm0B/WXLQb8RX2c6gTgPeAHDzbytOWQ2xkBMvatgmw+vWH59ohtJ0dgzg17HERdzlVuG3HZZ4uG2BtvIvr429beO0unJPjevXrxPdsyxQYmqFyb7ehvxXXyDesdjJfGg3MQ8ojVrNs6q10eJH5imYyC+s+b209d1TE8GUOY1Q257kkholFk09XeuarC9W2neNWsn4oe5zvZvBx4/td64xkD8bBLDYxquf2lm3aIB+CGujWG+v9MH7Ht/IsnXZJs/oz8RXebOzHq9Qs7jqb6n/axgO1dVLF/1+g7xEFylaDzdOq+zCra1U8H+65hPJBGaXEs30p/ALLNHsm5vzKmnUf/36kfkC7mzbZgxEOcTlYXZ9ZYTFYt1nJCs+1fNQtZ92LBjIJZZSLSwyG7veqorEieIc/ZDRGVHnev4auDfGFyOhUhuDHNv/HLJ9h5MVAJfVHM71xMVAaO87/Scley7qDKlzMJk3TrJsgXAK+n/zgf95jy/QVzrEZUr1w7Y7mrgfymuvKxjP+CXA/Zx2tRyMN4xEN+b7KtJ+XPdZN2iSTfmU++7K3p9qkYMuxPPcssHbOsWoiJ/vZp/WzpGf7bc9XzK7ycfT7YzQTxvf5h8WbbqdRXRLbXOPWhFzW2mry8WbOuwZJljC5Ypswj4d/JjaRa9VhL3v50abPtvkm1kJ/h5MXEfLNvfCuL+3+R+NYxhx0BcSv+94QqisqHK+kQitbfOBc1D1lwzigTiNvQneN5ZsfxGBTFMEtnwK4guYpdTfuP6LtXjac52ArEoeXUPUfD4A9EipezH5TRG2/K27QTiJ5PP7iJuNOcTyaSiY/LmmrFN0J8I7L16tT8Xkr/J9eJqmkD8YME+VhM/HBdPvW4uiWU51UnEUSQQNyXOrbLr6E9TMRc9gKwiugvWsR1xfhcdm8uJFgppcukuImEyjgTiBPnC+TLqF+B62kogPpF8gi/7uo54yLuGONbpv19M3HcHSROIj6B84oDsPStVlHC8l/ju/0Acw/Q67L3Oprqg2nYCcSHllSB3E92WryZ/PmevpRfX2EdRAvEJ9CcsVxC/X2WJzK+lG55FTROIi4mH3uw6txITVNT10mT9qnKDlDXbCUQo/q1+bMXySwuWr/v6FYPv4bOZQEyTMU1ev6XZA/kwxplA3IhI2AxzLP63Zkz7E88zTba9Avj7mtvveQnFv01Fr2VEsmScCcQLM/tZRb7V3SBtJhAniNbHdY9t73UB0QpwkKIE4jyiZ1PV9tPxI7casHzV65dES+QqXUgg7kKUw5rsfzlwRM3tFyUQF079DXX39ytm/vtTZZgE4gPoP27nMvg77zk1WXfUvwHquFEkEKH/Afv7Fcv2Eoh3EgWd5wE70989cD3gcURf/DTmqlnydiBO9L9K1jlz6vOy1/0KtgWRZLuHaNL7QuKiTBOY6xJJqq8XxPqOilhnqs0EYrbl1OXAs4jj0LOA+MH4Pf3H5PEMlj7QThJdBR5J/lzZgChE3TS1zGriRzy73iED9tVLIJ4LvIU4d4pq3XcgasF6++q9rqS8y+PGTJ9jaaLiuVSfk0WtH+YRrZGy21lBtL7cn3w3oHWIB6D0PFnGdG10mXkF660kBphPhxx4AJFM7p1PF5BPgowqgZgmZn49xDbqJBC3I76P9KH1Eqq/v7If6n3oT+RdSgyhkN6PlxItJdIE9k/If9dFsgnE25K/9SSiBd2WU9vZgrhOigZMvo04Z04iCmW7F+x7HSJB+UX6K12qxsTdlunjlV3vKqqPbdHD9zAJxP9M1ukVBp+Q/I2bEpP1pBVUK4GHDdhHep6en9nOrcQ9Z7fM8usQ98gzC2J7Yo2/aRhNEohFtdpXUt1iukg6a+YZDdfXfdcoEoib0X/vOqZi+aIE4vXAj4nu+5+Y+u9vKH4Q/x3TQ0wUuYCoDExbyd0z9XnZq+h+W5RAvIkY8iEb65kUV4j/iWbJn6bGmUAseqa4jTgWXybKUp8gGhX8nnwSqU4C8XEUVw7eTDSA+DwxUcFZ9FcQrqF4KKUif1uwfu+8+gLwMWLG42xl/t3EcETZ5UeVQEx/j5uWz+omEHvnfVFldtV18u6S/c4DPkP/ce2Vbb8x9e8nAX8uWOZqqoflguIE4ruTz1YQFclnEcnolUQ5O6sogXgd8YyQva7PpvgedB7Vle4XUXwP6jVUKHsVJQeHSSA+cOrvSeO+i8gzHEd8D5cXLLOGGFJtkKIEYtoI5Wri/vAdpoehSPd3Qo19DatpAvEgotFAdp1TKH9OLfK2ZP1/aRay5ppRJRCPS7Z5ecWyi4mHkyaFvSPJF+xuZHBLo/QGXWf8xCLvoH6XQYjm59nkyZ2MruDVZgKx9zqX6m6K69Ffk3Ep1d/fFvQ/qH+J6oTJdpTX+B5S9YcRSeyDByyTtRXTE5P0XnVmqvpcsk6Tffa8KdnG9QxOYMwnCsXZ9c6hP2mf9bJk+RXEeINVXkxxi91RJRDTc/IzQ2yjTgKxZ1Gyv2Ema1lMtNrLbudEBj8w7UR/F5V/GrBO0UPMcgaPy5g6mma/E08n/xC6nEhUDpI9dy5rGCM0TyAeRH9rv89TfZ+5P/2F1UvIV56k0gRi73UBxWOK9iwiCq3Zdeq2gGmqbgKxqFb7POq1iE2tS/6h5h4cK1v1jCKBCP2Vjz+qWLaXQDyTmBBo+4plNyfuo2lL7ffXiGmXZJ1TaqyT6iVjziG6UO9csewSojvm3cl+Pz3EfusaVwLxkGTZO4h73zoV62xMjFF7MoPHWN6J/hb75xPjvRf1nLo/MRN4dvk6Fbz3n4o9u96FFA8ftR7R86d3r027gY4qgfh3yX7S7reD1EkgZqUVUt9suL+eNyTbWUMk4nYsWHaCGM//8mSdn1JdjkifT69nOin1Z6JRRPrcuCX9vZ16CcRfAi+nuvXjUuDt9FcQvLdinZ7dk3XqDg+T1TSBuC7xfJleG2+if3iwCaJy9bJk+ZVEOa9KmkC8PPP/32N67PCs7Zke4zv7qhq+bSaaJBCfTv+9+ziq73FFnppso2xoDN1HjCqB+OZkm3dWLz6UdKylFw5YfrYSiMP4f8m+R5W5bzuBeDf1mutvSn9tyN9XLJ8myX5H9VhEPQdQXDN0SI11m9qRfCuyC2us87kkrqYJxE3Jjx+6ghhQuI759Cdyy1qCzqN/DJbX19zPh+k//qNKIB6b7KeqZXKZcScQX55s43TqndsQBeRswuUSqgupRQnEQUnH2fLvyX7/o8Y6404gfjNZ/lfUK2Q9iP7a/Krfo6IE4q1UT8jVsyv547Kc6mTlsOokEItqtX/IzCrI0hbqTVsx6r5pVAnEtAvhpRXLrk+zLvsQPSiyD3d3MTju2UggLiBaVTdxIPnWa8uZneeFIuNKIKblk+dWLFukqrJ8gv6W2d+iupVpTzpW4KDxk9Pfrt8T5cMqz6O4fDyqBOKHkv0c1XD9NhKIB5JvcbqKOG6DbEn/2KJVZYL0+bT3Op/y3nBFNiQmtmviEPLDI9zB4N/wNhKIaV5hJZGIr7IF/T0iL6R62LM0gdh7vZ/qRhYL6K/gHaYRQx11E4hH0V8p/k6q/44y2yfbqfot1H3AqBKIRxVst+5DcV1p7GlT7lSbCcSl5C/ir4xoP20nEJuMWZWeIz8vWW4e/bV5hzXYT9oadpLRJBAhWkVm9zPoh/9zyfJNE4j/kaz/Pw3XT7v1lzW5f1yy3BXUv56X0F8zPqoEYjoGW52CXmqcCcRed5ve+muIQm8T6fl9SMWyaQLxPIYrSAxjA/Ktbb5XY51xJhC3pb+gNaimOisdN/WXFcsWJRCbTCh1RrLuAQ3WrWtQArGoVvsLzPx3/pRkm00nedJ906gSiGm3rdtmYZuptIL0pQOWn40E4rBekez7NSPaz7gSiN/PLLeC2W3x/KQkjguplzyEKBv8PFm/rHJ4B/KJwFXUL0d8gv7rZlQJxJ8k+6kzdFFWGwnEE5NtNPmd3p/893JOxbJFCcR7iBb+4/DWZN//MGD5cScQ16W/63Ld4cD2pn/syqrEY1EC8UdUJx17DkzWu7pmjE0NSiBOFCyzksG/LVUm6B9qadSTxZSq82Vo7XRrwWeDasOauoxo5t1T1Ky4K24kEgU9XY51Jj7XYNkvkU/QHERxgX938l2BrqVe8qFnVDVARdKkwai/5/RH42MN1/85MU5MT9nkL+k4a8cThe06bmX4riNNbZ+8v2ZM+x3W/uQHIv4l0UWjibQy4pEN1u2N6zMOdxG16T1duwc+hnzrzd9SnQRMpdfegxk843TWZxsse2byflwPGT1HEeP7Zh+G30V0Uat7XyiTXrM7zHB70kykZdmNmP1u9b1Wjj2DhiBp03HEg2jP2j5Terbr4wTNu/VVSYexeSORFKpjNXFPzSobauTvyT9Pf5X65Yi3EAnHcUi7/Ha9fLYz+Qqsq8nPyDvI2US31p59yY9tPMiniOFBxuFT5O9BXbuun0a+QcbN9F8fZX5LVG5mNU2kvZmo0B7kLPKV3dsQrSDHaV2iMUi2B9bdwDPon3SniUk6VD5zbJu5q6gb3eqG25hH1MpsRPzIF2W6swmoujMJjcIE+ViLBibN/v2j6vbRpj/RrGXZrcSDcK/V3QTx0J3WpqeJhh/S7Fw6jbh5pmNkDGMTolXnxsT5mN7D0u91lN/zRsTkGz3Xkk/Q1HUW0+OubUt0vbguWSb9Dpq2ePg+9Wd6nok0AT2KoRNmU5rsG6YlSTr78IEN1v3ZEPsrM0EUlnr3wEFdYDYlCjqDWnmOS9ra8OTCpcpdSNz/dpl6P49oMVI1gVjPpcQ4R3VdmbxvkqiciV6tdrbV0Woiodi08qJMes2OciZDaZC0xeEEcb3dNIv7uHZqe72xtfefxW3PttuJ+09vzMQux1pHthHCAqJnzUwesnsWk+9KegsxWUsTPyBa/PTGBy+r4D0keX98g31cN7WfJzWKrLl59I+Le+2I9zlTTySfmP0yzcsr3ybGjut5ONG1uY6imYtH5WriXtf7ve3adZ32zvoKcW3U9VnyszAfTHy3dZKCV1LeQ67IOeST5fcnhnoZhyVET6zs8bqBaHE5zKSSqWvJj5d7f4Z77pwxE4hzV1ron6S4VWJqN6Lb4ZOIsY/qNveH8T1E9exEzHp2GBFr0Sy9ZRYRhYImN8CuG9SdoGyd7I1uT/qTKHvOcD9riBtck+6IPYuImq9nE0m0OuM7Zo3ynNyPfKL+OqIr4zo0OxfT8dO2oD+BuEfyvul3MMy5MYz0ftH16ytN9q0ivsMNqN8SYh5xf+11RW4ywdMFDZYtcn9izKinAXvRbEY3iN+J9FxrywOT901bgkIUHHfJvN+DegnEpi0x7k7eN7neh9Wr1X5OEsfzaP5gXCVtoTMbFT/SsIomd6vbigyiDLEHUV7clDifi7r5ZxMVTYeemS0LmY51MyLWovFVF2X+v61YZ8upRJfFng8T48y+n5m1kDuI/Pf8S/ItN+tYTrRA23vq/V4Fy8wnP4TFJM0rBk9l9AnExfQ/86e/Y12TVvCeNsQ20uTK3oVL9VtGdZfnJtYjrusdqb4HZXXtuk6f337ccP2fE/ft3jPCxkSZr04ZuGni7frk/Shnq8/anuhKnn1eu5i4tmdrvMK7kvdNy/yzxgTi3JUmEO+gupn8JsB7iJmmhu3avg5xU5xpF6pBNiAmRflnZnYOr0/3ExxNDFObmLa6Kermnp5Ls7GfOp5CFCZ3GGLdnlE+/KY/8PvR3xptGOl30Gtx0bOMqE1vYpjjP4z03lGndrFN6Xf4DuqP61Km7lARdzP8vXIRMWbOq5jZmHddSg6l95lhHh7T8W7qtp5r2lI2Pa/HMRzMa8gnDm4gWlb8apb308bfJpVJr+FlDE4gLgBeMPU6hOqJrYqMszJ8HlEJ8ALgUJp34e0lI0Zd7h6VzxFdi3vdDBcSs1K/iuiCegoxMcKZxHNMXenkT5sSE4k1la0cWo9IgGTPv/sly1xBszhhPC2I0srdNXSn90GZNGF7KP0VjYOkFbp1y2dX0DzhnLUO0Zr2+URL2C7fg+pIu783bZSwmph88yGZz3aiXgLxxob7Sn8fmjSEGtZ+xPNqttfbL4jK/dlsLZ/mLForw5tAnLvSVmNVJ/BmRBP6/Ur+/YapV9GPzR4U1xCPykZEhr9savabiNqHZQX/thvjaSnSlqaFlqJ1in600tqbYbqlNo3tZcBHKH54XUYkMYuSaJvS/0M3KrM9pmhP2uJgQ/KFj2GPf7aV3KjcQ9xPesZ5bxjGKL7DujPyNmlFk7WY6CLxuJJ/v4VoVVhUObIL46uNbSq998zG/axuAnFc41DOxKLk/Z8ZzSx8aWG7661UNLellTyDKs/2JroeFrUWqyu91kZlN2Is6plOwrQua28C8Q7gcKIVdfa3aR7RQ+BAYrK61USLsO8RXYQvHLDd9Lf9IIbrBZNaQv63O/3dunmIbTZNkAwjrRiamHp1+bcv/Q5fMQvbrFsmuH0G+9iXuAelz+FNjOseVMcE/eXGYc7ZtGVg3e+iaVk5PafHMVFhOrnP/xE952a7kVJnGmmYQJy70h/Kqiz/f5NPHt5LDCr9daJFVdUDxO+Y2U2yqWPIJw9XEDWYXyVaYlQlV86gewPTzqZhrud0naJWqulnTWvSmq6zD3FOZm+UvyFmOD6V6ofm59Fs/JmZSG/kVwN/mIXtpgXQ9PgP8z3PZzw/omkCp0st3Iqk3+GZzHzcxrSQNNveSj55uIoorJ5AxF9V8P0u/RPydMUo7jMzaUHQNV8nWlP1Eir7ErNqPo7Z7YaeXrPDJHKl2ZJWbFfdX/chutaliYeVRBn4KqZnEr2N/IPmSxnveJ+7EeWZ+yWfryKSY1cQsa4h7unZB8UXEWMlzxWnEUnUY4jZ5YsqjucznVB8EzFG7mspTySOqoI3LX+lXQjTLoZ1DLNOU+lz3ASRpOpyL6xRXI91y8/Dts7cn5gxOE0srySel68i7mFFw4odSTcreNen/7gNc86mZeu6f2uXk9w9aQONBxD3oNmeqKgzFbwmEOem3YnJGLLKZrPcixhDq+cOYky8us2Tx3mz2wH4x8z7e4km7b+ouX4Xb8xZM03yDDMWQnpMisbJTAcxn439VHkb+XvTJ4F/ot7ELeMcDyJN9P0SeNYI9nMPkSjvdVUtmsxokHGd+1eRr1Do+mRF6Xf4ZqI1dlctBV6Zeb+SGF/lRzXX7/I9sGi21abSQnudcX/XFucRyeMfMp08eBCRhDiU/u7bw0qv2XTCGGlcFtA/gVjZ2KjziVnts4mji4lZbr/N4FYsz2J8CcQJYqKQbPLwciLWExn8cP4E5lYCEWISwGcS4/o+m7inPZzy8s5hRIXKs4iKsVTaIvMnzM5wD2kFXXpeDdNybBytzZZNvbL72pBuJxBXkO/R8X5m3tL24hmuX2UBcQ/KlkMuIsqVJzP4HvQ8ullGu5f+BNkimiev0h5Jw/bC6aI3Ec+pvdzLbsRYqIcS9/bZkpaLWyvjmkCcm/614LOyGS3/Onn/n9RPHi5gvAO9Po18zeQHqZ88hPEUuNIkV5NrbKZjXuw0C+sUzVSVNlUfZj87D14EiNqVx2fe30R0W6g76/M4C9XpcdmlcKnZ21dvBr0FRCG7yYP9MN/ZMC5P3qez/nVNer7vQrcTiIeRHyPrk9RPHkK3HzrTYTZ2oflg9Ok1OJtjz3TBBcR4Sj9keub2XZkuqF42C/tIKx8vn4VtSsN4DP0tYk8vWfax5GcuvZhIPtZtQTvOMccOIj953ZVErHXvV12fGX0m4/JeCbxv6jWfaIH62KnXI8gnlNYneh89kP4KlLRy8DfA62cQV5m0gn2YBNA4vs9J4tjumvlsG8Y3O+0wbiafQP4IcElLsdTxBKIVdM+FwEOp36ula+Me9qwm7qPZc3sTmicQ01bBc6mC9yKibPYjpsft34npbkfGqAAAIABJREFUstkfZ2k/WyfvL5+l7Tbm4Nhzzw5E94asc4DfliyfDjRcVJNXZm9mVnPWtLVdGut3Gqy7M/mx2UYlLaw2aS226+BFKu1L82Oadg8qmnUs/Wz/gmWqLCZqY+rYmXwt1Y8pHs+yzEMbLDtTZ5PvIrk3zWbgbWKm30HT5YeV3mceMKb9DittkfCYVqKobyb36y2Y2YREo5ae403HBZtXsM7Zw4fTWRcTyYfsUA47Ei0RZ/obMo98EnY18PsZblMa1quT96sprww/LHn/duonDzdivA/vaazvpn7ycCHjqQhKW3rVHdsXZq+svZoYRundRAJxR+BY8hXKG1DcaCKdOG73WYopdSP54Td2onkCdVSxpdLhf9LKoq5JJ2wc13EaVnpdv436ycMlDNe7aFzSYVKaTmYD+dmJYXyTO47LpUTZLNvKdTuibJb+7cOYT76HyGpa7CFiAnFuWUSMk5Q2E35vxTppwqPJwKh/02BZ6G8q3/RmOc5Yh5UO8N3kge7QGe57KeWTyxTZmUh69SynuHtQmmQ5lGaT0TyV+i0x0++4SQuiTYkaoCbS5GSTc/JO8sdmHvCchvuvK/0O0pbDgzxjtgIZ4DfJ+70Ll5o9y8mPDdW022vaeu+JjG7spNkwk3vgM2hewZC9Z496eIB0mI1n0GwcxEPIH59lFFeIzAWXE/e6izKf9QqqMxmTeGfyLb4uwElU1I5DyfdGAPgW5WMgpq3sy1oqFnkYzZ6H0jG5mj5LpbGe0WDdA2iWzBtWnQn2yozqd/9aYobm/0g+Lyo7n5a8P4TRHLd7ibHtehYSlflNpN30RyUt3w+TBGpiptdJ+h0+YQaxjMNM7kF/RbPy2UyPbVPpM0jTCYl2IV8+W0H5cBRrs6uIsll23omtiJnkm94XUruSf5b+Pc0a2MwqE4hzxxbASfS3wDgd+HLFeunJV7dmcwkx6HQTaU1M09ZaaQKybqzrAy9vuK9h/S55/+ia6y0iBtCdqX9usOy/kP/B+hbFAwf/Gfh55v1i4IiG+6lr2O8YoqtzOsDsIGkhuek5+cXk/esZTS3i15P3z6R/8PUyD2Tmyem6ziU/ftM+DDcZRl2Tyf6aDqlwAfkk0wbAG2Ya1AgNe32sC7xqiP1l79lLGO2wJz8i3x1sK2IsrLrS1krfZu2dmbSOq4mC6vmZz7YkCqppy/K60vJDk8SGNFu2IyaFypZP1gDvqlgnrfhpkvh+QYNli7bdtAvqOGMdVtq1tUnFRNoSa7Z9I3lf1JLuUvJDOmxAfrz32ZQOpXR4g3XXJSaOGYezkvczmam8jpleJ2kF73Ppdiu9teke1FR6jje9lp6fvD+bFpNfI3YdUWGRfbZYSvSoe8gMtptWzPx6BtuaMROIa79FRDLnHPpra28iLtqqGYwuT94/s8Y+J4CP0TzZsoLIzvfcj2a1mpcn7+vECvABpseLGrUzk/cvpN7f+D5mZ7y451KvG+a+9Cf2Pl6x/CeT90dTL96/Ax5ZY7meK5L3h1Lv+B3IcImfPyXvm3aR+Cz5sXe2Ab7AcEmzeZS3fruQfG3shsB/1djmAmJG61Em8bJWED+SPRsz81q3QbLf4bpEN6e6JoF3JJ+9mhhvdRij6sLek14fde+B76L+MAJZ2WM7wcy7yFa5m7iest5LVI4N8mz6H1o/PBtBddz1RCVVtuXv5sQ1OMxwDmkL7ibDhEiz4ZFEhWV6L/0E/QmQrHRyi7rjLu9Js4qK3r6y5eqmFVdprHXHKN6J/iGKRiVtHfSkmuttS5R7RylNbpZNBPLR5P1bGc0kFWlF8oup3437ZYyv+/zPyPfYGHXLx/Q8b3qd/Ih8d9DN6W992iXD3oP2pn5Zrmxfo56P4OvkE357Ur9n0xLgqOSzL8xGUB12E/Esnu1Zs4QYY73JM3FWmnz86ZDb0RyxI1EQyb6qZi7dmOhL/yLix/GGgvUniZO3TiuEpyfr3UN1N9D1geNK9jnJ4LE/vp4s/9Ea6/Q8Oll3BfDkiuUXEYPulsU6ihvuPCLRmd3PSZR3nViPeNAtim/QbGEvLFnvVqI5fJm9iKnls+ucMmBf6xDj22XXOZ/qxOxfEz84RTEeUrHe75Jlv071OfIYout40X7eWvVHEWMDZpe/kea1sn9NFMqy2/kxMdFJHZsRLUf/SHXLzkcW7OcYypOD6wGfp/i4jHIg6pcm+/q3hutfmlm3qEVs6uPJ/r5Ms5aoE0Tr2/Te8hrq35v2Je5laaEudWdmH8MMXn5gEudqqh9+1yHOkbJ74KAC7geS5U+k2fAFOyXrD0pIbUX8dmXXOZvqa+lv6L/P/N+A/ezRcPnUi5P1X9dw/WH28aaKZTchki7Z5e8gP1FDHX/IrH83/RNYSGUeSP/9pUmrmH2ATxHjCqfb+RX9Q/Ok0nvVJ2rscxMiUZbur86kbZcly6eD21d5e7K/r9RYZwP6r/HeaxStsh6c7OMuBpdp1iOGUUjjKxuDHaKSuOnQGs9Ktl828dkG9D8jfYfB51KRPah+Njsv2c/xDP67dqW47Nr096iJM5N9Vf1NqXWTdetMuHljZvnlNG8plz7nrAH+tuE2ICrTH1Xx79sm+2k6gRv0P8t9pMY6m9L/bNUrgw5yVWb5VdTvldRzWLLPYwcs/9lk+SsZ3JBkHnF/y653K9XlyL9Jln/fgH2k3pusP2yDgCppubosAbwhkehL76WPHWKfZ2e2sZp6leuaw4oSiLcRPyrpK00elL1OB7avuf8FRKIqvXH9D/HwsRXRLerBRAuvKzPLnUr+gWOSwQ/cacKy9/f+EvhfYka13uu1yboT5C+g3k3zU0QSaWviBrr/1Lp/yix3FtFKI7vuqGpsjqL/b/wjkUg5mDiWhxGtgrI/AB8g/x03TSCeRNTEZo/LY4kfxq2JBNQH6X/YvpN6NWUH0V+4vx14J1EzsiVx3j0F+FpmmVuA7yfrHVKxn/TBuVcAPYJoRbWEKHgdTnRl6R2zVcCnk/XeWuPvShOWa4gWfz8gfz5+lfKE6dEFMa8gkln/QHznOxIJlf2JH7SjicRt9pgO6hpelBA/a2q93Ylk5J7EOXhRZpmvJfsZZQJxU/LnWNOCWNME4iPoPyZ3EM37TyL//aWtDXs2Jr7zdDtXEQO4P5lILO9IHOeDiO/1w8S1XTfemSYQof8BbQ3RAuLxRGFuCyKh+crkb7qM6JKaXXfQdX8A/cfkLuKc+xb5Y/vugvWbJhAhEqJF3+d/EfeNXYiHucPpT/xOEg8sg7p2z7UEIkSB/CfJOncDj6u5v92Tdb/UPGTdhxUlEPcj7gHZ125E69jHAy8hKoDS5Ev29QvqjUv72GS9NfS3esnam3zycEXm/+skEL+Y7O8HxCRXdYZ5eAj9f+cbKE847UaUkYtinWR03TrTstFvKX+22JP4ribpL2NWJRDvJr7/I6nXgv9hRMvr7Pb/sWL5w4jvM7v8udSrXFlMJAa+TZxPVeO+HUL/M9pnKE+UPJTpxgarkvVGmUB8Y7KvtGtplWESiP+brPNt4l5Rt1fMBPDNZBtrgA9RL2G2I/H7fOmAeGcjgfjEgjj/qWL5fcgnD7Nl9DoJxC8n+/secR3WHWqmaQJxG2Jm7Ow6F1E+4d2SghgHXa8wtxKIEPeR9Bn4XpoN9bA5+fuYw8uoMIE47OsCIqnUtDbvEZS3FCt7XUncvM9PPh+UQJwgZtGrs48TC9bfn3iAbRLr9UTN6enJ56NKIM4jWqA1ifH7xE1/JgnEt9Hf+mvQ6x7qj9MI0UU6LexUvVYTN++0ldghFfuYTyQamp7/r52KL/vZW2v8TY+iuNVD0SudBTfrlQ22U/YalEBcSHHSpOp1MZEgG1cCEfIJ5NU0q+VumkCE6lbR2VfVoNa9MUpm8v2NI4G4O1GD2ySu24ikYnpd1ak4+FjNfRR1LxwmgQhR6G5yn+m9rqHeAP5zMYEI0bLme8l69xKVOoO8KVmv6wPWq1uKEogzea0gKiWazGjbS2BlX2cSrcmfTvQW+Ffies/+Hn6IfEV6nQTiwSVxrybGjf5T5vWhgvVPKVj3HGIc5WcQ5aajiHLw8swynyPutdn1RpVAfEZBjPcQSYHXTsX3TqLiInu/PiJZZ1ACsbfcKuLB+EPEb8DhxEP2EcBbiC6taZLuN0RL+yqvLfg7enF9kOgB8hxiHLqjiETKT5LYJhk8ccT/FOzjz0RC4wXEffhIogyXPV5vSdYZZQJxB/LHMB1PssowCcQnU3zsVxG/19nrpKgSEuL8ThuP9H7bTiZ+u44gWqa+mPg9Po7+BPioE4gTRMV1GucviQYk2XvQyeTPgWPJl33rJBAfU7CvsntQUXKwaQIR4ppME/KriLLdq4lnsJcS5cY02ThJJIMHmWsJRIhrJ312W15jvZ60PDgbcyZoLTeTBOK9ROHoA0TrsqaJw6wnkG9qXvU6g+mWWE0TiBAX0rsZ/BBclECEKLj9uWasv2H6IXlcCUSIrl91E6UfZPq4zTSBCFHwupfB+/0jzWZt7nkq9Y7/bUwPJt0kgQhRYMgmoapedzNdyzdMAhHiOKRdO4peVQnE3nZOqxl39rWCqKndo0as6xIF7PRHvOj1C6a7GIwzgZgWbNIJLqoMk0BcQBQiy4Z06L0GzYq3gCh8DtpO0esa4D0Dtj8bCUSIFq2X14zrd0wPgD9MAnE+8O/EwNBV+5nNBCLEmFtp6/iq10nUHzZgriYQIe4PaauP5VQP7D9BvrXqH3GMbDUzWwnEu4kxl4cZs3Unmt+7TyESUE0TiBAPtnX2UTSR4TbE+MlNYj2DGJpnXAlE6C+7DXq9lSjPZj+rm0Bs+rqA4glUijxvhvuaZHACcT7RdbnJNj8EPCD5bJQJRMi3VG8yVMUwCUSoXwn5qYptbEB/V9imr1EnECF6SKTDsAx6fZcoezZNIEL/0A1lr3ScThgugQiRbM9WatR9HU+9HMFcTCBC/M6k5/BK6nXJ/25mnXsZ/aQ5A41yRkXVczuDHzohbiZ3TC1/C1HYuZDI/M+G7xMFwH8hHjT2JJ+QvJl4+P4CkdjrDcT7GfLNyOsUvJYTtaxvJbpy7EUk89JxSX5fsv7PiAfAfyZqnPYm/7BzK5E4+SLRta4X05fIJxDKBl6eDXcTN+enE821DyE/LtutxEPeJ8nPbvUepo/7TUPu+6NEK5QjiITazkwfnzVEDdmXiTGC7hli+98mjuM/ET8k2RY/q4nz8ktETfl1U59/n/ibe64csI87ie/2CcT3fAiwUebfVxDXwElE4aQ3kcmF5K+nus28zyC6lOxEjDO3I8U36BtrbOeRRJL7GUQi7UH0P4zfTTT9P5uoVf8BcY3VsZyYcfqLRE3f08kP2H331DY/T5xjvfP/vZk46u5rWD8mWlP0xmF9KfB+4sdvkI8x3WWt7oPcKqIlxDHE97c30ZU3HQsxnYSkaDvHEC0Jnkd0/zyE4rFGrmV6cpsfEeNTDYr3/UwXoJrM0Jf6NXHffClxje9HvkvQ7URC/Pip18qpz79G/mEuO+txmdXENfVfxLHdhzge6UPHNQXr3kb+eryoxv56vgv8kOhi9TRirKyNkmUun1ruBPKTDA1yUxLXHxqsC3EMs+unk2fNhnQfP6+53nLi3vlv5Afn35e4Lm8pWOeR5CeQ+iD5wfalUbmD+K04hygLnczw98ZLiS6uJzB4gohVxP34TUzfH5t6DRHzvxLjTjeZrOwaItYvMXhQ/dVEue51jH/m0iOJpOzrqH74v43okv6NAculvkDc35v0UlhGDB/yDqKsWMcJxO/mG4nWgHWffyeJ+/sXqE6EQnxPLyTKdW+neqzFZcQwNu8lkk7j9CGmK/EXE8OGfHaE+zuSeG47iihnD1M5dRdR1vkq8GaiHNJk3ROJIY5G7RKm70FlXXt7VhJJuzcz/LP8K4mywcun9juOCRO/Qjx//Rf1erD9mWhl+1nu2+WKXrJwGTHBKMR96AvEvaLs/NyG/JiJXyL/PN2KmbRY09y2PtMt9K6n29OtLyZinUfEOsrE4LDmEV0k1ycKY3fNwjZfSCSJet5OFEhS6zCd5L2O2Us69ywkxhxbRRz/ukmfJuYT3/H6RIFxUCKvazYnuhFPEjf+26iXTKtrYyKJeAv1kkLj8FyiENVzKPkZmtcm6xLHdz3iXngbM0sAzrb1iHNsAXENDlMxsDbYgLiPriTuAXVbqKra8UTCHOK47ki3zm9130bU6/Z+J1HBccfUq9cKbzZNEF0n/4ZIJC6d2sf1U/s7nXgIuzqzzpOYHq9ukpi8rYn1iIr3JfTPqnsV+dk4U48jKu4Pmop1gignXk1USp5AjGHb81jyFZwnMvvlutRORJnzMURL7w2J8uRlTI9f3kvmzSPfIud2qifqmyCO3UOJSqpdiLEWNybKr7cTlT6/JY7HN5lZOWcbYgzOxxCt/5YSx/Neomx+GVE5+CuizHL9EPvYmigDPZk4XkumtnMlkST/MtMVuRuQn+X6Wgb3lpiJeURlXi9x+Usi+VRnvSbfa5H1ie96E/pnxL6M6pnWeyaIa+VQotfPNkyXz24nytgXEy1UTyX+vkEt+tYjP9THTURLzWFNEI1IsvegNcQ5cBXT96BsxeuTma6YXUOz7uUQz8K9Y5veg66kv6JzK2IIs56Lqd+qtOchxHF7JPEcuJQoO1xH9FD87tSrSZl0G/ITgTaNa2/yLdjPIJKYsyndxy/I/55UmUf05MtWtEwSjXOKyrRvYnr89kmi8cAFTYKVpKyyLsxSF8wjWpX0zs/vtxuOpAI7kh/e4JXthiNJGrF0iIwD2w1HUoF1yE9e+7/thiNpLjCBqK57ChZSpS77KNPX55XEGGuSpLlrPvlxb5u2uJU0etkJqVbTrOu+JBUygai1QXYyobW1C7M0F+1IdMnvXZ/PajccSdKYPIt8cqLOJH6SxiNN8n++enFJqscEotYGu5CfFfxx7YYjacoJTF+XP2w5FknSeP2I6d+AE1uORdK07DADdxDjqkrSjJlA1NpiV2JGugOIwdEltW9/pq/LzQYsK0maW3Yl3wq9zqy6kkZrEfmxD1/dbjj96k5jL0nSsC5uOwBJfc5uOwBJUmsuxnFvpa5ZRsze3lnz2g5AkiRJkiRJUnfZAlFae50NvD7z/oy2ApEkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSdLcMdF2AJI0yyaAf8y8vxw4pZ1QJEmSdB/zD8CCqf+/Bji5xVgkSZJUYh4wmXmd2G44kiRJug+5i+ly6A9bjkWSZs28tgOQJEmSJEmS1F0mECVJkiRJkiSVMoEoSZIkSZIkqZQJREmSJEmSJEmlTCBKkiRJkiRJKmUCUZIkSZIkSVIpE4iSJEmSJEmSSi1oOwBJ6oj5wLuA/TOfXQscBdzRSkSSJEm6L5gA3gY8LPPZTUQ59OZWIpIkSZrj5gGTmdeJNdZZDHwrWe8CYPsRxShJkqS56S6my5M/rLH8usCXyJdDLwV2G1WAkiRJap5A3Aw4PVnn58DmI4xRkiRJc1OTBOIS4Kfky6G/ArYYYXySJEmiWQJxZ+CiZPlvAOuNOEZJkiTNTXUTiNsA55Evh34f2HDUAUqSJKl+AvGhwA3Jsh/EyaUkSZI0vDoJxL2Aq8iXQz+NcxRIkiSNTZ0E4tOBuzPLrAFeN64AJUmSNGcNSiA+FridfDn0reMKTpIkSWFQAvEVwOrMvy8DnjPOACVJkjRnVSUQ/x5Ykfn3lcBLxhmcJEmSQlkCcYKo3c3+2y3AI8cfoiRJkuaosgTiv5Mvh94JPHHs0UmSJAkoTiCuCxyffH4ZsHtLMUqSJGluShOIC4CPky+H/hnYr60AJUmS1J9A/Cnws+Szs4AtW4pPkiRJc1c2gXgmMbNythx6PrBda9FJkiQJ6E8gpq9fABu0Fp0kSZLmsmwCMX2dC2zSXmiSJEnqSROIdyfv7wUOay06SZIkzWXZBGJaDl0BPKu90CRJktRTNAZiOmj1cuDwtgKUJEnSnJWOgfgaYE3ms1XEbMySJElqUdkszK9NPl8FvKiNACVJkjRnFc3C/DJgdebzNcBRrUQnSZIkoDyBCHAk+cLbauDF4w5QkiRJc1ZRAhHg+cBK8knEV449OkmSJAHVCUSAl9BfA2zhTZIkSbOhLIEI8BxiHMRsWfUtY41OkiRJwOAEIsBzydcATwJvGleAkiRJmrOqEogATyEm9cuWQ989tugkSZIE1EsgAjwVWIaFN0mSJM2eQQlEgCcC95Avh74XmBhHgJIkSaqfQAR4Ev2Ft/eMOkBJkiTNWXUSiAAHA3eQL4d+lCjLSpIkacSaJBABHgXcmazzESy8SZIkqbm6CUSAhwO3kS+HfgGYP8oAJUmS1DyBCPAI4PZkvU9gElGSJEnNNEkgAuwP3Ei+HHoCsGBUAUqSJGm4BCLAAcBNybrHY+FNkiRJ9TVNIALsAfyZfDn0W8C6owhQkoZh02hJc9EewO+nXmcCP6+xzrXAKcCmmXV7LRAvGEGMkiRJmnseCFxElCV/DZxaY50bge8AmwMXTq27ikggnjeaMCVJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkua0ibYD0OSRwKPajkKSJHXWb2HiP9sOQnPR5IuAJ7YdhSRJ6qyLYeJogAVtRyIOAp7bdhCSJKmzNgNMIGoUDsRyqCRJKvdL4GiwBWKLJl8AN28NV78N9lnUdjSSJKmr/rQClh0De14NEx9vOxrNBZPPhuVbw7nvgoeu13Y0kiSpq65eCdcfCwdcYwKxNZMXAbu2HYUkSVpr3AUTG7YdhOaCybOAA9qOQpIkrT3swtwdNwFXth1Ev3P3hV3/AIuXtR1JsQt3g8V3w/ZXtx1Jsau3gjs2gT0ubDuSYisXwO/2gv3OaTuScufuA7v8ETa4p+1Iiv1hV1h3GezYwesX4M/3g1s2hwdd0HYkxSYn4j7T5XPwvL1hh8tg4zvbjqTYRQ+AdVbCTpe3HUmx6zeHG7aEvX7XdiTlztmvo+fgVlMvadRuBS5rO4h+5+4DO/0JNrqr7UiKXfQAWLgCdryi7UiKXbcUbtqiu2UA6PD9d8p5e8P9r4Alt7cdSbE/7gzz1sDOHbx+AW7YDK7fyjLATPx2L9j6atj81rYjKXbJTvHfXS5tN44yt2wCV28He5/fdiTlOnsObgFs23YQAqIF4uRk5tXVLkl3Abu3HUSFM4Fj2w6iwtFAh29WLAU6mhz+i9uBB7cdRIXTgI+2HUSF1wAXtR1EhYXAiraDGOBm4NC2g6jwA+C4toOocCSdTEzkrGw7gGKTRydlhY4msbX2mTwrObeObzuiErcAB7cdRIUfA59uO4gKLwcuaTuIATp6//2LG4DD2g6iwsnACW0HUeEIOtlIJqfr5+A1wHPaDqLCN4AT2w6iwuHAtW0HMUBHz8HJVydlhcl5bYckSZIkSZIkqbtMIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSKROIkiRJkiRJkkqZQJQkSZIkSZJUygSiJEmSJEmSpFImECVJkiRJkiSVMoEoSZIkSZIkqZQJREmSJEmSJEmlTCBKkiRJkiRJKmUCUZIkSZIkSVIpE4iSJEmSJEmSSplAlCRJkiRJklTKBKIkSZIkSZKkUiYQJUmSJEmSJJUygShJkiRJkiSplAlESZIkSZIkSaVMIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSKROIkiRJkiRJkkpNtB3AfdfkRcCu0++/dCu84NrWwin3QOAyYFnbgZTYBbgXuKbtQEpsCWwI/LHtQEosAB4AXNh2IBUeCFwJ3N12ICV2BpYDV7cdSIktgE2Ai9sOpMID6fY5uDtxj7mz7UBK7ASsIq6TLtoc2JRun4N7AL9vO4h+xyyF1y7NfHAXTGzYWjiaQybPAg6Yfn/S7fD0Lpaldid+X+9qO5ASOwErgavaDqTEUmAJ3n9nYnfgWuD2tgMpsSOwBrii7UBKbEqchxe1HUiFrp+DuwE3ALe2HUiJHab+e3mLMVRZQjwPdfkc7Oiz0Js3g7ffL/vJgrZCUWrbPwEntR1FgbcA3wGubzuQEv9CFNq+1XYgJR4H7Amc0HYgJRYDr6O78QG8GTiF7iZHjgRuBL7RdiAlDgH2p7vf8XziPtPV+ADeCPyU7j6AvYRIbn6l7UBK/BXwcLr9Hb+dTsa346OBx7Qdhe4LtrkC+FrbURR4E/Bj4E9tB1LipcBtwFfbDqTEI4CH0cn721909P77F/8B/IzuJpiOICqyu3oMHww8mu7GB90/B18P/Bw4t+1ASryQaJjW1WO4D/BkuhsfdPYc3OnhwBPbjkJAtECcnMy8Pt52RCXuImreuupM4Ni2g6hwNHB+20FUWEp3W5f23E4UPrrqNOCjbQdR4TV0u8ZtIbCi7SAGuBk4tO0gKvwAOK7tICocSbRk77KVbQdQbPLopKzQ1VawWutMnpWcW8e3HVGJW4CD2w6iwo+BT7cdRIWXA5e0HcQAHb3//sUNwGFtB1HhZDqrBxPGAAAgAElEQVSZePiLI+huI4Cerp+D1wDPaTuICt8ATmw7iAqHE62Iu6yj5+Dkq5OywqRjIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSKROIkiRJkiRJkkqZQJQkSZIkSZJUygSiJEmSJEmSpFImECVJkiRJkiSVMoEoSZIkSZIkqZQJREmSJEmSJEmlTCBKkiRJkiRJKmUCUZIkSZIkSVIpE4iSJEmSJEmSSplAlCRJkiRJklTKBKIkSZIkSZKkUiYQJUmSJEmSJJUygShJkiRJkiSplAlESZIkSZIkSaVMIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSKROIkiRJkiRJkkqZQJQkSZIkSZJUygSiJEmSJEmSpFIL2g5APT88CHhf21EUWBd4A3Bj24GU2AlYRDePHcDBwLZ0N77FxH2gq/EBrAf8G3B124GUeACwKd09hg8DtqS78c0D5tPd+ADWB44CntR2ICUeCGxPd4/hgcBSuhsfdPYc/NLD4PltB6H7hJ/vRyevAdYHXgE8re1ASuwObE03jx3AQ4At6G580Nn7719sCLwMeHTbgZTYG1hOd4/hvnS7nAzdPweXAEcAD247kBL7AxN09xjuAWxMd+ODzp6DHz8gbn/TTCB2xk1bEcmmrpkPHADc03YgJTYgCm5dPHYA9ycSYF2NbwGRwOlqfBDn4D5EsriLNgLWobvHcFsiyd7V+CamXl2ND+L7fRCwTduBlNiEeMju6jHcClhId+Pr6WB8N2zddgS6r7hlKZ28BlgA7EWUp7poY7r9G7sN3Y6vp8vxrUMkILZsO5ASmwCr6e4x3JJokNLV+Hq6HN9CYDciEdtFm039t6vHcHMshw7p+q7e9+6LJi+CycnM6+NtR1TiLqJ2tavOBI5tO4gKRwPntx1EhaXAsraDGOB2ulvjBnAa8NG2g6jwGuCitoOosBBY0XYQA9wMHNp2EBV+ABzXdhAVjgQuazuIAVa2HUCxyaOTssKdbUekuWLyrOTcOr7tiErcQicfqv7ix8Cn2w6iwsuBS9oOYoCO3n//4gbgsLaDqHAycELbQVQ4Ariy7SAG6Po5eA3wnLaDqPAN4MS2g6hwOHBt20EM0NFzcPLVSVlh0jEQJUmSJEmSJJUygShJkiRJkiSplAlESZIkSZIkSaVMIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSKROIkiRJkiRJkkqZQJQkSZIkSZJUygSiJEmSJEmSpFImECVJkiRJkiSVMoEoSZIkSZIkqZQJREmSJEmSJEmlTCBKkiRJkiRJKmUCUZIkSZIkSVIpE4iSJEmSJEmSSplAlCRJkiRJklTKBKIkSZIkSZKkUiYQJUmSJEmSJJUygShJkiRJkiSplAlESZIkSZIkSaVMIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSqQVtB6CeGzcCdm47igLzgO2BlW0HUmIxsIRuHjuATYFFdDe+JVP/7Wp8APOBbYFb2g6kxHrAJnT3GG4OLKS78a0DTNDd+CDOwa3pbozrA139DQG4H/E9dzW+ng7Gd/mmsEPbQeg+4dYN6OQ1wHxgG7oZG0Q5dGO6G9/9gHXpbnw9XY5vAd0uA2ww9d+uxmcZYOYWAFvR3Rg3IHIGXY1vK+IYdjW+ng7Gd8lmsEvuk4mWIhGTFwG7Tr//1Cr4xxWthVNuMbAMWNN2ICXWA1YDXTx2EImb+cC9bQdSYTFwT9tBVFgbzsE1wPK2AynhOThz6xH3mNVtB1JiETBJd8/BdYiCm+dgY29fB968TuaDu2Biw9bC0RwyeRZwwPT7r6yG53bxHrKYuLd5/x2O99+ZW49oSLGq7UBKdP0cXECch56Dw1sbzkGI57Uu8hwc2msXwDEL245CQCQQJyczr4+3HVGJu4Dd2w6iwpnAsW0HUeFo4Py2g6iwlO7e7HtuBx7cdhAVTgM+2nYQFV4DXNR2EBUW0t0KgJ6bgUPbDqLCD4Dj2g6iwpHAZW0HMUBHW9lPHp2UFe5sOyLNFZNnJefW8W1HVOIW4OC2g6jwY+DTbQdR4eXAJW0HMUBH779/cQNwWNtBVDgZOKHtICocAVzZdhADdP0cvAZ4TttBVPgGcGLbQVQ4HLi27SAG6Og5OPnqpKww6RiIkiRJkiRJkkqZQJQkSZIkSZJUygSiJEmSJEmSpFImECVJkiRJkiSVMoEoSZIkSZIkqZQJREmSJEmSJEmlTCBKkiRJkiRJKmUCUZIkSZIkSVIpE4iSJEmSJEmSSplAlCRJkiRJklTKBKIkSZIkSZKkUiYQJUmSJEmSJJUygShJkiRJkiSplAlESZIkSZIkSaVMIEqSJEmSJEkqZQJRkiRJkiRJUikTiJIkSZIkSZJKmUCUJEmSJEmSVMoEoiRJkiRJkqRSJhAlSZIkSZIklTKBKEmSJEmSJKmUCURJkiRJkiRJpUwgSpIkSZIkSSplAlGSJEmSJElSKROIkiRJkiRJkkqZQJQkSZIkSZJUygSiJEmSJEmSpFImECVJkiRJkiSVMoEoSZIkSZIkqZQJREmSJEmSJEmlTCBKkiRJkiRJKmUCUZIkSZIkSVIpE4iSJEmSJEmSSplAlCRJkiRJklTKBKIkSZIkSZKkUiYQJUmSJEmSJJVa0HYA+otHwORH2g6i3ycWwlPfAlvd1nYkxb60A2y+Ljyhg8cO4McHwtVbw991NL471oMTFsDLOhofwCcXwWP/HXa8oe1Iip2wM2y0BA7r6DH82b5w2Rbwoo7Gt3oefHI+HNnR+AA+uT488l9h92e2HUmxr+4Oi7aDp3X0GP5iT/jDZnBER+MD+Ni8jp6DB7YdgO4zDuxmOfSTi+FRr4Zdn9t2JMW+siss3gqe2sFjB3DGXvDHpfD3HY0POnz/nfKpDeCgf4YHHdZ2JMW+9iBYZwU8vaPH8Fe7w++WwD90ND7o/jn4mY1hvxfDfo9qO5Ji39wXJifgmR09hufuDL/ZCF7c0figw+fgPukHE21EIYDJi4Bd245CkiStNe6CiQ3bDkJzweRZwAFtRyFJktYedmGWJEmSJEmSVMoEoiRJkiRJkqRSjoHYHXcCN7UdRL/Ld4Ctr4GFK9uOpNg1W8OiZbDZLW1HUuzWTeDu9WHba9qOpNjq+XDVdrDD5W1HUu6K7eF+18Gi5W1HUuzPW8E6K2FpB69fgNs2hjs3hO2ubjuSYpMT8R13/RxcegMsvrftSIpduyXMX83/b+/Owy25Czr/v093p5POvgcSCHvYXYiAIMKwKIyOCCQjiiBhE1EzICKyKBFhfgqOjI7DsCkiMwqogIOD+pMhMoGIQFAUdQg7CYQlIWsnZO0zf5zb9E3n1O2kl1SRfr2e5zz3Vt1zTn3uuXXrfu+n6lR19PljJ1nu0oPqkkPrtueOnWTY528/0XXw0OqwsUOwV9hcTXAb8oXb1dFfrU1Xjp1kuamPAS45uC49eLpjgJrw9nfFOcfXERfUAVeMnWS5rxxTs3kdM9FzhRsD7Lpzjq/Dv14HXj52kuW+evRiPH+rr46dZLnNB9SFR9Tx54ydZNhk18FDqsPHDkG1OAfifL7q9rqxEw3YXN1t7BBr+FD1qrFDrOG06uNjh1jDUdVEB+XfdEl137FDrOH91WvGDrGG51Vnjx1iDRurq8cOsQNfrx4+dog1vKf6g7FDrOGnqs+NHWIHJrqTbH7admOFy8ZOxC3F/Kzt1q0/GjvRgAurB48dYg2nV783dog1nFp9euwQOzDR7e83fa2a6AVUqnp39ZaxQ6zhKdWEi5tq+uvgl6rHjx1iDW+v3jl2iDWcXH157BA7MNF1cP7c7cYKc29hBgAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGLRh7ABs9bYfru49doolNlVvra4YO8iAe1d3qL577CAD7lAdVv3t2EEGbFy5TTVf1YHV71eXjh1kwLdXd1/5OEXHV0c13Z/xuhZ/i6aar+qQ6r9WF40dZMC9q2ua7mt4XHXrppuvan2TzPdbt6nnjB2CvcK7v69J/g50SPXa6uKxgwz4traNA6boNtUxTfNnu9VEt7/fdHj1n6sXjx1kwL1q/XU1++DYQZbbcuvq1rVuovmqrttQ6yecb8vRNfu1mk10QLDlHjVruuvg/OjqyOnmq+mug//x1ttv+hSIk3HY+dVZY6dY4r7Vv1YXjB1kwAnV15rma1e1b4sSdqr59q++s+nmq/qu6hPVeWMHGXDn6sKm+xquqw5u2vnu23TzVZ1Yfar6/Mg5htyhurzpvoZbqiOabr5a7ISaYL4j1lW3HTsFe4NDpvp37MTq7OrcsYMMuGOLHZxTfO2q5i12ZE81X012+/tN96k+02IcMEGz29Vt19ddzh87yXKfObAuuK7uP9F8VX8zr4dOON8HttRdL62jJprxo1fWQbM6YaL5vrhvfXFLffdE89V018ETDtp+zmyMGCN7VvW0VdM/1ih/EOZntyi/tnp9zZ558+fYoc1tK3Cm6EPVmdVzxw4y4LTq5KZ5dGktjkw7t9pv7CBruKR6RPWRsYMMeH/1zy22LVP0vOoZ1V3HDjJgY4vtzMaxg6zh69WPVO8dO8iA97Qo2J88dpABP1X9Youic6quqfYZO8QNzU+rfmXVjM01u8Fgjm8pT65OXTX91Oqfbv4Y87NalHNbvaVmT7j5c+zQhdVjqjPGDjLg9OpzXf9/iyk5tXp2i52dUzXR7e83fa16SvXusYMsN/uLesABdeYrxk6y3MmPqA88sb5yythJhm18V1396LFTDDvozfWM361XTXQ7ePsX1dHr6sMvHzvJcqc8qN79zDr/SWMnGTbZdfCx1dNXz9gbj0A8tusPmDaNFQQAgL3Krbr+OPTAsYIAANwULqICAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIM2jB3gW8yh1WzV9LXVZSNlAQBg73FI19/5f1116UhZAIC9jCMQb5xZ9SvVRdWFK7dPV98xYiYAAPYOv9j1x6HnVA8cNREAsFdxBOKObazeWP34qnmfq36g+sQoiQAA2Busr/5r9VOr5n25xTj0Y6MkAgD2SgrEtR1avbP6N6vmnVX9u+qrYwQCAGCvcED1tuoHV837lxbl4TmjJAIA9loKxGHHVn9Rffuqee+pTsp5DwEA2HNuVf2v6sRV8/6melx18SiJAIC9mnMgLnfv6u+6fnn4+y32ACsPAQDYU+7eYhy6ujz80xZHHioPAYBRKBBv6OHV+6vbrkzPq5dWT62uGSsUAAC3eA+ozqhut2ref6keX105SiIAgBSI23ty9ZfVISvT11bPbHEFZgAA2FNOqt5bHbkyfV31s9Wzqy1jhQIAKAXiar/Y4m3K+6xMb64eXb1htEQAAOwNnl39cbVpZfrK6seqV4+WCABgFRdRqfXVa1scabjVl1tcafnvR0kEAMDeYF31Oy2ONNzqwuqHqw+MkggAYAkFYv336p6rpv+1xUmqvzBOHAAA9hKv7frj0M9U/7b61DhxAACW8xbm6w/aqk5NeQgAwJ63/Tj0uSkPAYAJUiDWB7eb/tPq/mMEAQBgr7L9OPQPq4eMEQQAYC0KxHpW1z9B9WEtroD3sHHiAACwl/iF6j+vmj6w+ovqkePEAQBYToFY8xZvW/6tVfMOqP68+v5REgEAsDeYt3jb8q+umrd/9a7qsaMkAgBYQoG4MK9+rnrZqnn7tygRHzNKIgAA9hanVS9YNb2x+uPqiePEAQC4PgXi9b2k5YO3k8eJAwDAXuIV1c+22LFdtaF6U3XKSHkAAL5JgXhDr6iev2p6n+qt1ZPHiQMAwF7i1S3Oz71lZXp99cYWxSIAwGgUiMv9RjccvP1+9TOjJQIAYG/wuuonqmtXpmfVf6meM1oiAGCvp0Ac9toWRx2uHrz9TgZvAADsWX/Y4vyH16xMz1pcrfkloyUCAPZqCsS1/Y/qSd1w8PbLoyUCAGBv8LbqcdWVq+a9tPr1ceIAAHszBeKOvbU6qbpq1bxfzeANAIA9639Vj62+sWreL7Y43c5slEQAwF5JgXjj/HnLB2+vHCcOAAB7ib+qHlVdtmre86r/lrE8AHAz2TB2gBG8qfo/q6Y/eyMf95fVidVx280/qOsP6AAAYJm3VR9dNf0vN/JxZ1TfVR2/3fyDq4t3Qy4AgDXtjQXiZ1ZuO+P/rtwAAOCm+vzKbWd8cuUGAHCz87YHAAAAAGCQAhEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABg0N54FeaJ+sC3V88fO8US+1TPqL46dpABt60e0DRfu6qHVMc03XwHVOubbr6q/apTqoeOnGPI7atNTfc1fHh1ZNPNt77pr4P7V0+oThw7yIA7V0c33dfwe6vDmm6+WuxQnWC+d35PPXbsEOwVPnr3Jvk70KbqidV3jx1kwB2b9vbtIdURTTdfTX8McED1+OqeYwcZcEJ9YUM97KSxgyz32bvX5QdMN1/VfN20811zQP3/D6yHHTV2kuW+frv6xmy6r+EX7lyb959uvpruOviz96rHXW/ObKQkND+7OmHb9P+4uJ40xZLuhOqc6sqxgwy4Q4tsXx47yIBjWgw8Pjt2kAHrqztVnxw7yBpOqL5YXTF2kAG3r66uzhs5x5CjqoOrz4wdZA13rc4eO8Qa7tJiG7N57CADbldd1+L3ZIqOaPEP9qfHDrKGia6DrzyifuHIVTM21+yg0eJwCzI/q+vtFPmfl9ZjpjiWukuLv6+Xjx1kwO2qa6svjR1kgO3vrrtLiwMpLh07yIDjazav2VTXwcNqfljNpvq/ULXlLrXuU2OnGDa/U80uqC4ZO8ly89ssPs4mOg6dH1LzI2vdhP8Xmuo6+OLD6leP3PH9uBnMz675fNXtdWMnGrC5utvYIdbwoepVY4dYw2nVx8cOsYajmm45vNUl1X3HDrGG91evGTvEGp7XtAfmG1sUsFP29RZHck7Ve6o/GDvEGn6q+tzYIXbgmrEDLDc/bbuxwmVjJ+KWYn7WduvWH42daMCF1YPHDrGG06vfGzvEGk5t2uVhTXb7+01fq35w7BBreHf1lrFDrOEpLQ5GmbKpr4NfanEU7FS9vXrn2CHWcHLTPdhoq4mug/PnbjdWmDsHIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwaMPYAdjqunVN9+exvulmq5o13XyzlY9Tzbd+5eNU821lHdx5W3cUTTXft8o6OOVt9Czr4O4wwXzXrptkLG6Btkx5GzLlMcCsaf99sP3dPab8MzYG2D2mnG/q2xnr4O4xwXw3HIfOBu7JHjc/uzph2/QbttRPXjdanGH7VNdW87GDDNin2lJN8bWrxaB31uI1nKKtG/trxg6yhn1a/Hy3jB1kwNat6lR/xutb/OGc+s946vmsgzvPOrjTXrquXrJ+1YzNNTtotDjcgszPqk7cNv3WLfVjUxxL2f7uGtvfXWcd3DXWwV1nHdw11sGd9vPr6j+t3/H9uBnMz675fNXtdWMnGrC5utvYIdbwoepVY4dYw2nVx8cOsYajqivHDrEDl1T3HTvEGt5fvWbsEGt4XnX22CHWsLG6euwQO/D16uFjh1jDe6o/GDvEGn6q+tzYIXZggoO2qvlp240VLhs7EbcU87O2W7f+aOxEAy6sHjx2iDWcXv3e2CHWcGr16bFD7MBEt7/f9LXqB8cOsYZ3V28ZO8QanlKdM3aIHZj6Ovil6vFjh1jD26t3jh1iDSdXXx47xA5MdB2cP3e7scLcORABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGKRABAAAAAAGbRg7AN9035r/x7FD3NArNtbjn1O3//rYSZZ79W3qqO+pH5nga1f1Z99b5xxT/2Gi+S7cv16/oV4w0XxVr9y3Hv2suttjxk6y3GtuV4fsX0+Y6Gv47vvXp46s50w039Xr6zfX1wsnmq/qNzbVI55a3/mwsZMs9/o71aZj6kkTfQ3/+j71z4fVcyear+rX1k10HfzesQOw1/i2aY5DX7mpHvmM+vZHjp1kudfesQ48vJ44wdeu6q++qz5x+HTHADXh7e+K3zigHvITdb8Hjp1kuTfctfa5qk6Z6Gt4+rfVxw4xBtgVv3lw3e9H63u/bewky73xnjWf1dMm+hqeebf64EH1vInmqwmvg/fffsZsjBRUzc+uThg7BQDwLWNzzQ4aOwS3BPOzqhPHTgEAfOvwFmYAAAAAYJACEQAAAAAY5ByI03F1dcXYIW7okkPqwM21/rqxkyx32UG14dra9I2xkyx35X51zT510GVjJ1luPlv8jA+9eOwkwy45pA68stZvGTvJcpv3qw1bar+rx06y3FX71DUb6sCJ/o5UXXxAHXr52CmGXbp/7X9VbZjodnDzfrV+XpuuGjvJcldvqCs31sET/Bu31WTXwX2qjWOHYK8w4XHoAZcvxnpTtPnAWrel9p/ga1d11b6L28GXjp1k2MWHTn8ceoAxwE4zBth1l+5fm66ufSa6Hbxi38WZ8aa6Dl6zvr6xr3Vwp9xgHKpAnI431eyZY4dYYnN1v+oTYwcZ8KHqzOq5YwcZcFp1cnXvsYMMOKo6tzps7CDDNl5av/WSetYnx06y3J1eWff6Qr331WMnWe4HT6qzv7/OneL2pbpgQx33jrrqR8ZOMuzYt9aLf71e+LGxkyx315fXnS6sM141dpLlTvqB+ujJdd5Tx04y7Oh31dVTXAefUP342CHYK7y9Zk8YO8QSF1aPqc4YO8iA06vPVU8bO8iAU6tnV3ceO8garmna49AL6vm/Uy/7yNhJlrv7S+v4K+rMV4ydZLknPKI+8MT6yiljJxk22THAiuPeXM/43XrVRLeD93hRHb2uPvzysZMs94wH1bufWec/aewkwya7Dj62evrqGd7CDAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMGg2doC91/zs6oRt0+84p076+Ghxhj2q+tvq0rGDDHhIdXH1j2MHGXCP6pjqb8YOMmDf6uHVX4wdZNj6R9WRn6qNm8dOstxX7lH7XVmHfnbsJMtddGxdfWQd809jJ1luXp13Yh330bGTDDvvO+vwz9V+F4+dZLmv3K32u7YO/fTYSZa79FZ1xTF1q6lup1usg8dOcB18ybH19GNXzdhcs4NGi8MtyPys6sRt0399Xj3yH0aLM+xR1Uer85Tye/UAABZaSURBVMcOMuBB1TdaZJyiu1THV+8dO8gafqBJj0PXPbKO+ELtd9HYSZb7yl1r3y112KfGTrLcpUfVFcfVrT42dpJhX5r6OPQ76tAv1v4XjJ1kua+eUPtUh39y7CTLbT6yLrtN3XrC6+BUx6HPPaaec9vVczaMFYXtbbimmmhB0hVNN9t11dVNN9/V1Zamm++aFg3OVPNV66tbX1Wbrhg7yXKXbKnDrq1jJ5pvy7W1eV63mWq+dfWVppuvFv+33uqqOnCiGS/ZUodcN93X8EtX13zC62DVl5tmvkOuGTsBe4v11zbNscC8RUE3xWy1GIdO9bWruqrJj/OqSefbMK9jrq6DJvg3ohZjgIMnPAY479rasmW6+Wq6Y4CtLpjX0VfXoRPNeOmWOrDpvoZfu6quMQ7dKYfeYBzqCMTRbH8EYq+v2TPHSrOGzdV3VZ8YO8iAD1VnVs8dO8iA06qTq3uPHWTAUdW51X5jBxm28dL6rZfUsya6V+uYV9a9vlDvffXYSZZ7xEl19vfXuVPcvlQXbKjj3lFXPXrsJMMOfGu9+NfrhRPdc3ncy+tOF9YZrxo7yXI/9AP10ZPrvKeOnWTYxnfV1VNcB59Q/fiqaUcgsptsfwRib6nZE8ZKs4YLq8dUZ4wdZMDp1eeqp40dZMCp1bOrO48dZA3XtDh8aaI2XlDP/5162UfGTrLcbV9ax19RZ75i7CTLnfyI+sAT6yunjJ1k2GTHACsOenM943frVRPdDt7+RXX0uvrwy8dOstwpD6p3P7POf9LYSYZNdh18bPX01TOcAxEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGKRABAAAAAAGKRABAAAAgEEKRAAAAABgkAIRAAAAABikQAQAAAAABikQAQAAAIBBCkQAAAAAYJACEQAAAAAYpEAEAAAAAAYpEAEAAACAQQpEAAAAAGCQAhEAAAAAGLRh+ez5/tVDqodWt66OqC6rvlh9pPqrml285HEbqqcOLOvi6oLqH2v29YHl7lf9xMrE/63Z+3f8LcwfWd2u2lKz393x/Zc+x62r767uUx1bHbV4vr5W/V31juXfLwAAu9d8U/W91cNajMuOrC5vMQ49q8U4dGgs+fSW7yC/pMU49J9qdv7AY9dXT1uZ+HTNTr8RWR9W3Xll4vdqdt2OH3OD5zi6ekCLcehxLcahtRiHfqR6+/D3CwBw89iuQJzvWz2nen51+BqPu7Lmb6l+uWZfWjV/n+p1O1jmvOanVy+s2Ue2+9oBqx7/uupGFIj9dPXo6upqJwrE+anVf1njDs9YfH3+opqtdT8AAHbafJ/qZ6sXVEevccerav6n1Ytr9oXtvvaaBneQf3M5Z6w89gPbfWFD28ahf1TdiAKxp1VPWPn8D6qbWCDOn1K9cY07PL367Zq/tHpFzeY37fkBAHaPVQOs+RHVO1vs8a3FAOjDK7cLqv2rO1YPb7En+Cktjtq7x8Bzf736/KrpY6rbVLOV5/jbmp9Us3ftlu9k5+238vHSFt/redVXWxSo967u16LY/O3FHvHZK0ZJCQBwizU/pPqT6vtWZmxpcbThh6rzW4zXbl89okW5+OMt3i1z24EnvKj67Krpo9s2Dn1w9b6aP6lmb9md38VO2DoO3dziaMNzWxx5eGiLMfYDV+7za9WB1S+NkBEAYGuBON9Y/a8WhWDVX1X/oWafuuFD5uurH6le1tp7eP+8Zk/Z7rGHVS+sfmHlsW+s+Z1qdsnOfwu77L3Vg6oP1ezaG355/m+qt7coFF9a8zcOv/UFAICbZr6+ekeLtyxXva/6mZr965L7rqseU/3HFiXbkNNrdvJ2jz24em71kmp99bqa/++Rx3UfaFGE/l3Nrr7hl+cPaLGD/5jqBTV/fc3OuVkTAgC07RwxL21befi26t8tLw9rcW6X2Vuq76j+9KYtbnZRzZ5f/Y+VGUdUj71pz7G7zf6+ZmcuLw+rZu9rUZZW7dvivJAAAOwev9i28vDPq0cuLw+rZltq9o4W5wt8801bzOzSmv1K9dqVGQdVj7/JaXer2cdrdsby8rBq9sHqxSsT61scgQkAcLNbV/PDW5xvphZvm3jGjTsB9GxzzV60k8tdXTyeuJPPcXP6h1WfHzJaCgCAW5T5AdXPr0x8rTpluExbbfaNmv3iTi7UOBQA4CZaV/1Yi3OqVP23ml12Myz386s+X+vtJ1Nx51Wff3q0FAAAtywnte3CfW+o2YU3wzJXX3jFOBQA4EZY1+K8K1u982Za7u1WfX7xzbTMnTQ/tPoPKxP/2o27MjQAADu2ehz6ZzfTMr+VxqEHtjhvY9Xnqr8eMQwAsBfbUH3nyueXVZ+8mZZ70qrPP3ozLfNGmN+/On5l4tDq7tWTW+wZ/0L1o8PnSgQA4CbaOg69pvqnm2mZj1v1+ZTGoSdWd1yZOKS6a4tx6FHVl6sfqdlVI4UDAPZyG1pcyKTqazWb79nFzQ+uXlD9xMqMi7r59jbfGM9u8Zbu1a5rcRGV3xz5atEAALc0W8ehF924cx/uivkBLY7m++mVGZdXf7Jnl3mTPLN6xnbztlT/qfq1m+nt3QAAS21o2/kPL9/Nz/1DNT9r1fQRLY7u23rl5+taXLBlSm8d+Vr12RZXubt1tXHl8xdUd6v5z9Ts/BHzAQDckhy08nF3j0Mftt049LAWb11evzI9r366Zl/dzcvdFRe0GIeuazEO3Xfl85+r7lLzn67ZeSPmAwD2YutavHW5thWJu8sRLa5st/V2+7aVh2dUD67Z23fzMnfR7Dk1u1PNbl9tanHS6t9okfvfV6fXfP/R4gEA3LJcuvJxd49DD+v649A7tq08/GD18Jq9eTcvcxfNXrQyDr1Di3HoHaqXtzgK8Yer/1NzV2EGAEaxocXezsOro2u+rmZbdtNzf7B606rpy6sLq3+o2VduxOPX7fguN+l+N9FsS/WZ6vk1/1z136p7VadWr9j9y/v7u1RP3P3Pu8s2VI+pvjh2kAHHVPdumq9d1X1alOlTzXdwi3+oppqv2rJP/cl9633HjZ1kuW8cXufM6/EPHTvJcp89oS4/cLr5rltfW2bTzVd17T71l/epjx02dpLlLj+qztk03dfwE/eoKyacr2o+0XXw1DvUg8YOsadd0OLIwMNqvu9uPMff31evWzV9RYtT5/zDjTyKb3Yjl7OnxqHz6vPVL9f8k9WbW+zY/oXql3b/8v7v7ZvmWGC/6lFtO0f51BzX4kjRKb52VQ9ocV73qearxe/QhPNt2VTv+Y765O7eybGbbD6qvnzVNP+GVf3LvepKY4Bdcu2mOvPe9fj1O77vGC651bTH8v9y97piv+nmq+mug8+4cz3ienNmNX9L9aMr0/es2b/u/ALmm1oM0KreVLOn7MLj/7BmN+KPyfz06qHVxTXbQ//czddV57Uoq/66Zo/cDc95dnXCtuk/uLxOuWjXn3e3O646v9rD5yXaabdqkW2q5wU6rMXg98tjBxmw9e36Uy2Iqw3H1SGX1vprxk6y3EWH1X7X1aZLd3zfMVx2QG3Ztw6Z6u9IdcGRdeQFY6cYdvERdeBltWGi28FLDq19ttT+E10Hr9i/rt6vDp3wOvj1I+uICa6DL9y/nrP6nQ+ba3bQ4N2/Jc1f37bz/n13zT60i893TYudn2+v2ck38bGzFmOKDdW7avbDN+Ix76p+qLq22rjnzic+/2yLIxI/WLMH7obnO6vFkZkr3nFFnTTF39HjWozxvjF2kAHHtDgt0wS3H9ViR/GBLf6PmarbNOlx6D7H1UGba8NEL2B00aG177z2n+i5+i/fVNdsMgbYFRcfUQdeXhuuHDvJcpccsvizecBE18Er96tvHFCHfX3sJMOmug6euql+6YDVczZU72tbgXhStQsF4q6afaPm32jxto1jb+SDth6VtAdf8NmWlYHbMW27Ot5u9uQ/rFOeuWeee5dsrh5SfWLsIAM+VJ3Z4qToU3RadXKLoySn6Kjq3Oq2YwcZtu7Setmv1LNurqvE30THvLLu9YV676vHTrLcI06qs7+/zp3i9qW6YEMd94766pPHTjLswLfW815RL/zY2EmWO+7ldacL64xXjZ1kuR/6gfroyXXeU8dOMmzjuya6Dj6h+vGxQ+xh72tbgXhSi7/rI5nNa35Ri7+NN3Uc+vU9fDHCT7coEO+wZ57+cf+zxfo2NRe2uGr2GWMHGXB69bnqaWMHGXBqi4tE3nnsIGu4pkmPQ2cX1E//Tr3sI2MnWe62L63jr6gz98A75HaHkx9RH3hifeWUsZMMm+wYYMVBb64n/269aqLbwdu/qI5eVx9++dhJljvlQfXuZ077ZzzZdfCx1dNXz1hXvaXa2hY/q+Zjv0Vr6z9o96n5xrXvOj+yutN2j9tTbr3y8bI17wUAwI31zhYXsat6Ws2PHjNM28aT96r5Dt6yOD+wusd2j9tTjEMBgFGtq9ml1dajFm5dvXHHxV3V/PCa//YeyPRXKx8PaduRkUOe3rYTYv/VWnfcNfOHt7gITNWH99xyAAD2JrNvVL++MnF49d9XTmmzA/ODa74njvzeOp7cr/qJHdz3ySv3W/24PWB+/+qeKxPGoQDAKLae+Pn/a9tbAx5Tvafm3778IfP9av6T1cerf7sHMr2ubXtXf6vmDxnI8djql1cmvlT90U1f1PyAmr+u5gNvL53Pav7o6m0rM67r+ifkBgBg1/x29Zcrn39/9Tc1v+/yu8431vzJ1T+1eGvr7vbGaut5kn695o8ayPGo6tdWJi5YedxOmP9+ze+zxtcfWf1Zi4u6zKvX7txyAAB2zYbFh9m1K0XZH7cYuD24+ljNP159pMXAaP8W58/43mrriRT3wNs1Zl+t+dNavLX6sOp9Nf/bFntcL12Z9z0trm5bdWX1hJU92DfVuuonF7f5OdU/trjYxboWJ/S9Z9c/J8cLa/YPO7EcAACWmm2p+b+v/rD64er+1Ydr/onqgy3GoZtanP/vwdXWC8l8Zg9kubjmP9GitDuo+suaf3glxyUt3iHzgOp+Kw+4unrSyjt6dsYpi9v8iy3GoV9qMQ49tsU49Har7vvymn1gJ5cDALBLNmz7dHZJzX+wxYmsf6nFwOXeLb/4w0XVG9q253U3m/1JzS+u/muLKxU/cOW2vb+vfrJmH93JBV1bnV3dtTp+5bbM56rn1ewdO7kcAAAGzS6v+eOqp1QvaTEmu9vKbXuXVG+q9tAJ22d/sXL6mte0KPHu17bCcLV/rn6qZmfuwsL+tcV5FG+zclvm3BY7sf9wF5YDALBLNlx/cnZt9Zqav6HF3t+HVreqjmxxNd4vtjgS8PSaLbuM+FXV9618/uVdizZ7T83vXv2bFkccHt9ir+9FLQq9M2r2t7u4jG9Ud6v58dXDWuzZPrY6uLq4+mz1t9WZi73jAADsGbMt1e/V/E3VfVuMQ49tcVXky1scnfeR6r01u2LgSR7V4u2+Xxv4+o3N8v6VU9w8qMVRj7erDm1RXn6+xal/PrDrV16e3bPmx1aPqO7Y4vs9tMV49/Mtrkr9f2p23a4tBwBg12xYPnt2bXXmyu0mmG2p/vcuZtr++U5fue1Bs3Na7MkGAGBUs+uqv1u53dTHvnc35phX71+57UGz86o379llAADsmnU7vgsAAAAAsLdSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAoNnYAfZe87OrE7ZNv2FL/eSW0eIM21BdV83HDjJgQ4ts140dZMD6lY9TzVeL1/DasUMMW7+h1m1psuvgfGVHzGyKv7/VlnXVrNZNeB28bn2tn3C+1lcTXge3rFv8OZ/qOjifLX5PprwOblk/zXwvmdUvrd7Zu7lmB40Wh1uQ+VnVidum3zqvH5vg78Dkx6FTH+etW7lNeJxnHLprrlu3+BFPdQywZVYZA+yaiY9Dp74OGofuvJ+b1Suud9ChAnE02xeIvb5mzxwrzRo2V99VfWLsIAM+VJ1ZPXfsIANOq06u7j12kAFHVedW+40dZNjGS+u3XlLP+uTYSZY75pV1ry/Ue189dpLlHnFSnf39de4Uty/VBRvquHfUVY8eO8mwA99aL/71euHHxk6y3HEvrztdWGe8auwky/3QD9RHT67znjp2kmEb31VXT3EdfEL146umFYjsJtsXiL2lZk8YK80aLqweU50xdpABp1efq542dpABp1bPru48dpA1XFPtM3aIYRsvqOf/Tr3sI2MnWe62L63jr6gzXzF2kuVOfkR94In1lVPGTjJssmOAFQe9uZ7xu/WqiW4Hb/+iOnpdffjlYydZ7pQH1bufWec/aewkwya7Dj62evrqGd7CDAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMEiBCAAAAAAMUiACAAAAAIMUiAAAAADAIAUiAAAAADBIgQgAAAAADFIgAgAAAACDFIgAAAAAwCAFIgAAAAAwSIEIAAAAAAxSIAIAAAAAgxSIAAAAAMAgBSIAAAAAMGjD2AH4pm+r+fPGDnFDL9innvzUuvvXxk6y3MtvXUefWD85wdeu6g8eWJ8/sk6baL6vHVC/ub5eMdF8VS/eWN/30OpeYydZ7nlH1vHrq8eNnWS5n7l3ffqgJpvv4PX13FmTzVf1cxvr0Q+q7jh2kuWed3Qdc2CTfQ2fdff6+P5NNl/Vz091Hbz72AHYa9xtmuPQF+5XP/Sj9cD7jZ1kuV87vg48sE6d4GtX9cffU/98aP3qRPNVPX9dvXLC+X55U530wOq2YydZ7nm3qsOvbpp/w6pn3qXuYwywS35+U/3b+1VHjp1kuV84rjZN+DV86h3qzvs12Xw14XXwBv9/z8ZIQdX87OqEsVMAAN8yNtfsoLFDcEswP6s6cewUAMC3Dkcgjufv65pL6tIT6whvJQcABly2pWYfrwPPHzsJtxj/WPNr6vz71dHGoQDAgMvndc2/1KGXOQJxXBvq3D+r2/zg2EEAgKn6+ofryIdWV4ydhFuUWX3mbXXHfz92EABgqi755zr0AdVmexzHdW3d5oKxQwAAU3bEJSkP2f3mdcevjh0CAJiyQzZXm6v+H5XO3iw9po9mAAAAAElFTkSuQmCC" width="450"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=d04f70fa">
<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="Load-imbalance">Load imbalance<a class="anchor-link" href="#Load-imbalance"></a></h3><p>Do all processes process the same amount of data at a given iteration? This answer is no. To understand this let us find out the data updated by CPU1 in the figure below. At iteration k, CPU 1 has not data to process since k is larger than all row ids that CPU 1 owns. This is in contrast to CPU 2 and CPU 3 which have data to process. As a result, CPU 1 is idle (doing nothing), which is waisting computational resources that could be otherwise used.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=3988b2ae">
<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>
<img align="left" alt="No description has been provided for this image" src="data:image/png;base64,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" width="450"/>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=c1957040">
<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="Addressing-the-load-imbalance">Addressing the load imbalance<a class="anchor-link" href="#Addressing-the-load-imbalance"></a></h3><p>For this algorithm, a cyclic distribution mitigates the load imbalance.</p>
<ul>
<li>Cyclic partitions are often useful in algorithms with <em>predictable</em> load imbalance</li>
<li>A cyclic partition is a form of <em>static</em> load balancing</li>
<li>Cyclic partition are not suitable for all communication patters. E.g., algorithms that require communication between nearest-neighbors like Jacobi.</li>
</ul>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=c6450ee1">
<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>
<img align="left" alt="No description has been provided for this image" src="data:image/png;base64,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" width="400"/>
</div>
</div>
</div>
</div>
</div>
</main>
</body>
</html>