Spaces:
Running
Running
| <html lang="en"> | |
| <head><meta charset="utf-8"/> | |
| <meta content="width=device-width, initial-scale=1.0" name="viewport"/> | |
| <title>A6_Report</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script> | |
| <style type="text/css"> | |
| pre { line-height: 125%; } | |
| td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | |
| span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } | |
| td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | |
| span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } | |
| .highlight .hll { background-color: var(--jp-cell-editor-active-background) } | |
| .highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) } | |
| .highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */ | |
| .highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */ | |
| .highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */ | |
| .highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */ | |
| .highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */ | |
| .highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */ | |
| .highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */ | |
| .highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */ | |
| .highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */ | |
| .highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */ | |
| .highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */ | |
| .highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */ | |
| .highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */ | |
| .highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */ | |
| .highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */ | |
| .highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */ | |
| .highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */ | |
| .highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */ | |
| .highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */ | |
| .highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */ | |
| .highlight .pm { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation.Marker */ | |
| .highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */ | |
| .highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */ | |
| .highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */ | |
| .highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */ | |
| .highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */ | |
| .highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */ | |
| .highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */ | |
| .highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */ | |
| .highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */ | |
| .highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */ | |
| .highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */ | |
| .highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */ | |
| .highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */ | |
| .highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */ | |
| .highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */ | |
| .highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */ | |
| .highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */ | |
| .highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */ | |
| .highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */ | |
| .highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */ | |
| </style> | |
| <style type="text/css"> | |
| /*----------------------------------------------------------------------------- | |
| | Copyright (c) Jupyter Development Team. | |
| | Distributed under the terms of the Modified BSD License. | |
| |----------------------------------------------------------------------------*/ | |
| /* | |
| * Mozilla scrollbar styling | |
| */ | |
| /* use standard opaque scrollbars for most nodes */ | |
| [data-jp-theme-scrollbars='true'] { | |
| scrollbar-color: rgb(var(--jp-scrollbar-thumb-color)) | |
| var(--jp-scrollbar-background-color); | |
| } | |
| /* for code nodes, use a transparent style of scrollbar. These selectors | |
| * will match lower in the tree, and so will override the above */ | |
| [data-jp-theme-scrollbars='true'] .CodeMirror-hscrollbar, | |
| [data-jp-theme-scrollbars='true'] .CodeMirror-vscrollbar { | |
| scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent; | |
| } | |
| /* tiny scrollbar */ | |
| .jp-scrollbar-tiny { | |
| scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent; | |
| scrollbar-width: thin; | |
| } | |
| /* tiny scrollbar */ | |
| .jp-scrollbar-tiny::-webkit-scrollbar, | |
| .jp-scrollbar-tiny::-webkit-scrollbar-corner { | |
| background-color: transparent; | |
| height: 4px; | |
| width: 4px; | |
| } | |
| .jp-scrollbar-tiny::-webkit-scrollbar-thumb { | |
| background: rgba(var(--jp-scrollbar-thumb-color), 0.5); | |
| } | |
| .jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal { | |
| border-left: 0 solid transparent; | |
| border-right: 0 solid transparent; | |
| } | |
| .jp-scrollbar-tiny::-webkit-scrollbar-track:vertical { | |
| border-top: 0 solid transparent; | |
| border-bottom: 0 solid transparent; | |
| } | |
| /* | |
| * Lumino | |
| */ | |
| .lm-ScrollBar[data-orientation='horizontal'] { | |
| min-height: 16px; | |
| max-height: 16px; | |
| min-width: 45px; | |
| border-top: 1px solid #a0a0a0; | |
| } | |
| .lm-ScrollBar[data-orientation='vertical'] { | |
| min-width: 16px; | |
| max-width: 16px; | |
| min-height: 45px; | |
| border-left: 1px solid #a0a0a0; | |
| } | |
| .lm-ScrollBar-button { | |
| background-color: #f0f0f0; | |
| background-position: center center; | |
| min-height: 15px; | |
| max-height: 15px; | |
| min-width: 15px; | |
| max-width: 15px; | |
| } | |
| .lm-ScrollBar-button:hover { | |
| background-color: #dadada; | |
| } | |
| .lm-ScrollBar-button.lm-mod-active { | |
| background-color: #cdcdcd; | |
| } | |
| .lm-ScrollBar-track { | |
| background: #f0f0f0; | |
| } | |
| .lm-ScrollBar-thumb { | |
| background: #cdcdcd; | |
| } | |
| .lm-ScrollBar-thumb:hover { | |
| background: #bababa; | |
| } | |
| .lm-ScrollBar-thumb.lm-mod-active { | |
| background: #a0a0a0; | |
| } | |
| .lm-ScrollBar[data-orientation='horizontal'] .lm-ScrollBar-thumb { | |
| height: 100%; | |
| min-width: 15px; | |
| border-left: 1px solid #a0a0a0; | |
| border-right: 1px solid #a0a0a0; | |
| } | |
| .lm-ScrollBar[data-orientation='vertical'] .lm-ScrollBar-thumb { | |
| width: 100%; | |
| min-height: 15px; | |
| border-top: 1px solid #a0a0a0; | |
| border-bottom: 1px solid #a0a0a0; | |
| } | |
| .lm-ScrollBar[data-orientation='horizontal'] | |
| .lm-ScrollBar-button[data-action='decrement'] { | |
| background-image: var(--jp-icon-caret-left); | |
| background-size: 17px; | |
| } | |
| .lm-ScrollBar[data-orientation='horizontal'] | |
| .lm-ScrollBar-button[data-action='increment'] { | |
| background-image: var(--jp-icon-caret-right); | |
| background-size: 17px; | |
| } | |
| .lm-ScrollBar[data-orientation='vertical'] | |
| .lm-ScrollBar-button[data-action='decrement'] { | |
| background-image: var(--jp-icon-caret-up); | |
| background-size: 17px; | |
| } | |
| .lm-ScrollBar[data-orientation='vertical'] | |
| .lm-ScrollBar-button[data-action='increment'] { | |
| background-image: var(--jp-icon-caret-down); | |
| background-size: 17px; | |
| } | |
| /* | |
| * Copyright (c) Jupyter Development Team. | |
| * Distributed under the terms of the Modified BSD License. | |
| */ | |
| /*----------------------------------------------------------------------------- | |
| | Copyright (c) Jupyter Development Team. | |
| | Copyright (c) 2014-2017, PhosphorJS Contributors | |
| | | |
| | Distributed under the terms of the BSD 3-Clause License. | |
| | | |
| | The full license is in the file LICENSE, distributed with this software. | |
| |----------------------------------------------------------------------------*/ | |
| .lm-Widget { | |
| box-sizing: border-box; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .lm-Widget.lm-mod-hidden { | |
| display: none ; | |
| } | |
| /* | |
| * 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 ; | |
| } | |
| .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 ; | |
| } | |
| /* | |
| * 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 ; | |
| } | |
| .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 ; | |
| } | |
| .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 ; | |
| } | |
| .lm-TabBar-addButton.lm-mod-hidden { | |
| display: none ; | |
| } | |
| .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 ; | |
| } | |
| /** | |
| * 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 ; | |
| } | |
| .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 ; | |
| background: transparent ; | |
| } | |
| .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) ; | |
| color: var(--jp-content-font-color0) ; | |
| display: flex; | |
| } | |
| .jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover { | |
| background-color: var(--jp-border-color2) ; | |
| } | |
| .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 ; | |
| } | |
| .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 ; | |
| } | |
| .jp-Toolbar-responsive-popup { | |
| position: absolute; | |
| height: fit-content; | |
| display: flex; | |
| flex-direction: row; | |
| flex-wrap: wrap; | |
| justify-content: flex-end; | |
| border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color); | |
| box-shadow: var(--jp-toolbar-box-shadow); | |
| background: var(--jp-toolbar-background); | |
| min-height: var(--jp-toolbar-micro-height); | |
| padding: var(--jp-notebook-toolbar-padding); | |
| z-index: 1; | |
| right: 0; | |
| top: 0; | |
| } | |
| .jp-Toolbar > .jp-Toolbar-responsive-opener { | |
| margin-left: auto; | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Copyright (c) Jupyter Development Team. | |
| | Distributed under the terms of the Modified BSD License. | |
| |----------------------------------------------------------------------------*/ | |
| /*----------------------------------------------------------------------------- | |
| | Variables | |
| |----------------------------------------------------------------------------*/ | |
| /*----------------------------------------------------------------------------- | |
| /*----------------------------------------------------------------------------- | |
| | Styles | |
| |----------------------------------------------------------------------------*/ | |
| .jp-Notebook-ExecutionIndicator { | |
| position: relative; | |
| display: inline-block; | |
| height: 100%; | |
| z-index: 9997; | |
| } | |
| .jp-Notebook-ExecutionIndicator-tooltip { | |
| visibility: hidden; | |
| height: auto; | |
| width: max-content; | |
| width: -moz-max-content; | |
| background-color: var(--jp-layout-color2); | |
| color: var(--jp-ui-font-color1); | |
| text-align: justify; | |
| border-radius: 6px; | |
| padding: 0 5px; | |
| position: fixed; | |
| display: table; | |
| } | |
| .jp-Notebook-ExecutionIndicator-tooltip.up { | |
| transform: translateX(-50%) translateY(-100%) translateY(-32px); | |
| } | |
| .jp-Notebook-ExecutionIndicator-tooltip.down { | |
| transform: translateX(calc(-100% + 16px)) translateY(5px); | |
| } | |
| .jp-Notebook-ExecutionIndicator-tooltip.hidden { | |
| display: none; | |
| } | |
| .jp-Notebook-ExecutionIndicator:hover .jp-Notebook-ExecutionIndicator-tooltip { | |
| visibility: visible; | |
| } | |
| .jp-Notebook-ExecutionIndicator span { | |
| font-size: var(--jp-ui-font-size1); | |
| font-family: var(--jp-ui-font-family); | |
| color: var(--jp-ui-font-color1); | |
| line-height: 24px; | |
| display: block; | |
| } | |
| .jp-Notebook-ExecutionIndicator-progress-bar { | |
| display: flex; | |
| justify-content: center; | |
| height: 100%; | |
| } | |
| /* | |
| * Copyright (c) Jupyter Development Team. | |
| * Distributed under the terms of the Modified BSD License. | |
| */ | |
| /* | |
| * Execution indicator | |
| */ | |
| .jp-tocItem-content::after { | |
| content: ''; | |
| /* Must be identical to form a circle */ | |
| width: 12px; | |
| height: 12px; | |
| background: none; | |
| border: none; | |
| position: absolute; | |
| right: 0; | |
| } | |
| .jp-tocItem-content[data-running='0']::after { | |
| border-radius: 50%; | |
| border: var(--jp-border-width) solid var(--jp-inverse-layout-color3); | |
| background: none; | |
| } | |
| .jp-tocItem-content[data-running='1']::after { | |
| border-radius: 50%; | |
| border: var(--jp-border-width) solid var(--jp-inverse-layout-color3); | |
| background-color: var(--jp-inverse-layout-color3); | |
| } | |
| .jp-tocItem-content[data-running='0'], | |
| .jp-tocItem-content[data-running='1'] { | |
| margin-right: 12px; | |
| } | |
| /* | |
| * Copyright (c) Jupyter Development Team. | |
| * Distributed under the terms of the Modified BSD License. | |
| */ | |
| .jp-Notebook-footer { | |
| height: 27px; | |
| margin-left: calc( | |
| var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) + | |
| var(--jp-cell-padding) | |
| ); | |
| width: calc( | |
| 100% - | |
| ( | |
| var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) + | |
| var(--jp-cell-padding) + var(--jp-cell-padding) | |
| ) | |
| ); | |
| border: var(--jp-border-width) solid var(--jp-cell-editor-border-color); | |
| color: var(--jp-ui-font-color3); | |
| margin-top: 6px; | |
| background: none; | |
| cursor: pointer; | |
| } | |
| .jp-Notebook-footer:focus { | |
| border-color: var(--jp-cell-editor-active-border-color); | |
| } | |
| /* For devices that support hovering, hide footer until hover */ | |
| @media (hover: hover) { | |
| .jp-Notebook-footer { | |
| opacity: 0; | |
| } | |
| .jp-Notebook-footer:focus, | |
| .jp-Notebook-footer:hover { | |
| opacity: 1; | |
| } | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Copyright (c) Jupyter Development Team. | |
| | Distributed under the terms of the Modified BSD License. | |
| |----------------------------------------------------------------------------*/ | |
| /*----------------------------------------------------------------------------- | |
| | Imports | |
| |----------------------------------------------------------------------------*/ | |
| /*----------------------------------------------------------------------------- | |
| | CSS variables | |
| |----------------------------------------------------------------------------*/ | |
| :root { | |
| --jp-side-by-side-output-size: 1fr; | |
| --jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size); | |
| --jp-private-notebook-dragImage-width: 304px; | |
| --jp-private-notebook-dragImage-height: 36px; | |
| --jp-private-notebook-selected-color: var(--md-blue-400); | |
| --jp-private-notebook-active-color: var(--md-green-400); | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Notebook | |
| |----------------------------------------------------------------------------*/ | |
| /* stylelint-disable selector-max-class */ | |
| .jp-NotebookPanel { | |
| display: block; | |
| height: 100%; | |
| } | |
| .jp-NotebookPanel.jp-Document { | |
| min-width: 240px; | |
| min-height: 120px; | |
| } | |
| .jp-Notebook { | |
| padding: var(--jp-notebook-padding); | |
| outline: none; | |
| overflow: auto; | |
| background: var(--jp-layout-color0); | |
| } | |
| .jp-Notebook.jp-mod-scrollPastEnd::after { | |
| display: block; | |
| content: ''; | |
| min-height: var(--jp-notebook-scroll-padding); | |
| } | |
| .jp-MainAreaWidget-ContainStrict .jp-Notebook * { | |
| contain: strict; | |
| } | |
| .jp-Notebook .jp-Cell { | |
| overflow: visible; | |
| } | |
| .jp-Notebook .jp-Cell .jp-InputPrompt { | |
| cursor: move; | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Notebook state related styling | |
| | | |
| | The notebook and cells each have states, here are the possibilities: | |
| | | |
| | - Notebook | |
| | - Command | |
| | - Edit | |
| | - Cell | |
| | - None | |
| | - Active (only one can be active) | |
| | - Selected (the cells actions are applied to) | |
| | - Multiselected (when multiple selected, the cursor) | |
| | - No outputs | |
| |----------------------------------------------------------------------------*/ | |
| /* Command or edit modes */ | |
| .jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt { | |
| opacity: var(--jp-cell-prompt-not-active-opacity); | |
| color: var(--jp-cell-prompt-not-active-font-color); | |
| } | |
| .jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt { | |
| opacity: var(--jp-cell-prompt-not-active-opacity); | |
| color: var(--jp-cell-prompt-not-active-font-color); | |
| } | |
| /* cell is active */ | |
| .jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser { | |
| background: var(--jp-brand-color1); | |
| } | |
| /* cell is dirty */ | |
| .jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt { | |
| color: var(--jp-warn-color1); | |
| } | |
| .jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt::before { | |
| color: var(--jp-warn-color1); | |
| content: '•'; | |
| } | |
| .jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser { | |
| background: var(--jp-warn-color1); | |
| } | |
| /* collapser is hovered */ | |
| .jp-Notebook .jp-Cell .jp-Collapser:hover { | |
| box-shadow: var(--jp-elevation-z2); | |
| background: var(--jp-brand-color1); | |
| opacity: var(--jp-cell-collapser-not-active-hover-opacity); | |
| } | |
| /* cell is active and collapser is hovered */ | |
| .jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover { | |
| background: var(--jp-brand-color0); | |
| opacity: 1; | |
| } | |
| /* Command mode */ | |
| .jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected { | |
| background: var(--jp-notebook-multiselected-color); | |
| } | |
| .jp-Notebook.jp-mod-commandMode | |
| .jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) { | |
| background: transparent; | |
| } | |
| /* Edit mode */ | |
| .jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor { | |
| border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color); | |
| box-shadow: var(--jp-input-box-shadow); | |
| background-color: var(--jp-cell-editor-active-background); | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Notebook drag and drop | |
| |----------------------------------------------------------------------------*/ | |
| .jp-Notebook-cell.jp-mod-dropSource { | |
| opacity: 0.5; | |
| } | |
| .jp-Notebook-cell.jp-mod-dropTarget, | |
| .jp-Notebook.jp-mod-commandMode | |
| .jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget { | |
| border-top-color: var(--jp-private-notebook-selected-color); | |
| border-top-style: solid; | |
| border-top-width: 2px; | |
| } | |
| .jp-dragImage { | |
| display: block; | |
| flex-direction: row; | |
| width: var(--jp-private-notebook-dragImage-width); | |
| height: var(--jp-private-notebook-dragImage-height); | |
| border: var(--jp-border-width) solid var(--jp-cell-editor-border-color); | |
| background: var(--jp-cell-editor-background); | |
| overflow: visible; | |
| } | |
| .jp-dragImage-singlePrompt { | |
| box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12); | |
| } | |
| .jp-dragImage .jp-dragImage-content { | |
| flex: 1 1 auto; | |
| z-index: 2; | |
| font-size: var(--jp-code-font-size); | |
| font-family: var(--jp-code-font-family); | |
| line-height: var(--jp-code-line-height); | |
| padding: var(--jp-code-padding); | |
| border: var(--jp-border-width) solid var(--jp-cell-editor-border-color); | |
| background: var(--jp-cell-editor-background-color); | |
| color: var(--jp-content-font-color3); | |
| text-align: left; | |
| margin: 4px 4px 4px 0; | |
| } | |
| .jp-dragImage .jp-dragImage-prompt { | |
| flex: 0 0 auto; | |
| min-width: 36px; | |
| color: var(--jp-cell-inprompt-font-color); | |
| padding: var(--jp-code-padding); | |
| padding-left: 12px; | |
| font-family: var(--jp-cell-prompt-font-family); | |
| letter-spacing: var(--jp-cell-prompt-letter-spacing); | |
| line-height: 1.9; | |
| font-size: var(--jp-code-font-size); | |
| border: var(--jp-border-width) solid transparent; | |
| } | |
| .jp-dragImage-multipleBack { | |
| z-index: -1; | |
| position: absolute; | |
| height: 32px; | |
| width: 300px; | |
| top: 8px; | |
| left: 8px; | |
| background: var(--jp-layout-color2); | |
| border: var(--jp-border-width) solid var(--jp-input-border-color); | |
| box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12); | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Cell toolbar | |
| |----------------------------------------------------------------------------*/ | |
| .jp-NotebookTools { | |
| display: block; | |
| min-width: var(--jp-sidebar-min-width); | |
| color: var(--jp-ui-font-color1); | |
| background: var(--jp-layout-color1); | |
| /* This is needed so that all font sizing of children done in ems is | |
| * relative to this base size */ | |
| font-size: var(--jp-ui-font-size1); | |
| overflow: auto; | |
| } | |
| .jp-ActiveCellTool { | |
| padding: 12px 0; | |
| display: flex; | |
| } | |
| .jp-ActiveCellTool-Content { | |
| flex: 1 1 auto; | |
| } | |
| .jp-ActiveCellTool .jp-ActiveCellTool-CellContent { | |
| background: var(--jp-cell-editor-background); | |
| border: var(--jp-border-width) solid var(--jp-cell-editor-border-color); | |
| border-radius: 0; | |
| min-height: 29px; | |
| } | |
| .jp-ActiveCellTool .jp-InputPrompt { | |
| min-width: calc(var(--jp-cell-prompt-width) * 0.75); | |
| } | |
| .jp-ActiveCellTool-CellContent > pre { | |
| padding: 5px 4px; | |
| margin: 0; | |
| white-space: normal; | |
| } | |
| .jp-MetadataEditorTool { | |
| flex-direction: column; | |
| padding: 12px 0; | |
| } | |
| .jp-RankedPanel > :not(:first-child) { | |
| margin-top: 12px; | |
| } | |
| .jp-KeySelector select.jp-mod-styled { | |
| font-size: var(--jp-ui-font-size1); | |
| color: var(--jp-ui-font-color0); | |
| border: var(--jp-border-width) solid var(--jp-border-color1); | |
| } | |
| .jp-KeySelector label, | |
| .jp-MetadataEditorTool label, | |
| .jp-NumberSetter label { | |
| line-height: 1.4; | |
| } | |
| .jp-NotebookTools .jp-select-wrapper { | |
| margin-top: 4px; | |
| margin-bottom: 0; | |
| } | |
| .jp-NumberSetter input { | |
| width: 100%; | |
| margin-top: 4px; | |
| } | |
| .jp-NotebookTools .jp-Collapse { | |
| margin-top: 16px; | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Presentation Mode (.jp-mod-presentationMode) | |
| |----------------------------------------------------------------------------*/ | |
| .jp-mod-presentationMode .jp-Notebook { | |
| --jp-content-font-size1: var(--jp-content-presentation-font-size1); | |
| --jp-code-font-size: var(--jp-code-presentation-font-size); | |
| } | |
| .jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt, | |
| .jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt { | |
| flex: 0 0 110px; | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Side-by-side Mode (.jp-mod-sideBySide) | |
| |----------------------------------------------------------------------------*/ | |
| .jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell { | |
| margin-top: 3em; | |
| margin-bottom: 3em; | |
| margin-left: 5%; | |
| margin-right: 5%; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) min-content minmax( | |
| 0, | |
| var(--jp-side-by-side-output-size) | |
| ); | |
| grid-template-rows: auto minmax(0, 1fr) auto; | |
| grid-template-areas: | |
| 'header header header' | |
| 'input handle output' | |
| 'footer footer footer'; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell { | |
| grid-template-columns: minmax(0, 1fr) min-content minmax( | |
| 0, | |
| var(--jp-side-by-side-resized-cell) | |
| ); | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellHeader { | |
| grid-area: header; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-inputWrapper { | |
| grid-area: input; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-outputWrapper { | |
| /* overwrite the default margin (no vertical separation needed in side by side move */ | |
| margin-top: 0; | |
| grid-area: output; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellFooter { | |
| grid-area: footer; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle { | |
| grid-area: handle; | |
| user-select: none; | |
| display: block; | |
| height: 100%; | |
| cursor: ew-resize; | |
| padding: 0 var(--jp-cell-padding); | |
| } | |
| .jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle::after { | |
| content: ''; | |
| display: block; | |
| background: var(--jp-border-color2); | |
| height: 100%; | |
| width: 5px; | |
| } | |
| .jp-mod-sideBySide.jp-Notebook | |
| .jp-CodeCell.jp-mod-resizedCell | |
| .jp-CellResizeHandle::after { | |
| background: var(--jp-border-color0); | |
| } | |
| .jp-CellResizeHandle { | |
| display: none; | |
| } | |
| /*----------------------------------------------------------------------------- | |
| | Placeholder | |
| |----------------------------------------------------------------------------*/ | |
| .jp-Cell-Placeholder { | |
| padding-left: 55px; | |
| } | |
| .jp-Cell-Placeholder-wrapper { | |
| background: #fff; | |
| border: 1px solid; | |
| border-color: #e5e6e9 #dfe0e4 #d0d1d5; | |
| border-radius: 4px; | |
| -webkit-border-radius: 4px; | |
| margin: 10px 15px; | |
| } | |
| .jp-Cell-Placeholder-wrapper-inner { | |
| padding: 15px; | |
| position: relative; | |
| } | |
| .jp-Cell-Placeholder-wrapper-body { | |
| background-repeat: repeat; | |
| background-size: 50% auto; | |
| } | |
| .jp-Cell-Placeholder-wrapper-body div { | |
| background: #f6f7f8; | |
| background-image: -webkit-linear-gradient( | |
| left, | |
| #f6f7f8 0%, | |
| #edeef1 20%, | |
| #f6f7f8 40%, | |
| #f6f7f8 100% | |
| ); | |
| background-repeat: no-repeat; | |
| background-size: 800px 104px; | |
| height: 104px; | |
| position: absolute; | |
| right: 15px; | |
| left: 15px; | |
| top: 15px; | |
| } | |
| div.jp-Cell-Placeholder-h1 { | |
| top: 20px; | |
| height: 20px; | |
| left: 15px; | |
| width: 150px; | |
| } | |
| div.jp-Cell-Placeholder-h2 { | |
| left: 15px; | |
| top: 50px; | |
| height: 10px; | |
| width: 100px; | |
| } | |
| div.jp-Cell-Placeholder-content-1, | |
| div.jp-Cell-Placeholder-content-2, | |
| div.jp-Cell-Placeholder-content-3 { | |
| left: 15px; | |
| right: 15px; | |
| height: 10px; | |
| } | |
| div.jp-Cell-Placeholder-content-1 { | |
| top: 100px; | |
| } | |
| div.jp-Cell-Placeholder-content-2 { | |
| top: 120px; | |
| } | |
| div.jp-Cell-Placeholder-content-3 { | |
| top: 140px; | |
| } | |
| </style> | |
| <style type="text/css"> | |
| /*----------------------------------------------------------------------------- | |
| | Copyright (c) Jupyter Development Team. | |
| | Distributed under the terms of the Modified BSD License. | |
| |----------------------------------------------------------------------------*/ | |
| /* | |
| The following CSS variables define the main, public API for styling JupyterLab. | |
| These variables should be used by all plugins wherever possible. In other | |
| words, plugins should not define custom colors, sizes, etc unless absolutely | |
| necessary. This enables users to change the visual theme of JupyterLab | |
| by changing these variables. | |
| Many variables appear in an ordered sequence (0,1,2,3). These sequences | |
| are designed to work well together, so for example, `--jp-border-color1` should | |
| be used with `--jp-layout-color1`. The numbers have the following meanings: | |
| * 0: super-primary, reserved for special emphasis | |
| * 1: primary, most important under normal situations | |
| * 2: secondary, next most important under normal situations | |
| * 3: tertiary, next most important under normal situations | |
| Throughout JupyterLab, we are mostly following principles from Google's | |
| Material Design when selecting colors. We are not, however, following | |
| all of MD as it is not optimized for dense, information rich UIs. | |
| */ | |
| :root { | |
| /* Elevation | |
| * | |
| * We style box-shadows using Material Design's idea of elevation. These particular numbers are taken from here: | |
| * | |
| * https://github.com/material-components/material-components-web | |
| * https://material-components-web.appspot.com/elevation.html | |
| */ | |
| --jp-shadow-base-lightness: 0; | |
| --jp-shadow-umbra-color: rgba( | |
| var(--jp-shadow-base-lightness), | |
| var(--jp-shadow-base-lightness), | |
| var(--jp-shadow-base-lightness), | |
| 0.2 | |
| ); | |
| --jp-shadow-penumbra-color: rgba( | |
| var(--jp-shadow-base-lightness), | |
| var(--jp-shadow-base-lightness), | |
| var(--jp-shadow-base-lightness), | |
| 0.14 | |
| ); | |
| --jp-shadow-ambient-color: rgba( | |
| var(--jp-shadow-base-lightness), | |
| var(--jp-shadow-base-lightness), | |
| var(--jp-shadow-base-lightness), | |
| 0.12 | |
| ); | |
| --jp-elevation-z0: none; | |
| --jp-elevation-z1: 0 2px 1px -1px var(--jp-shadow-umbra-color), | |
| 0 1px 1px 0 var(--jp-shadow-penumbra-color), | |
| 0 1px 3px 0 var(--jp-shadow-ambient-color); | |
| --jp-elevation-z2: 0 3px 1px -2px var(--jp-shadow-umbra-color), | |
| 0 2px 2px 0 var(--jp-shadow-penumbra-color), | |
| 0 1px 5px 0 var(--jp-shadow-ambient-color); | |
| --jp-elevation-z4: 0 2px 4px -1px var(--jp-shadow-umbra-color), | |
| 0 4px 5px 0 var(--jp-shadow-penumbra-color), | |
| 0 1px 10px 0 var(--jp-shadow-ambient-color); | |
| --jp-elevation-z6: 0 3px 5px -1px var(--jp-shadow-umbra-color), | |
| 0 6px 10px 0 var(--jp-shadow-penumbra-color), | |
| 0 1px 18px 0 var(--jp-shadow-ambient-color); | |
| --jp-elevation-z8: 0 5px 5px -3px var(--jp-shadow-umbra-color), | |
| 0 8px 10px 1px var(--jp-shadow-penumbra-color), | |
| 0 3px 14px 2px var(--jp-shadow-ambient-color); | |
| --jp-elevation-z12: 0 7px 8px -4px var(--jp-shadow-umbra-color), | |
| 0 12px 17px 2px var(--jp-shadow-penumbra-color), | |
| 0 5px 22px 4px var(--jp-shadow-ambient-color); | |
| --jp-elevation-z16: 0 8px 10px -5px var(--jp-shadow-umbra-color), | |
| 0 16px 24px 2px var(--jp-shadow-penumbra-color), | |
| 0 6px 30px 5px var(--jp-shadow-ambient-color); | |
| --jp-elevation-z20: 0 10px 13px -6px var(--jp-shadow-umbra-color), | |
| 0 20px 31px 3px var(--jp-shadow-penumbra-color), | |
| 0 8px 38px 7px var(--jp-shadow-ambient-color); | |
| --jp-elevation-z24: 0 11px 15px -7px var(--jp-shadow-umbra-color), | |
| 0 24px 38px 3px var(--jp-shadow-penumbra-color), | |
| 0 9px 46px 8px var(--jp-shadow-ambient-color); | |
| /* Borders | |
| * | |
| * The following variables, specify the visual styling of borders in JupyterLab. | |
| */ | |
| --jp-border-width: 1px; | |
| --jp-border-color0: var(--md-grey-400); | |
| --jp-border-color1: var(--md-grey-400); | |
| --jp-border-color2: var(--md-grey-300); | |
| --jp-border-color3: var(--md-grey-200); | |
| --jp-inverse-border-color: var(--md-grey-600); | |
| --jp-border-radius: 2px; | |
| /* UI Fonts | |
| * | |
| * The UI font CSS variables are used for the typography all of the JupyterLab | |
| * user interface elements that are not directly user generated content. | |
| * | |
| * The font sizing here is done assuming that the body font size of --jp-ui-font-size1 | |
| * is applied to a parent element. When children elements, such as headings, are sized | |
| * in em all things will be computed relative to that body size. | |
| */ | |
| --jp-ui-font-scale-factor: 1.2; | |
| --jp-ui-font-size0: 0.83333em; | |
| --jp-ui-font-size1: 13px; /* Base font size */ | |
| --jp-ui-font-size2: 1.2em; | |
| --jp-ui-font-size3: 1.44em; | |
| --jp-ui-font-family: system-ui, -apple-system, blinkmacsystemfont, 'Segoe UI', | |
| helvetica, arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', | |
| 'Segoe UI Symbol'; | |
| /* | |
| * Use these font colors against the corresponding main layout colors. | |
| * In a light theme, these go from dark to light. | |
| */ | |
| /* Defaults use Material Design specification */ | |
| --jp-ui-font-color0: rgba(0, 0, 0, 1); | |
| --jp-ui-font-color1: rgba(0, 0, 0, 0.87); | |
| --jp-ui-font-color2: rgba(0, 0, 0, 0.54); | |
| --jp-ui-font-color3: rgba(0, 0, 0, 0.38); | |
| /* | |
| * Use these against the brand/accent/warn/error colors. | |
| * These will typically go from light to darker, in both a dark and light theme. | |
| */ | |
| --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1); | |
| --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1); | |
| --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7); | |
| --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5); | |
| /* Content Fonts | |
| * | |
| * Content font variables are used for typography of user generated content. | |
| * | |
| * The font sizing here is done assuming that the body font size of --jp-content-font-size1 | |
| * is applied to a parent element. When children elements, such as headings, are sized | |
| * in em all things will be computed relative to that body size. | |
| */ | |
| --jp-content-line-height: 1.6; | |
| --jp-content-font-scale-factor: 1.2; | |
| --jp-content-font-size0: 0.83333em; | |
| --jp-content-font-size1: 14px; /* Base font size */ | |
| --jp-content-font-size2: 1.2em; | |
| --jp-content-font-size3: 1.44em; | |
| --jp-content-font-size4: 1.728em; | |
| --jp-content-font-size5: 2.0736em; | |
| /* This gives a magnification of about 125% in presentation mode over normal. */ | |
| --jp-content-presentation-font-size1: 17px; | |
| --jp-content-heading-line-height: 1; | |
| --jp-content-heading-margin-top: 1.2em; | |
| --jp-content-heading-margin-bottom: 0.8em; | |
| --jp-content-heading-font-weight: 500; | |
| /* Defaults use Material Design specification */ | |
| --jp-content-font-color0: rgba(0, 0, 0, 1); | |
| --jp-content-font-color1: rgba(0, 0, 0, 0.87); | |
| --jp-content-font-color2: rgba(0, 0, 0, 0.54); | |
| --jp-content-font-color3: rgba(0, 0, 0, 0.38); | |
| --jp-content-link-color: var(--md-blue-900); | |
| --jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont, | |
| 'Segoe UI', helvetica, arial, sans-serif, 'Apple Color Emoji', | |
| 'Segoe UI Emoji', 'Segoe UI Symbol'; | |
| /* | |
| * Code Fonts | |
| * | |
| * Code font variables are used for typography of code and other monospaces content. | |
| */ | |
| --jp-code-font-size: 13px; | |
| --jp-code-line-height: 1.3077; /* 17px for 13px base */ | |
| --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */ | |
| --jp-code-font-family-default: menlo, consolas, 'DejaVu Sans Mono', monospace; | |
| --jp-code-font-family: var(--jp-code-font-family-default); | |
| /* This gives a magnification of about 125% in presentation mode over normal. */ | |
| --jp-code-presentation-font-size: 16px; | |
| /* may need to tweak cursor width if you change font size */ | |
| --jp-code-cursor-width0: 1.4px; | |
| --jp-code-cursor-width1: 2px; | |
| --jp-code-cursor-width2: 4px; | |
| /* Layout | |
| * | |
| * The following are the main layout colors use in JupyterLab. In a light | |
| * theme these would go from light to dark. | |
| */ | |
| --jp-layout-color0: white; | |
| --jp-layout-color1: white; | |
| --jp-layout-color2: var(--md-grey-200); | |
| --jp-layout-color3: var(--md-grey-400); | |
| --jp-layout-color4: var(--md-grey-600); | |
| /* Inverse Layout | |
| * | |
| * The following are the inverse layout colors use in JupyterLab. In a light | |
| * theme these would go from dark to light. | |
| */ | |
| --jp-inverse-layout-color0: #111; | |
| --jp-inverse-layout-color1: var(--md-grey-900); | |
| --jp-inverse-layout-color2: var(--md-grey-800); | |
| --jp-inverse-layout-color3: var(--md-grey-700); | |
| --jp-inverse-layout-color4: var(--md-grey-600); | |
| /* Brand/accent */ | |
| --jp-brand-color0: var(--md-blue-900); | |
| --jp-brand-color1: var(--md-blue-700); | |
| --jp-brand-color2: var(--md-blue-300); | |
| --jp-brand-color3: var(--md-blue-100); | |
| --jp-brand-color4: var(--md-blue-50); | |
| --jp-accent-color0: var(--md-green-900); | |
| --jp-accent-color1: var(--md-green-700); | |
| --jp-accent-color2: var(--md-green-300); | |
| --jp-accent-color3: var(--md-green-100); | |
| /* State colors (warn, error, success, info) */ | |
| --jp-warn-color0: var(--md-orange-900); | |
| --jp-warn-color1: var(--md-orange-700); | |
| --jp-warn-color2: var(--md-orange-300); | |
| --jp-warn-color3: var(--md-orange-100); | |
| --jp-error-color0: var(--md-red-900); | |
| --jp-error-color1: var(--md-red-700); | |
| --jp-error-color2: var(--md-red-300); | |
| --jp-error-color3: var(--md-red-100); | |
| --jp-success-color0: var(--md-green-900); | |
| --jp-success-color1: var(--md-green-700); | |
| --jp-success-color2: var(--md-green-300); | |
| --jp-success-color3: var(--md-green-100); | |
| --jp-info-color0: var(--md-cyan-900); | |
| --jp-info-color1: var(--md-cyan-700); | |
| --jp-info-color2: var(--md-cyan-300); | |
| --jp-info-color3: var(--md-cyan-100); | |
| /* Cell specific styles */ | |
| --jp-cell-padding: 5px; | |
| --jp-cell-collapser-width: 8px; | |
| --jp-cell-collapser-min-height: 20px; | |
| --jp-cell-collapser-not-active-hover-opacity: 0.6; | |
| --jp-cell-editor-background: var(--md-grey-100); | |
| --jp-cell-editor-border-color: var(--md-grey-300); | |
| --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300); | |
| --jp-cell-editor-active-background: var(--jp-layout-color0); | |
| --jp-cell-editor-active-border-color: var(--jp-brand-color1); | |
| --jp-cell-prompt-width: 64px; | |
| --jp-cell-prompt-font-family: var(--jp-code-font-family-default); | |
| --jp-cell-prompt-letter-spacing: 0; | |
| --jp-cell-prompt-opacity: 1; | |
| --jp-cell-prompt-not-active-opacity: 0.5; | |
| --jp-cell-prompt-not-active-font-color: var(--md-grey-700); | |
| /* A custom blend of MD grey and blue 600 | |
| * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */ | |
| --jp-cell-inprompt-font-color: #307fc1; | |
| /* A custom blend of MD grey and orange 600 | |
| * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */ | |
| --jp-cell-outprompt-font-color: #bf5b3d; | |
| /* Notebook specific styles */ | |
| --jp-notebook-padding: 10px; | |
| --jp-notebook-select-background: var(--jp-layout-color1); | |
| --jp-notebook-multiselected-color: var(--md-blue-50); | |
| /* The scroll padding is calculated to fill enough space at the bottom of the | |
| notebook to show one single-line cell (with appropriate padding) at the top | |
| when the notebook is scrolled all the way to the bottom. We also subtract one | |
| pixel so that no scrollbar appears if we have just one single-line cell in the | |
| notebook. This padding is to enable a 'scroll past end' feature in a notebook. | |
| */ | |
| --jp-notebook-scroll-padding: calc( | |
| 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - | |
| var(--jp-code-padding) - var(--jp-cell-padding) - 1px | |
| ); | |
| /* Rendermime styles */ | |
| --jp-rendermime-error-background: #fdd; | |
| --jp-rendermime-table-row-background: var(--md-grey-100); | |
| --jp-rendermime-table-row-hover-background: var(--md-light-blue-50); | |
| /* Dialog specific styles */ | |
| --jp-dialog-background: rgba(0, 0, 0, 0.25); | |
| /* Console specific styles */ | |
| --jp-console-padding: 10px; | |
| /* Toolbar specific styles */ | |
| --jp-toolbar-border-color: var(--jp-border-color1); | |
| --jp-toolbar-micro-height: 8px; | |
| --jp-toolbar-background: var(--jp-layout-color1); | |
| --jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.24); | |
| --jp-toolbar-header-margin: 4px 4px 0 4px; | |
| --jp-toolbar-active-background: var(--md-grey-300); | |
| /* Statusbar specific styles */ | |
| --jp-statusbar-height: 24px; | |
| /* Input field styles */ | |
| --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300); | |
| --jp-input-active-background: var(--jp-layout-color1); | |
| --jp-input-hover-background: var(--jp-layout-color1); | |
| --jp-input-background: var(--md-grey-100); | |
| --jp-input-border-color: var(--jp-inverse-border-color); | |
| --jp-input-active-border-color: var(--jp-brand-color1); | |
| --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3); | |
| /* General editor styles */ | |
| --jp-editor-selected-background: #d9d9d9; | |
| --jp-editor-selected-focused-background: #d7d4f0; | |
| --jp-editor-cursor-color: var(--jp-ui-font-color0); | |
| /* Code mirror specific styles */ | |
| --jp-mirror-editor-keyword-color: #008000; | |
| --jp-mirror-editor-atom-color: #88f; | |
| --jp-mirror-editor-number-color: #080; | |
| --jp-mirror-editor-def-color: #00f; | |
| --jp-mirror-editor-variable-color: var(--md-grey-900); | |
| --jp-mirror-editor-variable-2-color: rgb(0, 54, 109); | |
| --jp-mirror-editor-variable-3-color: #085; | |
| --jp-mirror-editor-punctuation-color: #05a; | |
| --jp-mirror-editor-property-color: #05a; | |
| --jp-mirror-editor-operator-color: #a2f; | |
| --jp-mirror-editor-comment-color: #408080; | |
| --jp-mirror-editor-string-color: #ba2121; | |
| --jp-mirror-editor-string-2-color: #708; | |
| --jp-mirror-editor-meta-color: #a2f; | |
| --jp-mirror-editor-qualifier-color: #555; | |
| --jp-mirror-editor-builtin-color: #008000; | |
| --jp-mirror-editor-bracket-color: #997; | |
| --jp-mirror-editor-tag-color: #170; | |
| --jp-mirror-editor-attribute-color: #00c; | |
| --jp-mirror-editor-header-color: blue; | |
| --jp-mirror-editor-quote-color: #090; | |
| --jp-mirror-editor-link-color: #00c; | |
| --jp-mirror-editor-error-color: #f00; | |
| --jp-mirror-editor-hr-color: #999; | |
| /* | |
| RTC user specific colors. | |
| These colors are used for the cursor, username in the editor, | |
| and the icon of the user. | |
| */ | |
| --jp-collaborator-color1: #ffad8e; | |
| --jp-collaborator-color2: #dac83d; | |
| --jp-collaborator-color3: #72dd76; | |
| --jp-collaborator-color4: #00e4d0; | |
| --jp-collaborator-color5: #45d4ff; | |
| --jp-collaborator-color6: #e2b1ff; | |
| --jp-collaborator-color7: #ff9de6; | |
| /* Vega extension styles */ | |
| --jp-vega-background: white; | |
| /* Sidebar-related styles */ | |
| --jp-sidebar-min-width: 250px; | |
| /* Search-related styles */ | |
| --jp-search-toggle-off-opacity: 0.5; | |
| --jp-search-toggle-hover-opacity: 0.8; | |
| --jp-search-toggle-on-opacity: 1; | |
| --jp-search-selected-match-background-color: rgb(245, 200, 0); | |
| --jp-search-selected-match-color: black; | |
| --jp-search-unselected-match-background-color: var( | |
| --jp-inverse-layout-color0 | |
| ); | |
| --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0); | |
| /* Icon colors that work well with light or dark backgrounds */ | |
| --jp-icon-contrast-color0: var(--md-purple-600); | |
| --jp-icon-contrast-color1: var(--md-green-600); | |
| --jp-icon-contrast-color2: var(--md-pink-600); | |
| --jp-icon-contrast-color3: var(--md-blue-600); | |
| /* Button colors */ | |
| --jp-accept-color-normal: var(--md-blue-700); | |
| --jp-accept-color-hover: var(--md-blue-800); | |
| --jp-accept-color-active: var(--md-blue-900); | |
| --jp-warn-color-normal: var(--md-red-700); | |
| --jp-warn-color-hover: var(--md-red-800); | |
| --jp-warn-color-active: var(--md-red-900); | |
| --jp-reject-color-normal: var(--md-grey-600); | |
| --jp-reject-color-hover: var(--md-grey-700); | |
| --jp-reject-color-active: var(--md-grey-800); | |
| /* File or activity icons and switch semantic variables */ | |
| --jp-jupyter-icon-color: #f37626; | |
| --jp-notebook-icon-color: #f37626; | |
| --jp-json-icon-color: var(--md-orange-700); | |
| --jp-console-icon-background-color: var(--md-blue-700); | |
| --jp-console-icon-color: white; | |
| --jp-terminal-icon-background-color: var(--md-grey-800); | |
| --jp-terminal-icon-color: var(--md-grey-200); | |
| --jp-text-editor-icon-color: var(--md-grey-700); | |
| --jp-inspector-icon-color: var(--md-grey-700); | |
| --jp-switch-color: var(--md-grey-400); | |
| --jp-switch-true-position-color: var(--md-orange-900); | |
| } | |
| </style> | |
| <style type="text/css"> | |
| /* Force rendering true colors when outputing to pdf */ | |
| * { | |
| -webkit-print-color-adjust: exact; | |
| } | |
| /* Misc */ | |
| a.anchor-link { | |
| display: none; | |
| } | |
| /* Input area styling */ | |
| .jp-InputArea { | |
| overflow: hidden; | |
| } | |
| .jp-InputArea-editor { | |
| overflow: hidden; | |
| } | |
| .cm-editor.cm-s-jupyter .highlight pre { | |
| /* weird, but --jp-code-padding defined to be 5px but 4px horizontal padding is hardcoded for pre.cm-line */ | |
| padding: var(--jp-code-padding) 4px; | |
| margin: 0; | |
| font-family: inherit; | |
| font-size: inherit; | |
| line-height: inherit; | |
| color: inherit; | |
| } | |
| .jp-OutputArea-output pre { | |
| line-height: inherit; | |
| font-family: inherit; | |
| } | |
| .jp-RenderedText pre { | |
| color: var(--jp-content-font-color1); | |
| font-size: var(--jp-code-font-size); | |
| } | |
| /* Hiding the collapser by default */ | |
| .jp-Collapser { | |
| display: none; | |
| } | |
| @page { | |
| margin: 0.5in; /* Margin for each printed piece of paper */ | |
| } | |
| @media print { | |
| .jp-Cell-inputWrapper, | |
| .jp-Cell-outputWrapper { | |
| display: block; | |
| } | |
| } | |
| </style> | |
| <!-- Load mathjax --> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe"> </script> | |
| <!-- MathJax configuration --> | |
| <script type="text/x-mathjax-config"> | |
| init_mathjax = function() { | |
| if (window.MathJax) { | |
| // MathJax loaded | |
| MathJax.Hub.Config({ | |
| TeX: { | |
| equationNumbers: { | |
| autoNumber: "AMS", | |
| useLabelIds: true | |
| } | |
| }, | |
| tex2jax: { | |
| inlineMath: [ ['$','$'], ["\\(","\\)"] ], | |
| displayMath: [ ['$$','$$'], ["\\[","\\]"] ], | |
| processEscapes: true, | |
| processEnvironments: true | |
| }, | |
| displayAlign: 'center', | |
| messageStyle: 'none', | |
| CommonHTML: { | |
| linebreaks: { | |
| automatic: true | |
| } | |
| } | |
| }); | |
| MathJax.Hub.Queue(["Typeset", MathJax.Hub]); | |
| } | |
| } | |
| init_mathjax(); | |
| </script> | |
| <!-- End of mathjax configuration --><script type="module"> | |
| document.addEventListener("DOMContentLoaded", async () => { | |
| const diagrams = document.querySelectorAll(".jp-Mermaid > pre.mermaid"); | |
| // do not load mermaidjs if not needed | |
| if (!diagrams.length) { | |
| return; | |
| } | |
| const mermaid = (await import("https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs")).default; | |
| const parser = new DOMParser(); | |
| mermaid.initialize({ | |
| maxTextSize: 100000, | |
| maxEdges: 100000, | |
| startOnLoad: false, | |
| fontFamily: window | |
| .getComputedStyle(document.body) | |
| .getPropertyValue("--jp-ui-font-family"), | |
| theme: document.querySelector("body[data-jp-theme-light='true']") | |
| ? "default" | |
| : "dark", | |
| }); | |
| let _nextMermaidId = 0; | |
| function makeMermaidImage(svg) { | |
| const img = document.createElement("img"); | |
| const doc = parser.parseFromString(svg, "image/svg+xml"); | |
| const svgEl = doc.querySelector("svg"); | |
| const { maxWidth } = svgEl?.style || {}; | |
| const firstTitle = doc.querySelector("title"); | |
| const firstDesc = doc.querySelector("desc"); | |
| img.setAttribute("src", `data:image/svg+xml,${encodeURIComponent(svg)}`); | |
| if (maxWidth) { | |
| img.width = parseInt(maxWidth); | |
| } | |
| if (firstTitle) { | |
| img.setAttribute("alt", firstTitle.textContent); | |
| } | |
| if (firstDesc) { | |
| const caption = document.createElement("figcaption"); | |
| caption.className = "sr-only"; | |
| caption.textContent = firstDesc.textContent; | |
| return [img, caption]; | |
| } | |
| return [img]; | |
| } | |
| async function makeMermaidError(text) { | |
| let errorMessage = ""; | |
| try { | |
| await mermaid.parse(text); | |
| } catch (err) { | |
| errorMessage = `${err}`; | |
| } | |
| const result = document.createElement("details"); | |
| result.className = 'jp-RenderedMermaid-Details'; | |
| const summary = document.createElement("summary"); | |
| summary.className = 'jp-RenderedMermaid-Summary'; | |
| const pre = document.createElement("pre"); | |
| const code = document.createElement("code"); | |
| code.innerText = text; | |
| pre.appendChild(code); | |
| summary.appendChild(pre); | |
| result.appendChild(summary); | |
| const warning = document.createElement("pre"); | |
| warning.innerText = errorMessage; | |
| result.appendChild(warning); | |
| return [result]; | |
| } | |
| async function renderOneMarmaid(src) { | |
| const id = `jp-mermaid-${_nextMermaidId++}`; | |
| const parent = src.parentNode; | |
| let raw = src.textContent.trim(); | |
| const el = document.createElement("div"); | |
| el.style.visibility = "hidden"; | |
| document.body.appendChild(el); | |
| let results = null; | |
| let output = null; | |
| try { | |
| let { svg } = await mermaid.render(id, raw, el); | |
| svg = cleanMermaidSvg(svg); | |
| results = makeMermaidImage(svg); | |
| output = document.createElement("figure"); | |
| results.map(output.appendChild, output); | |
| } catch (err) { | |
| parent.classList.add("jp-mod-warning"); | |
| results = await makeMermaidError(raw); | |
| output = results[0]; | |
| } finally { | |
| el.remove(); | |
| } | |
| parent.classList.add("jp-RenderedMermaid"); | |
| parent.appendChild(output); | |
| } | |
| /** | |
| * Post-process to ensure mermaid diagrams contain only valid SVG and XHTML. | |
| */ | |
| function cleanMermaidSvg(svg) { | |
| return svg.replace(RE_VOID_ELEMENT, replaceVoidElement); | |
| } | |
| /** | |
| * A regular expression for all void elements, which may include attributes and | |
| * a slash. | |
| * | |
| * @see https://developer.mozilla.org/en-US/docs/Glossary/Void_element | |
| * | |
| * Of these, only `<br>` is generated by Mermaid in place of `\n`, | |
| * but _any_ "malformed" tag will break the SVG rendering entirely. | |
| */ | |
| const RE_VOID_ELEMENT = | |
| /<\s*(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\s*([^>]*?)\s*>/gi; | |
| /** | |
| * Ensure a void element is closed with a slash, preserving any attributes. | |
| */ | |
| function replaceVoidElement(match, tag, rest) { | |
| rest = rest.trim(); | |
| if (!rest.endsWith('/')) { | |
| rest = `${rest} /`; | |
| } | |
| return `<${tag} ${rest}>`; | |
| } | |
| void Promise.all([...diagrams].map(renderOneMarmaid)); | |
| }); | |
| </script> | |
| <style> | |
| .jp-Mermaid:not(.jp-RenderedMermaid) { | |
| display: none; | |
| } | |
| .jp-RenderedMermaid { | |
| overflow: auto; | |
| display: flex; | |
| } | |
| .jp-RenderedMermaid.jp-mod-warning { | |
| width: auto; | |
| padding: 0.5em; | |
| margin-top: 0.5em; | |
| border: var(--jp-border-width) solid var(--jp-warn-color2); | |
| border-radius: var(--jp-border-radius); | |
| color: var(--jp-ui-font-color1); | |
| font-size: var(--jp-ui-font-size1); | |
| white-space: pre-wrap; | |
| word-wrap: break-word; | |
| } | |
| .jp-RenderedMermaid figure { | |
| margin: 0; | |
| overflow: auto; | |
| max-width: 100%; | |
| } | |
| .jp-RenderedMermaid img { | |
| max-width: 100%; | |
| } | |
| .jp-RenderedMermaid-Details > pre { | |
| margin-top: 1em; | |
| } | |
| .jp-RenderedMermaid-Summary { | |
| color: var(--jp-warn-color2); | |
| } | |
| .jp-RenderedMermaid:not(.jp-mod-warning) pre { | |
| display: none; | |
| } | |
| .jp-RenderedMermaid-Summary > pre { | |
| display: inline-block; | |
| white-space: normal; | |
| } | |
| </style> | |
| <!-- End of mermaid configuration --></head> | |
| <body class="jp-Notebook" data-jp-theme-light="true" data-jp-theme-name="JupyterLab Light"> | |
| <main> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=1d150f0d"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt"> | |
| </div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput" data-mime-type="text/markdown"> | |
| <h1 id="A6-Report-%E2%80%93-SVM-Classification-and-Response-Time-Assessment">A6 Report – SVM Classification and Response Time Assessment<a class="anchor-link" href="#A6-Report-%E2%80%93-SVM-Classification-and-Response-Time-Assessment">¶</a></h1><p>This sprint focuses on:</p> | |
| <ol> | |
| <li>SVM classification with GridSearchCV hyperparameter optimization</li> | |
| <li>Benchmarking response times using all classification models from A4 to A6</li> | |
| <li>Champion selection based on accuracy and speed trade-offs</li> | |
| </ol> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=e69eee4d"> | |
| <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="1.-SVM-Classification">1. SVM Classification<a class="anchor-link" href="#1.-SVM-Classification">¶</a></h2> | |
| </div> | |
| </div> | |
| </div> | |
| </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs" id="cell-id=9c5bb6bc"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"> | |
| <div class="jp-InputPrompt jp-InputArea-prompt">In [1]:</div> | |
| <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> | |
| <div class="cm-editor cm-s-jupyter"> | |
| <div class="highlight hl-ipython3"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">os</span> | |
| <span class="kn">import</span><span class="w"> </span><span class="nn">json</span> | |
| <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span> | |
| <span class="kn">import</span><span class="w"> </span><span class="nn">pandas</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pd</span> | |
| <span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span> | |
| <span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span> | |
| <span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span> | |
| <span class="n">warnings</span><span class="o">.</span><span class="n">filterwarnings</span><span class="p">(</span><span class="s1">'ignore'</span><span class="p">)</span> | |
| <span class="n">REPO_ROOT</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">(),</span> <span class="s1">'..'</span><span class="p">))</span> | |
| <span class="n">BENCHMARK_DIR</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="s1">'benchmark_results'</span><span class="p">)</span> | |
| </pre></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=0ede6584"> | |
| <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="Grid-Search-Configuration">Grid Search Configuration<a class="anchor-link" href="#Grid-Search-Configuration">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Parameter</th> | |
| <th>Values</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Kernel</td> | |
| <td>rbf, poly, linear</td> | |
| </tr> | |
| <tr> | |
| <td>C</td> | |
| <td>2^(-5), 2^(-1), 2^3, 2^7</td> | |
| </tr> | |
| <tr> | |
| <td>Gamma</td> | |
| <td>2^(-10), 2^(-6), 2^(-2), 2^2</td> | |
| </tr> | |
| <tr> | |
| <td>Degree (poly)</td> | |
| <td>2, 3</td> | |
| </tr> | |
| <tr> | |
| <td>Class weight</td> | |
| <td>balanced</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p>Cross-validation: 5 fold outer CV, 3 fold inner CV nested</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=2be04d57"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"> | |
| <div class="jp-InputPrompt jp-InputArea-prompt">In [2]:</div> | |
| <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> | |
| <div class="cm-editor cm-s-jupyter"> | |
| <div class="highlight hl-ipython3"><pre><span></span><span class="n">C_range</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="o">**</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="o">-</span><span class="mi">5</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">4</span><span class="p">)]</span> | |
| <span class="n">gamma_range</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="o">**</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">)]</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"C values: </span><span class="si">{</span><span class="n">C_range</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Gamma values: </span><span class="si">{</span><span class="p">[</span><span class="sa">f</span><span class="s1">'</span><span class="si">{</span><span class="n">g</span><span class="si">:</span><span class="s1">.5f</span><span class="si">}</span><span class="s1">'</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">g</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">gamma_range</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Total grid combinations: </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">C_range</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="n">gamma_range</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="n">C_range</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="n">gamma_range</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="n">C_range</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> | |
| </pre></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell-outputWrapper"> | |
| <div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser"> | |
| </div> | |
| <div class="jp-OutputArea jp-Cell-outputArea"> | |
| <div class="jp-OutputArea-child"> | |
| <div class="jp-OutputPrompt jp-OutputArea-prompt"></div> | |
| <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain" tabindex="0"> | |
| <pre>C values: [0.03125, 0.5, 8, 128] | |
| Gamma values: ['0.00098', '0.01562', '0.25000', '4.00000'] | |
| Total grid combinations: 84 | |
| </pre> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=0f786730"> | |
| <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="Results">Results<a class="anchor-link" href="#Results">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Model</th> | |
| <th>CV F1 Mean</th> | |
| <th>CV F1 Std</th> | |
| <th>vs A5b</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>SVM with nested CV</td> | |
| <td>~0.65</td> | |
| <td>~0.05</td> | |
| <td>+0.2%</td> | |
| </tr> | |
| <tr> | |
| <td>A5 Soft Voting</td> | |
| <td>~0.64</td> | |
| <td>~0.04</td> | |
| <td>baseline</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p><strong>Nadeau-Bengio corrected t-test</strong>: Not statistically significant (p > 0.05)</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=79b15891"> | |
| <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="2.-Response-Time-Benchmarking">2. Response Time Benchmarking<a class="anchor-link" href="#2.-Response-Time-Benchmarking">¶</a></h2><h3 id="Hardware-Specifications">Hardware Specifications<a class="anchor-link" href="#Hardware-Specifications">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Component</th> | |
| <th>Specification</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>CPU</td> | |
| <td>AMD Ryzen 5 5600U (6 cores, 12 threads)</td> | |
| </tr> | |
| <tr> | |
| <td>RAM</td> | |
| <td>30 GiB</td> | |
| </tr> | |
| <tr> | |
| <td>Storage</td> | |
| <td>NVMe SSD</td> | |
| </tr> | |
| <tr> | |
| <td>Python</td> | |
| <td>3.12.3</td> | |
| </tr> | |
| <tr> | |
| <td>scikit-learn</td> | |
| <td>1.8.0</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=69a5ab39"> | |
| <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="Models-Benchmarked">Models Benchmarked<a class="anchor-link" href="#Models-Benchmarked">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Model</th> | |
| <th>Type</th> | |
| <th>Source</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>A4 Random Forest</td> | |
| <td>RandomForestClassifier</td> | |
| <td>A4/models/</td> | |
| </tr> | |
| <tr> | |
| <td>A5 Ensemble</td> | |
| <td>VotingClassifier</td> | |
| <td>A5/models/</td> | |
| </tr> | |
| <tr> | |
| <td>A5b Adaboost</td> | |
| <td>AdaBoostEnsemble</td> | |
| <td>A5b/models/</td> | |
| </tr> | |
| <tr> | |
| <td>A5b Bagging Trees</td> | |
| <td>LGBMClassifier</td> | |
| <td>A5b/models/</td> | |
| </tr> | |
| <tr> | |
| <td>A6 SVM</td> | |
| <td>Pipeline (Scaler + SVC)</td> | |
| <td>A6/models/</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=9a8d2dbf"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"> | |
| <div class="jp-InputPrompt jp-InputArea-prompt">In [3]:</div> | |
| <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> | |
| <div class="cm-editor cm-s-jupyter"> | |
| <div class="highlight hl-ipython3"><pre><span></span><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">BENCHMARK_DIR</span> <span class="o">/</span> <span class="s1">'benchmark_20260310_090052.json'</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> | |
| <span class="n">benchmark</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> | |
| <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">BENCHMARK_DIR</span> <span class="o">/</span> <span class="s1">'single_benchmark_20260310_090011.json'</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> | |
| <span class="n">single_benchmark</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Benchmark config: </span><span class="si">{</span><span class="n">benchmark</span><span class="p">[</span><span class="s1">'num_samples'</span><span class="p">]</span><span class="si">}</span><span class="s2"> samples, </span><span class="si">{</span><span class="n">benchmark</span><span class="p">[</span><span class="s1">'num_repeats'</span><span class="p">]</span><span class="si">}</span><span class="s2"> repeats"</span><span class="p">)</span> | |
| </pre></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell-outputWrapper"> | |
| <div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser"> | |
| </div> | |
| <div class="jp-OutputArea jp-Cell-outputArea"> | |
| <div class="jp-OutputArea-child"> | |
| <div class="jp-OutputPrompt jp-OutputArea-prompt"></div> | |
| <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain" tabindex="0"> | |
| <pre>Benchmark config: 100 samples, 10 repeats | |
| </pre> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=f1f00975"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"> | |
| <div class="jp-InputPrompt jp-InputArea-prompt">In [4]:</div> | |
| <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> | |
| <div class="cm-editor cm-s-jupyter"> | |
| <div class="highlight hl-ipython3"><pre><span></span><span class="n">results</span> <span class="o">=</span> <span class="p">[]</span> | |
| <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="n">benchmark</span><span class="p">[</span><span class="s1">'models'</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> | |
| <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">({</span> | |
| <span class="s1">'Model'</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span> | |
| <span class="s1">'Mean (ms)'</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data</span><span class="p">[</span><span class="s1">'inference_time_mean'</span><span class="p">]</span><span class="o">*</span><span class="mi">1000</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> | |
| <span class="s1">'Std (ms)'</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data</span><span class="p">[</span><span class="s1">'inference_time_std'</span><span class="p">]</span><span class="o">*</span><span class="mi">1000</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> | |
| <span class="s1">'P95 (ms)'</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data</span><span class="p">[</span><span class="s1">'inference_time_p95'</span><span class="p">]</span><span class="o">*</span><span class="mi">1000</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> | |
| <span class="s1">'Accuracy'</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data</span><span class="p">[</span><span class="s1">'accuracy'</span><span class="p">]</span><span class="o">*</span><span class="mi">100</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2">%"</span><span class="p">,</span> | |
| <span class="s1">'Size (MB)'</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data</span><span class="p">[</span><span class="s1">'model_size_bytes'</span><span class="p">]</span><span class="o">/</span><span class="mf">1e6</span><span class="si">:</span><span class="s2">.1f</span><span class="si">}</span><span class="s2">"</span> | |
| <span class="p">})</span> | |
| <span class="n">df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">results</span><span class="p">)</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">to_string</span><span class="p">(</span><span class="n">index</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> | |
| </pre></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell-outputWrapper"> | |
| <div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser"> | |
| </div> | |
| <div class="jp-OutputArea jp-Cell-outputArea"> | |
| <div class="jp-OutputArea-child"> | |
| <div class="jp-OutputPrompt jp-OutputArea-prompt"></div> | |
| <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain" tabindex="0"> | |
| <pre> Model Mean (ms) Std (ms) P95 (ms) Accuracy Size (MB) | |
| A4 Random Forest 60.72 3.05 68.96 89% 16.4 | |
| A5 Ensemble 87.92 19.67 138.67 67% 26.7 | |
| A5b Adaboost 34.67 6.93 48.36 52% 0.7 | |
| A5b Bagging Trees 6.08 1.79 9.79 0% 6.5 | |
| A6 SVM 9.10 0.32 9.63 83% 0.7 | |
| </pre> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=85581a9d"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"> | |
| <div class="jp-InputPrompt jp-InputArea-prompt">In [5]:</div> | |
| <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> | |
| <div class="cm-editor cm-s-jupyter"> | |
| <div class="highlight hl-ipython3"><pre><span></span><span class="c1"># Accuracy vs inference time</span> | |
| <span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> | |
| <span class="n">models</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">benchmark</span><span class="p">[</span><span class="s1">'models'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> | |
| <span class="n">times</span> <span class="o">=</span> <span class="p">[</span><span class="n">benchmark</span><span class="p">[</span><span class="s1">'models'</span><span class="p">][</span><span class="n">m</span><span class="p">][</span><span class="s1">'inference_time_mean'</span><span class="p">]</span><span class="o">*</span><span class="mi">1000</span> <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">models</span><span class="p">]</span> | |
| <span class="n">accs</span> <span class="o">=</span> <span class="p">[</span><span class="n">benchmark</span><span class="p">[</span><span class="s1">'models'</span><span class="p">][</span><span class="n">m</span><span class="p">][</span><span class="s1">'accuracy'</span><span class="p">]</span><span class="o">*</span><span class="mi">100</span> <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">models</span><span class="p">]</span> | |
| <span class="n">colors</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'green'</span> <span class="k">if</span> <span class="n">a</span> <span class="o">>=</span> <span class="mi">80</span> <span class="k">else</span> <span class="s1">'orange'</span> <span class="k">if</span> <span class="n">a</span> <span class="o">>=</span> <span class="mi">50</span> <span class="k">else</span> <span class="s1">'red'</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">accs</span><span class="p">]</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">barh</span><span class="p">(</span><span class="n">models</span><span class="p">,</span> <span class="n">times</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">'steelblue'</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">'Mean Inference Time (ms)'</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Inference Time by Model'</span><span class="p">)</span> | |
| <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">times</span><span class="p">,</span> <span class="n">accs</span><span class="p">)):</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">t</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="sa">f</span><span class="s1">'</span><span class="si">{</span><span class="n">t</span><span class="si">:</span><span class="s1">.1f</span><span class="si">}</span><span class="s1">ms'</span><span class="p">,</span> <span class="n">va</span><span class="o">=</span><span class="s1">'center'</span><span class="p">)</span> | |
| <span class="k">for</span> <span class="n">m</span><span class="p">,</span> <span class="n">t</span><span class="p">,</span> <span class="n">a</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">models</span><span class="p">,</span> <span class="n">times</span><span class="p">,</span> <span class="n">accs</span><span class="p">):</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="mi">150</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">a</span><span class="p">),</span> <span class="n">xytext</span><span class="o">=</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">5</span><span class="p">),</span> <span class="n">textcoords</span><span class="o">=</span><span class="s1">'offset points'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">8</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">'Mean Inference Time (ms)'</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">'Accuracy (%)'</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">'Accuracy vs Speed Trade-off'</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span><span class="mi">80</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">'green'</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">'--'</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span> | |
| <span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.3</span><span class="p">)</span> | |
| <span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span> | |
| <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span> | |
| </pre></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell-outputWrapper"> | |
| <div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser"> | |
| </div> | |
| <div class="jp-OutputArea jp-Cell-outputArea"> | |
| <div class="jp-OutputArea-child"> | |
| <div class="jp-OutputPrompt jp-OutputArea-prompt"></div> | |
| <div class="jp-RenderedImage jp-OutputArea-output" tabindex="0"> | |
| <img alt="No description has been provided for this image" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmqtJREFUeJzt3QmcTfX/x/HPWMdO9n2JkH3LkpCUSoulXVEpElkqiRJKSWlRSpGlxV4UKkLRRqiIiOz7Etl37v/x/vY/93dnzIyZMXPvmPt69riZOfecc88958493/M5n+/nG+Hz+XwGAAAAAAAABFGaYL4YAAAAAAAAIASlAAAAAAAAEHQEpQAAAAAAABB0BKUAAAAAAAAQdASlAAAAAAAAEHQEpQAAAAAAABB0BKUAAAAAAAAQdASlAAAAAAAAEHQEpQAAAAAAABB0BKUAJLvDhw/bQw89ZAUKFLCIiAjr1q0be/085s2b5/aV/k0ptD2dO3e21KpEiRJ2//33J3rf9OvXL8m3CQCAcJXSz63aNm1jqCxevNjq1atnWbJkcduxdOlSN33mzJlWtWpVi4yMdNP3798fsm0E4oOgFIDzGjNmjDupLVmyJFF766WXXnLr6Nixo3388cd23333heVeV8BD+/F8j8QGRlJTME6PTz75JMZ5rrzySvd8xYoVg759AIBzvfvuu+57uXbt2uyeFGb58uV22223WfHixV2QonDhwnbttdfa22+/bRe7Ro0axatdlZIDW4l16tQpu/32223fvn32xhtvuPa1jvHevXvtjjvusEyZMtk777zjpitoBaRk6UK9AQBSv2+//dbq1Kljffv2tXDWoUMHa9Kkif/3DRs22HPPPWft27e3q666yj/90ksvdQ37Y8eOWYYMGSwcqeE8btw4u/fee6NM37hxo/3888/ueQBAyjB27FiXbbpo0SJbu3atlS5dOtSbBDN3vrz66qutWLFi9vDDD7uM9S1bttjChQttyJAh9thjj13U++mZZ55xmfiBmUNvvfWW9e7d28qXL++fXrlyZUtt1q1bZ5s2bbIRI0ZE2QfKkjp06JC98MILUdqcQEpGUApAstu9e7ddfvnlSba+s2fP2smTJy+6wETdunXdw6PMMwWlNC168EUutveXlG688UabNm2a/fPPP5YnTx7/dAWq8ufPb2XKlLF///03pNsIAPjv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qFGj3Dyvv/56rPPEdG6UDRs2nHPO89op+s6OLqbz3cCBA905R+c1T4MGDXzZsmWLMi1wey70nKdl06dP79u3b59/mtopOXPm9D344IP+aTpHd+rUyZdQ33zzjTtf6VG3bl3fU0895doHJ0+eTPQ5Pr5tifi287zz96OPPhplvnvuuSfB51a1HaJ/PrS8pt19993x+hyMHz/ezf/999/7pzVv3tzth8DPwcqVK91+Dbyc3rhxo5v24osvRlmn2pn6PESfHpOqVav68uXL59u7d69/2rJly9y+bNOmTYztpfO12YGUju57AC6I7t4F0h1F3XU6H92J1F2zcuXKubul3qNx48b+lPhAylgJrEul9pOykm6++Wb3c+A6dGdRmVDR09p1JyywcLhXXNzbXt3BUldD3eWLfifLu1umUU50B093wHQH13tN3bXU6/79998usya5qCuC7iB7dEdM26p9GTjqkfez994Ss79ioju+Skn3KHtIGU3qauB121R3DKXie90KRXdedWcxptpZsdFdSaW9T5gwwW2z/tVd+Jh89dVX7t/HH388ynQvO0/dR707kMqIUnHXwGGcY8oS02dUnxHdrQ7cXyocqvcaU5cGAAgnygZShoa6QYu+V++88073fe2dE0TnnypVqsSYSex9F2seZUzFVHw78Ps6obxs20DqVhVYX0jf7crQ0blGbQFRhou+55XZpXNdbNtzIec87SuNoqZ6XJ5vvvnGdXXUcx6d55X9u3379gS9d3XxU6aUMpaUbawMcZ3zlWUTU8mB853jE9KWiG87zzt/K+MnUHyyty+kvRr9c6Cuo9o+ZYGJ9z70vvX+lQ0f+DnQe/My2Tw6jsoQUxsx8D0rC0tZWtHbttEpC3vp0qWuy53aPx6VkdCx9PYVkNrQfQ9AoqlfvVKZA+kCPj4FqBW8Udp59OVjK8CpFORAaiyq0aYUZT3is47ojUptq3jb69WsiCvFXTWo1BBTarYesb2uGnzJQd0gozfOVcRU3QeiTwt8b4nZXzFRoyo61f5QNwi9hhpeaoAqlVwXK0rnF/2shl5CRmRSdwml26suxxVXXOG6Iiq1PyYagUZdM6OvX9ujxrye9+aL6X3oc+h9HgI/o+q6Ed/PKACEE12sK/ikgJRu6ATeFFFXfnXD080F7/zaqlWrONeneXSjJV26pLs80bp03oxu8+bN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aeLEiVajRg2bMmWKHT58+Jzn33jjDbv00kvPu54ePXrY0qVLbdmyZbZ+/XobOnToRbs/9D70+OCDDxK07OnTpxP8egSlUheCUgAAAAAAxNPIkSOtZ8+e1qBBAxeQCfTnn3/a559/bk8//XS892fGjBmtfv36tmnTJvf7zp077eqrr3aBrwoVKljnzp1d7SUZM2aMNWnSxO6++26rVKmS1axZ0wW0PP369bMyZcq4ZSdMmBDldT7++GOrXLmyezRr1sy2bdt2zjovv/xyq1evnq1cudJatGhh5cuXt+uuuy7G4FtcZs2aZdWrV3ev1bBhQ7c+mTdvnntPyjJTZtXUqVPd9t90001Wq1YtN78XnDt27JjdeeedbpuqVKnitkMeeeQRW716tVv+lltuSdB2IeUhKAUAAAAAQDwouKKRxps2beoCKwpQeU6dOmUPP/ywvf/++5Y2bdp4788DBw64YE2rVq3c7+r2N336dPv111/tjz/+cJlBkyZN8s+/ePFie+mll2z58uUumDRo0CA3/csvv7TJkye75ZYsWeKWC+zKp8ysr7/+2q1TgafArnZap9aj96csr5tvvtl1kVu1apVlyJDBPvzww1i3X4Ejr/uegky7d++2e+65xy2j12rfvr3ddtttrlujaJ1t2rRxmVUtW7a0jh072uDBg902LFy40IYPH+5+njlzpu3fv99tk7LJvCCbtktdBrX8tGnT+Nxe5AhKAQAAAAAQDwpCKaCioNONN95oGzZscEEW6d+/vwuyKLsoPl599VWXGZQ/f34rUqSIy44SZUUpE0vZQdWqVXMBJgVgPHXr1rWSJUv6f163bp37ee7cuXbHHXe4kew0wluHDh38y3z33Xd2/fXXuzpW8uijj9q3335rZ86c8a+nWLFi7mdlXylrSdsl+vnvv/+OV/c9ZVf98ssvLotLD2ndurVt377dn5lVqlQplz0lynhas2aNC2IpqKVgmWp2KRCl9699q23Va6RPn57PaCpEUAoAAAAAgPNQJpS6wCkDSAW+S5cu7YqTe9lS8+fPt7fffts9p+54Bw8edD/v2bMnxvUpc0mZRArKKPDkFe9+/fXXXbaRgjt6XgGb48eP+5eLjIz0/6zgWGx1mRSYik3056KvM76vkRgqEu9R9pQyw3777Td/YEuBvrZt27rglYJTCqb99NNPVrFiRfv333+T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OdDnQce+b9++dtNNN1muXLnsl19+cQHCDh062NatW938b731lk2bNs0mTZpkq1evtrFjx7oAGAAASDrl6hY0X+IG3vPT8loPAACIH/KLk9nhw4dt4sSJtmTJEtu5c6fLiOrdu7f/+X///dd195o+fboLNHmUNRWbn376yQ4cOGAffPCBpUv33yEsWbKkXX311f55FHTSet98803LnPl/d/70+sq4uf766/3TqlevbuvWrbMpU6ZY69at3TT9rICU1huOsmXLZnXr1rUXXnjBypcv77Kaxo8f77LelC11IRRMVKBJdafKli3rsrGOHj3q/1z06tXLXn75ZRf8uuuuu2zz5s1WpkwZq1+/vstcU6YUAABIWtkuibQSlXLbphX7zHc24dGpiDQRVrxSbrceAAAQP2RKJTNlt5QrV84FH+69916XveQLuA2nmkVnz551dYoU/FDXrTvuuMO2bNkS6zoLFCjgMnmmTp0aZV2BFFxSjaNPP/3UP03zfvjhh64LmboTBnrwwQejdBnTdj7wwAPnfX96jYMHD0Z5pBaqJaV9VrhwYcuYMaMLJN19990umHQhKlSoEGUdCnhVqlTJ/7uOTe7cuV1XTNHxWrp0qfsMdenSxb755psLen0AABCzatcWS1RASrRctSZF2bUAACQAQakgdN1TMEqUnaQMp/nz5/ufX79+vQtKqcaQspoURNq3b59de+21rpZQTOrUqeOyajTSW548eeyGG26wV1991Xbt2hUlG6dFixZRuvCp256678UUbNI2KjNn06ZN7qFsLG+746LaRqqf5D3UFTC1uPTSS92xUrabgoSLFi2yU6dOWalSpS5ovenTp4/yu7KfYpqmz4WXybZhwwaXtaUulgpa3nbbbRe0DQAA4FyFyuSyeq0SlxGt5bQ8AACIP4JSyUj1fxTIUHaNqKudipErUOVR4EGBDmXhqI6UAk7qJvb333+7IFJsXnzxRdcd8L333nOZN/pXGVkaJS4w+0l1i9Q1TxSgatiwYYzdzzRqnAqxq3ufMqb0swJe56OuZgq0eY+4MrwuVlmyZHFdHtXVUjW8br311qBvQ/bs2d1nZ8SIEa47qIqwK3gJAACSVtUmRf2BKXXJi4v3vObXcgAAIGEISiUjBZ/UzU4FyBWQ0kMjtymgoACOKNghl19+eZQAkQJCqiUUF3Xxuv32223w4MGu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WdLuuuuukGwfAAAILwSlAAAAwsT69eutePHicc6TJUsWl00FAACQ3Ch0DgAAECZ2795tv/zyyznTNW3JkiUh2SYAABC+CEoBAACEiU6dOtmWLVvOmb5t2zb3HAAAQDARlAIAAAgTK1eutOrVq58zvVq1au45AACAYArboFS/fv2satWqQXu9iIgI+/zzz1Ps9gHhRkV+K1eubNmzZ3ePunXr2tdff33OfD6fz2644YZ4/Q1rnpger776ajK+EwCIv4wZM9quXbvOmb5jxw5Ll45SowAAILgu2qDUggULLG3atNasWbMYn4/pwnDChAlJ9vpNmzZ1r7948WJLrQiMITUrUqSIvfzyy/brr7+6OiqNGze2W2+91f78888o87355pvu+yM+dFEX+Bg1apRbtlWrVsn0LgAgYa677jrr1auXHThwwD9t//791rt3bzcqHwAAQDBdtEGpkSNH2mOPPWbff/+9bd++PcZ5NHJM4AWihj5OCps3b7aff/7ZOnfu7C46AVx8br75ZrvxxhutTJkydtlll9mLL75oWbNmtYULF/rnWbp0qb322mvx/jsvUKBAlMcXX3xhV199tZUqVco9v3HjRhekmjRpkl111VWWKVMmNzz7mjVrXIC7Zs2abhuUmbVnzx7/eufNm2dXXHGFGxErZ86cduWVV9qmTZuSYa8ASO0GDx7sakppBD59P+lRsmRJ27lzp/u+AwAACKaLMih1+PBhmzhxonXs2NFlSo0ZMybG+XTxFniBGBkZec4877//vhUtWtQyZ85sd9xxR5Q7h7FRsOumm25yrz9+/Hg7duxYlOf//vtva9CggXu9yy+/3GbPnn3OOnr27OkuhPW6umDt06ePnTp1KkHbd/bsWXv++eddxofS8dXdb+bMmVGWX758ucsA0cVv7ty5rX379m7/ne9iV/u0f//+tmzZMn+mWWz7GbjYnTlzxmVSHjlyxHXjk6NHj9o999xj77zzjvv+SCh1j/nyyy+tXbt25zzXt29fe/bZZ+23335z3WX0Ok899ZQNGTLEfvjhB1u7dq0999xzbt7Tp0+7gHrDhg3tjz/+cFmi+juOb/YWAAQqXLiw+y555ZVXXBulRo0a7rtH7QW1NwAAAILpoiweoCyDcuXKWdmyZe3ee++1bt26uVT06BdpGkXmoYceckGfRx55xB544IEo8+jCT+uaPn26HTx40F08PvroozZ27NhYX1v1ZRSU0oWqtqF06dL26aef2n333ecPFLVs2dLy58/vhldWEEnbF122bNlckKdQoUKuIfjwww+7abowje/2qRGpu5oKXKlAqbI5brnlFtf9SNkfusBWN0NdZCsLQ8NAa38ow0uv7V3s6rUVXDt58qQtWrTI7aM777zTVqxY4YJcc+bMca+XI0eOJDh6QMqhvz39fRw/ftxlKE2dOtVdpEn37t2tXr16rktfYnz44Yfub1rfB9E9+eST7m9TunbtanfffbfNnTvXBYVFf+teEFh/+/oeUSD80ksvddPKly+f6PcMALoRpeA2AABAqKW7WLvuKRgl119/vbtgmz9/vjVq1Mg/jzKIlCGkDKNvvvnGBXOUIdSlSxf/PLoQ/eijj9xdQ3n77bdd5pUCPbFlRihAowwK74JS26Ht8YJSev6vv/6yWbNmuYCTvPTSS647TiBlSXhKlCjhLlKVqREYlDrf9ikFXxlXd911l3t+0KBB9t1337kaOAqajRs3zr8ONUBl6NChrtuS5k2fPn2cF7u6SFcWR1xZIidOnHAPjy6ggYuFAtvqoqe/AwWX27Zt675LFBD+9ttv7ffff0/0uhUkbt26dYwZmiqw7lEAWypVqhRlmoLIcskll9j999/vvnNU76VJkyYua7JgwYKJ3jYA0Eh7KkegG1KBdHMLAAAgWC66oNTq1atdNo8yGkRBE2X1KDAUGJRSdziPsoiUNaQRsAKDUsWKFfMHfEQZE8p00mvEFojRhaZezxuhRhkOPXr0sHXr1rnAzqpVq1z6uxeQ8tYbnbofvvXWW245BcuUtaQRwALFtX0KtqmWlpdZ4dHv6nIn2pYqVar4A1Le89461MXwQi92Bw4c6Lr5ARejDBkyuGxHURcWZRQqA1HdXfW3qS6tgVSwXLWg1O01LuqCp78x/Z3HRAFhj5e9GX2a/k49ys7Ud5cyF7VOBbXVLbhOnTqJfOcAwtX69eutRYsWLlNU3zXKAA/8LlJ3ZgAAgGC56GpKKfikAI6CPgoM6aGh3T/77LM460HVrl3btm7dGiWrJ6H27dvngmHvvvuu/7UVNNL2JKTguWrCKINCRZZnzJjhsjGeeeaZc+5WBoMudrU96qaki13VuQos9Hw+3gg+3kPFU4GLlQJB+o54+umnXc0VZVF5D3njjTfc30x8vqcU5FJQOKkouK6/Nw2yULFiRZcJCQAJpS7DKmyubEzd4FKXfw0ao4EWzhdwBwAACOuglII/6oqm7muBF4vKDFKQSnWRYqP5cuXK5QqCe5S2Hjhyn4IxadKkcV16YqJaTioqrtcLfH1tj+q/6O6iur8pMKPR/gLXG0gXlRr1RoEoNQJV/ymmkbTi2j5lVek9//TTT1GW0e9eTRxti7ZVWWKBz0d/j7Fd7CqL5Hx3TLU/tS2BD+BioM+8LsQ0Ip4yBvS7LsgUMFampP4WAh9e9qIu5jyqK+dlbQZ2YZ08ebKr35YUNmzY4LZNwWN9T6g7sgZToK4UgMTQd4lKHOTJk8e1B/SoX7++y3wOzCYHAAAIhouq+56yiv79919XBDh60W11q1F2ggqaqzC4Rr5S1xbVc1E3F9V1Ut2mQHpONWRUm0kXkmqMqftabF33tP7bbrvNf4HqUXc9XTSqa41qRynbSOtVd0GtV8GnQApCKeCkGlIaDl4jdEW/sI3P9qnboEbxUrdBjbynDA4FybxC6Lq41vNaR79+/dwQ84899pirf6WaNbrYHT58uKsfoQCXuhvpYrdNmzb+WleaR+tUME5FmwODesDFTFkC+qwrgKzvE9V5Ui04dWWNL/3NRM/Q1N+1usOoa29SUCaD6tSpcPrevXtd91oN4tChQ4ckWT+A8KKbTTqfiwJTuvmlG1W6WabvNAAAgGC6qIJSCgqp7lFMo8ApKKXhjdXlRrVZVOhbo2fp4lA1Y15//XU3ylwgTdfIWOpGp655Kvitrnkx+fXXX13W0YgRI855TttzzTXXuO1TIXIFmBQ4u+KKK1xgR7WjVJDdoyCQtk2j4KmrkJZRDSwFjhKyfQpS6YL4iSeecBfYypCaNm2aC3p5F7O6yFaqvoJf+l37SfsiPhe7mnfKlCl29dVX2/79+13QSzWogNRAf68J4dVdOd80jWgV26hW+j6Ivoxq4UWfpr8z729NAeSYgtYAkBi6sab2jLI+VdpAbSdlRusmlUYrBgAACKYIX0xXVUAiKaNLQbrGvSdZusjM7EeE3Kw+zUK9CQAu4vOZbv6kpq7pulmlbv266aWRRnXDa82aNZY7d25XW1IjF6ckqfU4pKRairqxmS9fPteVE+z/cMPfQOiF0zHgnJYKMqUAAACQeBpxNzAjWxnTysZW3U1vBD4AAIBgSd2hSAAAADinTp1yIwevWLEiyh655JJLCEgBAICQICgFAAAQBlRzU6OInm9kXQAAgGAhKAUAABAmNCJw7969XZc9AACAUKOmFAAAQJgYOnSoK3BeqFAhK168uGXJkiXK87/99lvItg0AAIQfglIAAABhonnz5qHeBAAAAD+CUgAAAGGib9++od4EAAAAP2pKAQAAAAAAIOgISgEAAISJNGnSWNq0aWN9XIiXX37ZIiIirFu3bv5px48ft06dOlnu3Lkta9as1qpVK9u1a1cSvBMAAJAa0H0PAAAgTEydOjXK76dOnbLff//dPvzwQ+vfv3+i17t48WJ7//33rXLlylGmd+/e3b788kubPHmy5ciRwzp37mwtW7a0n376KdGvBQAAUg+CUgAAAGHi1ltvPWfabbfdZhUqVLCJEydau3btErzOw4cPW+vWrW3EiBE2YMAA//QDBw7YyJEjbdy4cda4cWM3bfTo0Va+fHlbuHCh1alT5wLfDQAAuNgRlAIAAAhzChC1b98+Ucuqe16zZs2sSZMmUYJSv/76q8vE0nRPuXLlrFixYrZgwYIYg1InTpxwD8/Bgwfdv2fPnnUPJC3tU5/Px74NEfZ/6HEMQi+cjkE4vMfEICgFAAAQxo4dO2ZvvfWWFS5cOMHLTpgwwX777TfXfS+6nTt3WoYMGSxnzpxRpufPn989F5OBAwfG2I1wz549rj4Vkv4CSRltuiBUvTEEF/s/9DgGoRdOx+DQoUOh3oQUiaAUAABAmMiVK5crRu7RRYAayZkzZ7ZPPvkkQevasmWLde3a1WbPnm2RkZFJsn29evWyxx9/PEqmVNGiRS1v3ryWPXv2JHkNRL0Y1OdB+ze1XwymROz/0OMYhF44HYOkOlemNgSlAAAAwsQbb7wRJSilCwBdCNSuXdsFrBJC3fN2795t1atX9087c+aMff/99zZ06FCbNWuWnTx50vbv3x8lW0qj7xUoUCDGdWbMmNE9otN2pvaLlVDR54H9y/4PZ/wNhF64HIPU/v4Si6AUAABAmLj//vuTbF3XXHONLV++PMq0Bx54wNWN6tmzp8twSp8+vc2dO9datWrlnl+9erVt3rzZ6tatm2TbAQAALl4EpQAAAMKERr/LmjWr3X777VGmT5482Y4ePWpt27aN97qyZctmFStWjDItS5Ysljt3bv90jean7niXXHKJ63732GOPuYAUI+8BAAAhfwwAACBMqJB4njx5zpmeL18+e+mll5Klu+BNN93kMqUaNGjguu1NmTIlyV8HAABcnMiUAgAACBPqOleyZMlzphcvXtw9d6HmzZt3TlHXd955xz0AAACiI1MKAAAgTCgj6o8//jhn+rJly1y3OwAAgGAiKAUAABAm7r77buvSpYt99913bqQ8Pb799lvr2rWr3XXXXaHePAAAEGbovgcAABAmXnjhBdu4caMbOS9duv+agWfPnrU2bdokS00pAACAuBCUAgAACBMZMmSwiRMn2oABA2zp0qWWKVMmq1SpkqspBQAAEGwEpQAAAMJMmTJl3AMAACCUCEohWUzt2dSyZ8/O3gUAIAVp1aqVXXHFFdazZ88o01955RVbvHixTZ48OWTbBgAAwg+FzgEAAMLE999/bzfeeOM502+44Qb3HAAAQDARlAIAAAgThw8fdnWlokufPr0dPHgwJNsEAADCF0EpAACAMKGi5ip0Ht2ECRPs8ssvD8k2AQCA8EVNKQAAgDDRp08fa9mypa1bt84aN27sps2dO9fGjx9PPSkAABB0BKUAAADCxM0332yff/65vfTSS/bpp59apkyZrHLlyjZnzhxr2LBhqDcPAACEGYJSAAAAYaRZs2buEd2KFSusYsWKIdkmAAAQnqgpBQAAEKYOHTpkw4cPtyuuuMKqVKkS6s0BAABhhqAUAABAmPn++++tTZs2VrBgQRs8eLCrL7Vw4cJQbxYAAAgzdN8DAAAIAzt37rQxY8bYyJEj7eDBg3bHHXfYiRMnXI0pRt4DAAChQKYUAABAGBQ4L1u2rP3xxx/25ptv2vbt2+3tt98O9WYBAIAwR6YUAABAKvf1119bly5drGPHjlamTJlQbw4AAIBDphQAAEAq9+OPP7qi5jVq1LDatWvb0KFD7Z9//gn1ZgEAgDBHUAoAACCVq1Onjo0YMcJ27NhhHTp0sAkTJlihQoXs7NmzNnv2bBewAgAACDaCUgAAAGEiS5Ys9uCDD7rMqeXLl9sTTzxhL7/8suXLl89uueWWUG8eAAAIM9SUQrJoMWiWpYvMzN4FAATNrD7N2NsJoMLnr7zyig0cONCmT59uo0aNYv8BAICgIlMKAAAgjKVNm9aaN29u06ZNC/WmAACAMENQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAAAAAAAAQUdQCgAAAAAAAEFHUAoAAAAAAABBR1AKAACkWmfOnLE+ffpYyZIlLVOmTHbppZfaCy+8YD6fzz9PRETEOY8cOXLEud5Dhw5Zt27drHjx4m699erVs8WLFwfhHQEAAKQeBKVSsX79+lnVqlXjnOf++++35s2bB22bAAAIpkGDBtmwYcNs6NChtmrVKvf7K6+8Ym+//bZ/nh07dkR5jBo1ygWm4vLQQw/Z7Nmz7eOPP7bly5fbddddZ02aNLFt27YF4V0BAACkDqkuKLVgwQJLmzatNWvWLMbnY7obOmHChDjXGdMy8VkOAACE1s8//2y33nqraxeUKFHCbrvtNhdAWrRokX+eAgUKRHl88cUXdtVVV8W6zmPHjtlnn33mglsNGjSw0qVLuxtB+lcBMI9eb8CAAdamTRvLmjWry6qaNm2a7dmzx22TplWuXNmWLFniX2bTpk128803W65cuSxLlixWoUIF++qrr5JxDwEAAIROqgtKjRw50h577DH7/vvvbfv27THOM3r06Ch3ROOTKRR9mfguBwAAQkfd6ubOnWtr1qxxvy9btsx+/PFHu+GGG2Kcf9euXfbll1+6QFJsTp8+7boFRkZGRpmubnxad6A33njDrrzySvv9999dYOy+++5z67733nvtt99+c90J9bvXnbBTp0524sQJ145RBpYyuxS8AgAASI1SVVDq8OHDNnHiROvYsaNr+I0ZMybG+XLmzBnljmj0RmV8lglcTq+j52fNmmXly5d3jcfrr7/eBa488+bNsyuuuMLd9dS8aqDqbqhHd2WrV6/u1lmqVCnr37+/a/R6lJn1/vvv20033WSZM2d2r6OssLVr11qjRo3cetXwXrdu3TnbruWKFi3qlrvjjjvswIEDsb7Ps2fP2sCBA/21N6pUqWKffvrpefcPAAAp0dNPP2133XWXlStXztKnT2/VqlVztaBat24d4/wffvihZcuWzWUrxUbP161b19Wm0g0wBag++eQTd14OPPfLjTfeaB06dLAyZcrYc889ZwcPHrRatWrZ7bffbpdddpn17NnTdStUMEw2b97s2giVKlVy7QGd95WNBQAAkBqlqqDUpEmTXKOzbNmy7g6kakIEFjL16C5knjx5XJAotnkS6ujRozZ48GBXW0J3N9WofPLJJ91zCi4pq6phw4b2xx9/uEZr+/bt/fUqfvjhB3eXtGvXrrZy5UoXRFKg68UXX4zyGmr8ar6lS5e693nPPfe4hm6vXr1c6r/eR+fOnaMso6CV9sv06dNt5syZ7k7to48+Guv7UEDqo48+svfee8/+/PNP6969u9uX8+fPj3F+3c1VAzvwAQBASqFz4NixY23cuHEuM0lBJ52v9W9M1C5QwOp8N6x0vtd5t3DhwpYxY0Z766237O6777Y0aaI2rdQ9z5M/f373rwJO0aft3r3b/dulSxfX5U+Bqb59+7p2AwAAQGqVJrV13VMARZSppIyg6MGU559/3jVQVZy0VatWLkATWOw0NmpoKgMq8KHAk+fUqVMukFOzZk2X8aTgkLoLiAI12hbd7VSavrKc2rZta8WKFXPPKytKd3I1TXdFr732WheAUnAq0AMPPOAynbw7qxs3bnQN56ZNm7p1KqiljKxAx48fd0EmFTzXnVa9V9XC2rlzZ4wBppdeesk1yLVObYsKoWufRt+WwCCWRijyHsrIAgAgpejRo4c/W0rBIHWf0w0Xnb+i002i1atXuyLm56PzudoYytLesmWLq1GltoDOnYGUneXxbkbFNE2ZyqLXXr9+vdtOdd9TuyI+7RQAAICLUTpLJdSIVINw6tSp7vd06dLZnXfe6QJV6t7m0bDQHqXwHzlyxF599VV3ZzIuqgmhUXUCFSpUyP+zusapgeopWLCg/67nJZdc4oI7CvQo4KT1KLikebz6Fj/99FOUzCh1BVBASRlYWnd877ZqGQXBsmfP7qYp8KW7uB51N1DDV/tLXRCjZ1Xp9bSNgU6ePOn2VUyUpfX444/7f9drE5gCAKQUOq9Fz17SgCheECiQ2gw1atRwXdfjm/mr7vN6/Pvvv64bv4qfXyidRx955BH30Hl2xIgRrl4mAABAapNqglJqSKqbXGCgSGn1SqnXMNDK4olJ7dq1XVaSsoQ0b2wUwNGoOrEJvOvp3fkM7BaoQukKfKkLnepePfvssy5bq06dOu4uq7KlWrZsec56A7sPJPRua0JpO0QFXgMDWRLbvtH0uPYbAAChpNpQuumjmzQayU7d2F9//XV78MEHo8ynINTkyZPttddei3E911xzjbVo0cLfTV4BKJ3nVTJAN3WUkaWu9cpqvhCqd6Ui7MqKVqDru+++c9nQAAAAqVGqCEopGKUuampIapjnQKrlNH78eHe3MSaqz6Rhl4MRWFG2kR6666mMJdW3UFBK3f2UuRRX0Cux1MVQRVi9YN3ChQvdHWM1oqO7/PLL3X7QMqp/BQDAxU5d35Qlre76ymDW+VD1GFV0PJC6tivIpO76MdFAIv/884//d3XL1/l869atLiNaJQEU/Ip+kyqhlCmt2pdar7KeVY5A2doAAACpUaoISs2YMcPdTWzXrt05GVFqJCqLSkEpFfvW6DYKBCkDSZlKqqHkFSSPy/79+8+pw6TRd5Syfz4bNmyw4cOH2y233OIawwpA/f333/7hptUwVr0p3cW97bbbXNBIXfpWrFjhip1eCL1P1apSUVfdBVa2lroORu+6570f7QvV2lC2Vf369V2jW10L1TDWegAAuJjo3Pbmm2+6R1w0AIkesVEdx0A6l+oRl+jLSPTBVUqUKBFlGvWjAABAOEkVQSkFnVSnKaYuegpKqb6DRq/R3ct33nnHBV3UAFRmklL4H3744fO+Rkzp+CqSquKp56OaUH/99Zcb6Wfv3r2ulpTugupOrajWlAJrKsI+aNAgt53qAhCfQqvno/eoboEaknrfvn0u+PXuu+/GOr+6MubNm9e9NxVazZkzp8vk6t279wVvCwAAAAAAgCfCF/2WHXABlI2l4GDj3pMsXeR/BdoBAAiGWX2aJfn5TBnD3uAhCD6OQ/JSZry6tebLl++cAQGQ/Nj/occxCL1wOgac02KWuo86AAAAAAAAUiSCUgAAAAAAAAg6glIAAAAAAAAIOoJSAAAAAAAACDqCUgAAAAAAAAg6glIAAAAAAAAIOoJSAAAAAAAACDqCUgAAAAAAAAg6glIAAAAAAAAIOoJSAAAAAAAACDqCUgAAAAAAAAg6glIAAAAAAAAIOoJSAAAAAAAACDqCUgAAAEiwgQMHWq1atSxbtmyWL18+a968ua1evTrKPMePH7dOnTpZ7ty5LWvWrNaqVSvbtWsXexsAADgEpQAAAJBg8+fPdwGnhQsX2uzZs+3UqVN23XXX2ZEjR/zzdO/e3aZPn26TJ09282/fvt1atmzJ3gYAAE66//4BAAAA4m/mzJlRfh8zZozLmPr111+tQYMGduDAARs5cqSNGzfOGjdu7OYZPXq0lS9f3gWy6tSpw+4GACDMkSkFAACAC6YglFxyySXuXwWnlD3VpEkT/zzlypWzYsWK2YIFC9jjAACATCkAAABcmLNnz1q3bt3syiuvtIoVK7ppO3futAwZMljOnDmjzJs/f373XExOnDjhHp6DBw/6168Hkpb2qc/nY9+GCPs/9DgGoRdOxyAc3mNi0H0PAAAAF0S1pVasWGE//vjjBRdP79+//znT9+zZ44qmI+kvkJThpgvCNGnoQBFs7P/Q4xiEXjgdg0OHDoV6E1IkglIAAABItM6dO9uMGTPs+++/tyJFivinFyhQwE6ePGn79++Pki2l0ff0XEx69epljz/+eJRMqaJFi1revHkte/bsHKVkuBiMiIhw+ze1XwymROz/0OMYhF44HYPIyMhQb0KKRFAKAAAACaa72o899phNnTrV5s2bZyVLlozyfI0aNSx9+vQ2d+5ca9WqlZu2evVq27x5s9WtWzfGdWbMmNE9otOFSmq/WAkVXQyyf9n/4Yy/gdALl2OQ2t9fYhGUAgAAQKK67GlkvS+++MKyZcvmrxOVI0cOy5Qpk/u3Xbt2LvNJxc+V6aQglgJSjLwHAAAISgEAACBRhg0b5v5t1KhRlOmjR4+2+++/3/38xhtvuDvDypRSAfOmTZvau+++yx4HAAAOmVIAAABIVPe9+NTPeOedd9wDAAAgOoJSSBZTezalICkAAAAAAIgVlbYAAAAAAAAQdASlAAAAAAAAEHQEpQAAAAAAABB0BKUAAAAAAAAQdASlAAAAAAAAEHQEpQAAAAAAABB0BKUAAAAAAAAQdASlAAAAAAAAEHQEpQAAAAAAABB0BKUAAAAAAAAQdASlAAAAAAAAEHQEpQAAAAAAABB0BKUAAAAAAAAQdASlAAAAAAAAEHTpgv+SCActBs2ydJGZQ70ZAMLIrD7NQr0JAAAAABKATCkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQSkAAAAAAAAEHUEpAAAAAAAABB1BKQAAAAAAAAQdQakAY8aMsZw5cwb/KAAAktW2bdvs3nvvtdy5c1umTJmsUqVKtmTJEv/zPp/PnnvuOStYsKB7vkmTJvb333/Huc4SJUpYRETEOY9OnTpxNAEAAIDkDkotWLDA0qZNa82aNYtzvr1791qRIkVcY33//v1xzhvYsM+ePbvVqlXLvvjiC0vtYrqwqV+/fsi36fPPPw/pNgDAhfr333/tyiuvtPTp09vXX39tK1eutNdee81y5crln+eVV16xt956y9577z375ZdfLEuWLNa0aVM7fvx4rOtdvHix7dixw/+YPXu2m3777bdz0AAAAIDkDkqNHDnSHnvsMfv+++9t+/btsc7Xrl07q1y5crzXO3r0aNfA111sXUjcdttttnz5ckvtvPftPaZNm5bodZ06dSpJtw0ALlaDBg2yokWLuu/YK664wkqWLGnXXXedXXrppf4sqTfffNOeffZZu/XWW9356qOPPnLntbgC83nz5rUCBQr4HzNmzHDrbNiwYZTg/vvvv2833XSTZc6c2cqXL+9u6Kxdu9YaNWrkgl/16tWzdevW+ZdZtmyZXX311ZYtWzZ3c6ZGjRpRsroAAAAAC/eg1OHDh23ixInWsWNHlymlrm8xGTZsmMuOevLJJ+O9bnWhUwP/sssusxdeeMFOnz5t3333nf/5mTNnuiwizaeuGGrsBzboN27c6C4EpkyZ4hr2uhCoUqWKuxAIpG0uVqyYe75FixYuoyum7ddFRoYMGaxs2bL28ccfR3k+MRcc53vf3uOSSy5x08+ePWvPP/+8yzbLmDGjVa1a1e2D6O9Xx0MXQ5GRkTZ27Fj33AcffOC2SdPKlStn7777rn+5kydPWufOnV13FT1fvHhxGzhwoL9bimi/aN3e7wBwsVGAv2bNmi6DKV++fFatWjUbMWKE//kNGzbYzp07XZc9T44cOax27drnnDdio+/TTz75xB588EH3nRlI57E2bdrY0qVL3ffwPffcYx06dLBevXq5YJOCYvou9rRu3dp93ysT69dff7Wnn37aZXkBAAAAqU2ig1KTJk1yjWsFalSnY9SoUa5hHUhdJBRM0R3nNGkS/lIKRikbSxQU8hw5csQef/xx15ifO3euW7eCJwreBHrmmWdcMEwXAgpw3X333W6dou4ZyuDShYCeV/BqwIABUZafOnWqde3a1Z544glbsWKFu4h44IEHogTIEnPBkVBDhgxxXU0GDx5sf/zxh+tScsstt5xT70QXLtreVatWuXkUmFKNlBdffNFNe+mll6xPnz724YcfuvnVVUUXazqWq1evdvN7wSddDAVmb3m/A8DFZv369e4GQ5kyZWzWrFnuZkqXLl3834UKSEn+/PmjLKffvefORxlVugFz//33n/Oczht33HGHOw/17NnT3UhQ4Enf07ppoO/tefPm+effvHmzC5DpfKJtVjBNN1YAAACA1CZdYhdUsEjBKLn++uvtwIEDNn/+fJcdJCdOnHBBoFdffdVlI+miIL60nGpVHTt2zAWaFChRg97TqlWrKPMrIKZuFAqCVaxY0T9dASmv3lX//v2tQoUKLoNJDX0FerTdTz31lHteFws///xzlAwkBYF0gfHoo4+63xUIW7hwoZuuIFb0Cw7RBUfdunVd8EcXHKILDs0T3/ft0V335s2bu9fTeu+66y5/VxQFxtTd5J133vHP361bN2vZsqX/9759+7pgljdNXVa0j5TZ1bZtW3fhowseZZ3pzr4ypTzan4HZW7HRcdbDc/DgwfO+TwAIJp1HlCmlwLwoU0o3GlQ/St+FSUHnxBtuuMEKFSp0znOB3de9wJcKrQdOU+0qfX+qu57ONQ899JDLzFVwSkEpr6shAAAAYOGeKaWsmkWLFrkgiqRLl87uvPNOf1aTKEtId4C9wFVCvPHGGy7rSAVpL7/8ctcFzevKJsoQ0muXKlXKNeC97B4FWWK7EFAXNdm9e7f7V5lD6poRSMGkQJpHNa0C6XdNT+wFR3zet/e49tpr3TKqaxKf7dBFV2A2mboMKhssa9as/oeywbyuhAq46XWU7aasgW+++cYSSt391M3Fe6huCwCkJPr+17kkkM5P3jnDC7zv2rUryjz6Pa6gvGfTpk02Z84cF0iKSWDXO69rX0zTvGzffv362Z9//uluqnz77bdu25W5CwAAAKQ2iQpKKfikbnC6I6yAlB7qGvHZZ5+5jClRQ3ry5Mn+56+55ho3PU+ePC6DJy66CChdurQrRKvuYwp4ecEkufnmm23fvn2uJoi64enh1fQIFFejPykl9ILjfO/be6geVUIEzq+aX6J9FBjoUnaAsr2kevXqrpaKuh8qK03ZXioqnxAKPuqYe48tW7YkaHkASG4K4utmSqA1a9b4s0OVRarvX3UH9+iGgM4t0W9WxETnKdWqOt9ItAmh7N3u3bu7mwXKdtVrAAAAABbuQSkFo1QjSt3CAoMdGi1IQarx48e7+RSg0jTveWU7yQ8//GCdOnWK9+tppCSNPKS6SKJi5Lq40ChJCnTpbreG+04oLecFszxesCZwnp9++inKNP0e/Y57clImmPZrQrdD2VlaTt0mAwNdeugCLHD9CvopeKVC6TpuCvh5gbUzZ87EuX0qvK51BD4AICVRcEff7+q+py7c48aNs+HDh/vPRbpxoO7PyiRVnT2N9qo6gfoOVRdqj845Q4cOjbJu3WxQwEjdAHUD5kLpBoFqEKrGlDKw9F2vmn46HwEAAACpTYJb0BryWkEgdQtTd61AqvWkLKpHHnnknPoX//zzj/tXDWvVKUoIXSyokLnqP6kbhkbc0wWFflb3CxX4Tih1V9Pdc9Vr0hDgKn4bWE9KevTo4bKHVH9EdT2mT5/uRvRTN41g0nYou0z7VCPv6QJIgT5vhL3YqI6W3qeOk+pnqfaTCq/r+Klmyeuvv+72od6fisUrs03ZAt7xUbdIZQ5oPyn4lCtXriC9YwBIOrVq1XLd35TZqcE3FJhXTT4VG/fo/KJuz+3bt3cFy1VrT+cEjUzqUddn71zm0flA5yGNupcUVFdQN18UFFP3QWUXK1NK3+cAAACAhXtQSkEnBWiiB6S8oNQrr7ziRogLrLN0oRRQ0UWEsqXeffddmzBhggu2qKi56iFpFDmvwHp81alTx2UHKdijEer0npR9pa5sHt0hV0F0Ba5UrFzboIBQQl/rQum9qmucRgFUN0ZlSOluvoqUx0X1TTJnzuyKzSuwpe59qnWlIJ9ky5bNHS/V6NKFkC7cvvrqK/9IicqGU/BK+6lw4cJuxCgAuBjddNNN7hEbZUspYKVHbGL6DlQ38+gjzwaK/pyC/dGn6ZwSOM3LOAYAAABSuwhfXK1pIIFUh0UBy8a9J1m6yMzsPwBBM6tP0tV0ArzzmW4K0TU9dDgOyUtdkHXDU3XxvJuSCB72f+hxDEIvnI4B57SYpe6jDgAAAAAAgBSJoBQAAAAAAACCjqAUAAAAAAAAgo6gFAAAAAAAAIKOoBQAAAAAAACCjqAUAAAAAAAAgo6gFAAAAAAAAIKOoBQAAAAAAACCjqAUAAAAAAAAgo6gFAAAABDg0KFDljVrVmvXrl2U/TJv3jzLlCmTVa1a1f84duyYe27MmDHWvHnzeO3HRo0aWcmSJd3yFSpUsBtvvNF27dqVbMdg+/btdtVVVyXZ+pYsWeJ//8WKFbMcOXL4f3/11VeT7HUAAKlfulBvAAAAAJCSTJw40WrUqGFTpkyxIUOGuACVp2zZsrZ06dILfo033njDH8Tq2LGjDR48ONkCOoUKFbIffvghydZXs2ZN/z5QMO7zzz93j+hOnz5t6dJxuQEAiB2ZUgAAAECAkSNHWs+ePa1BgwYuQBVfBw8etFtuucUuv/xyt+zGjRvPu4wCN4cPH7ZcuXK533fu3GlXX321C4opi6pz58529uxZ99ypU6fs0Ucftcsuu8zq1KljTzzxhMu68vTt29dKly5ttWrVsmeffdZKlCjhpms7cubM6Z8vIiLCXnrpJbeOK664wkaPHu1/7ueff3YZT5UqVbIHH3zQqlSp4jLE4sN7He276tWr29ChQ937ueOOO9zraJ3aLs/ff/9tzZo1c9tbuXJlN78o++zOO+90+1Gvf91118Xr9QEAFx9uXQAAAAD/b+XKlbZlyxZr2rSpCxi9/PLLUbrxrVu3zgVc0qZNaw888IALEnl++uknl0FUvnx5e+WVV6x9+/b2zTffxLhvu3fvbv369bNt27ZZwYIF/QEZBXWmT5/usrPOnDljt956q02aNMnuuusuGz58uAvk/Pnnn25edfvzfPnll/bZZ5/Z77//7pZVQCkuGTNmtIULF7pt1nratm3rgl8KBn300UcuMPbdd99FCVjFx4EDB1wwbdCgQe537cfevXtbw4YN3f686aabbPLkydayZUu7++677ZNPPrFy5crZ0aNHXZCsdu3atnXrVtu/f787FrJv3z4+nwCQSpEpBQAAAARkSbVp08YFnRSs2bBhg61atco9p2CUAia//fabTZ061d577z0XMPLUq1fPBaREASllGCmwFFv3PQWwdu/ebS1atPAHkRQYUqaRMoSqVavm6jd5XeXmzp1r9957r6VPn949FEjy6Lnbb7/dsmXL5jKhotfDiq5169bu3zJlyrgudspo+uuvv9zPCkiJ/r300ksT9NnQdmkb5ciRI267unbt6rKv1O1v7dq1tnr1avdQcE3BNj2nfadaXgpE6b1rnyvgp0w1rRMAkDqRKQUAAAD8f/e4jz/+2AVBxo0b5/aJMngUqFLNp+zZs/v3U5EiRVymj2o1qXtaYimApOwkrV9ef/11F6j65ZdfLDIy0h5//HE7fvx4rMvGtd64aN0eBeCUxZSY9USXOXNmS5Pmv/vePp/P/auMrMDXEwWkLrnkkljrcyk49e2339qcOXPsqaeecvN5XRwBAKkHmVIAAABI1U5t32573nnHtj31lG3p1Nn9q981PdC0adOsVKlSrkud6iPpoYCKAlUKWO3YscNf30lZPTNmzHDZTJ4FCxa4bCP54IMPXKaRAj7no2wiFVCXf//91woUKOCCOMpeUlc3T+PGjV2wTNuih7rZBT6n7nuqT6Vg0KhRoxK8n7QNWu/8+fPd7/pXmU2JpW6E2gfqAhk4EqCyzfRaCvIFdg/Ua6mrnp5XMEz1uRSs0/tRl0oAQOpDphQAAABSpSOLFtm+0WPssAp1K+NHD3WnU6DI57N/hr5jWRs1stwPPmCZa9VyGVFetzaPuuMVLlzY1XlSQGXYsGGui5syi9RdTnWlPOqCpq53Cq7kzp07StAotppSCnIpA+jDDz9009XV7bbbbnN1mTRqXpMmTfzLdOjQwZYvX+4KgGsZdYfTNolqNSm7Sl3hVJdKNZwCi5vHh+pMTZgwwTp16uS2S8XWFTxK6HoCjR071mV7VaxY0QWasmTJYu+//77LNFNQr1u3bq4ro7o55smTxwXd9B579erlglHaz/fdd58rhA4ASH0ifF5eLZAENOpMjhw5rHHvSZYuMjP7FEDQzOrTjL2NJD+fqWhzYJctXBzHQc3bfaNG2+5XX/0vABVLXSfn/5/P99RTdskD9ye4u1qwKUNLdaOU0aQAmgJHCoQFPqf3r5H5NIqdgmixUeBJXQXz5cvn73LnrUMWL17sspVU3F3d8pC0Ytr/CC6OQeiF0zGgbREzMqUAAACQqig7ygWkJK6AVMDzu195xf2rrKmUTJlTJ06ccHWm6tevb126dPE/pwLt6nKo55RppULsCaUugMpcUmBLGWHqukhACgCQXAhKAQAAIFV12fMCTAml5TJVqui68qVU6qIXG40IeKHuv/9+9wAAIBhSd34cAAAAQu6dd96xEiVKuOLdtWvXtkWLFiVrlpTrkpcYadPaXi0PAACCgqAUAAAAks3EiRNdoeu+ffvab7/9ZlWqVLGmTZu6GiJJTaPpuaLm5+uyF5szZ+zwd9/ZqR07knrTAABADAhKAQAAINm8/vrr9vDDD7tR6jRqnOocqUbRqFGjkvy19qv72oUWKo+IsP1TpiTVJgEAgDhQUwoAAADJ4uTJk/brr79ar169/NM0upKKdS9YsOCc+VXAW4/AkYq80Zn0OJ8TmzaZL7Fd9zxp09rJzZvj9XoXO71HFTQPh/eaErH/Q49jEHrhdAzC4T0mBkEpJIupPZsyhDYAAGHun3/+sTNnzlj+/PmjTNfvf/311znzDxw40Pr373/O9D179rgR5c7n38yZ7Xjp0he41WZnMmWytMnQvTAlXiAdOHDAXRCm9qHYUyL2f+hxDEIvnI7BoUOHQr0JKRJBKQAAAKQIyqhS/anATKmiRYta3rx543Wz6/TRo3Zw7drE15SStGktx2VlLF++fBYOF4MRERFu/6b2i8GUiP0fehyD0AunY6DBPnAuglIAAABIFnny5LG0adParl27okzX7wUKFDhn/owZM7pHdLpQic/FSsbixS1CAakL7CKRoVixVH9x5NHFYHz3L9j/qRF/A6EXLscgtb+/xGKvAAAAIFlkyJDBatSoYXPnzo1yV1y/161bN8lfL2eLFmY+34WtxOeznC1bJtUmAQCAOBCUAgAAQLJRd7wRI0bYhx9+aKtWrbKOHTvakSNH3Gh8SS19oUKWtVEj1wUvUdKmtaxXX23pCxZM6k0DAAAxoPseAAAAks2dd97pCpU/99xztnPnTqtatarNnDnznOLnSSX3gw/Y4e++S9zCZ89a7gfuT+pNAgAAsSBTCgAAAMmqc+fOtmnTJjtx4oT98ssvVrt27WR7rcy1alm+p55K1LL5evRwywMAgOAgKAUAAIBU5ZIH7v9fYOp8Xfn+/3nNr+UAAEDw0H0PAAAAqW4kJ3Xjy1Spou0dPea/7nwREf89NDqfAlEqiO7zWdaGDV2XPTKkAAAIPoJSAAAASJUUaNLj1I4dtn/KFDu1ebOdOXzE0mbNYumLFXOj7FHUHACA0CEoBQAAgFRNgae8nTqFejMAAEA01JQCAAAAAABA0BGUAgAAAAAAQNARlAIAAAAAAEDQEZQCAAAAAABA0BGUAgAAAAAAQNARlAIAAAAAAEDQEZQCAAAAAABA0KUL/ksiNfP5fO7fgwcPhnpTAABINO885p3XEBq0K5LX2bNn7dChQxYZGWlp0nCvOtjY/6HHMQi9cDoGtC1iRlAKSWrv3r3u36JFi7JnAQAXPTWUc+TIEerNCOv9L7QrAACpBW2LqCJ83AJEEtq/f7/lypXLNm/eTCM+BJF3Ndq3bNli2bNnD/bLhy32O/s+3ITLZ17NIzUaCxUqlOrv3Kb0O+jbt2+3bNmyWURERKg3J9UJl7/nlIr9H3ocg9ALp2NA2yJmZEohSXkNd91VTu1fKimV9jv7nv0eTvjMs9+TCxlSKaNdUaRIkVBvRqrH9yj7P9zxNxB64XIMaFuci1t/AAAAAAAACDqCUgAAAAAAAAg6glJIUhkzZrS+ffu6fxFc7PvQYL+HDvue/Q6A79GLGeex0OMYhB7HABQ6BwAAAAAAQNCRKQUAAAAAAICgIygFAAAAAACAoCMoBQAAAAAAgKAjKIUk9c4771iJEiUsMjLSateubYsWLWIPJ6GBAwdarVq1LFu2bJYvXz5r3ry5rV69Oso8x48ft06dOlnu3Lkta9as1qpVK9u1axfHIQm9/PLLFhERYd26dWO/B8G2bdvs3nvvdZ/pTJkyWaVKlWzJkiX+530+nz333HNWsGBB93yTJk3s77//DsampVpnzpyxPn36WMmSJd0+vfTSS+2FF15w+9rDfgcuDrQdUhbaEKFDeyJ0aFcgLgSlkGQmTpxojz/+uBt977fffrMqVapY06ZNbffu3ezlJDJ//nwXcFq4cKHNnj3bTp06Zdddd50dOXLEP0/37t1t+vTpNnnyZDf/9u3brWXLlhyDJLJ48WJ7//33rXLlylGms9+Tx7///mtXXnmlpU+f3r7++mtbuXKlvfbaa5YrVy7/PK+88oq99dZb9t5779kvv/xiWbJkcd89CtAicQYNGmTDhg2zoUOH2qpVq9zv2s9vv/02+x24yNB2SDloQ4QO7YnQol2BOPmAJHLFFVf4OnXq5P/9zJkzvkKFCvkGDhzIPk4mu3fvVtqCb/78+e73/fv3+9KnT++bPHmyf55Vq1a5eRYsWMBxuECHDh3ylSlTxjd79mxfw4YNfV27dmW/J7OePXv66tevH+vzZ8+e9RUoUMD36quv+qfp7yBjxoy+8ePHJ/fmpVrNmjXzPfjgg1GmtWzZ0te6dWv3M/sduHjRdggN2hChRXsitGhXIC5kSiFJnDx50n799VfXbcaTJk0a9/uCBQvYy8nkwIED7t9LLrnE/atjoOypwONQrlw5K1asGMchCShLrVmzZlH2L/s9eU2bNs1q1qxpt99+u+uyWq1aNRsxYoT/+Q0bNtjOnTujHJMcOXK47sN89yRevXr1bO7cubZmzRr3+7Jly+zHH3+0G264gf0OXORoO4QGbYjQoj0RWrQrEJd0cT4LxNM///zj+grnz58/ynT9/tdff7Efk8HZs2ddTSN1bapYsaKbpovzDBkyWM6cOc85DnoOiTdhwgTXLVWp99Gx35PP+vXrXTcydQ3u3bu32/9dunRxn/O2bdv6P9cxfffwmU+8p59+2g4ePOiC2mnTpnXf7y+++KK1bt3aPc9+By5OtB1CgzZE6NGeCC3aFYgLQSngIr7jtmLFCpe9gOS1ZcsW69q1q6vjpSL+CO4FlDKlXnrpJfe7MqX0uVf9KAWlkDwmTZpkY8eOtXHjxlmFChVs6dKlLgheqFAh9jtwEaPtEHy0IVIG2hOhRbsCcaH7HpJEnjx53N306KO86fcCBQqwl5NY586dbcaMGfbdd99ZkSJF/NO1r9WVcv/+/RyHJKRukSrYX716dUuXLp17qHCsimvrZ2XlsN+Th0bUu/zyy6NMK1++vG3evNn97H2/8N2TtHr06OHuat51111utMP77rvPFfPXKF7sd+DiRNshNGhDpAy0J0KLdgXiQlAKSUJdaWrUqOFqkATekdDvdevWZS8nEQ3Brkbl1KlT7dtvv3XDtQfSMdAoZYHHYfXq1e4CnuOQeNdcc40tX77cZYt4D2XvqCuT9zP7PXmoe6o+w4FU56h48eLuZ/0NKDAV+JlXtzONwsdnPvGOHj3q6gIG0o0Hfa+z34GLC22H0KINkTLQnggt2hWIU5xl0IEEmDBhghvxasyYMb6VK1f62rdv78uZM6dv586d7Mck0rFjR1+OHDl88+bN8+3YscP/OHr0qH+eRx55xFesWDHft99+61uyZImvbt267oGkFTj6Hvs9+SxatMiXLl0634svvuj7+++/fWPHjvVlzpzZ98knn/jnefnll913zRdffOH7448/fLfeequvZMmSvmPHjiXjlqVubdu29RUuXNg3Y8YM34YNG3xTpkzx5cmTx/fUU0/552G/AxcH2g4pD22I4KM9EVq0KxAXglJIUm+//bYLiGTIkMF3xRVX+BYuXMgeTkKKI8f0GD16tH8eXYg/+uijvly5crmL9xYtWrjAFZK3Qcl+Tz7Tp0/3VaxY0QW9y5Ur5xs+fHiU58+ePevr06ePL3/+/G6ea665xrd69epk3KLU7+DBg+7zre/zyMhIX6lSpXzPPPOM78SJE/552O/AxYG2Q8pDGyI0aE+EDu0KxCVC/4s7lwoAAAAAAABIWtSUAgAAAAAAQNARlAIAAAAAAEDQEZQCAAAAAABA0BGUAgAAAAAAQNARlAIAAAAAAEDQEZQCAAAAAABA0BGUAgAAAAAAQNARlAIAAAAAAEDQEZQCAAAAAABA0BGUAoAE8Pl81r59e7vkkkssIiLCli5dGnb7r0SJEvbmm2+G5LVPnjxppUuXtp9//jnZXuO9996zm2++OdnWDwCAh3YF7Qog3BGUApDk7r//fheweeSRR855rlOnTu45zRNqY8aMsZw5cyZomZkzZ7rlZsyYYTt27LCKFStaajFv3jx3bOJ6aJ7Fixe7wFwoKGBUsmRJq1evXrK9xoMPPmi//fab/fDDD8n2GgCA+KNdcXGiXfEf2hVA3AhKAUgWRYsWtQkTJtixY8f8044fP27jxo2zYsWKXbR7fd26dVawYEEXFClQoIClS5cuUXdFT58+bSmN3pMCbd7jjjvusOuvvz7KNM2TN29ey5w5c9C3T/tt6NCh1q5du2R9nQwZMtg999xjb731VrK+DgAg/mhXxI52ReLQrgBSBoJSAJJF9erVXQNyypQp/mn6WQGpatWqRZn37NmzNnDgQJcBkylTJqtSpYp9+umn/ufPnDnjAhHe82XLlrUhQ4accxe1efPmNnjwYBc0yp07t8vKOnXqVLy3uV+/fla1alX7+OOPXRe1HDly2F133WWHDh3yv8Zjjz1mmzdvdllDmic+2+/dKfz666+tRo0aljFjRvvxxx/jvdzcuXOtZs2aLhCkoNDq1aujbPf06dOtVq1aFhkZaXny5LEWLVr4nztx4oQ9+eSTVrhwYcuSJYvVrl3brTe2YIwCbd5D26RtDZymeaJ339M2vv/++3bTTTe5bSxfvrwtWLDA1q5da40aNXKvq+1WQC/QF1984T4n2u5SpUpZ//794wzW/frrr24dzZo180/buHGje/1JkybZVVdd5bZZ+2LNmjUuo0v7LWvWrHbDDTfYnj17ouzbK664wm2bsuWuvPJK27Rpk/95dd+bNm1alKAqACB0aFfQrqBdAaRSPgBIYm3btvXdeuutvtdff913zTXX+Kfr5zfeeMM9p3k8AwYM8JUrV843c+ZM37p163yjR4/2ZcyY0Tdv3jz3/MmTJ33PPfecb/Hixb7169f7PvnkE1/mzJl9EydOjPKa2bNn9z3yyCO+VatW+aZPn+7mGT58eKzbqdfJkSOH//e+ffv6smbN6mvZsqVv+fLlvu+//95XoEABX+/evd3z+/fv9z3//PO+IkWK+Hbs2OHbvXt3vLb/u+++8+nrtnLlyr5vvvnGt3btWt/evXvjvVzt2rXdtD///NN31VVX+erVq+ff5hkzZvjSpk3r9s/KlSt9S5cu9b300kv+5x966CE3v96LXvfVV191r7FmzZp4H8foihcv7o6jR9tYuHBhdzxWr17ta968ua9EiRK+xo0bu/em7apTp47v+uuv9y+j7dHxGjNmjHvv2i9apl+/frFujz5P2l+BNmzY4F7f24/ea9WoUcPXqFEj348//uj77bfffKVLl3afDTl16pQ77k8++aTbJ1pG27Fp0yb/eo8cOeJLkyaNOwYAgNCiXUG7gnYFkHoRlAKQbI1HBW0UANm4caN7REZG+vbs2RMlKHX8+HEXPPr555+jrKNdu3a+u+++O9bX6NSpk69Vq1ZRXlPBktOnT/un3X777b4777wzQUEpbcvBgwf903r06OGCQh4FY/Q6nvhsvxdc+vzzzxO13Jw5c/zPf/nll27asWPH3O9169b1tW7dOsb3pyCLAlbbtm2LMl3BwV69evmSMij17LPP+n9fsGCBmzZy5Ej/tPHjx7vjH7gNgcEz+fjjj30FCxaMdXu6du3qAl0xBaU++OCDKK+laXPnzvVPGzhwoK9s2bLuZwUE9bwX/ItNrly5XLAKABBatCtoV9CuAFKvhBdDAYB4Uu0hdbVSYXDFLvSzupcFUir20aNH7dprrz1nlLXAbn7vvPOOjRo1ynWdU5cqPa+udoEqVKhgadOm9f+ubnzLly9P0PFS17Rs2bJFWcfu3btjnT++2y/qSpaY5SpXrhxle0TbpK6QGv3v4YcfjnHb9N7V9fGyyy6LMl1d+tS9MSkFbmP+/Pndv5UqVYoyTTXFDh48aNmzZ7dly5bZTz/9ZC+++KJ/Hm2r5tF+ialmlY67uvol9vW946iRE9UVs2nTpm7/N2nSxNXP8vatR10BtS0AgJSBdgXtCg/tCiD1ICgFIFlpxJHOnTv7A0vRHT582P375ZdfurpHgVTPSFQwXXWRXnvtNatbt64LGr366qv2yy+/RJk/ffr0UX5XrSHVbUqIhK4jPtvvUf2ixCwXuE3aHvG2SYGTuLZNQTrVYgoM1onqLCWlmLYxru3WtqmGVMuWLc9ZV2yBJwU0Ywsyxuf1A4/j6NGjrUuXLm40xYkTJ9qzzz5rs2fPtjp16vjn2bdvn7sAAgCkHLQr/od2Be0KIDUgKAUgWWn0NmX/KCigzJToLr/8cheEUQZUw4YNY1yHMmpUKPvRRx/1T4teNDtU4rP9SblcTBlCKoT+wAMPnPOcMq6UfaQMIRUBT2kFa1WwvXTp0vFeRu9n2LBhLuvOCzxdCK1Pj169erlgp0aG9IJS+nwpayt61hoAILRoV8SMdgXtCuBiRVAKQLJShs6qVav8P0enrCdlQXXv3t1lstSvX98OHDjgAlHq5tW2bVsrU6aMffTRRzZr1iw3Up1Gx9PIavo51OKz/Um5XHR9+/a1a665xi699FI3UqBGr/vqq6+sZ8+ertte69atrU2bNi7LTAEWjUCnIJaCWYGj2AXbc88950brUxfE2267zdKkSeO69K1YscIGDBgQ4zJXX321y7D6888/rWLFiol+7Q0bNtjw4cPtlltusUKFCrng2N9//+32k+eHH35wIwJqvwIAUg7aFbQrYkK7Arh4EZQCkOwUZInLCy+84LpJDRw40NavX285c+Z0mTS9e/d2z3fo0MF+//13u/POO12GzN133+2ypr7++usUcfTOt/1JvVygRo0a2eTJk926Xn75ZbevGzRoEKWbmoI8TzzxhG3bts11gVM2kAJCoaSsuRkzZtjzzz9vgwYNcl3typUrZw899FCsy6gOVosWLWzs2LFunyWW6lX99ddf9uGHH9revXtdLalOnTq5z5ln/PjxsdbqAgCEFu2KmNGuoF0BXIwiVO081BsBAEB8/PHHH644ubrXJXVdLI8ysRo3bmxr1qyxHDlycGAAAEilaFcAoZcm1BsAAEB8qduhMqvUBS+57Nixw3UXJSAFAEDqRrsCCD0ypQAAAAAAABB0ZEoBAAAAAAAg6AhKAQAAAAAAIOgISgEAAAAAACDoCEoBAAAAAAAg6AhKAQAAAAAAIOgISgEAAAAAACDoCEoBAAAAAAAg6AhKAQAAAAAAIOgISgEAAAAAAMCC7f8AqYwZJGx+VCIAAAAASUVORK5CYII="/> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=b95b9a26"> | |
| <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="Summary">Summary<a class="anchor-link" href="#Summary">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Model</th> | |
| <th>Mean Std (ms)</th> | |
| <th>Min</th> | |
| <th>Max</th> | |
| <th>Accuracy</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>A4 Random Forest</td> | |
| <td>60.7 +- 3.0</td> | |
| <td>58.1</td> | |
| <td>69.0</td> | |
| <td>89%</td> | |
| </tr> | |
| <tr> | |
| <td>A5 Ensemble</td> | |
| <td>87.9 +- 19.7</td> | |
| <td>67.9</td> | |
| <td>138.7</td> | |
| <td>67%</td> | |
| </tr> | |
| <tr> | |
| <td>A5b Adaboost</td> | |
| <td>34.7 +- 6.9</td> | |
| <td>30.5</td> | |
| <td>48.4</td> | |
| <td>52%</td> | |
| </tr> | |
| <tr> | |
| <td>A5b Bagging Trees</td> | |
| <td>6.1 +- 1.8</td> | |
| <td>3.8</td> | |
| <td>9.8</td> | |
| <td>0%*</td> | |
| </tr> | |
| <tr> | |
| <td><strong>A6 SVM</strong></td> | |
| <td><strong>9.1 +- 0.3</strong></td> | |
| <td><strong>8.7</strong></td> | |
| <td><strong>9.6</strong></td> | |
| <td><strong>83%</strong></td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <p>*A5b Bagging Trees: 0% due to class label mismatch in benchmark evaluation</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=2f748c38"> | |
| <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="3.-Champion-Selection">3. Champion Selection<a class="anchor-link" href="#3.-Champion-Selection">¶</a></h2><h3 id="Selection-Criteria">Selection Criteria<a class="anchor-link" href="#Selection-Criteria">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Criteria</th> | |
| <th>Weight</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Accuracy</td> | |
| <td>50%</td> | |
| </tr> | |
| <tr> | |
| <td>Inference Speed</td> | |
| <td>30%</td> | |
| </tr> | |
| <tr> | |
| <td>Model Size</td> | |
| <td>10%</td> | |
| </tr> | |
| <tr> | |
| <td>Consistency (low std)</td> | |
| <td>10%</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </div><div class="jp-Cell jp-CodeCell jp-Notebook-cell" id="cell-id=f24df445"> | |
| <div class="jp-Cell-inputWrapper" tabindex="0"> | |
| <div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser"> | |
| </div> | |
| <div class="jp-InputArea jp-Cell-inputArea"> | |
| <div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div> | |
| <div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline"> | |
| <div class="cm-editor cm-s-jupyter"> | |
| <div class="highlight hl-ipython3"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">score_model</span><span class="p">(</span><span class="n">data</span><span class="p">):</span> | |
| <span class="n">acc</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'accuracy'</span><span class="p">]</span> | |
| <span class="n">speed</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">data</span><span class="p">[</span><span class="s1">'inference_time_mean'</span><span class="p">]</span> <span class="o">/</span> <span class="mf">0.1</span><span class="p">)</span> | |
| <span class="n">size</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">data</span><span class="p">[</span><span class="s1">'model_size_bytes'</span><span class="p">]</span> <span class="o">/</span> <span class="mf">30e6</span><span class="p">)</span> | |
| <span class="n">consistency</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">data</span><span class="p">[</span><span class="s1">'inference_time_std'</span><span class="p">]</span> <span class="o">/</span> <span class="mf">0.02</span><span class="p">)</span> | |
| <span class="k">return</span> <span class="mf">0.5</span><span class="o">*</span><span class="n">acc</span> <span class="o">+</span> <span class="mf">0.3</span><span class="o">*</span><span class="n">speed</span> <span class="o">+</span> <span class="mf">0.1</span><span class="o">*</span><span class="n">size</span> <span class="o">+</span> <span class="mf">0.1</span><span class="o">*</span><span class="n">consistency</span> | |
| <span class="n">scores</span> <span class="o">=</span> <span class="p">[(</span><span class="n">m</span><span class="p">,</span> <span class="n">score_model</span><span class="p">(</span><span class="n">d</span><span class="p">))</span> <span class="k">for</span> <span class="n">m</span><span class="p">,</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">benchmark</span><span class="p">[</span><span class="s1">'models'</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">()]</span> | |
| <span class="n">scores</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="s2">"Champion Ranking:"</span><span class="p">)</span> | |
| <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">scores</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span> | |
| <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">. </span><span class="si">{</span><span class="n">m</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">s</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> | |
| </pre></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell-outputWrapper"> | |
| <div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser"> | |
| </div> | |
| <div class="jp-OutputArea jp-Cell-outputArea"> | |
| <div class="jp-OutputArea-child"> | |
| <div class="jp-OutputPrompt jp-OutputArea-prompt"></div> | |
| <div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain" tabindex="0"> | |
| <pre>Champion Ranking: | |
| 1. A6 SVM: 0.884 | |
| 2. A4 Random Forest: 0.693 | |
| 3. A5b Adaboost: 0.619 | |
| 4. A5b Bagging Trees: 0.451 | |
| 5. A5 Ensemble: 0.384 | |
| </pre> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=0d55c536"> | |
| <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="Recommendation">Recommendation<a class="anchor-link" href="#Recommendation">¶</a></h3><table> | |
| <thead> | |
| <tr> | |
| <th>Use Case</th> | |
| <th>Model</th> | |
| <th>Accuracy</th> | |
| <th>Latency</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Accuracy-critical</td> | |
| <td>A4 Random Forest</td> | |
| <td>89%</td> | |
| <td>61ms</td> | |
| </tr> | |
| <tr> | |
| <td>Low-latency</td> | |
| <td>A6 SVM</td> | |
| <td>83%</td> | |
| <td>9ms</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="jp-Cell jp-MarkdownCell jp-Notebook-cell" id="cell-id=753d8ce2"> | |
| <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="5.-Conclusion">5. Conclusion<a class="anchor-link" href="#5.-Conclusion">¶</a></h2><ul> | |
| <li>SVM achieved <strong>83% accuracy</strong> with <strong>9.1ms</strong> inference time</li> | |
| <li>A4 Random Forest still remains accuracy champion (<strong>89%</strong>) but at <strong>61ms</strong></li> | |
| <li>A6 SVM is <strong>6.7x faster</strong> with only 6% accuracy drop</li> | |
| <li>For low latency production: deploy A6 SVM</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| </body> | |
| </html> | |